article-cli 1.3.2__tar.gz → 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. {article_cli-1.3.2 → article_cli-2.0.0}/.gitignore +11 -1
  2. {article_cli-1.3.2 → article_cli-2.0.0}/PKG-INFO +194 -36
  3. {article_cli-1.3.2 → article_cli-2.0.0}/README.md +182 -29
  4. {article_cli-1.3.2 → article_cli-2.0.0}/pyproject.toml +27 -9
  5. {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/__init__.py +7 -4
  6. article_cli-2.0.0/src/article_cli/cli.py +190 -0
  7. article_cli-2.0.0/src/article_cli/command_runner.py +67 -0
  8. article_cli-2.0.0/src/article_cli/commands/__init__.py +31 -0
  9. article_cli-2.0.0/src/article_cli/commands/bibtex.py +108 -0
  10. article_cli-2.0.0/src/article_cli/commands/clean.py +28 -0
  11. article_cli-2.0.0/src/article_cli/commands/compile.py +89 -0
  12. article_cli-2.0.0/src/article_cli/commands/config.py +102 -0
  13. article_cli-2.0.0/src/article_cli/commands/doctor.py +67 -0
  14. article_cli-2.0.0/src/article_cli/commands/fonts.py +70 -0
  15. article_cli-2.0.0/src/article_cli/commands/init.py +156 -0
  16. article_cli-2.0.0/src/article_cli/commands/release.py +172 -0
  17. article_cli-2.0.0/src/article_cli/commands/setup.py +32 -0
  18. article_cli-2.0.0/src/article_cli/commands/themes.py +97 -0
  19. article_cli-2.0.0/src/article_cli/commands/version.py +83 -0
  20. {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/config.py +125 -16
  21. article_cli-2.0.0/src/article_cli/doctor.py +968 -0
  22. {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/fonts.py +1 -3
  23. article_cli-2.0.0/src/article_cli/git_hooks.py +413 -0
  24. article_cli-2.0.0/src/article_cli/git_manager.py +477 -0
  25. {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/latex_compiler.py +167 -203
  26. article_cli-2.0.0/src/article_cli/project_context.py +225 -0
  27. article_cli-2.0.0/src/article_cli/reporting.py +39 -0
  28. article_cli-2.0.0/src/article_cli/repository_setup.py +1068 -0
  29. article_cli-2.0.0/src/article_cli/services/__init__.py +21 -0
  30. article_cli-2.0.0/src/article_cli/services/bibliography.py +109 -0
  31. article_cli-2.0.0/src/article_cli/services/compiler.py +130 -0
  32. article_cli-2.0.0/src/article_cli/services/git.py +29 -0
  33. article_cli-2.0.0/src/article_cli/services/gitinfo.py +125 -0
  34. article_cli-2.0.0/src/article_cli/services/release.py +564 -0
  35. article_cli-2.0.0/src/article_cli/services/workflow.py +68 -0
  36. article_cli-2.0.0/src/article_cli/template_renderer.py +70 -0
  37. article_cli-2.0.0/src/article_cli/templates/__init__.py +1 -0
  38. article_cli-2.0.0/src/article_cli/templates/article/ieee.tex.j2 +54 -0
  39. article_cli-2.0.0/src/article_cli/templates/article/lncs.tex.j2 +51 -0
  40. article_cli-2.0.0/src/article_cli/templates/article/lncs.typ.j2 +69 -0
  41. article_cli-2.0.0/src/article_cli/templates/article/main.tex.j2 +58 -0
  42. article_cli-2.0.0/src/article_cli/templates/article/main.typ.j2 +57 -0
  43. article_cli-2.0.0/src/article_cli/templates/github/latex.yml.j2 +407 -0
  44. article_cli-2.0.0/src/article_cli/templates/poster/poster.tex.j2 +55 -0
  45. article_cli-2.0.0/src/article_cli/templates/poster/poster.typ.j2 +97 -0
  46. article_cli-2.0.0/src/article_cli/templates/presentation/beamer.tex.j2 +68 -0
  47. article_cli-2.0.0/src/article_cli/templates/presentation/typst.typ.j2 +114 -0
  48. article_cli-2.0.0/src/article_cli/templates/project/README.md.j2 +164 -0
  49. article_cli-2.0.0/src/article_cli/templates/project/gitignore.j2 +42 -0
  50. article_cli-2.0.0/src/article_cli/templates/project/pyproject.toml.j2 +116 -0
  51. article_cli-2.0.0/src/article_cli/templates/project/vscode-settings.json.j2 +128 -0
  52. {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/themes.py +18 -8
  53. article_cli-2.0.0/src/article_cli/typst_compiler.py +310 -0
  54. article_cli-2.0.0/src/article_cli/zotero.py +758 -0
  55. article_cli-2.0.0/tests/golden/__init__.py +1 -0
  56. article_cli-2.0.0/tests/golden/article_main.tex +58 -0
  57. article_cli-2.0.0/tests/test_cli.py +323 -0
  58. {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_config.py +9 -0
  59. article_cli-2.0.0/tests/test_doctor.py +242 -0
  60. {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_fonts.py +1 -5
  61. {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_latex_compiler.py +59 -5
  62. article_cli-2.0.0/tests/test_project_context.py +65 -0
  63. article_cli-2.0.0/tests/test_release_service.py +193 -0
  64. {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_repository_setup.py +411 -3
  65. article_cli-2.0.0/tests/test_services.py +246 -0
  66. article_cli-2.0.0/tests/test_template_renderer.py +49 -0
  67. {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_themes.py +66 -1
  68. article_cli-2.0.0/tests/test_typst_compiler.py +315 -0
  69. article_cli-2.0.0/tests/test_workflow_ci.py +107 -0
  70. article_cli-2.0.0/tests/test_zotero_bibliography.py +166 -0
  71. article_cli-1.3.2/src/article_cli/cli.py +0 -665
  72. article_cli-1.3.2/src/article_cli/git_manager.py +0 -356
  73. article_cli-1.3.2/src/article_cli/repository_setup.py +0 -1769
  74. article_cli-1.3.2/src/article_cli/zotero.py +0 -369
  75. {article_cli-1.3.2 → article_cli-2.0.0}/LICENSE +0 -0
  76. {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/__main__.py +0 -0
  77. {article_cli-1.3.2 → article_cli-2.0.0}/tests/__init__.py +0 -0
@@ -27,6 +27,16 @@ share/python-wheels/
27
27
  *.egg
28
28
  MANIFEST
29
29
 
30
+ # Node / Antora documentation
31
+ node_modules/
32
+ npm-debug.log*
33
+ yarn-debug.log*
34
+ yarn-error.log*
35
+
36
+ # Generated/downloaded font assets
37
+ fonts/
38
+ fonts-test/
39
+
30
40
  # PyInstaller
31
41
  # Usually these files are written by a python script from a template
32
42
  # before PyInstaller builds the exe, so as to inject date/other infos into it.
@@ -139,4 +149,4 @@ dmypy.json
139
149
  Thumbs.db
140
150
 
141
151
  # Test configurations
142
- test-config.toml
152
+ test-config.toml
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: article-cli
3
- Version: 1.3.2
4
- Summary: CLI tool for managing LaTeX articles with git integration and Zotero bibliography
3
+ Version: 2.0.0
4
+ Summary: CLI tool for managing LaTeX and Typst documents with git integration and Zotero bibliography
5
5
  Project-URL: Homepage, https://github.com/feelpp/article.cli
6
6
  Project-URL: Documentation, https://github.com/feelpp/article.cli#readme
7
7
  Project-URL: Repository, https://github.com/feelpp/article.cli.git
@@ -29,27 +29,32 @@ License: MIT License
29
29
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
30
  SOFTWARE.
31
31
  License-File: LICENSE
32
- Keywords: academic,bibliography,git,latex,research,zotero
32
+ Keywords: academic,bibliography,git,latex,presentations,research,typst,zotero
33
33
  Classifier: Development Status :: 4 - Beta
34
34
  Classifier: Intended Audience :: Science/Research
35
35
  Classifier: License :: OSI Approved :: MIT License
36
36
  Classifier: Operating System :: OS Independent
37
37
  Classifier: Programming Language :: Python :: 3
38
- Classifier: Programming Language :: Python :: 3.8
39
38
  Classifier: Programming Language :: Python :: 3.9
40
39
  Classifier: Programming Language :: Python :: 3.10
41
40
  Classifier: Programming Language :: Python :: 3.11
42
41
  Classifier: Programming Language :: Python :: 3.12
42
+ Classifier: Programming Language :: Python :: 3.13
43
43
  Classifier: Topic :: Scientific/Engineering
44
44
  Classifier: Topic :: Text Processing :: Markup :: LaTeX
45
- Requires-Python: >=3.8
45
+ Requires-Python: >=3.9
46
+ Requires-Dist: jinja2>=3.1
47
+ Requires-Dist: pyyaml>=6.0
46
48
  Requires-Dist: requests>=2.28.0
49
+ Requires-Dist: tomli>=2.0.0; python_version < '3.11'
47
50
  Provides-Extra: dev
48
- Requires-Dist: black>=23.0; extra == 'dev'
51
+ Requires-Dist: black==25.11.0; extra == 'dev'
52
+ Requires-Dist: build>=1.2.0; extra == 'dev'
49
53
  Requires-Dist: flake8>=6.0; extra == 'dev'
50
- Requires-Dist: mypy>=1.0; extra == 'dev'
54
+ Requires-Dist: mypy<2.0,>=1.0; extra == 'dev'
51
55
  Requires-Dist: pytest-cov; extra == 'dev'
52
56
  Requires-Dist: pytest>=7.0; extra == 'dev'
57
+ Requires-Dist: twine>=5.0.0; extra == 'dev'
53
58
  Requires-Dist: types-requests; extra == 'dev'
54
59
  Description-Content-Type: text/markdown
55
60
 
@@ -59,28 +64,31 @@ Description-Content-Type: text/markdown
59
64
  [![PyPI version](https://badge.fury.io/py/article-cli.svg)](https://badge.fury.io/py/article-cli)
60
65
  [![Python Support](https://img.shields.io/pypi/pyversions/article-cli.svg)](https://pypi.org/project/article-cli/)
61
66
 
62
- A command-line tool for managing LaTeX articles and presentations with git integration and Zotero bibliography synchronization.
67
+ A command-line tool for managing LaTeX and Typst documents with git integration and Zotero bibliography synchronization.
63
68
 
64
69
  ## Features
65
70
 
66
- - **Repository Initialization**: Complete setup for LaTeX article or presentation projects with one command
67
- - **Project Types**: Support for articles, Beamer presentations, and posters
71
+ - **Repository Initialization**: Complete setup for LaTeX or Typst projects with one command
72
+ - **Project Types**: Support for articles, Beamer presentations, posters, and Typst documents
68
73
  - **LaTeX Compilation**: Compile documents with latexmk/pdflatex/xelatex/lualatex, watch mode, shell escape support
74
+ - **Typst Compilation**: Full support for Typst documents with watch mode and custom font paths
69
75
  - **Font Installation**: Download and install fonts for XeLaTeX projects (Marianne, Roboto Mono, etc.)
70
76
  - **GitHub Actions Workflows**: Automated PDF compilation with XeLaTeX support, artifact upload, and GitHub releases
71
77
  - **Git Release Management**: Create, list, and delete releases with gitinfo2 support
72
78
  - **Zotero Integration**: Synchronize bibliography from Zotero with robust pagination and error handling
79
+ - **Lifecycle Commands**: Use `init`, `setup`, `doctor`, `bib update`, `compile`, `version`, and `release`
73
80
  - **LaTeX Build Management**: Clean build files and manage LaTeX compilation artifacts
74
81
  - **Git Hooks Setup**: Automated setup of git hooks for gitinfo2 integration
82
+ - **Repository Diagnostics**: `doctor` checks for git, hooks, build tools, Zotero, workflows, release readiness, and safe repairs with `--fix`
75
83
  - **Project Configuration**: Auto-generates pyproject.toml with article-cli settings
76
- - **Documentation**: Creates README with build instructions and usage guide
84
+ - **Documentation**: Creates project README files and ships an Antora documentation site
77
85
 
78
86
  ## Installation
79
87
 
80
88
  ### From PyPI (recommended)
81
89
 
82
90
  ```bash
83
- pip install article-cli
91
+ uv tool install article-cli
84
92
  ```
85
93
 
86
94
  ### From Source
@@ -88,9 +96,32 @@ pip install article-cli
88
96
  ```bash
89
97
  git clone https://github.com/feelpp/article.cli.git
90
98
  cd article.cli
91
- pip install -e .
99
+ uv sync --all-extras --dev
100
+ uv run article-cli --help
92
101
  ```
93
102
 
103
+ ### Development Commands
104
+
105
+ ```bash
106
+ uv sync --all-extras --dev
107
+ uv run pytest
108
+ uv run black --check src tests
109
+ uv run mypy src
110
+ uv build
111
+ ```
112
+
113
+ ### Documentation Site
114
+
115
+ The documentation site is built with Antora and the Feel++ Antora UI bundle:
116
+
117
+ ```bash
118
+ npm install
119
+ npm run docs:build
120
+ npm run docs:preview
121
+ ```
122
+
123
+ The generated site is written to `build/site`.
124
+
94
125
  ## Quick Start
95
126
 
96
127
  ### For New Projects
@@ -116,8 +147,12 @@ pip install -e .
116
147
 
117
148
  3. **Setup git hooks and update bibliography**:
118
149
  ```bash
150
+ article-cli doctor
151
+ article-cli doctor --fix
152
+ article-cli setup --dry-run
119
153
  article-cli setup
120
- article-cli update-bibtex
154
+ article-cli bib update --dry-run
155
+ article-cli bib update
121
156
  ```
122
157
 
123
158
  4. **Commit and push** to trigger automated PDF compilation!
@@ -126,6 +161,8 @@ pip install -e .
126
161
 
127
162
  1. **Setup git hooks** (run once per repository):
128
163
  ```bash
164
+ article-cli doctor
165
+ article-cli doctor --fix
129
166
  article-cli setup
130
167
  ```
131
168
 
@@ -137,12 +174,15 @@ pip install -e .
137
174
 
138
175
  3. **Update bibliography from Zotero**:
139
176
  ```bash
140
- article-cli update-bibtex
177
+ article-cli bib update
141
178
  ```
142
179
 
143
- 4. **Create a release**:
180
+ 4. **Compile, refresh version metadata, and create a release**:
144
181
  ```bash
145
- article-cli create v1.0.0
182
+ article-cli compile
183
+ article-cli version
184
+ article-cli release v1.0.0 --dry-run
185
+ article-cli release v1.0.0
146
186
  ```
147
187
 
148
188
  ## Configuration
@@ -165,9 +205,18 @@ group_id = "4678293" # Default for article.template
165
205
  output_file = "references.bib"
166
206
 
167
207
  [git]
168
- auto_push = true
208
+ auto_push = false
169
209
  default_branch = "main"
170
210
 
211
+ [workflow]
212
+ runner_policy = "github"
213
+ github_runner = "ubuntu-24.04"
214
+ self_hosted_label = "self-texlive"
215
+ self_hosted_org = ""
216
+ bibliography = "off"
217
+ release = "github"
218
+ artifact_includes = []
219
+
171
220
  [latex]
172
221
  clean_extensions = [".aux", ".bbl", ".blg", ".log", ".out", ".synctex.gz"]
173
222
 
@@ -186,8 +235,13 @@ directory = "."
186
235
  # url = "https://example.com/theme.zip"
187
236
  # description = "My custom theme"
188
237
  # files = ["beamerthememytheme.sty"]
238
+ # typst_files = ["mytheme.typ"]
189
239
  # requires_fonts = false
190
240
  # engine = "pdflatex"
241
+
242
+ [typst]
243
+ font_paths = ["fonts/", "~/.fonts/"]
244
+ build_dir = "build"
191
245
  ```
192
246
 
193
247
  ## Usage
@@ -204,6 +258,12 @@ article-cli init --title "My Presentation" --authors "Author" --type presentatio
204
258
  # Initialize with numpex theme (requires theme files from presentation.template.d)
205
259
  article-cli init --title "NumPEx Talk" --authors "Author" --type presentation --theme numpex
206
260
 
261
+ # Initialize a Typst presentation project
262
+ article-cli init --title "My Typst Talk" --authors "Author" --type typst-presentation
263
+
264
+ # Initialize a Typst poster project
265
+ article-cli init --title "My Typst Poster" --authors "Author" --type typst-poster
266
+
207
267
  # Specify custom Zotero group ID
208
268
  article-cli init --title "My Article" --authors "Author" --group-id 1234567
209
269
 
@@ -212,6 +272,13 @@ article-cli init --title "My Article" --authors "Author" --tex-file article.tex
212
272
 
213
273
  # Force overwrite existing files
214
274
  article-cli init --title "My Article" --authors "Author" --force
275
+
276
+ # Generate CI that checks Zotero bibliography freshness
277
+ article-cli init --title "My Article" --authors "Author" --ci-bib check
278
+
279
+ # Generate CI with opt-in self-hosted runner discovery
280
+ article-cli init --title "My Article" --authors "Author" \
281
+ --ci-runner-policy self-hosted-auto --ci-self-hosted-org my-org
215
282
  ```
216
283
 
217
284
  The `init` command sets up:
@@ -225,27 +292,48 @@ The `init` command sets up:
225
292
  ### Git Release Management
226
293
 
227
294
  ```bash
228
- # Create a new release
229
- article-cli create v1.2.3
295
+ # Refresh gitinfo2 version metadata
296
+ article-cli version
297
+
298
+ # Refresh metadata, compile, and check the PDF version text
299
+ article-cli version --compile --check-pdf
300
+
301
+ # Preview a new release tag
302
+ article-cli release v1 --dry-run
303
+
304
+ # Create a checked local release tag
305
+ article-cli release v1
306
+
307
+ # Check bibliography freshness during release, then push the tag
308
+ article-cli release v1 --bib check --push
230
309
 
231
310
  # List recent releases
232
311
  article-cli list --count 10
233
312
 
234
313
  # Delete a release
235
314
  article-cli delete v1.2.3
315
+
316
+ # Deprecated alias retained for compatibility
317
+ article-cli create v1.2.3
236
318
  ```
237
319
 
238
320
  ### Bibliography Management
239
321
 
240
322
  ```bash
323
+ # Preview bibliography update
324
+ article-cli bib update --dry-run
325
+
241
326
  # Update bibliography from Zotero
242
- article-cli update-bibtex
327
+ article-cli bib update
243
328
 
244
329
  # Specify custom output file
245
- article-cli update-bibtex --output my-refs.bib
330
+ article-cli bib update --output my-refs.bib
246
331
 
247
332
  # Skip backup creation
248
- article-cli update-bibtex --no-backup
333
+ article-cli bib update --no-backup
334
+
335
+ # Deprecated alias retained for compatibility
336
+ article-cli update-bibtex
249
337
  ```
250
338
 
251
339
  ### LaTeX Compilation
@@ -279,6 +367,32 @@ article-cli compile --clean-first --clean-after
279
367
  article-cli compile --output-dir build/
280
368
  ```
281
369
 
370
+ ### Typst Compilation
371
+
372
+ ```bash
373
+ # Compile a Typst document (auto-detects .typ files)
374
+ article-cli compile presentation.typ
375
+
376
+ # Compile with explicit Typst engine
377
+ article-cli compile --engine typst document.typ
378
+
379
+ # Watch for changes and auto-recompile
380
+ article-cli compile presentation.typ --watch
381
+
382
+ # Specify custom font paths
383
+ article-cli compile presentation.typ --font-path fonts/
384
+
385
+ # Multiple font paths
386
+ article-cli compile presentation.typ --font-path fonts/ --font-path ~/.fonts/
387
+
388
+ # Specify output directory
389
+ article-cli compile presentation.typ --output-dir build/
390
+ ```
391
+
392
+ **Note:** The engine is automatically detected from the file extension:
393
+ - `.tex` files use LaTeX engines (latexmk by default)
394
+ - `.typ` files use the Typst engine
395
+
282
396
  ### Font Installation
283
397
 
284
398
  Install fonts for XeLaTeX projects (useful for custom Beamer themes):
@@ -323,9 +437,11 @@ article-cli install-theme my-theme --url https://example.com/theme.zip
323
437
  ```
324
438
 
325
439
  **Available themes:**
326
- - **numpex**: NumPEx Beamer theme following French government visual identity (requires XeLaTeX and custom fonts)
440
+ - **numpex**: NumPEx theme following French government visual identity
441
+ - LaTeX: Beamer theme files (requires XeLaTeX and custom fonts)
442
+ - Typst: `numpex.typ` theme file for Typst presentations
327
443
 
328
- **Complete presentation setup:**
444
+ **Complete LaTeX presentation setup:**
329
445
  ```bash
330
446
  # 1. Install the theme
331
447
  article-cli install-theme numpex
@@ -337,9 +453,27 @@ article-cli install-fonts
337
453
  article-cli compile presentation.tex --engine xelatex
338
454
  ```
339
455
 
456
+ **Complete Typst presentation setup:**
457
+ ```bash
458
+ # 1. Install the theme (includes numpex.typ)
459
+ article-cli install-theme numpex
460
+
461
+ # 2. Compile with Typst
462
+ article-cli compile presentation.typ --font-path fonts/
463
+ ```
464
+
340
465
  ### Project Setup
341
466
 
342
467
  ```bash
468
+ # Diagnose repository readiness without modifying files
469
+ article-cli doctor
470
+
471
+ # Emit machine-readable diagnostics for CI
472
+ article-cli doctor --json
473
+
474
+ # Apply safe repairs for hooks, output directories, and gitHeadLocal.gin
475
+ article-cli doctor --fix
476
+
343
477
  # Setup git hooks for gitinfo2
344
478
  article-cli setup
345
479
 
@@ -351,23 +485,28 @@ article-cli clean
351
485
 
352
486
  ```bash
353
487
  # Override configuration via command line
354
- article-cli update-bibtex --api-key YOUR_KEY --group-id YOUR_GROUP
488
+ article-cli bib update --api-key YOUR_KEY --group-id YOUR_GROUP
355
489
 
356
490
  # Specify custom configuration file
357
- article-cli --config custom-config.toml update-bibtex
491
+ article-cli --config custom-config.toml bib update
358
492
  ```
359
493
 
360
- ## Version Format
494
+ ## Release Tags
495
+
496
+ The default paper release policy accepts short and full version tags:
497
+ - `vX` for paper milestones (e.g., `v1`)
498
+ - `vX.Y` or `vX.Y.Z` for more detailed paper releases
499
+ - `vX.Y.Z-rc.N`, `vX.Y.Z-beta.N`, or similar pre-release suffixes
361
500
 
362
- Release versions must follow the semantic versioning format:
363
- - `vX.Y.Z` for stable releases (e.g., `v1.2.3`)
364
- - `vX.Y.Z-pre.N` for pre-releases (e.g., `v1.2.3-pre.1`)
501
+ Use `[tool.article-cli.release] tag_policy = "semver"` when a repository must require strict `vX.Y.Z` semantic-version tags. The release command does not commit, force-retag, push, or create a GitHub release unless the corresponding explicit flag is passed.
365
502
 
366
503
  ## Requirements
367
504
 
368
- - Python 3.8+
505
+ - Python 3.9+
369
506
  - Git repository with gitinfo2 package (for LaTeX integration)
370
507
  - Zotero account with API access (for bibliography features)
508
+ - Typst CLI (for Typst compilation) - install from https://typst.app/
509
+ - Node.js 20+ for building the Antora documentation site
371
510
 
372
511
  ## License
373
512
 
@@ -383,12 +522,31 @@ MIT License - see LICENSE file for details.
383
522
 
384
523
  ## Changelog
385
524
 
386
- ### v1.2.0
387
- - Add font installation command (`install-fonts`) for XeLaTeX projects
388
- - Support Marianne and Roboto Mono fonts by default
525
+ ### v1.5.0
526
+ - Add `doctor` diagnostics with JSON output and safe `--fix` repairs
527
+ - Split CLI implementation into command modules
528
+ - Make setup hooks more robust and worktree-safe
529
+ - Standardize development and CI workflows on `uv`
530
+ - Add an Antora documentation site using the Feel++ Antora UI
531
+
532
+ ### v1.4.0
533
+ - Add full Typst document compilation support
534
+ - New `TypstCompiler` class for Typst documents
535
+ - Auto-detection of `.typ` files with automatic engine selection
536
+ - Watch mode for Typst with live recompilation
537
+ - Custom font path support (`--font-path` option)
538
+ - New project types: `typst-presentation` and `typst-poster`
539
+ - Theme installation now includes Typst files (e.g., `numpex.typ`)
540
+ - Typst configuration section in config files
541
+
542
+ ### v1.3.0
389
543
  - Add theme installation command (`install-theme`) for Beamer presentations
390
544
  - Built-in support for numpex theme with automatic download
391
545
  - Extended GitHub Actions workflow with XeLaTeX and multi-document support
546
+
547
+ ### v1.2.0
548
+ - Add font installation command (`install-fonts`) for XeLaTeX projects
549
+ - Support Marianne and Roboto Mono fonts by default
392
550
  - Add presentation project type with Beamer template support
393
551
  - Add `--engine` option for xelatex and lualatex compilation
394
552
  - Improved CI/CD with font installation steps
@@ -404,4 +562,4 @@ MIT License - see LICENSE file for details.
404
562
  - Git release management
405
563
  - Zotero bibliography synchronization
406
564
  - LaTeX build file cleanup
407
- - Configuration file support
565
+ - Configuration file support