diff --git a/README.md b/README.md index ea8f75b..f303210 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ ClojureScript, beginners' home page ### 使用者影响 -升级到 Calcit 和 `@calcit/procs` **0.35.1** 后,请重新安装依赖、生成 JS 并刷新页面。导航、十份展示示例、代码高亮、旧 Map 存档和页面 HUD 继续适用。`content/*.cljs` 仍作为页面示例展示。 +升级到 Calcit 和 `@calcit/procs` **0.37.0** 后,请重新安装依赖、生成 JS 并刷新页面。导航、十份展示示例、代码高亮、旧 Map 存档和页面 HUD 继续适用。`content/*.cljs` 仍作为页面示例展示。 -Logo 切换使用 `RespoEvent` 和具名 `Action`,状态路径校验为 `CoordKey`。开发面板直接使用类型化 Reel,渲染进入 Respo 的 memo frame。依赖配对正式 Respo **0.19.4**、Reel **0.9.2**、Markdown **0.8.1**、UI **0.15.1**、JS-FFI **0.2.13**,传递 Router **0.12.1**。 +Logo 切换使用 `RespoEvent` 和具名 `Action`,状态路径校验为 `CoordKey`。开发面板直接使用类型化 Reel,渲染进入 Respo 的 memo frame。依赖配对正式 Respo **0.19.5**、Reel **0.10.0**、Markdown **0.8.2**、UI **0.15.2**、JS-FFI **0.2.13**,传递 Router **0.12.2**。 应用派发使用 `Action | reel.typed/Control`,缺席的工具 Logo 保持为 `Option`。Highlight.js 注册回调使用具名宿主类型。 -### Workflow +### 0.31.0 迁移记录 使用者影响:应用使用精确配套正式 Calcit / `@calcit/procs` **0.31.0**,以及 Respo 0.17.0-alpha.4、Reel 0.7.0-alpha.4、Markdown 0.5.0-alpha.4、UI 0.9.0-alpha.4、js-ffi 0.2.7 diff --git a/calcit.cirru b/calcit.cirru index 0e0abae..c6c08ab 100644 --- a/calcit.cirru +++ b/calcit.cirru @@ -6,7 +6,7 @@ {} (:description |) (:init-fn 'app.main/main!) (:mode :js) (:reload-fn 'app.main/reload!) (:target :browser) :feature-policy $ {} :modules $ [] |respo.calcit/ |respo-ui.calcit/ |respo-markdown.calcit/ |reel.calcit/ |js-ffi/ - :type-slots $ {} $ :dispatch-op |app.schema/DispatchOp + :type-slots $ {} $ :dispatch-op 'app.schema/DispatchOp :files $ {} 'app.comp.container $ %{} 'FileEntry :defs $ {} @@ -115,14 +115,14 @@ <> $ :description info match (:logo info) (:some logo) - div $ {} $ :style - {} + Option :some $ div $ {} + :style $ {} :background-image $ str "|url(" logo "|)" :background-size |cover :background-position |center :width |40px :height |40px - (:none) nil + (:none) (Option :none) :examples $ [] :schema $ quote $ Fn app.schema/ToolInfo (-> respo.schema/Component) 'comp-tools $ %{} 'CodeEntry (:doc |) @@ -245,20 +245,32 @@ :doc "|Checks incoming application operations and Reel controls before updating typed state." :code $ quote $ defn dispatch! (op) match (typed-reel/decode-control op) - (:some control) - reset! *reel $ typed-reel/apply-control updater @*reel control + (:some control) (dispatch-resolved! control) (:none) - reset! *reel $ typed-reel/record-op updater @*reel (decode-action op) (generate-id!) (host/now-ms) + dispatch-resolved! $ decode-action op , &unit :examples $ [] :schema $ quote $ Fn AnyEnum (-> Unit) (:features :js-ffi) + 'dispatch-resolved! $ %{} 'CodeEntry (:doc |) + :code $ quote $ defn dispatch-resolved! (op) + hint-fn $ Fn app.schema/ResolvedAction (-> Unit) (:features :js-ffi) + reset! *reel $ match op + (reel.typed/Control control) (typed-reel/apply-control updater @*reel control) + (app.schema/Action action) + typed-reel/record-op updater @*reel action (generate-id!) (host/now-ms) + , &unit + :examples $ [] 'main! $ %{} 'CodeEntry (:doc |) :code $ quote $ defn main! () println "|Running mode:" $ if config/dev? |dev |release if config/dev? $ load-console-formatter! let language clojure-lang - if (fn? language) (register-language! |clojure language) (raise "|Expected Highlight.js LanguageFn") + if (fn? language) + register-language! |clojure $ fn (api) + hint-fn $ Fn app.util/HighlightHost (-> app.util/LanguageDefinition) (:features :js-ffi) + js-cast (language api) 'app.util/LanguageDefinition + raise "|Expected Highlight.js LanguageFn" match browser/storage-get $ :storage-key config/site (:some raw) @@ -347,6 +359,10 @@ :code $ quote $ def DispatchOp (:: :unhandled) :examples $ [] :schema $ quote AnyEnum + 'ResolvedAction $ %{} 'CodeEntry (:doc |) + :code $ quote $ defunion ResolvedAction Action reel.typed/Control + :examples $ [] + :schema $ quote UnionDef 'Showcase $ %{} 'CodeEntry (:doc |) :code $ quote $ defstruct Showcase (:code String) (:text String) (:url String) :examples $ [] @@ -435,7 +451,9 @@ 'HighlightHost $ %{} 'CodeEntry (:doc |) :code $ quote $ deftrait HighlightHost .highlight $ Fn app.util/HighlightHost String JsObject $ -> JsObject - .register-language! $ Fn app.util/HighlightHost String Fn $ -> Unit + .register-language! $ Fn app.util/HighlightHost String + Fn app.util/HighlightHost $ -> app.util/LanguageDefinition + -> Unit :examples $ [] :ffi $ {} (:backend :js) (:kind :external-object) :schema $ quote Trait @@ -444,6 +462,11 @@ :examples $ [] :ffi $ {} (:backend :js) (:kind :external-object) :schema $ quote Trait + 'LanguageDefinition $ %{} 'CodeEntry (:doc |) + :code $ quote $ deftrait LanguageDefinition (:name 'String) + :examples $ [] + :ffi $ {} (:backend :js) (:kind :external-object) (:target :browser) + :schema $ quote Trait 'highlighter $ %{} 'CodeEntry (:doc |) :code $ quote $ defn highlighter (code lang) let @@ -472,7 +495,10 @@ registry .register-language! name language , &unit :examples $ [] - :schema $ quote $ Fn String Fn (-> Unit) (:features :js-ffi) + :schema $ quote $ Fn String + Fn app.util/HighlightHost $ -> app.util/LanguageDefinition + -> Unit + :features :js-ffi 'supported-langs $ %{} 'CodeEntry (:doc |) :code $ quote $ def supported-langs (&{} |clojure |clojure) :examples $ [] diff --git a/deps.cirru b/deps.cirru index 777dbff..a4e1f40 100644 --- a/deps.cirru +++ b/deps.cirru @@ -1,7 +1,7 @@ -{} (:calcit-version |0.35.1) (:version |0.1.1) +{} (:calcit-version |0.37.0) (:version |0.1.1) :dependencies $ {} - |Respo/respo.calcit |0.19.4 - |Respo/reel.calcit |0.9.2 - |Respo/respo-markdown.calcit |0.8.1 - |Respo/respo-ui.calcit |0.15.1 + |Respo/respo.calcit |0.19.5 + |Respo/reel.calcit |0.10.0 + |Respo/respo-markdown.calcit |0.8.2 + |Respo/respo-ui.calcit |0.15.2 |calcit-lang/js-ffi |0.2.13 diff --git a/package.json b/package.json index c2394f6..ca12316 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "vite": "8.3.3" }, "dependencies": { - "@calcit/procs": "0.35.1", + "@calcit/procs": "0.37.0", "@calcit/std": "^0.0.2", "cirru-color": "^0.2.4", "copy-text-to-clipboard": "^3.2.2", diff --git a/yarn.lock b/yarn.lock index b25d5e4..6a96a34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,15 +12,15 @@ __metadata: languageName: node linkType: hard -"@calcit/procs@npm:0.35.1": - version: 0.35.1 - resolution: "@calcit/procs@npm:0.35.1" +"@calcit/procs@npm:0.37.0": + version: 0.37.0 + resolution: "@calcit/procs@npm:0.37.0" dependencies: "@calcit/finger-vec": "npm:0.1.1" "@calcit/ternary-tree": "npm:0.0.26" "@cirru/parser.ts": "npm:0.0.10" "@cirru/writer.ts": "npm:^0.1.9" - checksum: 10c0/c39ab807cdda677cfd9fa9f6ae8adbb468347d5dd85ac38355a27a048cc9a1b7301d4f9c73f3bbf815269ecc7a59d824f61c8c46a9d56ae6a67f3b5cb21be3de + checksum: 10c0/38efd6a08b096419d41aa1d502a573ecbb415867caa18ee69142010e5d6c285f36f47d4e4334c33eff15617b1eff980f29662176422acb1bbf4fac5fdca83178 languageName: node linkType: hard @@ -229,7 +229,7 @@ __metadata: version: 0.0.0-use.local resolution: "clojure-script-org@workspace:." dependencies: - "@calcit/procs": "npm:0.35.1" + "@calcit/procs": "npm:0.37.0" "@calcit/std": "npm:^0.0.2" bottom-tip: "npm:^0.1.5" cirru-color: "npm:^0.2.4"