rxiv-maker 1.18.3__py3-none-any.whl → 1.18.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 +1 -1
- rxiv_maker/core/content_processor.py +6 -6
- rxiv_maker/processors/template_processor.py +11 -11
- {rxiv_maker-1.18.3.dist-info → rxiv_maker-1.18.5.dist-info}/METADATA +11 -5
- {rxiv_maker-1.18.3.dist-info → rxiv_maker-1.18.5.dist-info}/RECORD +8 -8
- {rxiv_maker-1.18.3.dist-info → rxiv_maker-1.18.5.dist-info}/WHEEL +0 -0
- {rxiv_maker-1.18.3.dist-info → rxiv_maker-1.18.5.dist-info}/entry_points.txt +0 -0
- {rxiv_maker-1.18.3.dist-info → rxiv_maker-1.18.5.dist-info}/licenses/LICENSE +0 -0
rxiv_maker/__version__.py
CHANGED
|
@@ -256,9 +256,9 @@ class ContentProcessor(RecoveryEnhancedMixin):
|
|
|
256
256
|
# Supplementary note headers must be processed early (before general headers)
|
|
257
257
|
self.register_processor(
|
|
258
258
|
"supplementary_notes",
|
|
259
|
-
lambda content, **kwargs:
|
|
260
|
-
|
|
261
|
-
|
|
259
|
+
lambda content, **kwargs: (
|
|
260
|
+
process_supplementary_notes(content) if kwargs.get("is_supplementary", False) else content
|
|
261
|
+
),
|
|
262
262
|
ProcessorConfig(
|
|
263
263
|
name="supplementary_notes",
|
|
264
264
|
priority=ProcessorPriority.NORMAL,
|
|
@@ -408,9 +408,9 @@ class ContentProcessor(RecoveryEnhancedMixin):
|
|
|
408
408
|
|
|
409
409
|
self.register_processor(
|
|
410
410
|
"restore_supplementary_placeholders",
|
|
411
|
-
lambda content, **kwargs:
|
|
412
|
-
|
|
413
|
-
|
|
411
|
+
lambda content, **kwargs: (
|
|
412
|
+
restore_supplementary_note_placeholders(content) if kwargs.get("is_supplementary", False) else content
|
|
413
|
+
),
|
|
414
414
|
ProcessorConfig(
|
|
415
415
|
name="restore_supplementary_placeholders",
|
|
416
416
|
priority=ProcessorPriority.NORMAL,
|
|
@@ -504,20 +504,20 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
|
|
|
504
504
|
if content_sections.get("introduction"):
|
|
505
505
|
# If there's an introduction section, use it with "Introduction" header
|
|
506
506
|
main_section_content = content_sections["introduction"]
|
|
507
|
-
main_section_parts.append(f"\\section*{{Introduction}}\n{main_section_content}")
|
|
507
|
+
main_section_parts.append(f"\\section*{{Introduction}}\n\n{main_section_content}")
|
|
508
508
|
|
|
509
509
|
# after_intro mode: insert Methods right after Introduction
|
|
510
510
|
if methods_placement == "after_intro" and methods_content:
|
|
511
|
-
main_section_parts.append(f"\\section*{{Methods}}\n{methods_content}")
|
|
511
|
+
main_section_parts.append(f"\\section*{{Methods}}\n\n{methods_content}")
|
|
512
512
|
|
|
513
513
|
elif content_sections.get("main"):
|
|
514
514
|
# If there's a main section (but no introduction), use it with "Main" header
|
|
515
515
|
main_section_content = content_sections["main"]
|
|
516
|
-
main_section_parts.append(f"\\section*{{Main}}\n{main_section_content}")
|
|
516
|
+
main_section_parts.append(f"\\section*{{Main}}\n\n{main_section_content}")
|
|
517
517
|
|
|
518
518
|
# after_intro mode: insert Methods after Main section if no Introduction exists
|
|
519
519
|
if methods_placement == "after_intro" and methods_content:
|
|
520
|
-
main_section_parts.append(f"\\section*{{Methods}}\n{methods_content}")
|
|
520
|
+
main_section_parts.append(f"\\section*{{Methods}}\n\n{methods_content}")
|
|
521
521
|
|
|
522
522
|
# Include all custom sections (sections that don't map to standard academic paper sections)
|
|
523
523
|
standard_sections = {
|
|
@@ -542,7 +542,7 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
|
|
|
542
542
|
if section_key not in standard_sections and section_content.strip():
|
|
543
543
|
# Add section header using the original title
|
|
544
544
|
section_title = section_titles.get(section_key, section_key.replace("_", " ").title())
|
|
545
|
-
custom_section_with_header = f"\\section*{{{section_title}}}\n{section_content}"
|
|
545
|
+
custom_section_with_header = f"\\section*{{{section_title}}}\n\n{section_content}"
|
|
546
546
|
custom_sections.append(custom_section_with_header)
|
|
547
547
|
|
|
548
548
|
# Add all custom sections to the main section
|
|
@@ -558,7 +558,7 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
|
|
|
558
558
|
# Results section
|
|
559
559
|
results_content = content_sections.get("results", "").strip()
|
|
560
560
|
if results_content:
|
|
561
|
-
results_section = f"\\section*{{Results}}\n{results_content}"
|
|
561
|
+
results_section = f"\\section*{{Results}}\n\n{results_content}"
|
|
562
562
|
else:
|
|
563
563
|
results_section = ""
|
|
564
564
|
template_content = template_content.replace("<PY-RPL:RESULTS-SECTION>", results_section)
|
|
@@ -566,7 +566,7 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
|
|
|
566
566
|
# Discussion section
|
|
567
567
|
discussion_content = content_sections.get("discussion", "").strip()
|
|
568
568
|
if discussion_content:
|
|
569
|
-
discussion_section = f"\\section*{{Discussion}}\n{discussion_content}"
|
|
569
|
+
discussion_section = f"\\section*{{Discussion}}\n\n{discussion_content}"
|
|
570
570
|
else:
|
|
571
571
|
discussion_section = ""
|
|
572
572
|
template_content = template_content.replace("<PY-RPL:DISCUSSION-SECTION>", discussion_section)
|
|
@@ -574,26 +574,26 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
|
|
|
574
574
|
# Conclusions section
|
|
575
575
|
conclusions_content = content_sections.get("conclusion", "").strip()
|
|
576
576
|
if conclusions_content:
|
|
577
|
-
conclusions_section = f"\\section*{{Conclusions}}\n{conclusions_content}"
|
|
577
|
+
conclusions_section = f"\\section*{{Conclusions}}\n\n{conclusions_content}"
|
|
578
578
|
else:
|
|
579
579
|
conclusions_section = ""
|
|
580
580
|
template_content = template_content.replace("<PY-RPL:CONCLUSIONS-SECTION>", conclusions_section)
|
|
581
581
|
|
|
582
582
|
# Handle Methods section placement based on configuration
|
|
583
583
|
if methods_placement == "after_results" and methods_content:
|
|
584
|
-
methods_section = f"\\section*{{Methods}}\n{methods_content}"
|
|
584
|
+
methods_section = f"\\section*{{Methods}}\n\n{methods_content}"
|
|
585
585
|
template_content = template_content.replace("<PY-RPL:METHODS-AFTER-RESULTS>", methods_section)
|
|
586
586
|
else:
|
|
587
587
|
template_content = template_content.replace("<PY-RPL:METHODS-AFTER-RESULTS>", "")
|
|
588
588
|
|
|
589
589
|
if methods_placement == "after_discussion" and methods_content:
|
|
590
|
-
methods_section = f"\\section*{{Methods}}\n{methods_content}"
|
|
590
|
+
methods_section = f"\\section*{{Methods}}\n\n{methods_content}"
|
|
591
591
|
template_content = template_content.replace("<PY-RPL:METHODS-AFTER-DISCUSSION>", methods_section)
|
|
592
592
|
else:
|
|
593
593
|
template_content = template_content.replace("<PY-RPL:METHODS-AFTER-DISCUSSION>", "")
|
|
594
594
|
|
|
595
595
|
if methods_placement == "after_bibliography" and methods_content:
|
|
596
|
-
methods_section = f"\\section*{{Methods}}\n{methods_content}"
|
|
596
|
+
methods_section = f"\\section*{{Methods}}\n\n{methods_content}"
|
|
597
597
|
template_content = template_content.replace("<PY-RPL:METHODS-AFTER-BIBLIOGRAPHY>", methods_section)
|
|
598
598
|
else:
|
|
599
599
|
template_content = template_content.replace("<PY-RPL:METHODS-AFTER-BIBLIOGRAPHY>", "")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rxiv-maker
|
|
3
|
-
Version: 1.18.
|
|
3
|
+
Version: 1.18.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
|
|
@@ -107,16 +107,22 @@ Rxiv-Maker converts enhanced Markdown into professional PDFs with automated figu
|
|
|
107
107
|
<summary>🍎 <strong>macOS</strong> (Recommended - includes LaTeX automatically)</summary>
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
|
-
brew
|
|
111
|
-
brew install rxiv-maker
|
|
112
|
-
rxiv check-installation
|
|
110
|
+
brew install henriqueslab/formulas/rxiv-maker
|
|
113
111
|
```
|
|
114
112
|
|
|
115
|
-
**
|
|
113
|
+
**Updating:**
|
|
116
114
|
```bash
|
|
115
|
+
brew update
|
|
117
116
|
brew upgrade rxiv-maker
|
|
118
117
|
```
|
|
119
118
|
|
|
119
|
+
**Verify installation (optional):**
|
|
120
|
+
```bash
|
|
121
|
+
rxiv check-installation # Verify LaTeX and dependencies
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Benefits:** Simple one-command installation, automatic dependency management (Python 3.13, LaTeX, git, gh), easy updates
|
|
125
|
+
|
|
120
126
|
> **📖 [Homebrew Formula](https://github.com/HenriquesLab/homebrew-formulas)** - Includes Python, LaTeX (MacTeX), and all dependencies
|
|
121
127
|
|
|
122
128
|
</details>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
rxiv_maker/__init__.py,sha256=p04JYC5ZhP6dLXkoWVlKNyiRvsDE1a4C88f9q4xO3tA,3268
|
|
2
|
-
rxiv_maker/__version__.py,sha256=
|
|
2
|
+
rxiv_maker/__version__.py,sha256=i8ukZW5rVDoXBNiuInaBgxVXM535F7b6jCi26fK-JBw,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
|
|
@@ -59,7 +59,7 @@ rxiv_maker/converters/table_processor.py,sha256=0sCtDVlQwLcAC8_dJMijgVb7DCmtannC
|
|
|
59
59
|
rxiv_maker/converters/text_formatters.py,sha256=pa2kVAqyPkGh5LViL5Iqqjjqw1ixB0GKBZJloaVBVi0,42816
|
|
60
60
|
rxiv_maker/converters/types.py,sha256=mTLXVTBGfEi2dp_U2maSE7kZQFz_lfmLDQjlMAeU9lE,885
|
|
61
61
|
rxiv_maker/converters/url_processor.py,sha256=xoZrgz7kgRtMzSay_14ZpYEwK9uXj3YloQW9K-G8LAc,6586
|
|
62
|
-
rxiv_maker/core/content_processor.py,sha256=
|
|
62
|
+
rxiv_maker/core/content_processor.py,sha256=m_jFgmhajlPKZc4FbVfJ30UOF6IPS3qwjim-2sPV8Dc,33812
|
|
63
63
|
rxiv_maker/core/environment_bootstrap.py,sha256=hG1hAOdu-FGeVsn5NU0j0BY21kRquni4K2Cp6uBpEmw,13601
|
|
64
64
|
rxiv_maker/core/environment_manager.py,sha256=hI8uhqGYd2PDMwHiYJkdaoiqztbATaL-XAklgMaIgfQ,10349
|
|
65
65
|
rxiv_maker/core/error_codes.py,sha256=xbSK2VXPnGgHOndf_O69GpRpblyKnW_ahcmjJYPlz2I,15162
|
|
@@ -127,7 +127,7 @@ rxiv_maker/manuscript_utils/figure_utils.py,sha256=FsNtMiA1IOHeA6gQsENmAWLZSAvPp
|
|
|
127
127
|
rxiv_maker/processors/__init__.py,sha256=8UmaeFkbPfcwAL5MnhN2DcOA2k8iuJu0B5dDA6_pmnA,720
|
|
128
128
|
rxiv_maker/processors/author_processor.py,sha256=jC4qZ9M_GADelkp1v8pk46ESUf4DNraXLfMYGhn_7ZM,10016
|
|
129
129
|
rxiv_maker/processors/markdown_preprocessor.py,sha256=Ez_2lhSFEdJY0CS2SKJJESRfnmSdMq4s0jP2nlFSKN8,11228
|
|
130
|
-
rxiv_maker/processors/template_processor.py,sha256=
|
|
130
|
+
rxiv_maker/processors/template_processor.py,sha256=w6VAk_OgW8dTY8riOZ_C-8-6x7Kg1jMnCYda4p8eiE0,30338
|
|
131
131
|
rxiv_maker/processors/yaml_processor.py,sha256=SSXHpwY1Cw81IDN4x40UFtosz-T9l29oh-CZpusmlYo,11499
|
|
132
132
|
rxiv_maker/scripts/__init__.py,sha256=nKsDmj6UAc90uC6sKd-V6O80OMYjAl4Uha9zF_6ayX0,154
|
|
133
133
|
rxiv_maker/scripts/custom_doc_generator.py,sha256=pMkdTI8a4qG8Z3gFUJtPwRuu2i0ioW3pKfs22es0KCk,6311
|
|
@@ -194,8 +194,8 @@ rxiv_maker/validators/doi/metadata_comparator.py,sha256=euqHhKP5sHQAdZbdoAahUn6Y
|
|
|
194
194
|
rxiv_maker/tex/template.tex,sha256=_tPtxrurn3sKTt9Kfa44lPdPyT44vHbDUOGqldU9r2s,1378
|
|
195
195
|
rxiv_maker/tex/style/rxiv_maker_style.bst,sha256=jbVqrJgAm6F88cow5vtZuPBwwmlcYykclTm8RvZIo6Y,24281
|
|
196
196
|
rxiv_maker/tex/style/rxiv_maker_style.cls,sha256=6VDmZE0uvYWog6rcYi2K_NIM9-Pgjx9AFdRg_sTheK0,24374
|
|
197
|
-
rxiv_maker-1.18.
|
|
198
|
-
rxiv_maker-1.18.
|
|
199
|
-
rxiv_maker-1.18.
|
|
200
|
-
rxiv_maker-1.18.
|
|
201
|
-
rxiv_maker-1.18.
|
|
197
|
+
rxiv_maker-1.18.5.dist-info/METADATA,sha256=3MGWQNaVnAJM_7nypR3gtVuh5BTgnCwJ5eZ8S_MTrf8,18432
|
|
198
|
+
rxiv_maker-1.18.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
199
|
+
rxiv_maker-1.18.5.dist-info/entry_points.txt,sha256=ghCN0hI9A1GlG7QY5F6E-xYPflA8CyS4B6bTQ1YLop0,97
|
|
200
|
+
rxiv_maker-1.18.5.dist-info/licenses/LICENSE,sha256=GSZFoPIhWDNJEtSHTQ5dnELN38zFwRiQO2antBezGQk,1093
|
|
201
|
+
rxiv_maker-1.18.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|