feat(src): add alias feature

This commit is contained in:
qingwei.li 2017-02-11 10:17:05 +08:00
commit 24412cdaf0
5 changed files with 34 additions and 7 deletions

View file

@ -47,10 +47,11 @@ let cacheRoute = null
let cacheXhr = null
const mainRender = function (cb) {
const route = OPTIONS.basePath + utils.getRoute()
let page
let route = utils.getRoute()
if (cacheRoute === route) return cb()
let basePath = cacheRoute = route
let basePath = cacheRoute = OPTIONS.basePath + route
if (!/\//.test(basePath)) {
basePath = ''
@ -58,7 +59,12 @@ const mainRender = function (cb) {
basePath = basePath.match(/(\S*\/)[^\/]+$/)[1]
}
let page
// replace route
if (OPTIONS.alias && OPTIONS.alias['/' + route]) {
route = OPTIONS.alias['/' + route]
} else {
route = OPTIONS.basePath + route
}
if (!route) {
page = OPTIONS.homepage || 'README.md'

View file

@ -44,8 +44,7 @@ const getAllPaths = function () {
/**
* return file path
*/
const genFilePath = function (path) {
const basePath = window.$docsify.basePath
const genFilePath = function (path, basePath = window.$docsify.basePath) {
let filePath = /\/$/.test(path) ? `${path}README.md` : `${path}.md`
filePath = basePath + filePath
@ -294,6 +293,7 @@ const searchPlugin = function () {
const paths = isAuto ? getAllPaths() : CONFIG.paths
const len = paths.length
const { load, marked, slugify } = window.Docsify.utils
const alias = window.$docsify.alias
const done = () => {
localStorage.setItem('docsify.search.expires', Date.now() + CONFIG.maxAge)
localStorage.setItem('docsify.search.index', JSON.stringify(INDEXS))
@ -301,8 +301,16 @@ const searchPlugin = function () {
paths.forEach(path => {
if (INDEXS[path]) return count++
let route
load(genFilePath(path)).then(content => {
// replace route
if (alias && alias[path]) {
route = genFilePath(alias[path] || path, '')
} else {
route = genFilePath(path)
}
load(route).then(content => {
genIndex(path, marked(content))
slugify.clear()
count++