概要
GitHub のようにネットワーク上で Git リポジトリを共有できる Web サービス GitBucket用のプラグイン GitBucket Markdown Enhanced Pluginを開発していきます。
GitBucket Markdown Enhanced Plugin は、GitBucket 標準のマークダウンレンダリングエンジンを置き換えるプラグインです。
目標は、Visual Studio Code の Markdown Preview Enhanced 向けの markdown ファイルを軽易に Web で共有できる環境です。
実現できない機能もあるかと思いますが、できるだけ、近づけたいと考えます。
前回の記事
実装できている機能とそうでない機能の整理
前回は、レンダリングエンジンが置き換えられるかを主眼に置いていたので Markdown Preview Enhanced の機能との対比は先送りしていました。
ここで実現できている機能とそうでない機能の整理をしたいと思います。
- Basic Syntax
-
Extended syntax
- Table
- Emoji & Font-Awesome(Emoji only)
- Superscript(0.1.1 で追加)
- Subscript(0.1.1 で追加)
- Footnotes
- Abbreviation (AbbreviationExtension で実現可能)
- Mark (既存機能では実現不可)
- CriticMarkup (デフォルト無効なので要望がなければ実装しない。)
- Admonition (Admonition Extension で実現可能。ただし、別途、css と javascript が必要)
- Math Typesetting(Katex only)
- Diagrams
- Table of Contents(サイドバー非対応)
- File Imports
- Code Chunk
- Presentation
- Pandoc
前回の記事以降に追加した機能
Subscript(下付き文字)
StrikethroughExtension を StrikethroughSubscriptExtension
に置き換え、Subscript に対応しました。
H~2~O
のように書くと 2
が下付き文字になります。(H~2~O)
Superscript(上付き文字)
x^2^
の用に書くと 2
が上付き文字になります。(x^2^)
今回の記事で追加する機能
Abbreviation
import com.vladsch.flexmark.ext.abbreviation.AbbreviationExtension
略語を表現できます。
*[HTML]: Hyper Text Markup Language
*[W3C]: World Wide Web Consortium
The HTML specification
is maintained by the W3C.
以下のように変換されます。
<p>The <abbr title="Hyper Text Markup Language">HTML</abbr> specification
is maintained by the <abbr title="World Wide Web Consortium">W3C</abbr>.</p>
利用に当たり、以下のアセットを追加しました。
- gitbucket-markdown-enhanced/src/main/resources/gme/assets/admonition.css
- gitbucket-markdown-enhanced/src/main/resources/gme/assets/admonition.js
また、gitbucket-markdown-enhanced/src/main/scala/Plugin.scalaのjavaScripts
メソッドを修正しました。
Admonition
import com.vladsch.flexmark.ext.admonition.AdmonitionExtension
用例など補足事項を記述できます。Markdown Preview Enhanced とは文法が若干、異なります。
!!! qualifier "Optional Title"
block content
上記のように書くと以下のように表示されます。
成果物
ここまでの成果をバージョン0.2.0としてリリースしました。
次回予告
次は、PlantUML への対応を行いたいと思います。