読みやすさを向上させるために、ドキュメントに実数テストされたタイポグラフィルールを適用するためのモジュール。
タイポグラフィは、科学と同様に芸術であり、歴史の中で洗練されてきました。テキストの読みやすさと流れを改善するために容赦なく取り組んでいる世界中のタイポグラファーは、今日の出版物媒体にしばしば破棄される多くのルールを考案しました。このモジュールは、この状況を修正することを目指しています。
これは非常に進行中の作業であり、あなた自身のニーズに適しているとは思わないかもしれません。このプロジェクトを改善するために多くの方法で貢献することができます。プルリクエストを提出したり、アイデアを提案したり、国の独自の誤った慣習を文書化したりすることによって。
typographer ( input , configuration ) ; inputは文字列またはHTML要素です(HTML入力に関する制限を参照)。
configuration 、次のオプションプロパティを備えたオブジェクトです。
locale :使用する言語コード。デフォルトはenです。output_format : textまたはhtmlいずれか、交換に使用される形式(壊れないスペースの場合はeg 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'
}
) ;
} ) ; このプロジェクトの最初の動機はスペースです。ご存知かもしれませんが、スペースには1種類以上のスペースがあります。
通常のスペースに似ていますが、ラッピングするときは2行で壊れることはできません。両方の単語(壊れないスペースで区切られています)は、常に同じ行になります。 通常のスペースよりも狭いスペースです。 薄いスペースと同じサイズですが、2本の線で壊れることはできません。これらの4種類のスペース以上のものがありますが、アイデアが得られます。非壊れたスペースは、奇妙な包装を防ぐのに本当に便利です。
451 °Fを考慮してください、値よりもユニットを別のラインに載せるのは奇妙ではないでしょうか?これは、非壊れたスペースの目的です。壊れないスペースを使用します。
これは決して完璧ではなく、タイポグラファーが苦労する多くのケースがあります。たとえば、国際ユニットシステムは、ユニットの前にスペース(壊れないもの)が先行する必要があることを指定していますが、何かがユニットであることを確認することはかなり困難です。一部のユニットは非常に曖昧な場合があります(たとえば、Voltのv、5のローマ数字にもなります)。
私たちは私たちがかなり確信しているユニットに非壊れたスペースを追加し、あいまいなもののためにそれをするためにあなたに任せます。
句読点の前に非壊れたスペース(通常または狭い)を必要とするロケールを使用してHTML文字列入力を使用する場合、たとえば<code>や<style>などの変換されるべきではないタグが含まれていないことを確認する必要があります。それ以外の場合はcolor : red ;のようなものになります。スタイリングやコードサンプルを破壊します。
HTML要素の使用は、前述のもの(およびその他)のように変換されるべきではないノードを除外するため、安全です。入力内の要素にこれらのノードタイプの一部が含まれている場合、コンテナ要素全体をスキップすることに注意してください。
私たちはできる限り自動的に修正するように最善を尽くしますが、タイポグラファーの最初のルールは次のとおりです。「疑わしいときは、物事をそのまま残してください。」
これは、それがトリッキーになり、規則が国によって異なる場合、特定の国でさえ、複数の推奨スタイルがある可能性があります。デフォルトでは、典型的な80〜20のアプローチで、議論の余地のないタイポグラフィルールを適用することに焦点を当てます。
注:カナダ(フランス語)は、句読点にさまざまなルールを使用しています。
,以前にスペースがなく、その後の通常のスペースが必要です。.以前にスペースがなく、その後の通常のスペースが必要です。:壊れないスペースが前に、そしてその後の通常のスペースが必要です。;前に狭い壊れないスペースと、その後の通常のスペースが必要です。?前に狭い壊れないスペースと、その後の通常のスペースが必要です。!前に狭い壊れないスペースと、その後の通常のスペースが必要です。« 、 ‹前に通常のスペースと狭い壊れないスペースがあるはずです。» 、 ›前に狭い非壊れのないスペースと通常のスペースがあるはずです。“ 、 '前に定期的なスペースがあり、その後のスペースがないはずです。” 、 '以前にスペースがなく、その後の通常のスペースがないはずです。(前に通常のスペースがあり、その後のスペースがないはずです。)前にスペースがなく、その後の通常のスペースが必要です。[前に通常のスペースがあり、その後のスペースがないはずです。]以前にスペースがなく、その後の通常のスペースが必要です。- (ハイフン)以前にもその後もスペースがないはずです。— (em、long)または– (en、medium)は、いくつかのテキストの周りにペアになったときに、外側の通常のスペースと内部の壊れないスペースを持つ必要があります。… 、 ... 、 または. . .以前にスペースがなく、その後の通常のスペースが必要です。正方形の括弧や括弧の間にある場合は、以前にもその後もスペースがないはずです。'以前にもその後もスペースがないはずです。,以前にスペースがなく、その後の通常のスペースが必要です。.以前にスペースがなく、その後の通常のスペースが必要です。:以前にスペースがなく、その後の通常のスペースが必要です。;以前にスペースがなく、その後の通常のスペースが必要です。?以前にスペースがなく、その後の通常のスペースが必要です。!以前にスペースがなく、その後の通常のスペースが必要です。“ 、 '前に定期的なスペースがあり、その後のスペースがないはずです。” 、 '以前にスペースがなく、その後の通常のスペースがないはずです。« 、 ‹前に通常のスペースと狭い壊れないスペースがあるはずです。» 、 ›前に狭い非壊れのないスペースと通常のスペースがあるはずです。(前に通常のスペースがあり、その後のスペースがないはずです。)前にスペースがなく、その後の通常のスペースが必要です。[前に通常のスペースがあり、その後のスペースがないはずです。]以前にスペースがなく、その後の通常のスペースが必要です。- (ハイフン)以前にもその後もスペースがないはずです。— (em、long)または– (en、medium)は、以前にもその後もスペースを持たないはずです。 EMダッシュには、引用符のソースを示すために使用される場合、スペースが必要です。… 、 ... 、 または. . .前後に通常のスペースを持つことができます。前のスペース、後のスペース、通常のスペース、または前のスペースがあります。'以前にもその後もスペースがないはずです。 ほとんどの場合、一般的な言語コードを使用できますが、適用された変換が間違っていると思う場合は、国の特定のロケールコードを使用してみてください。たとえば、Canadian French( 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リヒテンシュタインde_LUルクセンブルクesスペイン語の一般的な言語コードes_ESスペインes_ARアルゼンチンes_BOボリビアes_CLチリes_COコロンビアes_CR -Costa ricaes_DOドミニカ共和国es_EC -Ecuadores_SV -El Salvadores_GTグアテマラes_HNホンジュラスes_MXメキシコes_NIニカラグアes_PAパナマes_PY -paraguayes_PEペルーes_PRプエルトリコes_UYウルグアイes_US米国es_VEベネズエラ