Typecho default-ultra 主题使用说明与注意事项
AI 摘要
主题安装说明
1.环境说明
温馨提示:default-ultra 主题目前仅在 Typecho 1.2.1、PHP 56 ~ PHP84、MySQL 56 ~ MySQL 84/PostgreSQL 17.6/SQLLite 环境下测试通过,其他情况未作太多测试,如有问题可与我反馈。
推荐环境:Typecho 1.2.1、OpenResty/Nginx、PHP 8.4、MySQL 8。
2.首次安装
主题安装步骤:
1、在 Github 上下载最新的主题文件压缩包。
2、将主题文件压缩包上传至 Typecho 程序/usr/themes/ 目录下。
3、解压主题文件压缩包,并将解压后的文件夹命名为 default-ultra。
4、进入 Typecho 后台 - 控制台 - 外观 - 可以使用的外观,启用 default-ultra 主题。
5、进入 Typecho 后台 - 控制台 - 外观 - 设置外观,配置主题参数。注意:主题启用后,一定要根据自己的实际需求设置主题参数,否则大部分功能可能无法生效。
3.后续更新
主题更新注意事项:
1、主题更新步骤与首次安装步骤基本一致,在 Github 上下载最新的主题文件压缩包,上传覆盖即可。
2、如果对主题文件进行二次修改,请谨慎覆盖更新。
3、主题更新后,一定要根据自己的实际需求设置主题参数。
配套插件说明
1.ip2region
Typecho 主题配套的客户端 IP 地址归属地信息查询插件,开源于 visduo/typecho-ip2region-plugin。
注意:在 default-ultra 主题中,显示评论者 IP 地址归属地信息功能需要配合该插件使用。
插件安装步骤:
1、在 Github 上下载最新的插件文件压缩包。
2、将插件文件压缩包上传至 Typecho 程序/usr/themes/plugins 目录下。
3、解压插件文件压缩包,并将解压后的文件夹命名为 ip2region。
4、该插件即插即用,无需手动启用。
2.playback
Typecho 主题配套的文章放映插件,开源于 visduo/typecho-playback-plugin。
注意:在 default-ultra 主题中,文章放映功能需要配合该插件使用。
插件安装步骤:
1、在 Github 上下载最新的插件文件压缩包。
2、将插件文件压缩包上传至 Typecho 程序/usr/themes/plugins 目录下。
3、解压插件文件压缩包,并将解压后的文件夹命名为 playback。
4、进入 Typecho 后台 - 控制台 - 插件,启用 playback 插件。
3.AISummary
Typecho 主题配套的智能提取文章摘要插件,开源于 idealclover/AISummary-Typecho。
注意:在 default-ultra 主题中,AI 文章摘要需要配合该插件使用。
插件安装与使用参考:https://github.com/idealclover/AISummary-Typecho
插件设置 - 自定义样式:
<style>
.aisummary {
background-color: var(--muted-color);
border-radius: 12px;
padding: 12px;
border: 1px solid var(--border-color);
margin-bottom: 0!important;
color: var(--text-color)
}
.aisummary + :not(h1) {
padding-top: 2em!important
}
.ai-text-container {
background-color: var(--bg-color);
border-radius: 8px;
padding: 12px 15px;
border: 1px solid var(--border-color);
margin-bottom: 8px
}
.ai-header {
margin-bottom: 8px;
padding-bottom: 0!important;
text-align: left;
display: flex;
align-items: center;
text-indent: 0
}
.ai-footer {
font-size: .92857em;
color: var(--secondary-color);
margin-bottom: 0;
padding-bottom: 0!important;
text-align: left;
text-indent: 0
}
.ai-hidden-text {
display: none
}
.ai-typewriter-text {
display: inline;
text-indent: 2em
}
.ai-cursor {
display: inline-block;
width: 2px;
height: 1em;
background-color: var(--link-color);
margin-left: 2px;
animation: ai-blink 0.7s infinite;
vertical-align: middle
}
@keyframes ai-blink {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
</style>
<script>
let aiSummaryTypingTimeoutId = null;
function initAISummary() {
const typewriterElement = document.querySelector('.ai-typewriter-text');
const sourceTextElement = document.querySelector('.ai-hidden-text');
const typingSpeed = 50;
if (!typewriterElement || !sourceTextElement) return;
if (aiSummaryTypingTimeoutId) {
clearTimeout(aiSummaryTypingTimeoutId);
}
let textToType = sourceTextElement.textContent.trim();
if (textToType.length > 0) {
textToType = ' ' + textToType;
}
typewriterElement.textContent = '';
let charIndex = 0;
function typeNextCharacter() {
if (charIndex < textToType.length) {
typewriterElement.textContent += textToType.charAt(charIndex);
charIndex++;
aiSummaryTypingTimeoutId = setTimeout(typeNextCharacter, typingSpeed);
} else {
aiSummaryTypingTimeoutId = null;
}
}
typeNextCharacter();
}
</script>插件设置 - 正文摘要前后固定文字:
<p class="ai-header">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M3 10a4 4 0 0 1 4 -4h10a4 4 0 0 1 4 4v6a4 4 0 0 1 -4 4h-10a4 4 0 0 1 -4 -4v-6z" />
<path d="M8 3l2 3" />
<path d="M16 3l-2 3" />
<path d="M9 13v-2" />
<path d="M15 11v2" />
</svg>
AI 摘要
</p>
<div class="ai-text-container">
<div class="ai-hidden-text">{{text}}</div>
<div class="ai-typewriter-text"></div>
<span class="ai-cursor"></span>
</div>
<p class="ai-footer">此摘要根据文章内容自动生成,仅用于文章内容的解释与总结</p>主题设置说明
1.基础设置
| 名称 | 描述 |
|---|---|
| 是否启用全站 PJAX | 开启后,全站页面实现 PJAX 无刷新跳转 |
| favicon.ico 图标路径 | 用于指定网页 favicon 图标,即浏览器标签页上显示的小图标 |
| 版权信息 | 用于指定网页底部版权区域显示的内容 |
| 网站统计代码 | 用于指定网站统计工具(如百度统计、Google Analytics 等)的嵌入代码 |
2.主题模式设置
| 名称 | 描述 |
|---|---|
| 是否启用主题模式切换 | 开启后,全站支持切换亮色/深色/跟随系统模式 |
| 默认外观 | 用于指定未手动切换主题模式时全站的默认主题模式 可选:跟随系统/亮色模式/深色模式/护眼模式 |
3.顶部菜单设置
| 名称 | 描述 |
|---|---|
| 顶部菜单显示内容 | 用于指定网页顶部菜单显示的菜单项来源 可选:分类/独立页面 |
4.侧边栏设置
| 名称 | 描述 |
|---|---|
| 是否启用侧边栏 | 开启后,将显示网页侧边栏 推荐启用侧边栏 |
| 侧边栏显示内容 | 用于指定网页侧边栏显示的内容 可选:文章分类/最新合集/随机推荐/近期文章/近期评论/文章归档/数据统计 |
| 是否启用侧边栏粘性布局 | 开启后,侧边栏会在页面滚动过程中始终保持在可视区域内 |
5.文章设置
| 名称 | 描述 |
|---|---|
| 是否启用绕过图片防盗链服务 | 开启后,文章内的图片将自动调用绕过图片防盗链接口服务 处理外链图片(如微信公众号图片等)防盗链问题 |
| 是否启用图片懒加载 | 开启后,文章内的图片仅在用户即将浏览到时才加载,非一次性全部加载 |
| 是否启用图片灯箱 | 开启后,点击文章内的图片,即可让图片展开放大 |
| 是否显示文章字数 | 开启后,将在首页、文章列表页、文章页自动统计并显示文章字数 |
| 是否显示文章预计阅读时长 | 开启后,将在首页、文章列表页、文章页自动计算并显示文章预计阅读时长 |
| 默认阅读速度 | 用于计算文章预计阅读时长时,会根据文章字数和默认阅读速度进行估算 其单位为字/分钟 |
| 是否显示文章阅读数 | 开启后,将在首页、文章列表页、文章页自动计算并显示文章阅读数 |
| 随机生成文章阅读数最小值 | 用于文章发布后,会在设定的最小与最大值之间,为文章随机分配一个阅读数 |
| 随机生成文章阅读数最大值 | 用于文章发布后,会在设定的最小与最大值之间,为文章随机分配一个阅读数 |
| 文章外链新窗口打开 | 开启后,文章中的所有外链将自动在新窗口打开 |
| 是否显示文章声明 | 开启后,文章底部将显示文章声明内容 |
| 文章声明内容 | 指定文章底部显示的文章声明内容 |
6.评论设置
| 名称 | 描述 |
|---|---|
| 是否显示评论者 IP 地址归属地信息 | 开启后,将显示评论者 IP 地址归属地信息 该功能需要配合 ip2region 插件使用,请确保已安装 ip2region 插件 |
7.悬浮工具设置
| 名称 | 描述 |
|---|---|
| 是否启用 TOC | 开启后,将启用 TOC 并在网页右下角显示 TOC 按钮 |
| 是否自动打开 TOC 列表 | 开启后,将默认打开 TOC 面板 |
| 是否自动展开 TOC 列表项 | 开启后,将默认展开全部 TOC 列表项 |
| 是否启用主题模式切换按钮 | 开启后,将在网页右下角显示主题模式切换按钮 需同时开启主题模式切换 |
| 是否启用返回顶部按钮 | 开启后,将在网页右下角显示返回顶部按钮 |
| 是否启用文章放映模式按钮 | 开启后,将在网页右下角显示文章放映模式按钮 该功能需要配合 playback 插件使用,请确保已安装 playback 插件 |
其他问题帮助
1.后台外观设置时复选框无法保存
该问题是 Typecho 1.2.1 的 Bug,解决方法参考:https://www.duox.dev/post/40.html
2.ShortLinks 插件与 AISummary 插件冲突失效
该问题是插件钩子冲突的问题,解决方法参考:https://www.duox.dev/post/89.html
3.自定义 CSS 样式
进入 Typecho 后台 - 控制台 - 外观 - 编辑当前外观,打开模板文件 header.php,在 head 标签中添加 style 标签并自定义 CSS 代码,修改后保存文件即可。
注意:如果自定义了 CSS 样式,后续更新主题时,请谨慎覆盖模板文件 header.php。
4.修改全局字体
参考自定义 CSS 样式的方法,通过自定义主题字体变量即可修改全局字体。
:root {
--body-font-famliy: "内容字体"!important;
--code-font-famliy: "代码块字体"!important
}比如要将全局内容字体修改为霞鹜文楷,样式代码可以这样写:
/** 从字图CDN引入霞鹜文楷字体 **/
@import url("https://chinese-fonts-cdn.deno.dev/packages/lxgwwenkaibright/dist/LXGWBright-Regular/result.css");
/** 修改主题字体变量 **/
:root {
--body-font-famliy: "LXGW Bright"!important
}注意:如果修改了全局字体,后续更新主题时,请谨慎覆盖模板文件 header.php。
5.移除网页底部“Theme by duozai”信息
default-ultra 主题基于 MIT 开源协议,根据 MIT 协议的条款,不可以随意移除或修改原作品中包含的版权声明和许可信息。
当然如果真的想要移除,也是可以的 :)
进入 Typecho 后台 - 控制台 - 外观 - 编辑当前外观,打开模板文件 footer.php,找到对应的代码并将其删除,修改后保存文件即可。
6.添加“友情链接/邻居”页面
default-ultra 主题目前没有额外适配友情链接插件,也没有提供友情链接页面的独立页面模板,请直接添加独立页面不选择自定义模板,并通过 Markdown 相关语法添加友情链接列表。
- [标题](链接地址) 描述文本7.添加“归档”页面
default-ultra 主题目前没有提供归档页面的独立页面模板,请直接添加独立页面不选择自定义模板,并自行编写页面内容。
8.添加“时间轴”页面
default-ultra 主题目前已经提供时间轴页面的独立页面模板,请直接添加独立页面,自定义模板选择时间轴即可。
文章中可能会存在些许错别字内容描述不完整、表述不准确、排版布局异常等问题,文章中提及的软件、依赖、框架等程序可能随其版本更新迭代而产生变化,文章中的相关代码片段、例图、文本等内容仅供参考。
如若转载,请注明出处:https://www.duox.dev/post/65.html
你的博客我一直很喜欢很干货非常适合阅读分享
谢谢!
如果启用 Contribute 投稿插件,页面会无法打开。
经测试是插件没调试好,与主题无关。
我看 Contribute 插件也挺久没更新了,可能不适配 typecho 最新版?
我去太好看,这网页
主题做的真不错!