我有一堆带有相对和绝对图像目标的降价文档。e、 g
This is some text
![optional caption](/sub/folder/image.png)
And more text
![](https://example.com/cool_image.png)
我想为每个相对图像预先添加一个URL,例如将上面的更改为
This is some text
![optional caption](https://some-image-host/image-host-subpath/sub/folder/image.png)
And more text
![](https://example.com/cool_image.png)
但最好不要将/sub/folder/
硬编码到replace脚本中(我目前就是这样做的)
有没有一种聪明的方法可以用awk
或sed
来实现这一点,或者这是一个坏主意,因为降价的边缘案例比预期的多
我在https://pypi.org/project/marko/方面取得了一些进展,例如
import marko
with open("myfile.md") as f: s = f.read()
doc = marko.inline.parser.parse_inline(s)
for i, e in eumerate(doc):
if type(e) == marko.inline.Image:
if not e.dest.startswith("http"):
doc[i].dest = "https://some-image-host/image-host-subpath/" + doc[i].dest
它会查找所有图像并用URL更新每个相对图像的目的地,但我不太确定如何将此内联元素列表重新呈现为降价字符串,我想我会先在这里发布,然后再重新发明轮子,以防有更简单的方法
谢谢你的帮助
此命令将在不更改原始文件的情况下执行此操作:
一旦确认它是您想要的,您只需要在
sed
和's_...
之前,并删除输入_文件之前的<
:该命令的工作方式如下所示:
_
作为模式分隔符,而不是更常见的/
, 因为这意味着我不必转义路径名中的每个/
李>^!\[.*\](
与要添加路径的位置匹配李>\(
和\)
之间,以便记住它 稍后李>\1
,后跟路径李>一种更简单的方法是简单地将行的
](
部分替换为])your_url_here
:但是
](
组合可能会在其他行中找到 你的文件,所以我选择了更强的测试^!\[.*\](
,它只匹配 以![
开头的行,在](
之前有一些内容相关问题 更多 >
编程相关推荐