starting new job...
→ running command: cd "/etc/byggsteg/job-clone//orgwebalchemy/trunk" && git reset --hard && git pull
HEAD is now at 523fcec feat: Add Markdown renderer
From https://codeberg.org/jjba23/orgwebalchemy
523fcec..d3521cd trunk -> origin/trunk
* [new tag] v1.1.0 -> v1.1.0
Updating 523fcec..d3521cd
Fast-forward
README.org | 144 +++++++-
manifest.scm | 3 +-
src/orgwebalchemy/html.scm | 345 +++++++++++++------
src/orgwebalchemy/markdown.scm | 410 ++++++++++++++---------
src/orgwebalchemy/peg.scm | 163 +++++----
test/fixtures/sample-org-features.org | 5 +
test/snapshots/sample-org-features-markdown.snap | 2 +-
test/veritas/benchmark/scope.scm | 174 ++++++++++
test/veritas/unit/html-spec.scm | 47 ++-
test/veritas/unit/markdown-spec.scm | 54 ++-
test/veritas/unit/peg-spec.scm | 144 ++++++--
11 files changed, 1103 insertions(+), 388 deletions(-)
create mode 100644 test/veritas/benchmark/scope.scm
→ running command: cd /etc/byggsteg/job-clone/orgwebalchemy/trunk && uname -a
Linux wolk-jjba 7.1.5-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
→ running command: cd /etc/byggsteg/job-clone/orgwebalchemy/trunk && git log --name-status HEAD^..HEAD
commit d3521cd811c7a3c75872577fb317b66b3efceb1a
Author: Josep Bigorra <jjbigorra@gmail.com>
Date: Wed Oct 14 11:19:48 2026 +0200
feat: Improve Org parser and renderer
M README.org
M manifest.scm
M src/orgwebalchemy/html.scm
M src/orgwebalchemy/markdown.scm
M src/orgwebalchemy/peg.scm
M test/fixtures/sample-org-features.org
M test/snapshots/sample-org-features-markdown.snap
A test/veritas/benchmark/scope.scm
M test/veritas/unit/html-spec.scm
M test/veritas/unit/markdown-spec.scm
M test/veritas/unit/peg-spec.scm
→ running command: cd /etc/byggsteg/job-clone/orgwebalchemy/trunk && maak test
scanning directories for unit tests...
scanning present working directory for unit tests...
shuffled the files with seed 580084134 (replay with VERITAS_SEED=580084134)
found unit tests: (html-spec.scm peg-spec.scm markdown-spec.scm)
running unit tests from file: html-spec.scm, entrypoint: spec
[info] shuffled with seed 580084134 (replay with VERITAS_SEED=580084134)
------------------------------------------
[suite] Full Org-to-HTML Integration
[test] sample org blocks parsing without errors
[pass] success running without errors
[test] sample org text parsing without errors
[pass] success running without errors
------------------------------------------
[suite] Heading metadata
[test] TODO keyword, priority and tags render
[pass] got: <h1 class="org-todo org-todo-todo"><span class="org-todo">TODO</span><span class="org-priority">[#A]</span>A Task<span class="org-tags"><span class="org-tag">work</span><span class="org-tag">urgent</span></span></h1>
[test] plain headings are unchanged
[pass] got: <h1>Plain</h1>
------------------------------------------
[suite] Block Org AST & Document Parsing
[test] headings AST transformation
[pass] got: <h1>Level 1</h1>
[pass] got: <h2>Level 2</h2>
[pass] got: <h3>Level 3</h3>
[test] paragraph transformation
[pass] got: <p>A simple paragraph with <strong>bold</strong> text.</p>
[test] special blocks: quote, example, src, export, separator
[pass] got: <pre class="scheme">(define x 10)
</pre>
[pass] got: <hr />
[pass] got: <pre>*literal* code
</pre>
[pass] got: <blockquote>Quoted <strong>text</strong></blockquote>
[pass] got: <div>Raw content</div>
------------------------------------------
[suite] Extended inline markup
[test] strikethrough, superscript and subscript
[pass] got: x<sup>2</sup>
[pass] got: H<sub>2</sub>O
[pass] got: <del>struck</del>
[test] forced line break and escaped markup
[pass] got: +
[pass] got: line<br />
[test] footnote reference, definition and inline form
[pass] got: <span class="footnote-def" id="fn-1"><sup class="footnote-label">1</sup> note</span>
[pass] got: <sup class="footnote-inline">note</sup>
[pass] got: see<sup class="footnote-ref"><a href="#fn-1" id="fnref-1">1</a></sup>
------------------------------------------
[suite] Class Parameter Customization
[test] customizing heading classes dynamically
[pass] got: <h2 class="text-xl">Section</h2>
[test] customizing inline markup classes
[pass] got: <a class="underline text-blue-600" href="/path">link</a>
[test] customizing block element classes
[pass] got: <ul class="list-disc ml-6"><li>item</li></ul>
------------------------------------------
[suite] Inline Org Transformation
[test] nested inline markup
[pass] got: <strong>bold with <em>italic</em></strong>
[pass] got: <u>underlined <a href="https://gnu.org">link</a></u>
[test] basic inline attributes
[pass] got: <code>code</code>
[pass] got: <code>verbatim</code>
[pass] got: <a href="https://gnu.org">GNU</a>
[pass] got: Unsure if Option A/B
[pass] got: <u>underlined</u>
[pass] got: <a href="https://gnu.org">https://gnu.org</a>
[pass] got: <strong>bold</strong>
[pass] got: cron job / shepherd timer that does git fetch --all for work and <code>~/hacking</code>
[pass] got: <em>italic</em>
------------------------------------------
[suite] Feature fixture
[test] the whole fixture renders without error
[pass] success running without errors
[test] raw HTML export passes through untouched
[pass] got: <div class="raw">Raw HTML</div>
[test] tables still render their header
[pass] got: <div>title: Feature Showcase</div><div>author: OrgWebAlchemy</div><!-- A single comment line. --><h1>Introduction</h1><p>This paragraph shows <strong>bold</strong>, <em>italic</em>, <code>code</code>, <code>verbatim</code>, <u>underline</u>, <del>strikethrough</del>, x<sup>2</sup>, H<sub>2</sub>O.</p><p>A forced break here:<br /></p><p>and then the continuation.</p><p>See <a href="https://gnu.org">GNU</a> or a raw link <a href="https://example.org">https://example.org</a> plus a</p><p>footnote reference<sup class="footnote-ref"><a href="#fn-one" id="fnref-one">one</a></sup> and an inline footnote<sup class="footnote-inline">like this</sup>.</p><p><sup class="footnote-ref"><a href="#fn-one" id="fnref-one">one</a></sup> The footnote definition.</p><h1 class="org-todo org-todo-todo"><span class="org-todo">TODO</span><span class="org-priority">[#A]</span>A Task<span class="org-tags"><span class="org-tag">work</span><span class="org-tag">urgent</span></span></h1><ul><li><input type="checkbox" disabled="disabled" />unchecked item</li><li><input type="checkbox" disabled="disabled" checked="checked" />checked item<ul><li>nested item</li></ul></li></ul><h1>Lists</h1><ol><li>first</li><li>second</li></ol><dl><dt>Term</dt><dd>Definition</dd></dl><ul><li>outer<ol><li>nested ordered</li><li>another</li></ol></li></ul><dl><dt>Tail</dt><dd>detail</dd></dl><h1>Blocks</h1><pre class="scheme">(display "hi")
</pre><pre>*literal*
</pre><blockquote>Quoted <strong>text</strong></blockquote><p>line one<br />line two</p><div><p>centered line</p></div><div class="raw">Raw HTML</div>
<!-- hidden comment
--><pre>a fixed-width line
</pre><hr /><table><thead><tr><th> Name </th><th> Age </th></tr></thead><tbody><tr><td> Ada </td><td> 36 </td></tr></tbody></table>
------------------------------------------
[suite] List transformations
[test] nested description list transformation
[pass] got: <dl><dt>Term</dt><dd>Definition text<dl><dt>Term2</dt><dd>Def2</dd></dl></dd></dl>
[test] nested unordered and nested ordered lists transformation
[pass] got: <ol><li>Item 1<ol><li>Item 1.1</li><li>Item 1.2</li></ol></li></ol>
[pass] got: <ul><li>Item 1<ul><li>Item 1.1</li><li>Item 1.2</li></ul></li></ul>
[test] description list transformation
[pass] got: <dl><dt>Term</dt><dd>Definition text</dd></dl>
[test] unordered and ordered lists transformation
[pass] got: <ul><li>Item 1</li><li>Item 2</li></ul>
[pass] got: <ol><li>First</li><li>Second</li></ol>
------------------------------------------
[suite] Inline Raw URL Transformation
[test] supports communication protocols
[pass] got: <a href="ircs://irc.example.org/#emacs">ircs://irc.example.org/#emacs</a>
[pass] got: <a href="mailto:jjbigorra@gmail.com">mailto:jjbigorra@gmail.com</a>
[pass] got: <a href="tel:+31612345678">tel:+31612345678</a>
[pass] got: <a href="irc://irc.example.org/#emacs">irc://irc.example.org/#emacs</a>
[test] supports WebSocket protocols
[pass] got: <a href="wss://example.org/socket">wss://example.org/socket</a>
[pass] got: <a href="ws://example.org/socket">ws://example.org/socket</a>
[test] URLs coexist with inline Org markup
[pass] got: See <a href="https://example.org">https://example.org</a> and <strong>bold</strong> text.
[pass] got: <strong>Visit <a href="https://example.org">https://example.org</a></strong>
[test] raw URLs and Org links coexist
[pass] got: Visit <a href="https://example.org">https://example.org</a> or <a href="https://gnu.org">GNU</a>.
[test] supports URLs with paths, queries, fragments and ports
[pass] got: <a href="https://example.org/page#section">https://example.org/page#section</a>
[pass] got: <a href="https://example.org:8443/path/to/page">https://example.org:8443/path/to/page</a>
[pass] got: <a href="https://example.org/search?q=org-mode&lang=en">https://example.org/search?q=org-mode&lang=en</a>
[test] URLs stop at a newline
[pass] got: <a href="https://example.org">https://example.org</a>
[test] URLs stop at whitespace
[pass] got: See <a href="https://example.org">https://example.org</a> for details.
[pass] got: See <a href="https://example.org">https://example.org</a> here.
[test] supports remote access and network protocols
[pass] got: <a href="ssh://git@example.org/repo">ssh://git@example.org/repo</a>
[pass] got: <a href="sftp://example.org/path/to/file">sftp://example.org/path/to/file</a>
[pass] got: <a href="gopher://example.org/1/hello">gopher://example.org/1/hello</a>
[pass] got: <a href="git://example.org/project.git">git://example.org/project.git</a>
[test] supports all HTTP and file transfer protocols
[pass] got: <a href="ftp://example.org/file.txt">ftp://example.org/file.txt</a>
[pass] got: <a href="https://example.org">https://example.org</a>
[pass] got: <a href="ftps://example.org/file.txt">ftps://example.org/file.txt</a>
[pass] got: <a href="file:///home/user/document.org">file:///home/user/document.org</a>
[pass] got: <a href="http://example.org">http://example.org</a>
[test] does not treat unsupported schemes as raw URLs
[pass] got: custom://example.org
[pass] got: javascript:alert(1)
[test] URLs can appear inside ordinary prose
[pass] got: Clone <a href="git://example.org/project.git">git://example.org/project.git</a> and build it.
[pass] got: Visit <a href="https://example.org">https://example.org</a> for more information.
------------------------------------------
[suite] Extended block elements
[test] fixed-width, verse and center blocks
[pass] got: <p>one<br />two</p>
[pass] got: <pre>fixed
</pre>
[pass] got: <div><p>mid</p></div>
[test] checkbox list items
[pass] got: <ul><li><input type="checkbox" disabled="disabled" />todo</li><li><input type="checkbox" disabled="disabled" checked="checked" />done</li></ul>
[test] keywords and comments
[pass] got: <!-- a comment -->
[pass] got: <!-- hidden
-->
[pass] got: <div>TITLE: Hello</div>
------------------------------------------
[suite] make-sxml-attrs
[test] constructs a class attribute when classes and attributes are supplied
[pass] got: ((@ (class heading) (href /about)))
[pass] got: ((@ (class btn btn-primary active) (href /about)))
[test] constructs a class attribute when classes are supplied
[pass] got: ((@ (class heading)))
[pass] got: ((@ (class btn btn-primary active)))
[test] constructs attributes when they are supplied
[pass] got: ((@ (href /home)))
[pass] got: ((@ (id main-header) (role banner)))
[test] returns empty list when no classes or attributes provided
[pass] got: ()
[pass] got: ()
[pass] got: ()
------------------------------------------
[suite] Org Table Transformation
[test] table error resilience
[pass] success running without errors
[test] table rendering with header and body
[pass] got: <table><thead><tr><th> Name </th><th> Age </th><th> City </th></tr></thead><tbody><tr><td> Alice </td><td> 30 </td><td> London </td></tr></tbody><tbody><tr><td> Bob </td><td> 25 </td><td> Berlin </td></tr></tbody></table>
------------------------------------------
[suite] SXML to HTML String Rendering
[test] rendering raw HTML nodes verbatim without escaping
[pass] got: <span>Raw</span>
[test] rendering *TOP* wrapped node tree
[pass] got: <p>Hello</p><p>World</p>
[test] rendering single element vs list of elements
[pass] got: <h1>Title</h1><p>Body</p>
[pass] got: <span>text</span>
------------------------------------------
[suite] Mixed and nested list types
[test] consecutive kinds become separate list elements
[pass] got: <ul><li>u</li></ul><ol><li>o</li></ol><dl><dt>k</dt><dd>v</dd></dl>
[test] a description list nests under an unordered item
[pass] got: <ul><li>term<dl><dt>k</dt><dd>v</dd></dl></li></ul>
[test] an ordered list nests under an unordered item
[pass] got: <ul><li>outer<ol><li>n1</li><li>n2</li></ol></li></ul>
[test] a nested list may mix item kinds
[pass] got: <ul><li>a<ul><li>b</li></ul><ol><li>c</li></ol><ul><li>d</li></ul></li></ul>
[info] ran 14 tasks in: 0 seconds, 34117 microseconds
running unit tests from file: peg-spec.scm, entrypoint: spec
[info] shuffled with seed 580084134 (replay with VERITAS_SEED=580084134)
------------------------------------------
[suite] Inline markup nodes
[test] =verbatim= parses
[pass] got: (inline-verbatim-content verbatim)
[test] _underline_ parses
[pass] got: (inline-underline-content underline)
[test] *bold* parses
[pass] got: (inline-bold-content bold)
[test] ~code~ parses
[pass] got: (inline-code-content code)
[test] /italic/ parses
[pass] got: (inline-italic-content italic)
[test] +strike+ parses
[pass] got: (inline-strike-content strike)
------------------------------------------
[suite] Whole-document parsing
[test] the feature fixture is parsed all the way to the end
[pass] got: keyword
[test] the project's own README starts with a keyword and is long
[pass] got: keyword
------------------------------------------
[suite] Mixed and nested lists
[test] two levels of mixed nesting
[pass] got: (org-list (unordered-item (line-content a) (nested-list (unordered-item (line-content b) (nested-list (ordered-item (line-content c)))) (unordered-item (line-content d)))))
[test] an ordered list nests under an unordered item
[pass] got: (org-list (unordered-item (line-content outer) (nested-list (ordered-item (line-content n1)) (ordered-item (line-content n2)))))
[test] a description list nests under an unordered item
[pass] got: (org-list (unordered-item (line-content term) (nested-list (desc-item (desc-key k) (line-content v)))))
[test] a list keeps every kind of item in one run
[pass] got: (org-list (unordered-item (line-content u)) (ordered-item (line-content o)) (desc-item (desc-key k) (line-content v)))
[test] a nested list may mix item kinds
[pass] got: (org-list (unordered-item (line-content a) (nested-list (unordered-item (line-content b)) (ordered-item (line-content c)) (unordered-item (line-content d)))))
------------------------------------------
[suite] Document elements recognise their construct
[test] example block parses as example-block
[pass] got: example-block
[test] quote block parses as quote-block
[pass] got: quote-block
[test] comment block parses as comment-block
[pass] got: comment-block
[test] export html parses as export-html-block
[pass] got: export-html-block
[test] ordered list parses as org-list
[pass] got: org-list
[test] unordered list parses as org-list
[pass] got: org-list
[test] comment parses as comment-line
[pass] got: comment-line
[test] paragraph parses as paragraph
[pass] got: paragraph
[test] verse block parses as verse-block
[pass] got: verse-block
[test] description list parses as org-list
[pass] got: org-list
[test] src block parses as src-block
[pass] got: src-block
[test] table parses as table
[pass] got: table
[test] separator parses as separator
[pass] got: separator
[test] heading parses as heading
[pass] got: heading
[test] keyword parses as keyword
[pass] got: keyword
[test] fixed width parses as fixed-width
[pass] got: fixed-width
[test] mixed sibling list parses as org-list
[pass] got: org-list
[test] center block parses as center-block
[pass] got: center-block
------------------------------------------
[suite] Inline constructs
[test] escaped markup characters are recognised
[pass] got: (inline-escape-char +)
[pass] got: (inline-escape-char *)
[test] footnote reference, definition and inline form
[pass] got: (inline-footnote-def (footnote-label 1) (footnote-content note))
[pass] got: (inline-footnote-inline (footnote-content note))
[pass] got: (inline-footnote-ref (footnote-label 1))
[test] raw urls carry their scheme
[pass] got: (inline-raw-url (url-scheme https://) x.org)
[test] superscript and subscript use their braced form
[pass] got: ((inline-text x) (inline-superscript-content 2))
[pass] got: ((inline-text H) (inline-subscript-content 2) (inline-text O))
[test] a forced line break before end of line
[pass] got: (inline-line-break \\)
[test] links with and without a description
[pass] got: (inline-link-no-desc (link-target-content u))
[pass] got: (inline-link-with-desc (link-target-content u) (link-description-content d))
------------------------------------------
[suite] Heading metadata
[test] a plain heading keeps its simple shape
[pass] got: (heading ** (line-content Title))
[test] a TODO keyword without a priority
[pass] got: (heading * (heading-todo DONE) (line-content Done))
[test] a title ending in a colon is not mistaken for tags
[pass] got: (heading * (line-content Note:))
[test] TODO keyword, priority and tags are extracted
[pass] got: (heading * (heading-todo TODO) (heading-priority A) (line-content Task) (heading-tags work urgent))
[info] ran 6 tasks in: 0 seconds, 22156 microseconds
running unit tests from file: markdown-spec.scm, entrypoint: spec
[info] shuffled with seed 580084134 (replay with VERITAS_SEED=580084134)
------------------------------------------
[suite] Nested Markdown structures
[test] nested ordered lists are indented
[pass] got: 1. a
1. b
[test] nested unordered lists are indented
[pass] got: - a
- b
[test] a checkbox nested inside a list
[pass] got: - a
- [ ] b
------------------------------------------
[suite] Full document Markdown
[test] the fixture keeps inline markup
[pass] got: ~~strikethrough~~
[pass] got: **bold**
[test] the fixture keeps the metadata keyword
[pass] got: title: Feature Showcase
[test] the sample text fixture converts without error
[pass] success running without errors
[pass] got: # Top Level Heading
This is a standard paragraph.
It sits right under the heading.
## A Subheading
- First list item
- Second list item
### An ordered subheading
1. yes buddy
2. another item
## Another
**key**
: val
**desc**
: conte
*In Vino Veritas* but *In Aqua Sanitas*
```scheme
(define (hello)
(display \"Hello World!\"))
```
[test] the feature fixture matches its snapshot
[assert] sample-org-features markdown
[pass] matches snapshot test/snapshots/sample-org-features-markdown.snap
------------------------------------------
[suite] Every fixture converts to Markdown
------------------------------------------
[suite] sample-org-text.org
[test] produces a non-empty document
[pass] got: # Top Level Heading
This is a standard paragraph.
It sits right under the heading.
## A Subheading
- First list item
- Second list item
### An ordered subheading
1. yes buddy
2. another item
## Another
**key**
: val
**desc**
: conte
*In Vino Veritas* but *In Aqua Sanitas*
```scheme
(define (hello)
(display \"Hello World!\"))
```
[test] converts without error
[pass] success running without errors
------------------------------------------
[suite] sample-org-table.org
[test] produces a non-empty document
[pass] got: | Name | Age | City |
| --- | --- | --- |
| Alice | 30 | London |
| Bob | 25 | Berlin |
[test] converts without error
[pass] success running without errors
------------------------------------------
[suite] sample-org-blocks.org
[test] produces a non-empty document
[pass] got: ```
* Verbatim content
- Do not parse
```
> IN VINO VERITAS IN AQUA SANITAS
---
<strong><p>HELLO WORLD</p></strong>
")
(define sample-org-table
"
| Name | Age | City |
| --- | --- | --- |
| Alice | 30 | London |
| Bob | 25 | Berlin |
[test] converts without error
[pass] success running without errors
------------------------------------------
[suite] sample-org-features.org
[test] produces a non-empty document
[pass] got: title: Feature Showcase
author: OrgWebAlchemy
<!-- A single comment line. -->
# Introduction
This paragraph shows **bold**, *italic*, `code`, `verbatim`, <u>underline</u>, ~~strikethrough~~, x<sup>2</sup>, H<sub>2</sub>O.
A forced bre;;; note: source file ./test/veritas/unit/html-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/test/veritas/unit/html-spec.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling ./test/veritas/unit/html-spec.scm
;;; note: source file ./src/orgwebalchemy/peg.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/peg.scm.go
;;; compiling ./src/orgwebalchemy/peg.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/peg.scm.go
;;; note: source file ./src/orgwebalchemy/html.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/html.scm.go
;;; compiling ./src/orgwebalchemy/html.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/html.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/test/veritas/unit/html-spec.scm.go
;;; note: source file ./test/veritas/unit/peg-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/test/veritas/unit/peg-spec.scm.go
;;; compiling ./test/veritas/unit/peg-spec.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/test/veritas/unit/peg-spec.scm.go
;;; note: source file ./test/veritas/unit/markdown-spec.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/test/veritas/unit/markdown-spec.scm.go
;;; compiling ./test/veritas/unit/markdown-spec.scm
;;; note: source file ./src/orgwebalchemy/markdown.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/markdown.scm.go
;;; compiling ./src/orgwebalchemy/markdown.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/markdown.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/orgwebalchemy/trunk/test/veritas/unit/markdown-spec.scm.go
ak here:
and then the continuation.
See [GNU](https://gnu.org) or a raw link <https://example.org> plus a
footnote reference[^one] and an inline footnote^[like this].
[^one] The footnote definition.
# TODO [#A] A Task :work:urgent:
- [ ] unchecked item
- [x] checked item
- nested item
# Lists
1. first
2. second
**Term**
: Definition
- outer
1. nested ordered
2. another
**Tail**
: detail
# Blocks
```scheme
(display "hi")
```
```
*literal*
```
> Quoted *text*
line one
line two
<div align="center">
centered line
</div>
<div class="raw">Raw HTML</div>
<!-- hidden comment
-->
a fixed-width line
---
| Name | Age |
| --- | --- |
| Ada | 36 |
[test] converts without error
[pass] success running without errors
------------------------------------------
[suite] Inline Org renders to Markdown
[test] H_{2}O -> H<sub>2</sub>O
[pass] got: H<sub>2</sub>O
[test] _underline_ -> <u>underline</u>
[pass] got: <u>underline</u>
[test] +strike+ -> ~~strike~~
[pass] got: ~~strike~~
[test] *bold* -> **bold**
[pass] got: **bold**
[test] =verbatim= -> `verbatim`
[pass] got: `verbatim`
[test] [fn:1] -> [^1]
[pass] got: [^1]
[test] [[u]] -> [u](u)
[pass] got: [u](u)
[test] https://x.org -> <https://x.org>
[pass] got: <https://x.org>
[test] ~code~ -> `code`
[pass] got: `code`
[test] /italic/ -> *italic*
[pass] got: *italic*
[test] plain -> plain
[pass] got: plain
[test] x^{2} -> x<sup>2</sup>
[pass] got: x<sup>2</sup>
[test] [[u][d]] -> [d](u)
[pass] got: [d](u)
[test] [fn::note] -> ^[note]
[pass] got: ^[note]
------------------------------------------
[suite] Mixed and nested list types
[test] an ordered list nests and keeps its indentation
[pass] got: - outer
1. n1
2. n2
[test] a mixed nested list renders each run
[pass] got: - a
- b
1. c
- d
[test] consecutive kinds become separate Markdown lists
[pass] got: - u
1. o
**k**
: v
[test] a description list nests under an unordered item
[pass] got: - term
**k**
: v
------------------------------------------
[suite] Block Org renders to Markdown
[test] src block renders
[pass] got: ```scheme
(x)
```
[test] checkbox off renders
[pass] got: - [ ] a
[test] table renders
[pass] got: | Name | Age |
| --- | --- |
| Ada | 36 |
[test] example block renders
[pass] got: ```
x
```
[test] paragraph renders
[pass] got: Some text
[test] heading renders
[pass] got: # Title
[test] ordered list renders
[pass] got: 1. a
2. b
[test] fixed width renders
[pass] got: fixed
[test] comment renders
[pass] got: <!-- a comment -->
[test] verse block renders
[pass] got: a
b
[test] description list renders
[pass] got: **k**
: v
[test] quote block renders
[pass] got: > hi
[test] unordered list renders
[pass] got: - a
- b
[test] separator renders
[pass] got: ---
[test] heading metadata renders
[pass] got: # TODO [#A] T :x:
[test] checkbox on renders
[pass] got: - [x] a
[test] keyword renders
[pass] got: TITLE: Hi
[info] ran 6 tasks in: 0 seconds, 39838 microseconds
finished running tests
--------------------------------------------------------------
Maak: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/orgwebalchemy/trunk/maak.scm
Executing Maak tasks: test
--------------------------------------------------------------
=> Running Maak task: test
Run project's tests.
→ running command: cd /etc/byggsteg/job-clone/orgwebalchemy/trunk && sudo maak deploy
API documentation saved to doc/api
;;; note: source file /etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/html.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/html.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/html.scm
;;; note: source file /etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/peg.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/peg.scm.go
;;; compiling /etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/peg.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/peg.scm.go
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/html.scm.go
;;; note: source file /etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/markdown.scm
;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/markdown.scm.go
;;; compiling /etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/markdown.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/orgwebalchemy/trunk/src/orgwebalchemy/markdown.scm.go
index.texi: warning: must specify a title with a title command or @top
renamed './index' -> './doc/api-dist'
removed '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/API.html'
removed '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/orgwebalchemy_005fhtml.html'
removed '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/orgwebalchemy_005fmarkdown.html'
removed '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/orgwebalchemy_005fpeg.html'
removed directory '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy'
mkdir: created directory '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy'
renamed 'doc/api-dist/API.html' -> '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/API.html'
renamed 'doc/api-dist/orgwebalchemy_005fhtml.html' -> '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/orgwebalchemy_005fhtml.html'
renamed 'doc/api-dist/orgwebalchemy_005fmarkdown.html' -> '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/orgwebalchemy_005fmarkdown.html'
renamed 'doc/api-dist/orgwebalchemy_005fpeg.html' -> '/srv/http/jointhefreeworld.org/api-docs/orgwebalchemy/orgwebalchemy_005fpeg.html'
removed 'doc/api/index.texi'
removed directory 'doc/api'
removed directory 'doc/api-dist'
removed directory 'doc'
--------------------------------------------------------------
Maak: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/orgwebalchemy/trunk/maak.scm
Executing Maak tasks: deploy
--------------------------------------------------------------
=> Running Maak task: deploy
Generate documentation for the project and publish to web directory.