pukiwiki/数式プラグイン/KaTeX の履歴(No.2)
更新MathJax よりもずっと早いらしいです†
MathJax と同様に、html 中に書かれた TeX ソースを javascript でレンダリングしてくれるライブラリなのですが、 いろいろ制限はあるもののずっと軽く動作するとの評判です。
pukiwiki に組み込む†
ソースファイル:
LANG:php
<?php
//
// pukiwiki用 数式プラグイン (katex.inc.php)
// Copywrite 2018 Osamu Takeuchi <osamu@big.jp>
//
// [履歴]
// 2018.07.02 初期リリース
//
// [インストール]
// ソースファイルを (pukiwiki)/plugin/katex.inc.php として保存
//
// [使い方]
// #katex; として一回呼んでおくと、その後の TeX ソース内に
// 記述された katex 形式の tex ソースを katex で処理する
// ようになる
//
function plugin_katex_header()
{
return <<<'EOS'
<link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css" integrity="sha256-tkzDFSl16wERzhCWg0ge2tON2+D6Qe9iEaJqM4ZGd4E=" crossorigin="anonymous" type="text/css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.js" integrity="sha256-gNVpJCw01Tg4rruvtWJp9vS0rRchXP2YF+U+b2lp8Po=" crossorigin="anonymous" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/contrib/auto-render.min.js" integrity="sha256-ExtbCSBuYA7kq1Pz362ibde9nnsHYPt6JxuxYeZbU+c=" crossorigin="anonymous" type="text/javascript"></script>
<script>
document.addEventListener("DOMContentLoaded", function(){
renderMathInElement(
document.body,
{
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "$", right: "$", display: false}
],
ignoredTags: [
"script",
"noscript",
"style",
"textarea",
"pre",
"code"
]
}
);
});
</script>
EOS;
}
function plugin_katex_convert()
{
return plugin_katex_inline();
}
function plugin_katex_inline()
{
$header = "";
if (!defined("PLUGIN_KATEX_LOADED")) {
define("PLUGIN_KATEX_LOADED", "LOADED");
$header = plugin_katex_header();
}
$aryargs = func_get_args();
$math = join(",", $aryargs);
$math = rtrim($math, ","); //remove extra comma at the end.
$math = htmlspecialchars($math);
if($math===""){
return $header;
}else{
return $header . "\\(\\displaystyle\\begin{split}" . $math . "\\end{split}\\)";
}
}
?>
使い方†
pukiwiki の個別ページのソースファイルに
#katex
と書けば、そのページの
$y=ax^2+bx+c$
や
$$ y=ax^2+bx+c $$
を、$y=ax^2+bx+c$ や
$$ y=ax^2+bx+c $$
のように表示してくれます。
注意点†
pukiwiki の場合、
$$ y=ax^2+bx+c $$
と書いてしまうと、空白文字から始まる行が pre に変換されてしまい、
$$
y=ax^2+bx+c
$$
となってしまうため、そこだけ注意が必要です。
使えない記法や、おかしな動作がまだ残っている†
徐々に改善されてきてますが、たまに動作のおかしなところを踏んでしまうことがあるようです?
気づいたらここにメモろうと思います。
とはいえ、ずいぶん使えるようになってきているので、 新しく書くページから徐々に KaTeX に移行しようかと思います。
コメント・質問†
Counter: 8017 (from 2010/06/03),
today: 2,
yesterday: 3