Open MurakamiShinyu opened 6 months ago
現在のvfmでは、 --hard-line-breaks オプション(設定の hardLineBreaks プロパティ)が指定されないかぎり、テキスト内の改行文字はそのまま出力されます。その改行文字は、ブラウザの標準のwhite-space処理によりスペース(U+0020)に変換されます。この改行がスペースに変換される仕様は欧文にはよいですが、日本語や中国語のように単語間や文間にスペースを入れないで書く言語では、不便です。vfmで、テキストを整形出力しているところの処理を改良して、改行の前後の文字が全角文字ならば改行を削除するようにするのがよいかと思います。
--hard-line-breaks
hardLineBreaks
現状のvfmでは:
$ vfm 日本語の文章を書くときに、 適当に改行を入れながら 書けるようにしたい。 <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <p> 日本語の文章を書くときに、 適当に改行を入れながら 書けるようにしたい。 </p> </body> </html>
この結果、ブラウザでの出力では、
日本語の文章を書くときに、 適当に改行を入れながら 書けるようにしたい。
のように余計なスペースが入ることになる。
vfmを改良して、
<p> 日本語の文章を書くときに、適当に改行を入れながらようにしたい。 </p>
のように前後が全角文字なら改行を削除するようにするとこの問題が解消する。
改行文字の前後がどのような条件の場合に改行を削除するか、仕様を決める必要がある。
CSS Textでのwhite-spaceの処理で同様の議論がされている。次のissueで提案されている方法を採用したい:
Goals
現在のvfmでは、
--hard-line-breaks
オプション(設定のhardLineBreaks
プロパティ)が指定されないかぎり、テキスト内の改行文字はそのまま出力されます。その改行文字は、ブラウザの標準のwhite-space処理によりスペース(U+0020)に変換されます。この改行がスペースに変換される仕様は欧文にはよいですが、日本語や中国語のように単語間や文間にスペースを入れないで書く言語では、不便です。vfmで、テキストを整形出力しているところの処理を改良して、改行の前後の文字が全角文字ならば改行を削除するようにするのがよいかと思います。現状のvfmでは:
この結果、ブラウザでの出力では、
のように余計なスペースが入ることになる。
vfmを改良して、
のように前後が全角文字なら改行を削除するようにするとこの問題が解消する。
Prior Art
Discussion
改行文字の前後がどのような条件の場合に改行を削除するか、仕様を決める必要がある。
CSS Textでのwhite-spaceの処理で同様の議論がされている。次のissueで提案されている方法を採用したい: