
會(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粘貼 [首頁-簡書](http://www.itdecent.cn)這樣的文本到Markdown編輯器。
問題的關(guān)鍵:
需要獲取到URL頁面里的<title>標(biāo)簽里的內(nèi)容,再拼接成markdown超鏈接。
本來想用bash里的curl、grep、sed完成獲取頁面、匹配title、再拼接的,畢竟不太擅長,就索性用Python寫了。
效果圖:


制作方法:

Workflow結(jié)構(gòu)

熱鍵獲取剪貼板內(nèi)容

Python獲取文章標(biāo)題

判斷成功或失敗

設(shè)置通知文本
代碼很簡陋,將就看看。。。
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.也許文章的標(biāo)題會(huì)有亂碼的情況。
下載 鏈接: https://pan.baidu.com/s/1slbHOkd 密碼: ig45
如果覺得有用,您就點(diǎn)個(gè)紅心咯~