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

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...