vivliostyle / vfm

⬇️ Open and extendable Markdown syntax and toolchain.
https://vivliostyle.github.io/vfm/#/vfm
Other
69 stars 12 forks source link

spec: 日本語の段落の途中の改行がスペースに変換されないように削除してほしい #187

Open MurakamiShinyu opened 6 months ago

MurakamiShinyu commented 6 months ago

Goals

現在のvfmでは、 --hard-line-breaks オプション(設定の hardLineBreaks プロパティ)が指定されないかぎり、テキスト内の改行文字はそのまま出力されます。その改行文字は、ブラウザの標準のwhite-space処理によりスペース(U+0020)に変換されます。この改行がスペースに変換される仕様は欧文にはよいですが、日本語や中国語のように単語間や文間にスペースを入れないで書く言語では、不便です。vfmで、テキストを整形出力しているところの処理を改良して、改行の前後の文字が全角文字ならば改行を削除するようにするのがよいかと思います。

現状の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>

のように前後が全角文字なら改行を削除するようにするとこの問題が解消する。

Prior Art

Discussion

改行文字の前後がどのような条件の場合に改行を削除するか、仕様を決める必要がある。

CSS Textでのwhite-spaceの処理で同様の議論がされている。次のissueで提案されている方法を採用したい: