<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sisudoc-spine, branch sisudoc-spine_v0.21.0</title>
<subtitle>SiSU Spine: document publishing and search (in D) 2015</subtitle>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/'/>
<entry>
<title>decouple abstraction phase2: dub sub-package split</title>
<updated>2026-05-24T02:48:23+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-24T02:32:45+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=09d1ec0f4e00f970b27d300706aff6b7dc83eaaa'/>
<id>09d1ec0f4e00f970b27d300706aff6b7dc83eaaa</id>
<content type='text'>
Declare sisudoc.abstraction as a dub sub-package (spine:abstraction)
within the existing dub.json. The sub-package's sourcePaths cover
exactly the abstraction-side clusters that were freed from io_out
edges in phase 0 and phase 1:

  - src/sisudoc/abstraction (package surface + ssp serialiser)
  - src/sisudoc/meta        (per-document abstraction)
  - src/sisudoc/io_in       (file/pod ingress)

Its declared dependencies are spine:dyaml and spine:imageformats
only - no d2sqlite3, no io_out. The main "spine" package adds
spine:abstraction to its dependencies and lists those three
directories in excludedSourceFiles so dub does not compile the
abstraction-side sources twice when the executable is built with
--combined (as the nix derivation does).

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Declare sisudoc.abstraction as a dub sub-package (spine:abstraction)
within the existing dub.json. The sub-package's sourcePaths cover
exactly the abstraction-side clusters that were freed from io_out
edges in phase 0 and phase 1:

  - src/sisudoc/abstraction (package surface + ssp serialiser)
  - src/sisudoc/meta        (per-document abstraction)
  - src/sisudoc/io_in       (file/pod ingress)

Its declared dependencies are spine:dyaml and spine:imageformats
only - no d2sqlite3, no io_out. The main "spine" package adds
spine:abstraction to its dependencies and lists those three
directories in excludedSourceFiles so dub does not compile the
abstraction-side sources twice when the executable is built with
--combined (as the nix derivation does).

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>0.21.0</title>
<updated>2026-05-24T02:18:38+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-24T02:18:38+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=113688dac23f8f98163672c2c31fe7ab33a0a698'/>
<id>113688dac23f8f98163672c2c31fe7ab33a0a698</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>org files out of sync, fix</title>
<updated>2026-05-24T02:03:55+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-24T02:02:17+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=ba21ada59220f06f3ba1319b73b5983abbd07cac'/>
<id>ba21ada59220f06f3ba1319b73b5983abbd07cac</id>
<content type='text'>
(also cgi_sqlite_search_form.d did not belong here)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(also cgi_sqlite_search_form.d did not belong here)
</pre>
</div>
</content>
</entry>
<entry>
<title>nix flake update</title>
<updated>2026-05-23T03:13:22+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-23T03:11:09+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=b3c47fb7cabba57ba6edef68443600da9887363a'/>
<id>b3c47fb7cabba57ba6edef68443600da9887363a</id>
<content type='text'>
(usually integrated as part of a pushed commit)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(usually integrated as part of a pushed commit)
</pre>
</div>
</content>
</entry>
<entry>
<title>css: html (additional) tags alignment</title>
<updated>2026-05-22T19:42:48+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-22T19:04:51+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=2cb20ea0436e4f0180716ff8440a686d5347ee8f'/>
<id>2cb20ea0436e4f0180716ff8440a686d5347ee8f</id>
<content type='text'>
css: align body-flow &lt;ul&gt;/&lt;li&gt; &amp; &lt;details&gt;/&lt;summary&gt; with &lt;p&gt;

Not used by sisudoc-spine but for hand-authored body-flow markup such as
the current homepage / body-flow, added block to each of the four html
CSS string heredocs in src/sisudoc/io_out/xmls_css.d

Existing tags are left in place and untouched.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
css: align body-flow &lt;ul&gt;/&lt;li&gt; &amp; &lt;details&gt;/&lt;summary&gt; with &lt;p&gt;

Not used by sisudoc-spine but for hand-authored body-flow markup such as
the current homepage / body-flow, added block to each of the four html
CSS string heredocs in src/sisudoc/io_out/xmls_css.d

Existing tags are left in place and untouched.

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>decouple abstraction phase1:2</title>
<updated>2026-05-22T19:42:48+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-21T18:52:41+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=fcacae04d8f13baee88528a3e72ed5f791c4c1c6'/>
<id>fcacae04d8f13baee88528a3e72ed5f791c4c1c6</id>
<content type='text'>
phase1 step2: move SSP serialiser into sisudoc.abstraction package

git mv src/sisudoc/io_out/create_abstraction_txt.d to
  src/sisudoc/abstraction/ssp.d

Module rename: sisudoc.io_out.create_abstraction_txt
  -&gt; sisudoc.abstraction.ssp

Completes phase1: after this commit the sisudoc.abstraction package has
zero outgoing edges into sisudoc.io_out. The library produces both the
in-memory document object model AND the .ssp text serialisation without
referencing any output-side module.

The serialiser previously imported sisudoc.io_out.paths_output for the
single purpose of constructing the .ssp output path. That import is
dropped; the path construction is inlined as three lines of std.path
(chainPath / asNormalizedPath / array) producing
  &lt;output_path&gt;/&lt;language&gt;/abstraction/&lt;doc_uid_out&gt;.ssp
- byte-for-byte the same path the previous spineOutPaths!() call
produced.

Updated:
- src/sisudoc/abstraction/ssp.d - module decl + inline path
- src/sisudoc/abstraction/package.d - public import .ssp
- src/sisudoc/spine.d - import sisudoc.abstraction.ssp (x2)

Completes decouple abstraction phase1

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
phase1 step2: move SSP serialiser into sisudoc.abstraction package

git mv src/sisudoc/io_out/create_abstraction_txt.d to
  src/sisudoc/abstraction/ssp.d

Module rename: sisudoc.io_out.create_abstraction_txt
  -&gt; sisudoc.abstraction.ssp

Completes phase1: after this commit the sisudoc.abstraction package has
zero outgoing edges into sisudoc.io_out. The library produces both the
in-memory document object model AND the .ssp text serialisation without
referencing any output-side module.

The serialiser previously imported sisudoc.io_out.paths_output for the
single purpose of constructing the .ssp output path. That import is
dropped; the path construction is inlined as three lines of std.path
(chainPath / asNormalizedPath / array) producing
  &lt;output_path&gt;/&lt;language&gt;/abstraction/&lt;doc_uid_out&gt;.ssp
- byte-for-byte the same path the previous spineOutPaths!() call
produced.

Updated:
- src/sisudoc/abstraction/ssp.d - module decl + inline path
- src/sisudoc/abstraction/package.d - public import .ssp
- src/sisudoc/spine.d - import sisudoc.abstraction.ssp (x2)

Completes decouple abstraction phase1

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>decouple abstraction phase1:1</title>
<updated>2026-05-22T19:42:48+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-21T18:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=ca59943ad212cec4c7a2d167468109d95d7a9d74'/>
<id>ca59943ad212cec4c7a2d167468109d95d7a9d74</id>
<content type='text'>
phase1 step1: introduce sisudoc.abstraction package re-export surface

Create src/sisudoc/abstraction/package.d as a library-facing re-export
module for the document-abstraction stage.

The surface currently re-exports:
- sisudoc.meta.metadoc          (spineAbstraction, A-layer entry)
- sisudoc.meta.metadoc_from_src (docAbstraction, B-layer entry)

No code moves; no behaviour change. The package exists so external
consumers can `import sisudoc.abstraction;` and reach the entry points
without depending on spine's internal directory layout.

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
phase1 step1: introduce sisudoc.abstraction package re-export surface

Create src/sisudoc/abstraction/package.d as a library-facing re-export
module for the document-abstraction stage.

The surface currently re-exports:
- sisudoc.meta.metadoc          (spineAbstraction, A-layer entry)
- sisudoc.meta.metadoc_from_src (docAbstraction, B-layer entry)

No code moves; no behaviour change. The package exists so external
consumers can `import sisudoc.abstraction;` and reach the entry points
without depending on spine's internal directory layout.

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>decouple abstraction phase0:2</title>
<updated>2026-05-22T19:42:48+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-21T18:14:38+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=265176e24a7aa64d6bcd11c04d3e6020f629023b'/>
<id>265176e24a7aa64d6bcd11c04d3e6020f629023b</id>
<content type='text'>
phase0 step2: move curation modules from meta/ to io_out/curate/

Curation modules moved to src/sisudoc/io_out/curate/, module
declarations renamed sisudoc.io_out.curate.metadoc_curate* from
sisudoc.meta.metadoc_curate* and updated spine.d imports. File contents
are otherwise unchanged.

Completes phase0: meta/ now has zero io_out imports - the abstraction
core's outgoing deps are now only:
  meta/ internals + io_in/ + ext_depends/D-YAML

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
phase0 step2: move curation modules from meta/ to io_out/curate/

Curation modules moved to src/sisudoc/io_out/curate/, module
declarations renamed sisudoc.io_out.curate.metadoc_curate* from
sisudoc.meta.metadoc_curate* and updated spine.d imports. File contents
are otherwise unchanged.

Completes phase0: meta/ now has zero io_out imports - the abstraction
core's outgoing deps are now only:
  meta/ internals + io_in/ + ext_depends/D-YAML

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>decouple abstraction phase0:1</title>
<updated>2026-05-22T19:41:10+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-21T17:47:32+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=66f5c683414d505f327c6c4f6dccd6511a19b569'/>
<id>66f5c683414d505f327c6c4f6dccd6511a19b569</id>
<content type='text'>
phase0: drop vestigial io_out.hub coupling from meta/metadoc.d

phase0 step1: abstraction-library extraction/decoupling: meta/ should
not import io_out/.

Removed unused call to `import sisudoc.io_out.hub;` `mixin outputHub;`
from `template spineAbstraction()`. (the load-bearing UFCS site is
spine.d:92 which has its own `mixin outputHub).

(assisted by Claude-Code)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
phase0: drop vestigial io_out.hub coupling from meta/metadoc.d

phase0 step1: abstraction-library extraction/decoupling: meta/ should
not import io_out/.

Removed unused call to `import sisudoc.io_out.hub;` `mixin outputHub;`
from `template spineAbstraction()`. (the load-bearing UFCS site is
spine.d:92 which has its own `mixin outputHub).

(assisted by Claude-Code)
</pre>
</div>
</content>
</entry>
<entry>
<title>0.20.0</title>
<updated>2026-05-21T17:27:08+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-21T17:27:08+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=12a85a725d9a88d4f9b9d691bb5d856dcdfce5c8'/>
<id>12a85a725d9a88d4f9b9d691bb5d856dcdfce5c8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
