mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
feat(cli): set title by lang
This commit is contained in:
parent
cf172f5cbc
commit
396002495f
@ -10,18 +10,18 @@ window.syncPath = function () {
|
||||
const currentDir = router.history.current.path;
|
||||
|
||||
if (isInIframe) {
|
||||
window.top.changePath(currentDir);
|
||||
window.top.replacePath(currentDir);
|
||||
} else if (!isMobile) {
|
||||
const iframe = document.querySelector('iframe');
|
||||
if (iframe) {
|
||||
iframeReady(iframe, () => {
|
||||
iframe.contentWindow.changePath(currentDir);
|
||||
iframe.contentWindow.replacePath(currentDir);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.changePath = function (path = '') {
|
||||
window.replacePath = function (path = '') {
|
||||
// should preserve hash for anchor
|
||||
if (window.vueRouter.currentRoute.path !== path) {
|
||||
window.vueRouter.replace(path).catch(() => {});
|
||||
|
@ -1,7 +1,7 @@
|
||||
function iframeReady(iframe, callback) {
|
||||
const doc = iframe.contentDocument || iframe.contentWindow.document;
|
||||
const interval = () => {
|
||||
if (iframe.contentWindow.changePath) {
|
||||
if (iframe.contentWindow.replacePath) {
|
||||
callback();
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
|
@ -65,6 +65,23 @@ export default {
|
||||
watch: {
|
||||
lang(val) {
|
||||
setLang(val);
|
||||
this.setTitle();
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
this.setTitle();
|
||||
},
|
||||
|
||||
methods: {
|
||||
setTitle() {
|
||||
let { title } = this.config;
|
||||
|
||||
if (this.config.description) {
|
||||
title += ` - ${this.config.description}`;
|
||||
}
|
||||
|
||||
document.title = title;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -9,8 +9,7 @@ export default {
|
||||
name: 'van-doc-simulator',
|
||||
|
||||
props: {
|
||||
src: String,
|
||||
lang: String
|
||||
src: String
|
||||
},
|
||||
|
||||
data() {
|
||||
@ -33,12 +32,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
lang(val) {
|
||||
location.hash = `#${location.hash.replace(this.lang, val)}`;
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
window.addEventListener('scroll', () => {
|
||||
this.scrollTop = window.scrollY;
|
||||
|
@ -13,7 +13,7 @@
|
||||
<slot />
|
||||
</doc-content>
|
||||
</doc-container>
|
||||
<doc-simulator v-if="simulator" :src="simulator" :lang="lang" />
|
||||
<doc-simulator v-if="simulator" :src="simulator" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -31,6 +31,17 @@ function parseName(name) {
|
||||
};
|
||||
}
|
||||
|
||||
function getLangFromRoute(route) {
|
||||
const lang = route.path.split('/')[1];
|
||||
const langs = Object.keys(locales);
|
||||
|
||||
if (langs.indexOf(lang) !== -1) {
|
||||
return lang;
|
||||
}
|
||||
|
||||
return getLang();
|
||||
}
|
||||
|
||||
function getRoutes() {
|
||||
const routes = [];
|
||||
const names = Object.keys(documents);
|
||||
@ -38,7 +49,7 @@ function getRoutes() {
|
||||
if (locales) {
|
||||
routes.push({
|
||||
path: '*',
|
||||
redirect: `/${getLang()}/`
|
||||
redirect: route => `/${getLangFromRoute(route)}/`
|
||||
});
|
||||
} else {
|
||||
routes.push({
|
||||
|
@ -10,6 +10,17 @@ const { locales, defaultLang } = config.site;
|
||||
|
||||
setDefaultLang(defaultLang);
|
||||
|
||||
function getLangFromRoute(route) {
|
||||
const lang = route.path.split('/')[1];
|
||||
const langs = Object.keys(locales);
|
||||
|
||||
if (langs.indexOf(lang) !== -1) {
|
||||
return lang;
|
||||
}
|
||||
|
||||
return getLang();
|
||||
}
|
||||
|
||||
function getRoutes() {
|
||||
const routes = [];
|
||||
const names = Object.keys(demos);
|
||||
@ -18,7 +29,7 @@ function getRoutes() {
|
||||
if (langs.length) {
|
||||
routes.push({
|
||||
path: '*',
|
||||
redirect: () => `/${getLang()}/`
|
||||
redirect: route => `/${getLangFromRoute(route)}/`
|
||||
});
|
||||
|
||||
langs.forEach(lang => {
|
||||
|
@ -1,11 +1,10 @@
|
||||
import glob from 'fast-glob';
|
||||
import { join, parse } from 'path';
|
||||
import { existsSync } from 'fs-extra';
|
||||
import { existsSync, readdirSync } from 'fs-extra';
|
||||
import {
|
||||
pascalize,
|
||||
removeExt,
|
||||
getVantConfig,
|
||||
getComponents,
|
||||
smartOutputFile
|
||||
} from '../common';
|
||||
import {
|
||||
@ -96,8 +95,8 @@ function genExportConfig() {
|
||||
}
|
||||
|
||||
export function genSiteDesktopShared() {
|
||||
const components = getComponents();
|
||||
const documents = resolveDocuments(components);
|
||||
const dirs = readdirSync(SRC_DIR);
|
||||
const documents = resolveDocuments(dirs);
|
||||
|
||||
const code = `${genImportConfig()}
|
||||
${genImportDocuments(documents)}
|
||||
|
@ -1,12 +1,11 @@
|
||||
import { join } from 'path';
|
||||
import { existsSync } from 'fs-extra';
|
||||
import { existsSync, readdirSync } from 'fs-extra';
|
||||
import { SRC_DIR, SITE_MODILE_SHARED_FILE } from '../common/constant';
|
||||
import {
|
||||
pascalize,
|
||||
removeExt,
|
||||
decamelize,
|
||||
getVantConfig,
|
||||
getComponents,
|
||||
smartOutputFile
|
||||
} from '../common';
|
||||
|
||||
@ -90,8 +89,8 @@ ${genConfig(demos)}
|
||||
}
|
||||
|
||||
export function genSiteMobileShared() {
|
||||
const components = getComponents();
|
||||
const code = genCode(components);
|
||||
const dirs = readdirSync(SRC_DIR);
|
||||
const code = genCode(dirs);
|
||||
|
||||
smartOutputFile(SITE_MODILE_SHARED_FILE, code);
|
||||
}
|
||||
|
@ -9,8 +9,28 @@ import {
|
||||
SITE_DESKTOP_SHARED_FILE
|
||||
} from '../common/constant';
|
||||
|
||||
const siteConfig = getVantConfig().site;
|
||||
const title = `${siteConfig.title} - ${siteConfig.description}`;
|
||||
function getSiteConfig() {
|
||||
const siteConfig = getVantConfig().site;
|
||||
|
||||
if (siteConfig.locales) {
|
||||
return siteConfig.locales[siteConfig.defaultLang || 'en-US'];
|
||||
}
|
||||
|
||||
return siteConfig;
|
||||
}
|
||||
|
||||
function getTitle(config: { title: string, description?: string }) {
|
||||
let { title } = config;
|
||||
|
||||
if (config.description) {
|
||||
title += ` - ${config.description}`;
|
||||
}
|
||||
|
||||
return title;
|
||||
}
|
||||
|
||||
const siteConfig = getSiteConfig();
|
||||
const title = getTitle(siteConfig);
|
||||
|
||||
export const siteDevBaseConfig = merge(baseConfig as any, {
|
||||
entry: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user