61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const path_1 = __importDefault(require("path"));
|
|
const immutable_1 = __importDefault(require("immutable"));
|
|
const markdown_legacy_1 = __importDefault(require("@honkit/markdown-legacy"));
|
|
const asciidoc_1 = __importDefault(require("@honkit/asciidoc"));
|
|
const extsMarkdown_1 = __importDefault(require("./constants/extsMarkdown"));
|
|
const extsAsciidoc_1 = __importDefault(require("./constants/extsAsciidoc"));
|
|
const parser_1 = __importDefault(require("./models/parser"));
|
|
// This list is ordered by priority of parsers to use
|
|
const parsers = immutable_1.default.List([
|
|
parser_1.default.create("markdown", extsMarkdown_1.default, markdown_legacy_1.default),
|
|
parser_1.default.create("asciidoc", extsAsciidoc_1.default, asciidoc_1.default)
|
|
]);
|
|
/**
|
|
* Return a specific parser by its name
|
|
*
|
|
* @param {string} name
|
|
* @return {Parsers|undefined}
|
|
*/
|
|
function getParser(name) {
|
|
return parsers.find((parser) => {
|
|
return parser.getName() === name;
|
|
});
|
|
}
|
|
/**
|
|
* Return a specific parser according to an extension
|
|
*
|
|
* @param {string} ext
|
|
* @return {Parsers|undefined}
|
|
*/
|
|
function getParserByExt(ext) {
|
|
return parsers.find((parser) => {
|
|
return parser.matchExtension(ext);
|
|
});
|
|
}
|
|
/**
|
|
* Return parser for a file
|
|
*
|
|
* @param {string} ext
|
|
* @return {Parsers|undefined}
|
|
*/
|
|
function getParserForFile(filename) {
|
|
return getParserByExt(path_1.default.extname(filename));
|
|
}
|
|
// List all parsable extensions
|
|
const extensions = parsers
|
|
.map((parser) => {
|
|
return parser.getExtensions();
|
|
})
|
|
.flatten();
|
|
exports.default = {
|
|
extensions: extensions,
|
|
get: getParser,
|
|
getByExt: getParserByExt,
|
|
getForFile: getParserForFile
|
|
};
|