# DogsBay Blog > Notes on documentation tooling, migration and agent-readable docs. ## Documentation - [Mapping AsciiDoc conditionals to Jinja](https://dogsbay.ai/blog/asciidoc-conditionals-in-jinja.md): One OpenShift source file serves Enterprise, OKD, ROSA and Dedicated. Translating ifdef to Jinja keeps audience selection a render-time choice instead of… - [Mapping AsciiDoc ifeval to Jinja](https://dogsbay.ai/blog/asciidoc-ifeval-in-jinja.md): ifeval couples a parent document to its modules by comparing context strings. Jinja expresses the same coupling — including the unsetting that stops it leaking. - [Mapping AsciiDoc includes and level offsets to Jinja](https://dogsbay.ai/blog/asciidoc-includes-in-jinja.md): Includes map to Jinja natively. Level offsets do not exist in Jinja at all, so DogsBay extends it — and the extension has to be fence-aware. - [Mapping AsciiDoc variables to Jinja](https://dogsbay.ai/blog/asciidoc-variables-in-jinja.md): Attribute definitions become Jinja set statements, references become expressions — with one naming rule you have to apply, because hyphens mean subtraction. - [Migrating AsciiDoc to Markdown](https://dogsbay.ai/blog/migrating-asciidoc-to-markdown.md): A modular AsciiDoc corpus is not a folder of pages — it is fragments plus assembly instructions. Here is how to move it to Markdown without throwing that away. - [Why existing AsciiDoc converters lose your structure](https://dogsbay.ai/blog/why-existing-converters-lose-structure.md): Asciidoctor, DocBook and downdoc all resolve preprocessing away. The output compiles — and the modular logic that made the corpus maintainable is gone. - [Why Jinja is the right target](https://dogsbay.ai/blog/why-jinja-is-the-right-target.md): AsciiDoc preprocessing and Jinja templating express the same three ideas — variables, conditionals, includes. That correspondence is what makes the conversion…