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.
- {article_cli-1.3.2 → article_cli-2.0.0}/.gitignore +11 -1
- {article_cli-1.3.2 → article_cli-2.0.0}/PKG-INFO +194 -36
- {article_cli-1.3.2 → article_cli-2.0.0}/README.md +182 -29
- {article_cli-1.3.2 → article_cli-2.0.0}/pyproject.toml +27 -9
- {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/__init__.py +7 -4
- article_cli-2.0.0/src/article_cli/cli.py +190 -0
- article_cli-2.0.0/src/article_cli/command_runner.py +67 -0
- article_cli-2.0.0/src/article_cli/commands/__init__.py +31 -0
- article_cli-2.0.0/src/article_cli/commands/bibtex.py +108 -0
- article_cli-2.0.0/src/article_cli/commands/clean.py +28 -0
- article_cli-2.0.0/src/article_cli/commands/compile.py +89 -0
- article_cli-2.0.0/src/article_cli/commands/config.py +102 -0
- article_cli-2.0.0/src/article_cli/commands/doctor.py +67 -0
- article_cli-2.0.0/src/article_cli/commands/fonts.py +70 -0
- article_cli-2.0.0/src/article_cli/commands/init.py +156 -0
- article_cli-2.0.0/src/article_cli/commands/release.py +172 -0
- article_cli-2.0.0/src/article_cli/commands/setup.py +32 -0
- article_cli-2.0.0/src/article_cli/commands/themes.py +97 -0
- article_cli-2.0.0/src/article_cli/commands/version.py +83 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/config.py +125 -16
- article_cli-2.0.0/src/article_cli/doctor.py +968 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/fonts.py +1 -3
- article_cli-2.0.0/src/article_cli/git_hooks.py +413 -0
- article_cli-2.0.0/src/article_cli/git_manager.py +477 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/latex_compiler.py +167 -203
- article_cli-2.0.0/src/article_cli/project_context.py +225 -0
- article_cli-2.0.0/src/article_cli/reporting.py +39 -0
- article_cli-2.0.0/src/article_cli/repository_setup.py +1068 -0
- article_cli-2.0.0/src/article_cli/services/__init__.py +21 -0
- article_cli-2.0.0/src/article_cli/services/bibliography.py +109 -0
- article_cli-2.0.0/src/article_cli/services/compiler.py +130 -0
- article_cli-2.0.0/src/article_cli/services/git.py +29 -0
- article_cli-2.0.0/src/article_cli/services/gitinfo.py +125 -0
- article_cli-2.0.0/src/article_cli/services/release.py +564 -0
- article_cli-2.0.0/src/article_cli/services/workflow.py +68 -0
- article_cli-2.0.0/src/article_cli/template_renderer.py +70 -0
- article_cli-2.0.0/src/article_cli/templates/__init__.py +1 -0
- article_cli-2.0.0/src/article_cli/templates/article/ieee.tex.j2 +54 -0
- article_cli-2.0.0/src/article_cli/templates/article/lncs.tex.j2 +51 -0
- article_cli-2.0.0/src/article_cli/templates/article/lncs.typ.j2 +69 -0
- article_cli-2.0.0/src/article_cli/templates/article/main.tex.j2 +58 -0
- article_cli-2.0.0/src/article_cli/templates/article/main.typ.j2 +57 -0
- article_cli-2.0.0/src/article_cli/templates/github/latex.yml.j2 +407 -0
- article_cli-2.0.0/src/article_cli/templates/poster/poster.tex.j2 +55 -0
- article_cli-2.0.0/src/article_cli/templates/poster/poster.typ.j2 +97 -0
- article_cli-2.0.0/src/article_cli/templates/presentation/beamer.tex.j2 +68 -0
- article_cli-2.0.0/src/article_cli/templates/presentation/typst.typ.j2 +114 -0
- article_cli-2.0.0/src/article_cli/templates/project/README.md.j2 +164 -0
- article_cli-2.0.0/src/article_cli/templates/project/gitignore.j2 +42 -0
- article_cli-2.0.0/src/article_cli/templates/project/pyproject.toml.j2 +116 -0
- article_cli-2.0.0/src/article_cli/templates/project/vscode-settings.json.j2 +128 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/themes.py +18 -8
- article_cli-2.0.0/src/article_cli/typst_compiler.py +310 -0
- article_cli-2.0.0/src/article_cli/zotero.py +758 -0
- article_cli-2.0.0/tests/golden/__init__.py +1 -0
- article_cli-2.0.0/tests/golden/article_main.tex +58 -0
- article_cli-2.0.0/tests/test_cli.py +323 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_config.py +9 -0
- article_cli-2.0.0/tests/test_doctor.py +242 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_fonts.py +1 -5
- {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_latex_compiler.py +59 -5
- article_cli-2.0.0/tests/test_project_context.py +65 -0
- article_cli-2.0.0/tests/test_release_service.py +193 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_repository_setup.py +411 -3
- article_cli-2.0.0/tests/test_services.py +246 -0
- article_cli-2.0.0/tests/test_template_renderer.py +49 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/tests/test_themes.py +66 -1
- article_cli-2.0.0/tests/test_typst_compiler.py +315 -0
- article_cli-2.0.0/tests/test_workflow_ci.py +107 -0
- article_cli-2.0.0/tests/test_zotero_bibliography.py +166 -0
- article_cli-1.3.2/src/article_cli/cli.py +0 -665
- article_cli-1.3.2/src/article_cli/git_manager.py +0 -356
- article_cli-1.3.2/src/article_cli/repository_setup.py +0 -1769
- article_cli-1.3.2/src/article_cli/zotero.py +0 -369
- {article_cli-1.3.2 → article_cli-2.0.0}/LICENSE +0 -0
- {article_cli-1.3.2 → article_cli-2.0.0}/src/article_cli/__main__.py +0 -0
- {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:
|
|
4
|
-
Summary: CLI tool for managing LaTeX
|
|
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.
|
|
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
|
|
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
|
|
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
|
[](https://badge.fury.io/py/article-cli)
|
|
60
65
|
[](https://pypi.org/project/article-cli/)
|
|
61
66
|
|
|
62
|
-
A command-line tool for managing LaTeX
|
|
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
|
|
67
|
-
- **Project Types**: Support for articles, Beamer presentations, and
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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
|
|
177
|
+
article-cli bib update
|
|
141
178
|
```
|
|
142
179
|
|
|
143
|
-
4. **
|
|
180
|
+
4. **Compile, refresh version metadata, and create a release**:
|
|
144
181
|
```bash
|
|
145
|
-
article-cli
|
|
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 =
|
|
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
|
-
#
|
|
229
|
-
article-cli
|
|
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
|
|
327
|
+
article-cli bib update
|
|
243
328
|
|
|
244
329
|
# Specify custom output file
|
|
245
|
-
article-cli update
|
|
330
|
+
article-cli bib update --output my-refs.bib
|
|
246
331
|
|
|
247
332
|
# Skip backup creation
|
|
248
|
-
article-cli update
|
|
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
|
|
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
|
|
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
|
|
491
|
+
article-cli --config custom-config.toml bib update
|
|
358
492
|
```
|
|
359
493
|
|
|
360
|
-
##
|
|
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
|
-
|
|
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.
|
|
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.
|
|
387
|
-
- Add
|
|
388
|
-
-
|
|
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
|