@launchmenu/core
Version:
An environment for visual keyboard controlled applets
70 lines • 6.81 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReactMarkdown = exports.IReactMarkdown = void 0;
const react_1 = __importDefault(require("react"));
const constGetter_1 = require("./constGetter");
const remark_math_1 = __importDefault(require("remark-math"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const react_2 = require("@emotion/react");
const { InlineMath, BlockMath } = require("react-katex"); // No ts available, and too lazy to make declarations
// Simply reexport all of react markdown, since it will be useful for many applets
// And allows us to augment things by wrapping the main component and adding plugins
const react_markdown_1 = __importStar(require("react-markdown"));
/** Re export the namespace */
var IReactMarkdown;
(function (IReactMarkdown) {
IReactMarkdown.renderers = react_markdown_1.renderers;
IReactMarkdown.types = react_markdown_1.types;
})(IReactMarkdown = exports.IReactMarkdown || (exports.IReactMarkdown = {}));
const mathRenderer = ({ value }) => react_1.default.createElement(BlockMath, { children: value });
const inlineMathRenderer = ({ value }) => (react_1.default.createElement(InlineMath, { children: value }));
const autoFitImageRenderer = ({ alt, src, title }) => (react_1.default.createElement("img", { alt: alt, src: src, title: title, style: { maxWidth: "100%" } }));
/**
* A slightly augmented markdown renderer component
*/
const ReactMarkdown = ({ autoFitImages = true, allowLatex = true, renderers, plugins = [], children, ...props }) => {
const markdown = (react_1.default.createElement(react_markdown_1.default, Object.assign({}, props, { children: children instanceof Array ? children.join("") : children, plugins: [...(allowLatex ? [remark_math_1.default] : []), ...plugins], renderers: {
...(autoFitImages && { image: autoFitImageRenderer }),
...(allowLatex && { math: mathRenderer, inlineMath: inlineMathRenderer }),
...renderers,
} })));
if (allowLatex) {
return (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(react_2.Global, { styles: react_2.css(katexCss()) }),
markdown));
}
return markdown;
};
exports.ReactMarkdown = ReactMarkdown;
/** A retriever for the latex css */
const katexCss = constGetter_1.constGetter(() => {
// Css is expected to be added using a linker such as webpack, so we will have to manually fix some stuff
const cssPath = require.resolve("katex/dist/katex.min.css");
const css = fs_1.default.readFileSync(cssPath, "utf8");
const cssCorrectedFontPaths = css.replace(/url\(([^\)]*)\)/g, (match, path) => `url("${path_1.default.join(cssPath, "..", path).replace(/\\/g, "/")}")`);
return cssCorrectedFontPaths;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVhY3RNYXJrZG93bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9SZWFjdE1hcmtkb3duLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLCtDQUEwQztBQUMxQyw4REFBMkM7QUFDM0MsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QiwwQ0FBMkM7QUFDM0MsTUFBTSxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxxREFBcUQ7QUFFN0csa0ZBQWtGO0FBQ2xGLG9GQUFvRjtBQUNwRixpRUFvQndCO0FBR3hCLDhCQUE4QjtBQUM5QixJQUFpQixjQUFjLENBb0I5QjtBQXBCRCxXQUFpQixjQUFjO0lBa0JkLHdCQUFTLEdBQUcsMEJBQVcsQ0FBQztJQUN4QixvQkFBSyxHQUFHLHNCQUFPLENBQUM7QUFDakMsQ0FBQyxFQXBCZ0IsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFvQjlCO0FBRUQsTUFBTSxZQUFZLEdBQXlCLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsOEJBQUMsU0FBUyxJQUFDLFFBQVEsRUFBRSxLQUFLLEdBQUksQ0FBQztBQUN2RixNQUFNLGtCQUFrQixHQUF5QixDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQzFELDhCQUFDLFVBQVUsSUFBQyxRQUFRLEVBQUUsS0FBSyxHQUFJLENBQ2xDLENBQUM7QUFDRixNQUFNLG9CQUFvQixHQUlyQixDQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FDeEIsdUNBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxHQUFJLENBQ3ZFLENBQUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sYUFBYSxHQU90QixDQUFDLEVBQUMsYUFBYSxHQUFHLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBQyxHQUFHLEtBQUssRUFBQyxFQUFFLEVBQUU7SUFDMUYsTUFBTSxRQUFRLEdBQUcsQ0FDYiw4QkFBQyx3QkFBZSxvQkFDUixLQUFLLElBQ1QsUUFBUSxFQUFFLFFBQVEsWUFBWSxLQUFLLENBQUEsQ0FBQyxDQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFBLFFBQVEsRUFDOUQsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUNoRSxTQUFTLEVBQUU7WUFDUCxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFDLENBQUM7WUFDbkQsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFDLENBQUM7WUFDdkUsR0FBRyxTQUFTO1NBQ2YsSUFDSCxDQUNMLENBQUM7SUFFRixJQUFJLFVBQVUsRUFBRTtRQUNaLE9BQU8sQ0FDSDtZQUNJLDhCQUFDLGNBQU0sSUFBQyxNQUFNLEVBQUUsV0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUk7WUFDbEMsUUFBUSxDQUNWLENBQ04sQ0FBQztLQUNMO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBOUJXLFFBQUEsYUFBYSxpQkE4QnhCO0FBRUYsb0NBQW9DO0FBQ3BDLE1BQU0sUUFBUSxHQUFHLHlCQUFXLENBQUMsR0FBRyxFQUFFO0lBQzlCLHlHQUF5RztJQUN6RyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDNUQsTUFBTSxHQUFHLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUNyQyxrQkFBa0IsRUFDbEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQ2xGLENBQUM7SUFDRixPQUFPLHFCQUFxQixDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDIn0=
;