docsify
Version:
A magical documentation generator.
34 lines (26 loc) • 826 B
JavaScript
import * as dom from '../dom'
import { get } from '../../fetch/ajax'
function replaceVar (block, color) {
block.innerHTML = block.innerHTML
.replace(/var\(\s*--theme-color.*?\)/g, color)
}
export default function (color) {
// Variable support
if (window.CSS &&
window.CSS.supports &&
window.CSS.supports('(--v:red)')) return
const styleBlocks = dom.findAll('style:not(.inserted),link')
;[].forEach.call(styleBlocks, block => {
if (block.nodeName === 'STYLE') {
replaceVar(block, color)
} else if (block.nodeName === 'LINK') {
const href = block.getAttribute('href')
if (!/\.css$/.test(href)) return
get(href).then(res => {
const style = dom.create('style', res)
dom.head.appendChild(style)
replaceVar(style, color)
})
}
})
}