【问题标题】:Pandoc: Create html file without specifying a filenamePandoc:在不指定文件名的情况下创建 html 文件
【发布时间】:2021-05-16 08:10:24
【问题描述】:

在我的公司,我们正在尝试从使用 Word 写作过渡到使用 Markdown。我们需要几种 markdown 输出格式,所以我正在尝试创建一个 grunt.js 任务,它可以监视文件夹,并将 markdown 文件转换为所需的输出。 所需的输出是:DOCX、PDF 和 HTML。

我正在使用 grunt.js 的 node-pandoc 插件来处理转换。

我目前有创建 docx 和 pdf 的繁重任务。问题在于 HTML 文件——Pandoc 似乎要求明确指定 HTML 文件名,而不仅仅是使用原始文件的名称。如果没有指定,则会产生错误(openBinaryFile: 不存在)。

我当前的任务选项如下所示:

    grunt.initConfig({
        node_pandoc: {

          engdocx: {
                  //English source+options
              expand: true,
              src: 'Eng/*.md',
              dest: 'pdfBuild/',
              ext: '.docx',
              flatten: true,
              options: {
                flags: '-f markdown -t docx -o --reference-doc=reference.docx --metadata-file=EngMeta.yml'
              }
            },
         hebdocx:{
                //Hebrew source+options
            expand: true,
            src: 'Heb/*.md',
            dest: 'pdfBuild/',
            ext: '.docx',
            flatten: true,
            options: {
              flags: '-f markdown -t docx -o --reference-doc=reference.docx --metadata-file=HebMeta.yml'
            },
            // Target-specific file lists and/or options go here.
          },
          html_heb: {
              // Convert markdown to html
              expand: true,
              src: ['Heb/*.md'],
              dest: 'Final/',
              ext: '.html',
              flatten: true,
              options: {
                flags: '-f markdown -t html -o'
              }, 
          },
          html_eng: {
            // Convert markdown to html
            expand: true,
            src: ['Eng/*.md'],
            dest: 'Final/',
            ext: '.html',
            flatten: true,
            options: {
              flags: '-f markdown -t html -s -o ' 
            }, 
        }

我想知道我是否可以:

  1. 从任务中提取文件名。
  2. 将其动态附加到每个任务的选项中,以便 pandoc 知道所需的文件名是什么。

或者,如果我可以说服 pandoc 在不明确指定文件名的情况下生成文件。

【问题讨论】:

标签: node.js gruntjs pandoc


【解决方案1】:

原来我缺少一个独立标志的 -s。

          html_heb: {
              // Convert markdown to html
              expand: true,
              src: ['Heb/*.md'],
              dest: 'Final/',
              ext: '.html',
              flatten: true,
              options: {
                flags: '-f markdown -t html -o -s' // Was missing a -s.
              }, 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    相关资源
    最近更新 更多