将文件路径字符串转换为 Markdown 链接

史酷

我有一长串文件路径的格式如下:

* (00-atoms/images/AI-004-image-2x1.md)

这些由新行分隔。

我想将这些更改为降价链接,使用文件名(无破折号和无文件路径类型)作为每个单独路径的标题:

* [AI 004 image 2x1](00-atoms/images/AI-004-image-2x1.md)

所有这些文件路径都有两层深,但前两层是可变的:

* (00-atoms/forms-and-feedback/AFF-001-text-field.md)
* (01-molecules/event-text/MTE-006-event-address-bar-unordered-amenities-list.md)

此外,文件名中可以​​包含波浪号,如下所示:

* (01-molecules/forms/MF-001-input-with-form-label~error-message.md)

我正在寻找一种使用 Vim 的方法(通过宏或字符串替换)以我需要格式化的方式来格式化这个文件。我已经对字符串替换和宏进行了多次尝试,但一直在努力做到这一点。有没有人看到这些路径的任何独特之处可以帮助我解决这个问题?

三聚氰胺

这是一种方法:

:%s!^\* \zs([^()]*/\([^()/]\+\)\.md)!\='[' . tr(submatch(1), '-', ' ') . ']' . submatch(0)!

主意:

  • s!!!在所有行 ( %)运行替换命令
  • 要替换的模式是^\* \zs([^()]*/\([^()/]\+\)\.md),匹配
    • ^ - 行首
    • \* - 一个星号和一个空格
    • \zs - 标志着比赛正式开始(到目前为止的一切都不会被替换)
    • ( - 左括号
    • [^()]* - 0 个或多个非括号字符(这与路径中的目录匹配)
    • / - 斜线
    • \( - 开始捕获组 1
    • [^()/]\+ - 1 个或多个非括号/非斜杠字符(基本名称部分)
    • \) - 捕获组 1 结束
    • \.md - 文件扩展名“.md”
    • ) - 右括号
  • 替换部分是\='[' . tr(submatch(1), '-', ' ') . ']' . submatch(0),意思是
    • \= - 其余部分将作为表达式进行评估,而不是字符串
    • submatch(1)- 第一个捕获组的内容,即文件的基本名称(不带.md扩展名)
    • tr(..., '-', ' ') - 将字符串中的所有破折号转换为空格
    • '[' . ... . ']'- 连接[]前面/后面的字符
    • ... . submatch(0) - 追加整个匹配的字符串

这将打开* (foo/bar-baz.md)进入* [bar baz](foo/bar-baz.md)

输入:

* (00-atoms/images/AI-004-image-2x1.md)

* (00-atoms/forms-and-feedback/AFF-001-text-field.md)
* (01-molecules/event-text/MTE-006-event-address-bar-unordered-amenities-list.md)

* (01-molecules/forms/MF-001-input-with-form-label~error-message.md)

结果:

* [AI 004 image 2x1](00-atoms/images/AI-004-image-2x1.md)

* [AFF 001 text field](00-atoms/forms-and-feedback/AFF-001-text-field.md)
* [MTE 006 event address bar unordered amenities list](01-molecules/event-text/MTE-006-event-address-bar-unordered-amenities-list.md)

* [MF 001 input with form label~error message](01-molecules/forms/MF-001-input-with-form-label~error-message.md)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中检测markdown文件中的所有链接,并将其替换为字符串函数的输出

来自分类Dev

搜索和删除Markdown文件中的链接

来自分类Dev

将链接放在Markdown中的标题上

来自分类Dev

将字符串转换为可点击的链接

来自分类Dev

将mysql字符串转换为段落,链接,引号等

来自分类Dev

将字符串转换为链接 - javascript

来自分类Dev

Markdown链接转义布局

来自分类Dev

Github markdown锚链接与#

来自分类Dev

Markdown链接转义布局

来自分类Dev

更新链接时将 Markdown 导出为 HTML

来自分类Dev

Python Markdown:当 Markdown 字符串转换为 HTML 时,如何为 Media 配置 Base URL

来自分类Dev

使用preg_replace()将URL转换为字符串中的链接

来自分类Dev

如何将链接属性从字符串转换为JavaScript中的变量

来自分类Dev

jQuery的。将字符串转换为jQuery对象并删除链接(a)标记

来自分类Dev

如何使用Javascript将字符串转换为超链接?

来自分类Dev

jQuery的。将字符串转换为jQuery对象并删除链接(a)标记

来自分类Dev

不需要文本链接的 Markdown 链接

来自分类Dev

PHP拆分字符串并将部分转换为链接

来自分类Dev

R markdown链接到人物

来自分类Dev

将Markdown转换为Github风味的Markdown

来自分类Dev

将markdown转换为reStructuredtest?

来自分类Dev

解析字符串并将特殊的TEXT链接[a href =“ url”] Text [/ a]转换为HTML链接

来自分类Dev

将文件数组与字符串数组共链接

来自分类Dev

将文件数组与字符串数组共链接

来自分类Dev

将 Markdown 文件中包含特定路径模式的所有部分标题转换为不同的格式

来自分类Dev

Markdown JSON字符串

来自分类Dev

链接到Bitbucket Markdown中带有空格的文件名

来自分类Dev

如何链接到我的Bitbucket自述文件的Markdown部分?

来自分类Dev

使用bash(最好是sed)命令删除markdown(md)文件中的图像和链接标签

Related 相关文章

  1. 1

    在python中检测markdown文件中的所有链接,并将其替换为字符串函数的输出

  2. 2

    搜索和删除Markdown文件中的链接

  3. 3

    将链接放在Markdown中的标题上

  4. 4

    将字符串转换为可点击的链接

  5. 5

    将mysql字符串转换为段落,链接,引号等

  6. 6

    将字符串转换为链接 - javascript

  7. 7

    Markdown链接转义布局

  8. 8

    Github markdown锚链接与#

  9. 9

    Markdown链接转义布局

  10. 10

    更新链接时将 Markdown 导出为 HTML

  11. 11

    Python Markdown:当 Markdown 字符串转换为 HTML 时,如何为 Media 配置 Base URL

  12. 12

    使用preg_replace()将URL转换为字符串中的链接

  13. 13

    如何将链接属性从字符串转换为JavaScript中的变量

  14. 14

    jQuery的。将字符串转换为jQuery对象并删除链接(a)标记

  15. 15

    如何使用Javascript将字符串转换为超链接?

  16. 16

    jQuery的。将字符串转换为jQuery对象并删除链接(a)标记

  17. 17

    不需要文本链接的 Markdown 链接

  18. 18

    PHP拆分字符串并将部分转换为链接

  19. 19

    R markdown链接到人物

  20. 20

    将Markdown转换为Github风味的Markdown

  21. 21

    将markdown转换为reStructuredtest?

  22. 22

    解析字符串并将特殊的TEXT链接[a href =“ url”] Text [/ a]转换为HTML链接

  23. 23

    将文件数组与字符串数组共链接

  24. 24

    将文件数组与字符串数组共链接

  25. 25

    将 Markdown 文件中包含特定路径模式的所有部分标题转换为不同的格式

  26. 26

    Markdown JSON字符串

  27. 27

    链接到Bitbucket Markdown中带有空格的文件名

  28. 28

    如何链接到我的Bitbucket自述文件的Markdown部分?

  29. 29

    使用bash(最好是sed)命令删除markdown(md)文件中的图像和链接标签

热门标签

归档