Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

@nousdev/parser-adoc

AsciiDoc parser that converts .adoc files into the Nous Document Model using Asciidoctor.js.

Installation

npm install @nousdev/parser-adoc

Usage

import { createAsciidocParser } from '@nousdev/parser-adoc';

const parser = createAsciidocParser();

const doc = await parser.parse(
  `= Getting Started
:author: Jane Doe

== Installation

Install via npm.`,
  { filePath: 'getting-started.adoc', format: 'adoc' },
);

Lower-level conversion

import { adocToNDM, parseInlineText, slugify } from '@nousdev/parser-adoc';

// Convert an Asciidoctor document AST to NDM nodes
const ndmNodes = adocToNDM(asciidoctorDoc);

// Parse AsciiDoc inline markup into NDM inline nodes
const inlines = parseInlineText('Some *bold* and _italic_ text');

// Generate a slug from heading text
const slug = slugify('Getting Started');

API

  • createAsciidocParser(options?) -- returns a NousParser for .adoc and .asciidoc files; document attributes (:title:, :description:, :author:) are extracted as frontmatter
  • adocToNDM(doc) -- convert an Asciidoctor document AST into NDM block nodes
  • parseInlineText(text) -- parse AsciiDoc inline formatting (bold, italic, code, links) into NDM inline nodes
  • slugify(text) -- convert heading text to a URL-safe identifier

Parser capabilities

  • Document attributes and metadata extraction
  • Section hierarchy with automatic ID generation
  • Admonition blocks (NOTE, TIP, WARNING, CAUTION, IMPORTANT)
  • Source code blocks with language annotation
  • Tables, lists, and block quotes
  • Cross-references and anchors

Built on Asciidoctor.js.

License

MIT