mirror of
https://github.com/amix/vimrc
synced 2025-07-21 03:44:59 +08:00
Add markdown preview, update rust.vim
This commit is contained in:
34
sources_non_forked/markdown-preview.nvim/app/pages/chart.js
Normal file
34
sources_non_forked/markdown-preview.nvim/app/pages/chart.js
Normal file
@ -0,0 +1,34 @@
|
||||
import Chart from 'chart.js'
|
||||
|
||||
function render () {
|
||||
document.querySelectorAll('.chartjs').forEach(element => {
|
||||
try {
|
||||
// eslint-disable-next-line no-new
|
||||
new Chart(element, JSON.parse(element.textContent))
|
||||
} catch (e) {
|
||||
element.outerHTML = `<pre>Chart.js complains: "${e}"</pre>`
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const chartPlugin = (md) => {
|
||||
const temp = md.renderer.rules.fence.bind(md.renderer.rules)
|
||||
md.renderer.rules.fence = (tokens, idx, options, env, slf) => {
|
||||
const token = tokens[idx]
|
||||
if (token.info && token.info.trim() === 'chart') {
|
||||
const code = token.content.trim()
|
||||
try {
|
||||
const json = JSON.parse(code)
|
||||
return `<canvas class="chartjs">${JSON.stringify(json)}</canvas>`
|
||||
} catch (e) { // JSON.parse exception
|
||||
return `<pre>${e}</pre>`
|
||||
}
|
||||
}
|
||||
return temp(tokens, idx, options, env, slf)
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
render,
|
||||
chartPlugin
|
||||
}
|
Reference in New Issue
Block a user