javascript - 将 html anchor 更改为 markdown

标签 javascript node.js

我有以下代码来迭代目录中的所有文件:

fs.readdir(root, (err, folders) => {
  folders.forEach(folder => {
    const current = path.join(root, folder)
    fs.readdir(current, (err, files) => {
      if (err) {
        return
      }

      files.filter(f => path.extname(f) === '.md').forEach(f => {
        const file = path.join(current, f)
        console.log(file)
      })
    })
   fs.readFile(current, 'utf8', (err, text) => {
      if (err) {
        return console.log(err)
      }

      // convert anchors to markdown

      fs.writeFile(current, text.join('\n'), 'utf8', err => {
        if (err) {
          console.log(err)
          throw err
        }
      })
    })
  })
})

如果我有这样的 anchor 标签:

<a href="https://www.link.com/" target="_blank">link</a>

我怎样才能将所有这些链接从一个文件中提取出来,并将它们转换成这样的 Markdown 链接:

[link](https://www.link.com/)

我正在使用 Node 遍历目录中的文件。

最佳答案

我不确定您是否正在读取 .html 文件?

如果是,那么我怀疑您会在文件中查找所有 anchor 标记。

let pattern = /<a.*?href="(.*?)".*?>(.*?)<\/a>/g,
    matches = text.match(pattern),
    new_text = matches.map(i => i.replace(pattern, '[$2]($1)'));

此代码段会将所有链接标签存储在一个数组中,并将它们全部转换为 markdown。这样您就可以轻松地执行 new_text.join('\n')

关于javascript - 将 html anchor 更改为 markdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636064/

相关文章:

node.js - 管道流以在 node.js 中编辑 csv 文件

javascript - AddThis 共享按钮在 DotNetNuke 中不起作用

javascript - node,js 使用变量作为键名向 json 添加外部级别

javascript - 如何在文本区域字段中显示图像代替用户输入的 URL?

javascript - Mobile Firefox 上的 Angular 4 应用程序呈现问题

node.js - 如何使用 chrome puppeteer 访问 ssl 证书内容

javascript - 返回 Express Router 中间件内部

javascript - 从 ExtJS 4 迁移到 ExtJS 5

javascript - Firefox 中奇怪的 JavaScript 滚动

javascript - php - jar 文件的后台进程,如何在进程完成时获得异步通知?