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