Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
计算机应用开发
前端
Vuepress
提交
aaf3aef0
V
Vuepress
项目概览
计算机应用开发
/
前端
/
Vuepress
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
Vuepress
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
aaf3aef0
编写于
5月 22, 2018
作者:
E
Evan You
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: move loadConfig into util
上级
10ad27d4
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
56 addition
and
45 deletion
+56
-45
lib/prepare.js
lib/prepare.js
+2
-45
lib/util/loadConfig.js
lib/util/loadConfig.js
+54
-0
未找到文件。
lib/prepare.js
浏览文件 @
aaf3aef0
const
path
=
require
(
'
path
'
)
const
fs
=
require
(
'
fs-extra
'
)
const
globby
=
require
(
'
globby
'
)
const
yamlParser
=
require
(
'
js-yaml
'
)
const
tomlParser
=
require
(
'
toml
'
)
const
createMarkdown
=
require
(
'
./markdown
'
)
const
loadConfig
=
require
(
'
./util/loadConfig
'
)
const
tempPath
=
path
.
resolve
(
__dirname
,
'
app/.temp
'
)
const
{
inferTitle
,
...
...
@@ -76,21 +75,7 @@ if (!Object.assign) Object.assign = require('object-assign')`
async
function
resolveOptions
(
sourceDir
)
{
const
vuepressDir
=
path
.
resolve
(
sourceDir
,
'
.vuepress
'
)
const
configPath
=
path
.
resolve
(
vuepressDir
,
'
config.js
'
)
const
configYmlPath
=
path
.
resolve
(
vuepressDir
,
'
config.yml
'
)
const
configTomlPath
=
path
.
resolve
(
vuepressDir
,
'
config.toml
'
)
delete
require
.
cache
[
configPath
]
// resolve siteConfig
let
siteConfig
=
{}
if
(
fs
.
existsSync
(
configYmlPath
))
{
siteConfig
=
await
parseConfig
(
configYmlPath
)
}
else
if
(
fs
.
existsSync
(
configTomlPath
))
{
siteConfig
=
await
parseConfig
(
configTomlPath
)
}
else
if
(
fs
.
existsSync
(
configPath
))
{
siteConfig
=
require
(
configPath
)
}
const
siteConfig
=
loadConfig
(
vuepressDir
)
// normalize head tag urls for base
const
base
=
siteConfig
.
base
||
'
/
'
...
...
@@ -361,31 +346,3 @@ function sort (arr) {
return
0
})
}
async
function
parseConfig
(
file
)
{
const
content
=
await
fs
.
readFile
(
file
,
'
utf-8
'
)
const
[
extension
]
=
/.
\w
+$/
.
exec
(
file
)
let
data
switch
(
extension
)
{
case
'
.yml
'
:
case
'
.yaml
'
:
data
=
yamlParser
.
safeLoad
(
content
)
break
case
'
.toml
'
:
data
=
tomlParser
.
parse
(
content
)
// reformat to match config since TOML does not allow different data type
// https://github.com/toml-lang/toml#array
const
format
=
[]
Object
.
keys
(
data
.
head
).
forEach
(
meta
=>
{
data
.
head
[
meta
].
forEach
(
values
=>
{
format
.
push
([
meta
,
values
])
})
})
data
.
head
=
format
break
}
return
data
||
{}
}
lib/util/loadConfig.js
0 → 100644
浏览文件 @
aaf3aef0
const
fs
=
require
(
'
fs-extra
'
)
const
path
=
require
(
'
path
'
)
const
yamlParser
=
require
(
'
js-yaml
'
)
const
tomlParser
=
require
(
'
toml
'
)
module
.
exports
=
function
loadConfig
(
vuepressDir
,
bustCache
=
false
)
{
const
configPath
=
path
.
resolve
(
vuepressDir
,
'
config.js
'
)
const
configYmlPath
=
path
.
resolve
(
vuepressDir
,
'
config.yml
'
)
const
configTomlPath
=
path
.
resolve
(
vuepressDir
,
'
config.toml
'
)
if
(
bustCache
)
{
delete
require
.
cache
[
configPath
]
}
// resolve siteConfig
let
siteConfig
=
{}
if
(
fs
.
existsSync
(
configYmlPath
))
{
siteConfig
=
parseConfig
(
configYmlPath
)
}
else
if
(
fs
.
existsSync
(
configTomlPath
))
{
siteConfig
=
parseConfig
(
configTomlPath
)
}
else
if
(
fs
.
existsSync
(
configPath
))
{
siteConfig
=
require
(
configPath
)
}
return
siteConfig
}
function
parseConfig
(
file
)
{
const
content
=
fs
.
readFileSync
(
file
,
'
utf-8
'
)
const
[
extension
]
=
/.
\w
+$/
.
exec
(
file
)
let
data
switch
(
extension
)
{
case
'
.yml
'
:
case
'
.yaml
'
:
data
=
yamlParser
.
safeLoad
(
content
)
break
case
'
.toml
'
:
data
=
tomlParser
.
parse
(
content
)
// reformat to match config since TOML does not allow different data type
// https://github.com/toml-lang/toml#array
const
format
=
[]
Object
.
keys
(
data
.
head
).
forEach
(
meta
=>
{
data
.
head
[
meta
].
forEach
(
values
=>
{
format
.
push
([
meta
,
values
])
})
})
data
.
head
=
format
break
}
return
data
||
{}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录