Simbel: Difference between revisions

From XionKB
Jump to navigationJump to search
(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}}[[File:Simbel.svg|thumb|right|The emblem for the Simbel software.]]
{{stub}}{{infobox swproj
'''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).
|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

This article is a stub. You can help by expanding it.
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
simbelUnix SIMBEL.COMDOS
Verbs
check check a schematic for validation and resource satisfiability
[schematic file] the schematic to check for validity
--verbose, -v be verbose about the checking process
graph graph a schematic's resource dependencies
[schematic file] the schematic to graph
--ascii, -a optional output in ASCII to stdout (this is the default when no flag is given)
--vector, -v optional output in vector graphics format to stdout
render render a schematic into a file
[schematic file] the schematic to render from
[output file] the output file to be rendered
--guess, -g optional guess the output format from the file extension (this is the default when no flag is given)
--xhtml, -x optional output to XHTML 1.0
--dvi, -d optional output to DVI
pack pack 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, -f optional output a fat archive, embedding all resources (this is the default when no flag is given)
--thin, -t optional output a thin archive, only referencing all resources
--lz4, -l optional compress the archive with LZ4
--lzip, -L optional compress the archive with Lzip
--uncompressed, -u optional do not compress the archive
--normal, -n optional use normal compression levels with LZ4/Lzip (this is the default when a bare compression flag is given)
--max, -m optional use maximum compression levels with LZ4/Lzip