JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 10
  • Score
    100M100P100Q13383F
  • License GPL-3.0

A remark plugin for caml (semantic) attributes in markdown.

Package Exports

  • remark-caml
  • remark-caml/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (remark-caml) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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.