ブラウザやコンバータの仕様変更に影響されないよう、Mery 内の Markdown の IDE、できれば WYSIWYG のものを、ぜひとも作っていただきたく
-
おはようございます。
Kuro さん、Mery さん に日々お世話になっております。
どうもありがとうございます。Mery 自身の中に Markdown 書式のエディタ・コンバータ・ビューアを、ぜひとも作っていただけませんか?
以下、非常に長くなり大変恐縮ですが、Mery 自身と plug-in にあった機能、あとは Markdown to html コンバータ、リアルタイム WYSIWYG エディタ、また必要なら「分かち書き」「文字組み」に用いる budou x というツール、そして HTML Tidy
複雑なウェブサイトを構築できる世界シェア1位の WordPress をはじめとして、オンラインサービスに Markdown 仕様のデータでいろいろ作るようになってきているのをご承知のことかと存じます。
今後、ユーザが直接さわる一般的な文書が、文章の意味と表示を分離し始めた SGML 系統はエンジニアリング部分などに隠蔽されて、結局めんどくさいから(?)、人間がテキスト形式で簡単に文章の意味、修飾や構造などを分かりやすく書く形式は Markdown ではなかろうかと思うに至りました。
それで、Mery と、これまでの plug-in の仕様をよく拝見していくと、エディタとブラウザを繋ぐものもあったのですが、ブラウザの仕様はコロコロ変わりますし、各種 Markdown の仕様も変わりますので、Markdown 形式から 出力までの一連の処理を、全体として一つの処理系で整合性を持つものが身近になにかないかな?と思っておりました。VS は Markdown には重すぎますし。
その後、僭越ながら、Mery とこれまでの plug-in の仕様を拝見していくと、Mery 内で「Typora」のような WYSIWYG 対応もできれば可能な、Mery 内 Markdown のエディタ・ビューアができるのではないかと思いました。
すでにパーツは揃っています。
+. 多くの IDE は、以下の3つの画面を横に並べている形が多いようですが、
1. Markdown のコードのエディタ
2. html になった状態を見せるビューア
3. Markdown の構造を把握しやすくするアウトライナー1 は、Markdown の色分け・構造化を行う Mery があり、
2 も、plug-in で Mery の画面にブラウザの画面を表示するものがあり、
3 も、最初からアウトライン機能がついていますし、それぞれ少し調整・拡張が要るかとは存じますが、基本的に問題なさそうに思いました。それに加えて、
4. Markdown to HTML 国際化 コンバータ & MATHJAX
5. HTML Tidy
6. エディタ上のブラウザ4 は、オープンソースのコンバータが数多くあり、幾つかは、オプションで、出力する Markdown の仕様を変えられます。数式の処理は、米国数学協会が管理する JavaScript (だけ?) の MATHJAX を include して Markdown を書き、数式部分は TeX, LaTeX に準拠した書式で記入できて(GFM同等)、
5 は、オープンソースのコンバータからで出てきた html を HTML Tidy でサニタイズし、
6 で、エディタ上のブラウザでレンダリングして出力します。+ 一方、リアルタイムの WYSIWYG エディタも現実的に可能なようです
7. Markdown to HTML 国際化 リアルタイム WYSIWYG エディタ&ビューア
8. HTML Tidy
9. 「budou X」という、html を禁則処理でなく「分かち書き」ができるコード
10. Mery内 ブラウザ7 は、普通の Markdown to html コードと大差ない個数で、オープンソースのものがあります
8 のように、html が出力されるたびに HTML Tidy でサニタイズするべき
9 は、禁則処理を超えて「分かち書き」「文字組み」を自動で行うコードで、JavaScript、Python, Java で、基本的にスタンドアローンで動き、 html にはWebComponent として登録すれば動く(はず)です。次版の Chrome などに標準で入るそうです。git では、google / budoux と budoux / javascript/ などにあります。機械学習でトレーニング済みなので、15KB 程度のわずかな容量です
10 にて、mery内ブラウザでレンダリングし出力「分かち書き」「文字組み」が必要なければ、9 と 10 は不要
+ Markdown の仕様について
多くのコンバータは pdf には対応する場合が多いです
大抵は、遥かに多くのフォーマットに対応しますけれどもMarkdown to html コンバータの仕様や、WYSIWYG エディタの仕様、MATHJAX の仕様等々に、大きく左右されるかと存じますが、
平凡な使い方しかしてこなかったので、細かな方言をご存じでしたら、
ご教示いただけますと幸いに存じますとりあえず例として、現在の自分のプライオリティ順に挙げてみます
1. まず commonMark (改定を繰り返すので、差分を拾うのが若干面倒ですが、差分だけ提供してくれる方々がいるようです)
2. インラインの html を受け付けること
3. 数式入力:TeX、LaTeX 形式での入力、MATHJAX などその他モジュール類も可
4. LaTex が EPS(エンカプセルド・ポストスクリプト)の画像を取り込めたように、形式を問わず画像を埋め込めること、出来れば画像のレイアウトや大きさも
5. 注、脚注、引用文献などを、TeX でいう場合でしたら BiBTeX のような引用文献と文中の引用の相互参照など
6. 分かち書き budou x など?
7. ...
ひとまずこのあたりで、お願いいたします
疑問点などございましたら、お知らせください| 卜フえもん | 返信 -
こんばんは。Mery をご愛用いただき、ありがとうございます。
> Mery 自身の中に Markdown 書式のエディタ・コンバータ・ビューアを、ぜひとも作っていただけませんか?
開発依頼とのことですが、まず、はじめに「ご利用前に必ずお読みください」に記載しているとおり、「個人向けの機能追加やカスタマイズ依頼」はサポート対象外となっていますので、その点はご了承ください。
次に、Markdown 対応についてですが、私も Markdown には興味があり、2 年ほど前からその開発に取り組んでいます。開発状況については、X で時折つぶやいたり、フォーラムでベータ版を配布したりしています。
そういうわけで、開発中の Markdown 機能から抜粋しますが、以下、回答させていただきます。
ちなみに、Mery の拡張機能としての実装なので、Typora のような WYSIWYG (見たままを直接編集) ではなく、VSCode のように、エディター部分とプレビュー部分に分かれているものになります。
> 1. Markdown のコードのエディタ
Mery の [編集モード] の中に、Markdown モードがすでに実装されてますね。
> 2. html になった状態を見せるビューア
これは Markdown 機能で対応しています。
> 3. Markdown の構造を把握しやすくするアウトライナー
Mery の [アウトライン] プラグインで、この機能もサポート済みです。
> 4. Markdown to HTML 国際化 コンバータ & MATHJAX
> 5. HTML Tidy
> 6. エディタ上のブラウザ
> + 一方、リアルタイムの WYSIWYG エディタも現実的に可能なようですMery の Markdown 機能は、リアルタイム プレビュー方式なので、4、5、6 は割愛させていただきます。
> 7. Markdown to HTML 国際化 リアルタイム WYSIWYG エディタ&ビューア
エディター エンジンの仕様上、WYSIWYG (見たままを直接編集) には対応できませんが、リアルタイム プレビューや、エディター部分とプレビュー部分のスクロール同期などに対応しています。
> 8. HTML Tidy
Markdown 機能からの自動整形は行いません。必要であれば、Mery の [HTML Tidy] をご利用いただけます。
> 9. 「budou X」という、html を禁則処理でなく「分かち書き」ができるコード
BudouX については初めて聞きましたが、興味深いですね。オプションとしての対応を検討してみます。
> 10. Mery内 ブラウザ
WebView2 を使用して描画されます。また、ブラウザの仕様変更に関する問題についても、WebView2 の固定バージョン配布モードに対応していますので、ご安心ください。
> とりあえず例として、現在の自分のプライオリティ順に挙げてみます
> 1. まず commonMark (改定を繰り返すので、差分を拾うのが若干面倒ですが、差分だけ提供してくれる方々がいるようです)Markdown 機能は markdown-it の default モードを使用するため、commonMark ではありますが、GFM に近い仕様で動作します。
> 2. インラインの html を受け付けること
Markdown 機能で対応しています。
> 3. 数式入力:TeX、LaTeX 形式での入力、MATHJAX などその他モジュール類も可
数式入力は KaTeX に対応しています。
> 4. LaTex が EPS(エンカプセルド・ポストスクリプト)の画像を取り込めたように、形式を問わず画像を埋め込めること、出来れば画像のレイアウトや大きさも
WebView2 を使用しているので、扱える画像形式は WebView2 が対応しているもののみとなります。
> 5. 注、脚注、引用文献などを、TeX でいう場合でしたら BiBTeX のような引用文献と文中の引用の相互参照など
脚注は標準で対応していますが、markdown-it のプラグインにも対応しているので、ユーザーが必要な機能を追加することもできます。
> 6. 分かち書き budou x など?
需要がありそうなら、オプションとして対応しても良さそうですね。
以上が、Mery の Markdown 機能から抜粋した情報ですが、以下に、いくつか機能を紹介しておきますね。
・GitHub のテーマ
・ソースコードのハイライト表示
・数式の描画 (KaTeX)
・ダイアグラムとチャートの描画 (Mermaid)
・PDF 形式、HTML 形式での保存
・Word、OpenOffice、EPUB 形式などへのインポート/エクスポート (Pandoc)
・特殊な Markdown 仕様への対応 (タスクリスト、改行ごとに <br>、ハイライト == など)
・markdown-it プラグインに対応
・ボタンをクリックするだけで Markdown 構文を簡単に入力
・キーボード ショートカットで Markdown 構文を入力
・目次の作成と更新
・キーボード操作によるリスト編集のサポート
・テーブルの整形こんな感じの Markdown 機能となっています。
> 人間がテキスト形式で簡単に文章の意味、修飾や構造などを分かりやすく書く形式は Markdown ではなかろうかと思うに至りました。
私も Markdown の便利さには衝撃を受け、Mery の Markdown 機能の開発をしてきましたが、思ったより需要は少ないようで、最近は完全にモチベーションなくなっちゃってます ^^;
| Kuro | 返信 -
Kuroさん、こんにちは。
MeryでMarkdownプレビューが導入されてからMarkdownを愛用しています。
一定の記法に従ってマークアップをして、Markdownプレビューで閲覧するとWikipediaの画面っぽくなるので見やすくて助かっています。Markdownプレビューの正式版が配布されるのを首を長くして待っています。
| MSY-07 | 返信 -
こんばんは、ご返信ありがとうございます。
> MeryでMarkdownプレビューが導入されてからMarkdownを愛用しています。
そうでしたか!ベータテスターを募集していますが、なかなか集まらず…。ぜひ、バグの発見やご意見をいただけると助かります。
> Markdownプレビューの正式版が配布されるのを首を長くして待っています。
現在、Mery 本体の開発のほうも進行中で、Markdown の開発にはまだ手が回っていない状況ですが、Mermaid によるダイアグラムとチャートの描画、絵文字入力などの実装は完了しました。
また、今回のご要望である BudouX による分かち書きは面白そうなので、ちょっと研究してみているところです。
完成しましたら、ぜひお試しいただければと思います。
| Kuro | 返信 -
返信が遅くなりました。
> そうでしたか!ベータテスターを募集していますが、なかなか集まらず…。ぜひ、バグの発見やご意見をいただけると助かります。
バグは今のところ見つからないですね。
意見は何か思いついたらそのときに報告します。> 現在、Mery 本体の開発のほうも進行中で、Markdown の開発にはまだ手が回っていない状況ですが、Mermaid によるダイアグラムとチャートの描画、絵文字入力などの実装は完了しました。
Mery本体の開発が一段落したらMarkdownの開発にも着手してもらえるとMarkdownユーザーとしては嬉しいです。
Mermaid記法は覚えると色々な図が描けるので便利かもしれませんね。> また、今回のご要望である BudouX による分かち書きは面白そうなので、ちょっと研究してみているところです。
BudouXによってプレビュー画面が読みやすくなるかもしれないので楽しみです。
| MSY-07 | 返信