npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@art-md/spec

v0.0.1

Published

The artificial language specification, written in art. Content package consumed by the parser, validator, and bundler packages.

Readme

@art-md/spec

Express structured data in Markdown with an extensible language that enables human and machine authoring at scale and automated transformations.

Art MD is a Markdown dialect for structured data and declarations. It defines a vocabulary, grammar, semantics, and set of language constructs for expressing structured information while remaining readable and editable as Markdown.

This package contains the Art MD language specification. It defines what Art MD means and how its constructs are structured; it does not contain the JavaScript implementation.

In this monorepo you can also find a Javascript implementation for parsing, validating, mutating, and serializing Art MD documents back to markdown.

Art AST

An Art MD document is represented as Art AST: a hierarchical structure derived from Markdown via mdast, with nodes classified as constructs such as sections, fields, comments, tags, and other language elements.

The Art AST provides a structured representation of the information expressed in an Art MD document while retaining the information required to serialise it back to Markdown. The ArtDocument is the document-level representation of an Art AST.

Specification

The specification describes a grammar for Art MD at four levels:

Vocabulary — the standard terms used to describe Art MD concepts, constructs, and their interpretation. Semantics — the meaning of Art MD constructs and the rules governing their interpretation. Structures — the structural model used to describe how constructs are composed and related. Constructs — the concrete language elements available to an Art MD document, organised by category.

  • Vocabulary — the standardized terms used to describe artificial language constructs and their interpretation.
  • Semantics — the meaning and interpretation rules of artificial instructions.
  • Structures — the meta-model describing grammar constructs.
  • Constructs — the concrete language constructs, grouped by category (context, expressions, inline, structural).

Constructs

ADD A TABLE With "Category | Construct | Purpose | Status"

The construct set is intentionally extensible. New constructs can extend the language without changing the underlying structural model.

Implementation

The Art MD implementation is organised around the language specification.

The constructs package defines the concrete representations and contracts for Art MD constructs. The parser maps Markdown syntax to the Art AST, while the serializer maps the Art AST back to Markdown.

The implementation uses an open construct registry, allowing new language constructs to be introduced without redesigning the parser or serializer.

See the Architecture documentation for implementation principles, package responsibilities, component design, and testing.

Work in Progress

Specification material that is still being developed, or was at some point the subject of a POC or experiment, is kept outside the package in ../spec-wip/.

This includes placeholder construct definitions, draft Art MD content, proposed primitives, structures, types, modules, resources, and routines, together with exploratory diagrams.

This material is not part of the specification package and does not represent the backlog. Future specification work is tracked separately in the roadmap parking lot.

Scripts

  • $ npm run lint — Check formatting, lint, and type check
  • $ npm run lint:fix — Fix formatting and lint issues

Copyright (c) 2026 Noodlestan.

Published under a MIT license.