cjm-markdown-decompose-core
A Markdown decomposition core for context graphs: parses Markdown content (frontmatter, structure, and [[wiki-links]]) into provenance-carrying graph nodes and edges. First source = the ecosystem's own memory/decision files; generalizes to any Markdown corpus.
Modules
cjm_markdown_decompose_core.__init__cjm_markdown_decompose_core.extract— Map parsed Markdown onto dev-graph-schema nodes (coarse tier).cjm_markdown_decompose_core.ingest— Flatten decomposed notes into graph elements for idempotent extension.cjm_markdown_decompose_core.parse— Schema-free Markdown parsing (stdlib + PyYAML).cjm_markdown_decompose_core.project— Projections from the decomposed content back out to files.cjm_markdown_decompose_core.relations— Per-source-type relationship harvesting from parsed Markdown.cjm_markdown_decompose_core.sections— Decompose a Markdown body into ordered Section nodes (the navigable unit).
API
cjm_markdown_decompose_core.extract
corpus_index_filesfunction — Every<dir>/index.mdor<dir>/index.qmdunder the root, one per post directory.note_from_filefunction — Read a Markdown file and map it to a coarseNoteNode.note_from_parsedfunction — Build a coarseNoteNodefrom already-parsed Markdown.note_from_textfunction — Parse + map in one step from in-memory text (hashes the UTF-8 bytes).note_type_fromfunction — Read the memory category frommetadata.type(None when absent).slug_fromfunction — Derive the stable slug: frontmatternameif present, else the path.title_fromfunction — Derive a display title: explicit frontmattertitle, else the slug titleized.
cjm_markdown_decompose_core.ingest
corpus_graph_elementsfunction — Collect notes into the node + edge wire-dict listsextend_graphexpects.
cjm_markdown_decompose_core.parse
ParsedMarkdownclass — The structural decomposition of one Markdown document.extract_headingsfunction — Extract ATX headings (#..######) as (level, text) pairs.extract_wiki_linksfunction — Extract[[wiki-link]]targets from the body, de-duplicated, order-preserved.fenced_code_spansfunction — Locate fenced code blocks (``` / ~~~) as character spans of the body.find_headingsfunction — The body's ATX heading matches, skipping every line inside a fenced code block.parse_frontmatterfunction — Parse frontmatter YAML into a dict (empty dict when absent).parse_markdownfunction — Parse a Markdown document into frontmatter + body + wiki-links + headings.split_frontmatterfunction — Split a leading----delimited YAML frontmatter block from the body.strip_codefunction — Blank out fenced + inline code spans (replaced with a space, length-agnostic).
cjm_markdown_decompose_core.project
first_sentencefunction — A deterministic terse hook: the description's first sentence, capped.note_index_linefunction — Render one index line from a note's frontmatter-derived fields.note_text_from_graph_nodesfunction — Reconstruct a note's file text FROM the graph (frontmatter_raw + ordered raw spans).note_view_from_graph_nodefunction — Reconstruct an index-relevantNoteNodefrom a queried graph node.render_memory_indexfunction — Render aMEMORY.mdindex: notes grouped by category, one line each.render_memory_index_from_graph_nodesfunction — Render the memory index FROM queried graph nodes (the self-hosting path).render_note_textfunction — Reassemble a note's exact file text from its verbatim parts (lossless mode).render_onboarding_surfacefunction — Render the onboarding surface: orientation + how-to-query + resident PUSH core + landmark map + how-to-pull.
cjm_markdown_decompose_core.relations
NoteRelationsclass — The harvested relationship signals for one note (beyond[[wiki-links]]).detect_profilefunction — Detect the source-type profile from the frontmatter shape.harvest_aliasesfunction — Harvestaliases(old URLs) -> bare permalinks (alternate identities).harvest_categoriesfunction — Harvestcategories-> normalized Topic keys (the thematic-clustering facet).harvest_cross_post_linksfunction — Harvest/posts/...markdown links -> (permalink, section anchor) pairs.harvest_relationsfunction — Harvest a note's relationships using its (detected or given) source profile.harvest_series_linksfunction — Harvest/series/...markdown links -> series keys (the membership signal).is_site_linkfunction — A link into the site: relative or rooted, or an absolute URL on the site's own host.normalize_permalinkfunction — Reduce a post link to its bare permalink — the path AFTERposts/.quarto_site_urlfunction — The site URL of the Quarto project a file belongs to (ruling 260119bf).slugifyfunction — Normalize a category/tag to a stable key (lowercased, separators collapsed).
cjm_markdown_decompose_core.sections
decompose_sectionsfunction — Decompose a body into orderedSectionNodes (heading-delimited).heading_anchorfunction — Slugify a heading to its anchor — the Pandoc/Quarto auto-identifier shape.
Dependencies
Depends on: cjm-context-graph-layer, cjm-context-graph-primitives, cjm-dev-graph-schema, pyyaml
Used by: cjm-context-graph-projection, cjm-notebook-decompose-core
Metadata
Release files for cjm-markdown-decompose-core 0.0.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cjm_markdown_decompose_core-0.0.13.tar.gz | 37.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cjm_markdown_decompose_core-0.0.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.9 kB
Release files / cjm_markdown_decompose_core-0.0.13.tar.gz
| Download URL | cjm_markdown_decompose_core-0.0.13.tar.gz |
|---|---|
| Size | 37.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99ad60428d5bff13470fa059d2a7eb1ea88f01f6902d6eda4848bbdf71f54a1e
|
|
BLAKE2b-256 checksum How to use checksums |
d94f200a8b8884f485b1307a960443ab2063d3cb720bd3d97ee70437c7c281e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / cjm_markdown_decompose_core-0.0.13-py3-none-any.whl
| Download URL | cjm_markdown_decompose_core-0.0.13-py3-none-any.whl |
|---|---|
| Size | 29.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b64de8a7051187de55aacda5d5150eae04b623b051db6ee38525399d3bdc6536
|
|
BLAKE2b-256 checksum How to use checksums |
07b79c93480f0093cb86521d9fbb2117e77e8a39690da854be559400275099fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|