Simbel: Difference between revisions
(Created page with "{{stub}}thumb|right|The emblem for the Simbel software. '''Simbel''' is a document generation tool that consumes several categories of input information to create an abstract document tree that can then be rendered logically into various publication mediums including XHTML, HTML5, and PDF (and therefore including print). Category:Byblos components") |
(Revisit the big picture) |
||
| (8 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{stub}}[[ | {{stub}}{{infobox swproj | ||
'''Simbel''' is a document generation tool that consumes several categories of input information to create an abstract document | |name=Simbel | ||
|image=Simbel.jpg | |||
|by=Alexander Nicholi | |||
|langs={{wp|C (programming language)|C}}, [[C*]] | |||
|systems=[[Sirius DOS]] | |||
|archs={{wp|Intel 80286|i286}} | |||
|lic=[[Artisan Software Licence#ASL 1.1|ASL 1.1]] | |||
}} | |||
'''Simbel''' is a document generation tool that consumes several categories of input information to create an abstract document that can then be rendered logically into various publication mediums including XHTML, HTML5, and PDF (and therefore including print). | |||
==Conceptual overview== | |||
The central object of Simbel is a '''schematic''' which references all of the input in their various forms, including details about their placement, weight, truncation and other context. This schematic can then be rendered into one of several output formats described below, ''or'' it may be finalised and compressed as-is in the Abu format for preservation or further processing by other tools. The schematic itself never contains the content, but is rather bundled with it, potentially in finalised Abu archives. | |||
===Forms of input=== | |||
Simbel ingests several forms of content input, including: | |||
* Cliffdocs — a terse, source-embedded form of code documentation | |||
** typically these include plain comments interspersed throughout implementations, not "doc comments" with Doxygen or the like | |||
* Manual pages, or "manpages" — long-form literature text that explains code in-depth | |||
* Diagrams — flowcharts and other easily vectorised technical graphics that aid explanation | |||
* Photographs — {{wp|Discrete cosine transform|DCT}}-type raster images for more subjective illustrations | |||
* Hypermedia — not a direct format but a property of the other input formats that is merged and collated | |||
===Canonical formats=== | |||
Simbel uses the [[RFC format]] as its chief medium of text storage. Figures are reserved space in the document flow and embedded programmatically by Simbel at render time according to the desired format's needs. Textual data is encoded in this format and thereby as a superset of the self-evident ASCII-compatible [[TTY format]]. RFC means that authors should expect 72-column lines and 50-line pages, excluding margins, headers and footers which are managed separately. | |||
===Further rendering=== | |||
Simbel targets the following formats for rasterization of its ADM: | |||
* XHTML 1.0 (for reading on tablets and computers) | |||
* LaTeX (to be translated into page description formats like PDF) | |||
* Abu format (see below) | |||
==Abu format== | |||
Simbel will provide a stabilised public ABI via a file format that contains all of the necessary data and metadata for output. This allows others to target new formats using nothing more than the knowledge of this file format, and it also allows dynamic rendering and navigation in the form of editor plugins. Abu also serves as the "intermediate representation" that Simbel uses to instantiate its templates for XHTML, HTML and LaTeX. | |||
This format is to be built on top of a DOS-compatible subset of the PKZIP archive format. | |||
==Interface== | |||
; Program name | |||
: <code>simbel</code><sup>Unix</sup> <code>SIMBEL.COM</code><sup>DOS</sup> | |||
; Verbs | |||
:; <code>check</code> check a schematic for validation and resource satisfiability | |||
:: <code>[schematic file]</code> the schematic to check for validity | |||
:: <code>--verbose</code>, <code>-v</code> be verbose about the checking process | |||
:; <code>graph</code> graph a schematic's resource dependencies | |||
:: <code>[schematic file]</code> the schematic to graph | |||
:: <code>--ascii</code>, <code>-a</code> <sub>optional</sub> output in ASCII to <tt>stdout</tt> (this is the default when no flag is given) | |||
:: <code>--vector</code>, <code>-v</code> <sub>optional</sub> output in vector graphics format to <tt>stdout</tt> | |||
:; <code>render</code> render a schematic into a file | |||
:: <code>[schematic file]</code> the schematic to render from | |||
:: <code>[output file]</code> the output file to be rendered | |||
:: <code>--guess</code>, <code>-g</code> <sub>optional</sub> guess the output format from the file extension (this is the default when no flag is given) | |||
:: <code>--xhtml</code>, <code>-x</code> <sub>optional</sub> output to XHTML 1.0 | |||
:: <code>--dvi</code>, <code>-d</code> <sub>optional</sub> output to DVI | |||
:; <code>pack</code> pack up a schematic for preservation or transmission | |||
:: <code>[schematic file]</code> the schematic to pack | |||
:: <code>[abu archive file]</code> the Abu-compatible archive file to output to | |||
:: <code>--fat</code>, <code>-f</code> <sub>optional</sub> output a fat archive, embedding all resources (this is the default when no flag is given) | |||
:: <code>--thin</code>, <code>-t</code> <sub>optional</sub> output a thin archive, only referencing all resources | |||
:: <code>--lz4</code>, <code>-l</code> <sub>optional</sub> compress the archive with LZ4 | |||
:: <code>--lzip</code>, <code>-L</code> <sub>optional</sub> compress the archive with Lzip | |||
:: <code>--uncompressed</code>, <code>-u</code> <sub>optional</sub> do not compress the archive | |||
:: <code>--normal</code>, <code>-n</code> <sub>optional</sub> use normal compression levels with LZ4/Lzip (this is the default when a bare compression flag is given) | |||
:: <code>--max</code>, <code>-m</code> <sub>optional</sub> use maximum compression levels with LZ4/Lzip | |||
[[Category:Byblos components]] | [[Category:Byblos components]] | ||
Latest revision as of 06:34, 22 May 2025
| Simbel | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Created by | Alexander Nicholi | ||||||||||
| Written in | C, C* | ||||||||||
| OSes | Sirius DOS | ||||||||||
| ISAs | i286 | ||||||||||
| Licence | ASL 1.1 | ||||||||||
Simbel is a document generation tool that consumes several categories of input information to create an abstract document that can then be rendered logically into various publication mediums including XHTML, HTML5, and PDF (and therefore including print).
Conceptual overview
The central object of Simbel is a schematic which references all of the input in their various forms, including details about their placement, weight, truncation and other context. This schematic can then be rendered into one of several output formats described below, or it may be finalised and compressed as-is in the Abu format for preservation or further processing by other tools. The schematic itself never contains the content, but is rather bundled with it, potentially in finalised Abu archives.
Forms of input
Simbel ingests several forms of content input, including:
- Cliffdocs — a terse, source-embedded form of code documentation
- typically these include plain comments interspersed throughout implementations, not "doc comments" with Doxygen or the like
- Manual pages, or "manpages" — long-form literature text that explains code in-depth
- Diagrams — flowcharts and other easily vectorised technical graphics that aid explanation
- Photographs — DCT-type raster images for more subjective illustrations
- Hypermedia — not a direct format but a property of the other input formats that is merged and collated
Canonical formats
Simbel uses the RFC format as its chief medium of text storage. Figures are reserved space in the document flow and embedded programmatically by Simbel at render time according to the desired format's needs. Textual data is encoded in this format and thereby as a superset of the self-evident ASCII-compatible TTY format. RFC means that authors should expect 72-column lines and 50-line pages, excluding margins, headers and footers which are managed separately.
Further rendering
Simbel targets the following formats for rasterization of its ADM:
- XHTML 1.0 (for reading on tablets and computers)
- LaTeX (to be translated into page description formats like PDF)
- Abu format (see below)
Abu format
Simbel will provide a stabilised public ABI via a file format that contains all of the necessary data and metadata for output. This allows others to target new formats using nothing more than the knowledge of this file format, and it also allows dynamic rendering and navigation in the form of editor plugins. Abu also serves as the "intermediate representation" that Simbel uses to instantiate its templates for XHTML, HTML and LaTeX.
This format is to be built on top of a DOS-compatible subset of the PKZIP archive format.
Interface
- Program name
simbelUnixSIMBEL.COMDOS- Verbs
-
checkcheck a schematic for validation and resource satisfiability[schematic file]the schematic to check for validity--verbose,-vbe verbose about the checking processgraphgraph a schematic's resource dependencies[schematic file]the schematic to graph--ascii,-aoptional output in ASCII to stdout (this is the default when no flag is given)--vector,-voptional output in vector graphics format to stdoutrenderrender a schematic into a file[schematic file]the schematic to render from[output file]the output file to be rendered--guess,-goptional guess the output format from the file extension (this is the default when no flag is given)--xhtml,-xoptional output to XHTML 1.0--dvi,-doptional output to DVIpackpack up a schematic for preservation or transmission[schematic file]the schematic to pack[abu archive file]the Abu-compatible archive file to output to--fat,-foptional output a fat archive, embedding all resources (this is the default when no flag is given)--thin,-toptional output a thin archive, only referencing all resources--lz4,-loptional compress the archive with LZ4--lzip,-Loptional compress the archive with Lzip--uncompressed,-uoptional do not compress the archive--normal,-noptional use normal compression levels with LZ4/Lzip (this is the default when a bare compression flag is given)--max,-moptional use maximum compression levels with LZ4/Lzip