會(huì)用Markdown的同學(xué)都知道在Markdown中插入超鏈接的語法是:
[超鏈接文字](url)
要插入一個(gè)超鏈接我們需要敲四次按鍵局服,復(fù)制粘貼鏈接標(biāo)題和URL,不是很爽啊嘱巾。
用知乎的富文本編輯器插入超鏈接時(shí)尝艘,只需要在輸入框里粘貼URL,編輯器會(huì)自動(dòng)獲取這個(gè)URL的標(biāo)題憔四,生成一個(gè)超鏈接,這個(gè)就超贊了呢般眉。:D
為了更好地偷懶了赵,今天花了點(diǎn)時(shí)間用Python寫了個(gè)workflow解決這個(gè)問題。
最短路徑:
1.CTRL+C復(fù)制URL甸赃,
2.workflow快捷鍵生成超鏈文本柿汛,
3.CTRL+V粘貼 [首頁-簡(jiǎn)書](http://www.reibang.com)
這樣的文本到Markdown編輯器。
問題的關(guān)鍵:
需要獲取到URL頁面里的<title>標(biāo)簽里的內(nèi)容埠对,再拼接成markdown超鏈接络断。
本來想用bash里的curl、grep项玛、sed完成獲取頁面貌笨、匹配title、再拼接的襟沮,畢竟不太擅長(zhǎng)锥惋,就索性用Python寫了。
效果圖:
制作方法:
Workflow結(jié)構(gòu)
熱鍵獲取剪貼板內(nèi)容
Python獲取文章標(biāo)題
判斷成功或失敗
設(shè)置通知文本
代碼很簡(jiǎn)陋开伏,將就看看膀跌。。硅则。
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.可能對(duì)Https支持不太好淹父;
2.也許文章的標(biāo)題會(huì)有亂碼的情況。
下載 鏈接: https://pan.baidu.com/s/1slbHOkd 密碼: ig45
如果覺得有用怎虫,您就點(diǎn)個(gè)紅心咯~