会用Markdown的同学都知道在Markdown中插入超链接的语法是:
[超链接文字](url)
要插入一个超链接我们需要敲四次按键,复制粘贴链接标题和URL,不是很爽啊。
用知乎的富文本编辑器插入超链接时,只需要在输入框里粘贴URL,编辑器会自动获取这个URL的标题,生成一个超链接,这个就超赞了呢。:D
为了更好地偷懒,今天花了点时间用Python写了个workflow解决这个问题。
最短路径:
1.CTRL+C复制URL,
2.workflow快捷键生成超链文本,
3.CTRL+V粘贴 [首页-简书](http://www.jianshu.com)
这样的文本到Markdown编辑器。
问题的关键:
需要获取到URL页面里的<title>标签里的内容,再拼接成markdown超链接。
本来想用bash里的curl、grep、sed完成获取页面、匹配title、再拼接的,毕竟不太擅长,就索性用Python写了。
效果图:
制作方法:
Workflow结构 热键获取剪贴板内容 Python获取文章标题 判断成功或失败 设置通知文本代码很简陋,将就看看。。。
import re,sys,urllib2
reload(sys)
sys.setdefaultencoding('utf-8')
def main():
query = "{query}"
regex_url = re.compile('[a-zA-z]+://[^\s]*')
if regex_url.search(query) == None:
query = 'error'
else:
try:
response = urllib2.urlopen(query)
webpage = response.read()
regex_title = re.compile('(.*<title>)(.*)(</title>)')
article_title = regex_title.search(webpage).group(2)
if article_title is not None:
markdownLink = '[{title}]({url})'.format(title=article_title, url=query)
query = markdownLink
except:
query = 'error'
sys.stdout.write(query)
if __name__ == '__main__':
main()
目前还有一些缺陷:
1.可能对Https支持不太好;
2.也许文章的标题会有乱码的情况。
下载 链接: https://pan.baidu.com/s/1slbHOkd 密码: ig45
如果觉得有用,您就点个红心咯~
网友评论