vivliostyle / vfm

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

feat: Math syntax enabled default #94

Closed akabekobeko closed 3 years ago

akabekobeko commented 3 years ago

93 対応。

@MurakamiShinyu docs/vfm.mdtests/math.ts についてレビューをお願いします。

akabekobeko commented 3 years ago

@MurakamiShinyu すみません math オプションを追加した際に README.md への記載を忘れていたので、本 PR で改めて追記しました。既定で有効となったため、その旨と無効にする方法を記載しています。

MurakamiShinyu commented 3 years ago

@akabekobeko すみません、body 要素に data-math-typeset="true" を指定するのは間違いだったことに気がつきました。 これは数式を直接囲む要素に指定しなくてはならないものでした。

TeX数式を含むHTMLサンプル https://github.com/jagat-xpub/cosmology の index.html の body 要素に data-math-typeset="true" を指定して、Vivliostyle Viewer で組版結果を確認すると、ページの組版処理が正常に行われなくなってしまいました。(改ページされず1ページ目でページがオーバーフローする、など)

data-math-typeset="true" をbody 要素にではなく、数式を囲む span 要素に出力するように変更をお願いします。例:

<span class="math inline" data-math-typeset="true">\(...\)</span>
<span class="math display" data-math-typeset="true">$$...$$</span>

もうひとつお願いです。 MathML 数式がある場合にも <script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-MML-AM_CHTML"></script> の出力が必要です。

MathML 数式が使われているかどうかは <math> タグの有無で判定できるかと思います。例:

- MathML: <math><mi>x</mi><mo>=</mo><mi>y</mi></math>.

AsciiMath 対応については、今回は見合わせて、またの検討でよいかと思います。

akabekobeko commented 3 years ago

@MurakamiShinyu 要望 1 の data-math-typeset="true"<body> ではなく数式の <span> へ移行する件を対応してみました。

要望 2 について質問です。これは VFM として math: true の場合のみ <math> を検出したら <script> 出力するのでしょうか?math: false ならば「明示的に無視する」べきでしょうか?

akabekobeko commented 3 years ago

@MurakamiShinyu 書き方がわかりにくかったので改めて。

要望 2 の <math> タグ検出時にも <script> タグを出力するのは VFM が math: false でも実行しますか?それとも他の数式と同様に math: true の場合のみでしょうか?

MurakamiShinyu commented 3 years ago

要望 2 の <math> タグ検出時にも <script> タグを出力するのは VFM が math: false でも実行しますか?それとも他の数式と同様に math: true の場合のみでしょうか?

math: false ならば、数式関係の処理は特に何もしないということで、 <script> 出力しない、で問題ないのではないかと思います。 Vivliostyle Viewerでは、常に MathML は MathJax により表示されます。ですので Vivliostyle を使わないでブラウザで表示するときの問題ですが、--disable-math ならば math のための script を出力しないのが、論理的な気がします。 MathML にネイティブで対応しているブラウザならば、それでも数式が表示されます。(Firefox と Safari はMathMLをサポート、Chrome にもそのうち実装それる予定) --disable-math は、積極的に math のための何かをしないで、ブラウザにまかせるという意味になりますね。

akabekobeko commented 3 years ago

@MurakamiShinyu math: true 時のみ <math> を検出したら <script> タグを出力するようにしました。今日はもう遅いので明日以降にでも改めてドキュメントとテスト コードのレビューをお願いします。

akabekobeko commented 3 years ago

@MurakamiShinyu レビューありがとうございます!vfm.md<script> タグ説明について提案された文面を採用しました。 他に問題などがなければ merge します。その後に 1.0.0-alpha.21 としてリリース予定ですので、OK ならばコメントください。