legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
47 lines • 1.81 kB
TypeScript
/**
* Number Formatting Utilities
*
* Shared utilities for converting numbers to various formats (Roman numerals,
* alphabetic labels), used by both header processing and cross-reference processing.
*/
/**
* Converts a number to Roman numeral
*
* Generates Roman numerals for header numbering using standard Roman numeral
* conversion rules. Supports both uppercase and lowercase formats.
*
* @param {number} num - Number to convert (must be positive)
* @param {boolean} [lowercase=false] - Whether to return lowercase roman numerals
* @returns {string} Roman numeral string
* @example
* ```typescript
* console.log(getRomanNumeral(1)); // 'I'
* console.log(getRomanNumeral(4)); // 'IV'
* console.log(getRomanNumeral(9)); // 'IX'
* console.log(getRomanNumeral(10)); // 'X'
* console.log(getRomanNumeral(49)); // 'XLIX'
* console.log(getRomanNumeral(1994)); // 'MCMXCIV'
* console.log(getRomanNumeral(5, true)); // 'v'
* ```
*/
export declare function getRomanNumeral(num: number, lowercase?: boolean): string;
/**
* Converts a number to alphabetic label (a, b, c, ... z, aa, ab, ...)
*
* Generates alphabetic labels for header numbering using a base-26 system.
* Supports extended sequences beyond 'z' using double letters (aa, ab, etc.).
*
* @param {number} num - Number to convert (1-based)
* @returns {string} Alphabetic label in lowercase
* @example
* ```typescript
* console.log(getAlphaLabel(1)); // 'a'
* console.log(getAlphaLabel(26)); // 'z'
* console.log(getAlphaLabel(27)); // 'aa'
* console.log(getAlphaLabel(28)); // 'ab'
* console.log(getAlphaLabel(52)); // 'az'
* console.log(getAlphaLabel(53)); // 'ba'
* ```
*/
export declare function getAlphaLabel(num: number): string;
//# sourceMappingURL=number-utilities.d.ts.map