UNPKG

md2poui

Version:

Conversor de arquivos markdown para páginas Angular com suporte ao PO-UI

1 lines 3.2 kB
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,a){void 0===a&&(a=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,a,i)}:function(e,t,r,a){void 0===a&&(a=r),e[a]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PoRenderer=void 0;const marked_1=require("marked"),path=__importStar(require("path")),sanitize_html_1=__importDefault(require("sanitize-html")),uuid_1=require("uuid");class PoRenderer extends marked_1.Renderer{data={title:void 0,files:[]};code(e,t){return`<pre><code class="${this.options.highlightClassName} ${t}">${this.escapeCode(e)}</code></pre>`}codespan(e){return`<code>${this.escapeCodespan(e)}</code>`}heading(e,t){return 1!==t||this.data.title?`<h${t}>${e}</h${t}>`:(this.data.title=e,"")}html(e){if(!this.options.copyExternalFiles)return e;const t=/src=\"([^']*?)\"/g.exec(e);return t&&t.length>0?(t.slice(1).filter(((e,t,r)=>r.indexOf(e)===t)).filter((e=>e.indexOf("http")<0)).forEach((t=>e=e.replace(new RegExp(t,"g"),`${this.options.resourcePathName}/${this.addFile(t)}`))),this.adjustResourceHtml(e)):e}list(e,t,r){return t?`<ol class="po-font-text" start="${r}">${e}</ol>`:`<ul class="po-font-text">${e}</ul>`}image(e,t,r){let a=e;return this.options.copyExternalFiles&&e.indexOf("http")<0&&(a=this.addFile(e),a=`${this.options.resourcePathName}/${a}`),this.adjustResourceHtml(`<img src="${a}" alt="${r}" />`)}link(e,t,r){return e.indexOf("http")<0&&e.indexOf(".md")>=0?`<a routerLink="../${path.dirname(e).split("/").pop()}">${r}</a>`:`<a href="${e}" target="_blank" rel="noopener noreferrer">${r}</a>`}paragraph(e){return`<p class="po-font-text">${e}</p>`}getTitle(){return this.data.title}getFiles(){return this.data.files||[]}escapeCode(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/{/g,"&#123;").replace(/}/g,"&#125;")}escapeCodespan(e){return e.replace(/{/g,"&#123;").replace(/}/g,"&#125;")}addFile(e){const t=(0,uuid_1.v1)()+path.extname(e);return this.data.files=this.data.files||[],this.data.files.push({from:e,to:t}),t}adjustTitleToFragment(e){return(0,sanitize_html_1.default)(e,{allowedTags:[]}).replace(/\,\s/g,",").replace(/\s\(/g,"(").replace(/\s\)/g,")").replace(/(\(\))/g,"").replace(/ {1,}/g," ").replace(/\s[^a-zA-Z0-9]/g,"").replace(/[\\\/\.\,\s\(]/g,"-").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z0-9-]/g,"").toLowerCase()}adjustResourceHtml(e){return`<span style="display: flex; overflow: auto; text-align: center; justify-content: center;">${e}</span>`}}exports.PoRenderer=PoRenderer;