我有一堆混合了相对和绝对图像目标的降价文档。例如
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/
到替换脚本中(这是我目前的做法)。
有没有一种聪明的方法可以做到这一点,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 更新每个相对图像的目标,但我不太确定如何将这个内联元素列表再次呈现回 markdown 字符串,我想我会先在这里发布,然后再重新-如果有更简单的方法可以做到这一点,那就发明轮子。
TIA 寻求帮助。