すべてのWeb開発者が自分のタイポグラファーを書いたり、考えたりしたことがありました。 私も例外ではなく、PHPでタイポグラファーを書きました。 しかし、UTF-8の通常のサポートなしでプリンタを作成する方法は、当時は考えもしなかったため、その結果、アイデアを放棄しました。
時間が経ちましたが、タイポグラファーを作成するというアイデアは消えませんでした。私は
それをすでにJavaScriptで書く
ことにしました。
基本的な要件から開始:
- UTF-8のみ。
- 柔軟性と拡張性。
- JavaScriptがあるクライアントとサーバーで動作します。
- サポート(X | HT)ML;
- デフォルトでは、HTMLエンティティは純粋なUTF-8文字に変換されます。
- 活版印刷のスタイルとスクリプトを使用しないでください。
- CLIユーティリティ。
私はすぐにタイポグラファーのルールのモジュール性に到達しました。1つのルール-1つの関数-1つのファイル、すべてのルールは
グループに分散さ
れています 。
ルールの追加は非常に簡単です。
Typograf.rule({ name: 'common/other/emoji', handler: function (text) { return text.replace(/:-\)/g, '\uD83D\uDE0A'); } });
プリンタのコアは
、関数ルールを起動
し 、処理されたテキストをルールから
ルールに渡します。
いくつかのルールはテキスト処理の最初から最後まで実行する必要があるため、キューがあります。
ルールには、ルールを実行するキュー内の順序のインデックスがあります。これにより、正規表現の複雑さが軽減されます。
ルールはオンとオフを切り替えることができます。 句読点のハングなど、一部のルールはデフォルトでオフになっています。
クイックスタート
ブラウザで
npm i typograf
<script src="./node_modules/dist/typograf.min.js"></script> <script> var tp = new Typograf({lang: 'ru'}); alert(tp.execute(' - !! ')); </script>
Node.jsで
npm i typograf
var Typograf = require('typograf'), tp = new Typograf({lang: 'ru'}); tp.enable('ru/optalign/*');
CLI
インストール:
npm i typograf -g
ロシアの規則に従ってテキストを入力します。
typograf -l ru my_file.txt > my_new_file.txt
プリンターを使用するためのオプション:
各タイポグラファーは、タイポグラフィーの後にエラーがあります。 テストテキストとユーザーが多ければ多いほど、タイポグラファーは優れています。つまり、
Githubでのコメントとプルリクエスト
は歓迎されます。