將經過時間測試的印刷規則應用於文檔以提高可讀性的模塊。
排版是一門藝術,就像一門科學一樣,在整個歷史過程中都得到了完善。全世界的印刷專家無情地致力於提高文本可讀性和流動性,設計了許多規則,這些規則通常在當今的出版媒介上被丟棄。該模塊旨在糾正這種情況。
這是一項正在進行的工作,您可能不會發現它適合自己的需求。您可以通過多種方式為改進該項目做出貢獻:通過提交拉動請求,建議想法或記錄您國家自己的印刷慣例。
typographer ( input , configuration ) ; input是字符串或HTML元素(請參閱有關HTML輸入的限制)。
configuration是具有以下可選屬性的對象:
locale :要使用的語言代碼。默認為en 。output_format : text或html ,用於替換的格式(例如u00a0或 用於非破壞空間)。默認是text 。disable_rules :禁用規則/規則集的數組(例如['ruleset/name1', 'ruleset2/name2', 'ruleset3', ...] )。根據輸入類型,打印機將返回字符串(使用字符串輸入時),或直接在DOM中更新元素及其後代。
const fixed = typographer (
'Bonjour typographer: enchanté !' ,
{
locale : 'fr_FR' ,
output_format : 'html'
}
) ;
console . log ( fixed ) // 'Bonjour typographer : enchanté !' const elements = document . querySelectorAll ( '.fixTypography' )
[ ] . forEach . call ( elements , element => {
typographer (
element ,
{
locale : 'fr_FR' ,
output_format : 'html'
}
) ;
} ) ; 該項目的第一個動機是空間,您可能知道,不僅有一種空間,我們會看一些:
類似於常規空間,但包裝時不能在兩條線上折斷。這兩個單詞(被非破壞空間隔開)總是最終出現在同一行上。 是一個比常規空間狹窄的空間。 與薄空間的大小相同,但不能在兩條線上折斷。不僅有這四種類型的空間,但是您明白了。非破壞空間對於防止怪異包裹確實很有用。
考慮451 °F ,將單元放在單獨的線上比值比值奇怪嗎?這是非破壞空間的目的。您想使用非破壞空間。
這永遠是完美的,在很多情況下,印刷作者會掙扎,例如,國際單位體係指定該單元應在空間之前(一個不破壞的空間),但很難確保某件事是一個單位。某些單元可能非常模棱兩可(例如,Volt的V V也可能是5的羅馬數字)。
我們將在我們很確定的單位上添加一個非破壞空間,並將其保留給您以模棱兩可的空間。
如果您在標點符號之前使用的HTML字符串輸入帶有需要非破壞空間(常規或狹窄)的語言環境,則應確保字符串不包含任何不應轉換的標籤,例如<code>或<style> 。否則,您最終會得到諸如color : red ;這會破壞您的樣式或代碼樣本。
使用HTML元素輸入是安全的,因為我們過濾了不應像上述內容(和其他節點)那樣轉換的節點。請注意,如果輸入中的元素包含其中一些節點類型,我們將跳過整個容器元素。
我們盡力自動盡可能多地修復,但是上版作者的第一組是:“如有疑問,請隨身攜帶事物。”
這是棘手的,規則在各個國家 /地區都有不同,即使在一個給定的國家,也可能有一種不止一種建議的風格。默認情況下,我們將專注於以典型的80-20方法應用無可爭議的印刷規則。
注意:加拿大(法語)使用不同的規則進行標點符號。
,以前應該沒有空間,之後的常規空間。.以前應該沒有空間,之後的常規空間。:以前應該有一個非破壞空間,然後有一個常規空間。;之前應該有一個狹窄的非破裂空間,然後有一個常規空間。?之前應該有一個狹窄的非破裂空間,然後有一個常規空間。!之前應該有一個狹窄的非破裂空間,然後有一個常規空間。« ‹在以前應該有一個常規空間,之後的非破裂空間狹窄。» , ›之前的非破裂空間應該有一個狹窄的空間,然後有一個常規空間。“ , '之前應該有一個常規空間,然後沒有空間。” '(之前應該有正常空間,之後沒有空間。)以前應該沒有空間,之後的常規空間。[之前應該有一個常規空間,之後沒有空間。]以前應該沒有空間,之後的常規空間。- (連字符)不應在之前和之後沒有空間。— (em,long)或– (en,medium)在外面有常規空間,並且在圍繞某些文本配對時,內部應有一個不破裂的空間。… , ... , 或者. . .以前應該沒有空間,之後有常規空間。除非在平方括號或括號之間,否則在此之前或之後沒有空間。'在之前和之後都沒有空間。,以前應該沒有空間,之後的常規空間。.以前應該沒有空間,之後的常規空間。:以前應該沒有空間,之後的常規空間。;以前應該沒有空間,之後的常規空間。?以前應該沒有空間,之後的常規空間。!以前應該沒有空間,之後的常規空間。“ , '之前應該有一個常規空間,然後沒有空間。” '« ‹在以前應該有一個常規空間,之後的非破裂空間狹窄。» , ›之前的非破裂空間應該有一個狹窄的空間,然後有一個常規空間。(之前應該有正常空間,之後沒有空間。)以前應該沒有空間,之後的常規空間。[之前應該有一個常規空間,之後沒有空間。]以前應該沒有空間,之後的常規空間。- (連字符)不應在之前和之後沒有空間。— (em,long)或– (en,edimed)在之前和之後不應沒有空間。 EM破折號在用來指示引號的來源之前應該有一個空間。… , ... , 或者. . .可以在之前和之後有常規的空間,之前沒有空間,也可以有一個常規空間,或者以後沒有一個空間,也沒有空間。'在之前和之後都沒有空間。 在大多數情況下,您可以簡單地使用一般語言代碼,但是如果發現應用的轉換不正確,請嘗試使用特定的語言環境代碼為您的國家 /地區使用。例如,加拿大法語( fr_CA )使用不同的間距規則來標點符號,因此在這種情況下使用fr很可能會產生不當的結果。
en英語的一般語言代碼en_US美國en_GB英國en_CA加拿大en_AU澳大利亞en_NZ新西蘭en_IN印度fr法語的一般語言代碼fr_FR法國fr_BE比利時fr_CA加拿大fr_CH瑞士fr_LU盧森堡fr_MC摩納哥de德語的一般語言代碼de_DE德國de_AT奧地利de_BE比利時de_CH瑞士de_LI -liechtensteinde_LU盧森堡es西班牙語的一般語言代碼es_ES西班牙es_AR阿根廷es_BO玻利維亞es_CL智利es_CO哥倫比亞es_CR哥斯達黎加es_DO多米尼加共和國es_EC厄瓜多爾es_SV -El Salvadores_GT危地馬拉es_HN洪都拉斯es_MX墨西哥es_NI -NICARAGUAes_PA巴拿馬es_PY巴拉圭es_PE秘魯es_PR波多黎各es_UY烏拉圭es_US美國es_VE委內瑞拉