[Build] revert site to webpack config (#3747)
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
<template>
|
||||
<div class="app">
|
||||
<van-doc
|
||||
:base="base"
|
||||
:config="config"
|
||||
:lang="$vantLang"
|
||||
:github="github"
|
||||
:versions="versions"
|
||||
:simulators="simulators"
|
||||
:search-config="searchConfig"
|
||||
:current-simulator="currentSimulator"
|
||||
@switch-version="onSwitchVersion"
|
||||
>
|
||||
<router-view @changeDemoURL="onChangeDemoURL" />
|
||||
</van-doc>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import pkgJson from '../../../package.json';
|
||||
import docConfig, { github, versions, searchConfig } from '../doc.config';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
this.github = github;
|
||||
this.versions = versions;
|
||||
this.searchConfig = searchConfig;
|
||||
|
||||
return {
|
||||
simulators: [`mobile.html${location.hash}`],
|
||||
demoURL: ''
|
||||
};
|
||||
},
|
||||
|
||||
computed: {
|
||||
base() {
|
||||
return `/${this.$vantLang}`;
|
||||
},
|
||||
|
||||
config() {
|
||||
return docConfig[this.$vantLang];
|
||||
},
|
||||
|
||||
currentSimulator() {
|
||||
const { name } = this.$route;
|
||||
return name && name.indexOf('demo') !== -1 ? 1 : 0;
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.showVersionTip();
|
||||
},
|
||||
|
||||
methods: {
|
||||
showVersionTip() {
|
||||
const tip = window.localStorage.getItem('vantVersionTip');
|
||||
|
||||
if (!tip && this.$vantLang === 'zh-CN') {
|
||||
const version = document.querySelector('.van-doc-header__version');
|
||||
version.insertAdjacentHTML('beforeend', `
|
||||
<div class="doc-version-tip">
|
||||
提示:你当前访问的是 Vant 2.0 版本文档,点此切换至旧版文档
|
||||
<div style="text-align: right;">
|
||||
<button class="doc-version-tip__button">好哒</button>
|
||||
</div>
|
||||
</div>
|
||||
`);
|
||||
|
||||
const tip = document.querySelector('.doc-version-tip');
|
||||
const removeTip = event => {
|
||||
event.stopPropagation();
|
||||
tip.parentNode.removeChild(tip);
|
||||
};
|
||||
|
||||
tip.addEventListener('click', removeTip);
|
||||
version.addEventListener('click', removeTip);
|
||||
|
||||
window.localStorage.setItem('vantVersionTip', 1);
|
||||
}
|
||||
},
|
||||
|
||||
onChangeDemoURL(url) {
|
||||
this.simulators = [this.simulators[0], url];
|
||||
},
|
||||
|
||||
onSwitchVersion(version) {
|
||||
if (version !== pkgJson.version) {
|
||||
location.href = `https://youzan.github.io/vant/${version}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.van-doc-intro {
|
||||
padding-top: 20px;
|
||||
font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
|
||||
text-align: center;
|
||||
|
||||
p {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.doc-version-tip {
|
||||
position: absolute;
|
||||
top: 35px;
|
||||
left: 50%;
|
||||
z-index: 100;
|
||||
box-sizing: border-box;
|
||||
width: 300px;
|
||||
margin-left: -150px;
|
||||
padding: 15px;
|
||||
color: #333;
|
||||
text-align: left;
|
||||
background-color: #fff;
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 4px 12px #ebedf0;
|
||||
transform-origin: top;
|
||||
cursor: default;
|
||||
animation: version-tip .25s cubic-bezier(0.175, 0.885, 0.32, 1.375);
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
left: 50%;
|
||||
margin-left: -3px;
|
||||
border: 6px solid;
|
||||
border-color: transparent transparent white white;
|
||||
transform: rotate(135deg);
|
||||
content: '';
|
||||
}
|
||||
|
||||
&__button {
|
||||
width: 60px;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
line-height: 24px;
|
||||
background: #1889f9;
|
||||
border: none;
|
||||
border-radius: 15px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background: darken(#1889f9, 10%);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes version-tip {
|
||||
from {
|
||||
transform: scaleY(0);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
transform: scaleY(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover">
|
||||
<meta http-Equiv="Cache-Control" Content="no-cache" />
|
||||
<meta http-Equiv="Pragma" Content="no-cache" />
|
||||
<meta http-Equiv="Expires" Content="0" />
|
||||
<link rel="shortcut icon" href="https://img.yzcdn.cn/zanui/vant/vant-2017-12-18.ico">
|
||||
<link href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" rel="stylesheet" />
|
||||
<title>Vant - 轻量、可靠的移动端 Vue 组件库</title>
|
||||
<script>window.Promise || document.write('<script src="//img.yzcdn.cn/huiyi/build/h5/js/pinkie.min.js"><\/script>');</script>
|
||||
</head>
|
||||
<body ontouchstart>
|
||||
|
||||
<div id="app"></div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,41 @@
|
||||
import Vue from 'vue';
|
||||
import VueRouter from 'vue-router';
|
||||
import VantDoc from '@vant/doc';
|
||||
import App from './App';
|
||||
import routes from '../router';
|
||||
import { isMobile, importAll } from '../utils';
|
||||
|
||||
if (isMobile) {
|
||||
location.replace('mobile.html' + location.hash);
|
||||
}
|
||||
|
||||
Vue.use(VueRouter).use(VantDoc);
|
||||
|
||||
const docs = {};
|
||||
const docsFromMarkdown = require.context('../../markdown', false, /(en-US|zh-CN)\.md$/);
|
||||
const docsFromPackages = require.context('../../../src', true, /README(\.zh-CN)?\.md$/);
|
||||
|
||||
importAll(docs, docsFromMarkdown);
|
||||
importAll(docs, docsFromPackages);
|
||||
|
||||
const router = new VueRouter({
|
||||
mode: 'hash',
|
||||
routes: routes({ componentMap: docs })
|
||||
});
|
||||
|
||||
router.afterEach(() => {
|
||||
window.scrollTo(0, 0);
|
||||
Vue.nextTick(() => window.syncPath());
|
||||
});
|
||||
|
||||
window.vueRouter = router;
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
Vue.config.productionTip = false;
|
||||
}
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
render: h => h(App),
|
||||
router
|
||||
});
|
||||
Reference in New Issue
Block a user