博客添加評論功能及定製化樣式

来源:https://www.cnblogs.com/edisonfish/p/18164319
-Advertisement-
Play Games

哈嘍大家好,我是鹹魚。(博客網址: https://xxxsalted.github.io/) 在搭建了博客並換了主題之後,發現有許多細節方面的東西還需要完善和定製化一下,比如說行距和引用的樣式我不是很喜歡,以及沒有評論功能。 於是決定自己動手,說乾就乾。 PS:下文的修改操作僅限於博客主題(Kli ...


哈嘍大家好,我是鹹魚。(博客網址: https://xxxsalted.github.io/)

在搭建了博客並換了主題之後,發現有許多細節方面的東西還需要完善和定製化一下,比如說行距和引用的樣式我不是很喜歡,以及沒有評論功能。

於是決定自己動手,說乾就乾。

PS:下文的修改操作僅限於博客主題(Klise),不同主題的配置文件可能會不一樣,不過大體思路都是差不多的,即修改 scss | config | ejs 文件。

Valine 評論系統

搜了網上的教程,決定採用 Valine 來實現博客評論功能。

因為 Valine 的存儲是基於 LearnCloud 的,所以我們要先註冊一個 LeanCloud 賬號。

登錄之後進入【控制台】點擊【創建應用】

應用創建好以後,進入剛剛創建的應用,選擇左下角的【設置】 > 【應用憑證】,然後就能看到你的 APP IDAPP Key 了:

進入到你的博客根目錄,找到你對應主題的主配置文件 _config.yml,添加關於 Valine 的配置欄位。

comments:
  enable: true # 開啟評論系統
  type: valine # 採用哪種評論系統
  button: true
valine:
  enable: true
  appid: # 從 LeanCloud 的應用中得到的 appKey
  appkey: # 從 LeanCloud 的應用中得到的 appId.
  placeholder: "說點什麼吧!" # 評論框占位提示符
  path: window.location.pathname # 當前文章頁路徑,用於區分不同的文章頁,以保證正確讀取該文章頁下的評論列表。
  avatar: /img/redcat.jpg # Gravatar 頭像
  guest_info: nick,mail,link 
  pageSize: 10 # 評論列表分頁,每頁條數。
  recordIP: false # 是否記錄評論者IP
  serverURLs: # 該配置適用於國內自定義功能變數名稱用戶, 海外版本會自動檢測
  emojiCDN: # 設置表情包 CDN
  enableQQ: true # 是否啟用昵稱框自動獲取QQ昵稱和QQ頭像, 預設關閉

配置好之後進入 Git bash 視窗,重新生成一下靜態文件:

hexo clean

hexo g

在本地測試一下:

hexo s

但是發現沒有生效,一開始我還以為配置格式不對(yaml 格式要求比較嚴格),再三重覆確認了格式沒問題之後,還是沒有生效。

我就在想是不是沒有渲染出來,然後去到主題目錄下的 layout 目錄,發現了 valine.ejs 文件。

<博客根目錄>\Klise\layout\partials\_comments\valine.ejs

打開一看發現裡面居然沒有內容,然後網上搜了下資料,把相關內容複製粘貼了進去。

結果發現還是不行,是不是沒有去調用這個 ejs 文件?

打開 <博客根目錄>\Klise\layout\partials\_comments\index.ejs 文件查看驗證一下,果然如此。

<%- partial('partials/_comments/waline') %>

因為我們用的是 Valine,所以把 partials/_comments/waline 改成 partials/_comments/valine 即可。

再試一下,成功了!

樣式定製化

正文預設的行間距我不是很滿意,所以打算改一下,打開我們的博客網頁然後點擊 F12 查看網頁元素。

發現正文內容的樣式欄位在 post 類下的 p 標簽中,而且在 main.css 文件裡面。

但是這個 main.css 是動態生成的,即 hexo 生成 public 目錄的時候會去找 主題\source 目錄下的 sass 文件然後生成 main.css 文件。

所以我們想要修改樣式,就必須找到標簽樣式對應的 sass 文件。

我們找到主題目錄下的 main.scss 文件,發現他還引用了其他的 sass 文件

<博客根目錄>\themes\Klise\source\css\main.scss
// Import sass files
@import "partials/fonts","partials/base","partials/layout","partials/post","partials/miscellaneous","partials/dark";

一個一個去找,最後在 _post.scss 文件下發現了對應的配置欄位。

.post{
  ......
  p {
    margin-top: 8px;
    margin-bottom: 8px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  ......

接下來修改引用樣式對應的配置,原本引用樣式是兩端對齊的方式,而且還是斜體,我不是很喜歡。

發現還是在 _post.scss 文件下,然後修改如下:

.post blockquote p {
  font-size: 16px;
  font-style: normal;
  line-height: 1.8em;
  color: #999;
  text-align: start;
}

最後重新生成靜態文件併在本地驗證,沒什麼問題就把新修改的內容部署到 Git 上。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 在Linux文件系統中,每一個文件都有三個時間屬性,它們分別是atime,mtime,ctime,一般來說,atime比較好理解,但是很多時候,我們往往會混淆mtime和ctime這兩個時間屬性,或者搞不清楚兩者的區別。在展開介紹之前,我們先來看看如何查看文件的atime,mtime,ctime屬性 ...
  • 樹(tree) [一] 基本概念: ​ 日常生活中,很多數據的組織形式本質上是一棵樹。比如一個公司中的職員層級關係、一個學校中的院系層級關係、淘汰賽中的各次比賽隊伍、一個家族中的族譜成員關係等都是樹狀邏輯結構。由於樹狀結構表現出來都是具有層次的,因此也被稱為層次結構。 樹是一種非線性結構(一對多), ...
  • 數據結構 二叉樹 筆試題: 解題思路: 1.判斷是否為空樹,若為空樹,則返回0; 2.定義兩個指針備份根結點地址,定義兩個整型變數a,b並初始化為0,記錄左右子樹的深度;先對根結點的左子樹進行遍歷,若根結點的左結點不為NULL,則a++,把根結點的左結點賦值為新的根結點,再進行上述操作,若根結點的左 ...
  • 目錄通用許可權的管理擴展許可權的管理特殊許可權的管理許可權掩碼 在Linux中,許可權管理是通過文件系統中的許可權位來實現的。 通用許可權的管理 每個文件或目錄都有一個所有者、一個用戶組和其他用戶的許可權設置。主要的許可權包括讀取、寫入和執行。 文件許可權包括讀、寫和執行許可權: 讀許可權(r):允許用戶讀取文件的內容或列 ...
  • 在開始主題之前,先介紹一個刷固件工具。這個工具在 idf 中是集成的,不過,樂鑫也單獨發佈了這個工具—— esptool。下載鏈接:Releases · espressif/esptool · GitHub。這貨是用 Python 寫的,只是封裝成了 exe,方便直接運行罷了。 在使用時,需要 -p ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...