我是基于 deepseek v3 的 AI 助手
**摘要:** shokaX 是 shoka 主题的二次开发版本,旨在提供一个更易使用和开发的主题。尽管目前尚未发布正式版,但用户可以通过 GitHub 获取开发版进行测试。shokaX 支持多种功能,包括多种评论系统(如 twikoo、gitalk、giscus 和 waline)、原生 PWA 支持、自定义字体、CSS 渐变封面、小组件、现代化的插件系统以及 TypeScript 类型标注等。文章还详细介绍了如何安装和配置 shokaX 主题,包括使用特定的 Markdown 渲染器、修改配置文件以及停用默认代码高亮等步骤。shokaX 采用 GPL 3 协议开源,欢迎开发者参与贡献。如果你对主题有建议或发现 BUG,可以通过 GitHub 提交反馈。
# shokaX 是什么
一个 shoka 主题 的二次开发版,截止文章发布时尚无正式版 (github 中的开发版可供测试使用)
shokaX 的目标是建设一个更易使用和开发的主题,截止此文章写就时支持如下功能:
- 支持 twikoo、gitalk、giscus 和 waline 评论系统
- 原生 PWA 支持
- 注入 js 和 css 支持
- 自定义 font
- CSS 渐变作为文章封面
- 一些小组件
- 现代化的插件系统
- 使用 typescript 进行类型标注
shokaX 仍在开发中,发现 BUG 或有建议 点我 跳转到 github 仓库
本主题采用 GPL 3 协议开源,欢迎 fork 和提交 PR
npm 上的主题包名为 hexo-theme-shokax
# 如何安装?
# 安装主题
shokaX 的安装基本与 shoka 相同,但是 md 渲染器需要使用 hexo-renderer-multi-next-markdown-it
shokaX-CLI
只负责安装主题,配置见下文
在执行下面的命令前请使用 hexo init
初始化 hexo 环境
npm install shokax-cli --location=global | |
SXC install shokaX |
如果从 shoka 主题迁移,请卸载 hexo-symbols-count-time
插件
# 更改配置
更改根目录 _config.yml
中的 theme
为 shokaX
(SXC 默认 origin 或 npm 安装修改为 shokax
)
请注意,本主题仅在 npm 上使用的是 shokax
, 其他情况下均为 shokaX
下面的配置大部分与 shoka 相同:
markdown: | |
render: # 渲染器设置 | |
html: false # 过滤 HTML 标签 | |
xhtmlOut: true # 使用 '/' 来闭合单标签 (比如 <br />)。 | |
breaks: true # 转换段落里的 '\n' 到 <br>。 | |
linkify: true # 将类似 URL 的文本自动转换为链接。 | |
typographer: | |
quotes: '“”‘’' | |
plugins: # markdown-it 插件设置 | |
- plugin: | |
name: markdown-it-toc-and-anchor | |
enable: true | |
options: # 文章目录以及锚点应用的 class 名称,shoka 主题必须设置成这样 | |
tocClassName: 'toc' | |
anchorClassName: 'anchor' | |
- plugin: | |
name: markdown-it-multimd-table | |
enable: true | |
options: | |
multiline: true | |
rowspan: true | |
headerless: true | |
- plugin: | |
name: ./markdown-it-furigana | |
enable: true | |
options: | |
fallbackParens: "()" | |
- plugin: | |
name: ./markdown-it-spoiler | |
enable: true | |
options: | |
title: "你知道得太多了" | |
minify: | |
html: | |
enable: true | |
exclude: # 排除 hexo-feed 用到的模板文件 | |
- '**/json.ejs' | |
- '**/atom.ejs' | |
- '**/rss.ejs' | |
css: | |
enable: true | |
exclude: | |
- '**/*.min.css' | |
js: | |
enable: true | |
mangle: | |
toplevel: true #如果 js 压缩错误请删除此行 | |
output: | |
compress: | |
exclude: | |
- '**/*.min.js' | |
autoprefixer: | |
exclude: | |
- '*.min.css' | |
# 请注意,如果使用 SXC 的默认 origin 或者 npm 安装主题,请不要使用下面的 feed 配置 | |
feed: | |
limit: 20 | |
order_by: "-date" | |
tag_dir: false | |
category_dir: false | |
rss: | |
enable: true | |
template: "themes/shokaX/layout/_alternate/rss.ejs" | |
output: "rss.xml" | |
atom: | |
enable: true | |
template: "themes/shokaX/layout/_alternate/atom.ejs" | |
output: "atom.xml" | |
jsonFeed: | |
enable: true | |
template: "themes/shokaX/layout/_alternate/json.ejs" | |
output: "feed.json" |
如果使用 SXC 的默认 origin 或者 npm 安装主题,feed 配置如下:
feed: | |
limit: 20 | |
order_by: "-date" | |
tag_dir: false | |
category_dir: false | |
rss: | |
enable: true | |
template: "node_modules/hexo-theme-shokax/layout/_alternate/rss.ejs" | |
output: "rss.xml" | |
atom: | |
enable: true | |
template: "node_modules/hexo-theme-shokax/layout/_alternate/atom.ejs" | |
output: "atom.xml" | |
jsonFeed: | |
enable: true | |
template: "node_modules/hexo-theme-shokax/layout/_alternate/json.ejs" | |
output: "feed.json" |
停用默认代码高亮 (将下面两项更改为 false
):
highlight: | |
enable: false | |
prismjs: | |
enable: false |
搜索功能配置:
algolia: | |
appId: #Your appId | |
apiKey: #Your apiKey | |
adminApiKey: #Your adminApiKey | |
chunkSize: 5000 | |
indexName: #"shokaX" | |
fields: | |
- title #必须配置 | |
- path #必须配置 | |
- categories #推荐配置 | |
- content:strip:truncate,0,2000 | |
- gallery | |
- photos | |
- tags |