cnblogs文章/MarkDown內如何調整圖片的寬度?


前言

想發布已經寫好的MarkDown文檔,需要手動調整的地方只有圖片。原因是默認插入的圖片太大的話,圖片會占滿屏幕,導致瀏覽不便。
個人體驗:常見的橫屏情況下,一張圖片不宜超過2/3屏幕高度,主體內容不宜超過2/3屏幕寬度,這樣瀏覽起來最順心。

本地筆記編輯使用的是VNote,是本人經過很長一段時間的查詢、篩選與試用,比較喜歡且穩定使用的一款Markdown編輯軟件。使用起來比其他的更加得心應手,兼具速度、顏值以及自定義功能。
由於本地圖片的插入,在VNote的.md文檔內是這樣一段文本,直接復制到網上的話需要重新進行處理。
![](_v_images/20190906211935038_10173.png =460x)
要想完全跟本地筆記顯示的樣式一樣,還是需要花費一番時間,過程挺折騰的。

過程

博客園后台有三種編輯器可選:TinyMCE、Markdown、TextBox,個人理解如下。

  • TextBox 跟Windows自帶的記事本一樣,最最精簡(功能最少),不考慮。

  • TinyMCE 類似word,富文本編輯器,功能最多(按鈕也多)。
    此編輯器下,可以對插入的圖片手動調整大小,但不精確。不過可以進入HTML源碼編輯器,搜索png,在alt="" 后面插入 width="500"。
    此方法是可以實現問題需求的,但是需要先一張張找到圖片的位置,再每一串圖片代碼后面都得加上后續的高寬。
    就算用正則表達式其實也需要繁瑣的幾步,想到后續發文每次都得這樣的話,還不累死,此方法也pass。

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

解決

尋求問題解決辦法,搜索引擎。主要參考了這個問題下的回答,五花八門,在博客園編輯器試了下。
Markdown中插入圖片怎么定義圖片的大小或比例?

  1. 嵌入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" />
    對比一下,第一行是默認上傳后的,第二張是處理后的。
    ![](https://img2018.cnblogs.com/blog/1816212/201911/1816212-20191106005633853-668571180.png)

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

    此方法好處在於能夠精確修改每一張圖片的大小,配合Quicker的快捷操作一點都不麻煩,最優解。

  2. 使用支持圖片大小更改操作的 Mou 編輯器,加上=100x100。
    ![](./pic/pic1_50.png =100x100)
    此方法在本地能生效,按理來說是最有希望的,但是在博客園的MarkDown編輯器內失效。

  3. 在圖片后面加上對應的CSS樣式,加上{:height="100px" width="400px"}。
    ![test image size](url){:height="100px" width="400px"}
    在博客園的MarkDown編輯器內無效,經查詢是kramdown中InlineAttribute的特性

  4. 找一個支持參數的圖床,比如七牛,具體參見圖片基本處理 (imageView2)
    http://siwangxinyuan.qiniudn.com/jianshu-42-1280x800-%5BDesktopNexus.com%5D.jpg?imageView/2/w/619/q/90
    非特殊需求,博客園發文就不用圖床外鏈了,不好管理,而且直接復制圖片更方便。

  5. mweb編輯器,加上-w數字,數字為縮放大小。
    ![知乎頭像-w70](https://pic3.zhimg.com/v2-0a80d2f61233518a3719179a045c41b2_xl.jpg)
    此種方法應該是知乎的MarkDown編輯器支持。不過博客園的測試了下,果然不行。

  6. 直接修改css文件,添加圖片樣式,再在MarkDown內應用。
    img[src*="#width-full"] { width: 100%; } ![trump.jpg](https://view.moezx.cc/images/2018/05/27/trump.jpg#width-full)
    可以添加幾種常用的樣式,對圖片進行操作,除了高寬,其他css樣式也可以應用。

  7. 直接修改css文件,對圖片的最大寬度進行限制。
    img { max-width: 80%; }
    此方法應該是次優解,避免部分圖片默認尺寸過大同時不影響其他圖片大小。完善之后,能夠一勞永逸~

拓展

完整版·Markdown 語法說明(簡體中文版)

到目前為止, 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有什么聯系與區別?
再多一點的問題,各類文本編輯器與其渲染效果,有哪些坑?有沒有像瀏覽器與渲染樣式那種測評表格?(想法太多了,別打我(;≧皿≦))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM