Skip to content

Commit e3231a2

Browse files
committed
update: versioning
1 parent cc990d3 commit e3231a2

File tree

7 files changed

+31
-15
lines changed

7 files changed

+31
-15
lines changed

e2e/cli.test.js.snap

-640 Bytes
Binary file not shown.

lib/cli.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ const run = require('../lib')
55

66
const Locales = require('../tools/locales')
77
const y18n = new Locales()
8+
// Default use the version same to cli
9+
const docsifyDefaultResourceVersion = pkg.version
810

911
require('yargonaut')
1012
.style('yellow', 'required')
@@ -30,6 +32,15 @@ require('yargs')
3032
requiresArg: false,
3133
type: 'boolean'
3234
},
35+
docsifyVersion: {
36+
alias: 'ver',
37+
default: `${docsifyDefaultResourceVersion}`,
38+
desc: chalk.gray(y18n.__('init.version')),
39+
choices: [`${docsifyDefaultResourceVersion}`, 'rc'],
40+
nargs: 1,
41+
requiresArg: true,
42+
type: 'string'
43+
},
3344
theme: {
3445
alias: 't',
3546
default: 'vue',
@@ -48,7 +59,7 @@ require('yargs')
4859
type: 'boolean'
4960
}
5061
}),
51-
handler: argv => run.init(argv.path, argv.local, argv.theme, argv.plugins)
62+
handler: argv => run.init(argv.path, argv.local, argv.docsifyVersion, argv.theme, argv.plugins)
5263
})
5364
.command({
5465
command: 'serve [path]',

lib/commands/init.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,24 @@
33
const fs = require('fs')
44
const cp = require('cp-file').sync
55
const chalk = require('chalk')
6-
const {version} = require('../../package.json')
76
const logger = require('../util/logger')
87
const {prompt, MultiSelect} = require('enquirer')
98
const {cwd, exists, pkg, pwd, read, resolve} = require('../util')
109
const colors = require('ansi-colors')
11-
const semver = require('semver')
1210

1311
const replace = function (file, tpl, replace) {
1412
fs.writeFileSync(file, read(file).replace(tpl, replace), 'utf-8')
1513
}
1614

15+
const replaceAll = function (file, tpl, replace) {
16+
fs.writeFileSync(file, read(file).replaceAll(tpl, replace), 'utf-8')
17+
}
18+
1719
// eslint-disable-next-line
18-
module.exports = async function (path = '', local, theme, plugins) {
20+
module.exports = async function (path = '', local, docsifyVersion, theme, plugins) {
1921
const msg =
2022
'\n' +
21-
chalk.green('Initialization succeeded!') +
23+
chalk.green(`Initialization succeeded (${docsifyVersion})!`) +
2224
' Please run ' +
2325
chalk.inverse(`docsify serve ${path}`) +
2426
'\n'
@@ -48,11 +50,11 @@ module.exports = async function (path = '', local, theme, plugins) {
4850
}
4951
}
5052

51-
await createFile(cwdPath, local, theme, plugins)
53+
await createFile(cwdPath, local, docsifyVersion, theme, plugins)
5254
console.log(msg)
5355
}
5456

55-
async function createFile(path, local, theme, plugins) {
57+
async function createFile(path, local, docsifyVersion, theme, plugins) {
5658
const target = file => resolve(path, file)
5759
const readme = exists(cwd('README.md')) || pwd('template/README.md')
5860
let main = pwd('template/index.html')
@@ -97,6 +99,9 @@ async function createFile(path, local, theme, plugins) {
9799
replace(target(filename), 'repo: \'\'', `repo: '${repo}'`)
98100
}
99101

102+
const resourceVersion = docsifyVersion
103+
replaceAll(target(filename), '__docsifyVersion__', `${resourceVersion}`)
104+
100105
// Return early if not opted for plugins
101106
if (!plugins) {
102107
return replace(target(filename), '\n _plugins_', '')
@@ -147,11 +152,8 @@ async function createFile(path, local, theme, plugins) {
147152

148153
replace(target(filename), ' _plugins_', '_plugin'.repeat(answers.length + 1))
149154

150-
const {prerelease = [], major} = semver.parse(version) || {}
151-
const pluginVersion = prerelease.length ? prerelease[0] : String(major)
152-
153155
answers.forEach(plugin => {
154-
const url = `//cdn.jsdelivr.net/npm/docsify@${pluginVersion}/dist/plugins/${plugin}.min.js`
156+
const url = `//cdn.jsdelivr.net/npm/docsify@${resourceVersion}/dist/plugins/${plugin}.min.js`
155157
replace(target(filename), '_plugin', ` <script src="${url}"></script>\n`)
156158
})
157159

lib/template/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
<title>Document</title>
66
<meta name="description" content="Description">
77
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
8-
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@rc/dist/themes/core.min.css">
9-
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@rc/dist/themes/addons/vue.min.css">
8+
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@__docsifyVersion__/dist/themes/core.min.css">
9+
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@__docsifyVersion__/dist/themes/addons/vue.min.css">
1010
</head>
1111
<body>
1212
<div id="app"></div>
@@ -16,8 +16,8 @@
1616
repo: ''
1717
}
1818
</script>
19-
<!-- Docsify rc -->
20-
<script src="//cdn.jsdelivr.net/npm/docsify@rc"></script>
19+
<!-- Docsify resource -->
20+
<script src="//cdn.jsdelivr.net/npm/docsify@__docsifyVersion__"></script>
2121
_plugins_
2222
</body>
2323
</html>

tools/locales/de.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"help": "Zeige Hilfe an",
55
"init": "Erzeuge neue Dokumentation.",
66
"init.local": "Kopiere docsify Dateien in lokale Ordner. Um explizit --local auf false zu setzen, kannst du --no-local verwenden.",
7+
"init.version": "Wählen Sie die docsify-Version aus; standardmäßig wird die neueste Version verwendet.",
78
"init.theme": "Zu verwendende Theme Dateien.",
89
"serve": "Lasse lokalen Server zur Webseitenvorschau laufen.",
910
"serve.open": "Dokumentation im Standardbrowser öffnen. Um explizit --open auf false zu setzen, kannst du --no-open verwenden.",

tools/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"help": "Show help",
55
"init": "Creates new docs",
66
"init.local": "Copy docsify files to local. To explicitly set --local to false you may use --no-local.",
7+
"init.version": "Select docsify version, default is latest.",
78
"init.theme": "Theme file to be used.",
89
"init.plugins": "A list of plugins to be used.",
910
"serve": "Run local server to preview site.",

tools/locales/zh.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"help": "帮助",
55
"init": "创建 docs",
66
"init.local": "拷贝 docsify 到本地",
7+
"init.version": "选择 docsify 版本,默认使用最新版本",
78
"init.theme": "选择主题",
89
"init.plugins": "选择插件",
910
"serve": "本地预览",

0 commit comments

Comments
 (0)