Hyper-G Text Format 2.1.2 中文版

1.2 辭庫

3 HTF and rest of the world

3.1 HTF 和 Hyper-G

HTF 和 Hyper-G 的緊密相關可由下列幾方面看出來: HTF 是 Hyper-G 較常用的文字 格式. 這表示所有目前或將來可能出現的 Hyper-G 客戶端程式都會支持這種格式, 即使將來有其他的格式被支援亦然.

Hyper-G 的客戶端程式包含一個通用的 SGML 分析器,使它可以顯示任何 SGML 標示 的文件(要有 DTD 和 style sheet 就是了). 另有一個獨立出來的分析程式叫 hgparse, 它是 Hyper-G 伺服器的一部份, 功能是用來檢驗文件中所用的 SGML 標示 是否正確, 並且將它轉換成其它文字格式及提供適當的 style sheet.

3.2 HTF 和 SGML

HTF 是依 ISO SGML 而訂定的. SGML 是一種定義結構化文件格式及標示語言用以表示 那些文件形態的標準. 每個 SGML 文件都包括以下三部分:

當我們提到 HTF 文件時,我們是表示 SGML 文件的本體部份. 也只有這部分才會被存 放在 Hyper-G 伺服器.

3.3 HTF 和 HTML

HTML 是 WWW 所用的標示語言. 大體來說,HTML 和 HTF 很近似,但還是有些根本上的 不同. 然而,依然有可能在只損失一點點資訊的情況下將 HTF 轉成 HTML 格式的. 因 為 Hyper-G (即 HTF) 的重要特點就是和 W3 的瀏覽器共存. 因此在此文件中,也敘 述了每個標籤所對映到的 HTML 標籤.

HTF 的基本字元集是 ISO Latin-1. 其他的數字字元集都參考這個集合. 當一個元素 是以 7 bit 編碼的(ASCII) 那字元對應及實體對映的機制就會被用來編造 ISO Latin-1 集合右上部字元碼. 除了數字字元外,它也定義了一些實體的名字.

4 SGML 簡介

在 SGML 中,文字不是照所希望被呈現的視覺效果而編排的(例如: 用一些特別的敘述來 表示 "換成 15 點大小的字"). 而是指定其語義結構(例如:這是標題), 而且它也將呈 現資訊的這部分工作留給其它程序去傷腦筋(例如:用 15 點大小的字顯示標題).

SGML 是種會給你很大自由去安排你的標示該長什麼樣的後設標準. 也因此,一些不同 的,複雜且不相容的 SGML 標示曾經被提議出來用在某些特定領域之內. 而 HTF 設計 的注重的是能獨立於某些特定的派別. 這表示 HTF 必須成為它們的"超集"才能轉換 並儲存它們,以使用 Hyper-G.

然而,再設計 HTF 的時候,也採用了不同的方法. 與其將重點放在成為所有 SGML 標示 語義的"超集", HTF 這個標示語言的重點在於表現上面而非文件的語義. 例如,有一些 HTF 中的標籤是用來加強一段文字的語氣. HTF 對這段文字在語義上的意義並沒有什 麼興趣, 就是它並不在乎為什麼這段文字應該被加強語氣. 這使得 HTF 成為一個很小 的標示語言, 更能簡單地管理及處理. 一個大的 SGML DTD 可以根據一種"前置處理" 把語義的元素映射到簡單的 HTF 元素以產生小的 HTF DTD.

SGML 的信徒們會爭論說這有違 SGML 的哲學, 也造成更難控制的 HTF, 因為它不可能 重製一份文件的語義. 然而, Hyper-G 並非用來當作一種準備文件系統,而是文件傳播 系統, 所以支持較廣大的使用者及使用者介面就更重要了, 即使只是從簡單的終端機 開始.

4.1 標籤

每個 HTF 元素都以一個標籤開始, 而每個非空元素也以一個標籤作為結束. 起始標籤 是用 < 和 > 這兩個區隔字元包起來的,而結束標籤則是 </ 和 >

元素的名字是緊跟在開始的區隔字元之後. 名字包含一個字母,後面至多可以跟著 33 個以內的字母,數字,句點或"-". 大小寫沒有關係.

在一個起始標籤中,屬性和空白是可以出現在元素名字和結束的之區隔字元間. 一個屬 性包含名字,和可有可無的等號及值. 空白可以在等號兩端出現. 屬性的值是包在單或 雙引號內的字串.

4.2 實體對應

HTF DTD 容許在 ISO Latin-1 字集中只用 7 bit 字元表現 8 bit 字元, 並用 SGML 的實體對應來表示可能被誤認為標示的字元 ( < 和 & ). 當 & 字元後面跟著一個字 或數字時,就表示一個實體對應. 區隔字元則是後面所跟的實體名稱和分號. 例如: "&Ouml;sterreich" is the German word for "Austria". 字元 & 本身是用 &amp; 這實體對應來表示, &lt; 表示 < 當它們出現在資料中,就 用這種方法表示.

4.3 註解

SGML 預見了在文件中引入註解的可能性(但是分析程式要忽略他們). 註解以 <!-- 開始, --> 結束,可在文件中任何地方出現. 有些註解可能被 Hyper-G 了解並除去, 而且允許其指定文件的位置(父集合, 搜尋, 關鍵),語言,過期日等. 例如:

<TITLE>Staff Meeting Nov. 23, 4pm
<!--TimeExpire=93/11/23 16:00:00-->
This document will expire at the specified time.

4.4 斷行、空白、tab

當斷行字元在元素所包含內文的第一個或最後一個位置出現時,會被視為標示(並被 忽略)。如此你就可以寫作:

<XMP>some example text</XMP>



<XMP>
some example text
</XMP>

兩者被處理後所產生的結果都一樣。一個非空白但是沒有內容的行也會被忽略,例如:

<XMP>
first line
<!-- comment -->
second line

fourth line
</XMP>

只包含以下這些字串:

first line
second line

fourth line

不過有個特例是,HTF 將一個空行(兩個連續的斷行字元)視作一個段落的結束,除非 它們位在 <XMP> 或 <PLAIN> 元素內。

空白或 tab 是不應該被用來使 SGML 原始文件看起來更好看或易讀的!

HTF 標籤

概論

以下此表是列出目前(1.63)的 Hyper-G 終端瀏覽器和 Harmony 在預設的 style sheet 下所支援的標籤,還有透過 WWW Gateway 所轉換成相對應的 HTML 標籤。
元素HGTV/HarmonyHTML
<AS>yes<A>
<AE>yes</A>
<COMPACT>yesauto applied
<CSPC>yestag ignored
<DL>yes<DL>
<DT>yes<DT>
<DD>yes<DD>
<H0>yes<H1>
<H1>yes<H1>
<H2>yes<H2>
<H3>yes<H3>
<H4>yes<H4>
<H5>yes<H5>
<H6>yes<H6>
<HP0>yesnothing
<HP1>yes<STRONG>
<HP2>yes<STRONG>
<HP3>yes<EM>
<HR>yes<HR>
<INLINE>no/yes<IMG>
<IT>yes<LI>
<KEY>yeselement ignored
<L LEFT>yes<BR>
<L RIGHT>yes<BR>
<L CENTER>yes<CENTER>
<L INDENT>yes<BR>
<LI ALPHA>yes<OL>
<LI ARABIC>yes<OL>
<LI DEFAULT>yes<UL>
<LI NONE>yes<UL>
<LQ>yes/no<BLOCKQUOTE>
<P>yes<P>
<PLAIN>yes<PRE>
<SUB>no<SUB>
<SUP>no<SUP>
<TITLE>yes<TITLE>
<VERBATIM>yes<XMP>
<XMP>yes<PRE>

HTF 文件

HTF 概論

一份有效的 HTF 文件中的標籤(在這段文字中,「HTF文件」表示此文件的 SGML 本 體。)也許並不依照任何順序而出現,只是被 HTF DTD 中所規定的正式語法細節所限 制住。不過,因為 DTD 頗為艱澀難懂,我們現在對一份有效的 HTF 文件給予一個較 不正式且已經簡化過了的描述。例如這裡有兩個典型的 HTF 文件:

<TITLE>A structured HTF document
<H1>Heading Level One<P>
This is a typical paragraph.

And this is another one.
<LI>
<IT>first list item
<IT>second list item
</LI>

<title>A preformatted HTF document<plain>
This is a preformatted text that appears exactly as typed in:
	A | B | C
       ---+---+---
	1 | 5 | 7

Be careful to replace all < and & symbols !!!

HTF 文件的第一個標籤一定是 <TITLE>。當標題後面有 <H0>,<H1>,<COMPACT>, <P>或<PLAIN>結尾時,</TITLE>就可以省略。

從上面的兩個例子,你可以看出來基本上有兩種 HTF 文件:結構化的 HTF 和一般 的 ASCII。如果標題後面跟著的是 <PLAIN>,則其餘的文字會被當作一般的 ASCII 文字看待,也就是說在顯示這些文字時是以固定大小的字形,保留其輸入時的格式 和換行。從 <PLAIN> 起,除了 <AS>,<AE>,<KEY>,<INLINE>,<UCS>及<FN>以外 ,不能有其它標籤出現。

從另一方面看來,格式化的 HTF 通常以一個 <H1> 標籤開始並且跟著一連串的段落 、條列、其它子標題等。已格式化的文字優點在於其輸出是由 renderer 定義的, 所以可以用不同的字形和視窗大小還有使用者的偏好來讓文件表現得更吸引人。

有 6 個標籤可以在 HTF 文件中到處出現:<AS>,<AE>,<KEY>,<INLINE>,<UCS> ,和<FN>。在已格式化的 HTF 文件中,<HP0>,<HP1>,<HP2>,<HP3>,<SUB>, <CSPC>,<Q>和<SUB>及相關的標籤,可以在標題(包括標題和文字)後出現。其它標 籤除了特別聲明外,可以在段落中出現。詳細規則定義在 DTD 中。

4.5 <AS>,<AE>:錨


Last Modified: $Date: 1996/01/16 13:45:57 $