[Doc] optimize document site (#1013)

This commit is contained in:
neverland
2018-05-08 08:27:52 +08:00
committed by GitHub
parent 883fb78f21
commit 072dc24656
8 changed files with 51 additions and 85 deletions
+44 -20
View File
@@ -3,31 +3,28 @@
*/
import Vue from 'vue';
import i18n from 'packages/mixins/i18n';
import { Locale, Toast, Dialog } from 'packages';
import { DemoBlock, DemoSection } from 'vant-doc';
import { camelize } from 'packages/utils';
import progress from 'nprogress';
import i18n from '../../packages/mixins/i18n';
import Vant, { Lazyload } from '../../packages';
import VantDoc, { DemoBlock, DemoSection } from 'vant-doc';
import VueRouter from 'vue-router';
import { Locale, Toast, Dialog } from '../../packages';
import { camelize } from '../../packages/utils';
const demoBaseMixin = {
beforeCreate() {
const { name, i18n } = this.$options;
if (name && i18n) {
const formattedI18n = {};
const camelizedName = camelize(name);
Object.keys(i18n).forEach(key => {
formattedI18n[key] = { [camelizedName]: i18n[key] };
});
Locale.add(formattedI18n);
}
}
};
Vue
.use(Vant)
.use(VantDoc)
.use(VueRouter)
.use(Lazyload, {
lazyComponent: true
});
Vue.component('demo-block', DemoBlock);
Vue.component('demo-section', DemoSection);
window.Toast = Toast;
window.Dialog = Dialog;
Vue.mixin(i18n);
Vue.mixin(demoBaseMixin);
Vue.component('demo-block', DemoBlock);
Vue.component('demo-section', DemoSection);
Locale.add({
'zh-CN': {
@@ -85,3 +82,30 @@ Locale.add({
passwordPlaceholder: 'Password'
}
});
export function asyncWrapper(component) {
return function(r) {
progress.start();
component(r).then(() => {
progress.done();
}).catch(() => {
progress.done();
});
};
}
export function componentWrapper(component, name) {
component = component.default;
name = 'demo-' + name;
component.name = name;
const { i18n } = component;
if (i18n) {
const formattedI18n = {};
const camelizedName = camelize(name);
Object.keys(i18n).forEach(key => {
formattedI18n[key] = { [camelizedName]: i18n[key] };
});
Locale.add(formattedI18n);
}
return component;
}