From d9d9d114f4ffc05255fdc07edaa5d799c9035076 Mon Sep 17 00:00:00 2001 From: "cinwell.li" Date: Sun, 31 Mar 2019 11:55:25 +0800 Subject: [PATCH] fix(router): file ext --- packages/docsify-server-renderer/index.js | 13 +++++++++---- src/core/render/embed.js | 6 ++++-- src/core/router/history/base.js | 6 ++++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/docsify-server-renderer/index.js b/packages/docsify-server-renderer/index.js index ecf8324..9261d9f 100644 --- a/packages/docsify-server-renderer/index.js +++ b/packages/docsify-server-renderer/index.js @@ -87,10 +87,13 @@ export default class Renderer { this._renderHtml('navbar', await this._render(navbarFile, 'navbar')) } + if (coverpage === true) { + coverpage = '_coverpage.md' + } if (coverpage) { let path = null if (typeof coverpage === 'string') { - if (url === '/') { + if (url === 'README.md') { path = coverpage } } else if (Array.isArray(coverpage)) { @@ -100,9 +103,11 @@ export default class Renderer { path = cover === true ? '_coverpage.md' : cover } - const coverFile = this._getPath(resolve(url, `./${path}`)) + if (path) { + const coverFile = this._getPath(resolve(url, `./${path}`)) - this._renderHtml('cover', await this._render(coverFile), 'cover') + this._renderHtml('cover', await this._render(coverFile), 'cover') + } } const html = this.html @@ -174,7 +179,7 @@ export default class Renderer { return content } catch (e) { this.lock = this.lock || 0 - if (++this.lock > 10) { + if (++this.lock > 4) { this.lock = 0 return } diff --git a/src/core/render/embed.js b/src/core/render/embed.js index 8218374..726bfce 100644 --- a/src/core/render/embed.js +++ b/src/core/render/embed.js @@ -22,8 +22,10 @@ function walkFetchEmbed({embedTokens, compile, fetch}, cb) { } else if (token.embed.type === 'code') { if (token.embed.fragment) { const fragment = token.embed.fragment - const pattern = new RegExp(`(?:###|\\/\\/\\/)\\s*\\[${fragment}\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\[${fragment}\\]`) - text = ((text.match(pattern) || [])[1] || '').trim() + const pattern = new RegExp( + `(?:###|\\/\\/\\/)\\s*\\[${fragment}\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\[${fragment}\\]` + ) + text = ((text.match(pattern) || [])[1] || '').trim() } embedToken = compile.lexer( '```' + diff --git a/src/core/router/history/base.js b/src/core/router/history/base.js index 0f9900d..6ed56a8 100644 --- a/src/core/router/history/base.js +++ b/src/core/router/history/base.js @@ -21,9 +21,11 @@ function getAlias(path, alias, last) { } function getFileName(path, ext) { - return new RegExp(`\\.(${ext.replace(/^\./, '')}|html)$`, 'g').test(path) ? + return /\.\w+$/.test(path) ? path : - /\/$/g.test(path) ? `${path}README${ext}` : `${path}${ext}` + /\/$/g.test(path) ? + `${path}README${ext}` : + `${path}${ext}` } export class History {