top of page

easyWebBook-2

holydamn20beta

這是極簡化的排版軟體,功能是將具有特定格式的 txt 檔轉為網頁檔。


這程式參考 Tex 的概念,支援純 html 語法,以及 Markdown 的粗體、斜體、粗斜體、刪除線。



基本概念

txt檔的語法只有這幾個概念。


  1. 用簡單的代號與一到三個 tag 來表示文章的結構, 以 # 開頭,以 | 區隔 tag。

  2. 除了 #anchor、#lnk,其他代號有開頭就結束,類似html的概念。

  3. 每個檔案的第一行是 #chaper,最後一行是 #endchapter

  4. 一個指令是一行,指令與指令之間要空一行,指令與文字內容之間要空一行。

  5. 唯一的例外是每個檔案的第二行可放入編輯紀錄 #log,編輯紀錄與 #chapter 之間不必空一行。

  6. 目前全部的指令如下

  7. #chapter ~ #endchapter: 檔案(章節)的開始與結束,相當於html 的 <h1>

  8. #log ~ #endlog:要顯示的編輯紀錄

  9. #sec ~ #endsec:檔案裡的段落,會自動將第一個 tag 作成超鏈結 hyperlink 放到所有 #sec 之前,相當於 <h2>。

  10. #subsec ~ #endsubsec : 比較大的段落裡的子段落,除了隸屬於 #sec,其餘皆與 #sec 相同,相當於 <h3>。

  11. #q ~ #endq: 引言,相當於 html 裡的 quote 與 markdown 的 >

  12. #anchor: 超鏈結錨點,會自動蒐集所有錨點,製作成 topics.html

  13. #lnk: 超鏈結,一個超鏈結是一行,

  14. 第一個 tag 是目標種類:

  15. f : 檔案,如果有第四個

  16. i : 圖片,第三個 tag 可以省略

  17. w : 網際網路裡的網頁

  18. 第二個 tag 是 要顯示的文字

  19. 第三個 tag 是 url

  20. 如果有第四個 tag,第四個 tag 是要鏈結的的段落,相當於 html <a href 裡的 #

  21. #cmt ~ #endcmt: 僅供文章作者使用的註釋,也就是各種程式語言的 comment,轉成 html 時,這個指令所佔用各行都會被刪除,不會影響原始檔。

  22. 除了指令與粗斜體之類的變化,整個txt檔是所見即所得,txt 空幾行,產出的網頁就會空幾行, txt 裡的所有半行空白都會被轉譯成 html 的 &nbsp; 全形空白則是 &emsp;

  23. 一個目錄是一本書,用 .book 檔組織篇章順序,用txt檔名作為章節名稱,用這八個指令組織章節裡的段落(txt檔案架構)。

  24. 除了這八個概念,使用者可專注在書寫,連段落之間的格式都不必理會,txt 檔看起來幾乎就是純粹的 text。



檔案與目錄

目錄

請將所有與書籍相關的檔案放在同一個目錄,程式檔不在此限。這個目錄裡,必需有三個字目錄

  • _source: 存放 txt 檔的地方,一本書是一個子目錄

  • _share: 所有書本產出時會用到的檔案,目前只有 styles.css

  • html: 產出的網頁檔,一本書是一個目錄


無論是來源或產出,書本目錄底下都會有一個子目錄: img。所有的圖片都放在 img 裡,產出 html 的 styles.css 也會被放在 img 裡。


一個 .book 檔,許多章節 .txt 檔,加上一個子目錄 img 放圖片,這就是整個書籍目錄的全部內容。使用者只要專注在 .txt 檔即可。


.book檔

第一行是書本名稱,用四個空白縮排的是篇章名稱。.book 檔裡的篇章順序就是產生網頁的順序。


沒被加到 .book 檔裡的篇章不會被轉繹。


以我的 UglyDeeds 為例,我的 UglyDeeds.book 的內容是這樣的。

UglyDeeds
    Real Life
    Ugly Deeds
    Ugly Twitter
    Twitter
    Announcement
    Topics

縮排的內容代表固定的架構,一組固定的架構是一個單元,我使用的單元是「月份」。


而單元「月份」會表現在檔名裡。



檔名

  • 主是名稱,單元名稱,後綴,這三者用底線 _ 連接之後,加上副檔名,就是我們的檔名。

  • 例如:RealLife_2312_7.txt

  • 這三者連起來是一個章節(chapter)名稱,一個章節是一個檔案,所以每個檔案的第一行會與檔名相同。

  • 例如:RealLife_2312_7.txt 這個檔案的第一行會是 #chapter|RealLife|2312|7


產出的首頁是 Home.html



工具

Window

如果你使用的是 window, 建議為每個目錄建立一個指向程式檔的捷徑,將目錄路徑當作參數,用捷徑的名稱來區隔不同的目錄。


Linux

如果你使用的是 linux,建議為常用的目錄建立一個 .bashrc 裡的 alias。

或者是安裝 zenity 用 --file-select --directory 來選擇。

也可修改 class Paths 的 self.source


Visual Studio Code (VSCODE)

建議安裝 TODO Tree 這個 extension。

編輯 settings.jon 將指令加入 customHighlight,

每個指令都加入: "type": "line",


例如,這是我的 settings.jon (部分):

"todo-tree.general.tags": [
        "#chapter",
        "#endchapter",
        "#sec",
        "#endsec",
        "#subsec",
        "#endsubsec",
        "#q",
        "#endq",
        "#log",
        "#endlog",
        "#cmd",
        "#endcmd",
        "#anchor",
        "#lnk"
    ],
    "todo-tree.highlights.customHighlight": {
        "#chapter": {
            "foreground": "#ffae00",
            "iconColour": "#ffae00",
            "icon": "fold-down",
            "type": "line",
            "gutterIcon": true,
        },
        "#endchapter": {
            "foreground": "#a37000",
            "iconColour": "#a37000",
            "icon": "fold-up",
            "type": "line",
            "gutterIcon": true,
        },

在 todo-tree.highlights.customHighlight 裡加入每一個指令之後,

從此,畫面上有顏色那行就是指令,打字時請無視所有的色塊。

引言、分段落、加 anchor,加註解,加編輯紀錄時再理會即可。


如果再加上 snippet 與 placeholder,只要熟悉概念與字體 markdown 即可,無需背頌指令。


這是我的 vscode 畫面(Annoucement_2312_1.txt)


使用程式

執行程式的指令:

python3 easyWebBook.py "位於_source裡的目錄(完整路徑)"

至於 window 捷徑的語法,我不熟,請 google。



範例

這是 Announcement_2312_1.txt 的完整內容

這內容會編繹出大家看得到的 Announcement_2312_1.html

之前的名字是 Announcement.html



#chapter|Announcement|2312|1
#log|Proofreading
<p class="log">1. <b>1214</b> : 校錯字:『應盡』</a>
#endlog

#sec|14-1|Password Url

密碼公佈網址:
~password

預約於 1 月 6 日 00:01 分發佈。

(https://uglydeeds.substack.com/p/password)
(https://holydamn20beta.wixsite.com/ugly-deeds/post/password)

#endsec

#sec|14-2|Download Agreement

這就是我深信不疑的,我的版本的正確姿勢。

從今日起,下載我上傳並公開的加密檔代表你同意這六點:

一、加密與密碼強度不是我的義務。
二、九個字的密碼已遠超我應盡的義務。
三、加密發佈代表我無意散佈內容,直到我公佈密碼為止。
四、你會在完成下載的同時,取得你透過下載得到的那份檔案的所有權。
五、以不散佈被解開的檔案內容為前題,依你的自由意志對屬於你自己的檔案所為之所有行為,都是你的隱私,只與你自己有關。
六、你同意我公佈密碼之前不散佈被解開的檔案內容。

#endsec

#sec|14-3|Manual of File

檔案可以單獨看。
請用新檔覆蓋舊檔。

每個檔案都會涵蓋之前的內容,不會因為錯過之前的下載而錯過之前的內容。

明年1月5日天黑至1月6日日出之間,會再發佈一次包含所有檔案的完整版。
如果是密碼公佈前,檔案會加密。

#endsec

#sec|14-4|Share Folder

目前公佈於 google driver :

https://drive.google.com/drive/folders/1ZH1KexHSDEKVXncZ-5tjZMR2uxWTyEM8?usp=sharing

會陸續增追加他網站

#endchapter

還沒寫完。

寫完會再更新。


0 次查看0 則留言

最新文章

查看全部

easyWebBook-4

alpha 1,easyWebbBok.py,

Comentarios


Los comentarios se han desactivado.

©2023 Ugly Deeds 版權所有。透過 Wix.com 製作的理想網站

bottom of page