<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sisudoc-spine/src/sisudoc/ocda/abstraction/load.d, branch main</title>
<subtitle>SiSU Spine: document publishing and search (in D) 2015</subtitle>
<link rel='alternate' type='text/html' href='https://git.sisudoc.org/sisudoc-spine/'/>
<entry>
<title>html metadata: a link to the ocda.db</title>
<updated>2026-09-09T23:04:06+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-08T22:44:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sisudoc.org/sisudoc-spine/commit/?id=c6e822e3ce4b096163e0016e5735ef9c16e8997f'/>
<id>c6e822e3ce4b096163e0016e5735ef9c16e8997f</id>
<content type='text'>
The metadata page gains a line between the markup source and the
source digests.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The metadata page gains a line between the markup source and the
source digests.

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>ocda loader: one way in whatever the source</title>
<updated>2026-09-09T22:22:47+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-09-08T17:52:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sisudoc.org/sisudoc-spine/commit/?id=c7049608de7d163137521495665753ae7070be08'/>
<id>c7049608de7d163137521495665753ae7070be08</id>
<content type='text'>
sisudoc.ocda.abstraction.load names the five things a document can
be read from, tells them apart, and loads the two that are
self-describing artefacts:

  .sst / .ssm  + images   the markup source
  pod (dir)    + images   the same, bundled
  pod .zip                the same, zipped
  .ssp         + images   the abstraction, as text
  .ocda.db                the abstraction, sqlite, images inside

abstractionSourceOf(path) is the detection, by name and for a
directory by whether it holds pod.manifest. abstractionLoad(path)
returns a LoadedAbstraction: the source kind, whether it was
loaded, why not when it was not, and the document itself.

The three source forms are deliberately not loaded here. Reading
them is the parser's job (sisudoc.ocda.meta.metadoc
spineAbstraction) and it needs the manifest, environment and
configuration that spine.d assembles, none of which belongs in a
loader. What this gives that case is the dispatch and a plain
statement of where it is handled, rather than a silent empty
result.

  spine --abstraction-source=&lt;path&gt;

says what a path is and, for an artefact, loads it and reports
what came back: the document, title and author, header block
sizes, object counts and the objects in each section. Exit 0 when
an abstraction was loaded, 1 when not.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
sisudoc.ocda.abstraction.load names the five things a document can
be read from, tells them apart, and loads the two that are
self-describing artefacts:

  .sst / .ssm  + images   the markup source
  pod (dir)    + images   the same, bundled
  pod .zip                the same, zipped
  .ssp         + images   the abstraction, as text
  .ocda.db                the abstraction, sqlite, images inside

abstractionSourceOf(path) is the detection, by name and for a
directory by whether it holds pod.manifest. abstractionLoad(path)
returns a LoadedAbstraction: the source kind, whether it was
loaded, why not when it was not, and the document itself.

The three source forms are deliberately not loaded here. Reading
them is the parser's job (sisudoc.ocda.meta.metadoc
spineAbstraction) and it needs the manifest, environment and
configuration that spine.d assembles, none of which belongs in a
loader. What this gives that case is the dispatch and a plain
statement of where it is handled, rather than a silent empty
result.

  spine --abstraction-source=&lt;path&gt;

says what a path is and, for an artefact, loads it and reports
what came back: the document, title and author, header block
sizes, object counts and the objects in each section. Exit 0 when
an abstraction was loaded, 1 when not.

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