ブログを Rust + Leptos + Typst で書き直した話

徒然なるままに

Published: Updated: 読むのに約 3 分
#rust#typst#leptos

サイトを書き直しました

これは何?

友人に Next.js のアンチがいたのと、高速化にハマっていたので、ブログを Rust + Leptos + Typst で書き直しました。

Typst はドキュメント作成ツールですが、HTML 出力もできるので、ブログ記事の本文を Typst で書いて HTML に変換し、Leptos 側で組み合わせて表示する形にしました1

Lighthouse スコア満点を目指します

なぜ Rust + Leptos + Typst なのか

Rust は好きだからです。高速で安全で、最近はウェブ開発のエコシステムも充実してきました。Leptos はコンポーネントベースのフレームワークで、React に似た感覚で書けるので選びました。Typst は友人が妙に推していたので選びました。

隠し機能

/blog/[slug].typ の記事ページにアクセスすると、記事本文の生 Typst ファイルを得ることができます。また、/blog/[slug].md にアクセスすると pandoc で変換された Markdown 版の記事も得られます。

マークアップテスト

以下はテスト用です

This is a sample .typ source file.
This is line break test.

  • Bullet one
  • Bullet two
  • Bullet three

Numbered List

  1. Numbered first
  2. Numbered five?
  3. Numbered six!

And a bold and italic markers (left as plain text for now2citation needed).

Lorem Ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do.

Make it a Quote Image
テスト画像
const greet = () => {
console.log("Hello, world!");
};
greet();

リンクのテスト

名前年齢職業
山田28エンジニア
佐藤34デザイナー

ここに数式のテストがあります: .

人生は一箱のマッチに似ている。 重んずるのは馬鹿馬鹿しく、軽んずるのは危険である。

— 芥川龍之介

これは本文です2

Callouts

情報メッセージです。 aaaaaaaaaa

注意メッセージです。
aaaaaaaaaaa
  1. 12025/11/27 時点ではまだ Unstable ではあるのであまり推奨されない
  2. 2ここに脚注を書く