@awesome-fe/translate
Version:
Translation utils
57 lines • 2.7 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.HtmlExtractor = void 0;
var extractor_1 = require("./extractor");
var dom_models_1 = require("../dom/parse5/dom-models");
var common_1 = require("../dom/common");
var markdown_1 = require("../dom/unified/markdown");
var HtmlExtractor = /** @class */ (function (_super) {
__extends(HtmlExtractor, _super);
function HtmlExtractor() {
return _super !== null && _super.apply(this, arguments) || this;
}
HtmlExtractor.prototype.extractSentencePairsFromContent = function (html) {
if (!html) {
return [];
}
var doc = dom_models_1.DomDocument.parse(html);
clearAiraHidden(doc);
var resultElements = doc.querySelectorAll(function (it) { var _a; return ((_a = it.previousElementSibling) === null || _a === void 0 ? void 0 : _a.hasAttribute('translation-result')) && it.hasAttribute('translation-origin'); });
var results = [];
resultElements.forEach(function (origin) {
var result = origin.previousElementSibling;
if (!(0, common_1.containsChinese)(origin.textContent)) {
origin.removeAttribute('translation-origin');
result.removeAttribute('translation-result');
results.push({
english: markdown_1.markdown.mdFromHtml(origin.innerHTML),
chinese: markdown_1.markdown.mdFromHtml(result.innerHTML),
format: 'markdown',
});
}
});
return results;
};
return HtmlExtractor;
}(extractor_1.AbstractExtractor));
exports.HtmlExtractor = HtmlExtractor;
function clearAiraHidden(body) {
var hiddens = body.querySelectorAll(function (it) { return it.hasAttribute('aria-hidden'); });
hiddens.forEach(function (element) { return element.remove(); });
}
//# sourceMappingURL=html-extractor.js.map