JSDoc:来自不同目录的查找教程

时间:2014-10-26 08:18:37

标签: jsdoc

有没有办法让JSDoc(在命令行中或通过grunt-jsdoc插件)从不同的目录中查找教程?

根据documentation-u允许指定Directory in which JSDoc should search for tutorials.(代表Directory而不是Directories)。

我试了以下但没有运气:

  • 指定由spacecomma
  • 分隔的不同字符串
  • 使用shell / ant正则表达式指定一个字符串

2 个答案:

答案 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']);

通过更新symlinkjsdoc任务来翻译新模块。

答案 1 :(得分:0)

你可以复制文件,而不是链接到一堆目录。

E.g。在您的项目中创建一个目录,用于文档,您可以从中复制所有相关的教程。

然后,在您的npm脚本中,您可以使用以下内容:

"copy:curry": "cp node_modules/@justinc/jsdocs/tutorials/curry.md doc/tutorials",
"predocs": "npm run copy:curry",

docs脚本(未显示)运行jsdocpredocs会在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