UNPKG

@mdfriday/foundry

Version:

The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.

87 lines 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseBytes = parseBytes; exports.posFromInput = posFromInput; const log_1 = require("../../../../pkg/log"); const pageparser_1 = require("../../../../pkg/md/parser/pageparser"); // Create a domain-specific logger for markdown operations const log = (0, log_1.getDomainLogger)('markdown', { component: 'pageparser' }); /** * Parse bytes into items */ function parseBytes(input, config = {}) { const [items, err] = (0, pageparser_1.ParseBytes)(input, config); if (err) { log.error('Error parsing bytes:', err); throw err; // Re-throw the error for upstream handling } return items; } /** * Create position from input and offset */ function posFromInput(filename, input, offset) { const inputBytes = typeof input === 'string' ? stringToBytes(input) : input; if (offset < 0) { return { filename, line: 1, column: 1, offset: 0, }; } let lineNumber = 1; let columnNumber = 1; for (let i = 0; i < Math.min(offset, inputBytes.length); i++) { if (inputBytes[i] === 10) { // '\n' lineNumber++; columnNumber = 1; } else { columnNumber++; } } return { filename, line: lineNumber, column: columnNumber, offset, }; } /** * Find index of pattern in array */ function findIndex(array, pattern) { if (pattern.length === 0) { return 0; } if (pattern.length > array.length) { return -1; } for (let i = 0; i <= array.length - pattern.length; i++) { let found = true; for (let j = 0; j < pattern.length; j++) { if (array[i + j] !== pattern[j]) { found = false; break; } } if (found) { return i; } } return -1; } /** * Convert string to bytes */ function stringToBytes(str) { return new TextEncoder().encode(str); } /** * Convert bytes to string */ function bytesToString(bytes) { return new TextDecoder().decode(bytes); } //# sourceMappingURL=pageparser.js.map