CBData HTML 規範

出自DILA Wiki

一卷一版一檔

HTML 根據 XML <milestone unit="juan"> 切卷。
每個對校本都會有各自對應的 HTML 檔。
基本的會有底本版本(例如大正藏)以及 CBETA 版本,其他視情況不同,例如 T0001 還會有【宋】【元】【明】等版本。

HTML 檔內容架構:

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>經名</title>
</head>
<body>
  <div id="body">內文</div>
  <div id="back">校勘與缺字資訊</div>
  <div id='cbeta-copyright'>版權資訊</div>
</body>
</html>

經名

經名轉為 head/title,例如:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>長阿含經</title>
</head>

區塊標記

byline

XML 例 T01n0001

<byline cb:type="Author">長安釋僧肇述</byline>

HTML 轉為

<p class="byline">長安釋僧肇述</p>

div

type 屬性

序 XML:

<div type="xu">

轉出 HTML:

<div class='div-xu'>


附文 XML:

<div type="w">

轉出 HTML:

<div class='div-w'>

其他的 type 依此類推。各種 div 類型,參考:CBETA XML P5 Elements: div

figure 插圖

XML T16n0719, p. 845c19

<figure><graphic url="../figures/T/T16p0845_01.gif"/></figure>

HTML:

<p class='figure'><span imgsrc='T16p0845_01.gif' class='graphic'></span></p>

head

XML:

<head>

HTML:

<p class='head' data-head-level='1'>...</p>

上面的 data-head-level 屬性是標題層次,類似 HTML 的 h1, h2....等等。

juan

卷首或卷尾資訊

XML:

<juan>

HTML:

<p class='juan'>...</p>

lg 偈頌

HTML:

<div class='lg'>
  <div class='lg-row'>
    <div class='lg-cell'>諸惡莫作,</div>
    <div class='lg-cell'>諸善奉行,</div>
  </div>
  <div class='lg-row'>
    <div class='lg-cell'>自淨其意,</div>
    <div class='lg-cell'>是諸佛教。</div>
  </div>
</div>

text-indent

如果 XML <lg> 有 rend 屬性,而且屬性值之中有 text-indent,例如 T01n0001, p. 1c03

<lg rend="margin-left:1em;text-indent:-1em">
  <l>「比丘集法堂,</l><l>講說賢聖論;</l>
  <l>如來處靜室,</l><l>天耳盡聞知。</l>
  ...
  <l>無上天人尊,</l><l>記於過去佛。」</l>
</lg>

轉為 HTML 時,text-indent 屬性會移到第一個 lg-cell,以避免後面的 div 繼承到 text-indent:

<div class='lg' style="margin-left:1em;">
  <div class='lg-row'>
    <div class='lg-cell' style='text-indent:-1em'>「比丘集法堂,</div>
    <div class='lg=cell'>講說賢聖論;</div>
  </div>
  <div class='lg-row'>
    <div class='lg-cell'>如來處靜室,</div>
    <div class='lg-cell'>天耳盡聞知。</div>
  </div>
  ...
  <div class='lg-row'>
    <div class='lg-cell'>無上天人尊,</div>
    <div class='lg-cell'>記於過去佛。」</div>
  </div>
</lg>

三句一行

如果偈頌一行有三句,例 T85n2828

<lb n="1266a16" ed="T"/><l>法界亦通□</l><l>意珠恒自淨</l><l>身光照十方</l>
<lb n="1266a17" ed="T"/><l>至心無處住</l><l>解脫得清□</l><l>觀想如無想</l>

HTML 的 lg-row 就包三個 lg-cell:

<span class='lb' id='T85n2828_p1266a16'>T85n2828_p1266a16</span>
<div class='lg-row'>
  <div class="lg-cell"><span class='t' l='1266a16' w='1'>法界亦通□</span></div>
  <div class="lg-cell"><span class='t' l='1266a16' w='47'>意珠恒自淨</span></div>
  <div class="lg-cell"><span class='t' l='1266a16' w='94'>身光照十方</span></div>
</div>
<span class='lb' id='T85n2828_p1266a17'>T85n2828_p1266a17</span>
<div class='lg-row'>
  <div class="lg-cell"><span class='t' l='1266a17' w='1'>至心無處住</span></div>
  <div class="lg-cell"><span class='t' l='1266a17' w='47'>解脫得清□</span></div>
  <div class="lg-cell"><span class='t' l='1266a17' w='94'>觀想如無想</span></div>
</div>

abnormal

T51n2076, 卷9, p. 273a12, XML

<lg type="abnormal">...</lg>

原書為長行格式,轉為 HTML:

<p class='lg-abnormal'>...</p>

list

XML T55n2179, p. 1137b16

<list>
  <item>法華義疏十二卷 (嘉祥寺胡吉藏述)</item>
  <item>法華新撰疏六卷 (分本末為十二卷 吉藏述)</item>
  ....
</list>

轉為 HTML

<ul>
  <li>法華義疏十二卷 (嘉祥寺胡吉藏述)</li>
  <li>法華新撰疏六卷 (分本末為十二卷 吉藏述)</li>
  ....
</ul>

p 段落

XML 的 p 一樣轉為 HTML 的 p,但在段落開頭加上「頁、欄、行資訊」,例如:

<p><span class="lineInfo" line="0001a05"></span>夫宗極絕於稱謂,賢聖以之沖默;玄旨非言...</p>

type="pre"

按原書換行

XML 例 X66n1297, p. 266b23

<p cb:type="pre">...</p>

HTML 轉出

<p class="pre">...</p>

table

XML table, row, cell 會轉出 HTML 如下:

HTML:

<div class="bip-table">
  <div class="bip-table-row">
    <div class="bip-table-cell">...</div>
    <div class="bip-table-cell" rowspan="2">...</div>
  </div>
  <div class="bip-table-row">...</div>
  ...
</div>

範例 T49n2035_p0158c17 卷3.

行內標記

anchor

XML 例 T55n2170, p. 1095b04

牛山<anchor xml:id="fxT55p1095b02"/>一帖</note>

HTML 轉出

牛山<span class='star'>[*]</span>一帖</span>

type="circle"

XML 例 T01n0008_p0211a21, 卷2

即時<anchor type="circle"/>

HTML:

即時◎

app 校勘

內文中以 <a class="noteAnchor"> 標示註標,例如:

<a class="noteAnchor" href="#n0001001"></a>長阿含經序

並於檔尾記錄校勘內容:

<div id="back">
  ...
  <span class="footnote" id="n0001001">此序依宋元明三本ニ依テ載ス</span>
  ...
</div>

如果這個校勘註 CBETA 沒有修訂,同底本,轉出的 a 元素的 class 屬性會有 T 以及 cb:

<a class="noteAnchor T cb" href="#n0001001">

如果是經過 CBETA 修訂的校勘註,class 裡就只有 cb 而沒有 T,例如 T01n0001, 卷1:

<a class="noteAnchor cb" href="#n0001012">

[*] 校勘以 class="star" 記錄,例如:T01n0001_p0001a20

邪正難<a class="noteAnchor star" href="#n0001004"></a>

corr

CBETA 做的修訂

例 T01n0001.xml, p. 1b02:

涼州沙門佛<choice><corr></corr><sic></sic></choice>為譯

HTML <span class='cbeta'>:

<a class='noteAnchor dila' href='#dila_note1'></a>
<span class='cbeta'>
  <span class='t' l='0001b02' w='47'></span>
</span>

上面 a 元素的 class 屬性有一個 dila, 表示這是 DILA 自動產生的註。

註解區:

<span class='footnote dila' id='dila_note1'>【大】忘</span>

g 缺字

CBETA XML P5a 的缺字 g 標記,轉成 HTML 時依下列優先順序處理

  1. 有 Unicode
    1. 在 Unicode Extension C, D, E, F 範圍外:直接採用 Unicode,不視為缺字。
    2. 其他:預設呈現 Unicode 字元,但仍以缺字處理,以 <a class="gaijiAnchor"> 記錄,如: <a class="gaijiAnchor" href="#CB00400">𣽈</a>
  2. 沒有 Unicode
    1. 有 Unicode 通用字:預設呈現 Unicode 通用字,包缺字資訊
    2. 有 Big5 通用字:預設呈現 Big5 通用字,包缺字資訊
    3. 預設呈現組字式,轉出 HTML 如: <a class="gaijiAnchor" href="#CB00510">[國*瓜]</a>

並於檔尾 <div id="back"> 裡面以 <span class="gaijiInfo"> 記錄缺字資訊如下:

<div id="back">
  ....
  <span id="CB00400" class="gaijiInfo" figure_url="http://dict.cbeta.org/dict_word/gaiji-cb/00/CB00400.gif" nor="濡">𣽈</span>
  <span id="CB00510" class="gaijiInfo" figure_url="http://dict.cbeta.org/dict_word/gaiji-cb/00/CB00510.gif" nor="">[國*瓜]</span>
  ....
</div>

figure_url 屬性為缺字圖檔路徑。

悉曇字

例 T19n0944B <g ref="#SD-CDA9">􆶩</g>, 轉為

<span class='siddam' roman='sta' code='SD-CDA9' char='糽'/>

@roman 屬性值為羅馬轉寫,@code 屬性為字元編碼,@char 屬性為使用 CBETA siddam.TTF 之字元。

nor 屬性為通用字,空字串表示無通用字。

蘭札體

例 T21n1419, p. 951a15 XML:

頂上肉髻內<term xml:lang="sa-x-rj"><g ref="#RJ-CCBA">􌲺</g></term>

轉為

頂上肉髻內<span class='ranja' roman='oṃ' code='RJ-CCBA' char='抮'/>

@roman 屬性值為羅馬轉寫,@code 屬性為字元編碼,@char 屬性為使用 CBETA Ranjana.TTF 之字元。

graphic 圖形

例 T16n0719, 卷1, 845c18

<span imgsrc="T16p0845_01.gif" class="graphic"></span>

lb 行號

XML 的行號 lb 標記轉為 HTML <span class="lb">。例如:<lb n="0001a01" ed="T"/> 轉為:

<span class="lb" id="T01n0001_p0001a01">T01n0001_p0001a01</span>

type="honorific"

XML 例 J25nB154_p0031b16, 卷1

<lb ed="J" n="0031b16" type="honorific"/>今上皇帝祝延

HTML:

<span class="lb honorific" id="J25nB154_p0031b16">J25nB154_p0031b16</span>
<span class="t" l="0031b16" w="1">今上皇帝祝延</span>

卍續藏 新文豐版行號

產生在 HTML span 的 data-lr 屬性裡:

<span class="lb" id="X01n0001_p0001a04" data-lr="R150.0705.a01">X01n0001_p0001a04</span>

lem

如果是 CBETA 對底本做了修訂,那麼內文用 <span class="cbeta">,並增加一個註解顯示底本用字。

例 T32n1670A.xml, 卷2, p. 703a16, XML:

<app>
  <lem wit="【CBETA】【麗】" resp="CBETA.maha CBETA.say">制其身口者不能持經戒。....何所為得人者<note type="cf1">K30n1002_p0257a01-a23</note><note type="cf2">T32n1670Bp0718b14-c02</note></lem>
  <rdg wit="【大】"><space quantity="0"/></rdg>
</app>

轉出 HTML 內文區:

<a class='noteAnchor dila' href='#dila_note34'></a>
<span class='cbeta'>
  <span class='t' l='0703a16' w='44'>制其身口者不能持經戒。....何所為得人者</span>
</span>

註解區:

<span class='footnote dila' id='dila_note34'>修訂依據:K30n1002_p0257a01-a23;T32n1670Bp0718b14-c02。【大】-。</span>

note

type="cf1", type="cf2"

CBETA 修訂依據,例 T10n0279.xml, 卷68, p. 366a03

<note type="cf2">T10n0293_p0731c07</note>
<app>
  <lem resp="CBETA.maha" wit="【CBETA】【麗】"><note type="cf1">K08n0080_p0855a18</note><note type="cf2">T10n0293_p0731c07</note>
  </lem>
  <rdg wit="【大】"></rdg>
</app>

HTML 轉為 <span class='note_cf'>:

<span class='footnote dila' id='dila_note1'>
  修訂依據:K08n0080_p0855a18;<span class='note_cf'>T10n0293_p0731c07</span>。【大】唼。
</span>

type="orig" 底本註

XML 例 T01n0001.xml

<note n="0001001" resp="Taisho" type="orig" place="foot text">此序依宋元明三本ニ依テ載ス</note>

如果 CBETA 未修訂底本註,表示 CBETA 版同底本,所以 class 屬性裡有 T 也有 cb:

<a class="noteAnchor T cb" href="#n0001001"></a>

註的內容放在 HTML back 裡,class='footnote cb':

<div id='back'>
...
<span class='footnote cb' id='n0001001'>此序依宋元明三本ニ依テ載ス</span>
...
</div>

如果註解有經過 CBETA 修訂,<note type="orig"> 在 CBETA 版就不呈現。

type="orig_biao" 底本標註

X19n0347.xml, 卷6, p. 561b24, XML:

<note n="0561b15" resp="Xuzangjing" place="foot text" type="orig_biao">
  法身大士身心無倦聲聞結業者心雖樂法身有疲厭或發息止想而淨名懸得其心故床坐獨寢旨現于此矣因舍利弗何坐之問而發之
</note>

HTML 內文中 a 元素 data-label 屬性值設為「標15」:

<a class='noteAnchor X' href='#n0561b15' data-label='標15'></a>

註的內容放在 HTML back 裡,class='footnote X':

<div id='back'>
  ...
  <span class='footnote X' id='n0561b15'>
    法身大士身心無倦聲聞結業者心雖樂法身有疲厭或發息止想而淨名懸得其心故床坐獨寢旨現于此矣因舍利弗何坐之問而發之
  </span>
  ...
</div>

type="orig_ke" 底本科註

X19n0343.xml, p. 161b13, XML:

<note n="0161k01" resp="Xuzangjing" place="foot text" type="orig_ke">四列名</note>

HTML 內文 a 元素的 data-label 屬性設為「科01」:

<a class='noteAnchor X' href='#n0161k01' data-label='科01'>

註的內容放在 HTML back 裡,class='footnote X':

<div id='back'>
  ...
  <span class='footnote X' id='n0161k01'>四列名</span>
  ...
</div>

type="mod" CBETA 修訂註

XML 例 T01n0001, 卷1:

<note n="0001012" resp="CBETA" type="mod">後秦弘始年=姚秦三藏法師【宋】【元】【明】</note>

產生的 HTML 在內文裡的註標:

<a class="noteAnchor cb" href="#n0001012"></a>

註的內容放在 HTML back 裡,class='footnote cb':

<span class='footnote cb' id='n0001012'>後秦弘始年=姚秦三藏法師【宋】【元】【明】</span>

雙行夾註

例 T01n0001.xml, 卷4, p. 30a17

<note place="inline">丹本注云問中應有何等時出家諸本並闕</note>

轉為 HTML:

<span class='doube-line-note'>丹本注云問中應有何等時出家諸本並闕</span>

行間註

例 X61n1165.xml, 卷3, p. 793b24

<note place="interlinear">以下正明欲見即見之故</note>

轉為 HTML

<span class='interlinear-note'>
  <span class='t' l='0793b24' w='52'>以下正明欲見即見之故</span>
</span>

sg

例 T54n2135, p. 1241a25

<cb:yin><cb:zi>婆羅</cb:zi><cb:sg>二合</cb:sg></cb:yin>

轉為

婆羅(二合)

unclear

XML 例 J26nB182_p0481a20, 卷10

<unclear/>是歕

HTML:

是▆是歕

Empty Element

目錄 品標題

品標題可用於引用複製顯示出處品名。

XML 例 T01n0001_p0114b07, 卷18

<cb:mulu level="3" type="品">1 閻浮提州品</cb:mulu>

HTML:

<mulu class='pin' s='1 閻浮提州品'/>

文字

文字外面都用 <span class='t'> 包起來,例如:

<span class='t' l='0001a02' w='1'>長阿含經</span>

l 屬性是行號,w 屬性表示是該行第幾個字。