Posted on

Table of Contents

はじめに

Obsidianを使ってWikiをまとめていたがせっかくならページ公開したいな〜と考えていた。どうやらObsidianでページ公開するには有料プランである必要があるらしい。

有料プランにするほどのモチベはなかったが、Rust入門中だったのでせっかくならStatic Site Generatorを作っちゃえ。となった。

GitHub Repositoryは以下

実装

基本機能はSSGとしてMarkdownをHtmlへと変換する機能。Wiki用ということで加えてページ内リンクを簡単に記述できるようになっている。

実装で用いたメインのライブラリ群は以下

  • anyhow(thiserror)
  • clap
  • pulldown-cmark
  • serde
  • tera

特にTeraのドキュメントは読み込んだ。同じくTeraを用いているZolaと似たような使い心地になるよう意識した。

CI/CD

ScrapsのリリースはGitHub Releasesとcrates-ioを用いて管理している。よって cargo install scraps でインストールをできるようにした

SSGのデプロイサポート

GitHub Pagesでのデプロイをサポートすべく、GitHub Actionsのカスタムアクションを用意した。

またカスタムアクションから呼び出すDocker ImageはGitHubリポジトリのPackagesで管理した

ドキュメント

ScrapsのドキュメントはScraps自身を用いて作成している。同リポジトリに置いているので機能開発中のデバッグ用もかねている

終わりに

v0.6.1時点で一通りの機能が揃ったので、実際にScrapsを用いてWikiを作り始めている

我ながら良い使い心地なのでWikiも充実させていきつつ、Scrapsの開発も続けていきたい