Compare commits

...

6 Commits

Author SHA1 Message Date
mischbeck 15988ad740 Update README.md 2026-07-02 09:02:42 +00:00
Michael Beck 12047a791f Merge branch 'main' of https://git.mbeck.cologne/mischbeck/ScientificManuscriptTemplate 2026-07-02 10:49:35 +02:00
Michael Beck 62873b4e91 Adds output dir variable in task. Adds dry-run description in readme. 2026-07-02 10:48:58 +02:00
Michael Beck 365219777a Fixes LaTeX header includes 2026-07-02 10:47:52 +02:00
Michael Beck f96dc6002c Remove rendered files 2026-07-02 10:47:00 +02:00
Michael Beck aac9c6c869 updates README.md 2026-07-02 10:11:49 +02:00
6 changed files with 63 additions and 45 deletions
+12 -11
View File
@@ -4,6 +4,7 @@ vars:
PROJECT_NAME: Manuscript
PYTHON: '{{if eq OS "windows"}}python{{else}}python3{{end}}'
UTILS: "../resources/scripts/task_utils.py"
OUTPUT_DIR: "_output"
tasks:
default:
@@ -12,43 +13,43 @@ tasks:
render:
desc: "Render with the default (non-anonymized) profile, all formats"
cmd: quarto render --profile=default --output-dir _output/default
cmd: quarto render --profile=default --output-dir {{.OUTPUT_DIR}}/default
render:anonymized:
desc: "Render with the anonymized profile, all formats"
cmd: quarto render --profile=anonymized --output-dir _output/anonymized
cmd: quarto render --profile=anonymized --output-dir {{.OUTPUT_DIR}}/anonymized
render:html:
desc: "Render to HTML only (default profile)"
cmd: quarto render --profile=default --to html --output-dir _output/default
cmd: quarto render --profile=default --to html --output-dir {{.OUTPUT_DIR}}/default
render:docx:
desc: "Render to docx only (default profile)"
cmd: quarto render --profile=default --to docx --output-dir _output/default
cmd: quarto render --profile=default --to docx --output-dir {{.OUTPUT_DIR}}/default
render:jats:
desc: "Render to JATS XML only (default profile)"
cmd: quarto render --profile=default --to jats --output-dir _output/default
cmd: quarto render --profile=default --to jats --output-dir {{.OUTPUT_DIR}}/default
render:pdf:
desc: "Render to PDF only (default profile) - requires pdf format configured in _quarto.yml"
cmd: quarto render --profile=default --to pdf --output-dir _output/default
cmd: quarto render --profile=default --to pdf --output-dir {{.OUTPUT_DIR}}/default
package:
desc: "Zip the default-profile rendered output into Manuscript-default.zip"
deps: [render]
cmd: "{{.PYTHON}} {{.UTILS}} zip _output/default {{.PROJECT_NAME}}-default.zip"
cmd: "{{.PYTHON}} {{.UTILS}} zip {{.OUTPUT_DIR}}/default {{.PROJECT_NAME}}-default.zip"
sources:
- _output/default/**/*
- "{{.OUTPUT_DIR}}/default/**/*"
generates:
- "{{.PROJECT_NAME}}-default.zip"
package:anonymized:
desc: "Zip the anonymized-profile rendered output into Manuscript-anonymized.zip"
deps: [render:anonymized]
cmd: "{{.PYTHON}} {{.UTILS}} zip _output/anonymized {{.PROJECT_NAME}}-anonymized.zip"
cmd: "{{.PYTHON}} {{.UTILS}} zip {{.OUTPUT_DIR}}/anonymized {{.PROJECT_NAME}}-anonymized.zip"
sources:
- _output/anonymized/**/*
- "{{.OUTPUT_DIR}}/anonymized/**/*"
generates:
- "{{.PROJECT_NAME}}-anonymized.zip"
@@ -61,5 +62,5 @@ tasks:
- data.zip
clean:
desc: "Remove _output, .quarto, and stray *_files/*_cache folders"
desc: "Remove {{.OUTPUT_DIR}}, .quarto, and stray *_files/*_cache folders"
cmd: "{{.PYTHON}} {{.UTILS}} clean-project ."
+11 -12
View File
@@ -14,7 +14,16 @@ format:
fig-dpi: 300
reference-doc: ../resources/custom-reference-doc.docx
jats: default
pdf: default
pdf:
header-includes: |
\usepackage{pdfpages}
\pagenumbering{gobble}
\usepackage{booktabs}
\usepackage{caption}
\DeclareCaptionLabelSeparator{period-newline}{.\par}
\usepackage{setspace}
\usepackage{float} % enables [H]
\usepackage[section]{placeins} % <- add [section]
profile:
default: default
@@ -46,14 +55,4 @@ keywords:
- Replication
abstract: |
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
header-includes: |
\usepackage{pdfpages}
\pagenumbering{gobble}
\usepackage{booktabs}
\usepackage{caption}
\DeclareCaptionLabelSeparator{period-newline}{.\par}
\usepackage{setspace}
\usepackage{float} % enables [H]
\usepackage[section]{placeins} % <- add [section]
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+8 -1
View File
@@ -1,4 +1,4 @@
# ScientificManuscriptTemplate
# Research Manuscript Template
A multi-project Quarto template for a manuscript, a research report, and supplements, sharing one set of resources (bibliography, CSL style, author/affiliation data, reference docx) and rendered via [Task](https://taskfile.dev).
@@ -25,6 +25,13 @@ In any arch-based Linux distro, run `go-task finalize` instead.
More on how to include more detail in the front matter can be found in the official [quarto manual](https://quarto.org/docs/authoring/front-matter.html). Their quick introduction into [Markdown Basics](https://quarto.org/docs/authoring/markdown-basics.html) is also worth reading.
If you want to know, which command is being run by `task`, use the `--dry` parameter:
```bash
> task manuscript:render:html --dry
task: [manuscript:render:html] quarto render --profile=default --to html --output-dir _output/default
```
## Project layout
Each of `Manuscript/`, `ResearchReport/`, and `Supplements/` contains a Quarto project with its own `_quarto.yml`, `index.qmd`, `data/`, and `figures/` folders.
+11 -10
View File
@@ -4,6 +4,7 @@ vars:
PROJECT_NAME: ResearchReport
PYTHON: '{{if eq OS "windows"}}python{{else}}python3{{end}}'
UTILS: "../resources/scripts/task_utils.py"
OUTPUT_DIR: "_output"
tasks:
default:
@@ -12,39 +13,39 @@ tasks:
render:
desc: "Render with the default (non-anonymized) profile, all formats"
cmd: quarto render --profile=default --output-dir _output/default
cmd: quarto render --profile=default --output-dir {{.OUTPUT_DIR}}/default
render:anonymized:
desc: "Render with the anonymized profile, all formats"
cmd: quarto render --profile=anonymized --output-dir _output/anonymized
cmd: quarto render --profile=anonymized --output-dir {{.OUTPUT_DIR}}/anonymized
render:html:
desc: "Render to HTML only (default profile)"
cmd: quarto render --profile=default --to html --output-dir _output/default
cmd: quarto render --profile=default --to html --output-dir {{.OUTPUT_DIR}}/default
render:docx:
desc: "Render to docx only (default profile)"
cmd: quarto render --profile=default --to docx --output-dir _output/default
cmd: quarto render --profile=default --to docx --output-dir {{.OUTPUT_DIR}}/default
render:pdf:
desc: "Render to PDF only (default profile) - requires pdf format configured in _quarto.yml"
cmd: quarto render --profile=default --to pdf --output-dir _output/default
cmd: quarto render --profile=default --to pdf --output-dir {{.OUTPUT_DIR}}/default
package:
desc: "Zip the default-profile rendered output into ResearchReport-default.zip"
deps: [render]
cmd: "{{.PYTHON}} {{.UTILS}} zip _output/default {{.PROJECT_NAME}}-default.zip"
cmd: "{{.PYTHON}} {{.UTILS}} zip {{.OUTPUT_DIR}}/default {{.PROJECT_NAME}}-default.zip"
sources:
- _output/default/**/*
- "{{.OUTPUT_DIR}}/default/**/*"
generates:
- "{{.PROJECT_NAME}}-default.zip"
package:anonymized:
desc: "Zip the anonymized-profile rendered output into ResearchReport-anonymized.zip"
deps: [render:anonymized]
cmd: "{{.PYTHON}} {{.UTILS}} zip _output/anonymized {{.PROJECT_NAME}}-anonymized.zip"
cmd: "{{.PYTHON}} {{.UTILS}} zip {{.OUTPUT_DIR}}/anonymized {{.PROJECT_NAME}}-anonymized.zip"
sources:
- _output/anonymized/**/*
- "{{.OUTPUT_DIR}}/anonymized/**/*"
generates:
- "{{.PROJECT_NAME}}-anonymized.zip"
@@ -57,5 +58,5 @@ tasks:
- data.zip
clean:
desc: "Remove _output, .quarto, and stray *_files/*_cache folders"
desc: "Remove {{.OUTPUT_DIR}}, .quarto, and stray *_files/*_cache folders"
cmd: "{{.PYTHON}} {{.UTILS}} clean-project ."
+11 -11
View File
@@ -1,10 +1,10 @@
# Supplements/Taskfile.yml
version: "3"
vars:
PROJECT_NAME: Supplements
PYTHON: '{{if eq OS "windows"}}python{{else}}python3{{end}}'
UTILS: "../resources/scripts/task_utils.py"
OUTPUT_DIR: "_output"
tasks:
default:
@@ -13,39 +13,39 @@ tasks:
render:
desc: "Render with the default (non-anonymized) profile, all formats"
cmd: quarto render --profile=default --output-dir _output/default
cmd: quarto render --profile=default --output-dir {{.OUTPUT_DIR}}/default
render:anonymized:
desc: "Render with the anonymized profile, all formats"
cmd: quarto render --profile=anonymized --output-dir _output/anonymized
cmd: quarto render --profile=anonymized --output-dir {{.OUTPUT_DIR}}/anonymized
render:html:
desc: "Render to HTML only (default profile)"
cmd: quarto render --profile=default --to html --output-dir _output/default
cmd: quarto render --profile=default --to html --output-dir {{.OUTPUT_DIR}}/default
render:docx:
desc: "Render to docx only (default profile)"
cmd: quarto render --profile=default --to docx --output-dir _output/default
cmd: quarto render --profile=default --to docx --output-dir {{.OUTPUT_DIR}}/default
render:pdf:
desc: "Render to PDF only (default profile) - requires pdf format configured in _quarto.yml"
cmd: quarto render --profile=default --to pdf --output-dir _output/default
cmd: quarto render --profile=default --to pdf --output-dir {{.OUTPUT_DIR}}/default
package:
desc: "Zip the default-profile rendered output into Supplements-default.zip"
deps: [render]
cmd: "{{.PYTHON}} {{.UTILS}} zip _output/default {{.PROJECT_NAME}}-default.zip"
cmd: "{{.PYTHON}} {{.UTILS}} zip {{.OUTPUT_DIR}}/default {{.PROJECT_NAME}}-default.zip"
sources:
- _output/default/**/*
- "{{.OUTPUT_DIR}}/default/**/*"
generates:
- "{{.PROJECT_NAME}}-default.zip"
package:anonymized:
desc: "Zip the anonymized-profile rendered output into Supplements-anonymized.zip"
deps: [render:anonymized]
cmd: "{{.PYTHON}} {{.UTILS}} zip _output/anonymized {{.PROJECT_NAME}}-anonymized.zip"
cmd: "{{.PYTHON}} {{.UTILS}} zip {{.OUTPUT_DIR}}/anonymized {{.PROJECT_NAME}}-anonymized.zip"
sources:
- _output/anonymized/**/*
- "{{.OUTPUT_DIR}}/anonymized/**/*"
generates:
- "{{.PROJECT_NAME}}-anonymized.zip"
@@ -58,5 +58,5 @@ tasks:
- data.zip
clean:
desc: "Remove _output, .quarto, and stray *_files/*_cache folders"
desc: "Remove {{.OUTPUT_DIR}}, .quarto, and stray *_files/*_cache folders"
cmd: "{{.PYTHON}} {{.UTILS}} clean-project ."
+10
View File
@@ -11,6 +11,16 @@ format:
hypothesis: true
docx: default
jats: default
pdf:
header-includes: |
\usepackage{pdfpages}
\pagenumbering{gobble}
\usepackage{booktabs}
\usepackage{caption}
\DeclareCaptionLabelSeparator{period-newline}{.\par}
\usepackage{setspace}
\usepackage{float} % enables [H]
\usepackage[section]{placeins} % <- add [section]
# (other formats)
# pdf: default