Quarkdown とは
QuarkdownというMarkdownを強化したテキスト整形システムがある。バックエンドとしてHTMLとCSSによるレンダリングを用いるのが特徴で、Markdownのように書きやすく、TeXのように細部が制御できるテキスト整形を目指しているらしい。
これはよく考えてみるとめちゃめちゃ大変なはず。というのはレンダリング結果のサイズがわからないと、レイアウトが決定できないので。どうも内部的にヘッドレスのChromeのレンダラを起動してその結果を取得して色々やっているらしい。
ちなみに実装言語はKotlinでJVMをインストールする必要があり、ちょっと面倒くさい。ソースコードがあるので、拡張も容易かもしれない。
特徴としてはチューリング完全な処理系を内包していて、マクロ(ではなくて関数だが)が定義できる。LaTeXもチューリング等価なので、それ自体にはそれほど意味はないけど、やはりコマンドを拡張できると便利。
まだまだ新しいので、できることはまだまだ限られるが、ちょっと面白いので、資料をこれで書いてみている。
コードの行間の制御
QuarkdownはMarkdownの強化版なので、バッククォート3つでコードフラグメントが書ける。が、デフォルトだとやや間延びしてしまうので行間を制御したい。これには、.cssproperties というコマンドを使う。
.cssproperties
- code-line-height: 1.0
これはグローバルに環境を変更してしまうので、用途によっては困りそうだが、ローカルに変更する方法は今のところ見つけられていない。そのうち実装されるだろう。
ちなみに、.cssproperties で設定できる項目は以下のコードに定義されている。
テーブルの行間の制御
テーブルの行間も間延びしているので調整したかったのだが、これは残念ながら上記のコードで定義されておらず、 .cssproperties ではコントロールできない。
どうにもならないかと思ったが、実は .css というコマンドで任意のcssが上書きできる。ブラウザのインスペクタで調べたところ、テーブルの行間を制御しているcss項目がわかったので、それを.cssコマンドで上書きしてやればいい。
.css
.quarkdown table:not(pre table) th, .quarkdown table:not(pre table) td {
padding: 0.2rem;
line-height: 1.1;
}
所感
QuarkDownは新しすぎて、日々拡張されているので今後が楽しみではある。情報がなさすぎて困ったので記事書いてみた。
関数による拡張で本当は色々できそうなのだけど、まだドキュメントが追いついていなくて、試すことができなくて残念。