前言
想發布已經寫好的MarkDown文檔,需要手動調整的地方只有圖片。原因是默認插入的圖片太大的話,圖片會占滿屏幕,導致瀏覽不便。
個人體驗:常見的橫屏情況下,一張圖片不宜超過2/3屏幕高度,主體內容不宜超過2/3屏幕寬度,這樣瀏覽起來最順心。
本地筆記編輯使用的是VNote,是本人經過很長一段時間的查詢、篩選與試用,比較喜歡且穩定使用的一款Markdown編輯軟件。使用起來比其他的更加得心應手,兼具速度、顏值以及自定義功能。
由於本地圖片的插入,在VNote的.md文檔內是這樣一段文本,直接復制到網上的話需要重新進行處理。

要想完全跟本地筆記顯示的樣式一樣,還是需要花費一番時間,過程挺折騰的。
過程
博客園后台有三種編輯器可選:TinyMCE、Markdown、TextBox,個人理解如下。
-
TextBox 跟Windows自帶的記事本一樣,最最精簡(功能最少),不考慮。
-
TinyMCE 類似word,富文本編輯器,功能最多(按鈕也多)。
此編輯器下,可以對插入的圖片手動調整大小,但不精確。不過可以進入HTML源碼編輯器,搜索png,在alt="" 后面插入 width="500"。
此方法是可以實現問題需求的,但是需要先一張張找到圖片的位置,再每一串圖片代碼后面都得加上后續的高寬。
就算用正則表達式其實也需要繁瑣的幾步,想到后續發文每次都得這樣的話,還不累死,此方法也pass。

-
MarkDown 不用多說了,互聯網使用最多不敢說,但應該是現在最為推崇的一種碼字寫文方式,用內容控制樣式。
方便程度介於前兩者之間,其實對我來說有時候還是比較麻煩的,ahk的簡化輸入幫了很大的忙。
目前還沒有找到在博客園的MarkDown編輯器內修改圖片寬度的方法。
例如下圖第一三四行這樣的寫法,圖片無法正常顯示,第二行的圖片可以正常顯示。


解決
尋求問題解決辦法,搜索引擎。主要參考了這個問題下的回答,五花八門,在博客園編輯器試了下。
Markdown中插入圖片怎么定義圖片的大小或比例?
-
嵌入HTML代碼,使用img標簽,加上width = "300",或者width = "80%" 。
<img src="./xxx.png" width = "300" height = "200" alt="圖片名稱" align=center />
已經屬於HTML的屬性了,能修改。其實MarkDown內也有效,但不是原生的,總感覺不太好。
實在沒辦法的話,就用它吧,需要將MarkDown的![]()標簽轉化為HTML的img標簽。
當然是得批量處理,正則表達式出手,除了!,[]()都需要用\進行轉義。
方括號跟圓括號在Markdown里面也需要轉義,上面偷懶直接代碼表示了,實際得輸入對應的ASCII碼。
查找^!\[\]\((.*cnblogs.com/blog/.*)\),替換<img src="$1" width = "500" />。
對比一下,第一行是默認上傳后的,第二張是處理后的。


<img src="https://img2018.cnblogs.com/blog/1816212/201911/1816212-20191106005633853-668571180.png" width = "500" />

此方法好處在於能夠精確修改每一張圖片的大小,配合Quicker的快捷操作一點都不麻煩,最優解。 -
使用支持圖片大小更改操作的 Mou 編輯器,加上=100x100。

此方法在本地能生效,按理來說是最有希望的,但是在博客園的MarkDown編輯器內失效。 -
在圖片后面加上對應的CSS樣式,加上{:height="100px" width="400px"}。
{:height="100px" width="400px"}
在博客園的MarkDown編輯器內無效,經查詢是kramdown中InlineAttribute的特性。 -
找一個支持參數的圖床,比如七牛,具體參見圖片基本處理 (imageView2)
http://siwangxinyuan.qiniudn.com/jianshu-42-1280x800-%5BDesktopNexus.com%5D.jpg?imageView/2/w/619/q/90
非特殊需求,博客園發文就不用圖床外鏈了,不好管理,而且直接復制圖片更方便。 -
mweb編輯器,加上-w數字,數字為縮放大小。

此種方法應該是知乎的MarkDown編輯器支持。不過博客園的測試了下,果然不行。 -
直接修改css文件,添加圖片樣式,再在MarkDown內應用。
img[src*="#width-full"] { width: 100%; } 
可以添加幾種常用的樣式,對圖片進行操作,除了高寬,其他css樣式也可以應用。 -
直接修改css文件,對圖片的最大寬度進行限制。
img { max-width: 80%; }
此方法應該是次優解,避免部分圖片默認尺寸過大同時不影響其他圖片大小。完善之后,能夠一勞永逸~
拓展
到目前為止, Markdown 還沒有辦法指定圖片的寬高,如果你需要的話,你可以使用普通的
<img>標簽。
原來在保存的這篇MD語法中,已經說明了這個問題。個人覺得算是Markdown本身的一個瑕疵吧,畢竟這個問題能原生解決的話,對於純MD文檔的寫作已經預覽效果都是更好的。
而且對於像我這種強迫症來說,這個問題MD不解決,有點小遺憾,希望原生也能支持修改圖片高寬樣式。
Daring Fireball: Markdown Syntax Documentation
再去MarkDown官方文檔里面確認一下,的確也有說到目前的語法不支持指定圖像的尺寸,建議用HTML的<img>標簽。
As of this writing, Markdown has no syntax for specifying the dimensions of an image; if this is important to you, you can simply use regular HTML
<img>tags.
挖坑
在以上嘗試過程中,新問題冒出來了:Mou編輯器、mweb編輯器,kramdown是什么,與MarkDown有什么聯系與區別?
再多一點的問題,各類文本編輯器與其渲染效果,有哪些坑?有沒有像瀏覽器與渲染樣式那種測評表格?(想法太多了,別打我(;≧皿≦))
