diff --git a/CHANGELOG.md b/CHANGELOG.md
index 08b3bc4..1991e5d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 1.8.0
+### Bug fixes
+- Using `v-pre` skip compilation.
+
+### Features
+- Execute script when vue exists.
+
## 1.7.4
### Bug fixes
- Fix bugs caused by the previous version
diff --git a/docs/_coverpage.md b/docs/_coverpage.md
index 8287100..c7543c1 100644
--- a/docs/_coverpage.md
+++ b/docs/_coverpage.md
@@ -1,6 +1,6 @@

-# docsify 1.7.4
+# docsify 1.7.5
> A magical documentation site generator.
diff --git a/src/index.js b/src/index.js
index 9b445d6..b90e33b 100644
--- a/src/index.js
+++ b/src/index.js
@@ -76,11 +76,10 @@ const mainRender = function (cb) {
if (OPTIONS.coverpage && page !== OPTIONS.homepage) render.renderCover()
// render sidebar
if (OPTIONS.loadSidebar) {
- load(basePath + OPTIONS.loadSidebar)
- .then(result => {
- render.renderSidebar(result)
- cb()
- })
+ const renderSidebar = result => { render.renderSidebar(result); cb() }
+
+ load(basePath + OPTIONS.loadSidebar).then(renderSidebar,
+ load(OPTIONS.loadSidebar).then(renderSidebar))
} else {
cb()
}
@@ -88,7 +87,8 @@ const mainRender = function (cb) {
// Render navbar
if (OPTIONS.loadNavbar) {
- load(basePath + OPTIONS.loadNavbar).then(render.renderNavbar)
+ load(basePath + OPTIONS.loadNavbar).then(render.renderNavbar,
+ () => load(OPTIONS.loadNavbar).then(render.renderNavbar))
}
}
diff --git a/src/render.js b/src/render.js
index 8f784fd..7014aaf 100644
--- a/src/render.js
+++ b/src/render.js
@@ -98,9 +98,14 @@ export function renderArticle (content) {
renderTo('article', content ? markdown(content) : 'not found')
if (!OPTIONS.sidebar && !OPTIONS.loadSidebar) renderSidebar()
- if (content && typeof Vue !== 'undefined' && typeof Vuep !== 'undefined') {
- const vm = new Vue({ el: 'main' }) // eslint-disable-line
- vm.$nextTick(_ => event.scrollActiveSidebar())
+ if (content && typeof Vue !== 'undefined') {
+ const script = content.match('')
+ script && document.body.querySelector('article script').remove()
+
+ const vm = script
+ ? new Function(`return ${script[1].trim()}`)()
+ : new Vue({ el: 'main' }) // eslint-disable-line
+ vm && vm.$nextTick(_ => event.scrollActiveSidebar())
}
if (OPTIONS.auto2top) setTimeout(() => event.scroll2Top(OPTIONS.auto2top), 0)
}