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 -> their VERBATIM targets (a page reference).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.14
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.14.tar.gz | 37.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cjm_markdown_decompose_core-0.0.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 67.3 kB
Release files / cjm_markdown_decompose_core-0.0.14.tar.gz
| Download URL | cjm_markdown_decompose_core-0.0.14.tar.gz |
|---|---|
| Size | 37.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb7f6d586e203ed5cd9cf4b0928f313366a8f0bbe23d043ed1a6919194b5aee6
|
|
BLAKE2b-256 checksum How to use checksums |
31242e53a2eae602d43b17c0f50b451c729f3662ebe084281d98ab461ffbcc9e
|
| 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.14-py3-none-any.whl
| Download URL | cjm_markdown_decompose_core-0.0.14-py3-none-any.whl |
|---|---|
| Size | 29.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6f98640dd7b2d042880941991ff046ca42d5b333a4bc2f540cb475e89f687372
|
|
BLAKE2b-256 checksum How to use checksums |
7d80dde69792f0650f06641df7c1c6a45eda9be760e8231b27848dba495de18b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|