-
-
Notifications
You must be signed in to change notification settings - Fork 11
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
Comments
Prettierの仕様が参考になると思います(流石に日英間を消すかどうかを文脈依存にするのはやり過ぎたと思っています) prettier/prettier#11597 それと、Firefox限定で日本語に挟まれた改行は空白にならず消されます |
現在のFirefoxの仕様 ※日中 = East Asian WidthがW・F・Hのいずれか かつ 用字がハングルでない かつ 絵文字(Firefoxは絵文字(Emoji)プロパティで判断だが㊙などを絵文字と誤判定する)でない 次の1.・2.のいずれか(直前のバリエーションセレクタは無視)
|
現在のFirefoxの仕様、かなり良いと思いますが、ひとつ気になったことは、 であげた例のうち、次のものがこの期待通りにならないことです:
JLREQ「3.1.6 区切り約物及びハイフン類の配置方法」 で、「文末にくる区切り約物(cl-04)の前はベタ組とし,区切り約物(cl-04)の後ろは全角アキとする」と書かれているように、文末の区切り約物(!や?)のあとには全角スペースを入れるのが通常です。文末ごとに改行を入れて入力したようなテキストデータの場合、全角スペースの直後で改行が入っていることになります。ブラウザでこの改行は無視されてほしいですが、Firefoxでもこれができてません。 |
現在はバリエーションセレクタを飛ばして隣の文字を探しているとのことですが、一般カテゴリがZsのもの(=全半角空白含む)も飛ばすように変更すると良さげですね。 |
「現在のFirefoxの仕様」の
を ※日中約物 = (日中かつ約物)またはU+FF5E(~)またはU+3000(全角スペース) に変えるのがよいのでないでしょうか? 全角スペースの直前の文字が何であろうと、全角スペースのあとに改行があるときその改行はスペースに変換されないほうがよいと思います。 |
確かに。 |
全角スペースは空白文字なのに約物のように扱う例外的な文字なので、U+FF5E(~)と同様にコードポイント指定でよいと思います。CSS Text Level 4仕様の text-spacing-trim と hanging-punctuation でも、「ideographic space (U+3000)」が隣接する全角約物の詰めや、先頭約物の突き出し対象になることが、コードポイント指定で書かれているし。 |
了解です |
https://bugzilla.mozilla.org/show_bug.cgi?id=1950321 投げました |
Goals
現在のvfmでは、
--hard-line-breaks
オプション(設定のhardLineBreaks
プロパティ)が指定されないかぎり、テキスト内の改行文字はそのまま出力されます。その改行文字は、ブラウザの標準のwhite-space処理によりスペース(U+0020)に変換されます。この改行がスペースに変換される仕様は欧文にはよいですが、日本語や中国語のように単語間や文間にスペースを入れないで書く言語では、不便です。vfmで、テキストを整形出力しているところの処理を改良して、改行の前後の文字が全角文字ならば改行を削除するようにするのがよいかと思います。現状のvfmでは:
この結果、ブラウザでの出力では、
のように余計なスペースが入ることになる。
vfmを改良して、
のように前後が全角文字なら改行を削除するようにするとこの問題が解消する。
Prior Art
Discussion
改行文字の前後がどのような条件の場合に改行を削除するか、仕様を決める必要がある。
CSS Textでのwhite-spaceの処理で同様の議論がされている。次のissueで提案されている方法を採用したい:
The text was updated successfully, but these errors were encountered: