@awesome-fe/translate
Version:
Translation utils
65 lines • 2.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SentenceFormatter = void 0;
const dom_models_1 = require("../dom/parse5/dom-models");
const markdown_1 = require("../dom/unified/markdown");
const adoc_to_tiny_html_1 = require("../dom/asciidoctor/html-adoc/adoc-to-tiny-html");
const tiny_html_to_adoc_1 = require("../dom/asciidoctor/html-adoc/tiny-html-to-adoc");
class SentenceFormatter {
static toHtml(sentence, format) {
switch (format) {
case 'html':
return sentence;
case 'plain':
const doc = dom_models_1.DomDocumentFragment.parse('');
doc.textContent = sentence;
return doc.toHtml();
case 'markdown':
return markdown_1.markdown.mdToHtml(sentence);
case 'asciidoctor':
return (0, adoc_to_tiny_html_1.adocToTinyHtml)(sentence);
}
}
static toMarkdown(sentence, format) {
switch (format) {
case 'html':
return markdown_1.markdown.mdFromHtml(sentence);
case 'plain':
return markdown_1.markdown.mdFromHtml(SentenceFormatter.toHtml(sentence, format));
case 'markdown':
return sentence;
case 'asciidoctor':
return markdown_1.markdown.mdFromHtml((0, adoc_to_tiny_html_1.adocToTinyHtml)(sentence));
}
}
static fromHtml(sentence, format) {
switch (format) {
case 'html':
return sentence;
case 'plain':
const doc = dom_models_1.DomDocumentFragment.parse(sentence);
return doc.textContent;
case 'markdown':
return markdown_1.markdown.mdFromHtml(sentence);
case 'asciidoctor':
return (0, tiny_html_to_adoc_1.tinyHtmlToAdoc)(sentence);
}
}
static fromMarkdown(sentence, format) {
switch (format) {
case 'html':
return markdown_1.markdown.toHtml(sentence);
case 'plain':
return SentenceFormatter.toPlain(sentence, format);
case 'markdown':
return sentence;
case 'asciidoctor':
return (0, tiny_html_to_adoc_1.tinyHtmlToAdoc)(markdown_1.markdown.mdFromHtml(sentence));
}
}
static toPlain(sentence, format) {
return this.fromHtml(this.toHtml(sentence, format), 'plain').trim();
}
}
exports.SentenceFormatter = SentenceFormatter;
//# sourceMappingURL=sentence-formatter.js.map