UNPKG

munar-plugin-triggers

Version:

Munar plugin for sharing reaction GIFs.

91 lines (75 loc) 2.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderTriggers = renderTriggers; var _nanohtml = _interopRequireDefault(require("nanohtml")); var _uWaveParseChatMarkup = _interopRequireDefault(require("u-wave-parse-chat-markup")); var _nodeEmoji = _interopRequireDefault(require("node-emoji")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function Markup(text) { return compile((0, _uWaveParseChatMarkup.default)(text)); function compile(node) { if (typeof node === 'string') return node; if (Array.isArray(node)) return node.map(compile); switch (node.type) { case 'mention': return `@${node.user || node.group}`; case 'link': return _nanohtml.default`<a class="link dim light-pink" href=${node.href}>${node.text}</a>`; case 'emoji': return _nodeEmoji.default.get(node.name) || `:${node.name}:`; case 'italic': return _nanohtml.default`<i>${compile(node.content)}</i>`; case 'bold': return _nanohtml.default`<b>${compile(node.content)}</b>`; case 'strike': return _nanohtml.default`<s>${compile(node.content)}</s>`; case 'code': return _nanohtml.default`<span class="code">${compile(node.content)}</span>`; return compile(node.content); } } } function TriggerRow({ trigger, triggerCharacter }) { return _nanohtml.default` <tr class="stripe-dark"> <td class="pv2 ph3 trigger code"> ${triggerCharacter}${trigger._id} </td> <td class="pv2 ph3 response"> ${Markup(trigger.response)} </td> </tr> `; } function renderTriggers({ triggerCharacter, triggers }) { return _nanohtml.default` <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://unpkg.com/tachyons@4.6.1/css/tachyons.min.css"> </head> <body class="bg-dark-gray near-white mh5 mv3"> <table class="collapse" style="margin: auto"> <thead><tr> <th class="pv2 ph3 ttu">Trigger</th> <th class="pv2 ph3 ttu">Response</th> </tr></thead> <tbody> ${triggers.map(trigger => TriggerRow({ trigger, triggerCharacter }))} </tbody> </table> </body> </html> `.toString(); }