aboutsummaryrefslogtreecommitdiffhomepage
path: root/org
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2026-05-21 14:39:34 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2026-05-22 15:42:48 -0400
commitca59943ad212cec4c7a2d167468109d95d7a9d74 (patch)
treecbe61dc70fdc0364c3759197466f81d97dab3faf /org
parentdecouple abstraction phase0:2 (diff)
decouple abstraction phase1:1
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)
Diffstat (limited to 'org')
-rw-r--r--org/ocda.org44
1 files changed, 44 insertions, 0 deletions
diff --git a/org/ocda.org b/org/ocda.org
index 31d4c79..aab5f2a 100644
--- a/org/ocda.org
+++ b/org/ocda.org
@@ -22,6 +22,50 @@
- Process markup document, create document abstraction
+** library template :module:metadoc_from_src:
+
+#+HEADER: :tangle "../src/sisudoc/abstraction/package.d"
+#+HEADER: :noweb yes
+#+BEGIN_SRC d
+<<doc_header_including_copyright_and_license>>
+/++
+ sisudoc.abstraction - public surface of the document-abstraction
+ library.
+
+ Pipeline position: markup -> abstraction -> output.
+ This package is the abstraction stage. The output stage lives in
+ sisudoc.io_out and consumes the values produced here.
+
+ Entry points:
+ - spineAbstraction!() (from sisudoc.meta.metadoc) - A-layer:
+ builds the in-memory document object model from a manifest
+ (pod path, .sst path). Reads the document body, parses YAML
+ headers, returns a struct with .abstraction (the object
+ model) and .matters (the conf/meta/src wrapper).
+ - docAbstraction!() (from sisudoc.meta.metadoc_from_src) -
+ B-layer: builds the abstraction from already-loaded body
+ text plus a pre-built ConfComposite. Pure, no file I/O.
+
+ The A-layer is a thin wrapper over the B-layer; consumers that
+ want a minimal-dependency entry should use docAbstraction!()
+ directly.
+
+ Serialisation:
+ - sisudoc.abstraction.ssp - PEG-parsable text serialisation of
+ the abstraction (the .ssp format). See specs/doc-abstraction-
+ format/ for the format reference.
+
+ This file is a re-export-only surface. No logic lives here; it
+ exists so external consumers can `import sisudoc.abstraction;` and
+ reach the entry points without depending on spine's directory
+ layout.
++/
+module sisudoc.abstraction;
+@safe:
+public import sisudoc.meta.metadoc; // spineAbstraction (A-layer)
+public import sisudoc.meta.metadoc_from_src; // docAbstraction (B-layer)
+#+END_SRC
+
** _module template_ :module:metadoc_from_src:
#+HEADER: :tangle "../src/sisudoc/meta/metadoc_from_src.d"