导航菜单
登录 注册

主题简介

基于 Typecho 模板增强了一系列功能。

主题功能

  • 全站 Pjax
  • 主题切换
  • 自带 TOC 功能
  • 侧边栏开关
  • 字数统计
  • 图片增强(压缩,灯箱,懒加载)
  • 评论定位显示
  • 统计代码设置

主题缺点

(暂无)

主题截图

default-ultra截图
default-ultra截图

主题使用

安装说明

  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、下载主题文件压缩包。
    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 地址归属地信息功能需要配合该插件使用。
  2. 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>

主题历史

(暂无)

资源预览

资源下载

LIFET 纯文字主题
上一篇