93542


PlantUML のダイアグラム付きの資料を作成する際、 VSCode の Markdown Preview Enhanced が便利なので使っています。

このプラグインは、プレビューを右クリックすることで表示されるメニューから `HTML` を選択していくことで、 html ファイルとしてプレビューを
export することができます。

今、例えばこの資料を github 管理などする際に、 CI で html ファイルを自動で生成できると便利です。

# 質問

VSCode の [Markdown Preview Enhanced](https://github.com/shd101wyy/vscode-
markdown-preview-enhanced) のプラグインでマークダウンの資料を作成しているとき、それの html
変換をコマンドラインから実行したいです。これは、可能でしょうか?


CC BY-SA 4.0
2022-12-05T01:29:07.860
92581
2023-01-24T07:30:57.620
754
question
vscode markdown
VSCode の 「Markdown Preview Enhanced」の html 変換をコマンドラインから実行したい


@kunif さんに紹介いただいた、 [mume
のライブラリ](https://github.com/shd101wyy/mume)を用いることで、やりたいことが実現できました。  
その際に利用したスクリプト(ほぼ README のコピペで、かつ html ではなく pdf 変換をしましたが)を貼っておきます。

[code]

    #!/usr/bin/env node
    
    // md-to-pdf.mjs
    
    // es6
    import * as mume from "@shd101wyy/mume"
    
    async function main() {
      // const configPath = path.resolve(os.tmpdir(), ".mume");
      //
      // // if no configPath is specified, the default is "~/.config/mume"
      // // but only if the old location (~/.mume) does not exist
      // await mume.init(configPath);
    
      const engine = new mume.MarkdownEngine({
        filePath: process.argv[2],
        config: {
          // configPath: configPath,
          previewTheme: "github-light.css",
          // revealjsTheme: "white.css"
          codeBlockTheme: "default.css",
          printBackground: true,
          enableScriptExecution: true, // <= for running code chunks
        },
      });
    
      // // open in browser
      // await engine.openInBrowser({ runAllCodeChunks: true });
      //
      // // html export
      // await engine.htmlExport({ offline: false, runAllCodeChunks: true });
      //
    
      // chrome (puppeteer) export
      await engine.chromeExport({ fileType: "pdf", runAllCodeChunks: true }); // fileType = 'pdf'|'png'|'jpeg'
    
      // // prince export
      // await engine.princeExport({ runAllCodeChunks: true });
    
      // // ebook export
      // await engine.eBookExport({ fileType: "epub" }); // fileType = 'epub'|'pdf'|'mobi'|'html'
      //
      // // pandoc export
      // await engine.pandocExport({ runAllCodeChunks: true });
      //
      // // markdown(gfm) export
      // await engine.markdownExport({ runAllCodeChunks: true });
    
      return process.exit();
    }
    
    main();
    
[/code]

利用方法:

[code]

    $ path/to/md-to-pdf.mjs hogehoge.md
    # => hogehoge.pdf が出力される
    
[/code]


CC BY-SA 4.0
2023-01-24T07:30:57.620
93542
2023-01-24T07:30:57.620
754
92581
answer