rxiv-maker 1.16.3__py3-none-any.whl → 1.16.5__py3-none-any.whl

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.
rxiv_maker/__version__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Version information."""
2
2
 
3
- __version__ = "1.16.3"
3
+ __version__ = "1.16.5"
@@ -1,7 +1,6 @@
1
1
  """Upgrade command for rxiv-maker CLI."""
2
2
 
3
- import shlex
4
- import subprocess
3
+ import subprocess # nosec B404 - needed for executing upgrade commands
5
4
  import sys
6
5
 
7
6
  import click
@@ -121,44 +120,34 @@ def upgrade(ctx: click.Context, yes: bool, check_only: bool) -> None:
121
120
  console.print("❌ Upgrade cancelled", style="yellow")
122
121
  sys.exit(0)
123
122
 
124
- # Execute upgrade command
123
+ # Execute upgrade command directly
125
124
  console.print("\n🚀 Upgrading rxiv-maker...", style="blue")
126
125
  console.print(f" Running: {upgrade_cmd}", style="dim")
127
126
 
128
127
  try:
129
- # Split compound commands (with &&) and run sequentially
130
- if " && " in upgrade_cmd:
131
- commands = upgrade_cmd.split(" && ")
132
- for cmd in commands:
133
- result = subprocess.run(
134
- shlex.split(cmd),
135
- check=False,
136
- capture_output=False, # Show output to user
137
- )
138
- if result.returncode != 0:
139
- console.print(
140
- f"\n⚠️ Command '{cmd}' exited with code {result.returncode}",
141
- style="yellow",
142
- )
143
- console.print(" You may need to run the command manually:", style="yellow")
144
- console.print(f" {upgrade_cmd}", style="yellow")
145
- sys.exit(result.returncode)
146
- else:
147
- # Single command - use shlex.split to avoid shell injection
148
- result = subprocess.run(
149
- shlex.split(upgrade_cmd),
150
- check=False,
151
- capture_output=False, # Show output to user
152
- )
153
- if result.returncode != 0:
154
- console.print(
155
- f"\n⚠️ Upgrade command exited with code {result.returncode}",
156
- style="yellow",
157
- )
158
- console.print(" You may need to run the command manually:", style="yellow")
159
- console.print(f" {upgrade_cmd}", style="yellow")
160
- sys.exit(result.returncode)
128
+ # Split command for safer execution without shell=True
129
+ import shlex
130
+
131
+ cmd_parts = shlex.split(upgrade_cmd)
132
+ result = subprocess.run(
133
+ cmd_parts,
134
+ check=True,
135
+ capture_output=False,
136
+ timeout=300,
137
+ ) # nosec B603 - upgrade_cmd comes from trusted install_detector module
138
+ success = result.returncode == 0
139
+ error = None
140
+ except subprocess.CalledProcessError as e:
141
+ success = False
142
+ error = f"Command failed with exit code {e.returncode}"
143
+ except subprocess.TimeoutExpired:
144
+ success = False
145
+ error = "Upgrade timed out after 5 minutes"
146
+ except Exception as e:
147
+ success = False
148
+ error = str(e)
161
149
 
150
+ if success:
162
151
  console.print("\n✅ Upgrade completed successfully!", style="green")
163
152
  console.print(" Run 'rxiv --version' to verify the installation", style="blue")
164
153
 
@@ -169,12 +158,7 @@ def upgrade(ctx: click.Context, yes: bool, check_only: bool) -> None:
169
158
  f" View full changelog: https://github.com/henriqueslab/rxiv-maker/releases/tag/v{latest_version}",
170
159
  style="blue",
171
160
  )
172
-
173
- except subprocess.CalledProcessError as e:
174
- console.print(f"\n❌ Upgrade failed: {e}", style="red")
175
- console.print(f" Try running manually: {upgrade_cmd}", style="yellow")
176
- sys.exit(1)
177
- except Exception as e:
178
- console.print(f"\n❌ Unexpected error during upgrade: {e}", style="red")
161
+ else:
162
+ console.print(f"\n❌ Upgrade failed: {error}", style="red")
179
163
  console.print(f" Try running manually: {upgrade_cmd}", style="yellow")
180
164
  sys.exit(1)
@@ -8,7 +8,7 @@ signatures.
8
8
 
9
9
  import os
10
10
  import shutil
11
- import subprocess
11
+ import subprocess # nosec B404
12
12
  from pathlib import Path
13
13
 
14
14
 
@@ -103,7 +103,10 @@ def generate_enhanced_index(docs_dir, successful_modules):
103
103
  f.write(f"## {category.capitalize()} Modules\n\n")
104
104
  for module in sorted(modules):
105
105
  module_name = str(module).replace("/", ".")
106
- file_name = str(module).replace("/", "_") + ".md"
106
+ # lazydocs generates files with just the basename + .md
107
+ from pathlib import Path as ModPath
108
+
109
+ file_name = ModPath(str(module)).name + ".md"
107
110
  f.write(f"- [{module_name}]({file_name})\n")
108
111
  f.write("\n")
109
112
 
@@ -216,7 +219,7 @@ def generate_api_docs(project_root: Path | None = None) -> bool:
216
219
  "--no-watermark",
217
220
  "--remove-package-prefix",
218
221
  "--src-base-url",
219
- "https://github.com/henriqueslab/rxiv-maker/blob/main/src",
222
+ "https://github.com/henriqueslab/rxiv-maker/blob/main",
220
223
  ]
221
224
 
222
225
  subprocess.run(
@@ -163,38 +163,36 @@ citation_style: "numbered"
163
163
  """Get default main manuscript template."""
164
164
  return """## Abstract
165
165
 
166
- Your manuscript abstract goes here. Provide a comprehensive summary of your work,
167
- key findings, and significance to the field.
166
+ Your manuscript abstract goes here. Provide a comprehensive summary of your work, including the main problem you are addressing, your approach, key findings, and the significance of your results to the field. The abstract should be self-contained and provide readers with a clear understanding of your contribution. Aim for 150-300 words that capture the essence of your research.
168
167
 
169
168
  ## Introduction
170
169
 
171
- Introduce your topic, provide background, and state your objectives.
170
+ Introduce your research topic by providing essential background context and motivation. Start with the broader significance of your field, then narrow down to the specific problem your work addresses. Clearly state your research objectives and how your approach differs from or builds upon existing work in the literature [@smith2023]. Explain why this research is important and what gap in knowledge it fills.
172
171
 
173
172
  ## Methods
174
173
 
175
- Describe your methods, approaches, and techniques.
176
- (For reviews, you can remove this section or describe your literature search strategy)
174
+ Describe your experimental design, data collection procedures, and analytical techniques in sufficient detail to allow replication of your work. For computational studies, specify software versions, parameters, and algorithms used. For experimental work, detail protocols, sample preparation, and measurement procedures [@johnson2022]. Include information about statistical methods and data validation approaches. If you are writing a review article, you may remove this section or describe your literature search and selection strategy.
177
175
 
178
176
  ## Results
179
177
 
180
- Present your findings with supporting figures and tables.
181
- (For reviews, you can remove this section or rename it to organize your discussion)
178
+ Present your findings in a logical sequence, using figures and tables to support your narrative. Start with an overview of the key results, then provide detailed analyses.
182
179
 
183
- ![](FIGURES/Figure__example.mmd)
184
- {{#fig:example}} **Example Figure.** This is an example Mermaid diagram that will be automatically converted to PDF during build.
180
+ ![A flowchart showing the progression from data input through processing to results output](FIGURES/Figure__example.mmd)
181
+ {{#fig:example}} **Example workflow diagram.** This Mermaid diagram illustrates a typical data processing pipeline, automatically converted to PDF during manuscript compilation. The diagram shows three stages: data input (gray), processing and analysis (red), and results output (green).
182
+
183
+ Our analysis demonstrates that the methodology produces consistent results across different datasets. The workflow presented in @fig:example provides a schematic overview of the processing pipeline. These findings build upon previous work [@smith2023; @johnson2022] while introducing novel approaches to data analysis.
185
184
 
186
185
  ## Discussion
187
186
 
188
- Interpret your findings, discuss implications, and acknowledge limitations.
187
+ Interpret your results in the context of existing literature and theory. Discuss how your findings support or challenge current understanding in the field. Address the implications of your work for theory, practice, or policy. Acknowledge limitations of your study, such as sample size constraints, methodological limitations, or scope boundaries. Suggest directions for future research that build upon your findings.
189
188
 
190
189
  ## Conclusions
191
190
 
192
- Summarize your key conclusions and broader impact.
191
+ Summarize your key findings and their significance. Reinforce the main contributions of your work and their broader impact on the field. Keep this section concise but impactful, leaving readers with a clear understanding of what your research has accomplished and why it matters.
193
192
 
194
193
  ## References
195
194
 
196
- Citations will be automatically formatted. Add entries to 03_REFERENCES.bib and
197
- reference them in your text: [@smith2023; @johnson2022]
195
+ Citations are automatically formatted from 03_REFERENCES.bib. Reference works using citation keys like [@smith2023] for single citations or [@smith2023; @johnson2022] for multiple citations.
198
196
  """
199
197
 
200
198
  def _get_default_supplementary_template(self) -> str:
@@ -225,34 +223,60 @@ Information about code repositories, data availability, and reproducibility reso
225
223
  def _get_default_bibliography_template(self) -> str:
226
224
  """Get default bibliography template."""
227
225
  return """@article{{smith2023,
228
- title = {{Example Research Article}},
229
- author = {{Smith, John and Doe, Jane}},
230
- journal = {{Nature}},
231
- volume = {{123}},
232
- pages = {{456-789}},
226
+ title = {{Advances in computational biology: methods and applications}},
227
+ author = {{Smith, John A. and Doe, Jane M. and Williams, Robert L.}},
228
+ journal = {{Nature Methods}},
229
+ volume = {{20}},
230
+ number = {{8}},
231
+ pages = {{1234--1245}},
233
232
  year = {{2023}},
234
- doi = {{10.1038/nature12345}}
233
+ publisher = {{Springer Nature}},
234
+ doi = {{10.1038/s41592-023-01234-5}}
235
235
  }}
236
236
 
237
237
  @article{{johnson2022,
238
- title = {{Another Important Study}},
239
- author = {{Johnson, Alice and Brown, Bob}},
238
+ title = {{Machine learning approaches for biological data analysis}},
239
+ author = {{Johnson, Alice B. and Brown, Robert C. and Davis, Sarah K.}},
240
240
  journal = {{Cell}},
241
241
  volume = {{185}},
242
- pages = {{1234-1245}},
242
+ number = {{12}},
243
+ pages = {{2156--2170}},
243
244
  year = {{2022}},
244
- doi = {{10.1016/j.cell.2022.01.001}}
245
+ publisher = {{Elsevier}},
246
+ doi = {{10.1016/j.cell.2022.05.015}}
247
+ }}
248
+
249
+ @article{{wilson2024,
250
+ title = {{Reproducible research practices in modern science}},
251
+ author = {{Wilson, Greg and Jones, Emily R.}},
252
+ journal = {{PLOS Computational Biology}},
253
+ volume = {{20}},
254
+ number = {{3}},
255
+ pages = {{e1011234}},
256
+ year = {{2024}},
257
+ publisher = {{Public Library of Science}},
258
+ doi = {{10.1371/journal.pcbi.1011234}}
245
259
  }}
246
260
  """
247
261
 
248
262
  def _get_default_figure_template(self) -> str:
249
263
  """Get default figure template (Mermaid diagram)."""
250
- return """graph TD
251
- A[Start] --> B{{Decision}}
252
- B -->|Yes| C[Process 1]
253
- B -->|No| D[Process 2]
254
- C --> E[End]
255
- D --> E
264
+ return """---
265
+ config:
266
+ look: neo
267
+ theme: neo
268
+ ---
269
+ flowchart LR
270
+ A["<b>DATA</b><br/>Input"] --> B["<b>PROCESSING</b><br/>Analysis"]
271
+ B --> C["<b>RESULTS</b><br/>Output"]
272
+
273
+ classDef inputStyle fill:#1f2937,stroke:#374151,stroke-width:3px,color:#ffffff
274
+ classDef processStyle fill:#dc2626,stroke:#991b1b,stroke-width:3px,color:#ffffff
275
+ classDef outputStyle fill:#059669,stroke:#047857,stroke-width:3px,color:#ffffff
276
+
277
+ class A inputStyle
278
+ class B processStyle
279
+ class C outputStyle
256
280
  """
257
281
 
258
282
  def _get_default_gitignore_template(self) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rxiv-maker
3
- Version: 1.16.3
3
+ Version: 1.16.5
4
4
  Summary: Write scientific preprints in Markdown. Generate publication-ready PDFs efficiently.
5
5
  Project-URL: Homepage, https://github.com/HenriquesLab/rxiv-maker
6
6
  Project-URL: Documentation, https://github.com/HenriquesLab/rxiv-maker#readme
@@ -27,7 +27,7 @@ Requires-Python: >=3.10
27
27
  Requires-Dist: click>=8.0.0
28
28
  Requires-Dist: crossref-commons>=0.0.7
29
29
  Requires-Dist: gitpython>=3.1.0
30
- Requires-Dist: henriqueslab-updater>=1.0.0
30
+ Requires-Dist: henriqueslab-updater>=1.1.3
31
31
  Requires-Dist: latex2mathml>=3.78.0
32
32
  Requires-Dist: matplotlib>=3.7.0
33
33
  Requires-Dist: numpy>=1.24.0
@@ -85,76 +85,70 @@ Description-Content-Type: text/markdown
85
85
 
86
86
  **Write scientific preprints in Markdown. Generate publication-ready PDFs efficiently.**
87
87
 
88
+ > **💡 Best Experience:** Use the [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=HenriquesLab.rxiv-maker) for syntax highlighting and citations.
89
+
88
90
  Rxiv-Maker converts enhanced Markdown into professional PDFs with automated figure generation, citation management, and LaTeX typesetting. While LaTeX installation is required, users don't need to write LaTeX code directly.
89
91
 
90
92
  ## ✨ Why Rxiv-Maker?
91
93
 
92
- ### 🎯 **For Researchers**
93
- - **Write in Markdown**: Focus on content, not formatting
94
- - **Automated Figures**: Python/R scripts become publication figures
95
- - **Smart Citations**: BibTeX integration with cross-references
96
- - **Instant PDFs**: From Markdown to professional academic PDF
97
-
98
- ### 🚀 **For Teams**
94
+ - **Write in Markdown**: Focus on content, not LaTeX formatting
95
+ - **Automated Figures**: Python/R scripts become publication figures
96
+ - **Smart Citations**: BibTeX integration with cross-references and DOI resolution
97
+ - **Dual Output**: Generate both PDF and DOCX from the same source
99
98
  - **Git-Friendly**: Version control for manuscripts and figures
100
99
  - **Reproducible**: All figures generated from code
101
- - **Collaborative**: Standard tools, no vendor lock-in
102
- - **Multi-Platform**: Works everywhere with local installation
103
-
104
- ### 📈 **For Publishing**
105
100
  - **arXiv Ready**: Generate submission packages automatically
106
101
  - **Track Changes**: Visual diff between manuscript versions
107
- - **Quality Assurance**: Built-in validation and error checking
108
102
 
109
103
  ## 🚀 Installation
110
104
 
111
- **⚠️ Choose ONE installation method below** (don't run all of them):
105
+ <details>
106
+ <summary>🍎 <strong>macOS</strong> (Recommended - includes LaTeX automatically)</summary>
112
107
 
113
- **🍎 macOS (Recommended):**
114
108
  ```bash
115
109
  brew tap henriqueslab/formulas
116
110
  brew install rxiv-maker
117
111
  rxiv check-installation
118
112
  ```
119
113
 
120
- **🐧 Linux / 🪟 Windows WSL (Recommended):**
114
+ **Upgrade:**
115
+ ```bash
116
+ brew upgrade rxiv-maker
117
+ ```
118
+
119
+ > **📖 [Homebrew Formula](https://github.com/HenriquesLab/homebrew-formulas)** - Includes Python, LaTeX (MacTeX), and all dependencies
120
+
121
+ </details>
122
+
123
+ <details>
124
+ <summary>🐧 <strong>Linux / Windows (WSL)</strong></summary>
125
+
126
+ **Using pipx (recommended):**
121
127
  ```bash
122
128
  pipx install rxiv-maker
123
129
  rxiv check-installation
124
130
  ```
125
131
 
126
- **🔧 Alternative Methods:**
132
+ **Using uv (faster alternative):**
127
133
  ```bash
128
- # Using pip (simpler, but may conflict with system packages)
129
- pip install rxiv-maker
130
-
131
- # Using uv (modern, fast package manager)
132
134
  uv tool install rxiv-maker
133
-
134
- # Verify any installation
135
135
  rxiv check-installation
136
136
  ```
137
137
 
138
- **📋 Requirements:**
139
- - **LaTeX Distribution**: Required for PDF generation
140
- - **macOS**: MacTeX (recommended) or BasicTeX
141
- - **Windows**: MiKTeX or TeX Live
142
- - **Linux**: TeX Live (install via system package manager)
138
+ **Requirements:**
143
139
  - **Python 3.11+**: For rxiv-maker CLI and figure generation
140
+ - **LaTeX Distribution**: Install via system package manager
141
+ - **Ubuntu/Debian**: `sudo apt install texlive-latex-recommended`
142
+ - **Fedora/RHEL**: `sudo dnf install texlive-latex`
144
143
 
145
- **Upgrading:**
144
+ **Upgrade:**
146
145
  ```bash
147
- # Automatic upgrade (detects your installation method)
148
- rxiv upgrade
149
-
150
- # Or use the same method you used to install:
151
- brew upgrade rxiv-maker # If you installed with Homebrew
152
- pipx upgrade rxiv-maker # If you installed with pipx
153
- pip install --upgrade rxiv-maker # If you installed with pip
154
- uv tool upgrade rxiv-maker # If you installed with uv
146
+ pipx upgrade rxiv-maker # or: uv tool upgrade rxiv-maker
155
147
  ```
156
148
 
157
- **Need help?** 📖 **[Installation Guide](docs/installation.md)**
149
+ </details>
150
+
151
+ > **📖 Need help?** See the [complete installation guide](https://rxiv-maker.henriqueslab.org/getting-started/installation/) for detailed platform-specific instructions.
158
152
 
159
153
  ## 🔥 Quick Start
160
154
 
@@ -180,7 +174,7 @@ cd manuscript-rxiv-maker/MANUSCRIPT
180
174
  rxiv pdf
181
175
  ```
182
176
 
183
- **🎯 [Getting Started Guide](docs/first-manuscript.md)**
177
+ **🎯 [Getting Started Guide](https://rxiv-maker.henriqueslab.org/getting-started/first-manuscript/)**
184
178
 
185
179
  ## 🏆 Key Features
186
180
 
@@ -206,8 +200,7 @@ rxiv pdf
206
200
  - **Inline DOI resolution**: Paste DOIs directly in text `10.1038/...` and auto-convert to citations
207
201
  - CrossRef/DataCite DOI validation and metadata fetching
208
202
 
209
-
210
- > 📖 **Learn more**: [10-Minute Tutorial](https://rxiv-maker.henriqueslab.org/getting-started/citations-tutorial/) | [Complete Guide](https://rxiv-maker.henriqueslab.org/guides/citations-and-references/)
203
+ > 📖 **Learn more**: [Quick Reference Cheat-Sheet](https://rxiv-maker.henriqueslab.org/getting-started/quick-reference/)
211
204
 
212
205
  ### 🔧 **Developer Experience**
213
206
  - Modern CLI with rich output and progress bars
@@ -225,32 +218,22 @@ rxiv pdf
225
218
 
226
219
  **Input Markdown:**
227
220
  ```markdown
228
- # Introduction
229
-
230
- {{py:exec
231
- import pandas as pd
232
- import numpy as np
233
-
234
- df = pd.read_csv("FIGURES/DATA/experimental_results.csv")
235
-
236
- # Calculate correlation between specific columns (safer than iloc)
237
- # Assuming the CSV has columns like 'treatment_effect' and 'baseline_score'
238
- correlation = df['treatment_effect'].corr(df['baseline_score'])
239
- sample_size = len(df)
240
- }}
221
+ ## Introduction
241
222
 
242
- Our analysis of {{py:get sample_size}} samples in Figure @fig:results shows
243
- significant improvement over previous methods [@smith2023; @jones2024].
223
+ Recent advances in microscopy have enabled new insights into
224
+ cellular dynamics [@smith2023; @jones2024].
244
225
 
245
- ![Research Results](https://github.com/HenriquesLab/manuscript-rxiv-maker/blob/main/MANUSCRIPT/FIGURES/SFigure__arxiv_growth.py)
226
+ ![Experimental Results](FIGURES/results_plot.py)
246
227
  {#fig:results}
247
228
 
248
- The correlation coefficient was r = {{py:get correlation:.2f}} (p < 0.001).
249
-
250
- ## References
229
+ Our analysis (Figure @fig:results) shows significant improvement
230
+ over previous methods. Statistical analysis revealed p < 0.001.
251
231
  ```
252
232
 
253
- **Output:** Professional PDF with numbered figures, live data integration, citations, and LaTeX-quality typesetting.
233
+ **Output:** Professional PDF with auto-numbered figures, formatted citations, and LaTeX typesetting.
234
+
235
+ > **💡 See the complete working example:**
236
+ > `rxiv get-rxiv-preprint` - clones [manuscript-rxiv-maker](https://github.com/HenriquesLab/manuscript-rxiv-maker) with advanced features including Python execution, DOI auto-resolution, and dynamic data integration.
254
237
 
255
238
  ## 📖 Documentation
256
239
 
@@ -264,12 +247,14 @@ Visit our **[official documentation website](https://rxiv-maker.henriqueslab.org
264
247
 
265
248
  ### For Developers
266
249
  - **[CONTRIBUTING.md](CONTRIBUTING.md)** - Contribution guidelines
267
- - **[CLAUDE.md](CLAUDE.md)** - AI assistant instructions & testing commands
268
250
  - **[CI-LOCAL-TESTING.md](CI-LOCAL-TESTING.md)** - Local CI workflow testing
269
251
  - **[Developer Docs](docs/)** - Technical documentation and API details
270
252
 
271
253
  ## 🎯 Use Cases
272
254
 
255
+ <details>
256
+ <summary>📄 <strong>Research Preprints, Reproducible Figures, and Collaborative Workflows</strong></summary>
257
+
273
258
  ### 📄 **Research Preprints**
274
259
  - arXiv preprints with automated submission packages
275
260
  - bioRxiv and other preprint servers with professional formatting
@@ -285,86 +270,66 @@ Visit our **[official documentation website](https://rxiv-maker.henriqueslab.org
285
270
  - **Collaborative preprint writing** with version control
286
271
  - **Supplementary materials** with automated generation
287
272
 
288
- ## 🏃‍♀️ Ecosystem & Workflows
289
-
290
- **The rxiv-maker ecosystem consists of interconnected repositories:**
291
-
292
- ### 📦 **Core Repositories**
293
-
294
- 1. **[rxiv-maker](https://github.com/HenriquesLab/rxiv-maker)** (this repository)
295
- - Main Python package and CLI tool
296
- - Core processing engine
297
- - Development and contribution hub
298
-
299
- 2. **[website-rxiv-maker](https://github.com/HenriquesLab/website-rxiv-maker)**
300
- - Official documentation website
301
- - User guides and tutorials
302
- - API reference and examples
303
- - Visit: [rxiv-maker.henriqueslab.org](https://rxiv-maker.henriqueslab.org)
273
+ </details>
304
274
 
305
- 3. **[manuscript-rxiv-maker](https://github.com/HenriquesLab/manuscript-rxiv-maker)**
306
- - Official example manuscript (published as arXiv:2508.00836)
307
- - Complete working example with all features
308
- - Clone with: `rxiv get-rxiv-preprint`
309
-
310
- ### 🔧 **Development Tools**
311
-
312
- - **📝 [VS Code Extension](https://github.com/HenriquesLab/vscode-rxiv-maker)**
313
- - Syntax highlighting and autocompletion
314
- - Integrated build commands
315
- - Real-time validation
316
-
317
- - **🐳 [Docker Support](https://github.com/HenriquesLab/docker-rxiv-maker)**
318
- - Containerized execution environment with pre-installed rxiv-maker
319
- - Pre-configured LaTeX, Python, R, and all dependencies
320
- - Perfect for CI/CD and users without local LaTeX installation
321
- - Separate repository for easier maintenance and faster image updates
275
+ ## 🏃‍♀️ Ecosystem & Workflows
322
276
 
323
- ### 🚀 **Deployment Options**
277
+ **Three ways to use rxiv-maker:**
278
+ - 🖥️ **Local Installation**: Install directly on your system (recommended)
279
+ - 🐳 **Docker**: Pre-configured container with all dependencies
280
+ - ☁️ **Cloud**: GitHub Actions or Google Colab for browser-based editing
324
281
 
325
- - **⚡ Local Installation**: Native system setup (recommended for development)
326
- - **☁️ GitHub Actions**: Automated cloud builds and CI/CD
327
- - **🌐 Google Colab**: Browser-based editing without local installation
328
- - **🐳 Containers**: Docker for reproducible environments
282
+ <details>
283
+ <summary>🔗 <strong>Ecosystem</strong> - Related repositories and tools</summary>
329
284
 
330
- ### 📦 **Simplified Architecture**
285
+ ### Ecosystem Overview
331
286
 
332
287
  ```mermaid
333
288
  graph LR
334
- A[rxiv-maker<br/>Core Tool] --> B[PyPI]
289
+ A[rxiv-maker<br/>Core CLI] --> B[PyPI]
335
290
  A --> C[Homebrew]
336
291
  D[docker-rxiv-maker<br/>Container] --> E[Docker Hub]
337
- D -.installs.-> A
338
- F[vscode-rxiv-maker<br/>Extension] -.extends.-> A
339
- G[website-rxiv-maker<br/>Docs] -.documents.-> A
340
- H[manuscript-rxiv-maker<br/>Example] -.demonstrates.-> A
341
-
342
- style A fill:#e1f5ff
343
- style D fill:#fff4e6
344
- style F fill:#fff4e6
345
- style G fill:#e8f5e9
346
- style H fill:#e8f5e9
292
+ D -.includes.-> A
293
+ F[vscode-rxiv-maker<br/>VS Code] -.enhances.-> A
294
+ G[manuscript-rxiv-maker<br/>Example] -.demonstrates.-> A
295
+
296
+ style A fill:#2563eb,stroke:#1e40af,stroke-width:3px,color:#fff
297
+ style D fill:#ea580c,stroke:#c2410c,stroke-width:2px,color:#fff
298
+ style F fill:#7c3aed,stroke:#6d28d9,stroke-width:2px,color:#fff
299
+ style G fill:#059669,stroke:#047857,stroke-width:2px,color:#fff
300
+ style B fill:#64748b,stroke:#475569,color:#fff
301
+ style C fill:#64748b,stroke:#475569,color:#fff
302
+ style E fill:#64748b,stroke:#475569,color:#fff
347
303
  ```
348
304
 
349
- > **Note**: As of v1.8.4, we've streamlined the ecosystem while maintaining multiple installation options (Homebrew, pip, pipx, uv) with optional Docker support for containerized workflows.
350
- >
351
- > **📋 [Ecosystem Guide](docs/ECOSYSTEM.md)** - Complete architecture and integration patterns
352
- > **📋 [Migration Guide](docs/migration-v1.7.9.md)** - For users upgrading from previous versions
305
+ ### Related Repositories
306
+
307
+ | Repository | Purpose | Access |
308
+ |------------|---------|--------|
309
+ | **[rxiv-maker](https://github.com/HenriquesLab/rxiv-maker)** | Main CLI tool and Python package | `brew install rxiv-maker` |
310
+ | **[docker-rxiv-maker](https://github.com/HenriquesLab/docker-rxiv-maker)** | Pre-configured container with LaTeX + dependencies | `docker pull henriqueslab/rxiv-maker-base` |
311
+ | **[manuscript-rxiv-maker](https://github.com/HenriquesLab/manuscript-rxiv-maker)** | Complete example (published as arXiv:2508.00836) | `rxiv get-rxiv-preprint` |
312
+ | **[vscode-rxiv-maker](https://github.com/HenriquesLab/vscode-rxiv-maker)** | VS Code extension with syntax highlighting | VS Code Marketplace |
313
+ | **[Documentation](https://rxiv-maker.henriqueslab.org)** | User guides, API reference, tutorials | Visit website |
314
+
315
+ </details>
316
+
317
+ ## 🚀 Quick Commands
353
318
 
354
- ### 🔗 **Repository Cross-Reference**
319
+ **Essential commands to get started:**
355
320
 
356
- | Repository | Purpose | Install/Access | Dependencies |
357
- |------------|---------|----------------|--------------|
358
- | **rxiv-maker** (this repo) | Main CLI tool & Python package | `brew install` / `pipx install` | LaTeX |
359
- | **[docker-rxiv-maker](https://github.com/HenriquesLab/docker-rxiv-maker)** | Pre-built container with all deps | `docker pull henriqueslab/rxiv-maker-base` | Docker |
360
- | **[manuscript-rxiv-maker](https://github.com/HenriquesLab/manuscript-rxiv-maker)** | Official example (arXiv:2508.00836) | `rxiv get-rxiv-preprint` | rxiv-maker |
361
- | **[vscode-rxiv-maker](https://github.com/HenriquesLab/vscode-rxiv-maker)** | VS Code extension | VS Code Marketplace | rxiv-maker |
362
- | **[website-rxiv-maker](https://github.com/HenriquesLab/website-rxiv-maker)** | Documentation website | [rxiv-maker.henriqueslab.org](https://rxiv-maker.henriqueslab.org) | - |
321
+ ```bash
322
+ rxiv init my-paper # Create new manuscript
323
+ rxiv pdf # Generate PDF
324
+ rxiv validate # Check manuscript quality
325
+ rxiv upgrade # Upgrade to latest version
326
+ ```
363
327
 
364
- ## 🚀 Essential Commands
328
+ <details>
329
+ <summary>📋 <strong>Complete Command Reference</strong> - Repository management, export options, and advanced workflows</summary>
365
330
 
331
+ ### Core Commands
366
332
  ```bash
367
- # Core Commands
368
333
  rxiv init my-paper # Create new manuscript
369
334
  rxiv get-rxiv-preprint # Clone complete example manuscript
370
335
  rxiv pdf # Generate PDF
@@ -372,89 +337,55 @@ rxiv docx # Export to DOCX for collaborative review
372
337
  rxiv validate # Check manuscript quality
373
338
  rxiv arxiv # Prepare arXiv submission
374
339
  rxiv track-changes v1 v2 # Visual version comparison
375
-
376
- # Repository Management
377
- rxiv create-repo # Create new manuscript repository (with GitHub integration)
378
- rxiv repos # List all manuscript repositories
379
- rxiv repos-search # Search and clone from GitHub
380
- rxiv config # Interactive configuration menu
381
-
382
- # Maintenance
383
- rxiv upgrade # Upgrade to latest version
384
- rxiv changelog # View changelog and release notes
385
- rxiv changelog --recent 5 # View last 5 versions
386
340
  ```
387
341
 
388
- ### 📂 Repository Management
389
-
390
- Manage multiple manuscript repositories with GitHub integration:
391
-
342
+ ### Repository Management
392
343
  ```bash
393
- # Initial setup (interactive)
394
- rxiv repo-init
344
+ # Initial setup
345
+ rxiv repo-init # Interactive setup
346
+ rxiv config # Interactive configuration menu
347
+
348
+ # Create and manage repositories
349
+ rxiv create-repo my-paper # Create new manuscript repository (with GitHub integration)
350
+ rxiv repos # List all manuscript repositories
351
+ rxiv repos-search # Search and clone from GitHub
395
352
 
396
- # Or configure manually
353
+ # Configuration
397
354
  rxiv config set-repo-parent-dir ~/manuscripts
398
355
  rxiv config set-repo-org YourGitHubOrg
399
-
400
- # Create new repository (manuscript-{name})
401
- rxiv create-repo my-paper
402
-
403
- # List all repositories with git status
404
- rxiv repos
405
-
406
- # Search and clone from GitHub
407
- rxiv repos-search my-paper
408
-
409
- # Interactive configuration
410
- rxiv config # Interactive menu
411
356
  rxiv config --non-interactive # Show current settings
412
357
  ```
413
358
 
414
- > **💡 CI/Automation Note:** All interactive commands support non-interactive mode or configuration files for use in CI/CD pipelines and automated workflows. Use `--non-interactive` flag or configure via `~/.rxiv-maker/config` for non-TTY environments.
415
-
416
- ### 📄 DOCX Export for Collaborative Review
417
-
418
- Share your manuscript with non-LaTeX collaborators by exporting to Microsoft Word format. The easiest way is to add the `--docx` flag when building your PDF:
419
-
359
+ ### Maintenance
420
360
  ```bash
421
- # Build PDF and also export to DOCX
422
- rxiv pdf --docx
361
+ rxiv upgrade # Upgrade to latest version
362
+ rxiv changelog # View changelog and release notes
363
+ rxiv changelog --recent 5 # View last 5 versions
364
+ ```
423
365
 
424
- # With DOI resolution for missing entries
425
- rxiv pdf --docx --resolve-dois
366
+ > **💡 CI/Automation Note:** All interactive commands support non-interactive mode or configuration files for use in CI/CD pipelines and automated workflows. Use `--non-interactive` flag or configure via `~/.rxiv-maker/config` for non-TTY environments.
426
367
 
427
- # Or use the standalone command
428
- rxiv docx # Just DOCX (without rebuilding PDF)
429
- rxiv docx --resolve-dois # With DOI resolution
430
- rxiv docx --no-footnotes # Without DOI footnotes
431
- ```
368
+ **📖 [Complete CLI Reference](https://rxiv-maker.henriqueslab.org/getting-started/quick-reference/)** - Full command documentation with examples and options.
369
+
370
+ </details>
432
371
 
433
- **Output Location:**
434
- - Automatically saved to `MANUSCRIPT/YEAR__lastname_et_al__rxiv.docx`
435
- - Uses the same naming pattern as the PDF for easy identification
436
- - Saved directly in the manuscript directory
372
+ ## 📚 Publications Using Rxiv-Maker
437
373
 
438
- **Features:**
439
- - ✅ **Numbered Citations**: Converts `@cite` to superscript [1], [2], etc.
440
- - **References Section**: Complete bibliography with clickable DOI links
441
- - **Embedded Figures**: Automatically converts PDF figures to PNG and embeds them
442
- - **Figure Captions**: Properly formatted with labels
443
- - **Formatting Preserved**: Maintains bold, italic, and inline code
444
- - ✅ **Supplementary Info**: Automatically includes 02_SUPPLEMENTARY_INFO.md
445
- - ✅ **Missing DOI Resolution**: Attempts to fetch DOIs from CrossRef/DataCite
374
+ | Publication | Authors | Venue | DOI |
375
+ |-------------|---------|-------|-----|
376
+ | Rxiv-Maker: an automated template engine for streamlined scientific publications | BM Saraiva et al. | arXiv (2025) | [10.48550/arXiv.2508.00836](https://doi.org/10.48550/arXiv.2508.00836) |
377
+ | Customizable FDM-based zebrafish embryo mold for live imaging | MX Rivera Pineda et al. | bioRxiv (2025) | [10.1101/2025.11.24.689779](https://doi.org/10.1101/2025.11.24.689779) |
378
+ | mAIcrobe: an open-source framework for high-throughput bacterial image analysis | AD Brito et al. | bioRxiv (2025) | [10.1101/2025.10.21.683709](https://doi.org/10.1101/2025.10.21.683709) |
379
+ | Filopodome proteomics identifies CCT8 as a MYO10 interactor critical for filopodia functions | A Popović et al. | bioRxiv (2025) | [10.64898/2025.12.03.691809](https://doi.org/10.64898/2025.12.03.691809) |
446
380
 
447
- **Content Scope:**
448
- - Includes: Main manuscript (01_MAIN.md), supplementary information (02_SUPPLEMENTARY_INFO.md), and figures
449
- - Converts: PDF figures to embedded PNG images (150 DPI, max 6" width)
450
- - Excludes: YAML metadata headers
381
+ **📸 [View Publication Previews](https://rxiv-maker.henriqueslab.org/examples/showcase/)** - See manuscript thumbnails and access preprints
451
382
 
452
- **[📖 CLI Reference](docs/cli-reference.md)**
383
+ > **Using Rxiv-Maker for your research?** Submit your publication via [GitHub Issue](https://github.com/HenriquesLab/rxiv-maker/issues/new?template=publication_submission.yml)
453
384
 
454
385
  ## 🤝 Community
455
386
 
456
387
  - **💬 [GitHub Discussions](https://github.com/henriqueslab/rxiv-maker/discussions)** - Ask questions, share tips
457
- - **🐛 [Issues](https://github.com/henriqueslab/rxiv-maker/issues)** - Report bugs, request features
388
+ - **🐛 [Issues](https://github.com/henriqueslab/rxiv-maker/issues)** - Report bugs, request features
458
389
  - **📚 [Example Manuscript](https://github.com/HenriquesLab/manuscript-rxiv-maker)** - Clone instantly: `rxiv get-rxiv-preprint`
459
390
  - **🧪 [Google Colab](https://colab.research.google.com/github/HenriquesLab/rxiv-maker/blob/main/notebooks/rxiv_maker_colab.ipynb)** - Try without installing
460
391
 
@@ -502,6 +433,6 @@ MIT License - see [LICENSE](LICENSE) for details.
502
433
 
503
434
  *"Because science is hard enough without fighting with LaTeX."*
504
435
 
505
- **[🚀 Start Writing](docs/first-manuscript.md)** | **[📚 User Guide](docs/user_guide.md)** | **[⚙️ CLI Reference](docs/cli-reference.md)**
436
+ **[🚀 Start Writing](https://rxiv-maker.henriqueslab.org/getting-started/first-manuscript/)** | **[📚 User Guide](https://rxiv-maker.henriqueslab.org/guides/)** | **[⚙️ CLI Reference](https://rxiv-maker.henriqueslab.org/getting-started/quick-reference/)**
506
437
 
507
438
  </div>
@@ -1,5 +1,5 @@
1
1
  rxiv_maker/__init__.py,sha256=p04JYC5ZhP6dLXkoWVlKNyiRvsDE1a4C88f9q4xO3tA,3268
2
- rxiv_maker/__version__.py,sha256=Ee6U6W-eWQHTVnWV61WELv3p6G3PUDkO5Vt_RwLkSb0,51
2
+ rxiv_maker/__version__.py,sha256=scH9t8S4Yy0pZ0rKdWKP1B1m1lQmPo9FwrixAZxLlR0,51
3
3
  rxiv_maker/rxiv_maker_cli.py,sha256=9Lu_mhFPXwx5jzAR6StCNxwCm_fkmP5qiOYdNuh_AwI,120
4
4
  rxiv_maker/validate.py,sha256=AIzgP59KbCQJqC9WIGfUdVv0xI6ud9g1fFznQkaGz5Q,9373
5
5
  rxiv_maker/cli/__init__.py,sha256=Jw0DTFUSofN-02xpVrt1UUzRcgH5NNd-GPNidhmNwpU,77
@@ -29,7 +29,7 @@ rxiv_maker/cli/commands/repos.py,sha256=SQ9nuhSkyHKFPYn_TrOxyQoGdDRI-OBOgUSGJpRu
29
29
  rxiv_maker/cli/commands/repos_search.py,sha256=6sUMvyHlHEX1p88hPtu0_Hf8z6JpOinJ53l9ZI-rirc,7743
30
30
  rxiv_maker/cli/commands/setup.py,sha256=9ue4bDETpSPGVkWFDfpuTDsysax5-QKGxmt42Gb7oeU,2294
31
31
  rxiv_maker/cli/commands/track_changes.py,sha256=omf_77A7htRSa8naUEPTTtUTxrSwMpzHFOuU0j1xAJw,1163
32
- rxiv_maker/cli/commands/upgrade.py,sha256=5yA8Aa_zIwJ6PBE94NB_ZqRYhiQkawm-lc43u04NiYY,7301
32
+ rxiv_maker/cli/commands/upgrade.py,sha256=VJ1snYyLGrb5-snF4olfsMwfQsuKkAbXEr8aQ88WYYE,6349
33
33
  rxiv_maker/cli/commands/validate.py,sha256=3JghFQevJvQDQII4p_QWbQXMEUyDpM-t9-WxtaT4edo,1629
34
34
  rxiv_maker/cli/commands/version.py,sha256=VMlfSxxsrZH02d24MXLUDZfHBW39yZRpWxUpMhQ-X0Y,2737
35
35
  rxiv_maker/cli/framework/__init__.py,sha256=4FPXdP8J6v4eeEn46mwY0VtnwxjR1jnW_kTrXykQlQs,2704
@@ -95,7 +95,7 @@ rxiv_maker/engines/operations/add_bibliography.py,sha256=eIYbZRmRFHPm09svhnrsgIj
95
95
  rxiv_maker/engines/operations/build_manager.py,sha256=TAX4-r8HjraAzzvQuIt0CNlvWLo5pF40I7BRuIxZZRc,45022
96
96
  rxiv_maker/engines/operations/cleanup.py,sha256=RfbXif0neEVMlprFIHWyvQh6kwghalcesY3t-69Iwsw,18095
97
97
  rxiv_maker/engines/operations/fix_bibliography.py,sha256=ZD8uO4YCxDCMWH4WtBSDc4TOMgM383fcLgsCCW0yK60,22428
98
- rxiv_maker/engines/operations/generate_docs.py,sha256=f9IjZD2_nK-kD8RLRugRuXMslDgx4857f3AqLGRJFrY,11084
98
+ rxiv_maker/engines/operations/generate_docs.py,sha256=8d_oVYUuRRqTuYN1KnJKqM5Ydp4_yt52ntBv8gUoRVk,11223
99
99
  rxiv_maker/engines/operations/generate_figures.py,sha256=3oIuS0wryO9WpPZ3UD2qm0YscNidTOEiO4_Jd6r3SmY,32842
100
100
  rxiv_maker/engines/operations/generate_preprint.py,sha256=wpKDAu2RLJ4amSdhX5GZ7hU-iTsTRt4etcEA7AZYp04,2662
101
101
  rxiv_maker/engines/operations/prepare_arxiv.py,sha256=cd0JN5IO-Wy9T8ab75eibyaA8_K8Gpwrz2F-95OMnx4,21551
@@ -141,7 +141,7 @@ rxiv_maker/services/publication_service.py,sha256=0p8yQ1jrY3RHwCkzTEl_sAbWYTafRk
141
141
  rxiv_maker/services/validation_service.py,sha256=eWg14NqJu6LzyJBgeXkTaVZAlX4wYFX8ZEvSR5hMx7U,14619
142
142
  rxiv_maker/templates/__init__.py,sha256=UTet1pYPkPdgvrLw-wwaY-PAgdjGJasAi_hdyIh0J8s,562
143
143
  rxiv_maker/templates/manager.py,sha256=HlI7Qb52866Okf4k1aRh0fUy9heOSNGjMQJtrCdL3Xk,6131
144
- rxiv_maker/templates/registry.py,sha256=L8M7M9Yhf2P0SQEghmCXufWfsGQhaW1TYjdkUw-wvDw,12993
144
+ rxiv_maker/templates/registry.py,sha256=mRKUhuNg1VWzryEV-l6tD2pmdQG6b_JDh3_jtrR_K48,16200
145
145
  rxiv_maker/tex/python_execution_section.tex,sha256=pHz6NGfZN4ViBo6rInUO5FAuk81sV_Ppqszrvl00w_4,2218
146
146
  rxiv_maker/utils/__init__.py,sha256=4ya5VR8jqRqUChlnUeMeeetOuWV-gIvjPwcE1u_1OnI,1540
147
147
  rxiv_maker/utils/author_name_formatter.py,sha256=UjvarbyQm89EUIYqckygx3g37o-EcNyvipBtY8GJDxs,10222
@@ -187,8 +187,8 @@ rxiv_maker/validators/doi/metadata_comparator.py,sha256=euqHhKP5sHQAdZbdoAahUn6Y
187
187
  rxiv_maker/tex/template.tex,sha256=zrJ3aFfu8j9zkg1l375eE9w-j42P3rz16wMD3dSgi1I,1354
188
188
  rxiv_maker/tex/style/rxiv_maker_style.bst,sha256=jbVqrJgAm6F88cow5vtZuPBwwmlcYykclTm8RvZIo6Y,24281
189
189
  rxiv_maker/tex/style/rxiv_maker_style.cls,sha256=F2qtnS9mI6SwOIaVH76egXZkB2_GzbH4gCTG_ZcfCDQ,24253
190
- rxiv_maker-1.16.3.dist-info/METADATA,sha256=oM615ZOWCjw_f6jWA7K0rnaI9S19-C9mks2Afm9JLZ0,19818
191
- rxiv_maker-1.16.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
192
- rxiv_maker-1.16.3.dist-info/entry_points.txt,sha256=ghCN0hI9A1GlG7QY5F6E-xYPflA8CyS4B6bTQ1YLop0,97
193
- rxiv_maker-1.16.3.dist-info/licenses/LICENSE,sha256=GSZFoPIhWDNJEtSHTQ5dnELN38zFwRiQO2antBezGQk,1093
194
- rxiv_maker-1.16.3.dist-info/RECORD,,
190
+ rxiv_maker-1.16.5.dist-info/METADATA,sha256=2U4BcFzbnYaEhzXTOgtUCk13H5w_J_RyoCZ5lQQjaGE,17950
191
+ rxiv_maker-1.16.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
192
+ rxiv_maker-1.16.5.dist-info/entry_points.txt,sha256=ghCN0hI9A1GlG7QY5F6E-xYPflA8CyS4B6bTQ1YLop0,97
193
+ rxiv_maker-1.16.5.dist-info/licenses/LICENSE,sha256=GSZFoPIhWDNJEtSHTQ5dnELN38zFwRiQO2antBezGQk,1093
194
+ rxiv_maker-1.16.5.dist-info/RECORD,,