• Chalk — near‑future ideas (scratchpad)

    Modularity

    • The system is currently a bit intertwined; want to improve separation between parts.

    Theming system

    • Make themes a first‑class concept.
    • Current theme (Chalkboard) becomes the first/Default theme, but separated from core.

    Plugin system

    • Move things like Svelte embeds into a plugin.

    CLI

    • Make it easier to run from the CLI.
    • Support different configuration options.

    Configuration & boundaries

    • Define “boundaries” within the chalk tree to mark branches as self-contained “items.”
    • Per-branch behavior for metadata: allow inheritance, summarization on branch nodes, or auto-indexing via defined logic.
    • Folder-level config files that describe how contents behave.
    • Config inherits down the tree and can merge with descendant configs.
    • Support overrides and merge strategies (e.g., replace/append/deep-merge).

    Markdown enhancements

    • Add syntax for keystrokes, e.g., <<R>>, <<Shift + C>>, <<Command>> + <<X>>.
    • Explore the “clapper” syntax for perceptible labels: ::Stop::, ::Menu::, etc.

    Content structures beyond sequences

    • Support date-based structures (e.g., blogs/news posts).
    • Support data-object collections (e.g., authors, glossary terms).
    • Clarify how these coexist with current sequence/section model.

    Transclusions, templates, light logic

    • Keep model simple/declarative; avoid Chalk feeling like a programming language.
    • Transclusions: Include content from elsewhere (e.g., pull a lesson/exercise/project into a sequence).
    • Templates: Reusable wrappers/layouts for common structures.
    • Basic logic: Minimal conditionals/toggles (e.g., include/exclude blocks by context), not full scripting.
    • Raw content store: Allow piping source through transforms before render.

    Contexts & variants

    • Mark content as targeting a specific context (e.g., Designlab-only transitions).
    • Build outputs with a context set (single or multiple contexts in one run).
    • CLI flags to set/override context.

    Configurable strings / variables

    • Define strings (e.g., course titles) in inherited metadata.
    • Simple reference syntax (maybe ALL_CAPS tokens) for in-text substitution.
    • Defaults can be overridden via CLI or per-context config.

    Content library for assembly

    • Maintain a store of lessons/exercises/projects.
    • Assemble sequences for specific cohorts or delivery modes (async+mentor, self-guided, teacher-led).
    • Pull-by-id/slug with optional per-instance overrides.

    Glossary within bounded items

    • Mark terms inside a bounded item for glossary extraction.
    • Maintain a separate glossary store (centralized) keyed by term/slug.
    • Auto-link references across content; theme support for inline gloss (popover/tooltip) and footnote-style glosses.
    • Open questions: syntax for marking terms; storage format/placement; merge/override behavior across contexts.

    Configurable indexes & overviews

    • Current: index tables for sections.
    • Explore configurable views per section: table, list-with-summaries, kanban-style board.
    • Options for filtering/sorting/grouping by metadata; define view presets in section config.
    • Consider light query/select syntax for choosing which items appear.
    title
    Theming engine (notes)