UNPKG

hackmd-to-html-cli

Version:

A node.js CLI tool for converting HackMD markdown to HTML.

65 lines 2.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PlantUML = void 0; const deflate_js_1 = __importDefault(require("deflate-js")); class PlantUML { encode6bit(b) { if (b < 10) { return String.fromCharCode(48 + b); } b -= 10; if (b < 26) { return String.fromCharCode(65 + b); } b -= 26; if (b < 26) { return String.fromCharCode(97 + b); } b -= 26; if (b == 0) { return '-'; } if (b == 1) { return '_'; } return '?'; } append3bytes(b1, b2, b3) { const c1 = b1 >> 2; const c2 = ((b1 & 0x3) << 4) | (b2 >> 4); const c3 = ((b2 & 0xF) << 2) | (b3 >> 6); const c4 = b3 & 0x3F; let r = ""; r += this.encode6bit(c1 & 0x3F); r += this.encode6bit(c2 & 0x3F); r += this.encode6bit(c3 & 0x3F); r += this.encode6bit(c4 & 0x3F); return r; } encode64(data) { let r = ''; for (let i = 0; i < data.length; i += 3) { if (i + 2 == data.length) { r += this.append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), 0); } else if (i + 1 == data.length) { r += this.append3bytes(data.charCodeAt(i), 0, 0); } else { r += this.append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), data.charCodeAt(i + 2)); } } return r; } generateURL(value) { const encoded = new TextEncoder().encode(value); const compressedCharArray = deflate_js_1.default.deflate(encoded, 9); const compressed = String.fromCharCode.apply(null, Array.from(compressedCharArray)); return this.encode64(compressed); } } exports.PlantUML = PlantUML; //# sourceMappingURL=plantUML.js.map