aboutsummaryrefslogtreecommitdiff
path: root/_background.qmd
diff options
context:
space:
mode:
Diffstat (limited to '_background.qmd')
-rw-r--r--_background.qmd87
1 files changed, 87 insertions, 0 deletions
diff --git a/_background.qmd b/_background.qmd
new file mode 100644
index 0000000..883a528
--- /dev/null
+++ b/_background.qmd
@@ -0,0 +1,87 @@
+This chapter will provide and analysis
+of the data format Markdown
+and the Markdown-based publishing system Quarto.
+
+This project mainly involves navigating in and altering data structures.
+Main data structures are the document formats Markdown, HTML and PDF,
+and the abstract data language RDF,
+serialised as RDFa (embedded in HTML) and PDF (embedded in PDF).
+
+## Markdown
+
+Markdown is a text markup language
+with an emphasis on being easy for humans to read
+[@Gruber2004].
+
+Compared to word processors like Microsoft Word and LibreOffice Writer,
+Markdown authoring stores both content and markup together
+in a human-readable tekst file.
+
+::: {#fig-formality}
+
+```
+informal /---------formatted text----------\ formal
+<------v-------------v-------------v-----------------------v---->
+ plain text informal markup formal markup binary format
+ (Markdown) (HTML, XML, etc.)
+```
+
+Markdown is informal, ASCII-based markup
+[@Leonard2016, p. 4]
+
+:::
+
+HTML is itself a plaintext format,
+but is less human-readable.
+Similarly the format LaTeX is also plaintext,
+but its markdown arguably distracts the reading process
+[@Mailund2019chap2, p. 9].
+
+### Alternatives
+
+Other human-readable document source formats exists.
+
+*TODO: briefly cover reStructuredText, Org-mode and AsciiDoc.*
+
+### Integration
+
+Markdown is in widespread use.
+
+Major source forges use Markdown by default for `README` files
+[@Github2025; @GitLab2025; @Codeberg2024].
+Some major programming languages
+natively support Markdown in embedded docstrings
+in core tools
+[@Microsoft2023; @Oracle2025; @RustTeam2024];
+others offer optional support e.g. through plugins
+[@Heesch2025; @Sphinx2025; @JSDoc2023].
+
+## Quarto
+
+Collection of interrelated POSIX scripts and Pandoc extensions
+for enabling semantic annotations in Markdown-based authoring workflows.
+
+* filter extension to capture annotations
+ * identify semantic metadata in stylistic metadata part of Pandoc YAML header
+ * identify semantic metadata in content part of Pandoc document structure
+ * append semantic metadata to Pandoc YAML document header
+ * strip identified metadata from stylistic metadata and content
+* output format extension to generate PDF
+ * read semantic metadata from Pandoc YAML document header
+ * structure semantic metadata as RDF triples
+ * append RDF triples serialized as part of XMP metadata in PDF
+* output format extension to generate web page
+ * read semantic metadata from Pandoc YAML document header
+ * structure semantic metadata as RDF triples
+ * append RDF triples serialized as RDFa
+
+### Interfaces
+
+* Pandoc document object model (DOM)
+* Resource Description Framework (RDF)
+ * XMP
+ * RDFa
+* Markdown
+ * Semantic Markdown
+* CommonMark
+ * Semantic CommonMark