まだ astro をあまり使っていないのだが、
さらに minista への移行を試みる。
素の jsx を使いたいのじゃ。
なので、 svelte
とか astro
とか独自記法のものはやめておく意向。
jsx
+typescript
=>tsx
vite
くらいまではやるという線引き。
たぶん、astro
より minista
の方が便利ではないがシンプルなのではないか。
minista 移行メモ
開始
テンプレートを参考にコピペして動くようにする。
package.json
index.tsx
とりあえず index が起動。
markdown 記事を投入
astro のcontentCollection
に該当する機能が無いので手作りで補う。
astro の contentCollection
は src/contents
配下の *.md
を集めて記事のコレクションで
ブログを作ったりするという機能だ。
minista では、以下の機能で代替できそうだ。
getStaticData で md
を glob して、frontmatter を取り出したリストを作れば動いた。
index.tsx
普通に console.log
で print デバッグできたし。
画期的にシンプルになったのでは。
hugo などの ssg によくある、特定のフォルダに記事を配置する方式よりわかりやすいような気がする。
自分で配置して、自分で列挙する、これじゃよ。
layout とか
Theme とか Template とかそういう作業。
とりあえず global で満足した。
少し React 知識があればさくさくできそうな感じ。 いわゆる HtmlTemplate より JSX(TSX) の方がわかりやすさで勝っている。 基本を覚えれば、なんかやるたびに検索するという頻度は少ない気がする。
trouble: Unknown language
既存記事の移植でエラーが発生。
どうも、.md
のコードブロックにマイナーな言語とかを書いていると出る。
minista.config.js
で
とすることでエラーは出なくなったので rehype
まわり。
動くように対処する方法・・・。
stacktrace が node_modules/rehype-highlight/lib/index.js
までしか遡れないのでわからんなー。
node_modules/minista/dist/server/page.js
見つけたー。
https://github.com/rehypejs/rehype-highlight/blob/6.0.0/lib/index.js#L17
minista.config.js
trouble: build “EventEmitter” is not exported
node 関数を使ってはいけないらしい。 glob した結果を json に一度書き出して import するようにしたら動いた。 dev は glob で、build は json 経由になるように手を考える。
minista.config.js
dynamic import
が tsx しかうまくいかない?
小手先のハックで乗り切ったぽい。