# API

The Argdown repository is a "monorepo" containing a number of different npm packages in its /packages folder. All are published under the @argdown namespace and the MIT license. The two most important packages are @argdown/core and @argdown/node. Both packages have their own extensively commented API documentation. Here is a list of all packages with links to their documentations or README files.

All packages except @argdown/sandbox are written in Typescript and compiled to Javascript.

# @argdown/core

API documentation (opens new window)

Contains the Argdown parser and lexer, the basic ArgdownApplication class that manages plugins and the plugins for all central tasks, including the ParserPlugin, ModelPlugin, MapPlugin, HtmlExportPlugin, JSONExportPlugin, DotExportPlugin. This package is used in all tools using the Argdown parser.

# @argdown/node

API documentation (opens new window)

Contains the AsynArgdownApplication subclass supporting asynchronous plugin methods. Instantiates this class with all plugins and processes preconfigured and predefined so that you can use it directly without any additional setup. Provides plugins that are specific to Argdown applications that are running in Node.js and not in the browser, for example the LoadFilePlugin and the SaveAsPlugin.

# @argdown/image-export

README (opens new window)

Provides png, jpg and webp export plugin. If installed (npm install -g @argdown/image-export) will be automatically used by @argdown/cli and @argdown/pandoc-filter. This is not part of @argdown/node because of its file size and dependency on chrome/chromium, which might cause problems in some linux installations.

# @argdown/map-views

README (opens new window)

Contains the VizJs and Dagre map views used in the live previews of @argdown/sandbox and argdown-vscode.

# @argdown/web-components

README (opens new window)

Contains web-component used in the markdown-it, remark, marked, gatsby plugins and the pandoc filter. The VSCode extension uses the component in the Markdown preview. The Argdown documentation also uses the web-component for all Argdown snippets.

# @argdown/sandbox

README (opens new window)

The browser-based editor. This is a Vue-application depending on @argdown/core and @argdown/map-views.

# @argdown/language-server

README (opens new window)

An editor-agnostic language server for the Argdown language with code linter, code assistance and code completion providers. Implements the language server protocol (opens new window) and depends on @argdown/core and @argdown/node.

# @argdown/vscode

README (opens new window)

The VS Code extension, depending on @argdown/core, @argdown/node, @argdown/language-server and @argdown/map-views

# @argdown/cli

README (opens new window)

The commandline tool, depending on @argdown/node and @argdown/core.

# @argdown/pandoc-filter

README (opens new window)

Pandoc filter that allows to generate Argdown-in-Markdown pdfs and html files.

# @argdown/markdown-it-plugin

README (opens new window)

Markdown-it plugin that converts Argdown codeblocks to the web-component

# @argdown/marked-plugin

README (opens new window)

Marked plugin that converts Argdown codeblocks to the web-component

# @argdown/remark-plugin

README (opens new window)

Remark plugin that converts Argdown codeblocks to the web-component

# @argdown/gatsby-plugin

README (opens new window)

Gatsby plugin that converts Argdown codeblocks to the web-component. Uses the remark plugin.

# @argdown/highlightjs

README (opens new window)

Highlightjs syntax highlighting support for Argodwn.

# @argdown/prism

README (opens new window)

Prism.js syntax highlighting support for Argdown.

# @argdown/codemirror-mode

README (opens new window)

Simple Codemirror mode for Argdown syntax highlighting support.

# ArgVu

README (opens new window)

A font for Argdown with nice ligatures.