Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions .github/workflows/upload.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,22 @@ jobs:
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 20
cache: 'yarn'
node-version: 24

- name: Enable Corepack and Yarn Berry
run: |
corepack enable
corepack prepare yarn@4.12.0 --activate
yarn --version

- uses: calcit-lang/setup-cr@0.0.8

- name: "compiles to js"
run: >
caps --ci && cr --once js
&& yarn && yarn vite build --base=./
caps --ci && yarn install --immutable
&& cr js && yarn vite build --base=./
Comment thread
tiye marked this conversation as resolved.

- name: Deploy to server
id: deploy
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

js-out/
node_modules/
.yarn/*.gz
dist/

.DS_Store
1 change: 1 addition & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nodeLinker: node-modules
75 changes: 47 additions & 28 deletions compact.cirru
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@

{} (:package |app)
{} (:about "|file is generated - never edit directly; learn cr edit/tree workflows before changing") (:package |app)
:configs $ {} (:init-fn |app.main/main!) (:reload-fn |app.main/reload!) (:version |0.0.1)
:modules $ [] |respo.calcit/ |lilac/ |memof/ |respo-ui.calcit/ |respo-markdown.calcit/ |reel.calcit/ |respo-feather.calcit/
:modules $ [] |respo.calcit/ |memof/ |respo-ui.calcit/ |respo-markdown.calcit/ |reel.calcit/ |respo-feather.calcit/
:entries $ {}
:files $ {}
|app.comp.container $ %{} :FileEntry
:defs $ {}
|comp-container $ %{} :CodeEntry (:doc |)
|comp-container $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defcomp comp-container (reel)
let
Expand All @@ -27,7 +27,8 @@
:style $ {} (:font-size 16)
:highlight $ fn (code lang)
if (contains? supported-langs lang)
.-value $ hljs/highlight (get supported-langs lang) code
.-value $ .!highlight hljs code
{} $ :language (get supported-langs lang)
escape-html code
if (not preview?)
textarea $ {} (:class-name css-textbox)
Expand Down Expand Up @@ -56,20 +57,23 @@
{} (:href "\"https://github.com/Memkits/markdown-editor") (:target "\"_blank")
comp-i :github 14 $ hsl 200 80 80
comp-reel (>> states :reel) reel $ {}
|css-icon $ %{} :CodeEntry (:doc |)
:examples $ []
|css-icon $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defstyle css-icon $ {}
"\"$0" $ merge ui/center
{} (:width 40) (:height 40) (:cursor :pointer)
|css-textbox $ %{} :CodeEntry (:doc |)
:examples $ []
|css-textbox $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defstyle css-textbox $ {}
"\"$0" $ merge ui/textarea ui/flex
{} (:resize :none) (:flex-shrink 0) (:font-family ui/font-code) (:padding-bottom 240) (:padding 16) (:border-width "\"0 0 0 1px")
:border-color $ hsl 0 0 95
:border-style :solid
:background-color $ hsl 0 0 98
|read-from-dom! $ %{} :CodeEntry (:doc |)
:examples $ []
|read-from-dom! $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn read-from-dom! () $ let
el $ .-firstChild (js/document.getElementById "\"article")
Expand All @@ -89,15 +93,18 @@
-> msg .-text $ set!
.join-str (to-calcit-data text-array) &newline
js/speechSynthesis.speak msg
|style-container $ %{} :CodeEntry (:doc |)
:examples $ []
|style-container $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defstyle style-container $ {}
"\"$0" $ merge ui/global ui/row ui/fullscreen
{} $ :overflow :hidden
|supported-langs $ %{} :CodeEntry (:doc |)
:examples $ []
|supported-langs $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
def supported-langs $ {} ("\"clojure" "\"clojure") ("\"clj" "\"clojure") ("\"bash" "\"bash") ("\"js" "\"javascript") ("\"javascript" "\"javascript") ("\"html" "\"xml") ("\"xml" "\"xml") ("\"css" "\"css") ("\"coffeescript" "\"coffeescript") ("\"coffee" "\"coffeescript") ("\"ts" "\"typescript") ("\"typescript" "\"typescript")
:ns $ %{} :CodeEntry (:doc |)
:examples $ []
:ns $ %{} :NsEntry (:doc |)
:code $ quote
ns app.comp.container $ :require
[] respo-ui.core :refer $ [] hsl
Expand All @@ -106,32 +113,36 @@
[] respo.comp.space :refer $ [] =<
[] reel.comp.reel :refer $ [] comp-reel
[] respo-md.comp.md :refer $ [] comp-md comp-md-block
[] "\"highlight.js" :as hljs
[] "\"highlight.js/lib/core" :default hljs
[] "\"escape-html" :default escape-html
[] feather.core :refer $ [] comp-i
respo.css :refer $ defstyle
"\"@memkits/azure-speech-util" :refer $ speechQueue
|app.config $ %{} :FileEntry
:defs $ {}
|dev? $ %{} :CodeEntry (:doc |)
|dev? $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
def dev? $ = "\"dev" (get-env "\"mode" "\"release")
|site $ %{} :CodeEntry (:doc |)
:examples $ []
|site $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
def site $ {} (:dev-ui "\"http://localhost:8100/main-fonts.css") (:release-ui "\"http://cdn.tiye.me/favored-fonts/main-fonts.css") (:cdn-url "\"http://cdn.tiye.me/markdown-editor/") (:title "\"Markdown Editor") (:icon "\"http://cdn.tiye.me/logo/markdown-editor.png") (:storage-key "\"markdown-editor")
:ns $ %{} :CodeEntry (:doc |)
:examples $ []
:ns $ %{} :NsEntry (:doc |)
:code $ quote (ns app.config)
|app.main $ %{} :FileEntry
:defs $ {}
|*reel $ %{} :CodeEntry (:doc |)
|*reel $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defatom *reel $ -> reel-schema/reel (assoc :base schema/store) (assoc :store schema/store)
|dispatch! $ %{} :CodeEntry (:doc |)
:examples $ []
|dispatch! $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn dispatch! (op)
when config/dev? $ println "\"Dispatch:" op
reset! *reel $ reel-updater updater @*reel op
|main! $ %{} :CodeEntry (:doc |)
:examples $ []
|main! $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn main! ()
println "\"Running mode:" $ if config/dev? "\"dev" "\"release"
Expand All @@ -155,34 +166,40 @@
do $ dispatch!
:: :hydrate-storage $ parse-cirru-edn raw
println "|App started."
|mount-target $ %{} :CodeEntry (:doc |)
:examples $ []
|mount-target $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
def mount-target $ js/document.querySelector |.app
|on-window-keydown $ %{} :CodeEntry (:doc |)
:examples $ []
|on-window-keydown $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn on-window-keydown (event)
when
and
= "\"e" $ .-key event
.-metaKey event
dispatch! $ :: :toggle
|persist-storage! $ %{} :CodeEntry (:doc |)
:examples $ []
|persist-storage! $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn persist-storage! (? e)
js/localStorage.setItem (:storage-key config/site)
format-cirru-edn $ :store @*reel
|reload! $ %{} :CodeEntry (:doc |)
:examples $ []
|reload! $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn reload! () $ if (nil? build-errors)
do (remove-watch *reel :changes) (clear-cache!)
add-watch *reel :changes $ fn (reel prev) (render-app!)
reset! *reel $ refresh-reel @*reel schema/store updater
hud! "\"ok~" "\"Ok"
hud! "\"error" build-errors
|render-app! $ %{} :CodeEntry (:doc |)
:examples $ []
|render-app! $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn render-app! () $ render! mount-target (comp-container @*reel) dispatch!
:ns $ %{} :CodeEntry (:doc |)
:examples $ []
:ns $ %{} :NsEntry (:doc |)
:code $ quote
ns app.main $ :require
[] respo.core :refer $ [] render! clear-cache! realize-ssr!
Expand All @@ -194,7 +211,7 @@
[] reel.schema :as reel-schema
[] cljs.reader :refer $ [] read-string
[] app.config :as config
[] "\"highlight.js" :default hljs
[] "\"highlight.js/lib/core" :default hljs
[] "\"highlight.js/lib/languages/clojure" :default clojure-lang
[] "\"highlight.js/lib/languages/coffeescript" :default coffeescript-lang
[] "\"highlight.js/lib/languages/javascript" :default javascript-lang
Expand All @@ -206,17 +223,18 @@
"\"bottom-tip" :default hud!
|app.schema $ %{} :FileEntry
:defs $ {}
|store $ %{} :CodeEntry (:doc |)
|store $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
def store $ {}
:states $ {}
:content |
:preview? false
:ns $ %{} :CodeEntry (:doc |)
:examples $ []
:ns $ %{} :NsEntry (:doc |)
:code $ quote (ns app.schema)
|app.updater $ %{} :FileEntry
:defs $ {}
|updater $ %{} :CodeEntry (:doc |)
|updater $ %{} :CodeEntry (:doc |) (:schema nil)
:code $ quote
defn updater (store op op-id op-time)
tag-match op
Expand All @@ -226,7 +244,8 @@
(:hydrate-storage d) d
(:toggle) (update store :preview? not)
_ $ do (eprintln "\"Unknown op:" op) store
:ns $ %{} :CodeEntry (:doc |)
:examples $ []
:ns $ %{} :NsEntry (:doc |)
:code $ quote
ns app.updater $ :require
[] respo.cursor :refer $ [] update-states
11 changes: 5 additions & 6 deletions deps.cirru
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
{}
:calcit-version |0.9.13
:calcit-version |0.12.13
:dependencies $ {}
|calcit-lang/lilac |main
|calcit-lang/memof |main
|Respo/respo.calcit |main
|calcit-lang/memof |0.0.23
Comment thread
tiye marked this conversation as resolved.
|Respo/respo.calcit |0.16.32
|Respo/reel.calcit |main
|Respo/respo-markdown.calcit |0.4.9
|Respo/respo-ui.calcit |main
|Respo/respo-markdown.calcit |0.4.11
|Respo/respo-ui.calcit |0.6.4
|Respo/respo-feather.calcit |main
Comment thread
tiye marked this conversation as resolved.
7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"version": "0.1.0",
"description": "a markdown editor demo",
"main": "index.js",
"scripts": {},
"packageManager": "yarn@4.12.0",
"repository": {
"type": "git",
"url": "git@github.com:Memkits/markdown-editor.git"
Expand All @@ -12,13 +12,14 @@
"license": "MIT",
"devDependencies": {
"bottom-tip": "^0.1.5",
"vite": "^6.4.2"
"vite": "^8.0.2"
},
"dependencies": {
"@calcit/procs": "^0.9.13",
"@calcit/procs": "0.12.13",
"@memkits/azure-speech-util": "^0.0.5",
"cirru-color": "^0.2.4",
"copy-text-to-clipboard": "^3.2.0",
"dayjs": "^1.11.20",
Comment thread
tiye marked this conversation as resolved.
"escape-html": "^1.0.3",
"feather-icons": "^4.29.2",
"highlight.js": "^11.11.1"
Expand Down
Loading
Loading