diff options
Diffstat (limited to '_background.qmd')
| -rw-r--r-- | _background.qmd | 87 |
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 |
