Skip to content

Commit 9e9a18a

Browse files
authored
chore: miseとuvでPython環境を管理するための設定ファイルを追加 (#71)
1 parent 3d8c6b8 commit 9e9a18a

File tree

6 files changed

+229
-16
lines changed

6 files changed

+229
-16
lines changed

.github/workflows/deploy.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,10 @@ jobs:
1515
with:
1616
toolchain: '1.77'
1717
- uses: Swatinem/rust-cache@v2
18-
# python3 and package jinja2
19-
- uses: actions/setup-python@v2
20-
with:
21-
python-version: 3.x
22-
- run: python3 -m pip install jinja2 PyYAML
23-
- run: cargo test --package typst-docs --lib -- tests::test_docs --exact --nocapture
24-
- run: python3 ./gen.py
18+
- uses: jdx/mise-action@v2
19+
- run: uv sync --locked
20+
- run: mise run generate-docs
21+
- run: mise run generate-web
2522
# deploy ./dist to https://github.com/typst-doc-cn/typst-doc-cn.github.io
2623
- name: Deploy
2724
if: github.ref == 'refs/heads/main'

.mise.toml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[tools]
2+
# python is managed by .python-version
3+
uv = "0.5.1"
4+
5+
[env]
6+
_.python.venv = { path = ".venv", create = true }
7+
8+
[settings]
9+
yes = true
10+
11+
[tasks.generate-docs]
12+
run = "cargo test --package typst-docs --lib -- tests::test_docs --exact --nocapture"
13+
14+
[tasks.generate-web]
15+
run = "uv run gen.py"
16+
17+
[tasks.generate]
18+
run = [
19+
"mise run generate-docs",
20+
"mise run generate-web"
21+
]
22+
23+
[tasks.preview]
24+
run = "uv run -m http.server -d dist"

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.12.7

CONTRIBUTING.md

Lines changed: 97 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,109 @@ Typst日本語ドキュメント翻訳プロジェクトにご興味をお持ち
3434

3535
[中国語版](https://github.com/typst-doc-cn/typst-doc-cn.github.io?tab=readme-ov-file#%E6%8A%80%E6%9C%AF%E7%BB%86%E8%8A%82)を参照してください。
3636

37-
### ローカル環境でドキュメントを生成する
37+
### ローカル環境でWebページを生成する
3838

39-
変更したMarkdown/YAMLファイルから、ローカル環境でWebサイトのデータを生成することも可能です。翻訳の際にこの作業は必須ではありませんが、書き換えたファイルがWebページとして正しく表示されるのか確認するのに役立ちます
39+
当プロジェクトは[typst/typst](https://github.com/typst/typst/)の派生リポジトリであり、Webページを生成するためにはRustが必要です。導入していない場合は、[Install Rust - Rust Programming Language](https://www.rust-lang.org/tools/install)に従ってインストールしてください
4040

41-
まず、このリポジトリのクローンを作成し、`cargo`ツールチェーン、PythonおよびPythonパッケージの`jinja2``pyyaml`をインストールする必要があります。
41+
また、当プロジェクトが独自に導入しているRustを除く開発ツールおよびコマンドは[mise](https://mise.jdx.dev/)で一元管理しています。導入していない場合は、[Getting Started | mise-en-place](https://mise.jdx.dev/getting-started.html)に従ってインストールしてください。
42+
43+
#### TL;DR
44+
45+
> [!NOTE]
46+
> こちらの説明は要約版です。詳細を知りたい場合は、次以降の見出しを参照してください。
47+
48+
当プロジェクトのルートディレクトリに移動し、以下のコマンドを実行します。このコマンドは初回のみ実行する必要があります。
49+
50+
```sh
51+
mise trust
52+
mise install
53+
```
54+
55+
Webサイトを再生成するには、以下のコマンドを実行します。
56+
57+
```sh
58+
mise run generate
59+
```
60+
61+
Webサイトをローカルサーバーでプレビューするには、以下のコマンドを実行します。
62+
63+
```sh
64+
mise run preview
4265
```
43-
# `./docs`以下のディレクトリを変更した場合は、次の2行のコマンドを実行する必要があります
44-
cargo test --package typst-docs --lib -- tests::test_docs --exact --nocapture
45-
# `./docs/i18n`ディレクトリのみを変更した場合は、このコマンド行を実行するだけで済みます
46-
python ./gen.py
66+
67+
#### miseによる開発環境のセットアップ
68+
69+
> [!NOTE]
70+
> 以下の内容はmise v2024.11.5に基づいています。内容の不備を発見した場合は、Issueを立ててください。
71+
72+
miseが導入されている環境で初めて当プロジェクトのルートディレクトリに移動すると、以下のように構成ファイルを信頼することを求められます。
73+
74+
```plaintext
75+
mise ERROR Config file /path/to/typst-jp.github.io/.mise.toml is not trusted.
76+
Trust it with `mise trust`.
77+
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
78+
```
79+
80+
この場合は、指示に従って`mise trust`を実行してください。`mise trust`の詳細は、[mise trust | mise-en-place](https://mise.jdx.dev/cli/trust.html)を参照してください。
81+
82+
```sh
83+
mise trust
84+
```
85+
86+
miseの設定ファイルでPythonのvirtualenvの自動アクティベートを有効にしていますが、この時点では`.venv/`ディレクトリが作成されていないため、WARNが発生するはずです。
87+
88+
```plaintext
89+
mise trusted /path/to/typst-jp.github.io/.mise.toml
90+
mise WARN no venv found at: /path/to/typst-jp.github.io/.venv
91+
92+
To create a virtualenv manually, run:
93+
python -m venv /path/to/typst-jp.github.io/.venv
94+
```
95+
96+
次に、`mise install`を実行して、miseで管理されているツールをインストールおよびアクティベートします。
97+
98+
```sh
99+
mise install
100+
```
101+
102+
#### TypstのソースコードからドキュメントデータのJSONファイルを生成する
103+
104+
ドキュメントデータのJSONファイルは、typst-docsによりTypstのソースコード内のコメントおよび`docs/`にあるMarkdownファイル群から生成されます。
105+
106+
`mise run generate-docs`を実行すると、ドキュメントデータのJSONファイルが`assets/docs.json`に生成されます。
107+
108+
```sh
109+
mise run generate-docs
110+
```
111+
112+
#### ドキュメントデータのJSONファイルからWebサイトを生成する
113+
114+
Webサイトの生成にはPythonとJinja2を使用しています。また、パッケージ管理にuvを使用しています。
115+
116+
`mise run generate-web`を実行すると、`assets/docs.json`を基にWebサイトのデータが`dist/`に生成されます。
117+
118+
```sh
119+
mise run generate-web
120+
```
121+
122+
生成されたWebサイトをプレビューするには、`mise run preview`を実行します。
123+
124+
```sh
125+
mise run preview
126+
```
127+
128+
#### Webサイトの生成までを一括で行う
129+
130+
`mise run generate`を実行すると、`generate-docs`および`generate-web`を一括で実行します。
131+
132+
```sh
133+
mise run generate
47134
```
48135

49-
最終的にコンパイルされたファイルは`./dist`に出力されます。
136+
#### Dev Containerについて
50137

51-
Node.jsがインストールされている場合は、`npx serve ./dist`でプレビューできます。
138+
> [!WARNING]
139+
> Dev Containerは現在miseに対応していません。そのため、Dev Containerを使用する場合は、`.mise.toml`を参考に手動で上記の手順を実行してください。
52140
53141
上記のローカル環境を構築するDockerfileも整備しております。詳細は[.devcontainer/README.md](.devcontainer/README.md)をご参照ください。
54142

pyproject.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[project]
2+
name = "typst-jp-github-io"
3+
version = "0.1.0"
4+
description = "Typst documents japanese translation project"
5+
readme = "README.md"
6+
requires-python = ">=3.12.7"
7+
dependencies = [
8+
"jinja2>=3.1.4",
9+
"pyyaml>=6.0.2",
10+
]

0 commit comments

Comments
 (0)