0.2.0 • Published 11 months ago

remark-stringify-nscode v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

remark-stringify-nscode

remark plugin to add support for serializing markdown into NSCode.

Contents

What is this?

This package is a unified (remark) plugin that defines how to take a syntax tree as input and turn it into serialized NSCode.

Install

In Node.js:

npm install remark-stringify-nscode

In Deno:

import remarkStringifyNSCode from "https://esm.sh/remark-stringify-nscode@latest";

In browsers:

<script type="module">
  import remarkStringifyNSCode from "https://esm.sh/remark-stringify-nscode@latest?bundle";
</script>

Use

import { unified } from "unified";
import remarkParse from "remark-parse";
import remarkStringifyNSCode from "remark-stringify-nscode";

const file = unified()
  .use(remarkParse)
  .use(remarkStringifyNSCode)
  .processSync("**Hello, world!**");

console.log(String(file));

// Output:
// [b]Hello, world![/b]

API

This package exports the identifiers all and allChildren. The default export is remarkStringifyNSCode.

unified().use(remarkStringifyNSCode[, options])

Serializes markdown into NSCode.

options

Configuration (optional).

options.handlers

Custom handlers for serializing markdown. Expects an object with mdast node types as keys, and functions that take a node of that type and return a string as values.

all(nodes[, options])

Serializes a list of nodes into NSCode.

nodes

The array of nodes to serialize.

options

Configuration (optional). Expects an objects with the keys before, after, and separator and string values that respectively indicate the strings to insert before, after, and between the nodes.

allChildren(node[, options])

Serializes the children of the given node into NSCode.

node

The node whose children are to be serialized.

options

Configuration (optional). Expects an objects with the keys before, after, and separator and string values that respectively indicate the strings to insert before, after, and between the child nodes.

Syntax

At present, CommonMark syntax is supported with the exception of headings and inline code, which do not have a clear equivalent in NSCode.

Syntax tree

The syntax tree format used in remark is mdast.

Types

This package is fully typed with TypeScript.

Contribute

Pull requests are welcome! Please also feel free to file an issue for bug reports or feature requests.

License

MIT © Pronoun