感覺博客缺少一個代碼高亮插件, 所以我就挑了一個免費的, 功能比較多的插件 Enligher 安裝到博客.
好用但是挺好用, 但是好像和當前的主題不太兼容, 具體症狀請見下圖:
可以看見, 不管是編輯器還是實際文章, 這個插件都有兼容性問題.
所以我馬上要做的事情, 就是找出問題並自己解決掉.
我沒有學過任何關於 CSS 或者 JS 的知識, 以下所有紀錄都來源於常識… 如果我有哪邊做錯, 歡迎在評論區指正😄
(下文所有的修改都會寫在文末的 patch 文件中)
編輯器部分
錯位修正
這個比較簡單, 修改 enlighter/resources/gutenberg/enlighterjs.gutenberg.min.css , 如下所示:
div[data-type="enlighter/codeblock"] { border: 1px solid #cccbcb; border-radius: 5px; /* max-width: 100%; */ padding: 15px }
刪除/移動 干擾信息
右下角的提示 “EnligherJS Syntax Highlighter” 一直都在那裡, 非常佔空間而且還會產生打擾的效果, 所以我們不能讓它達到目的, 可以直接把它刪掉. 另外, 左上角的粗體字提示 Highlighting 種類未免有些太過喧賓奪主, 要是可以把它移到右下角的話豈不完美.
所以我就將 enlighter-footer
的部分刪掉, 然後將 enlighter-title
的部分移到 原來的 footer
的部分. 目前一切進行的都比較順利.
wp.element.createElement("div", { className: "enlighter-header" }, /*wp.element.createElement("div", { className: "enlighter-title" }, (e = t.language, s()[e] || "Unknown language"))), wp.element.createElement(u, { value: t.content, onChange: function (e) { return n({ content: e }) }, placeholder: "Insert Sourcecode..", "aria-label": "Code" }),*/ /*wp.element.createElement("div", { className: "enlighter-footer" }, wp.element.createElement("div", { className: "enlighter-footer-label" }, wp.element.createElement("strong", null, "EnlighterJS"), " Syntax Highlighter"))*/ wp.element.createElement(u, { value: t.content, onChange: function (e) { return n({ content: e }) }, placeholder: "Insert Sourcecode..", "aria-label": "Code" }), wp.element.createElement("div", { className: "enlighter-footer" }, wp.element.createElement("div", { className: "enlighter-footer-label", }, (e = t.language, s()[e] || "Unknown language")))),
美化
到這一步, 編輯器 Enlighter 區塊的效果是這個樣子的:
從使用的角度來說, 它已經夠用了.
但是右下角的那一行字總覺得有點不和諧.
所以我就把它往下移動了一點點, 並且加粗.
div[data-type="enlighter/codeblock"] { border: 1px solid #cccbcb; border-radius: 5px; padding: 15px; padding-block-end: 1px /* New */ } div[data-type="enlighter/codeblock"] .enlighter-footer-label { text-align: right; font-size: 10px; font-family: Menlo,Consolas,monaco,monospace; color: #23282d; cursor: pointer; padding-top: 3px; /* New */ font-weight: 800 /* New */ }
( 以上所有代碼全部由我目測得到, 且並不理解其含義, 均未考慮兼容性. 使用前請再三考慮 )
現在感覺好多了 👌
網頁展示部分
EnlighterJS 官網按鈕倒不難去掉, 插件提供了開關可以直接把它關掉.
那麼接下來要做到就是適配暗黑模式.
適配暗黑模式的話… (撓頭) 要改的變量好像有點太多了, 暫時就不寫了吧.
本身 MDX 的暗黑模式就不太好看, 我的解決方法就是 徹 . 底 . 不 . 開 ! 這下不會有問題了吧?