Skip to content

Conversation

@3w36zj6
Copy link
Member

@3w36zj6 3w36zj6 commented May 18, 2025

cf. https://github.com/typst-jp/typst-jp.github.io/issues/54

変更点

  • 新しいWebサイトのデプロイに向けてmiseのtasksと継続的デリバリーのワークフローを更新した

確認事項

  • mise run generate-webでWebサイトのビルドができる
    • 以前と同様に事前にmise run generate-docsを実行する必要がある
    • 生成されたファイルは/website/dist/に生成される

このPRで対応しないタスク

  • 従来の静的サイトジェネレーターに関連するファイルの削除

@3w36zj6 3w36zj6 requested a review from Copilot May 18, 2025 18:53
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Switch continuous delivery and local build tasks to target the new website directory under website/dist.

  • Point linting scripts and ignore rules to website/dist/docs/
  • Update mise tasks (generate-web, preview, dev) to run in ./website
  • Change GitHub Pages deploy action to use website/dist

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
package.json Updated textlint-html script to point at website/dist/docs/
.textlintignore Changed ignore paths from dist/docs/... to website/dist/docs/...
.mise.toml Refactored generate-web, added install-website & dev tasks with proper working dir
.github/workflows/deploy.yml Updated deploy action’s folder to website/dist
Comments suppressed due to low confidence (1)

.mise.toml:31

  • [nitpick] The task name install-website is a bit ambiguous. Consider renaming it to install-website-deps to clarify that it installs dependencies.
[tasks.install-website]

Copy link
Member

@kimushun1101 kimushun1101 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

クリーンな状態で試すために、再度git cloneからやり直してみました。
mise run generate-webでは/assets/docsへのシンボリックリンクとしてwebsite/public/assets/docsが生成されるのですが、/assets/docs自体が生成されていない状況です。手続きの不足はありますでしょうか?


方針の確認をさせてください。
現在、静的サイトジェネレーターによるdistディレクトリはこのプロジェクトのルートディレクトリにあり、今回作成された仕組みでは/website/distに出来るものかと思います。後のPRで静的サイトジェネレーターによるdistディレクトリを消すとして、以降は/website/distを使用するという方針でよろしいでしょうか?それとも今回作成されるものをルートディレクトリの/distに置き換える形を想定されておりますでしょうか?

また、その方針を選んだ意図を教えていただけますと幸いです。


pythonが不要となったのであれば.python-versionファイルも削除してしまってよいのではないでしょうか?

Co-authored-by: Shunsuke KIMURA <kimushun1101@gmail.com>
@kimushun1101
Copy link
Member

そもそも本家ではassetディレクトリは削除されているようです。
typst/typst#3515

@3w36zj6
Copy link
Member Author

3w36zj6 commented May 18, 2025

mise run generate-webでは/assets/docsへのシンボリックリンクとしてwebsite/public/assets/docsが生成されるのですが、/assets/docs自体が生成されていない状況です。手続きの不足はありますでしょうか?

mise run generate-webを実行するには、以前と同様にmise run generate-docsが正常終了している必要があります。

ViteはWebサイトの生成時に静的なアセットが事前にpublic/に格納されていることを要求します1。今回のWebサイトの生成では静的なアセットとしてdocs.jsonとドキュメント内のサンプルコードのレンダリング結果の画像が必要になります。そこで、/website/public/assets/docs/assets/docs/へのシンボリックリンクを貼ることにしました。この処理はvite.config.tsに記述されており、Viteの各種コマンドの実行時に前処理として実行されます2。シンボリックリンクを貼るのではなく、typst-docsが生成するアセットの出力先を変更するという方針でも問題はないですが、新しいWebサイトの開発中には既存のコードへの変更を最小限にしたかったためこの方針をとっています。

現在、静的サイトジェネレーターによるdistディレクトリはこのプロジェクトのルートディレクトリにあり、今回作成された仕組みでは/website/distに出来るものかと思います。後のPRで静的サイトジェネレーターによるdistディレクトリを消すとして、以降は/website/distを使用するという方針でよろしいでしょうか?それとも今回作成されるものをルートディレクトリの/distに置き換える形を想定されておりますでしょうか?

今後は出力先として/website/dist/を使用する方針で考えています。
現在はルートディレクトリに独自に追加した(またはFork元の中国語コミュニティで追加された)ファイルが多くありますが、責務の分離が適切になされていないディレクトリ構成は、上流リポジトリの変更を取り込む際や新規の貢献者がディレクトリ構造を把握する際に障壁となり得ます。そのため、ルートディレクトリへのファイルの追加はプロジェクトのメタファイルなど最低限に留めるべきだと考えます。
ここで、「ドキュメントのメタファイルdocs.json及びアセットの生成」と「Webサイトの生成」は責務が異なるため、Webサイト生成のプロジェクトの入出力を/website/で完結させることで、責務の境界を明確にし、各部分の独立した開発・保守を容易にします。

Footnotes

  1. https://vite.dev/guide/assets#the-public-directory

  2. https://github.com/typst-jp/typst-jp.github.io/blob/feature/update-cd-workflow-to-deploy-new-website/website/vite.config.ts#L9-L14

@3w36zj6
Copy link
Member Author

3w36zj6 commented May 18, 2025

pythonが不要となったのであれば.python-versionファイルも削除してしまってよいのではないでしょうか?

Python環境の削除は「従来の静的サイトジェネレーターに関連するファイルの削除」に含まれている認識です。

静的サイトジェネレーター以外では翻訳支援用スクリプトもPythonで書かれていますが、こちらは別のPRでNode.jsに書き直しても良いかもしれません。

https://github.com/typst-jp/typst-jp.github.io/blob/main/translate.py

@3w36zj6
Copy link
Member Author

3w36zj6 commented May 18, 2025

そもそも本家ではassetディレクトリは削除されているようです。

別のIssue/PRで調査/対応します。

@3w36zj6 3w36zj6 requested a review from kimushun1101 May 18, 2025 21:26
Copy link
Member

@kimushun1101 kimushun1101 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ご回答いただきありがとうございます。方針に同意いたします。
確かに本筋から外れていましたね。申し訳ございません。
継続的デリバリーへ対応に関してしては今回の変更で問題ないと思います。

@3w36zj6 3w36zj6 merged commit af8c501 into main May 21, 2025
3 checks passed
@3w36zj6 3w36zj6 deleted the feature/update-cd-workflow-to-deploy-new-website branch May 21, 2025 08:27
@kimushun1101 kimushun1101 mentioned this pull request May 22, 2025
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants