@launchmenu/applet-dictionary
Version:
An applet to find dictionary definitions
56 lines • 4.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDefinitions = void 0;
const WitkionaryPage_1 = require("../WitkionaryPage");
const getListItems_1 = require("./getListItems");
/**
* Retrieves the definitions from a definition html node
* @param node The node to get the definitions from
* @param wiktionary The wiktionary instance to use for synonyms
* @returns The definitions
*/
function getDefinitions(node, wiki) {
var _a;
const text = (_a = [...node.childNodes].find(node => node instanceof HTMLParagraphElement)) !== null && _a !== void 0 ? _a : document.createElement("p");
const definitions = getListItems_1.getListItems(node, element => {
// Get the definition text
let text = element.querySelector(".use-with-mention");
if (!text) {
const nodes = [];
for (let child of element.children) {
if (child.tagName == "dl")
break;
nodes.push(child);
}
text = document.createElement("span");
text.append(...nodes);
}
// Get the synonyms
const synonymsNode = element.querySelector(".synonyms");
const synonyms = synonymsNode &&
getListItems_1.getListItems(synonymsNode, synonym => {
const link = synonym.querySelector("a");
if (!link)
return;
return {
word: link.textContent,
url: link.href,
getPage: () => { var _a; return new WitkionaryPage_1.WiktionaryPage(wiki, (_a = link.textContent) !== null && _a !== void 0 ? _a : ""); },
};
}).filter((item) => !!item);
// Get usage examples
const examples = [...element.querySelectorAll(".h-usage-example")];
// Return the definition
return {
text,
synonyms: synonyms !== null && synonyms !== void 0 ? synonyms : [],
examples,
};
});
return {
text,
uses: definitions,
};
}
exports.getDefinitions = getDefinitions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2lrdGlvbmFyeS91dGlsL2dldERlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUFpRDtBQUlqRCxpREFBNEM7QUFFNUM7Ozs7O0dBS0c7QUFDSCxTQUFnQixjQUFjLENBQUMsSUFBVyxFQUFFLElBQWdCOztJQUN4RCxNQUFNLElBQUksU0FDTCxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksb0JBQW9CLENBQ3RCLG1DQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUQsTUFBTSxXQUFXLEdBQUcsMkJBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDN0MsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsTUFBTSxLQUFLLEdBQWdCLEVBQUUsQ0FBQztZQUM5QixLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJO29CQUFFLE1BQU07Z0JBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckI7WUFDRCxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFFRCxtQkFBbUI7UUFDbkIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQWdCLENBQUM7UUFDdkUsTUFBTSxRQUFRLEdBQ1YsWUFBWTtZQUNaLDJCQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBc0IsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLElBQUk7b0JBQUUsT0FBTztnQkFDbEIsT0FBTztvQkFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQ3RCLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQUMsT0FBQSxJQUFJLCtCQUFjLENBQUMsSUFBSSxRQUFFLElBQUksQ0FBQyxXQUFXLG1DQUFJLEVBQUUsQ0FBQyxDQUFBLEVBQUE7aUJBQ2xFLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MscUJBQXFCO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRW5FLHdCQUF3QjtRQUN4QixPQUFPO1lBQ0gsSUFBSTtZQUNKLFFBQVEsRUFBRSxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxFQUFFO1lBQ3hCLFFBQVE7U0FDWCxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0gsSUFBSTtRQUNKLElBQUksRUFBRSxXQUFXO0tBQ3BCLENBQUM7QUFDTixDQUFDO0FBaERELHdDQWdEQyJ9