release notes:
OK, w/ this release, we've fully explored the incremental access
side of IXIN purpose; now to turn to the runtime-tweakable side.
It looks more and more like TWEAKS in each NODE-INDEX entry is not
going to be sufficient. For example, what if, within a node, some
setting is changed many times? The current thinking (hinted to in
README) is to move settings out of NODE-DATA completely, such that
rendering programs need not support two forms of settings, the one
used in META, and the one expressed (balkily) in SXML.
This release is the last to support Texinfo 4.13. If you haven't
already, please try using 4.13.93 (or later) for playing w/ IXIN.
thi
README excerpt:
IXIN is an EXPERIMENTAL distribution of EXPERIMENTAL code and
some pre-built IXIN files. IXIN stands for indexed texinfo.
All code is under GPLv3+. All (.xml) docs are under GFDL.
‘spec/ixin.texi’ is The IXIN Chronicles, a document that
defines the file format and provides related info. There
are various output formats, including .info, .pdf and .ixin.
‘c/’ contains some simple command-line utilities to write and
read the file format, and a proof-of-concept rendering program.
‘d/’ contains the some pre-built .sxml and .ixin files.
‘d/GNUmakefile’ supports make demo and make demo-zow,
among other commands.
NEWS excerpt:
- 1.7 | 2013-01-11
- bugfix: a1-nf3-mixp now respects attribute ‘xml:space’
That is, when this attribute has value preserve, a1-nf3-mixp
no longer touches the whitespace in an element's immediate
children.
- bugfix: NODE-INDEX entries' LENGTH includes trailing newline
This brings the utils in line w/ the specification, which DOES
count the trailing newline. Previously, mkixin ignored it and
retrieve added it back in.
- bugfix: retrieve repl takes EOF as ‘(quit)’
Regression introduced w/ IXIN 1.6 (2013-01-03); used to work
fine w/ IXIN 1.5 (2012-12-30). Blech, progress...
- META ... DESCRIPTION can be a renderable sequence
This used to be specified as a single-line string, which is too
restrictive. See d/spec.ixin, for example.
- images no longer inline; new blocks BLOBS-INDEX, BLOBS
Placing the images inline is counter to the goal of supporting
incremental access. Oops, sorry about that.
Another advantage (arguably) w/ blobs is that it is easier to
expand the set of allowed (MIME) types in the future. At the
moment, only image/* is specified, but it's not difficult to
imagine audio/* also. On the other hand, probably video/* is
out of the question. Feedback in this area most welcome.
- new retrieve repl commands: backward, forward, blob
The first two change the current node numerically, ignoring
the ‘next’, and ‘prev’ pointers.
The latter displays BLOB-INDEX entry and BLOB-DATA for the
specified ID.
- retrieve dump displays blobs, too
The ‘dump’ and ‘dump/abbrev’ commands now also display blob
index and blob data, analogously to the node data.
- changes to spit.el
- new commands: ‘[’, ‘]’
These are ‘spit-%backward’ and ‘spit-%forward’, respectively,
which in turn run the ‘backward’ and ‘forward’ repl commands.
- prettier node names after ‘M-s’
Node names are cached by both ‘M-i’ and ‘M-s’, the latter more
fully and w/ precedence. To see this in action, do:
M-x spit RET d/coreutils.ixin RET
then:
M-d; node identifiers (not pretty)
M-i; names w/ ‘variable-pitch’ face cached
M-d; pretty
M-s; names w/ fully-propertized face cached
M-d; even more pretty
M-i; no cache update
M-d; still OK
On a slow computer (like the author's), try d/rcs.ixin instead.
Note that this caching conflates node names with sectioning tree
names, which loses if these do not correspond well enough, or
if there are multiple sectioning elements in a node. The
latter causes Texinfo 4.13.93 to issue a warning; a rigorous
renderer should do likewise, or compensate accordingly.
- ‘M-m’ output prettier
The INVITATIONS are now displayed w/ pretty face, etc. This is
quite dramatic for d/coreutils.ixin, for example.
- ‘s’ decorates ‘(ixcc ...)’
The ‘(ixcc ...)’ forms are displayed as buttons (that have no
action) with the coordinate replaced with a cached rendering
(from ‘M-d’, ‘M-i’ or ‘M-s’), if available. For example:
(ixcc (node 0))
will be replaced with
(ixcc Top)
where the ixcc part is a button. There is at this time
support for families ‘node’, ‘blob’ (see below) and ‘(dts NAME)’
only. When there is no cached rendering available, i.e.,