trending

SoulDoc and TenTags

SoulDoc complements TenTags; it does not replace it.

  • TenTags is a compact declarative language and export engine for tables.

  • SoulDoc is a document layout engine that handles free positioning, geometry, pagination, and complete documents.

The souldoc.tentags module is independent from the DOCX renderer. It converts TenTags input into a neutral table model and semantic HTML. TenTags <cm> and <rm> markers become standard colspan and rowspan attributes, after which each renderer can create its native merged cells.

The parser supports the cell tags currently used by TenTags, including <b>, <i>, <u>, <s>, <color>, <bg>, <fs>, <left>, <center>, <right>, <cm>, <rm>, <url>, <img>, <mark>, <value>, and <br>. SoulDoc neither imports nor modifies the external tentags package.

I built one document layout engine for six output formats

I built SoulDoc because generating the same document in multiple formats usually means maintaining separate rendering logic for each one.

SoulDoc lets you define a document once in Python and render it to HTML, native SVG, PDF, editable DOCX, XLSX, and JSON.

I d especially love feedback from developers working on reporting, document automation, or export-heavy products:

What formats or layout features would make SoulDoc useful in your workflow?

SoulDoc - Document Layout Engine. One document model Six useful output

SoulDoc is a format-independent document layout engine for Python. Define content, tables, styles, geometry, and pagination once, then export the same model to HTML, native SVG, PDF, editable DOCX, visual XLSX, or versioned JSON. The core has no runtime dependencies; format-specific renderers are optional extras. Built for reporting, document editors, exports, and automation.