changed 4 years ago
Linked with GitHub

BBS 文章檔案檔案格式

BBS 文章檔的處理

BBS 文章檔案通常直接儲存在硬碟當中,需要時才會讀取。
讀取後會經過處理才會傳送至客戶端

顯示文章函式呼叫流程

// TODO: 找到 pmore.c 有關上色流程

目前檔案內容

以一篇普通的文章而言,目前的檔案內容如下:

作者: pichu2 (pichubaby@gmail.com) 看板: test
標題: [問題] 2/18 的廢文
時間: Thu Feb 18 03:15:07 2021



大概是這樣

結束。

--
※ 發信站: 新批踢踢(ptt2.cc), 來自: 1.164.110.57
※ 文章網址: http://www.ptt.cc/bbs/test/M.1613618109.A.8B1.html

而這樣的文章在以 pmore 的預設格式化內容會呈現成這樣

<0x1b>[H<0x1b>[J<0x1b>[47;34m 作者 <0x1b>[44;37m pichu2 (pichubaby@gmail.com)                               <0x1b>[47;34m 看板 <0x1b>[44;37m test <0x1b>[m<0x1b>[K

<0x1b>[47;34m 標題 <0x1b>[44;37m [問題] 2/18 的廢文                                                     <0x1b>[m<0x1b>[K

<0x1b>[47;34m 時間 <0x1b>[44;37m Thu Feb 18 03:15:07 2021                                               <0x1b>[m<0x1b>[K

<0x1b>[0;36m───────────────────────────────────────<0x1b>[m<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

大概是這樣<0x1b>[K

<0x1b>[K

結束。<0x1b>[K

<0x1b>[K

--<0x1b>[K

<0x1b>[0;32m※ 發信站: 新批踢踢(ptt2.cc), 來自: 1.164.110.57<0x1b>[m<0x1b>[K

<0x1b>[0;32m※ 文章網址: http://www.ptt.cc/bbs/test/M.1613618109.A.8B1.html<0x1b>[m<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[m<0x1b>[37;44m  瀏覽 第 1/1 頁 (100%) <0x1b>[1;30;47m 目前顯示: 第 01~13 行<0x1b>[0;47m  <0x1b>[31m(y)<0x1b>[30m回應<0x1b>[31m(X%)<0x1b>[30m推文<0x1b>[31m(h)<0x1b>[30m說明<0x1b>[31m(←)<0x1b>[30m離開 <0x1b>[m<0x1b>[K

這個內容中是從文章列表按下右鍵進入後的內容,其中逃逸字元 0x1b 使用 <0x1b> 這個符號來表示。

而接下來這篇是在 pmore 原始ANSI控制碼

<0x1b>[H<0x1b>[J作者: pichu2 (pichubaby@gmail.com) 看板: test<0x1b>[K

標題: [問題] 2/18 的廢文<0x1b>[K

時間: Thu Feb 18 03:15:07 2021<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

大概是這樣<0x1b>[K

<0x1b>[K

結束。<0x1b>[K

<0x1b>[K

--<0x1b>[K

※ 發信站: 新批踢踢(ptt2.cc), 來自: 1.164.110.57<0x1b>[K

※ 文章網址: http://www.ptt.cc/bbs/test/M.1613618109.A.8B1.html<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[K

<0x1b>[m<0x1b>[37;44m  瀏覽 第 1/1 頁 (100%) <0x1b>[1;30;47m 目前顯示: 第 01~13 行<0x1b>[0;47m  <0x1b>[31m(y)<0x1b>[30m回應<0x1b>[31m(X%)<0x1b>[30m推文<0x1b>[31m(h)<0x1b>[30m說明<0x1b>[31m(←)<0x1b>[30m離開 <0x1b>[m<0x1b>[K

主要差別在於首三行的看板對齊沒有向右對齊,以及在 ※ 前面的自動上色被取消了。

在內文沒有色碼或是其他控制碼的情況下,純文字的結果與原始ANSI控制碼的結果相同,因此不在贅述。

發文處理

加上標題

寫入內文

寫入簽名檔

推文處理

轉文處理

編輯處理

pmore 2007 動畫系統

雜項

BBSmovie 發文行限調整

Select a repo