UNPKG

3.2 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", {
3 value: true
4});
5function _export(target, all) {
6 for(var name in all)Object.defineProperty(target, name, {
7 enumerable: true,
8 get: all[name]
9 });
10}
11_export(exports, {
12 render: function() {
13 return render;
14 },
15 default: function() {
16 return _default;
17 }
18});
19var _core = /*#__PURE__*/ _interopRequireDefault(require("@bbob/core"));
20var _pluginHelper = require("@bbob/plugin-helper");
21function _extends() {
22 _extends = Object.assign || function(target) {
23 for(var i = 1; i < arguments.length; i++){
24 var source = arguments[i];
25 for(var key in source){
26 if (Object.prototype.hasOwnProperty.call(source, key)) {
27 target[key] = source[key];
28 }
29 }
30 }
31 return target;
32 };
33 return _extends.apply(this, arguments);
34}
35function _interopRequireDefault(obj) {
36 return obj && obj.__esModule ? obj : {
37 default: obj
38 };
39}
40var _typeof = function(obj) {
41 "@swc/helpers - typeof";
42 return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
43};
44var SELFCLOSE_END_TAG = "/>";
45var CLOSE_START_TAG = "</";
46var START_TAG = "<";
47var END_TAG = ">";
48var renderNode = function(node, param) {
49 var _param_stripTags = param.stripTags, stripTags = _param_stripTags === void 0 ? false : _param_stripTags;
50 if (!node) return "";
51 var type = typeof node === "undefined" ? "undefined" : _typeof(node);
52 if (type === "string" || type === "number") {
53 return node;
54 }
55 if (type === "object") {
56 if (stripTags === true) {
57 // eslint-disable-next-line no-use-before-define
58 return renderNodes(node.content, {
59 stripTags: stripTags
60 });
61 }
62 if (node.content === null) {
63 return [
64 START_TAG,
65 node.tag,
66 (0, _pluginHelper.attrsToString)(node.attrs),
67 SELFCLOSE_END_TAG
68 ].join("");
69 }
70 // eslint-disable-next-line no-use-before-define
71 return [
72 START_TAG,
73 node.tag,
74 (0, _pluginHelper.attrsToString)(node.attrs),
75 END_TAG,
76 renderNodes(node.content),
77 CLOSE_START_TAG,
78 node.tag,
79 END_TAG
80 ].join("");
81 }
82 if (Array.isArray(node)) {
83 // eslint-disable-next-line no-use-before-define
84 return renderNodes(node, {
85 stripTags: stripTags
86 });
87 }
88 return "";
89};
90var renderNodes = function(nodes, param) {
91 var _ref = param === void 0 ? {} : param, _ref_stripTags = _ref.stripTags, stripTags = _ref_stripTags === void 0 ? false : _ref_stripTags;
92 return [].concat(nodes).reduce(function(r, node) {
93 return r + renderNode(node, {
94 stripTags: stripTags
95 });
96 }, "");
97};
98var toHTML = function(source, plugins, options) {
99 return (0, _core.default)(plugins).process(source, _extends({}, options, {
100 render: renderNodes
101 })).html;
102};
103var render = renderNodes;
104var _default = toHTML;