import dateFnsFormat from 'date-fns/format'; export default class CrowiTemplate { constructor(crowi) { this.templatePattern = { year: this.getYear, month: this.getMonth, date: this.getDate, user: this.getUser, }; } process(markdown) { // see: https://regex101.com/r/WR6IvX/3 return markdown.replace(/:::\s*(\S+)[\r\n]((.|[\r\n])*?)[\r\n]:::/gm, (all, group1, group2) => { const lang = group1; let code = group2; if (!lang.match(/^template/)) { return all; } const templateId = new Date().getTime().toString(16) + Math.floor(1000 * Math.random()).toString(16); let pageName = lang; if (lang.match(':')) { pageName = this.parseTemplateString(lang.split(':')[1]); } code = this.parseTemplateString(code); return ( /* eslint-disable quotes */ `
${code}\n`
+ `