Skip to content

johackim/remark-obsidian

Repository files navigation

remark-obsidian

Version License

Remark plugin to support Obsidian markdown syntax.

Requirements

  • Nodejs >= 14

Features

  • Support > [!CALLOUT]
  • Support ==highlight text==
  • Support [[Internal link]]
  • Support [[Internal link|With custom text]]
  • Support [[Internal link#heading]]
  • Support [[Internal link#heading|With custom text]]
  • Support ![[Embed note]]
  • Support ![[Embed note#heading]]

Installation

yarn add -D remark-obsidian

Usage

With remark :

import { remark } from 'remark';
import remarkObsidian from 'remark-obsidian';

const html = String(await remark().use(remarkObsidian).process('[[Hello world]]'));
console.log(html); // <a href="/hello-world">Hello world</a>

With unified :

import { unified } from 'unified'
import remarkObsidian from 'remark-obsidian';
import remarkParse from 'remark-parse';
import remarkRehype from 'remark-rehype';
import rehypeStringify from 'rehype-stringify';

const { value } = unified()
    .use(remarkParse)
    .use(remarkObsidian)
    .use(remarkRehype, { allowDangerousHtml: true })
    .use(rehypeStringify, { allowDangerousHtml: true })
    .processSync('[[Hello world]]');

console.log(value); // <a href="/hello-world">Hello world</a>

Running the tests

npm test

License

This project is licensed under the GNU GPL v3.0 - see the LICENSE file for details

Free Software, Hell Yeah!