S.F.@SFPGMR
昔作った適当ハウス風デモ曲の音色をいじってアップしてみた。。
S.F.@SFPGMR
昔作った適当ハウス風デモ曲の音色をいじってアップしてみた。。
S.F.@SFPGMR
しかし古い撮影のはずなのになんでこんなにクリアなんだ。。
Paperback Writerもクリアだ。。しかもいい音だし。。好きなんですわ。この曲。。
この服装の色使い。。サイケデリックちゅうやつですかな。。
S.F.@SFPGMR
S.F.@SFPGMR
のPageSpeed InsightでのPC版のスピード計測結果。S.F. Blog:S.F. Blog IT技術や音楽に関する制作物の公開、情報発信を行っています。
ほとんどテキストだけだから、そりゃまあそうかと。。
対してモバイルでの計測はいまいちな感じ。。 https://t.co/W0cd4dIoWY
画像が入ったページだとやっぱりちょっと落ちるな。。でもまあ96点だからいいか。。 https://t.co/YL4jLiIJdh
そこそこチューニングしたからなあ。。
こういうインラインSVGとか画像が入ってるのでもいい数字がでるなあ。。Texもあるけどコンテンツ生成時にMathJaxでプリレンダリングしてSVG化してる。その効果もでてるなあ。
https://t.co/hrEPpWaA1FS.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23) さて、ブレゼンハム・アルゴリズムである。ブレゼンハム・アルゴリズムは整数化・加減算およびシフト演算のみで実装できるということでよく紹介されているけれども、ブレゼンハム・アルゴリズムやDDAの文献を読んでみて、実はそこがポイントではないのではないかと考えるようになった。離散座標系において理想直線に最も近い描画点を求めることができる点が、ブレゼンハム・アルゴリズムの優れたところなのだろうと今は思ってい...
ただモバイル版での計測だと落ちる。。モバイルでのパフォーマンスアップが課題ちゅうことですわな。。パソコン版はそこそこ頑張った結果が出てる。 https://t.co/wPBUFYeLff
cssもプリロードするようにしたらPC版で100点になった!!ちょっと嬉しい。 https://t.co/p26gdX4y8O
と思ったらcssが反映されてない。。もとに戻そう。。
もとに戻した。。99点に落ちた。。 https://t.co/S0c4WEWMaC
S.F.@SFPGMR
マイクロソフトはビルとポール、アップルは2 人のスティーブが力をあわせたからこその成功だと思うのよね。どちらか一人が欠けていたらどうなっていたか。。
S.F.@SFPGMR
あかん。花粉がきとる。体が反応しとるわ。。
Naohiro Kimura-木村直広@knaohiro1
中国深センの年越し
深セン人才公園にて600機のドローンで新年を演出
m.weibo.cn/status/4336021…? https://t.co/PDf90hoFQ2
S.F.@SFPGMR
Firebaseかあ。。
Firebaseを使い始めたら人生が変わった(ような気がした) - Qiita 最近、僕の周りでFirebaseを使った人たちは、
**「サーバーの処理をFirebaseに置き換えたら、筋肉がつきました!」**(29歳, 社会人)
**「Firebaseを使ったら友達も増えてわっしょいわっしょい」**(11歳,...
vue.jsもちょっと見てみるか。。
vue.jsって「ビュー」って読むんだな。。
これを読んでいる。
はじめに — Vue.js Vue.js - The Progressive JavaScript Framework
Web Componentsって仕様が確定してたんだな。。
カスタム要素との関係はじめに — Vue.js Vue.js - The Progressive JavaScript Framework
S.F.@SFPGMR
VueとFirebaseの基本機能全部使ってぬるぬる動くポートフォリオサイトを作ったのでソースと解説 - Qiita 絵描きとかUXとかやりつつフロントもやってる「ゆき」です。ポートフォリオサイトは10年くらい前にMoveableTypeで作ったきり。最近流石に「これでフロントやってますとか言ったら絶対次転職できなくね?」と危機を感じたので0から作り...
S.F.@SFPGMR
jxckさんのブログの追っかけも最近できてないなあ。。
blog.jxck.io Web Technology Blog by Jxck
年間10記事~20記事くらいでまとめるというのがいいかもなあ。
まずはgithubのリポジトリを整理するかあ。とりあえず静的ブログジェネレータのところだけだけどね。
とりあえず家の掃除をするので中断っと。。
あれだなあ。コンテンツの生成方式も見直すとするか。
データのストア方式もちょっと改めようかなあ。MYSQLはやめとくけど、sqlite使うとか。。
github確かにプライベートリポジトリ無料で使えるようになってるな。作りかけの怪しいものは全部privateにしよう。。
ただ単にforkしてみただけのリポジトリとか全部削除した。あと空のレポジトリも。微妙なものはプライベートにしてみた。
nodegitも結構使えそうなレベルになってるようだな。これも今回試すとするか。。
これね。。
No ImageInstall NodeGit
GatsbyJSちゅうのもおもしろそうですな。
GatsbyJS
ウーム。node 11.6.0だとこの障害が起こってしまうようだなあ。。
SPDY fails in node >= 11.1.0 · Issue #350 · spdy-http2/node-spdy · GitHub Hi, Couple of short investigation, why SPDY drop error message //------------------------------------------------------------------------------------------------------- buffer.js:72 class FastBuffe...
buffer.js:72
class FastBuffer extends Uint8Array {}
^
RangeError: Invalid typed array length: -4095
at new Uint8Array (<anonymous>)
at new FastBuffer (buffer.js:72:1)
モロだよなあ。。
このissueは簡単には直らなそうですな。。
・このトラブルが発生していることは認識している
・LTSバージョンのサポートは実施した
・node11.1の変更はnode-spdyにかなりの影響があり、修正は重そう
・ネイティブhttp2モジュールへの移行を検討すべき
みたいなことが書いてあるなぁ。
そしてこのISSUEにコメントしてた人はnode-spdyの利用をあきらめ、nginxでhttp2を動かしてその配下にnodeを使うことにしたようだ。私も最初そうしてたが、express + node-spdyに移行してしまったのだ。。
私が動かしてるwwwサーバーはアクセスは少ないし、expressでも十分さばけると思ったんだよな。そこはまあそうだったんだけど。。
でまあ今ホストしてvpsはnode10.xに落として動かしてる。
node11.1以降でnode-spdyが動かない件。コア・モジュールでhttp2が使えるようになってるので差し替えてみたが、以下のエラーで今度はexpressが落ちるという。。
_http_incoming.js:95
if (this.socket.readable)
^
TypeError: Cannot read property 'readable' of undefined
そしてこれの代替モジュールがあるんだけど。。
GitHub - Jashepp/express-http2-workaround: Compatibility for the express module to work with the molnarg/node-http2 module Compatibility for the express module to work with the molnarg/node-http2 module - Jashepp/express-http2-workaround
このモジュールが11.1以降では動かないという罠。。
Error: Missing IncomingMessage property on http2 module? · Issue #3 · Jashepp/express-http2-workaround · GitHub getting the following error Error: Missing IncomingMessage property on http2 module? npm verison: 6.4.1 node version: 11.1.0 express: 4.15.4
11.1以降でexpressをhttp2で動かすのは今は無理のようだな。。expressはhttp2コアモジュールに対応するPRが出てるようだが、未だ受理されていないとのこと。。
Initial support proposal for http2 by phouri · Pull Request #3390 · expressjs/express · GitHub Hi,
PiniH here - used wrong account before (work...).
Regarding this issue: #3388
This is an initial proposal for making http2 work, this requires node to expose the Http2ServerRequest/Response and...
このPRもちと古いので、11.1以降では動かない可能性高し。。しかし11.0から11.1へのアップデートでかなり破壊的な変更があったように思えるなあ。。リリースノートで読むか。。
あとは自分でこれを直すか、LTSに戻すかだが。11.xを使う理由は今はないので10.xに戻すか。。
10.15.0だとやはりがっつり動きますなあ。。
この問題が発生したのは、11.1におけるこの変更が原因らしい。
src: improve StreamBase read throughput · nodejs/node@48ed81f · GitHub Improve performance by providing JS with the raw ingridients
for the read data, i.e. an `ArrayBuffer` + offset + length
fields, instead of creating `Buffer` instances in C++ land.
PR-URL: https://...
function onStreamRead(nread, buf) {function
↓
onStreamRead(arrayBuffer) {
引数が一つになったのでnreadの値がarrayBufferに渡されエラーになってる。。
とりあえず10.15.0で進めることにする。あまりこれに時間をかけすぎるとプリプロセッサの勉強ができないからね。。ブログジェネレートの部分は修正できたようなので続いてジェネレーしたものをホストサーバーにアップするところを直すとするか。。
このソリューションはtermux上でも動かせそうなのでandroidタブレットでも試してみたんだけど、termuxはルートディレクトリ直下にディレクトリを作ることができないんだなあ。コンテンツは/var/wwwとかにおいてたんだけど、それをホームディレクトリに移さないといかんなあ。
ということでコンテンツは/home/xxxx/以下に移動することにした。ホストサーバー上のディレクトリ構造も変えるつもり。というかそっちはあれかあ、ハードリンクの切り直しで済むよなあ。
電車の中で実装できるようにするために、コンテンツのディレクトリ構造を変えるという。
githubのプライベートリポジトリの開放は改めてすごいわあ。。
androidタブの環境構築でなかなか事が進まないという。。でもなんとか動きそうだなあ。
まあもうちょっとだけど。 https://t.co/dyVtCaKsnz
androidタブを入手したことで
linux
windows
ios
android
fire os
をいじる環境が整った!だけ。
しかしながら、http2をテストするにはポート443で動かす必要がある。termuxでは端末自体をroot化しないと443では動かせない模様。。
sudoが使えない。。
とりあえず別のポートで動かすことにした。そして動いた。。
うーむ。手直ししてるといろいろ問題が発生してくるな。。まずはcssnextモジュールがdeprecateになっていた。古いモジュールはセキュリティ・リスクも高くなってるなあ。
「cssnext is dead. Long live to postcss-cssnext.」
No ImageInstall & setup postcss-cssnext
この辺って次世代のcssについて検討するような何かだったような気がするんだけど、なんかcssnextはやめたみたいなことが書いてあるなあ。。
No ImageDeprecating cssnext
cssってちょっと機能不足なところがあって、それを補うようなライブラリがあるんだよな。sassとかlessとかの類がそう。今はsassが主流なのかな。まあsass/lessお立ち位置って「CSS拡張」なんだよね。それをトランスパイルしてcssに落とすんだな。
でまあそういうライブラリの成果を逆にCSS規格に反映すればいいんじゃないの?みたいな感じでスタートしたのが「cssnext」だったような。
今ってCSSレベル4ちゅうのがあるのか。まったく追っかけてなかったので全然ししらんなあ。。
PostcssとCSS Level 4の現状と今後のCSSプリプロセッサとの付き合い方を考える - Qiita この記事では私が2年以上PostCSSを実務で利用してきた、CSS Level 4の状況を振り返ります。
## CSS4を使うための環境について
まず、PostCSSが出てからcssnextを使ってCSS Level 4を使えるよ...
それでまあ、私はlessを少し前にページのデザインに使ってて、そしてそのあとちょっとsassを使って、post-css/cssnextに切り替えたんだよな。でまあ今回アップデートしたらレイアウトが崩れてしまったんだよな。。とほほ。。
cssnextはdeprecateになったとすると、次は何を使うべしかなあ。。
うーむ。
No ImageFarewell CSS
CSSの記法って独特なんだよね。でいつからあのような記法になったのか一度調べたことがあるんだよな。
No Image
構造と見た目を分離するためにCSSは生まれたんだよね。それまではHTMLタグで全部やってたんだな。まあその名残は今も互換性維持のために残ってるし、bとかはたまに使ったりする。今でも。でも今のbは「見た目のボールド」ではなく意味的な「強調」なんだけど。デフォルトのデザインがボールドなだけで
なので<b>についてももれなくCSSでデザインを変更することができるわけだ。
これが続きか。NCSA Mozaicとか懐かしいワードがたんまりですな。。
S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。(2) 続き。https://blog.sfpgmr.net/entry/2016/03/06/120644前回CSSがほぼ今の形になったのは1995/11/1版だと言ったが、違っていた。1995/11/1はassignmentの属性と値を結びつける記号が'='だったのが':'に変わっただけだった。下の一覧はCSS Level 1が勧告となるまでの版を一覧である。ほぼ現在の...
自分で書いた内容をすっかり忘れとる。。
ちょっと内容的にわからんところがあるのだが、まあpost-cssがCSS Level 4の元ネタ?になってるのはそうなのかなと思った。
PostcssとCSS Level 4の現状と今後のCSSプリプロセッサとの付き合い方を考える - Qiita この記事では私が2年以上PostCSSを実務で利用してきた、CSS Level 4の状況を振り返ります。
## CSS4を使うための環境について
まず、PostCSSが出てからcssnextを使ってCSS Level 4を使えるよ...
CSSで足りないのは変数とネストだと私はあまり理解度が深くないのに勝手にそう思ってたが、だいたい合ってたわけですな。しかしcssnextはpostcss-preset-envに置き換えるだけで何も変わらないような感じなのだが、なぜレイアウトが崩れてしまったのか。。
しかし以下のブログ記事に出てくるCSS-in-JSって何なのだろう?
No ImageFarewell CSS
CSS-in-JSでググるとこんな記事が出てきたな。読むか。。
postd.cc/stop-using-css…
Reactはあまり筋的に好みじゃないんで敬遠してるんだけど(Riot.jsとかのほうが好き)、その界隈のあれかな。。
あかんやっぱりそうだった。内容が全然わからないな。
postd.cc/stop-using-css…
HTMLとJSが混在したような記法は私はやっぱりちょっとやだなあ。。多分Reactのメリットを理解するとまた見方も変わるんだと思うけど。。これってわかりやすいのだろうか。。
この辺も読んで直すとするか。。
PostCSS - a tool for transforming CSS with JavaScript Transform CSS with the power of JavaScript. Auto-prefixing, future CSS syntaxes, modules, linting and more are possible with hundreds of PostCSS plugins.
とりあえずCLIでpostcssを動かすようにしよう。
GitHub - postcss/postcss-cli: CLI for postcss CLI for postcss. Contribute to postcss/postcss-cli development by creating an account on GitHub.
それより前にホストサーバーへコンテンツをポストするコードを直さないとな。ここが一番ダメダメだからな。。
しかしまあ私のツール類のパッケージングのお作法はまったくといっていいほどnode.jsに倣っていないのもなんだかなあと思っている。知らん事をいいことに好き放題である。
MathJaxのレンダリングがなぜだか猛烈に遅いんだよなあ。。
KaTeXというのがあるみたいだなあ。差し替えるのが良いかも。といってもMathJaxとの互換性がどれくらいあるかなと。。
KaTeX – The fastest math typesetting library for the web Simple API, no dependencies – yet super-fast on all major browsers.
日本語も通るようになってるみたいだし。。
KaTeX – The fastest math typesetting library for the web Simple API, no dependencies – yet super-fast on all major browsers.
下のページが例なんだけど、Texの部分はMathJaxを使ってプリレンダリングしてるんだよね。つまりHTMLページを表示する前にsvg化されてるわけ。
S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23) さて、ブレゼンハム・アルゴリズムである。ブレゼンハム・アルゴリズムは整数化・加減算およびシフト演算のみで実装できるということでよく紹介されているけれども、ブレゼンハム・アルゴリズムやDDAの文献を読んでみて、実はそこがポイントではないのではないかと考えるようになった。離散座標系において理想直線に最も近い描画点を求めることができる点が、ブレゼンハム・アルゴリズムの優れたところなのだろうと今は思ってい...
こうするとまあページ表示は早くなる。んだけどTexはHTML化したときに失われるので、テキストとしてのTexの意味合いは(つまりここは式だよという意味合い)は失われてしまうという欠点(かな?)があるかなあとか思ったりもする。
とは言えTeXも式の見た目を整えるものなので、式としての意味をあらわしているかというと違うとは思う。なのでSVGにしたところで失うものはないといえなくもない。
が今やTeXは数式を表現する言語の側面も持っていなくもないかなあとも思う。ただ装飾とごちゃまぜな構文となるからそこから意味を取り出すのはちょっと面倒化もしれんが、いまどきだとそれもたやすくできるかもしれん。検索されたときに数式としてみなされそうなのはTeX表記なのかなと。
コンテンツ中ではTeXのままにしておけば検索エンジンが「ここはTeXで書いとるな」と認識される可能性を残すことができるということですわな。。
しかしよく見ると(見なくても。。)TeX部分のレンダリング結果ちとおかしいなあ。
S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23) さて、ブレゼンハム・アルゴリズムである。ブレゼンハム・アルゴリズムは整数化・加減算およびシフト演算のみで実装できるということでよく紹介されているけれども、ブレゼンハム・アルゴリズムやDDAの文献を読んでみて、実はそこがポイントではないのではないかと考えるようになった。離散座標系において理想直線に最も近い描画点を求めることができる点が、ブレゼンハム・アルゴリズムの優れたところなのだろうと今は思ってい...
特に日本語の文字間隔とか。。
ただTeXそのまま書いてもMathJaxではだめだったりしたから、もしKaTexに乗り換えても数式の修正が必要になりそうなだなあ。。それはちょっと面倒だ。。
KaTexを追加インストールして、katexというタグを新たに作ろうかな。。
markdownのパーサはmarked.jsを改造して使ってる。TeX拡張とか独自記法をサポートするためだけど、中身見るとpegで書き直したくなってきたな。。
今もバージョンアップされてるんだな。。
GitHub - markedjs/marked: A markdown parser and compiler. Built for speed. A markdown parser and compiler. Built for speed. Contribute to markedjs/marked development by creating an account on GitHub.
私の改造版はこちら。独自拡張と同時にes6のclassとか使って書き直したんだよなあ。。確か。
webservices/marked.js at master · sfpgmr/webservices · GitHub node.jsで作ったWebサービスたち. Contribute to sfpgmr/webservices development by creating an account on GitHub.
いわゆる正規表現使うタイプのパーサなんだけど、正規表現も凝ってくると書いてあることを理解するのにものすごく苦労するんだな。私の正規表現力は並み以下だから理解できないのはそれも大きいが。pegで書き直すとかなりすっきりするかもしれないなあと。
とりあえず修正版のコードをデプロイした。
とりあえず動いてはいる。
S.F. Blog:S.F. Blog IT技術や音楽に関する制作物の公開、情報発信を行っています。
あとはコンテンツをデプロイするところの不具合潰しですな。。gitでコンテンツをpush→webhookで更新をホストに通知→それを受けてpullして更新部分のコンテンツをgzipで圧縮する部分ですわ。。
ホスト側はnginx+nodeからnodeのみに去年移行したんだよね。expressでコンテンツをserveしてる。プロトコルはHTTP/2をサポートしてて、gzip圧縮転送も対応した。というよりそれができることがわかったのでnginxをやめたんだけどね。
nodeだけでコンテンツを配信したかったからね。そこでちょっと構成も見直したんだけどそれが尾を引いてるという。。
とりあえずコンテンツをデプロイできるところまで修正して、あとは成り行きだなあ。PEGちょっと理解したからそれ使ってmarkdownパーサを作ってみたい気もするし。今ならもう少し自由度の高い構文が作れるんじゃないかなーとか思ったりしてる。
あとはAMPページのおかしなところの見直しとか。katexの導入とかね。デザインもリフレッシュしたいよなあ。。ああ、post-cssの件もあるよなあ。。うーむ。
うーむ。webhookの受け側で413エラーが勃発。どうもデータサイズが100kbを超えてるからのよう。まあそれはそうか。
javascript - Error: request entity too large - Stack Overflow I'm receiving the following error with express:
Error: request entity too large
at module.exports (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/
limitを増やす設定しても全然反映されてないかのようですな。。
うーん。。
HTTP:413 Request Entity Too Large · Issue #235 · expressjs/body-parser · GitHub app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); i post more data,but happen error:HTTP:413 Request Entity Too Large. ps: ...
ちゅうかexpressの理解度が低いなあ。。わたしって。。
うーむ。HTTP 413 Errorの件はテスト環境(ちゅうかローカルWSL環境)では413にならんなあ。なぜかVPSの環境だけでなっちゃうみたいだ。さらに謎が深まった。でもまあそのあとのコードも動かんのだけど。。
うーむ。非同期コードを書き直してたらますますExpressがわからなくなってきた。もう一回勉強しなおそう。これは。
なんか手を入れるとエラーがまたポコって出てきて、今まで動いてたのが不思議。。みたいな感じに今なってる。async/awaitを入れ込みたいんだがなんかうまくいかんのよね。。
この辺とかも見てるんだけど。。
StrongLoop - Asynchronous Error Handling in Express with Promises, Generators and ES7
そもそもExpressについてモヤっとした理解しかしとらんのがいかんのよ。。
nginxのコンフィグのほうがわかりやすい気がしないでもない。。
nginxのコンフィグとくらべるのはおかしいか。。
このエラーが発生してたんだよな。。
Can't set headers after they are sent.で怒られた - Qiita herokuにexpressをデプロイして別サーバからアクセスしたら
```
Origin http://〜 is not allowed by Access-Control-Allow-Origin.
```
といって怒られた。
...
この情報で直りました。なんで今まで動いてたんだろうなと考えてたら、webhookのコードはExpressルータに改造する前はExpress使わず単独サービスとして動かしてたからだな。。ということはExpressにしてから一度も動いてないということですわ。。
でまあwebhookのリクエストを受けて、シーケンシャルにアップデートする処理を書くのにqueueないとだめだなあと思って実装しようかなと思ったけど、ちょっとググったらasync.queueを見つけてこれを使うことにした。このasyncというモジュールすごいな。。
No ImagePage not found · GitHub Pages
このqueueのインターフェースというかキューの実装の仕方がなんかすごいエレガントさを感じますわ。。自分で実装したらひどい代物になるところだった。。
ちょっとだけwebhookのコードがきれいになったわ。。
webservices/webhook.mjs at 62714daf748543ebe440869c408ff0bf40c00702 · sfpgmr/webservices · GitHub node.jsで作ったWebサービスたち. Contribute to sfpgmr/webservices development by creating an account on GitHub.
次はこのエラーをつぶさないとけいけない。。
RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stderr maxBuffer length exceeded
このエラーはchild_process.execのmaxBufferの値を調整すればよさそうなんだけど、この値を指定してもエラーがなくならないんだよなあ。。
No ImageChild Process | Node.js v13.2.0 Documentation
よく見るとstdoutじゃなくてstderr のバッファだな。maxBuffer
はstderrのバッファサイズには影響しないのではというのがいまいまの推測。。
とするとここはspawnを使うのが正解かもな。。
いやいや、nodeのドキュメントには
maxBuffer <number> Largest amount of data in bytes allowed on stdout or stderr.
と書いてあって、stderrも対象になっとるな。そりゃそうだわな。。
どうもパーミッションのせいでコマンドがうまく動作しなくてエラーが発生してstderrに吐こうと
したところでバッファがいっぱいとなってしまったようだ。
公開しているディレクトリのパーミッションを適切なものに修正することで、コード自体は動くようになったが。。
しかしandroidタブのおかげで、というかtermuxというアプリのおかげで外出先でもコード修正してタブレットのローカル環境でExpress動かして確認できるというのはほんとすごいな。。
あとはペイロードの更新情報が大量であった場合に設定したバッファサイズ(limit)が有効になるかどうかだな。。ローカルの環境では有効であったが、果たしてVPSの環境ではどうなるだろうか。
config周りもかなりいい加減だから、node-configでも使ってみることにするか。。
GitHub - lorenwest/node-config: Node.js Application Configuration Node.js Application Configuration. Contribute to lorenwest/node-config development by creating an account on GitHub.
github webhook のペイロードが巨大な場合も受け取ることができるか試してみたが、うまくいかないな。。やっぱり413エラーがでてしまう。。
413エラー以外にもamp html対応のコードのところでバグを見つけて直してるところ。ついでにkatex対応もやっておこう。
katexとMathJaxの差が思いのほか無くて、そんなに手をかけずに移行できそうな気がしてきたわ。。
いや、オフラインで吐くコード見比べたら全然違うわ。katexはwebfontとcssで数式作るんだなあ。<span>タグの入れ子がすごいぜ。。かたやMathJaxはsvgを吐く。svgを吐くというか吐かしてるんだっけかな。
ほお。AMPでも@font-face使えるのですな。とするとkatexはAMPページでもいけるんじゃないかなあ。たぶん。やってみるか。。
これね
カスタム フォントの追加 - amp.dev
と思ったがMathJaxでしばらくいこうかな。実はコンテンツを吐くところで遅くなる主原因が判明したのでね。
ちなみにMathJaxで静的にレンダリングした結果例はこれ。
No Image