我以网络内容为生.我在markdown中编写并使用pandoc处理,因为我必须提交HTML文件.
所有出站链接都需要在提交的标记中包含target ="_ blank".网络中的链接不应该.我可以在编写时将{:target ="_ blank"}添加到markdown文件中(并切换到Kramdown),但我宁愿在帖子中处理这个问题.
我已经有一个小的bash脚本,通过pandoc渲染后修复了一些其他的输出内容.我想在那里添加这个要求.
我想我的小脚本会包含一个它会避免的域名列表.我可以勾勒出这个基本概念,但我不知道足够的正则表达式或文本处理一般来弄清楚细节.
有帮助吗?
(我过去主要使用Bash这个东西,当我第一次开始这样做时,我的需求[我认为]很简单.我已经切换到Python用于更新的东西,所以这就是我上面提到的.我实际上并没有关心在合理范围内使用的东西.
(另外 - 对于我自己的东西,我用页面上的三行Jquery完成了这一点,而不是混乱我的源代码内容.我不能说服男人这是正确的行动方案.)
干杯! 谢谢!
使用HTML的正则表达式会导致疯狂.使用专用的HTML处理工具,如Beautiful Soup 4.
html = """
<a href="http://newwindow.example.com">New window</a>
<a href="http://samewindow.example.com">Same window</a>
"""
from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(html, 'html.parser')
href_re = re.compile(r"^http://newwindow\.example\.com")
links = soup.find_all('a', href=href_re)
for link in links:
link['target'] = '_blank'
print unicode(soup)
Run Code Online (Sandbox Code Playgroud)