You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
56 lines
1.4 KiB
6 years ago
|
const liveServer = require('live-server')
|
||
|
const isSSR = !!process.env.SSR
|
||
|
const middleware = []
|
||
|
|
||
|
if (isSSR) {
|
||
|
const Renderer = require('./packages/docsify-server-renderer/build.js')
|
||
|
const renderer = new Renderer({
|
||
|
template: `
|
||
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta charset="UTF-8">
|
||
|
<title>docsify</title>
|
||
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||
|
<link rel="stylesheet" href="/themes/vue.css" title="vue">
|
||
|
</head>
|
||
|
<body>
|
||
|
<!--inject-app-->
|
||
|
<!--inject-config-->
|
||
|
<script src="/lib/docsify.js"></script>
|
||
|
</body>
|
||
|
</html>`,
|
||
|
config: {
|
||
|
name: 'docsify',
|
||
|
repo: 'docsifyjs/docsify',
|
||
|
basePath: 'https://docsify.js.org/',
|
||
|
loadNavbar: true,
|
||
|
loadSidebar: true,
|
||
|
subMaxLevel: 3,
|
||
|
auto2top: true,
|
||
|
alias: {
|
||
|
'/de-de/changelog': '/changelog',
|
||
|
'/zh-cn/changelog': '/changelog',
|
||
|
'/changelog':
|
||
|
'https://raw.githubusercontent.com/docsifyjs/docsify/master/CHANGELOG'
|
||
|
}
|
||
|
},
|
||
|
path: './'
|
||
|
})
|
||
|
|
||
|
middleware.push(function(req, res, next) {
|
||
|
if (/\.(css|js)$/.test(req.url)) {
|
||
|
return next()
|
||
|
}
|
||
|
renderer.renderToString(req.url).then(html => res.end(html))
|
||
|
})
|
||
|
}
|
||
|
|
||
|
const params = {
|
||
|
port: 3000,
|
||
|
watch: ['lib', 'docs', 'themes'],
|
||
|
middleware
|
||
|
}
|
||
|
|
||
|
liveServer.start(params)
|