讓 Vuepress 支持圖片放大功能

前兩天接觸到了 Vuepress,顏值很高,界面簡潔,容易上手。因而打算把博客從 hexo 遷移過去。css

可是發現圖片是不能點擊的。Markdown 在渲染的時候連 a 標籤都沒有添加,不只不能直接點,也不能放大。然而個人博客中是有不少大圖的,因此這個功能是剛需。html

我試了下最新版本 1.x alpha 仍是沒有這個功能。因此直接本身動手了。vue

因爲我並不熟悉 vue,因此從源代碼上改比較困難。jquery

最後我使用了 fancybox 庫,並開發了一個輔助 VSCode 插件。ajax

引入 fancybox

.vuepress/config.js 文件的 head 標籤中能夠直接添加 fancybox 的 cdn,因爲它依賴 jquery,因此還要引入 jquery。bash

module.exports = {
    head: [
        // add jquert and fancybox
        ['script', { src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js' }],
        ['script', { src: 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.2/jquery.fancybox.min.js' }],
        ['link', { rel: 'stylesheet', type: 'text/css', href: 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.2/jquery.fancybox.min.css' }]
    ],
    themeConfig: {
        // your config
    }
}
複製代碼

而後修改圖片的 markdownmarkdown

![xx](sss)
複製代碼

將上面的這種格式修改成下面這種,手動添加 a 標籤、data-fancyboxhref 屬性便可。hexo

<a data-fancybox title="xx" href="sss">![xx](sss)</a>
複製代碼

可是這樣手動添加太麻煩了,而且想取消掉也不方便。ui

因此我寫了一個 VSCode 插件,來批量格式化。spa

使用插件格式化

VScode 商店搜索 vuepress-img-format 安裝便可。

調用命令 img format 能夠格式化當前文檔的全部圖片,img reset format 能夠重置格式化,效果以下:

固然也可使用內置的快捷鍵:

快捷鍵 格式化 重置格式化
Windows/Linux Ctrl + Shift +8 Ctrl + Shift + 8
Mac Cmd + Shift + 8 Cmd + Shift + 9

格式完了以後就能夠點擊放大圖片了。

相關文章
相關標籤/搜索