add external-script plugin

This commit is contained in:
Leopoldthecoder
2017-03-06 23:57:28 +08:00
parent 723a6040f2
commit 1aa6636ba8
6 changed files with 72 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
const scriptReg = /<script[^>]*src=["|'](.*)["|']>[^\w]*<\/script>/
const asyncReg = /<script[^>]*\s+async/
const deferReg = /<script[^>]*\s+defer/
function handleExternalScript (html) {
const scriptMatch = html.match(scriptReg)
if (scriptMatch && scriptMatch.length > 1) {
const script = document.createElement('script')
script.src = scriptMatch[1]
if (asyncReg.test(scriptMatch[0])) script.setAttribute('async', '')
if (deferReg.test(scriptMatch[0])) script.setAttribute('defer', '')
const target = document.querySelector('#main')
target.appendChild(script)
}
}
const install = function (hook) {
hook.afterEach(handleExternalScript)
}
window.$docsify.plugins = [].concat(install, window.$docsify.plugins)