in scripts/merge_by_toc.py [0:0]
def replace_link_wrap(chapter, name):
def replace_link(match):
full = match.group(0) # 获取完整的匹配
link_name = match.group(1) # 获取链接名称
link = match.group(2) # 获取链接地址
frag = match.group(3) # 获取链接片段
if link.startswith('http'): # 如果是HTTP链接
return full # 返回完整匹配
elif link.endswith('.md') or '.md#' in link: # 如果是Markdown文件链接
if not frag: # 如果没有片段
link = link[1:] # 去掉开头的斜杠
for fpath in file_link_name: # 遍历文件链接名称
if link == fpath: # 如果链接匹配
frag = '#' + file_link_name[fpath] # 添加片段
return '[%s](%s)' % (link_name, frag) # 返回替换后的链接
elif link.endswith('.png') or link.endswith('.jpeg') or link.endswith('.svg') or link.endswith('.gif') or link.endswith('.jpg'): # 如果是图片链接
img_link = re.sub(r'[\.\/]*images\/', 'static/images/', link, count=0, flags=0) # 替换图片路径
return '[%s](%s)' % (link_name, img_link) # 返回替换后的图片链接
else:
return full # 返回完整匹配
return hyper_link_pattern.sub(replace_link, chapter) # 替换章节中的链接