ios markdown 解析_Shortcuts 教程:正则表达式修改 Markdown 链接
這是我的「寫作流」Shortcuts。
上一篇文章中,我談到由于官方編輯器完全不支持 Markdown 語法,我不得不利用 Shortcut 以及公眾號 Web API 處理 Markdown 文本的圖片,這個(gè) Shortcut 節(jié)省了我成噸的操作。
今天討論如何處理「link」,這個(gè) Shortcut 使用「正則表達(dá)式」,它把 Markdown 的 link 轉(zhuǎn)換為 footnote。和上次一樣,這么做純屬無奈,我從來沒想到我會(huì)寫這種操作,可是要想干干凈凈寫文章,我們不得不先花時(shí)間清理垃圾。
為什么需要轉(zhuǎn)換
Markdown 中,link(鏈接) 和 footnote(腳注) 是完全不同的東西。
link 的格式是:
[文字](鏈接)下面是一個(gè) link:
[上一篇文章](https://aibooks.net/shortcuts/2020/07/28/iOS-Shortcuts-WebAPI-Upload-Photos.html)它的作用是注明引用來源。當(dāng)然,這種「source code」可讀性太差,實(shí)際輸出時(shí),Markdown 編輯器會(huì)把它渲染為:
點(diǎn)擊「上一篇文章」,就會(huì)打開對應(yīng)網(wǎng)頁。
footnote 則是注釋,它的格式是,首先在正文中插入腳注符號,然后在文末插入對應(yīng)的注釋內(nèi)容,即:
[^fn][^fn]: 注釋內(nèi)容
「fn」叫什么隨意,只要兩者匹配即可,編輯器會(huì)自動(dòng)改成數(shù)字。例如,這樣一段話:
> 白云[^1]深處擁雷峰[^2],幾樹寒梅帶血紅。> 齋罷垂垂渾入定,庵前潭影落疏鐘[^3]。
[^1]: 雷峰塔下白云庵。
[^2]: 原注:雷峰,又名夕照山。相傳道人雷就曾居于此。有塔名雷峰塔,為南屏山支脈,為五代吳越王錢俶時(shí)所建,突出于杭州西湖南岸,一九二四年傾塌。(按:錢俶原名錢弘俶,吳越國最后一位君主,因"弘"字犯宋太祖父之名諱,宋后只稱錢俶。
[^3]: 分別指三潭印月與南屏晚鐘。
[^1]、[^2]、[^3] 都是 footnote。輸出效果:
點(diǎn)文中小數(shù)字,它會(huì)跳到文章結(jié)尾處的注釋:
點(diǎn)擊的「??」,它會(huì)跳回正文。
由上可見,link 和 footnote 不該混為一談。
然而,公眾號編輯器不支持 Markdown,如果要指明引用出處,唯一的辦法只能把和注釋混合,放在文末。例如,《圣約》的書評,注釋是這樣:
3、5、9 這幾條本應(yīng)是 link 而不是 footnote。
因此,發(fā)到公眾號后臺之前,必須把 Markdown 中的 link 轉(zhuǎn)換為 footnote。
轉(zhuǎn)換方法
解決的方法我能想到至少兩種。第一種簡單直接,寫一段 HTML code,然后生成 rich text 即可。例如上面那首詩,HTML 可以這樣:
輸出的結(jié)果是:
看起來還是不錯(cuò)的,現(xiàn)在把結(jié)果復(fù)制到公眾號編輯器,應(yīng)該可以正常顯示。
當(dāng)然了,這種文本手寫是不可能的,但其實(shí) HTML 看起來麻煩,實(shí)際非常簡單,模式千篇一律,可以寫一個(gè) Shortcut,無論有多少個(gè)腳注,一鍵轉(zhuǎn)換。
第二種方法是保留 footnote,只把 link 轉(zhuǎn)換成 footnote,然后再生成 rich text,效果差不多,我用的就是這種方法,下面說一下這個(gè) Shortcut 的流程。
Shortcut
現(xiàn)在的問題相當(dāng)于,如下文本,
[title 1](link1)Some texts here
[title 2](link2)
More texts here
如何轉(zhuǎn)換為:
[^title 1]Some texts here
[^title 2]
More texts here
[^title 1]: link1
[^title 2]: link2
直接上完整的 Shortcut:
解析:
「[(.*?)]((.*?))」是一段正則表達(dá)式,它的作用是匹配文中所有形如 []() 的組合,即 link,無論括號中是什么。
循環(huán),有多少個(gè) link,就循環(huán)多少次。每個(gè)循環(huán),執(zhí)行下面 3-7 步。
這個(gè)正則表達(dá)式匹配 [],即文字部分,結(jié)果保存在標(biāo)量「Title」中。
匹配 (),即網(wǎng)址,結(jié)果保存在標(biāo)量「Link」中。
原來是 [Title](Link) ,經(jīng)過重組,變成了[^Title]: Link,即一條 footnote,這是放在文末那一部分。
把文本中的 [Title](Link) 換成 [^Title]。
每次循環(huán)結(jié)束,更新一下全文,這一步很重要,否則最后得到的結(jié)果是沒替換過的原始版本。
這里的「Input」是替換過的文章正文,「Footnote」是一個(gè)數(shù)組,每一個(gè)元素是一條 footnote,它放在文章最后。
Run 這個(gè) Shortcut,輸出結(jié)果就是上上張圖所顯示的。另外,截圖中最上面的 Text 是我用來測試的,最后要用實(shí)際文本替換。
這個(gè) Shortcut 還是很簡單的,但同樣,它能節(jié)省我大量無用操作。無論多少個(gè) link,幾秒鐘搞定。
下一步
iA Writer、Shortcuts、Working Copy 這幾個(gè) app 是我用 iPad 寫東西的最重要的工具。Working Copy 還沒說過,它是 iOS 的 GitHub 客戶端,自從 GitHub 私有倉庫免費(fèi)之后,我就把我所有的文本都保存在 GitHub 了。沒有 Working Copy,要 Push/Pull,就只能用 GitHub API(和上一篇傳圖的道理類似),有了 Working Copy,一切都很簡單了,操作 Git 的文件,就像普通文件夾,復(fù)制、粘貼等等,非常方便。更妙的是,Working Copy 和 Shortcuts 集成非常好,我可以用它去「Git」一張圖片,重命名,然后把圖片改成 iA Writer 的 Content Block 語法,再打開 iA Writer 粘貼進(jìn)去,這一切操作只要一個(gè) Shortcut 就自動(dòng)搞定,這是后話。
另外,關(guān)于定制主題,上次我說:
如果嫌樣式不好看,可以自己修改 HTML,然后寫一個(gè)腳本,以后每篇文章都做同樣修改。如果不會(huì)寫,可以用前面提到的在線轉(zhuǎn)換工具,再去后臺粘貼。
以及
前面說過,這些工具無非就是應(yīng)用一套定義好的 HTML + CSS。因此,更好的 DIY 方式是,自己定義一個(gè)公眾號專用主題,iA Writer 以及 Ulysses 等編輯器都支持自定義主題模版
后來我發(fā)現(xiàn),其實(shí)解決辦法非常簡單,寫一段 CSS,放在每篇文章最前面就可以了,也是一個(gè) Shortcut 搞定。
這樣,有了上一篇,本文,以及我接下來要說的 Working Copy,CSS 模版,這四篇文章差不多能完整說明的我的「寫作流」了。
最后,有人可能要說,寫文章不就是寫字嗎?為什么要搞的這么麻煩呢?
這是對「效率」的誤解,我所做的,不過是把重復(fù)的工作自動(dòng)化而已。這樣做的根本目的是,你可以只關(guān)注內(nèi)容,而不必在意格式。試想那些第三方編輯器,你每寫一篇文章,都要把排版所做的所有工作重復(fù)再做一遍,這不才是最麻煩的嗎?如果一鍵搞定標(biāo)題、圖片、鏈接、顏色、行距、等等,豈不才是最效率的方法?這樣你能夠把最重要的精力放在文字上。
當(dāng)然,方法有很多,效率也有高低,我的方法只是依照我的習(xí)慣(我只用 iPad,不用電腦,偏愛 Shortcut,并用 GitHub 管理)。
希望我的文章拋磚引玉,促使你思考自己的方法。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的ios markdown 解析_Shortcuts 教程:正则表达式修改 Markdown 链接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么安装python3.6.2_cent
- 下一篇: 非确定性算法_带你从不同角度了解强化学习