Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
MurakamiShinyu opened this issue Dec 28, 2023 · 0 comments
Labels
spec Spec related thing

Comments

@MurakamiShinyu
Copy link
Member

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

  • 日本語のTeXでの扱いでは、改行の直前の文字が全角文字であれば改行はスペースに変換しないで削除するようになっている

Discussion

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

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

@MurakamiShinyu MurakamiShinyu added the spec Spec related thing label Dec 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec Spec related thing
Projects
None yet
Development

No branches or pull requests

1 participant