markdown回転pdfおよびmardown回転html

2791 ワード

プロジェクトのアドレス:https://github.com/klren0312/markdownConvert
1.markdown回転pdf
1.サードパーティ製ライブラリの使用
  • markdown-pdf
  • rimraf

  • 2.コード解読
    1.ライブラリの導入
    const mtp = require('markdown-pdf')
    const fs = require('fs')
    const path = require('path')
    const rm = require('rimraf')
    

    2.ファイルディレクトリを初期化するには、存在するpdfディレクトリを消去して再構築する必要がある
    const mdFolder = 'markdown' // md  
    const pdfFolder = 'pdf' // pdf  
    
    rm.sync(path.resolve(pdfFolder)) //   pdf   
    if (!fs.existsSync(pdfFolder)) {
      fs.mkdirSync(pdfFolder); //   pdf   
    }
    

    3.pdfファイルを生成mardownフォルダ内のファイルをループして読み込み、markdownファイルストリームを読み出し、pdfデータストリームに変換し、最後にpdfファイルに格納する
    fs.readdir(path.resolve(mdFolder), (err, files) => { //   md       
      if (err) throw err
      let sum = 0 //    markdown     
      const total = files.length //     
      files.forEach(file => { //     
        sum++
        const fileName = file.match(/(.*)\.[^.]+$/)[1] //       test.md => test
        fs.createReadStream(path.resolve(`${mdFolder}/${file}`)) //           
          .pipe(mtp()) //    pdf   
          .pipe(fs.createWriteStream(path.resolve(`${pdfFolder}/${fileName}.pdf`))) //     
        console.log(`${file} => ${fileName}.pdf   ,        ${sum} / ${total}`)
      })
    })
    

    mardown回転html
    1.サードパーティ製ライブラリの使用
  • showdown
  • rimraf

  • 2.コード解読
    1.ライブラリの導入
    const showdown = require('showdown')
    const converter = new showdown.Converter()
    converter.setFlavor('github') //    github      
    const fs = require('fs')
    const path = require('path')
    const rm = require('rimraf')
    

    2.ファイルディレクトリの初期化
    const mdFolder = 'markdown' // md  
    const htmlFolder = 'html' // html  
    
    rm.sync(path.resolve(htmlFolder)) //   html   
    if (!fs.existsSync(htmlFolder)) {
      fs.mkdirSync(htmlFolder) //   html   
    }
    

    3.htmlファイルの生成
    fs.readdir(path.resolve(mdFolder), (err, files) => { //   md       
      if (err) throw err
      let sum = 0 //    markdown     
      const total = files.length //     
      files.forEach(file => { //     
        sum++
        const fileName = file.match(/(.*)\.[^.]+$/)[1] //       test.md => test
        fs.readFile(path.resolve(`${mdFolder}/${file}`), 'utf8', (err, data) => { //     
          if (err) {
            console.error(err)
            return
          }
          const htmlContent = converter.makeHtml(data) // md    html
          fs.writeFile(path.resolve(`${htmlFolder}/${fileName}.html`), htmlContent, 'utf8', (err) => { //    html  
            if (err) throw err;
            console.log(`${file} => ${fileName}.html   ,        ${sum} / ${total}`)
          })
        })
      })
    })