Noweb's Extensibility
noweb provides extensibility by using the Unix toolkit philosophy.
The ``noweb,'' ``notangle,'' and ``noweave''
commands are built from
pieces, which are then assembled in pipelines using shell scripts.
The pieces include:
- markup
- convert noweb file from human syntax to tool syntax
- unmarkup
- inverse of markup
- totex
- convert from tool syntax to TeX/latex markup
- tohtml
- convert from tool syntax to HTML markup
- nt
- `tangle' the tool form of the noweb file
- mnt
- discover roots, then act like nt
- noidx
- insert indexing and cross-reference information
- finduses
- finds uses of identifiers
More extensive descriptions can be found in the
Noweb Hacker's Guide.
These pieces are combined by the scripts in the shell directory to
provide more than just weaving and tangling:
- noweb
- analog of nuweb
- notangle
- analog of TANGLE
- noweave
- analog of WEAVE
- nountangle
- tangle, but keep interleaved documentation in comments
- noroots
- print names of all root chunks in a noweb file
- nocount
- count number of lines of code and documentation.
- nodefs
- extract defined identifiers for noweave -indexfrom
- noindex
- build an external index for multi-file documents