Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 14:22
· 54 commits to main since this release

Added

  • ntropy site -o <dir> [query] exports the vault as a static website:
    a page per note under notes/, a tag tree under tags/ with a page per
    tag, a tree per configured view under views/, and a front page (the
    note named by [site] index, or a generated overview). Every page has a
    sidebar with the current trail opened, breadcrumbs, an outline of the
    note's headings, and previous/next links. Note links point at the
    target's page; vault files the notes reference are copied under
    files/, a linked directory with its whole tree. The site works when
    opened from disk. An optional query restricts the exported notes,
    --force empties a non-empty output directory, -p prints the front
    page's path, and --strict fails on export warnings.
  • ntropy site theme init <name> copies the built-in site theme into
    .ntropy/themes/site/<name>/ as the starting point for a custom one.
  • A note's site frontmatter table shapes the site's navigation: order
    places the note among its group's entries, label names it in the
    sidebar and the pager, hidden keeps it out of the sidebar, the lists,
    and the pager while its page stays exported and searchable, and index
    makes it the landing note of its groups, whose pages then show the
    note in place of the listing (listing: true keeps the listing
    below it) and take the note's label and order. Group
    entries read in order: ordered ones first, then notes newest first,
    then groups by label; previous and next follow that reading order
    across group boundaries.
  • The agent skill covers the website export: a site row and an
    html-aware render row, golden rules for the reserved site
    frontmatter key and for naming notes by ULID in the site config, a
    publish workflow, and two references, site.md (command, warnings,
    [site] and the nav table, the site frontmatter keys, the standalone
    page) and site-themes.md (layout, tokens, fonts, icons, markup). A test
    pins the theme reference's names to the built-in theme.
  • The search palette's note results show their icon: the built-in theme
    was missing the file-text icon the palette uses.
  • ntropy render --to html writes the site's page for one note as
    <stem>.html plus <stem>_files/ beside it, holding the theme, the
    fonts, the page script, the grammars the page needs, and the images
    and files the note references, so highlighting, the scheme switch,
    the outline, the type, and the images all work as on the site. The
    page has no sidebar, search, breadcrumbs, pager, or related notes.
  • [site] root roots the sidebar at a tag or view group page
    (tags/docs, views/by-status/open), and an export whose query is a
    single tag: predicate is rooted at that tag; [[site.nav]] tables
    assemble the sidebar by hand from notes, tag subtrees, views and their
    groups, the whole tag tree, and labelled groups of items, and are then
    the whole sidebar. Breadcrumbs follow the sidebar. [site] related = false drops the related notes from the note pages, and a note's
    site.related overrides that for its own page.
  • Exported pages carry a scheme switch (system, light, dark) that
    remembers the choice in the browser, an outline that follows the
    reader's position, and code blocks highlighted by Shiki in the browser
    for 72 languages; a page loads only the grammars its code blocks need,
    and a fence language without a grammar is reported as an export
    warning.
  • The exported site's look: Fraunces for titles, Literata for note
    bodies, DM Sans for the chrome, DM Mono for dates and counts, all
    shipped with the site; warm paper with amber-brown ink in light mode,
    warm black with gold in dark mode; Lucide icons in the chrome, on
    tags, and in callouts.
    Note lists are one row per note with the date, the title, and the
    tags as links. The sidebar keeps view sections collapsed away from
    their pages and lists the top-level tags with counts; on narrow
    screens it is a drawer. A note page links its tags to their pages,
    ends with the notes sharing the most tags with it, and drops a leading
    heading that repeats its title. A view over the tags field is
    skipped, since the tag section already is that view. / opens the
    search, Escape closes it.
  • A site theme's layout: style.css, icons/*.svg, fonts/, and any
    other file, copied under assets/. The icons become a sprite every
    page inlines; a vault theme's icons replace or add to the built-in
    ones by file name. site theme init writes the complete built-in
    theme, fonts and icons included.
  • Exported sites search in the browser, in a palette over the page that
    the header's button, /, or Ctrl+K opens. A word matches titles,
    tags, frontmatter values, and text; two words need both; tag:,
    field:, and text: narrow, tag: and field: partially, text:
    as the same regex as in the CLI; and, or, not, and parentheses
    combine. Results come grouped, tag and view pages before notes, with
    the matches marked and a line of context per note; the arrow keys and
    Enter open one. The search data is one script under assets/, loaded
    the first time the palette opens.
  • render --to html writes a note as one self-contained web page: the
    site theme's stylesheet inlined, the title, tags, and remaining
    frontmatter as a header, the converted body with heading anchors, and
    note links pointing at <slug>.html beside the artifact. No external
    tool is involved.
  • Site themes. A directory <vault>/.ntropy/themes/site/<name>/ holding a
    style.css is a theme; [site] theme in the vault config selects it
    and --theme overrides it for the html format. A built-in theme with
    light and dark palettes ships in the binary.
  • A [site] table in the vault config: theme, index, title, and
    lang, all optional.

Changed

  • render refuses an existing artifact of any format, and for html a
    non-empty <stem>_files/ directory, unless --force replaces them;
    it used to overwrite the artifact in place. A script that re-renders
    into the same path needs the flag.
  • Typst themes live in <vault>/.ntropy/themes/typst/, one subdirectory
    per theme type under themes/. A theme still at
    .ntropy/themes/<name>.typ fails the render with a message naming both
    the old and the new path; move the file to themes/typst/ once.