diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-21 14:39:34 -0400 |
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-22 15:42:48 -0400 |
| commit | ca59943ad212cec4c7a2d167468109d95d7a9d74 (patch) | |
| tree | cbe61dc70fdc0364c3759197466f81d97dab3faf /src | |
| parent | decouple 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 'src')
| -rw-r--r-- | src/sisudoc/abstraction/package.d | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/sisudoc/abstraction/package.d b/src/sisudoc/abstraction/package.d new file mode 100644 index 0000000..74110f6 --- /dev/null +++ b/src/sisudoc/abstraction/package.d @@ -0,0 +1,85 @@ +/+ +- Name: SisuDoc Spine, Doc Reform [a part of] + - Description: documents, structuring, processing, publishing, search + - static content generator + + - Author: Ralph Amissah + [ralph.amissah@gmail.com] + + - Copyright: (C) 2015 (continuously updated, current 2026) Ralph Amissah, All Rights Reserved. + + - License: AGPL 3 or later: + + Spine (SiSU), a framework for document structuring, publishing and + search + + Copyright (C) Ralph Amissah + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU AFERO General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program. If not, see [https://www.gnu.org/licenses/]. + + If you have Internet connection, the latest version of the AGPL should be + available at these locations: + [https://www.fsf.org/licensing/licenses/agpl.html] + [https://www.gnu.org/licenses/agpl.html] + + - Spine (by Doc Reform, related to SiSU) uses standard: + - docReform markup syntax + - standard SiSU markup syntax with modified headers and minor modifications + - docReform object numbering + - standard SiSU object citation numbering & system + + - Homepages: + [https://www.sisudoc.org] + [https://www.doc-reform.org] + + - Git + [https://git.sisudoc.org/] + ++/ +/++ + 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) |
