remark-caml

0.0.6-rm • Public • Published

remark-caml

A WikiBonsai Project NPM package

Plugin for remark to support CAML attributes. Relies on micromark-extension-caml for tokenization and mdast-util-caml for converting markdown to/from abstract syntax trees.

Note that this extension only parses the input -- it is up to you to track and store attribute metadata.

🕸 Weave a semantic web in your 🎋 WikiBonsai digital garden.

Install

This package is ESM only. Install remark-caml on npm.

npm install remark-caml

Usage

const unified = require('unified')
const markdown = require('remark-parse')
const { remarkCaml } = require('remark-caml');

let processor = unified()
    .use(markdown)
    .use(remarkCaml, {})

Running the processor on the following markdown:

:attrtype::value

Will produce the following attrbox-data node:

{
  "type": "attrbox-data",
  "data": {
    "items": {
      "attrtype": [
        {
          "type": "string",
          "value": "string",
          "string": "string",
        }
      ],
    },
  }
}

Which in turn will generate the following attrbox node:

{
  "type": "attrbox",
  "data": {
    "items": {
      "attrtype": [
        {
          "type": "string",
          "value": "string",
          "string": "string",
        },
      ],
    },
    "hName": "aside",
    "hProperties": {
      "className": ["attrbox"],
    },
  },
  "children": [
    {
      "type": "attrbox-title",
      "data": {
        "hName": "span",
        "hProperties": {
          "className": ["attrbox-title"],
        },
      }
    },
    {
      "type": "attrbox-list",
      "children": [{
          "type": "attr-key",
          "data": {
            "hName": "dt"
          },
          "children": [{
            "type": "text",
            "value": "attrtype",
          }],
        },
        {
          "type": "attr-val",
          "data": {
            "hName": "dd"
          },
          "children": [{
            "type": "text",
            "value": "value",
          }],
        },
      ],
      "data": {
        "hName": "dl"
      },
    },
  ],
}

Options Descriptions

attrs

These are options wikiattrs-specific options.

attrs.enable

A boolean property that toggles parsing and rendering wikiattrs on/off.

attrs.render

A boolean property that toggles rendering wikiattrs on/off. This is useful in the scenario where wikiattrs are used for metadata and not for display purposes; like a yaml-stand-in.

attrs.title

A string to be rendered in the wikiattrs' attrbox.

cssNames

CSS classnames may be overridden here.

cssNames.attr

Classname for wikiattrs. Default is attr.

cssNames.wiki

Classname for valid wikiattrs. Default is wiki.

cssNames.invalid

Classname for invalid wikiattrs. Default is invalid.

cssNames.attrbox

Classname for the wikiattr attrbox. Default is attrbox.

cssNames.attrboxTitle

Classname for the wikiattr attrbox title. Default is attrbox-title.

Package Sidebar

Install

npm i remark-caml

Weekly Downloads

3

Version

0.0.6-rm

License

GPL-3.0

Unpacked Size

12 kB

Total Files

8

Last publish

Collaborators

  • manunamz