javascript - 将 html 锚点更改为 markdown
问题描述
我有以下代码来迭代目录中的所有文件:
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
}
})
})
})
})
如果我有这样的锚标签:
<a href="https://www.link.com/" target="_blank">link</a>
如何将所有这些链接从文件中拉出并将它们转换为如下的降价链接:
[link](https://www.link.com/)
我正在使用节点来遍历目录中的文件。
解决方案
我不确定您是否正在从.html
文件中读取?
如果是,那么我怀疑您将在文件中查找所有锚标记。
let pattern = /<a.*?href="(.*?)".*?>(.*?)<\/a>/g,
matches = text.match(pattern),
new_text = matches.map(i => i.replace(pattern, '[$2]($1)'));
此代码段会将所有链接标签存储在一个数组中,并将它们全部转换为降价。这样你就可以new_text.join('\n')
轻松地表演了。
推荐阅读
- javascript - 使用标题和相关标题值订购 json 数据
- arrays - 查找 Ruby 数组的字符串索引
- javascript - 文档上的水平滚动。准备使用 jQuery 进行活动链接
- apache - RewriteCond 和 RewriteRule 工作正常,除非不使用路径
- javascript - @aws-cdk/pipelines 和 @aws-cdk/aws-codepipeline 有什么区别?
- css - 如何在Angular 8的一个组件中有条件地添加两个css文件
- java - Hibernate SessionFactory 和表映射
- python-3.x - 获取正确的 Python3 依赖项时出错
- python - 如何随机选择非零元素并将其替换为0?
- android - 如何每 5 秒更新一次 ViewPager2