なんかいい方法を提案したろうと意気込みましたが、ムリでした。らいう様にゆだねます。
きっかけ
いつもありがたく使わせて頂いてます。なるほど、モナレッジの内部はそうなってたんですね。
今回は行頭の全角スペースが消える件について少し調べてみました。
パーサごとの挙動
各パーサのDEMOを試してみました。
パーサ | 行頭の全角スペース |
---|---|
markdown-it | 消えた |
marked | 残った |
markdown-wasm | 残った |
パーサによって挙動が違うようです。
じゃあパーサ変えればいんじゃね? と思いましたが、そんな気軽にやっていいことなのか、私には判断できませんでした。
全角スペースのためだけにパーサを変えたとしても、影響は他にもあるかもしれないからです。
パーサをどれにするか問題
影響
パーサを変えると、影響が大きそうな気がします。
- すでに投稿された記事の表示
- パフォーマンス
- 動作環境
- 実装
調査
パーサ変更でどこに、どんな影響があるか調べるだけで大変そうです。今回の全角スペースが消えるとか、そんな小さいことをいちいち調べてたらキリがない。他にも何かあるかもしれない。それをすべてピックアップして、どれが一番いいか調査するとか。気が遠くなる。やってらんない。
結論だせず
それでもパーサを変えるべき価値があるのか。私には提示できません。
インデント(字下げ)の価値
インデントで文書のクオリティは少し上がると思うのですが、まさかインデントごときでここまで影響範囲が広がるとは思っていなかったので。対応する労力に見合うかは未知数です。
パフォーマンス
markdown-wasmは爆速らしいです。が、WebAssemblyとかいう技術を使っているみたいで、環境によっては動作しなくなったりするかもしれません。わかんないですけど。
次はmarkdown-itのままで簡単に改善できることはないか考えてみます。
markdown-it
モナレッジの表示には以下のパーサを使っているとのことでした。
対象 | パーサ |
---|---|
記事表示 | markdownit @nuxt |
エディタ | mavon-editor |
チェックボックス
markdown-itで- [x]
書式のチェックボックスを表示するのは以下の拡張でできるかもしれません。未確認です。
とくにフレームワークnuxtは触ったことないので。nuxtに絡んでいるっぽいパッケージだから拡張できないよ、とかの事情があったりしたら使えないでしょう。調べてないので妄想でしゃべってます。
そもそも、この構文を使いたがる人がモナレッジでどれだけいるのか。費用対効果。
HTML文字実体参照
文字参照 | 表示 | 意味 |
---|---|---|
|
「 」 | 折り返さない空白 |
  |
「 」 | n と同じ幅の空白 |
  |
「 」 | m と同じ幅の空白 |
  |
「 」 | 細い空白 |
HTML文字実体参照を使えば、全角スペースを消されずに表現できるらしい。なので試してみました。どうかな? プレビューだけでなく投稿後も確認しないと。違うパーサ使っているみたいだし。
でも、マークダウンでこれ使うのものなぁ。HTMLすら書きたくないのに。
じゃあ一体、どうしたらいいんだ……。
所感
たかが行頭の全角スペースのためにパーサを変えるとか。そんな大掛かりなことをやるのはどうなんだ? という気持ちになりました。
でも
, 
, 
で表現するのもなぁ。
というわけで、お力になれませんでした。
どうするにせよ、何もしないにせよ、らいう様にゆだねます。