有没有办法让JSDoc
(在命令行中或通过grunt-jsdoc插件)从不同的目录中查找教程?
根据documentation,-u
允许指定Directory in which JSDoc should search for tutorials.
(代表Directory
而不是Directories
)。
我试了以下但没有运气:
space
或comma
答案 0 :(得分:0)
正如@Vasil Vanchuk
所建议的,解决方案是创建指向单个目录中所有教程文件的链接。因此,JSDoc3将很高兴,它将继续生成所有教程。
手动创建/维护链接将是一项繁琐的工作。因此,对于使用grunt
的人来说,grunt-contrib-symlink
会派上用场。使用此插件,解决方案将简化为配置任务。
我的Gruntfile.js如下所示:
clean:['tmp', 'doc'],
symlink: {
options: {
overwrite: false,
},
tutorials: {
files: [{
cwd: '../module1/src/main/js/tut',
dest: 'tmp/tutorial-generation-workspace',
expand: true,
src: ['*'],
}, {
cwd: '../module2/src/main/js/tut',
dest: 'tmp/tutorial-generation-workspace',
expand: true,
src: ['*'],
}]
}
},
jsdoc: {
all: {
src: [
'../module1/src/main/js/**/*.js',
'../module2/src/main/js/**/*.js',
'./README.md',
],
options: {
destination: 'doc',
tutorials: 'tmp/tutorial-generation-workspace',
configure : "jsdocconf.json",
template: 'node_modules/grunt-jsdoc/node_modules/ink-docstrap/template',
},
}
},
grunt.loadNpmTasks('grunt-contrib-symlink');
grunt.loadNpmTasks('grunt-jsdoc');
grunt.registerTask('build', ['clean', 'symlink', 'jsdoc']);
grunt.registerTask('default', ['build']);
通过更新symlink
和jsdoc
任务来翻译新模块。
答案 1 :(得分:0)
你可以复制文件,而不是链接到一堆目录。
E.g。在您的项目中创建一个目录,用于文档,您可以从中复制所有相关的教程。
然后,在您的npm脚本中,您可以使用以下内容:
"copy:curry": "cp node_modules/@justinc/jsdocs/tutorials/curry.md doc/tutorials",
"predocs": "npm run copy:curry",
docs
脚本(未显示)运行jsdoc
。 predocs
会在docs
之前自动运行,在这种情况下会将我的某个软件包中的教程复制到doc/tutorials
。然后,您可以将doc/tutorials
作为包含所有教程的单个目录。
在predocs
中,您可以继续使用bash
&&
添加要复制的内容 - 或者如果由于某种原因无法提供,则您可以使用doc/tutorials
。找到npm包,让你这样做(因此不依赖于你正在使用的任何shell)。
现在我考虑一下,最好还删除predocs
中的"predocs": "rm -rf doc/tutorials && mkdir -p doc/tutorials && npm run copy:tutorials",
:
func applicationDidFinishLaunching(_ application: UIApplication) {
let publicDatabase = CKContainer.default().publicCloudDatabase
let allRecordsQuery = CKQuery(recordType: "ENTITY", predicate: NSPredicate(format: "TRUEPREDICATE", []))
publicDatabase.perform(allRecordsQuery, inZoneWith: nil) { (records, error) in
for record in records! {
publicDatabase.delete(withRecordID: record.recordID, completionHandler: { (deletedRecord, error) in
if error == nil {
print("Deleted " + (deletedRecord?.recordName)!)
} else {
print(error!)
}
})
}
}
}
这样,每次生成文档时,您在那里复制的任何教程(但现在都不感兴趣)都会被清除。
顺便说一下,我为此开了一个问题:https://github.com/jsdoc3/jsdoc/issues/1330