mono/packages/discourse/lib/oa/commons.js

106 lines
10 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTextLinks_ = exports.toHTML = exports.removeEmojis = exports.md_edit_wrap = exports.toMDImage = exports.getHowtoUser = exports.kb_howto_file = exports.kb_howto_folder = exports.filter_valid = exports.read_tags = exports.read_categories = exports.read_howtos = exports.getHowtos = exports.getHowtosPath = exports.getDataPath = exports.DEFAULT_USER = exports.LATEST_TEST = exports.LATEST_TRACK = exports.DEFAULT_HT_CATEGORY = void 0;
const lib_1 = require("./lib");
const path = require("path");
const read_1 = require("@plastichub/fs/read");
const fs_1 = require("@plastichub/osr-commons");
const users_1 = require("./users");
const js_beautify_1 = require("js-beautify");
const showdown_1 = require("showdown");
var escapeHtml = require('escape-html');
const pretty = require('pretty');
const TEST = false;
exports.DEFAULT_HT_CATEGORY = {
"_modified": "2022-09-18T08:51:47.196Z",
"label": "Guides",
"_id": "CrZjHORWfxEl6iDrrPIO",
"_created": "2022-09-18T08:51:47.196Z",
"_deleted": false
};
exports.LATEST_TRACK = '${OSR_ROOT}/oa-data/howtos/latest_track.json';
exports.LATEST_TEST = './latest_test.json';
exports.DEFAULT_USER = 'katharinaelleke';
const getDataPath = (_path = '') => path.resolve(path.join((0, fs_1.resolve)('${OSR_ROOT}/oa-data/howtos/'), _path));
exports.getDataPath = getDataPath;
const getHowtosPath = () => path.resolve((0, fs_1.resolve)(TEST ? exports.LATEST_TEST : exports.LATEST_TRACK));
exports.getHowtosPath = getHowtosPath;
const getHowtos = () => (0, read_1.sync)(path.resolve((0, exports.getHowtosPath)()), 'json') || [];
exports.getHowtos = getHowtos;
const read_howtos = (src) => {
const raw = (0, read_1.sync)(src, 'json');
return raw.v3_howtos;
};
exports.read_howtos = read_howtos;
const read_categories = (src) => {
const raw = (0, read_1.sync)(src, 'json');
return raw.v3_categories;
};
exports.read_categories = read_categories;
const read_tags = (src) => {
const raw = (0, read_1.sync)(src, 'json');
return raw.v3_tags;
};
exports.read_tags = read_tags;
const filter_valid = (users) => {
return users.filter((user) => {
if (user.title === 'Build a Fishing Canoe') {
//debugger
}
if (user.moderation.toLowerCase() !== 'accepted') {
return false;
}
return true;
});
};
exports.filter_valid = filter_valid;
const kb_howto_folder = (howto) => path.resolve(path.join((0, fs_1.resolve)("${KB_ROOT}/src/howtos/"), howto.slug));
exports.kb_howto_folder = kb_howto_folder;
const kb_howto_file = (howto, filename) => path.resolve(path.join((0, fs_1.resolve)("${KB_ROOT}/src/howtos/"), howto.slug, (0, lib_1.sanitize)(filename)));
exports.kb_howto_file = kb_howto_file;
const getHowtoUser = (howto) => {
const users = (0, users_1.getUsers)();
let user = users.find((u) => u._id == howto._createdBy);
if (user && user.f_id) {
return user;
}
else {
user = users.find((u) => u._id == exports.DEFAULT_USER);
if (user && user.f_id) {
console.error('using default user : ' + exports.DEFAULT_USER + ' : for' + howto.slug);
return user;
}
}
};
exports.getHowtoUser = getHowtoUser;
const toMDImage = (image) => `![](${image.data.short_url})`;
exports.toMDImage = toMDImage;
const md_edit_wrap = (content, f, prefix = '', context = '') => (0, js_beautify_1.html_beautify)(`<div prefix="${prefix}" file="${path.parse(f).base}" context="${context}" class="fragment">${content}</div>`);
exports.md_edit_wrap = md_edit_wrap;
const removeEmojis = (string) => {
return string.replace(/([#0-9]\u20E3)|[\xA9\xAE\u203C\u2047-\u2049\u2122\u2139\u3030\u303D\u3297\u3299][\uFE00-\uFEFF]?|[\u2190-\u21FF][\uFE00-\uFEFF]?|[\u2300-\u23FF][\uFE00-\uFEFF]?|[\u2460-\u24FF][\uFE00-\uFEFF]?|[\u25A0-\u25FF][\uFE00-\uFEFF]?|[\u2600-\u27BF][\uFE00-\uFEFF]?|[\u2900-\u297F][\uFE00-\uFEFF]?|[\u2B00-\u2BF0][\uFE00-\uFEFF]?|(?:\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDEFF])[\uFE00-\uFEFF]?/g, '');
};
exports.removeEmojis = removeEmojis;
const toHTML = (path, markdown) => {
const content = (0, read_1.sync)(path, 'string');
if (!markdown) {
let converter = new showdown_1.Converter({ tables: true });
converter.setOption('literalMidWordUnderscores', 'true');
return converter.makeHtml(content);
}
else {
return content;
}
};
exports.toHTML = toHTML;
const createTextLinks_ = (text) => {
return (text || "").replace(/([^\S]|^)(((https?\:\/\/)|(www\.))(\S+))/gi, function (match, space, url) {
var hyperlink = url;
if (!hyperlink.match('^https?:\/\/')) {
hyperlink = 'http://' + hyperlink;
}
return space + '<a href="' + hyperlink + '">' + url + '</a>';
});
};
exports.createTextLinks_ = createTextLinks_;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvb2EvY29tbW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3QkEsK0JBQXlDO0FBRXpDLDZCQUE0QjtBQUM1Qiw4Q0FBa0Q7QUFLbEQsdURBQXdEO0FBR3hELG1DQUFpRDtBQUVqRCw2Q0FBMkM7QUFDM0MsdUNBQW9DO0FBQ3BDLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUd4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7QUFHaEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFBO0FBRUwsUUFBQSxtQkFBbUIsR0FBRztJQUMvQixXQUFXLEVBQUUsMEJBQTBCO0lBQ3ZDLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLEtBQUssRUFBRSxzQkFBc0I7SUFDN0IsVUFBVSxFQUFFLDBCQUEwQjtJQUN0QyxVQUFVLEVBQUUsS0FBSztDQUNwQixDQUFBO0FBR1ksUUFBQSxZQUFZLEdBQUcsOENBQThDLENBQUE7QUFDN0QsUUFBQSxXQUFXLEdBQUcsb0JBQW9CLENBQUE7QUFFbEMsUUFBQSxZQUFZLEdBQUcsaUJBQWlCLENBQUE7QUFFdEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxZQUFPLEVBQUMsNkJBQTZCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQXBHLFFBQUEsV0FBVyxlQUF5RjtBQUMxRyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUEsWUFBTyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsbUJBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQVksQ0FBQyxDQUFDLENBQUE7QUFBOUUsUUFBQSxhQUFhLGlCQUFpRTtB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