legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
64 lines • 2 kB
TypeScript
/**
* Remark Plugin for Legal Header Processing
*
* This plugin processes legal headers and numbering in markdown documents using
* the remark AST. It provides automatic numbering, formatting, and section
* management for legal document structure.
*
* Features:
* - Automatic header numbering (l., ll., lll., etc.)
* - Section references and cross-referencing
* - Customizable numbering formats
* - Reset and continuation options
* - Indentation management
*
* @example
* ```typescript
* import { unified } from 'unified';
* import remarkParse from 'remark-parse';
* import remarkStringify from 'remark-stringify';
* import { remarkHeaders } from './headers';
*
* const processor = unified()
* .use(remarkParse)
* .use(remarkHeaders, {
* metadata: { 'level-one': 'l', 'level-two': 'll' },
* noReset: false,
* noIndent: false
* })
* .use(remarkStringify);
* ```
*
* @module
*/
import { Plugin } from 'unified';
import { Root } from 'mdast';
/**
* Options for the remark headers plugin
* @interface RemarkHeadersOptions
*/
export interface RemarkHeadersOptions {
/** Document metadata containing header configurations */
metadata: Record<string, any>;
/** Disable automatic numbering reset */
noReset?: boolean;
/** Disable automatic indentation */
noIndent?: boolean;
/** Custom header patterns */
headerPatterns?: Record<string, string>;
/** Enable debug logging */
debug?: boolean;
}
/**
* Remark plugin for processing legal headers
*
* This plugin transforms markdown headers into properly numbered legal headers
* according to legal document conventions. It supports multiple numbering
* formats and can maintain state across the document.
*
* @param options - Configuration options for header processing
* @returns Remark plugin transformer function
*/
export declare const remarkHeaders: Plugin<[RemarkHeadersOptions], Root>;
export default remarkHeaders;
//# sourceMappingURL=headers.d.ts.map