UNPKG

@gmod-workshop/steamdown

Version:
234 lines (223 loc) 7.11 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name); var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x + '" is not supported'); }); var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __commonJS = (cb, mod) => function __require2() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it); // src/Renderer.ts import { marked } from "marked"; var Renderer; var init_Renderer = __esm({ "src/Renderer.ts"() { "use strict"; Renderer = class extends marked.Renderer { space() { return ""; } code({ text }) { return `[code] ${text} [/code] `; } blockquote({ tokens }) { return `[quote] ${this.parser.parse(tokens).trim()} [/quote] `; } html(token) { return token.text; } heading({ tokens, depth }) { return `[h${depth}]${this.parser.parseInline(tokens)}[/h${depth}] `; } hr() { return "[hr][/hr]\n\n"; } list({ ordered, items }) { if (ordered) { return `[olist] ${items.map((i) => `${this.listitem(i)}`).join("\n")} [/olist] `; } return `[list] ${items.map((i) => `${this.listitem(i)}`).join("\n")} [/list] `; } listitem({ tokens, task, checked, loose }) { let body = ""; if (task) { const checkbox = this.checkbox({ checked }); body += `${checkbox} `; } body += this.parser.parse(tokens, loose); return ` [*] ${body}`; } checkbox({ checked }) { return checked ? "\u2705" : "\u2B1C"; } paragraph({ tokens }) { const text = this.parser.parseInline(tokens).replace(/\n{2,}/g, ""); return `${text} `; } table({ header, rows }) { let body = ""; let cell = ""; cell += header.map((i) => `${this.tablecell(i)}`).join("\n"); body += this.tablerow({ text: cell }); cell = ""; for (const row of rows) { cell += row.map((i) => `${this.tablecell(i)}`).join("\n"); body += this.tablerow({ text: cell }); cell = ""; } return `[table] ${body}[/table] `; } tablerow({ text }) { return ` [tr] ${text} [/tr] `; } tablecell({ tokens, header }) { if (header) { return ` [th]${this.parser.parseInline(tokens)}[/th]`; } return ` [td]${this.parser.parseInline(tokens)}[/td]`; } strong({ tokens }) { return `[b]${this.parser.parseInline(tokens)}[/b]`; } em({ tokens }) { return `[i]${this.parser.parseInline(tokens)}[/i]`; } codespan({ text }) { return `'${text}'`; } br() { return "\n"; } del({ tokens }) { return `[strike]${this.parser.parseInline(tokens)}[/strike]`; } link({ href, tokens }) { return `[url=${href}]${this.parser.parseInline(tokens)}[/url]`; } image({ href }) { return `[img]${href}[/img]`; } text(token) { return token.text; } }; } }); // src/Converter.ts import { Marked } from "marked"; var Converter; var init_Converter = __esm({ "src/Converter.ts"() { "use strict"; init_Renderer(); Converter = class { constructor(options = {}) { var _a, _b; this.marked = (_a = options.marked) != null ? _a : new Marked(); this.renderer = (_b = options.renderer) != null ? _b : new Renderer(); } /** * Converts Markdown to Steam BBCode. * @param markdown Markdown to convert. */ convert(markdown) { return __async(this, null, function* () { return yield this.marked.parse(markdown, { renderer: this.renderer, async: true }); }); } }; } }); export { __spreadValues, __require, __esm, __commonJS, __toESM, __async, __forAwait, Renderer, init_Renderer, Converter, init_Converter };