]> git.kianting.info Git - clo/blobdiff - README.md
add readme and todo
[clo] / README.md
index 69d3c81e0505e927dc6fe656729a00e429ab44dd..0695958d0657f9ba596d7c53a6bbb754ca76b62e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
 # clo
-another personal draught of a typesetting language and engine.
-website: https://kianting.info/wiki/w/Project:Clo
-License: MIT 
+ - another personal draught of a typesetting language and engine.
+ - website: https://kianting.info/wiki/w/Project:Clo
+ - license: MIT 
+ - issue tracking mailing list: `clo@kianting.info`
 
 ## changing journal
  - 20230904 建立 thenDo、matchRange的函數、refactor harfbuzzjs 以及libpdf 等測試界面
@@ -24,4 +25,42 @@ License: MIT
  - 20230928:basically fix `issue1`。其他ê物件猶著做。
  - 20230929:add multi args parsing for `callee`.
  - 20230930:tîng khí parser, using `js-token`.
- - 20231016: tîng siá parser, using `ts-parsec`.
\ No newline at end of file
+ - 20231006: tîng siá parser, using `ts-parsec`.
+ - 20231010: 初步完成tsit ê階段ê Parser`。
+ - 20231012: clo->js converter successfully (maybe.)
+ - 20231016:basic font guessing and `putText` function
+ - 20231023-24:fix .ttc bug.
+ - 20231026-27 : clo basic interface, preprocessor of stream of text,
+  add cjk-english splitter, etc.
+ - 20231029-30: hyphenating for english.
+ - TODO:利用harfbuzz算文字的對應px寬度
+
+
+ ## 之後的做法
+  - 先做一個前處理註冊器,註冊下列的前處理
+    - 中英文間距
+    - 換行點
+    - 空白轉為 [glue]
+  - 前處理完成字串後,必須要:
+    - 算出字元的Box
+    - 利用 frame/box 資訊分行、分頁
+    - 然後算出每個Box的x, y, page
+    - 最後納入排版
+
+## 排版語法
+
+使用lisp表示,但其實是陣列
+```lisp
+  (hglue 寬度 伸展值)
+  (vglue 高度 伸展值)
+  (bp 原始模式 斷行模式) ; breakpoint
+  (nl) ; newline
+  (em 數字)
+  (ex 數字)
+  (span {"font-family" : "Noto Sans" , "font-size" : 16 })
+  (vbox 高度 內容)
+```
+
+## How to generate documents
+ - `typedoc /path/to/index.js [/path/to/index2.js ...]`
+the generated page will be stored in `/src`.
\ No newline at end of file