vivliostyle / vfm

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

feat: Change automatic line breaks to optional #64

Closed akabekobeko closed 3 years ago

akabekobeko commented 3 years ago

50 対応。

akabekobeko commented 3 years ago

今回の PR から API やプロパティーなどにコード ドキュメントを付けるようにしました。コードが自己言及的に書かれていればコメントは不要という思想もありますが、最もコードに近い場所へ意図などを記述する場としてコメントはあったほうがよいと考えているため、今後はなるべく書く予定です。

IDE や VS Code など入力補完の効く環境下で API リファレンスとして機能することも狙っています。

akabekobeko commented 3 years ago

すみません。CLI 対応が抜けてたので改めてコミットしました。もし CLI を試される場合は sample.md を以下の内容で作成して

テスト
テスト

VFM を npm link した後に sample.md の置かれた場所で

$ vfm sample.md

$ vfm sample.md --auto-line-breaks

を比較してください。既定値 false なのでオプション未指定はそのまま、指定すると改行位置に <br> が挿入されます。

akabekobeko commented 3 years ago

↑のコメントを書いて思ったのですが remark-breaks の処理は「変換」ではなく、改行位置へ <br> を挿入して元の改行は残るため「変換」以外で表現したほうがよいのかもしれません。

コード ドキュメントや CLI ヘルプでは "Convert" としましたが、なにかよい代替表現があればご指摘ください。またオプションもよりよい名前がありそうですね。

akabekobeko commented 3 years ago

autoLineBreaks のテストですが、追加しようとしたら index.test.tshandle hard line break という名で存在していたためやめました。ただしこれは「常時 remark-breaks が実行されること」を想定して index.test.ts に定義されているようですので、

tests/block/ 以下に追加していただけるとありがたいです。

で対応します。

akabekobeko commented 3 years ago

指摘のあった箇所を修正しました。reviveParse は返り値における型の明示ついでに処理が return のみとなったため、略記にしてあります。

akabekobeko commented 3 years ago

現時点の対応でよろしければ merge しますので、お手すきの時に再レビューをお願いします。

MurakamiShinyu commented 3 years ago

--auto-line-breaks という名前ですが、長い行を自動で改行を入れるという意味かと誤解されるかもしれません。

Pandocはオプションで改行の扱いを変えることができるので、それに倣うのがよいと思います。

https://pandoc.org/MANUAL.html#extension-hard_line_breaks

Extension: hard_line_breaks

Causes all newlines within a paragraph to be interpreted as hard line breaks instead of spaces.

Extension: ignore_line_breaks

Causes newlines within a paragraph to be ignored, rather than being treated as spaces or as hard line breaks. This option is intended for use with East Asian languages where spaces are not used between words, but text is divided into lines for readability.

Extension: east_asian_line_breaks

Causes newlines within a paragraph to be ignored, rather than being treated as spaces or as hard line breaks, when they occur between two East Asian wide characters. This is a better choice than ignore_line_breaks for texts that include a mix of East Asian wide characters and other characters.

テスト:

$ pandoc --from=markdown+hard_line_breaks
The quick brown fox
jumps over the lazy dog.

<p>The quick brown fox<br />
jumps over the lazy dog.</p>

ということで、--auto-line-breaks--hard-line-breaks に(autoLineBreakshardLineBreaks に)変更することを提案します。

akabekobeko commented 3 years ago

ということで、--auto-line-breaks--hard-line-breaks に(autoLineBreakshardLineBreaks に)変更することを提案します。

いい案ですね。対応します。

akabekobeko commented 3 years ago

村上さんのオプション名案を反映しました

akabekobeko commented 3 years ago

@spring-raining @MurakamiShinyu 現時点のコードでよろしければ、その旨をお知らせください。merge したいと思います。

akabekobeko commented 3 years ago

@spring-raining ありがとうございます。指摘のあった README の変更漏れを修正しました。

akabekobeko commented 3 years ago

@spring-raining @MurakamiShinyu レビューありがとうございました!