<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sisudoc-spine, branch sisudoc-spine_v0.24.1</title>
<subtitle>SiSU Spine: document publishing and search (in D) 2015</subtitle>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/'/>
<entry>
<title>0.24.1</title>
<updated>2026-09-14T18:31:22+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-14T18:31:22+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=d0d274dd8fb17bcfb5ad5360b0ba54e437d85988'/>
<id>d0d274dd8fb17bcfb5ad5360b0ba54e437d85988</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>images alt text, and epub says what it is</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-14T01:56:43+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=eb5a9f3dab1d1848a1aa90c534a125c222327635'/>
<id>eb5a9f3dab1d1848a1aa90c534a125c222327635</id>
<content type='text'>
Four things, not visible in an error count:

- Images had no alt text, even where markup carried the text, and the
  field alt text is present, incorrectly used in code; fixed as the alt.

  { sm_tux.png 64x80 "Gnu/Linux - a better way" }image

  an image with nothing to say for itself gets alt=""

- Images with no dimensions were incorrectly written width="0"
  height="0", fixed

- Accessibility metadata, which EPUB Accessibility 1.1 requires:
  schema:accessMode, accessibilityFeature and accessibilityHazard, plus
  accessModeSufficient and accessibilitySummary, which epubcheck does
  not test for; used by
  - readers looking for a book it can use,
  - anyone distributing into the EU.
  Every value is derived from the document, not asserted: a document
  with no images says so, one whose images all carry alt text claims
  alternativeText and textual sufficiency, one where an image says
  nothing claims neither.
  Nothing claims WCAG conformance, which would be a claim about an
  evaluation that has not happened.

- DPUB-ARIA roles beside the structure spine already knew about.
  doc-toc, doc-endnotes, doc-bibliography, doc-glossary and doc-index on
  the sections, doc-noteref on a note reference and doc-footnote on the
  note it points at. "doc_endnotes" as a class name means something to a
  stylesheet and nothing to a reading system. Not doc-biblioentry: DPUB-
  ARIA 1.1 deprecated it. These are plain ARIA, so the html gets them
   too.

Also dealt with here:
- Spine makes certain sections such as endnotes, bookindex, ... and a
  heading that has a name for itself cannot share the same name, if it
  does the name is now disambiguated, disambiguated. (disambiguation
  similar to that used for a repeated anchor tag)

- Endnote anchors fixed to use "id" (being one unique tag in the
  document that is target of every reference to it)instead of obsolete
  form (they were &lt;a name="note_1"&gt;. "name" on an &lt;a&gt;).
  Book index markers keep "name": the same marker sits on every object
  an entry names, 296 times in one document, and those are markers of
  where a term occurs rather than distinct targets.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Four things, not visible in an error count:

- Images had no alt text, even where markup carried the text, and the
  field alt text is present, incorrectly used in code; fixed as the alt.

  { sm_tux.png 64x80 "Gnu/Linux - a better way" }image

  an image with nothing to say for itself gets alt=""

- Images with no dimensions were incorrectly written width="0"
  height="0", fixed

- Accessibility metadata, which EPUB Accessibility 1.1 requires:
  schema:accessMode, accessibilityFeature and accessibilityHazard, plus
  accessModeSufficient and accessibilitySummary, which epubcheck does
  not test for; used by
  - readers looking for a book it can use,
  - anyone distributing into the EU.
  Every value is derived from the document, not asserted: a document
  with no images says so, one whose images all carry alt text claims
  alternativeText and textual sufficiency, one where an image says
  nothing claims neither.
  Nothing claims WCAG conformance, which would be a claim about an
  evaluation that has not happened.

- DPUB-ARIA roles beside the structure spine already knew about.
  doc-toc, doc-endnotes, doc-bibliography, doc-glossary and doc-index on
  the sections, doc-noteref on a note reference and doc-footnote on the
  note it points at. "doc_endnotes" as a class name means something to a
  stylesheet and nothing to a reading system. Not doc-biblioentry: DPUB-
  ARIA 1.1 deprecated it. These are plain ARIA, so the html gets them
   too.

Also dealt with here:
- Spine makes certain sections such as endnotes, bookindex, ... and a
  heading that has a name for itself cannot share the same name, if it
  does the name is now disambiguated, disambiguated. (disambiguation
  similar to that used for a repeated anchor tag)

- Endnote anchors fixed to use "id" (being one unique tag in the
  document that is target of every reference to it)instead of obsolete
  form (they were &lt;a name="note_1"&gt;. "name" on an &lt;a&gt;).
  Book index markers keep "name": the same marker sits on every object
  an entry names, 296 times in one document, and those are markers of
  where a term occurs rather than distinct targets.

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>epub and html: no errors left over the sample set</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-14T00:53:26+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=6835275408e1629f450d163e0cc5221c977e87d2'/>
<id>6835275408e1629f450d163e0cc5221c977e87d2</id>
<content type='text'>
epubcheck 5.3.0 over the 35 sample epubs went from 1302 remaining errors
to none. The six causes for those remaining errors fixed here.

most of the count was one of them:

- Tables (1123 errors, 86%) where the writer emitted obsolete
  attributes, removed in 2014; table also now in div instead of a
  paragraph. also fixed:

- Navigation (115). Every level 4 heading's nav entry ended "#0", the
  ocn of an object that has no ocn and so no id.

- Duplicate ids (37). (from three unrelated sources).

- The publication identifier (27 warnings). dc:identifier was a
  hardcoded hex string, not a UUID, and the same one in all 35 files,
  so two documents in one library collided. It is now UUID v5 over the
  document's own uid: a real RFC 4122 identifier, stable across builds
  and distinct per document.

- Image manifest entries (15). media-type was "image/" plus the file
  extension, giving "image/jpg", which is not a media type; epubcheck
  reads it as a foreign resource and wants a fallback. There is now a
  mapping, which also covers svg and webp. Item ids came from the file
  basename, and "2bits_02_01-100.png" gave an id starting with a digit,
  which is not an XML name; ids are now prefixed and sanitised.

- An ocn resolving to no segment (9). A poem block and its first verse
  share one ocn; the verses are written into a segment and the block
  itself is not.

Also dropped from the package document: an xmlns:xsi that nothing
used, and a prefix declaration for the rendition vocabulary, which is
a reserved prefix and needed no declaring. The package now carries
xml:lang.

test-epub-validity.sh now allows no fatal and no error. Two NAV-011
warnings remain and are described in it. Three reference .ssp files
change, all of them the anchor tag disambiguation above.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
epubcheck 5.3.0 over the 35 sample epubs went from 1302 remaining errors
to none. The six causes for those remaining errors fixed here.

most of the count was one of them:

- Tables (1123 errors, 86%) where the writer emitted obsolete
  attributes, removed in 2014; table also now in div instead of a
  paragraph. also fixed:

- Navigation (115). Every level 4 heading's nav entry ended "#0", the
  ocn of an object that has no ocn and so no id.

- Duplicate ids (37). (from three unrelated sources).

- The publication identifier (27 warnings). dc:identifier was a
  hardcoded hex string, not a UUID, and the same one in all 35 files,
  so two documents in one library collided. It is now UUID v5 over the
  document's own uid: a real RFC 4122 identifier, stable across builds
  and distinct per document.

- Image manifest entries (15). media-type was "image/" plus the file
  extension, giving "image/jpg", which is not a media type; epubcheck
  reads it as a foreign resource and wants a fallback. There is now a
  mapping, which also covers svg and webp. Item ids came from the file
  basename, and "2bits_02_01-100.png" gave an id starting with a digit,
  which is not an XML name; ids are now prefixed and sanitised.

- An ocn resolving to no segment (9). A poem block and its first verse
  share one ocn; the verses are written into a segment and the block
  itself is not.

Also dropped from the package document: an xmlns:xsi that nothing
used, and a prefix declaration for the rendition vocabulary, which is
a reserved prefix and needed no declaring. The package now carries
xml:lang.

test-epub-validity.sh now allows no fatal and no error. Two NAV-011
warnings remain and are described in it. Three reference .ssp files
change, all of them the anchor tag disambiguation above.

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>regex: confine url within an endnote (delimiter)</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-13T04:50:43+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=5c3172a03800835c5dbb8207a9661df630e3e607'/>
<id>5c3172a03800835c5dbb8207a9661df630e3e607</id>
<content type='text'>
in error regex permitted a url to go past an endnote close delimiter,
fixed

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
in error regex permitted a url to go past an endnote close delimiter,
fixed

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>test: epubcheck (epub-validity) over sample set</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-13T04:02:24+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=c72511ee4659df539f250a420c68ce29ce7b9641'/>
<id>c72511ee4659df539f250a420c68ce29ce7b9641</id>
<content type='text'>
(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>epub, html: a named anchor, and subtitle fixes</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-13T03:55:37+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=1716ad72ccb6454529a9fc05b0f5a79fd72a8748'/>
<id>1716ad72ccb6454529a9fc05b0f5a79fd72a8748</id>
<content type='text'>
fixes related to:
- named anchor id
- subtitles, emit only where they exist

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes related to:
- named anchor id
- subtitles, emit only where they exist

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>epub, html: correctly identify code block as block</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-13T03:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=4041423feda883d6c26ed41d093c5ce5ae9e37c4'/>
<id>4041423feda883d6c26ed41d093c5ce5ae9e37c4</id>
<content type='text'>
- wrapper set to &lt;div&gt;, with class unchanged, and the six stylesheets
  select div.code where they selected p.code.
- invented element &lt;codeline&gt; removed

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- wrapper set to &lt;div&gt;, with class unchanged, and the six stylesheets
  select div.code where they selected p.code.
- invented element &lt;codeline&gt; removed

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>epub, html: reference issues fixes</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-13T03:11:45+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=4af9d673346d558b47bd113c5ca20dd61e33b8cb'/>
<id>4af9d673346d558b47bd113c5ca20dd61e33b8cb</id>
<content type='text'>
- _part_eof.xhtml was declared in the manifest and never written.
- image_sys/bullet_09.png was referenced as a background image, a
  throwback to the Ruby version of sisu, never used here.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- _part_eof.xhtml was declared in the manifest and never written.
- image_sys/bullet_09.png was referenced as a background image, a
  throwback to the Ruby version of sisu, never used here.

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>epub, html: document heads and ids, fixes</title>
<updated>2026-09-14T16:18:51+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-13T02:59:01+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=282b2a4166aeba76e3b99abaa46bf6858f7cd172'/>
<id>282b2a4166aeba76e3b99abaa46bf6858f7cd172</id>
<content type='text'>
One document head per file, and ids must be unique. No remaining fatal
errors in the epub in the marup sample set.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
One document head per file, and ids must be unique. No remaining fatal
errors in the epub in the marup sample set.

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>epub, html, db: use of elements &amp; attributes, fix</title>
<updated>2026-09-14T16:18:49+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-13T02:42:06+00:00</published>
<link rel='alternate' type='text/html' href='https://sisudoc.com/projects/sisudoc-spine/commit/?id=c959735f21b3ddac6932bc9e8862d77a4421f133'/>
<id>c959735f21b3ddac6932bc9e8862d77a4421f133</id>
<content type='text'>
fixed, four things used that XHTML does not have.
(search db sisudoc-spine-search-cgi results share styling)

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixed, four things used that XHTML does not have.
(search db sisudoc-spine-search-cgi results share styling)

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
</feed>
