Skip to content

Ascribe 0.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 02:30
· 784 commits to main since this release
55bd45e

The first release. It implements version 0.1 of the Ascribe specification.

The language

  • Directives: @id, @include, @variant, @available, @note, @steps, and @details, with attributes, titles, line and container forms, groups, and binding to headings and blocks.
  • Project widgets: directives a project declares in ascribe.toml.
  • Phrases ({key}), links and includes by file path, image attributes, heading ids, and a glossary.
  • The content model, ascribe.toml: content types and frontmatter schemas, fragments, dimensions, versions, lifecycle states, features, note types, phrases, glossary, image attributes, widgets, the consumer profile, builds, and the editor's build.

The ascribe command

  • ascribe check: every diagnostic, for every build, as text or JSON.
  • ascribe build: the site output (markdown with web components, and a generated Zod schema), the plain-markdown output, and the JSON output, for each build.
  • ascribe fmt: rewrites Ascribe constructs into canonical form; --check for CI.
  • ascribe lsp: the language server.
  • 126 diagnostics, each with a code (ASC001 to ASC126) and a stable name. See docs/diagnostics.md.
  • Binaries for macOS on Apple silicon, Linux (arm64 and x64, glibc 2.39 or later), and Windows (x64). Intel Macs aren't supported. Each binary's archive and package carries a THIRD-PARTY-NOTICES file with the license text of the crates in it.

The editor

  • The VS Code extension: diagnostics as you type, completion, hover, go to definition, document links, CodeLens, inline hints for empty links, rename and move refactoring, quick fixes, formatting, semantic highlighting, and a live preview that renders pages as the site does.
  • It uses the project's own ascribe when the project installs one, and the binary bundled with it otherwise.

Astro

  • @ascribed/astro: builds the site output before Astro loads content, provides the content collection and its generated schema, applies heading ids and image attributes in Astro's markdown pipeline, loads the element library, serves linked files, and rebuilds in astro dev.
  • @ascribed/elements: the web components the site output uses (<ascribe-note>, <ascribe-tabs>, <ascribe-availability>, and the rest), styled with CSS custom properties.