Add embed method in markdown plugin (#263)
This commit is contained in:
@@ -82,11 +82,17 @@
|
||||
catch (error) {
|
||||
console.debug(error)
|
||||
}
|
||||
//Embed method
|
||||
const embed = async(q, name = Math.random().toString().substring(2)) => {
|
||||
q = Object.fromEntries([...Object.entries(q).map(([key, value]) => [key.replace(/^plugin_/, "").replace(/_/g, "."), value]), ["base", false], ["config.animations", false]])
|
||||
const {rendered} = await metrics({login, q}, {...arguments[1], convert:null}, arguments[2])
|
||||
return `<img class="metrics-cachable" data-name="${name}" src="data:image/svg+xml;base64,${Buffer.from(rendered).toString("base64")}">`
|
||||
}
|
||||
//Rendering template source
|
||||
let rendered = source.replace(/\{\{ (?<content>[\s\S]*?) \}\}/g, "{%= $<content> %}")
|
||||
console.debug(rendered)
|
||||
for (const delimiters of [{openDelimiter:"<", closeDelimiter:">"}, {openDelimiter:"{", closeDelimiter:"}"}])
|
||||
rendered = await ejs.render(rendered, {...data, s:imports.s, f:imports.format}, {views, async:true, ...delimiters})
|
||||
rendered = await ejs.render(rendered, {...data, s:imports.s, f:imports.format, embed}, {views, async:true, ...delimiters})
|
||||
console.debug(`metrics/compute/${login} > success`)
|
||||
return {rendered, mime:"text/plain"}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user