@awesome-fe/translate
Version:
Translation utils
174 lines • 6.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.adoc = void 0;
const core_1 = require("@asciidoctor/core");
var adoc;
(function (adoc) {
const doc = (0, core_1.default)();
function isParagraph(node) {
return node?.getNodeName() === 'paragraph';
}
adoc.isParagraph = isParagraph;
function isSection(node) {
return node?.getNodeName() === 'section';
}
adoc.isSection = isSection;
function isFloatingTitle(node) {
return node?.getNodeName() === 'floating_title';
}
adoc.isFloatingTitle = isFloatingTitle;
function isDocument(node) {
return node?.getNodeName() === 'document' || node.getNodeName() === 'embedded';
}
adoc.isDocument = isDocument;
function isAbstractBlock(node) {
return node.isBlock();
}
adoc.isAbstractBlock = isAbstractBlock;
function isInline(node) {
return node.isInline();
}
adoc.isInline = isInline;
function isIndexTerm(node) {
return node?.getNodeName() === 'inline_indexterm';
}
adoc.isIndexTerm = isIndexTerm;
function isList(node) {
return node?.getNodeName() === 'ulist' || node.getNodeName() === 'olist';
}
adoc.isList = isList;
function isDescriptionList(node) {
return node?.getNodeName() === 'dlist';
}
adoc.isDescriptionList = isDescriptionList;
function isListItem(node) {
return node?.getNodeName() === 'list_item';
}
adoc.isListItem = isListItem;
function setSubstitutionMode(doc, mode) {
const consts = doc.Substitutors.$$const;
const result = { ...consts };
consts.BASIC_SUBS = mode.BASIC_SUBS;
consts.HEADER_SUBS = mode.HEADER_SUBS;
consts.NORMAL_SUBS = mode.NORMAL_SUBS;
consts.REFTEXT_SUBS = mode.REFTEXT_SUBS;
consts.VERBATIM_SUBS = mode.VERBATIM_SUBS;
return result;
}
adoc.setSubstitutionMode = setSubstitutionMode;
function setSubstitutionsForAdoc(doc) {
setSubstitutionMode(doc, {
BASIC_SUBS: [],
HEADER_SUBS: [],
NORMAL_SUBS: [],
REFTEXT_SUBS: [],
VERBATIM_SUBS: ['callouts'],
});
}
adoc.setSubstitutionsForAdoc = setSubstitutionsForAdoc;
function setSubstitutionsForDefaultHtml(doc) {
setSubstitutionMode(doc, {
BASIC_SUBS: ['specialcharacters'],
HEADER_SUBS: ['specialcharacters', 'attributes'],
NORMAL_SUBS: ['specialcharacters', 'quotes', 'attributes', 'replacements', 'macros', 'post_replacements'],
REFTEXT_SUBS: ['specialcharacters', 'quotes', 'replacements'],
VERBATIM_SUBS: ['specialcharacters', 'callouts'],
});
}
adoc.setSubstitutionsForDefaultHtml = setSubstitutionsForDefaultHtml;
function setSubstitutionsForTranslatableHtml(doc) {
setSubstitutionMode(doc, {
BASIC_SUBS: ['specialcharacters'],
HEADER_SUBS: ['specialcharacters', 'attributes'],
NORMAL_SUBS: ['specialcharacters', 'quotes', 'attributes', 'macros'],
REFTEXT_SUBS: ['specialcharacters', 'quotes'],
VERBATIM_SUBS: ['specialcharacters', 'callouts'],
});
}
adoc.setSubstitutionsForTranslatableHtml = setSubstitutionsForTranslatableHtml;
function isBlockImage(node) {
return node?.getNodeName() === 'image';
}
adoc.isBlockImage = isBlockImage;
function isBlockResource(node) {
return node?.getNodeName() === 'video' || node.getNodeName() === 'audio';
}
adoc.isBlockResource = isBlockResource;
function isAdmonition(node) {
return node?.getNodeName() === 'admonition';
}
adoc.isAdmonition = isAdmonition;
function isExample(node) {
return node?.getNodeName() === 'example';
}
adoc.isExample = isExample;
function isQuote(node) {
return node?.getNodeName() === 'quote';
}
adoc.isQuote = isQuote;
function isTable(node) {
return node?.getNodeName() === 'table';
}
adoc.isTable = isTable;
function isSidebar(node) {
return node?.getNodeName() === 'sidebar';
}
adoc.isSidebar = isSidebar;
function isVerse(node) {
return node?.getNodeName() === 'verse';
}
adoc.isVerse = isVerse;
function isListing(node) {
return node?.getNodeName() === 'listing';
}
adoc.isListing = isListing;
function hasLines(node) {
return 'lines' in node;
}
adoc.hasLines = hasLines;
function escapeDirectives(content) {
return content
.replace(/^\[(.*)indent=("?)(\d+)("?)(.*)]$/gm, '[$1rawIndent=$2$3$4$5]')
.replace(/^((?:ifdef|ifndef|ifeval|endif)::\[.*])$/gm, '`begin-directive:[$1]end-directive`')
.replace(/^(include::.*?])$/gm, '`begin-directive:[$1]end-directive`')
.replace(/^(\/\/ *(?:tag|end)::.*?])$/gm, '`begin-directive:[$1]end-directive`');
}
adoc.escapeDirectives = escapeDirectives;
function unescapeDirectives(content) {
return content
.replace(/^\[(.*)rawIndent=("?)(\d+)("?)(.*)]$/gm, '[$1indent=$2$3$4$5]')
.replace(/^`begin-directive:\[(.*?)]end-directive`$/gm, '$1')
.replace(/^Unresolved directive in .* - (.*)$/gm, '$1');
}
adoc.unescapeDirectives = unescapeDirectives;
function createBlock(parent, context) {
return doc.Block.create(parent, context);
}
adoc.createBlock = createBlock;
function createInline(parent, context) {
return doc.Inline.create(parent, context);
}
adoc.createInline = createInline;
function createNode(parent, context) {
if (context === 'document' || context === 'embedded' || !context) {
return parent;
}
if (context.startsWith('inline_')) {
return createInline(parent, context);
}
else {
const child = createBlock(parent, context);
if (!adoc.isDocument(child)) {
parent.append(child);
}
return child;
}
}
adoc.createNode = createNode;
function removeNode(node) {
const siblings = node.getParent().getBlocks();
siblings.splice(siblings.indexOf(node), 1);
}
adoc.removeNode = removeNode;
})(adoc = exports.adoc || (exports.adoc = {}));
//# sourceMappingURL=adoc.js.map