Typecho程序自带Markdown编辑器，收集了一些关于Markdown的常用的语法教程，以便后续的查阅使用。常用速览标题：# ## ### #### ##### ###### （依次为一至六级标题）格式：*斜体* **加粗** ***加粗加斜***分隔线：---删除线：~~删除线~~关键字:`文字`如：被强调的文字列表：无序列表：- + 或 *（符号后面要添加一个空格）有序列表使用数字并加上 . 号（点号）来表示区块引用区块引用是在段落开头使用 > 符号 ，然后后面紧跟一个空格符号。代码代码片段：如果是段落上的一个函数或片段的代码可以用反引号把它包起来（`）；代码区块：代码区块使用 4 个空格或者一个制表符（Tab 键）。也可以用 ` 包裹一段代码。链接链接使用方法：[链接名称](链接地址) 或者 <链接地址>转义使用反斜杠转义特殊字符，支持的符号 \ ` * _ { } [ ] ( ) # + - . !各种标签进度条，低百分比进度条，根据情境变化效果，条纹效果，堆叠效果，可用的变体以及警告框外链卡片调用例如在文章中调用其他文章时间线例如在文章中插入一条时间线计划表可自由定制属于自己的计划表标题使用 = 和 - 标记一级和二级标题= 和 - 标记语法格式如下：一级标题 ================= 二级标题 -----------------使用 # 号标记使用 # 号可表示 1-6 级标题，一级标题对应一个 # 号，二级标题对应两个 # 号，以此类推。# 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题段落与格式段落：Markdown 段落没有特殊的格式，直接编写文字就好，段落的换行是使用两个以上空格加上回车。字体：*斜体文本* _斜体文本_ **粗体文本** __粗体文本__ ***粗斜体文本*** ___粗斜体文本___显示效果：斜体文本 斜体文本粗体文本 粗体文本粗斜体文本 粗斜体文本分隔线：你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线，行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线：*** * * * ***** - - - ----------显示效果：删除线：如果段落上的文字要添加删除线，只需要在文字的两端加上两个波浪线 ~~ 即可，实例如下：~~文字上有删除线~~显示效果：文字上有删除线关键字：关键字的使用：在文本的两端分别加上英文的 (`) 这个符号。即键盘上Tab键的上面那一个键。注意是英文的情况下。例：`xxx`、`yyy`显示效果：xxx、yyy列表Markdown 支持有序列表和无序列表。无序列表无序列表使用星号(*)、加号(+)或是减号(-)作为列表标记，这些标记后面要添加一个空格，然后再填写内容：* 第一项 * 第二项 + 第一项 + 第二项 - 第一项 - 第二项 显示效果：第一项第二项有序列表有序列表使用数字并加上 . 号（点号）来表示，如：1. 第一项 2. 第二项 3. 第三项显示效果：第一项第二项第三项列表嵌套列表嵌套只需在子列表中的选项前面添加四个空格即可：1. 第一项： - 第一项嵌套的第一个元素 - 第一项嵌套的第二个元素 2. 第二项： - 第二项嵌套的第一个元素 - 第二项嵌套的第二个元素显示效果：第一项：第一项嵌套的第一个元素第一项嵌套的第二个元素第二项：第二项嵌套的第一个元素第二项嵌套的第二个元素区块引用Markdown 区块引用是在段落开头使用 > 符号 ，然后后面紧跟一个空格符号：> 区块引用 > 内容文字 > Markdown的区块引用显示效果：区块引用内容文字Markdown的区块引用另外区块是可以嵌套的，一个 > 符号是最外层，两个 > 符号是第一层嵌套，以此类推：> 最外层 > > 第一层嵌套 > > > 第二层嵌套显示效果：最外层第一层嵌套第二层嵌套代码代码片段：如果是段落上的一个函数或片段的代码可以用反引号把它包起来（`），例如：`printf()` 函数显示效果：printf() 函数代码区块：代码区块使用 4 个空格或者一个制表符（Tab 键）。也可以用 ` 包裹一段代码，并指定一种语言（也可以不指定），如：*```javascript //此处显示需要，使用请删除前面的*号 $(document).ready(function () { alert('5k5b.com'); }); *``` //此处显示需要，使用请删除前面的*号显示效果：$(document).ready(function () { alert('5k5b.com'); });链接链接使用方法如下：[链接名称](链接地址) 或者 <链接地址> 比如： 这是我的博客地址：[丛林小二](https://www.5k5b.com) 或者 <https://www.5k5b.com>显示效果：这是我的博客地址：TuJun’blog或者https://www.5k5b.com图片Markdown 图片语法格式如下：![alt 属性文本](图片地址) ![alt 属性文本](图片地址 "可选title标题") 比如： ![表情图片](https://img01.sogoucdn.com/app/a/200692/72_72_feedback_737d7a723ad349219d3ad188175ba19a.png)显示效果：表格Markdown 制作表格使用 | 来分隔不同的单元格，使用 - 来分隔表头和其他行。语法格式如下：| 表头 | 表头 | | ---- | ---- | | 单元格 | 单元格 | | 单元格 | 单元格 |显示效果：表头表头单元格单元格单元格单元格我们可以设置表格的对齐方式：-: 设置内容和标题栏居右对齐。:- 设置内容和标题栏居左对齐。:-: 设置内容和标题栏居中对齐。比如：| 占位-左对齐-占位 | 占位-居中对齐-占位 | 占位-右对齐-占位 | | :-----| :----: | ----: | | 单元格 | 单元格 | 单元格 | | 单元格 | 单元格 | 单元格 |显示效果：占位-左对齐-占位占位-居中对齐-占位占位-右对齐-占位单元格单元格单元格单元格单元格单元格支持的 HTML 元素不在 Markdown 涵盖范围之内的标签，都可以直接在文档里面用 HTML 撰写。目前支持的 HTML 元素有： 等，如：键盘使用 Ctrl+Alt+Del 重启电脑显示效果：键盘使用 Ctrl+Alt+Del 重启电脑转义Markdown 使用了很多特殊符号来表示特定的意义，如果需要显示特定的符号则需要使用转义字符，Markdown 使用反斜杠转义特殊字符：**文本加粗** \*\* 正常显示星号 \*\*显示效果：文本加粗 ** 正常显示星号 **Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号：\ 反斜线 ` 反引号 * 星号 _ 下划线 {} 花括号 [] 方括号 () 小括号 # 井字号 + 加号 - 减号 . 英文句点 ! 感叹号各种标签标签tag[tag]默认白色文字[/tag][tag type="primary"]紫色文字[/tag][tag type="info"]蓝色文字[/tag][tag type="warning"]黄色文字[/tag][tag type="danger"]红色文字[/tag][tag type="success"]绿色文字[/tag][tag type="dark"]黑色文字[/tag]代码：[ tag]默认白色文字[/tag] [ tag type="primary"]紫色文字[/tag] [ tag type="info"]蓝色文字[/tag] [ tag type="warning"]黄色文字[/tag] [ tag type="danger"]红色文字[/tag] [ tag type="success"]绿色文字[/tag] [ tag type="dark"]黑色文字[/tag]进度条带有提示标签的进度条将设置了 .sr-only 类的 标签从进度条组件中移除 类，从而让当前进度显示出来 60% 代码： 60% 低百分比进度条在展示很低的百分比时，如果需要让文本提示能够清晰可见，可以为进度条设置 min-width 属性 0% 2% 代码： 0% 2% 根据情境变化效果进度条组件使用与按钮和警告框相同的类，根据不同情境展现相应的效果。 40% Complete (success) 20% Complete 60% Complete (warning) 80% Complete (danger) 代码： 40% Complete (success) 20% Complete 60% Complete (warning) 80% Complete (danger) 条纹效果通过渐变可以为进度条创建条纹效果，IE9 及更低版本不支持。 40% Complete (success) 20% Complete 60% Complete (warning) 80% Complete (danger) 代码： 40% Complete (success) 20% Complete 60% Complete (warning) 80% Complete (danger) 堆叠效果把多个进度条放入同一个.progress 中，使它们呈现堆叠的效果。 35% Complete (success) 20% Complete (warning) 10% Complete (danger) 代码： 35% Complete (success) 20% Complete (warning) 10% Complete (danger) 可用的变体用下面的任何一个类即可改变标签的外观DefaultPrimarySuccessInfoWarningDanger代码：Default Primary Success Info Warning Danger警告框警告框组件通过提供一些灵活的预定义消息，为常见的用户动作提供反馈消息。............代码： ... ... ... ... 外链卡片调用title：必填，外链的名称/标题url：必填，外链的地址（请填写绝对地址，就是浏览器地址栏什么样的就填什么样的）intro：（可选）外链网站的简介/介绍cover：（选填）外链网站的介绍图片地址[post url="https://www.5k5b.com/archives/5.html" title="本博客之Typecho Handsome主题美化记录" intro="说明该站的所有修改项均在本文列出，实际效果看本站即可。若您也想拥有类似的效果，欢迎借鉴~~注意：以下代码..." cover="https://img02.sogoucdn.com/app/a/200692/1390_400_feedback_ff34a1de04da433b8a6fc0f7b59a2fa6.png" / ]代码：[ post url="https:\/\/www.ihewro.com" title="友人C" intro="一个个人博客" cover="https://**.png" / ]时间线[timeline title="2020大事记" type="small" start="梦开始的地方" end="新的一年开始"][item date="2020-1-20"] 武汉封城，疫情让一起变得慌乱起来 [/item][item date="2020-3-20"] 开始远程办公，慢慢有序起来[/item][item]生活变得好起来了[/item][item date="2020-10-1"] 国庆节去哈尔滨旅行，和老同学见面[/item][/timeline]代码：[timeline title="2020大事记" type="small" start="梦开始的地方" end="新的一年开始"] [item date="2020-1-20"] 武汉封城，疫情让一起变得慌乱起来 [/item] [item date="2020-3-20"] 开始远程办公，慢慢有序起来[/item] [item]生活变得好起来了[/item] [item date="2020-10-1"] 国庆节去哈尔滨旅行，和老同学见面[/item][/timeline]计划表计划表中包含了三种类型的任务：check类型，该类型任务只有两种状态，完成和未完成progress，该类型任务可以显示任务执行的进度，需要手动填写进度start、end，该类型任务设置一个起始时间和终止时间，进度会根据当前时间自动更新进度时间格式：必须是正确的时间格式，比如2021-01-02 12:00 ，也可以只写日期2021-01-02[goal title="2021的小目标"][item check="true"] 每天早睡 [/item][item check="false"] 每天早起 [/item][item progress="50%"] 阅读10本书 [/item][item start="2021-01-02" end="2021-10-1"] 每天锻炼30分钟 [/item][/goal]代码：[goal title="2021的小目标"] [item check="true"] 每天早睡 [/item] [item check="false"] 每天早起 [/item] [item progress="50%"] 阅读10本书 [/item] [item start="2021-01-02" end="2021-10-1"] 每天锻炼30分钟 [/item] [/goal]
60S每日早报[scode type="green"]解释一下每日60S早报的原理，通过调用接口输出一张图片，关键就在于接口。下面针对不同用户给出三种教程。[/scode]第一种：小白级别[scode type="blue"]仅输出每日早报图片，接口直接使用某大佬提供的，无自动更新的头图。[/scode]教程[scode type="red" size="small"]新建一篇文章，文章内容放入下方内容，文章标题设为每日60S早报，也可以自由发挥，然后发布即可[/scode]接口2![每日60S](https://api.03c3.cn/zb/)接口1![每日60S](https://api.4rz.cn/zbPhoto.jpg)第二种：基础级别与第一种一样仅输出每日早报图片，接口使用自己创建的，无自动更新的头图。教程[scode type="green" size="small"]前往 ALAPI 注册一个账号并登录。在 个人中心一栏复制Token,新增文章，然后复制下方代码粘贴进去，记得把Token改成你的。[/scode]![60s-for-news](https://v2.alapi.cn/api/zaobao?token=你的Token&format=image)第三种：全面级别[scode type="blue"]在前一教程基础上，建设自动更新文章头图[/scode]教程[scode type="blue" size="small"]复制下方代码，将代码中“你的Token”字样替换，然后网站根目录创建文件命名为60.php，将代码粘贴保存文件。这时候访问你的域名/60.php查看头图。Handsome建议使用该头图并将头图样式设置为图片样式。[/scode]<?php function curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua = 0, $nobaody = 0) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $httpheader[] = "Accept:application/json"; $httpheader[] = "Accept-Encoding:gzip,deflate,sdch"; $httpheader[] = "Accept-Language:zh-CN,zh;q=0.8"; $httpheader[] = "Connection:close"; curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader); if ($post) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } if ($header) { curl_setopt($ch, CURLOPT_HEADER, true); } if ($cookie) { curl_setopt($ch, CURLOPT_COOKIE, $cookie); } if ($referer) { if ($referer == 1) { curl_setopt($ch, CURLOPT_REFERER, 1); } else { curl_setopt($ch, CURLOPT_REFERER, $referer); } } if ($ua) { curl_setopt($ch, CURLOPT_USERAGENT, $ua); } else { curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.0.4; es-mx; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0"); } if ($nobaody) { curl_setopt($ch, CURLOPT_NOBODY, 1); } curl_setopt($ch, CURLOPT_ENCODING, "gzip"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret = curl_exec($ch); curl_close($ch); return $ret; } $a=curl('https://v2.alapi.cn/api/zaobao?token=你的Token'); $b=json_decode($a,true); $c=$b['data']['head_image']; $img=$b['data']['image']; if($_GET['s']=='image'){ die(header('location:'.$img)); }else{ die(header('location:'.$c)); } ?>说明[scode type="green"]alapi默认额度是每日200次调用，可以通过缓存策略或者CDN等方式来减少接口的调用次数。[/scode]原文地址：https://blog.qninq.cn/archives/60sjc.html
前言：之前在Handsome主题美化记录文章中推荐过一款名为CommentNotifier的评论邮件通知插件，这里给大家推荐另一个评论邮箱通知插件。CommentToMail[scode type="green"]样式上十分简洁美观，邮件模板采用气泡对话方式呈现。[/scode]预览[scode type="blue"]第三张预览图为Handsome版插件专属表情解析功能[/scode][album][/album]下载[button color="info" icon="download" url="https://rjw.lanzoul.com/i3cWE0avbq0j" type=""]Handsome专用版[/button]丨[button color="success" icon="download" url="https://rjw.lanzoul.com/ipH3A0avbq2b" type=""]pigeon专用版[/button]丨[button color="primary" icon="download" url="https://rjw.lanzoul.com/i13aG0avbq4d" type=""]其他主题使用[/button]
千篇一律的登录界面难免有点视觉疲劳，简单修改一下Typecho的后台登录界面，开启登录博客愉悦的一刻。修改文件：typecho系统文件\admin\login.php由于登录界面不需要额外的js代码，删除了文件中的下列代码：<?php include 'common-js.php'; ?>增加html代码： 增加CSS样式：.typecho-login-wrap { position: fixed; } .typecho-login {display: block;padding: 10px 20px;margin-top: 20vh;border-radius: 15px;-moz-box-shadow: 0 0 10px #ffffff;box-shadow: 0 0 15px 0px #868686;background: rgb(255 255 255 / 60%);} .i-logo{display: unset;background: unset;filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=55);opacity: 0.55;} input{outline: 0;} input:focus {box-shadow: 0 0 0 0.2rem rgb(167 191 232 / 25%);} body {display: flex;align-items: center;justify-content: center;}加入canvas动画js代码（可选）。修改后的login.php的内容如下：<?php include 'common.php'; if ($user->hasLogin()) { $response->redirect($options->adminUrl); } $rememberName = htmlspecialchars(Typecho_Cookie::get('__typecho_remember_name')); Typecho_Cookie::delete('__typecho_remember_name'); $bodyClass = 'body-100'; include 'header.php'; ?> TuJun's Blog <form action="<?php $options->loginAction(); ?>" method="post" name="login" role="form"> <?php _e('用户名'); ?> <input type="text" id="name" name="name" value="<?php echo $rememberName; ?>" placeholder="<?php _e('用户名'); ?>" class="text-l w-100" autofocus /> <?php _e('密码'); ?> <input type="password" id="password" name="password" class="text-l w-100" placeholder="<?php _e('密码'); ?>" /> <?php _e('登录'); ?> <input type="hidden" name="referer" value="<?php echo htmlspecialchars($request->get('referer')); ?>" /> <?php _e('下次自动登录'); ?> <a href="<?php $options->siteUrl(); ?>"><?php _e('返回首页'); ?> <?php if($options->allowRegister): ?> • <a href="<?php $options->registerUrl(); ?>"><?php _e('用户注册'); ?> <?php endif; ?> <?php include 'footer.php'; ?>
感觉在每个页面都把标签云显示出来会有点乱，但标签云的存在又有它自己的作用，于是想着将标签云单独在一个页面中罗列出来。新建一个名为：tags.php文件，填入以下代码后存放在模板目录下：<?php /** * 标签云 * * @package custom */ ?> <?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?> <?php $this->need('component/header.php'); ?> <?php $this->need('component/aside.php'); ?> <main class="app-content-body <?php echo Content::returnPageAnimateClass($this); ?>"> <?php echo Content::exportPostPageHeader($this,$this->user->hasLogin(),true); ?> <?php Content::BreadcrumbNavigation($this, $this->options->rootUrl); ?> <?php echo Content::exportHeaderImg($this); ?> <?php Typecho_Widget::widget('Widget_Metas_Tag_Cloud','ignoreZeroCount=1&limit=280')->to($tags); ?> <?php if($tags->have()): ?> <?php while ($tags->next()): ?> <span class="tt-badge" style="background-color:rgb(<?php echo(rand(0,255)); ?>,<?php echo(rand(0,255)); ?>,<?php echo(rand(0,255)); ?>)"><a href="<?php $tags->permalink();?>" target="_blank"> <?php $tags->name(); ?> <?php endwhile; ?> <?php endif; ?> <?php $this->need('component/sidebar.php'); ?> <?php $this->need('component/footer.php'); ?> 完成后，在后台创建独立页面，自定义模板选择刚刚新建的“标签云”模板，可以不用填入任何内容，直接发布便完成。具体效果可以预览本站：https://www.5k5b.com/tags.html
前言本篇文章是为了下一篇关于优化博客网站加载速度的文章来做铺垫的因为涉及到图片压缩后的Webp格式，且暂时Typecho貌似还不支持Webp格式的图片，所以有了这篇文章~注意：如果您没有十足的把握，十分建议您在更改之前现将主程序备份，防止不必要的麻烦！环境该篇博文针对的程序版本号如下，若您Typecho程序很旧可能不适用Typecho：1.2.0(正式版)方法1.修改Rows.php找到你的网站根目录/var/Widget/Themes/里面的Rows.php文件找到下面这行代码return preg_match("/screenshot\.(jpg|png|gif|bmp|jpeg)/i",$path);在jpeg后面添加一个webp，比如下面这样return preg_match("/screenshot\.(jpg|png|gif|bmp|jpeg|webp)/i",$path);改完保存退出2.修改contents.php找到你的网站根目录/var/Widget/Base/内的contents.php将557行的这行代码：$value['attachment']->isImage = in_array($content['type'], ['jpg', 'jpeg', 'gif', 'png', 'tiff', 'bmp']);在末尾添加webp，比如下面这样$value['attachment']->isImage = in_array($content['type'], ['jpg', 'jpeg', 'gif', 'png', 'tiff', 'bmp', 'webp']);改好后保存并退出~3.修改Common.php还是先找到网站根目录/var/Typecho/里面的common.php在1254行，即bmp相关内容的上方，添加下面这一行代码'bmp' => 'image/x-ms-bmp',改好后保存并退出4.最后一步这一步我们需要先去到网站的后台，找到设置-基本把允许上传类型里的其他格式打勾，并在后面加入webp，如图所示最后上述步骤完成后，现在去写文章并上传一个.webp格式的图片来看看是否生效吧~
[scode type="blue"]这篇文章作为本站美化的记录，有新增时会实时更新。[/scode][scode type="yellow"]如果您有好玩的效果也欢迎在评论区提出，若可以的话我也会加到文章并实现其效果。[/scode][scode type="green"]更新时间：2022年8月23日12:14:34[/scode]说明该站的所有修改项均在本文列出，实际效果看本站即可。若您也想拥有类似的效果，欢迎借鉴~~注意：以下代码出现/* */ 、 或//字符均为注释，即不会有实际效果，仅仅是给人看的一个标记。在这里不建议删除，因为会影响后期修改时的辨别。悉知~为了给小白讲明白，这里记录的已经很细了。老博主的话，拿着代码按自己意愿改即可，懂得都懂~本站环境Typecho：1.2.0正式版HandSome：8.4.1 Pro其他版本的Typecho和HandSome不确定其可行性，请自行测试~[collapse status="false" title="Handsome主题文件目录结构"]component/comments.php 评论区 component/footer.php 底部版权、音乐播放器之类 component/header.php 页面头，没啥要改的 component/headnav.php 顶部导航 component/say.php 时光机动态 component/sidebar.php 右侧栏目 component/third_party_comments.php 3.3.0新增，第三方评论 css/ 博客CSS，一般不要改 fonts/ 博客字体，一般不要改 img/ 图像，一般不要改 js/ js文件，一般不要改 lang/ 语言文件 libs/Content.php 文章内容 libs/... 一般不要改 usr/ 另一个语言文件？ 404.php 404界面 archive.php 整合 booklist.php 书单 cross.php 时光机 files.php 归档 functions.php 配置界面的东西 guestbook.php 留言板 index.php 首页 links.php 友链 page.php 文章页面整合 post.php 文章输出 color： 选填，不填默认为success（绿色），可选值： light：白色 info：蓝色 dark：深色 success：绿色 black：黑色 warning：黄色 primary：紫色 danger：红色[/collapse]基础设置开启全站HTTPS[collapse status="false" title="开启全站HTTPS"]1、首先在宝塔或通过配置文件给你的网站配置好证书，并开启强制HTTPS2、去网站后台，找到设置 -> 基本设置 -> 站点地址将其改为https开头的网址。[/collapse]添加GZIP压缩[collapse status="false" title="添加GZIP压缩"]这个主要是减小带宽压力，以达到加快网站加速速度的目的。和上面的HTTPS一样，在config.inc.php内加入以下配置即可：/** 开启gzip压缩 */ ob_start('ob_gzhandler');[/collapse]去掉地址栏的index.php[collapse status="false" title="去掉地址栏的index.php"]更改前是这样的：https://www.5k5b.com/index.php/archives/5.html更改后是这样的：https://www.5k5b.com/archives/5.html首先进入后台，找到设置 - 永久链接，改成如下图所示然后我们需要配置伪静态规则如果使用的宝塔面板，就在 网站-设置-伪静态-选择Typecho-保存即可 [/collapse]自定义后台路径[collapse status="false" title="自定义后台路径"]1、将Typecho程序根目录中的后台文件夹"admin"改名，名字即为你想自定义的地址名，例如：将"admin"改为"xxx"2、修改根目录文件"config.inc.php"，打开该文件后找到/* 后台路径(相对路径) / define(' **TYPECHO_ADMIN_DIR** ', '/admin/');将代码中"admin"改为你自定义的地址，例如：xxx这样一来，我们的Typecho程序网站的后台就改成：域名/xxx了[/collapse]使Typecho支持emoji[collapse status="false" title="使Typecho支持emoji"]效果🔘🔵🟣🟤⚫🔴🟠🟡💰✨🍭🎄alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;执行上述sql语句来修改表的编码，如果用的是宝塔面板和MySQL数据库，一般有可视化的phpmyadmin界面，可以在phpmyadmin的控制台里面执行上面的语句。最后将 Typecho 目录下的config.inc.php 配置文件中数据库定义参数中的 charset 为 utf8mb4： $db->addServer(array ( 'host' => localhost, 'user' => 'root', 'password' => 'root', 'charset' => 'utf8mb4', //修改这一行 'port' => 3306, 'database' => '' ), Typecho_Db::READ | Typecho_Db::WRITE);[/collapse]每日新闻 自动更新[collapse status="false" title="每日新闻 自动更新"]使用方法首先先创建一个独立页面，名称随意，将以下代码放在独立页面内 在我给大家增加一个接口，二选一 感觉哪个速度快就用哪个 [/collapse]文章中嵌入网页[collapse status="false" title="文章中嵌入网页"]比如在独立页面上放置一个单独的网页页面使用方法在文章中添加代码即可，将链接地址修改为你需要展示的网站地址 [/collapse]时光机栏目增添额外内容[collapse status="false" title="时光机栏目增添额外内容"]使用方法将以下代码按照需求自行修改后放到主题后台-时光机配置-RSS动态内容配置内即可{"id":"iciba","name":"每日一句","url":"https://proxy.attainment.cn/https://rss.attainment.cn/iciba/7/poster"}, {"id":"oschina","name":"开源中国","url":"https://proxy.attainment.cn/https://rss.attainment.cn/oschina/news"}, {"id":"bing","name":"Bing 壁纸","url":"https://proxy.attainment.cn/https://rss.attainment.cn/bing"}, {"id":"sspai","name":"少数派","url":"https://proxy.attainment.cn/https://sspai.com/feed"}, {"id":"DailyArt","name":"每日艺术","url":"https://proxy.attainment.cn/https://rss.attainment.cn/dailyart/zh"}[/collapse]添加左侧导航[collapse status="false" title="添加左侧导航"]以下代码放在后台-外观设置-高级设置-左侧边栏导航内容请自行更改{"name":"名称","class":"图标","link":"链接位置","target":"_blank"} {"name":"名称","class":"图标","link":"链接位置","target":"_blank"}图标选择：也可选择Glyphicons 字体图标，feather图标[/collapse]自定义音乐播放器音量[collapse status="false" title="自定义音乐播放器音量"]后台-设置外观-开发者设置-自定义JS 添加以下代码setTimeout(function (){document.querySelector(".skPlayer-source").volume=0.3;}, 3000);其中volume=0.3为播放器音量控制，默认为0.3支持修改范围为0.0 - 1可自行设置[/collapse]美化记录自定义CSS[scode type="yellow"]该修改项位于Handsome主题后台-外观-设置外观-开发者设置-自定义CSS处部分提到PJAX回调的部分添加到主题后台-外观-外观设置-PJAX-PJAX回调函数内[/scode]文章标题居中[collapse status="false" title="文章标题居中"]/*文章标题居中*/ header.bg-light.lter.wrapper-md { text-align: center; }[/collapse]首页标题文字居中[collapse status="false" title="首页标题文字居中"]/*首页标题文字居中*/ .m-t-none.text-ellipsis.index-post-title.text-title { text-align:center !important; }[/collapse]左上角博客LOGO/博客名称的扫光效果[collapse status="false" title="左上角博客LOGO/博客名称的扫光效果"]/* logo扫光 */ .navbar-brand{position:relative;overflow:hidden;margin: 0px 0 0 0px;}.navbar-brand:before{content:""; position: absolute; left: -665px; top: -460px; width: 200px; height: 15px; background-color: rgba(255,255,255,.5); -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -ms-transform: rotate(-45deg); -o-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-animation: searchLights 6s ease-in 0s infinite; -o-animation: searchLights 6s ease-in 0s infinite; animation: searchLights 6s ease-in 0s infinite;}@-moz-keyframes searchLights{50%{left: -100px; top: 0;} 65%{left: 120px; top: 100px;}}@keyframes searchLights{40%{left: -100px; top: 0;} 60%{left: 120px; top: 100px;} 80%{left: -100px; top: 0px;}}[/collapse]左上角博主信息羽毛背景[collapse status="false" title="左上角博主信息羽毛背景"]background:url后面括号里的网址就是羽毛动画的网址，你也可以把它保存下来放到自己网站的根目录的某个位置内，然后将网址改为自己的博客，防止该效果失效（也就是做了个备份的意思，当然如果你嫌麻烦也可以不做）/* 羽毛_css */ .dropdown.wrapper { background:url(https://您的博客网址/yumao.webp) right bottom no-repeat; }[/collapse]鼠标路过头像时放大并旋转[collapse status="false" title="鼠标路过头像时放大并旋转"]/* 鼠标经过头像旋转放大 */ .img-circle { border-radius: 50%; animation: light 4s ease-in-out infinite; transition: all 0.5s; } .img-circle:hover { transform: scale(1.15) rotate(720deg); } @keyframes light { 0% { box-shadow: 0 0 4px #f00; } 25% { box-shadow: 0 0 16px #0f0; } 50% { box-shadow: 0 0 4px #00f; } 75% { box-shadow: 0 0 16px #0f0; } 100% { box-shadow: 0 0 4px #f00; } }[/collapse]首页文章图片获取焦点放大[collapse status="false" title="首页文章图片获取焦点放大"]/* 首页文章图片获取焦点放大 */ .item-thumb{ cursor: pointer; transition: all 0.6s; } .item-thumb:hover{ transform: scale(1.05); } .item-thumb-small{ cursor: pointer; transition: all 0.6s; } .item-thumb-small:hover{ transform: scale(1.05); }[/collapse]时光机内圆形头像[collapse status="false" title="时光机内圆形头像"]顾名思义，就是将独立页面-时光机里的头像都更改为圆形(原版是方形圆角样式)/* 时光机圆形头像 */ .img-square {border-radius: 50%;} .list-group-item .thumb-sm .img-square {border-radius: 5px;}[/collapse]网站右侧滚动条样式[collapse status="false" title="网站右侧滚动条样式"]此处的#949494;即为滚动条的颜色，你可以去 http://tools.jb51.net/static/colorpicker/ 这个链接去找到你喜欢的颜色然后替换注意：替换的是#后面的6位数字，#不要动~/* 美化网站右侧滚动条样式 */ /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 8px; height: 6px } /*定义滚动条轨道*/ ::-webkit-scrollbar-track { background-color: transparent; -webkit-border-radius: 2em; -moz-border-radius: 2em; border-radius: 2em } /*定义滑块 内阴影+圆角*/ ::-webkit-scrollbar-thumb { background-color: #949494; background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,.4) 100%,transparent 100%,transparent 50%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.4) 75%,transparent 75%,transparent); -webkit-border-radius: 2em; -moz-border-radius: 2em; border-radius: 2em }[/collapse]文章版式阴影化[collapse status="false" title="文章版式阴影化"]可能这个项目看名称比较晦涩，其实就是你现在看到的各个边框散发的蓝(色的)光效果。所有rgba后面的，如26, 169, 255都可以进行修改，它代表的是散发出来的颜色类型。你同样可以去 http://tools.jb51.net/static/colorpicker/ 这个网站去选自己喜欢的颜色，但更改的时候一定注意"标点"，不要出现类似少逗号的问题哦~/* 首页文章版式阴影颜色 */ .panel{ box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); -moz-box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); } .panel:hover{ box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); -moz-box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); } .panel-small{ box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); -moz-box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); } .panel-small:hover{ box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); -moz-box-shadow: 1px 1px 5px 5px rgba(26, 169, 255, 0.35); } .app.container { box-shadow: 0 0 30px rgba(26, 169, 255, 0.35); }[/collapse]右侧列表导航栏图标颜色[collapse status="false" title="右侧列表导航栏图标颜色"]这一项是更改右上方三个图标(大拇指，信息，礼物)的颜色，默认是白色。同样#后面的六位数字代表颜色，可以改~/* 右侧列表导航栏图标颜色 */ .sidebar-icon svg.feather.feather-thumbs-up{color: #ff0000;} .sidebar-icon svg.feather.feather-message-square{color:#495dc3;} .sidebar-icon svg.feather.feather-gift{color:#52DE97;} #post-content pre code { display:block; overflow-x:auto; position:relative; margin:0; padding-left:50px; } pre code { position:relative; display:block; overflow-x:auto; margin:4.4px 0.px .4px 1px; padding:0; max-height:500px; padding-left:3.5em } .img-square { transition: all 0.3s; } .img-square:hover { transform: rotate(360deg); } .glyphicon-fire { color: #ff0000; } .nav-tabs-alt .glyphicon-comment { color: #495dc3; } .glyphicon-transfer { color: #0e5458; }[/collapse]等距标签云[collapse status="false" title="等距标签云"]/*词云等距美化*/ #tag_cloud-2 a { border-radius: 5px; width: 32%; }[/collapse]首页文章列表悬停上浮[collapse status="false" title="首页文章列表悬停上浮"]/*首页文章列表悬停上浮*/ .blog-post .panel:not(article) { transition: all 0.3s; } .blog-post .panel:not(article):hover { transform: translateY(-10px); box-shadow: 0 8px 10px rgba(73, 90, 47, 0.47); }[/collapse]赞赏按钮跳动[collapse status="false" title="赞赏按钮跳动"]/*赞赏按钮跳动*/ .btn-pay { animation: star 0.5s ease-in-out infinite alternate; } @keyframes star { from { transform: scale(1); } to { transform: scale(1.1); } }[/collapse]评论边框[collapse status="false" title="评论边框"]/*评论边框*/ .comment-parent { margin: 20px; padding: 20px; border-radius: 25px; border: 1px solid rgba(255,255,255,.3); }[/collapse]粗斜体上色[collapse status="false" title="粗斜体上色"]/* 粗斜体上色 */ strong{ color: #f26522; } em{ font-style: normal; color: #fcaf17; }[/collapse]开启全站变灰（黑白模式）[collapse status="false" title="开启全站变灰（黑白模式）"]方式一 html {-webkit-filter: grayscale(100%);filter:progid:DXImageTransform.Microsoft.BasicImage(graysale=1);} html { filter:progidXImageTransform.Microsoft.BasicImage(grayscale=1); } html{ filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: url("data:image/svg+xml;utf8,#grayscale"); filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(1);} 方式二 方式三 方式四 [/collapse]首页文章添加圆角效果[collapse status="false" title="首页文章添加圆角效果"]/*首页文章版式圆角化*/ .panel{ border: none; border-radius: 15px; } .panel-small{ border: none; border-radius: 15px; } .item-thumb{ border-radius: 15px; }[/collapse]修改h1，h2标题背景颜色[collapse status="false" title="修改h1，h2标题背景颜色"]/*文章页h标签背景颜色修改*/ #post-content h1, #post-content h2 { background : linear-gradient(to bottom,transparent 60%,rgba(0,191,255,.3) 0) no-repeat }[/collapse]手机端不显示热门文章和标签云[collapse status="false" title="手机端不显示热门文章和标签云"]/*手机不显示*/ @media (max-width:767px) { #tabs-4,#tag_cloud-2 { display: none; } }[/collapse]网站背景添加海浪背景[collapse status="false" title="网站背景添加海浪背景"]效果图：添加至后台主题设置-开发者设置-自定义CSS/* 海浪背景CSS部分 */ #wavesDIV{position: fixed;bottom: 0;width: 100%;display:block;height:20vh;background-color:rgb(125,165,191);animation: move-out 2s cubic-bezier(0,.98,.97,1) forwards;} .waves { position:relative; width: 100%; height:15vh; margin-top:-15vh; min-height:100px; max-height:150px; } .parallax > use { animation: move-forever 25s cubic-bezier(.55, .5, .45, .5) infinite; } .parallax > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s; } .parallax > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s; } .parallax > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s; } .parallax > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s; } @keyframes move-forever { 0% { transform: translate3d(-90px, 0, 0); } 100% { transform: translate3d(85px, 0, 0); } } @keyframes move-out { 0% { transform: translateY(400%); } 100% { transform: translateY(0%); } }添加至后台主题设置-开发者设置-自定义输出head 头部的HTML代码 <defs> <path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path> </defs> <g class="parallax"> <use xlink:href="#gentle-wave" x="48" y="-2" fill="rgba(125,165,191,0.3)"></use> <use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(125,165,191,0.5)"></use> <use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(125,165,191,0.7)"></use> <use xlink:href="#gentle-wave" x="48" y="12" fill="rgba(125,165,191,1)"></use> </g> [/collapse]自定义JavaScripts[scode type="blue"]该修改项位于Handsome主题后台-外观-设置外观-开发者设置-自定义 JavaScript处[/scode]网页文字禁止复制[collapse status="false" title=".网页文字禁止复制"] [/collapse]复制成功提示[collapse status="false" title="复制成功提示"]效果图：使用方法：复制下面代码到 handsome主题>设置外观>开发者设置>自定义 JavaScript/* 复制成功提示代码开始 */ kaygb_copy();function kaygb_copy(){$(document).ready(function(){$("body").bind('copy',function(e){hellolayer()})});var sitesurl=window.location.href;function hellolayer(){ $.message({ message: "尊重原创，转载请注明出处！ 本文作者：岁月无声 原文链接："+sitesurl, title: "复制成功", type: "warning", autoHide: !1, time: "5000" }) }} /* 复制成功提示代码结束 */[/collapse]复制文章带有文章版权[collapse status="false" title="复制文章带有文章版权"]效果图：使用方法：复制下面代码到 handsome主题>设置外观>开发者设置>自定义 JavaScript/* 复制文章自动带版权开始 */ document.body.addEventListener('copy', function (e) { if (window.getSelection().toString() && window.getSelection().toString().length > 42) { setClipboardText(e); notie({ type: 'info', text: '商业转载请联系作者获得授权，非商业转载请注明出处，谢谢合作。', autoHide: true }) } }); function setClipboardText(event) { var clipboardData = event.clipboardData || window.clipboardData; if (clipboardData) { event.preventDefault(); var htmlData = '' + '著作权归作者所有。 ' + '商业转载请联系作者获得授权，非商业转载请注明出处！ ' + '本博转载文章版权及解释权归原作者所有，博主只是勤劳的搬运工！ ' + '作者：岁月无声 ' + '链接：' + window.location.href + ' ' + '来源：http://www.5k5b.com/ ' + window.getSelection().toString(); var textData = '' + '著作权归作者所有。\n' + '商业转载请联系作者获得授权，非商业转载请注明出处！\n' + '本博转载文章版权及解释权归原作者所有，博主只是勤劳的搬运工！\n' + '作者：hellolin.cn\n' + '链接：' + window.location.href + '\n' + '来源：http://www.5k5b.com/\n\n' + window.getSelection().toString(); clipboardData.setData('text/html', htmlData); clipboardData.setData('text/plain',textData); } } /* 复制文章自动带版权结束 */[/collapse]鼠标点击特效-爱心样式[collapse status="false" title="爱心鼠标点击特效"]效果图：//鼠标点击出现爱心特效 (function(window,document,undefined){ var hearts = []; window.requestAnimationFrame = (function(){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback){ setTimeout(callback,1000/60); } })(); init(); function init(){ css(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: absolute;}.heart:after{top: -5px;}.heart:before{left: -5px;}"); attachEvent(); gameloop(); } function gameloop(){ for(var i=0;i<hearts.length;i++){ if(hearts[i].alpha <=0){ document.body.removeChild(hearts[i].el); hearts.splice(i,1); continue; } hearts[i].y--; hearts[i].scale += 0.004; hearts[i].alpha -= 0.013; hearts[i].el.style.cssText = "left:"+hearts[i].x+"px;top:"+hearts[i].y+"px;opacity:"+hearts[i].alpha+";transform:scale("+hearts[i].scale+","+hearts[i].scale+") rotate(45deg);background:"+hearts[i].color; } requestAnimationFrame(gameloop); } function attachEvent(){ var old = typeof window.onclick==="function" && window.onclick; window.onclick = function(event){ old && old(); createHeart(event); } } function createHeart(event){ var d = document.createElement("div"); d.className = "heart"; hearts.push({ el : d, x : event.clientX - 5, y : event.clientY - 5, scale : 1, alpha : 1, color : randomColor() }); document.body.appendChild(d); } function css(css){ var style = document.createElement("style"); style.type="text/css"; try{ style.appendChild(document.createTextNode(css)); }catch(ex){ style.styleSheet.cssText = css; } document.getElementsByTagName('head')[0].appendChild(style); } function randomColor(){ return "rgb("+(~~(Math.random()*255))+","+(~~(Math.random()*255))+","+(~~(Math.random()*255))+")"; } })(window,document);[/collapse]网站加载完成提示[collapse status="false" title="网站加载完成提示"]/* 网站加载完成提示开始 */ function kaygb_referrer(){ var kaygb_referrer = document.referrer; if (kaygb_referrer != ""){ return "感谢您的访问！ 您来自： " + document.referrer; }else{ return ""; }} $.message({ message: "为了网站的正常运行，请不要使用广告屏蔽插件，谢谢！ " + kaygb_referrer(), title: "网站加载完成", type: "success", autoHide: !1, time: "3000" }) /* 网站加载完成提示结束 */[/collapse]左上角网站FPS显示[collapse status="false" title="左上角网站FPS显示"]/* FPS显示 */ var console={}; console.log=function(){}; $('body').before(' '); var showFPS = (function(){ var requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000/60); }; var e,pe,pid,fps,last,offset,step,appendFps; fps = 0; last = Date.now(); step = function(){ offset = Date.now() - last; fps += 1; if( offset >= 1000 ){ last += offset; appendFps(fps); fps = 0; } requestAnimationFrame( step ); }; appendFps = function(fps){ console.log(fps+'FPS'); $('#fps').html(fps+'FPS'); }; step(); })();[/collapse]左侧图标颜色和彩色标签云[collapse status="false" title="左侧图标颜色和彩色标签云"]/* 左侧图标颜色and彩色标签云 */ let tags = document.querySelectorAll("#tag_cloud-2 a"); let infos = document.querySelectorAll(".badge"); let colorArr = ["#428BCA", "#AEDCAE", "#ECA9A7", "#DA99FF", "#FFB380", "#D9B999"]; tags.forEach(tag => { tagsColor = colorArr[Math.floor(Math.random() * colorArr.length)]; tag.style.backgroundColor = tagsColor; }); infos.forEach(info => { infosColor = colorArr[Math.floor(Math.random() * colorArr.length)]; info.style.backgroundColor = infosColor; }); function addNumber(a) { var length = document.getElementById("comment").value.length; if(length> 0){ document.getElementById("comment").focus() document.getElementById("comment").value += '\n' + a + new Date }else{ document.getElementById("comment").focus() document.getElementById("comment").value += a + new Date } } let leftHeader = document.querySelectorAll("span.nav-icon>svg,span.nav-icon>i"); let leftHeaderColorArr = ["#FF69B4", "#58c7ea", "#E066FF", "#FF69B4", "#FFA54F", "#90EE90"]; leftHeader.forEach(tag => { tagsColor = leftHeaderColorArr[Math.floor(Math.random() * colorArr.length)]; tag.style.color = tagsColor; });如果你博客开启了PJAX，需要在PJAX回调函数里面添加以下代码：// 彩色标签云 let tags = document.querySelectorAll("#tag_cloud-2 a"); let infos = document.querySelectorAll(".badge"); let colorArr = ["#428BCA", "#AEDCAE", "#ECA9A7", "#DA99FF", "#FFB380", "#D9B999"]; tags.forEach(tag => { tagsColor = colorArr[Math.floor(Math.random() * colorArr.length)]; tag.style.backgroundColor = tagsColor; }); infos.forEach(info => { infosColor = colorArr[Math.floor(Math.random() * colorArr.length)]; info.style.backgroundColor = infosColor; }); function addNumber(a) { var length = document.getElementById("comment").value.length; if(length> 0){ document.getElementById("comment").focus() document.getElementById("comment").value += '\n' + a + new Date }else{ document.getElementById("comment").focus() document.getElementById("comment").value += a + new Date } }[/collapse]动态网站标题-第一种[collapse status="false" title="动态网站标题"]当你看其他网站的时候，网页标题会有可爱的变化~另外代码里的两个链接可以按照自己的需求修改哦~/* 动态网站标题 */ var OriginTitle = document.title; var titleTime; document.addEventListener('visibilitychange', function () { if (document.hidden) { $('[rel="icon"]').attr('href', "https://cdn.jsdelivr.net/gh/Catalpablog/handsome/img/warning.webp"); document.title = '网页崩溃了！！！'; clearTimeout(titleTime); } else { $('[rel="icon"]').attr('href', "https://cdn.jsdelivr.net/gh/Catalpablog/handsome/img/favicon.webp"); document.title = '咦，又好啦(✿◡‿◡)' ; titleTime = setTimeout(function () { document.title = OriginTitle; }, 2000); } });[/collapse]打字动画效果（代码实现）[collapse status="false" title="打字动画效果"]这里是通过代码修改的，下边会给大家分享个插件，开启插件即可实现这个项目是指在网页里打字时出现的一个动画效果，还是不懂得话可以尝试在本站打字/* 打字动效 */ (function webpackUniversalModuleDefinition(a,b){if(typeof exports==="object"&&typeof module==="object"){module.exports=b()}else{if(typeof define==="function"&&define.amd){define([],b)}else{if(typeof exports==="object"){exports["POWERMODE"]=b()}else{a["POWERMODE"]=b()}}}})(this,function(){return(function(a){var b={};function c(e){if(b[e]){return b[e].exports}var d=b[e]={exports:{},id:e,loaded:false};a[e].call(d.exports,d,d.exports,c);d.loaded=true;return d.exports}c.m=a;c.c=b;c.p="";return c(0)})([function(c,g,b){var d=document.createElement("canvas");d.width=window.innerWidth;d.height=window.innerHeight;d.style.cssText="position:fixed;top:0;left:0;pointer-events:none;z-index:999999";window.addEventListener("resize",function(){d.width=window.innerWidth;d.height=window.innerHeight});document.body.appendChild(d);var a=d.getContext("2d");var n=[];var j=0;var k=120;var f=k;var p=false;o.shake=true;function l(r,q){return Math.random()*(q-r)+r}function m(r){if(o.colorful){var q=l(0,360);return"hsla("+l(q-10,q+10)+", 100%, "+l(50,80)+"%, "+1+")"}else{return window.getComputedStyle(r).color}}function e(){var t=document.activeElement;var v;if(t.tagName==="TEXTAREA"||(t.tagName==="INPUT"&&t.getAttribute("type")==="text")){var u=b(1)(t,t.selectionStart);v=t.getBoundingClientRect();return{x:u.left+v.left,y:u.top+v.top,color:m(t)}}var s=window.getSelection();if(s.rangeCount){var q=s.getRangeAt(0);var r=q.startContainer;if(r.nodeType===document.TEXT_NODE){r=r.parentNode}v=q.getBoundingClientRect();return{x:v.left,y:v.top,color:m(r)}}return{x:0,y:0,color:"transparent"}}function h(q,s,r){return{x:q,y:s,alpha:1,color:r,velocity:{x:-1+Math.random()*2,y:-3.5+Math.random()*2}}}function o(){var t=e();var s=5+Math.round(Math.random()*10);while(s--){n[j]=h(t.x,t.y,t.color);j=(j+1)%500}f=k;if(!p){requestAnimationFrame(i)}if(o.shake){var r=1+2*Math.random();var q=r*(Math.random()>0.5?-1:1);var u=r*(Math.random()>0.5?-1:1);document.body.style.marginLeft=q+"px";document.body.style.marginTop=u+"px";setTimeout(function(){document.body.style.marginLeft="";document.body.style.marginTop=""},75)}}o.colorful=false;function i(){if(f>0){requestAnimationFrame(i);f--;p=true}else{p=false}a.clearRect(0,0,d.width,d.height);for(var q=0;q<n.length;++q){var r=n[q];if(r.alpha<=0.1){continue}r.velocity.y+=0.075;r.x+=r.velocity.x;r.y+=r.velocity.y;r.alpha*=0.96;a.globalAlpha=r.alpha;a.fillStyle=r.color;a.fillRect(Math.round(r.x-1.5),Math.round(r.y-1.5),3,3)}}requestAnimationFrame(i);c.exports=o},function(b,a){(function(){var d=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];var e=window.mozInnerScreenX!=null;function c(k,l,o){var h=o&&o.debug||false;if(h){var i=document.querySelector("#input-textarea-caret-position-mirror-div");if(i){i.parentNode.removeChild(i)}}var f=document.createElement("div");f.id="input-textarea-caret-position-mirror-div";document.body.appendChild(f);var g=f.style;var j=window.getComputedStyle?getComputedStyle(k):k.currentStyle;g.whiteSpace="pre-wrap";if(k.nodeName!=="INPUT"){g.wordWrap="break-word"}g.position="absolute";if(!h){g.visibility="hidden"}d.forEach(function(p){g[p]=j[p]});if(e){if(k.scrollHeight>parseInt(j.height)){g.overflowY="scroll"}}else{g.overflow="hidden"}f.textContent=k.value.substring(0,l);if(k.nodeName==="INPUT"){f.textContent=f.textContent.replace(/\s/g,"\u00a0")}var n=document.createElement("span");n.textContent=k.value.substring(l)||".";f.appendChild(n);var m={top:n.offsetTop+parseInt(j["borderTopWidth"]),left:n.offsetLeft+parseInt(j["borderLeftWidth"])};if(h){n.style.backgroundColor="#aaa"}else{document.body.removeChild(f)}return m}if(typeof b!="undefined"&&typeof b.exports!="undefined"){b.exports=c}else{window.getCaretCoordinates=c}}())}])}); POWERMODE.colorful=true;POWERMODE.shake=false;document.body.addEventListener("input",POWERMODE);[/collapse]添加复制弹窗[collapse status="false" title="添加复制弹窗"]首先添加以下代码至自定义输出body尾部的HTML代码 然后将以下代码加到自定义JavaScripts，文字部分可以自行更改~/* 复制效果 */ document.body.oncopy = function(){Swal.fire({allowOutsideClick:false,type:'success',title: '复制成功,如转载请注明出处！',showConfirmButton: false,timer: 2000});};[/collapse]自定义body[scode type="green"]该修改项位于Handsome主题后台-外观-设置外观-开发者设置-自定义输出body 尾部的HTML代码处[/scode]万能的控制台[collapse status="false" title="万能的控制台"]效果图： [/collapse]气泡背景[collapse status="false" title="气泡背景"]id: '', //容器ID num: 100, // 个数 start_probability: 0.1, // 如果数量小于num，有这些几率添加一个新的 radius_min: 1, // 初始半径最小值 radius_max: 2, // 初始半径最大值 radius_add_min: .3, // 半径增加最小值 radius_add_max: .5, // 半径增加最大值 opacity_min: 0.3, // 初始透明度最小值 opacity_max: 0.5, // 初始透明度最大值 opacity_prev_min: .003, // 透明度递减值最小值 opacity_prev_max: .005, // 透明度递减值最大值 light_min: 40, // 颜色亮度最小值 light_max: 70, // 颜色亮度最大值 is_same_color: false, //泡泡颜色是否相同 background:"#f1f3f4" //背景颜色在 开发者设置 自定义输出body 尾部的HTML代码中添加下面代码，需要修改可参考上方参数 [/collapse]动态网站标题-第二种[collapse status="false" title="动态网站标题"]效果图：复制下方代码添加至后台主题设置 自定义输出head 头部的HTML代码即可 [/collapse]动态网站标题-第三种[collapse status="false" title="动态网站标题"]效果图：复制下方代码添加至后台主题设置 自定义输出head 头部的HTML代码即可 [/collapse]自定义右键菜单美化[collapse status="false" title="自定义右键菜单美化"]注意：一定首先在主题后台-外观-设置外观-开发者设置-自定义输出head 头部的HTML代码位置添加以下代码。如果不添加将不会显示图标 加完之后再将下面的代码放到自定义输出body 尾部的HTML代码处另外，一定要把代码里的网址改成自己的！！~ 首页 复制 搜索 前进 后退 重载网页 和我当邻居 给我留言吧 [/collapse]防止他人F12抓你代码[collapse status="false" title="防止他人F12抓你代码"]首先要说，这个功能防君子不防小人。所以真的会扒你网站代码的人总是会有办法的(就不告诉你)。提示内容可以自行修改哦~ [/collapse]顶部导航栏添加网页动态滚动进度条|滚动指示器[collapse status="false" title="顶部导航栏添加网页动态滚动进度条|滚动指示器"]效果图：使用方法将以下代码加到后台设置->自定义输出head 头部的HTML代码 需要注意的是，需要关闭后台的固定头部和固定导航，效果最佳，不然可能会看不到效果。[/collapse]修改文件[scode type="yellow"]这部分基本上全是通过修改文件来达到美化的目的，故一定要提前做好备份~[/scode]首页新年倒计时[collapse status="false" title="首页新年倒计时"]将如下代码加到开发者设置-首页列表最前方广告位即可 2 0 2 3 年 - 新 年 倒 计 时 天 时 分 秒 [/collapse]博主介绍文字动态化[collapse status="false" title="博主介绍文字动态化"]将代码里的这是我的介绍这一部分修改称自己想要展示的内容即可，顺便那个❤也是可以改的，随你开心就是了将以下代码放到主题后台-外观-设置外观-初级设置-博主的介绍内即可放之前记得先清空博主的介绍栏内的所有内容 [/collapse]给正文添加结束标识[collapse status="false" title="给正文添加结束标识"]效果就是像本博客的每篇博文正文下面有一个好看的END标识。首先打开 网站根目录/usr/themes/handsome的post.php文件找到<?php if ($this->options->adContentPost != ""): ?>这行代码，在其上方(截图标出的位置)的空白位置添加以下代码 End 并在改好保存后，在自定义CSS处添加以下代码/*文章正文下的结束End分割线样式*/ .tt-fenge-end{border-top: 2px dotted #eee;height: 0px;margin: 35px 0px;text-align: center;width: 100%;line-height: 1.6em;} .tt-fenge-end span{background-color: #23b7e5;color: #fff;padding: 2px 8px;position: relative;top: -14px;border-radius: 12px;font-size: 12px;} /*深色模式下文章正文下的结束End分割线颜色*/ html.theme-dark .tt-fenge-end{border-top: 2px dotted #4f4f4f;}[/collapse]后台登陆界面美化[collapse status="false" title="后台登陆界面美化"]效果图：方法第一步：用压缩包内的login.php文件替换掉/admin/login.php文件第二步：将压缩包内的style文件夹上传到/admin/文件夹下第三步：修改login.php第35行，把“TuJun'Blog”替换成自己的信息[button color="success" icon="download" url="https://rjw.lanzoul.com/iwdPq0ad52zg" type=""]后台登录界面源码[/button][/collapse]正文下方添加版权声明[collapse status="false" title="正文下方添加版权声明"]这个代码同样也是在<?php if ($this->options->adContentPost != ""): ?>的上方添加位置和上面正文结束功能的添加位置相同，如图所示：找到后添加以下代码(你也可以添加到其他你认为合适的地方) 本文标题： <?php $this->title() ?> 本文链接： <?php $this->permalink() ?> 除非另有说明，本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议。 声明：转载请注明文章来源。 添加好后，在自定义CSS中添加以下代码：/*文章正文下的知识共享许可协议*/ .tt-license {font-size: 12px;font-weight: 600;padding: 1rem;background: repeating-linear-gradient(135deg,#f6f6f6,#f6f6f6 12px,#fff 0,#fff 24px);background-color: #f3f5f7;border-left: 3px solid #dde6e9;margin-bottom: 20px;} .tt-license-icon {align-items: center;position: relative;float: left;margin: -10px -10px -10px 0;margin-right: 10px;overflow: hidden;text-align: center;display: flex;height: 40px;color: #ff5722;} .tt-license a {color: #337ab7;text-decoration: underline;margin: 0 5px;} /*深色模式下的知识共享许可协议*/ html.theme-dark .tt-license {background: repeating-linear-gradient(135deg,#191919,#191919 12px,#222 0,#222 24px);border-left: 3px solid #494949;}.tt-license p {line-height: 1.5em;margin: 5px 0!important;}到这里基本上就大功告成了。放一下改后的代码样子[/collapse]右侧添加人生倒计时(岁月不待人)[collapse status="false" title="右侧添加人生倒计时(岁月不待人)"]首先找到网站根目录/usr/themes/handsome/component打开sidebar.php文件，找到 这一行内容。在该内容向上两行找到<?php endif; ?>，在该行紧接着下面添加如下代码： <?php _me("岁月不待人") ?> 今日已经过去小时 这周已经过去天 本月已经过去天 今年已经过去个月 加后的样子如下改好后保存退出，进入网站根目录/usr/themes/handsome/assets/js/的文件夹创建一个名为timeinfo.js的文件，并将以下代码放进该文件后，保存并退出function init_life_time() { function getAsideLifeTime() { /* 当前时间戳 */ let nowDate = +new Date(); /* 今天开始时间戳 */ let todayStartDate = new Date(new Date().toLocaleDateString()).getTime(); /* 今天已经过去的时间 */ let todayPassHours = (nowDate - todayStartDate) / 1000 / 60 / 60; /* 今天已经过去的时间比 */ let todayPassHoursPercent = (todayPassHours / 24) * 100; $('#dayProgress .title span').html(parseInt(todayPassHours)); $('#dayProgress .progress .progress-inner').css('width', parseInt(todayPassHoursPercent) + '%'); $('#dayProgress .progress .progress-percentage').html(parseInt(todayPassHoursPercent) + '%'); /* 当前周几 */ let weeks = { 0: 7, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6 }; let weekDay = weeks[new Date().getDay()]; let weekDayPassPercent = (weekDay / 7) * 100; $('#weekProgress .title span').html(weekDay); $('#weekProgress .progress .progress-inner').css('width', parseInt(weekDayPassPercent) + '%'); $('#weekProgress .progress .progress-percentage').html(parseInt(weekDayPassPercent) + '%'); let year = new Date().getFullYear(); let date = new Date().getDate(); let month = new Date().getMonth() + 1; let monthAll = new Date(year, month, 0).getDate(); let monthPassPercent = (date / monthAll) * 100; $('#monthProgress .title span').html(date); $('#monthProgress .progress .progress-inner').css('width', parseInt(monthPassPercent) + '%'); $('#monthProgress .progress .progress-percentage').html(parseInt(monthPassPercent) + '%'); let yearPass = (month / 12) * 100; $('#yearProgress .title span').html(month); $('#yearProgress .progress .progress-inner').css('width', parseInt(yearPass) + '%'); $('#yearProgress .progress .progress-percentage').html(parseInt(yearPass) + '%'); } getAsideLifeTime(); setInterval(() => { getAsideLifeTime(); }, 1000); } init_life_time()以下代码放在 后台-外观设置-开发者设置-自定义CSS/* 时间流逝 */ .sidebar-count .content { padding: 15px } .sidebar-count .content .item { margin-bottom: 15px } .sidebar-count .content .item:last-child { margin-bottom: 0 } .sidebar-count .content .item .title { font-size: 12px; color: var(--minor); margin-bottom: 5px; display: flex; align-items: center } .sidebar-count .content .item .title span { color: var(--theme); font-weight: 500; font-size: 14px; margin: 0 5px } .sidebar-count .content .item .progress { display: flex; align-items: center } .sidebar-count .content .item .progress .progress-bar { height: 10px; border-radius: 5px; overflow: hidden; background: var(--classC); width: 0; min-width: 0; flex: 1; margin-right: 5px } @keyframes progress { 0% { background-position: 0 0 } 100% { background-position: 30px 0 } } .sidebar-count .content .item .progress .progress-bar .progress-inner { width: 0; height: 100%; border-radius: 5px; transition: width 0.35s; -webkit-animation: progress 750ms linear infinite; animation: progress 750ms linear infinite } .sidebar-count .content .item .progress .progress-bar .progress-inner-1 { background: #bde6ff; background-image: linear-gradient(135deg, #50bfff 25%, transparent 25%, transparent 50%, #50bfff 50%, #50bfff 75%, transparent 75%, transparent 100%); background-size: 30px 30px } .sidebar-count .content .item .progress .progress-bar .progress-inner-2 { background: #ffd980; background-image: linear-gradient(135deg, #f7ba2a 25%, transparent 25%, transparent 50%, #f7ba2a 50%, #f7ba2a 75%, transparent 75%, transparent 100%); background-size: 30px 30px } .sidebar-count .content .item .progress .progress-bar .progress-inner-3 { background: #ffa9a9; background-image: linear-gradient(135deg, #ff4949 25%, transparent 25%, transparent 50%, #ff4949 50%, #ff4949 75%, transparent 75%, transparent 100%); background-size: 30px 30px } .sidebar-count .content .item .progress .progress-bar .progress-inner-4 { background: #67c23a; background-image: linear-gradient(135deg, #4f9e28 25%, transparent 25%, transparent 50%, #4f9e28 50%, #4f9e28 75%, transparent 75%, transparent 100%); background-size: 30px 30px } .sidebar-count .content .item .progress .progress-percentage { color: var(--info) }最后一步,将以下代码放在后台-外观设置-开发者设置-自定义输出body尾部 步骤均完成后，即可去查看效果了~[/collapse]取消时光机文字首字放大效果[collapse status="false" title="取消时光机文字首字放大效果"]修改usr/themes/handsome/component/say.php文件，将以下代码注释掉#talk .streamline>.comment-list > .comment-body >.time-machine > .panel-body p:first-letter { font-size: 140%; /* float: left; */ vertical-align: middle; }[/collapse]右侧栏添加手机阅读二维码[collapse status="false" title="右侧栏添加手机阅读二维码"]首先在/usr/themes/handsome/assets/js目录内创建一个qrcode.min.js文件，将以下代码加入var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var b=[],d=0,e=this.data.length;e>d;d++){var f=this.data.charCodeAt(d);f>65536?(b[0]=240|(1835008&f)>>>18,b[1]=128|(258048&f)>>>12,b[2]=128|(4032&f)>>>6,b[3]=128|63&f):f>2048?(b[0]=224|(61440&f)>>>12,b[1]=128|(4032&f)>>>6,b[2]=128|63&f):f>128?(b[0]=192|(1984&f)>>>6,b[1]=128|63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+"/"+b);for(var c=0;c<a.length&&0==a[c];)c++;this.num=new Array(a.length-c+b);for(var d=0;d<a.length-c;d++)this.num[d]=a[d+c]}function j(a,b){this.totalCount=a,this.dataCount=b}function k(){this.buffer=[],this.length=0}function m(){return"undefined"!=typeof CanvasRenderingContext2D}function n(){var a=!1,b=navigator.userAgent;return/android/i.test(b)&&(a=!0,aMat=b.toString().match(/android ([0-9]\.[0-9])/i),aMat&&aMat[1]&&(a=parseFloat(aMat[1]))),a}function r(a,b){for(var c=1,e=s(a),f=0,g=l.length;g>=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][26];break;case d.Q:h=l[f][27];break;case d.H:h=l[f][28]}if(h>=e)break;c++}if(c>l.length)throw new Error("Too long data");return c}function s(a){var b=encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c>b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0>a||this.moduleCount<=a||0>b||this.moduleCount<=b)throw new Error(a+","+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=new Array(this.moduleCount);for(var e=0;e<this.moduleCount;e++)this.modules[d][e]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(a,c),this.typeNumber>=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7>=c;c++)if(!(-1>=a+c||this.moduleCount<=a+c))for(var d=-1;7>=d;d++)-1>=b+d||this.moduleCount<=b+d||(this.modules[a+c][b+d]=c>=0&&6>=c&&(0==d||6==d)||d>=0&&6>=d&&(0==c||6==c)||c>=2&&4>=c&&d>=2&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8>c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f<this.modules.length;f++)for(var g=f*e,h=0;h<this.modules[f].length;h++){var i=h*e,j=this.modules[f][h];j&&(d.beginFill(0,100),d.moveTo(i,g),d.lineTo(i+e,g),d.lineTo(i+e,g+e),d.lineTo(i,g+e),d.endFill())}return d},setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][29]&&(this.modules[a][30]=0==a%2);for(var b=8;b<this.moduleCount-8;b++)null==this.modules[6][b]&&(this.modules[6][b]=0==b%2)},setupPositionAdjustPattern:function(){for(var a=f.getPatternPosition(this.typeNumber),b=0;b<a.length;b++)for(var c=0;c<a.length;c++){var d=a[b],e=a[c];if(null==this.modules[d][e])for(var g=-2;2>=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=f.getBCHTypeInfo(c),e=0;15>e;e++){var g=!a&&1==(1&d>>e);6>e?this.modules[e][31]=g:8>e?this.modules[e+1][32]=g:this.modules[this.moduleCount-15+e][33]=g}for(var e=0;15>e;e++){var g=!a&&1==(1&d>>e);8>e?this.modules[8][this.moduleCount-e-1]=g:9>e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][34]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h>0;h-=2)for(6==h&&h--;;){for(var i=0;2>i;i++)if(null==this.modules[d][h-i]){var j=!1;g<a.length&&(j=1==(1&a[g]>>>e));var k=f.getMask(b,d,h-i);k&&(j=!j),this.modules[d][h-i]=j,e--,-1==e&&(g++,e=7)}if(d+=c,0>d||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,c),g=new k,h=0;h<d.length;h++){var i=d[h];g.put(i.mode,4),g.put(i.getLength(),f.getLengthInBits(i.mode,a)),i.write(g)}for(var l=0,h=0;h<e.length;h++)l+=e[h].dataCount;if(g.getLengthInBits()>8*l)throw new Error("code length overflow. ("+g.getLengthInBits()+">"+8*l+")");for(g.getLengthInBits()+4<=8*l&&g.put(0,4);0!=g.getLengthInBits()%8;)g.putBit(!1);for(;;){if(g.getLengthInBits()>=8*l)break;if(g.put(b.PAD0,8),g.getLengthInBits()>=8*l)break;g.put(b.PAD1,8)}return b.createBytes(g,e)},b.createBytes=function(a,b){for(var c=0,d=0,e=0,g=new Array(b.length),h=new Array(b.length),j=0;j<b.length;j++){var k=b[j].dataCount,l=b[j].totalCount-k;d=Math.max(d,k),e=Math.max(e,l),g[j]=new Array(k);for(var m=0;m<g[j].length;m++)g[j][m]=255&a.buffer[m+c];c+=k;var n=f.getErrorCorrectPolynomial(l),o=new i(g[j],n.getLength()-1),p=o.mod(n);h[j]=new Array(n.getLength()-1);for(var m=0;m<h[j].length;m++){var q=m+p.getLength()-h[j].length;h[j][m]=q>=0?p.get(q):0}}for(var r=0,m=0;m<b.length;m++)r+=b[m].totalCount;for(var s=new Array(r),t=0,m=0;d>m;m++)for(var j=0;j<b.length;j++)m<g[j].length&&(s[t++]=g[j][m]);for(var m=0;e>m;m++)for(var j=0;j<b.length;j++)m<h[j].length&&(s[t++]=h[j][m]);return s};for(var c={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},d={L:1,M:0,Q:3,H:2},e={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},f={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var b=a<<10;f.getBCHDigit(b)-f.getBCHDigit(f.G15)>=0;)b^=f.G15<<f.getBCHDigit(b)-f.getBCHDigit(f.G15);return(a<<10|b)^f.G15_MASK},getBCHTypeNumber:function(a){for(var b=a<<12;f.getBCHDigit(b)-f.getBCHDigit(f.G18)>=0;)b^=f.G18<<f.getBCHDigit(b)-f.getBCHDigit(f.G18);return a<<12|b},getBCHDigit:function(a){for(var b=0;0!=a;)b++,a>>>=1;return b},getPatternPosition:function(a){return f.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case e.PATTERN000:return 0==(b+c)%2;case e.PATTERN001:return 0==b%2;case e.PATTERN010:return 0==c%3;case e.PATTERN011:return 0==(b+c)%3;case e.PATTERN100:return 0==(Math.floor(b/2)+Math.floor(c/3))%2;case e.PATTERN101:return 0==b*c%2+b*c%3;case e.PATTERN110:return 0==(b*c%2+b*c%3)%2;case e.PATTERN111:return 0==(b*c%3+(b+c)%2)%2;default:throw new Error("bad maskPattern:"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new i([1],0),c=0;a>c;c++)b=b.multiply(new i([1,g.gexp(c)],0));return b},getLengthInBits:function(a,b){if(b>=1&&10>b)switch(a){case c.MODE_NUMBER:return 10;case c.MODE_ALPHA_NUM:return 9;case c.MODE_8BIT_BYTE:return 8;case c.MODE_KANJI:return 8;default:throw new Error("mode:"+a)}else if(27>b)switch(a){case c.MODE_NUMBER:return 12;case c.MODE_ALPHA_NUM:return 11;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 10;default:throw new Error("mode:"+a)}else{if(!(41>b))throw new Error("type:"+b);switch(a){case c.MODE_NUMBER:return 14;case c.MODE_ALPHA_NUM:return 13;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 12;default:throw new Error("mode:"+a)}}},getLostPoint:function(a){for(var b=a.getModuleCount(),c=0,d=0;b>d;d++)for(var e=0;b>e;e++){for(var f=0,g=a.isDark(d,e),h=-1;1>=h;h++)if(!(0>d+h||d+h>=b))for(var i=-1;1>=i;i++)0>e+i||e+i>=b||(0!=h||0!=i)&&g==a.isDark(d+h,e+i)&&f++;f>5&&(c+=3+f-5)}for(var d=0;b-1>d;d++)for(var e=0;b-1>e;e++){var j=0;a.isDark(d,e)&&j++,a.isDark(d+1,e)&&j++,a.isDark(d,e+1)&&j++,a.isDark(d+1,e+1)&&j++,(0==j||4==j)&&(c+=3)}for(var d=0;b>d;d++)for(var e=0;b-6>e;e++)a.isDark(d,e)&&!a.isDark(d,e+1)&&a.isDark(d,e+2)&&a.isDark(d,e+3)&&a.isDark(d,e+4)&&!a.isDark(d,e+5)&&a.isDark(d,e+6)&&(c+=40);for(var e=0;b>e;e++)for(var d=0;b-6>d;d++)a.isDark(d,e)&&!a.isDark(d+1,e)&&a.isDark(d+2,e)&&a.isDark(d+3,e)&&a.isDark(d+4,e)&&!a.isDark(d+5,e)&&a.isDark(d+6,e)&&(c+=40);for(var k=0,e=0;b>e;e++)for(var d=0;b>d;d++)a.isDark(d,e)&&k++;var l=Math.abs(100*k/b/b-50)/5;return c+=10*l}},g={glog:function(a){if(1>a)throw new Error("glog("+a+")");return g.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;a>=256;)a-=255;return g.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8>h;h++)g.EXP_TABLE[h]=1<<h;for(var h=8;256>h;h++)g.EXP_TABLE[h]=g.EXP_TABLE[h-4]^g.EXP_TABLE[h-5]^g.EXP_TABLE[h-6]^g.EXP_TABLE[h-8];for(var h=0;255>h;h++)g.LOG_TABLE[g.EXP_TABLE[h]]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;c<this.getLength();c++)for(var d=0;d<a.getLength();d++)b[c+d]^=g.gexp(g.glog(this.get(c))+g.glog(a.get(d)));return new i(b,0)},mod:function(a){if(this.getLength()-a.getLength()<0)return this;for(var b=g.glog(this.get(0))-g.glog(a.get(0)),c=new Array(this.getLength()),d=0;d<this.getLength();d++)c[d]=this.get(d);for(var d=0;d<a.getLength();d++)c[d]^=g.gexp(g.glog(a.get(d))+b);return new i(c,0).mod(a)}},j.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],j.getRSBlocks=function(a,b){var c=j.getRsBlockTable(a,b);if(void 0==c)throw new Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+b);for(var d=c.length/3,e=[],f=0;d>f;f++)for(var g=c[3*f+0],h=c[3*f+1],i=c[3*f+2],k=0;g>k;k++)e.push(new j(h,i));return e},j.getRsBlockTable=function(a,b){switch(b){case d.L:return j.RS_BLOCK_TABLE[4*(a-1)+0];case d.M:return j.RS_BLOCK_TABLE[4*(a-1)+1];case d.Q:return j.RS_BLOCK_TABLE[4*(a-1)+2];case d.H:return j.RS_BLOCK_TABLE[4*(a-1)+3];default:return void 0}},k.prototype={get:function(a){var b=Math.floor(a/8);return 1==(1&this.buffer[b]>>>7-a%8)},put:function(a,b){for(var c=0;b>c;c++)this.putBit(1==(1&a>>>b-c-1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],o=function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){function g(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg",a);for(var d in b)b.hasOwnProperty(d)&&c.setAttribute(d,b[d]);return c}var b=this._htOption,c=this._el,d=a.getModuleCount();Math.floor(b.width/d),Math.floor(b.height/d),this.clear();var h=g("svg",{viewBox:"0 0 "+String(d)+" "+String(d),width:"100%",height:"100%",fill:b.colorLight});h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),c.appendChild(h),h.appendChild(g("rect",{fill:b.colorDark,width:"1",height:"1",id:"template"}));for(var i=0;d>i;i++)for(var j=0;d>j;j++)if(a.isDark(i,j)){var k=g("use",{x:String(i),y:String(j)});k.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),h.appendChild(k)}},a.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},a}(),p="svg"===document.documentElement.tagName.toLowerCase(),q=p?o:m()?function(){function a(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function d(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement("img"),e=function(){c._bSupportDataURI=!1,c._fFail&&_fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&&c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,d.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",void 0}c._bSupportDataURI===!0&&c._fSuccess?c._fSuccess.call(c):c._bSupportDataURI===!1&&c._fFail&&c._fFail.call(c)}if(this._android&&this._android<=2.1){var b=1/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,g,h,i,j){if("nodeName"in a&&/img/i.test(a.nodeName))for(var l=arguments.length-1;l>=1;l--)arguments[l]=arguments[l]*b;else"undefined"==typeof j&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=n(),this._htOption=b,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=b.width,this._elCanvas.height=b.height,a.appendChild(this._elCanvas),this._el=a,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return e.prototype.draw=function(a){var b=this._elImage,c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width/e,g=d.height/e,h=Math.round(f),i=Math.round(g);b.style.display="none",this.clear();for(var j=0;e>j;j++)for(var k=0;e>k;k++){var l=a.isDark(j,k),m=k*f,n=j*g;c.strokeStyle=l?d.colorDark:d.colorLight,c.lineWidth=1,c.fillStyle=l?d.colorDark:d.colorLight,c.fillRect(m,n,f,g),c.strokeRect(Math.floor(m)+.5,Math.floor(n)+.5,h,i),c.strokeRect(Math.ceil(m)-.5,Math.ceil(n)-.5,h,i)}this._bIsPainted=!0},e.prototype.makeImage=function(){this._bIsPainted&&d.call(this,a)},e.prototype.isPainted=function(){return this._bIsPainted},e.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},e.prototype.round=function(a){return a?Math.floor(1e3*a)/1e3:a},e}():function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){for(var b=this._htOption,c=this._el,d=a.getModuleCount(),e=Math.floor(b.width/d),f=Math.floor(b.height/d),g=[' '],h=0;d>h;h++){g.push(" ");for(var i=0;d>i;i++)g.push(' ');g.push(" ")}g.push(" "),c.innerHTML=g.join("");var j=c.childNodes[0],k=(b.width-j.offsetWidth)/2,l=(b.height-j.offsetHeight)/2;k>0&&l>0&&(j.style.margin=l+"px "+k+"px")},a.prototype.clear=function(){this._el.innerHTML=""},a}();QRCode=function(a,b){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:d.H},"string"==typeof b&&(b={text:b}),b)for(var c in b)this._htOption[c]=b[c];"string"==typeof a&&(a=document.getElementById(a)),this._android=n(),this._el=a,this._oQRCode=null,this._oDrawing=new q(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(a){this._oQRCode=new b(r(a,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(a),this._oQRCode.make(),this._el.title=a,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=d}();添加好后打开/usr/themes/handsome/component/sidebar.php在pull-right"><?php echo timer_stop(); ?><?php _me("响应耗时") ?> 之后两行的 之后，<?php endif; ?>之前添加以下代码。当然具体位置可以按照自己的喜好来。记得把qrcode.min.js地址改成自己的(也可以不改)~ <?php _me("移动端阅读") ?> [/collapse]网页悬浮二维码[collapse status="false" title="网页悬浮二维码"]效果图：首先在/usr/themes/handsome/assets/js目录内创建一个qrcode.min.js文件，将以下代码加入var QRCode;!function(){function t(t){this.mode=r.MODE_8BIT_BYTE,this.data=t,this.parsedData=[];for(var e=0,o=this.data.length;e<o;e++){var i=[],n=this.data.charCodeAt(e);n>65536?(i[0]=240|(1835008&n)>>>18,i[1]=128|(258048&n)>>>12,i[2]=128|(4032&n)>>>6,i[3]=128|63&n):n>2048?(i[0]=224|(61440&n)>>>12,i[1]=128|(4032&n)>>>6,i[2]=128|63&n):n>128?(i[0]=192|(1984&n)>>>6,i[1]=128|63&n):i[0]=n,this.parsedData.push(i)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function e(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}t.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(var e=0,r=this.parsedData.length;e<r;e++)t.put(this.parsedData[e],8)}},e.prototype={addData:function(e){var r=new t(e);this.dataList.push(r),this.dataCache=null},isDark:function(t,e){if(t<0||this.moduleCount<=t||e<0||this.moduleCount<=e)throw new Error(t+","+e);return this.modules[t][e]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(t,r){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var o=0;o<this.moduleCount;o++){this.modules[o]=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++)this.modules[o][i]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(t,r),this.typeNumber>=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,r)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=g.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r);this.make();for(var i=0;i<this.modules.length;i++)for(var n=1*i,a=0;a<this.modules[i].length;a++){var s=1*a;this.modules[i][a]&&(o.beginFill(0,100),o.moveTo(s,n),o.lineTo(s+1,n),o.lineTo(s+1,n+1),o.lineTo(s,n+1),o.endFill())}return o},setupTimingPattern:function(){for(var t=8;t<this.moduleCount-8;t++)null==this.modules[t][36]&&(this.modules[t][37]=t%2==0);for(var e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)},setupPositionAdjustPattern:function(){for(var t=g.getPatternPosition(this.typeNumber),e=0;e<t.length;e++)for(var r=0;r<t.length;r++){var o=t[e],i=t[r];if(null==this.modules[o][i])for(var n=-2;n<=2;n++)for(var a=-2;a<=2;a++)this.modules[o+n][i+a]=-2==n||2==n||-2==a||2==a||0==n&&0==a}},setupTypeNumber:function(t){for(var e=g.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var o=!t&&1==(e>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;r<18;r++){o=!t&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o}},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=g.getBCHTypeInfo(r),i=0;i<15;i++){var n=!t&&1==(o>>i&1);i<6?this.modules[i][38]=n:i<8?this.modules[i+1][39]=n:this.modules[this.moduleCount-15+i][40]=n}for(i=0;i<15;i++){n=!t&&1==(o>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n}this.modules[this.moduleCount-8][41]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,i=7,n=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var h=!1;n<t.length&&(h=1==(t[n]>>>i&1)),g.getMask(e,o,a-s)&&(h=!h),this.modules[o][a-s]=h,-1==--i&&(n++,i=7)}if((o+=r)<0||this.moduleCount<=o){o-=r,r=-r;break}}}},e.PAD0=236,e.PAD1=17,e.createData=function(t,r,o){for(var i=m.getRSBlocks(t,r),n=new _,a=0;a<o.length;a++){var s=o[a];n.put(s.mode,4),n.put(s.getLength(),g.getLengthInBits(s.mode,t)),s.write(n)}var h=0;for(a=0;a<i.length;a++)h+=i[a].dataCount;if(n.getLengthInBits()>8*h)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*h+")");for(n.getLengthInBits()+4<=8*h&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*h||(n.put(e.PAD0,8),n.getLengthInBits()>=8*h));)n.put(e.PAD1,8);return e.createBytes(n,i)},e.createBytes=function(t,e){for(var r=0,o=0,i=0,n=new Array(e.length),a=new Array(e.length),s=0;s<e.length;s++){var h=e[s].dataCount,l=e[s].totalCount-h;o=Math.max(o,h),i=Math.max(i,l),n[s]=new Array(h);for(var u=0;u<n[s].length;u++)n[s][u]=255&t.buffer[u+r];r+=h;var f=g.getErrorCorrectPolynomial(l),d=new p(n[s],f.getLength()-1).mod(f);a[s]=new Array(f.getLength()-1);for(u=0;u<a[s].length;u++){var c=u+d.getLength()-a[s].length;a[s][u]=c>=0?d.get(c):0}}var m=0;for(u=0;u<e.length;u++)m+=e[u].totalCount;var _=new Array(m),v=0;for(u=0;u<o;u++)for(s=0;s<e.length;s++)u<n[s].length&&(_[v++]=n[s][u]);for(u=0;u<i;u++)for(s=0;s<e.length;s++)u<a[s].length&&(_[v++]=a[s][u]);return _};for(var r={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},o={L:1,M:0,Q:3,H:2},i=0,n=1,a=2,s=3,h=4,l=5,u=6,f=7,g={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(t){for(var e=t<<10;g.getBCHDigit(e)-g.getBCHDigit(g.G15)>=0;)e^=g.G15<<g.getBCHDigit(e)-g.getBCHDigit(g.G15);return(t<<10|e)^g.G15_MASK},getBCHTypeNumber:function(t){for(var e=t<<12;g.getBCHDigit(e)-g.getBCHDigit(g.G18)>=0;)e^=g.G18<<g.getBCHDigit(e)-g.getBCHDigit(g.G18);return t<<12|e},getBCHDigit:function(t){for(var e=0;0!=t;)e++,t>>>=1;return e},getPatternPosition:function(t){return g.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case i:return(e+r)%2==0;case n:return e%2==0;case a:return r%3==0;case s:return(e+r)%3==0;case h:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case l:return e*r%2+e*r%3==0;case u:return(e*r%2+e*r%3)%2==0;case f:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new p([1],0),r=0;r<t;r++)e=e.multiply(new p([1,d.gexp(r)],0));return e},getLengthInBits:function(t,e){if(1<=e&&e<10)switch(t){case r.MODE_NUMBER:return 10;case r.MODE_ALPHA_NUM:return 9;case r.MODE_8BIT_BYTE:case r.MODE_KANJI:return 8;default:throw new Error("mode:"+t)}else if(e<27)switch(t){case r.MODE_NUMBER:return 12;case r.MODE_ALPHA_NUM:return 11;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 10;default:throw new Error("mode:"+t)}else{if(!(e<41))throw new Error("type:"+e);switch(t){case r.MODE_NUMBER:return 14;case r.MODE_ALPHA_NUM:return 13;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 12;default:throw new Error("mode:"+t)}}},getLostPoint:function(t){for(var e=t.getModuleCount(),r=0,o=0;o<e;o++)for(var i=0;i<e;i++){for(var n=0,a=t.isDark(o,i),s=-1;s<=1;s++)if(!(o+s<0||e<=o+s))for(var h=-1;h<=1;h++)i+h<0||e<=i+h||0==s&&0==h||a==t.isDark(o+s,i+h)&&n++;n>5&&(r+=3+n-5)}for(o=0;o<e-1;o++)for(i=0;i<e-1;i++){var l=0;t.isDark(o,i)&&l++,t.isDark(o+1,i)&&l++,t.isDark(o,i+1)&&l++,t.isDark(o+1,i+1)&&l++,0!=l&&4!=l||(r+=3)}for(o=0;o<e;o++)for(i=0;i<e-6;i++)t.isDark(o,i)&&!t.isDark(o,i+1)&&t.isDark(o,i+2)&&t.isDark(o,i+3)&&t.isDark(o,i+4)&&!t.isDark(o,i+5)&&t.isDark(o,i+6)&&(r+=40);for(i=0;i<e;i++)for(o=0;o<e-6;o++)t.isDark(o,i)&&!t.isDark(o+1,i)&&t.isDark(o+2,i)&&t.isDark(o+3,i)&&t.isDark(o+4,i)&&!t.isDark(o+5,i)&&t.isDark(o+6,i)&&(r+=40);var u=0;for(i=0;i<e;i++)for(o=0;o<e;o++)t.isDark(o,i)&&u++;return r+=10*(Math.abs(100*u/e/e-50)/5)}},d={glog:function(t){if(t<1)throw new Error("glog("+t+")");return d.LOG_TABLE[t]},gexp:function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return d.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},c=0;c<8;c++)d.EXP_TABLE[c]=1<<c;for(c=8;c<256;c++)d.EXP_TABLE[c]=d.EXP_TABLE[c-4]^d.EXP_TABLE[c-5]^d.EXP_TABLE[c-6]^d.EXP_TABLE[c-8];for(c=0;c<255;c++)d.LOG_TABLE[d.EXP_TABLE[c]]=c;function p(t,e){if(void 0==t.length)throw new Error(t.length+"/"+e);for(var r=0;r<t.length&&0==t[r];)r++;this.num=new Array(t.length-r+e);for(var o=0;o<t.length-r;o++)this.num[o]=t[o+r]}function m(t,e){this.totalCount=t,this.dataCount=e}function _(){this.buffer=[],this.length=0}p.prototype={get:function(t){return this.num[t]},getLength:function(){return this.num.length},multiply:function(t){for(var e=new Array(this.getLength()+t.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<t.getLength();o++)e[r+o]^=d.gexp(d.glog(this.get(r))+d.glog(t.get(o)));return new p(e,0)},mod:function(t){if(this.getLength()-t.getLength()<0)return this;for(var e=d.glog(this.get(0))-d.glog(t.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(o=0;o<t.getLength();o++)r[o]^=d.gexp(d.glog(t.get(o))+e);return new p(r,0).mod(t)}},m.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],m.getRSBlocks=function(t,e){var r=m.getRsBlockTable(t,e);if(void 0==r)throw new Error("bad rs block @ typeNumber:"+t+"/errorCorrectLevel:"+e);for(var o=r.length/3,i=[],n=0;n<o;n++)for(var a=r[3*n+0],s=r[3*n+1],h=r[3*n+2],l=0;l<a;l++)i.push(new m(s,h));return i},m.getRsBlockTable=function(t,e){switch(e){case o.L:return m.RS_BLOCK_TABLE[4*(t-1)+0];case o.M:return m.RS_BLOCK_TABLE[4*(t-1)+1];case o.Q:return m.RS_BLOCK_TABLE[4*(t-1)+2];case o.H:return m.RS_BLOCK_TABLE[4*(t-1)+3];default:return}},_.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var r=0;r<e;r++)this.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var v=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function C(){var t=!1,e=navigator.userAgent;if(/android/i.test(e)){t=!0;var r=e.toString().match(/android ([0-9]\.[0-9])/i);r&&r[1]&&(t=parseFloat(r[1]))}return t}var w=function(){var t=function(t,e){this._el=t,this._htOption=e};return t.prototype.draw=function(t){var e=this._htOption,r=this._el,o=t.getModuleCount();Math.floor(e.width/o),Math.floor(e.height/o);function i(t,e){var r=document.createElementNS("http://www.w3.org/2000/svg",t);for(var o in e)e.hasOwnProperty(o)&&r.setAttribute(o,e[o]);return r}this.clear();var n=i("svg",{viewBox:"0 0 "+String(o)+" "+String(o),width:"100%",height:"100%",fill:e.colorLight});n.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.appendChild(n),n.appendChild(i("rect",{fill:e.colorLight,width:"100%",height:"100%"})),n.appendChild(i("rect",{fill:e.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;a<o;a++)for(var s=0;s<o;s++)if(t.isDark(a,s)){var h=i("use",{x:String(s),y:String(a)});h.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),n.appendChild(h)}},t.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},t}(),D="svg"===document.documentElement.tagName.toLowerCase()?w:"undefined"==typeof CanvasRenderingContext2D?function(){var t=function(t,e){this._el=t,this._htOption=e};return t.prototype.draw=function(t){for(var e=this._htOption,r=this._el,o=t.getModuleCount(),i=Math.floor(e.width/o),n=Math.floor(e.height/o),a=[' '],s=0;s<o;s++){a.push(" ");for(var h=0;h<o;h++)a.push(' ');a.push(" ")}a.push(" "),r.innerHTML=a.join("");var l=r.childNodes[0],u=(e.width-l.offsetWidth)/2,f=(e.height-l.offsetHeight)/2;u>0&&f>0&&(l.style.margin=f+"px "+u+"px")},t.prototype.clear=function(){this._el.innerHTML=""},t}():function(){function t(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}if(this._android&&this._android<=2.1){var e=1/window.devicePixelRatio,r=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(t,o,i,n,a,s,h,l,u){if("nodeName"in t&&/img/i.test(t.nodeName))for(var f=arguments.length-1;f>=1;f--)arguments[f]=arguments[f]*e;else void 0===l&&(arguments[1]*=e,arguments[2]*=e,arguments[3]*=e,arguments[4]*=e);r.apply(this,arguments)}}var o=function(t,e){this._bIsPainted=!1,this._android=C(),this._htOption=e,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=e.width,this._elCanvas.height=e.height,t.appendChild(this._elCanvas),this._el=t,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.alt="Scan me!",this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return o.prototype.draw=function(t){var e=this._elImage,r=this._oContext,o=this._htOption,i=t.getModuleCount(),n=o.width/i,a=o.height/i,s=Math.round(n),h=Math.round(a);e.style.display="none",this.clear();for(var l=0;l<i;l++)for(var u=0;u<i;u++){var f=t.isDark(l,u),g=u*n,d=l*a;r.strokeStyle=f?o.colorDark:o.colorLight,r.lineWidth=1,r.fillStyle=f?o.colorDark:o.colorLight,r.fillRect(g,d,n,a),r.strokeRect(Math.floor(g)+.5,Math.floor(d)+.5,s,h),r.strokeRect(Math.ceil(g)-.5,Math.ceil(d)-.5,s,h)}this._bIsPainted=!0},o.prototype.makeImage=function(){this._bIsPainted&&function(t,e){var r=this;if(r._fFail=e,r._fSuccess=t,null===r._bSupportDataURI){var o=document.createElement("img"),i=function(){r._bSupportDataURI=!1,r._fFail&&r._fFail.call(r)};return o.onabort=i,o.onerror=i,o.onload=function(){r._bSupportDataURI=!0,r._fSuccess&&r._fSuccess.call(r)},void(o.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")}!0===r._bSupportDataURI&&r._fSuccess?r._fSuccess.call(r):!1===r._bSupportDataURI&&r._fFail&&r._fFail.call(r)}.call(this,t)},o.prototype.isPainted=function(){return this._bIsPainted},o.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},o.prototype.round=function(t){return t?Math.floor(1e3*t)/1e3:t},o}();function A(t,e){for(var r=1,i=function(t){var e=encodeURI(t).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return e.length+(e.length!=t?3:0)}(t),n=0,a=v.length;n<=a;n++){var s=0;switch(e){case o.L:s=v[n][0];break;case o.M:s=v[n][42];break;case o.Q:s=v[n][43];break;case o.H:s=v[n][44]}if(i<=s)break;r++}if(r>v.length)throw new Error("Too long data");return r}(QRCode=function(t,e){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:o.H},"string"==typeof e&&(e={text:e}),e)for(var r in e)this._htOption[r]=e[r];"string"==typeof t&&(t=document.getElementById(t)),this._htOption.useSVG&&(D=w),this._android=C(),this._el=t,this._oQRCode=null,this._oDrawing=new D(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)}).prototype.makeCode=function(t){this._oQRCode=new e(A(t,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(t),this._oQRCode.make(),this._el.title=t,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=o}(),"undefined"!=typeof module&&(module.exports=QRCode);打开 /Handsome/compents/sidebar.php文件, 找到 <? php if (IS_TOC): ?>(140行左右)字样，在此行前面添加以下代码 手机观看 在sidebar.php的最后 <? php endif; ?> 前添加如下代码 将qrcode.min.js文件上传到合适位置后将以上代码中的链接修改即可[/collapse]信息统计增加全站字数、在线人数、响应耗时和访客总数[collapse status="false" title="信息统计增加全站字数、在线人数、响应耗时和访客总数"]首先将以下代码加到/usr/themes/handsome/libs/Content.php中，放在class Content的上面/*访问总量*/ function theAllViews(){ $db = Typecho_Db::get(); $row = $db->fetchAll('SELECT SUM(VIEWS) FROM `typecho_contents`'); echo number_format($row[0]['SUM(VIEWS)']); } /*响应时间*/ function timer_start() { global $timestart; $mtime = explode( ' ', microtime() ); $timestart = $mtime[1] + $mtime[0]; return true; } timer_start(); function timer_stop( $display = 0, $precision = 3 ) { global $timestart, $timeend; $mtime = explode( ' ', microtime() ); $timeend = $mtime[1] + $mtime[0]; $timetotal = number_format( $timeend - $timestart, $precision ); $r = $timetotal < 1 ? $timetotal * 1000 . " ms" : $timetotal . " s"; if ( $display ) { echo $r; } return $r; } /** * 全站字数 */ function allOfCharacters() { $chars = 0; $db = Typecho_Db::get(); $select = $db ->select('text')->from('table.contents'); $rows = $db->fetchAll($select); foreach ($rows as $row) { $chars += mb_strlen(trim($row['text']), 'UTF-8'); } $unit = ''; if($chars >= 10000) { $chars /= 10000; $unit = '万'; } else if($chars >= 1000) { $chars /= 1000; $unit = '千'; } $out = sprintf('%.2lf %s',$chars, $unit); return $out; } /** * 在线人数 */ function online_users() { $filename='online.txt'; //数据文件 $cookiename='Nanlon_OnLineCount'; //Cookie名称 $onlinetime=30; //在线有效时间 $online=file($filename); $nowtime=$_SERVER['REQUEST_TIME']; $nowonline=array(); foreach($online as $line){ $row=explode('|',$line); $sesstime=trim($row[1]); if(($nowtime - $sesstime)<=$onlinetime){ $nowonline[$row[0]]=$sesstime; } } if(isset($_COOKIE[$cookiename])){ $uid=$_COOKIE[$cookiename]; }else{ $vid=0; do{ $vid++; $uid='U'.$vid; }while(array_key_exists($uid,$nowonline)); setcookie($cookiename,$uid); } $nowonline[$uid]=$nowtime; $total_online=count($nowonline); if($fp=@fopen($filename,'w')){ if(flock($fp,LOCK_EX)){ rewind($fp); foreach($nowonline as $fuid=>$ftime){ $fline=$fuid.'|'.$ftime."\n"; @fputs($fp,$fline); } flock($fp,LOCK_UN); fclose($fp); } } echo "$total_online"; }然后在/usr/themes/handsome/component/sidebar.php文件内，找到合适和位置添加以下代码： 注： 处就是添加代码的地方，找到你想加的位置添加代码即可 <?php echo allOfCharacters(); ?><?php _me("全站字数") ?> <?php echo online_users() ?><?php _me("在线人数") ?> <?php echo theAllViews(); ?><?php _me("访客总数") ?> <?php echo timer_stop(); ?><?php _me("响应耗时") ?> [/collapse]底部版权美化[collapse status="false" title="底部版权美化"]左侧底部放在 后台-开发者设置-博客底部左侧信息 Copyright ©2022 5k5b. | 豫ICP备 2020030958号 豫公网安备 41032602000132号 右侧底部放在 后台-开发者设置-博客底部右侧信息 本站由 桔子数据提供服务 | Theme by Handsome css放在 主题设置-自定义css内/*底部页脚css*/ .github-badge { display: inline-block; border-radius: 4px; text-shadow: none; font-size: 12px; color: #fff; line-height: 15px; background-color: #abbac3; margin-bottom: 5px } .github-badge .badge-subject { display: inline-block; background-color: #4d4d4d; padding: 4px 4px 4px 6px; border-top-left-radius: 4px; border-bottom-left-radius: 4px } .github-badge .badge-value { display: inline-block; padding: 4px 6px 4px 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px } .github-badge .bg-blue { background-color: #007ec6 } .github-badge .bg-orange { background-color: #ffa500 } .github-badge .bg-green { background-color: #3bca6e }把下面代码放在主题目录usr/themes/handsome/component/footer.php内大概在177行，覆盖原来的即可 <?php $this->options->BottomInfo(); // 可以去除主题版权信息，最好保留版权信息或者添加主题信息到友链，谢谢你的理解 ?> <?php $this->options->BottomleftInfo(); ?> [/collapse]页脚处添加网站运行时间[collapse status="false" title="页脚处添加网站运行时间"]注意这个功能我是在上一个页脚美化的基础上添加的，如果没有添加页脚美化功能，该运行时间的排版会出现问题。当然你也可以改成你喜欢的样子~代码放到后台-开发者设置-博客底部左侧信息| 运行时间 [/collapse]添加网站加载效果[collapse status="false" title="添加网站加载效果"]首相找到/usr/themes/handsome/component/文件夹内的header.php，将以下代码加到最后 之后 加好后刷新博客会出现一直卡在加载页面的问题，我们再将以下代码放到自定义JavaScripts里面/* 加载动画 */ $(function(){ $("#PageLoading").fadeOut(400); $("#body").css('overflow',''); });[/collapse]添加一键打卡功能[collapse status="false" title="添加一键打卡功能"]该功能在每篇博文的评论框底部首先找到/usr/themes/handsome/component/comments.php将如下代码(可以直接搜 )更改为 <?php _me("评论") ?> * （请使用真实邮箱地址，方便及时接收评论回复！） <textarea id="comment" class="textarea form-control OwO-textarea" name="text" rows="5" placeholder="<?php _me("说点什么吧……") ?>" οnkeydοwn="if(event.ctrlKey&&event.keyCode==13){document.getElementById('submit').click();return false};"><?php $this->remember('text'); ?> 打卡 <div class="secret_comment" id="secret_comment" data-toggle="tooltip" data-original-title="<?php _me("开启该功能，您的评论仅作者和评论双方可见") ?>"> <?php _me("私密评论") ?> 接着去自定义JavaScript加入如下代码 function a(a, b, c) { if (document.selection) a.focus(), sel = document.selection.createRange(), c ? sel.text = b + sel.text + c : sel.text = b, a.focus(); else if (a.selectionStart || "0" == a.selectionStart) { var l = a.selectionStart, m = a.selectionEnd, n = m; c ? a.value = a.value.substring(0, l) + b + a.value.substring(l, m) + c + a.value.substring(m, a.value.length) : a.value = a.value.substring(0, l) + b + a.value.substring(m, a.value.length); c ? n += b.length + c.length : n += b.length - m + l; l == m && c && (n -= c.length); a.focus(); a.selectionStart = n; a.selectionEnd = n } else a.value += b + c, a.focus() } var b = (new Date).toLocaleTimeString(), c = document.getElementById("comment") || 0; window.SIMPALED = {}; window.SIMPALED.Editor = { daka: function() { a(c, "滴！学生卡！打卡时间：" + b, "，请上车的乘客系好安全带~") }, zan: function() { a(c, " 文章写得不错，给你点个赞，继续加油哈！") }, cai: function() { a(c, "骚年，我怀疑你写了一篇假的文章！") } };在自定义CSS处添加/*评论一键打卡、赞、踩 */ .secret_comment { top: 5px; } .OwO.OwO-open .OwO-body { display:table }搞好之后刷新网页就可以看到效果了~[/collapse]小版图模式下列表美化(小图斜切效果)[collapse status="false" title="小版图模式下列表美化"]这个项目就是将博客首页的小图模式下的栏目做一个斜切效果，具体可以看我博客首页的效果。或者新建一个.html文件，添加如下代码来预览效果 Cesium - 开源好用的图片压缩软件 Cesium能将您的图片压缩高达90％，而不会出现明显的质量损失。你可以使用此软件将诸如JPG，JPEG，PNG，BMP或WMF等图片格式，压缩保存为JPG，PNG或BMP。 其它信息 注意该效果仅仅在小版图的模式下才有效果~首先我们找到网站根目录/usr/themes/handsome/libs/Content.php将 替换为 并在自定义CSS里面添加以下代码/* 头图显示斜切样式 */ .tt-small-blur{position:relative;z-index:1;display:flex;overflow:hidden;background-color:#333;color:#fff;} .tt-small-blur .tt-left-box{z-index:1;-webkit-clip-path:polygon(0 0,94% 0,100% 100%,0 100%);clip-path:polygon(0 0,94% 0,100% 100%,0 100%);} .tt-small-blur .tt-left-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;} .tt-small-blur .tt-blur-img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;background-position:center;background-size:cover;transform:scale(1.4);-o-object-fit:cover;object-fit:cover;-webkit-filter:blur(1.275rem) brightness(.83);filter:blur(1.275rem) brightness(.83);} .tt-small-blur .post-meta{z-index:1;display:flex;color:inherit;flex-direction:column;justify-content:space-between;} .tt-small-blur .text-title{color:inherit;} .tt-small-blur .post-meta h2,.tt-small-blur .post-meta p{text-shadow:.1875rem .1875rem .3125rem #333;letter-spacing:.09rem;} .tt-small-blur .text-muted{color:inherit;} .tt-small-blur .post-meta {padding: 30px 30px 15px 30px;} @media (max-width:500px){.tt-small-blur .index-post-title{display:-webkit-box;display:-moz-box;overflow:hidden;margin-bottom:2px;height:48px;text-overflow:ellipsis;white-space:normal;word-wrap:break-word;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical;-moz-line-clamp:2;-moz-box-orient:vertical;word-break:break-all;}} @media (max-width:500px){.tt-small-blur .summary{display:none;}} @media (max-width:380px){.tt-small-blur .post-meta{padding:10px 15px;}} @media (min-width:768px) and (max-width: 1199px){.tt-small-blur .summary {height: 55px;}.tt-small-blur .line-lg {margin-top: 1px;margin-bottom: 1px;}}[/collapse]自定义字体[collapse status="false" title="自定义字体"]首先我们去字体天下网站找到一款自己喜欢的字体，记得一定要是免费商用的，防止有版权问题~下载好后会发现是一个.tff扩展名的文件，我们再去字体转换网站里将.tff转换为.woff格式的文件并将转换后的文件上传到你网站目录里的某个位置，默认是usr/themes/handsome/assets/fonts文件夹里。前往 外观设置-开发者设置-自定义css中添加以下代码/*自定义字体*/ @font-face{font-family:HarmonyOS_Sans_SC_Medium;font-style:normal;font-display:swap; src:url(填写字体所在的位置) format('woff2')} *{font-family:HarmonyOS_Sans_SC_Medium} body {font- family: HarmonyOS!important;}[/collapse]在博客顶部添加心知天气[collapse status="false" title="在博客顶部添加心知天气"]首先去心知天气官网注册账号并申请API之后在/usr/themes/handsome/component/headnav.php文件中的动态日历中<?php endif;?>下方添加以下代码注意将API信息改成自己的 [/collapse]404页面添加自动返回首页功能[collapse status="false" title="404页面添加自动返回首页功能"]找到/usr/themes/handsome文件夹内的404.php文件并打开。在h1 class="text-shadow text-white">404这一行下面加入以下代码： 2秒后自动返回··· 立刻返回再把下面的代码加入404.php文件内最底下的 前面 [/collapse]新年喝彩图[collapse status="false" title="新年喝彩图"]效果图：代码添加到自定义CSS中/*新年喝彩图*/ #new_year{ position: absolute; pointer-events: none; opacity: 0.5; left: 0; right: 0; bottom: 0; } #post-panel header.wrapper-md.bg-light{ position:relative; }找到usr/theme/handsome/index.php在以下图中位置（大概37行左右）添加如下代码 [/collapse]背景云雾特效[collapse status="false" title="背景云雾特效"]使用方法先在后台-设置外观-开发者设置-自定义CSS 添加以下代码 {margin:0;padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}figure{margin:0}.absolute-bg{position:absolute;top:0;left:0;z-index:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:cover;overflow:hidden}.fog{position:relative;height:100vh;width:100%;position:fixed;top:0;z-index:-1}.fog__container{position:absolute;height:100%;width:100%;overflow:hidden}.fog__img{position:absolute;height:100vh;width:300vw}.fog__img--first{background:url("https://ae01.alicdn.com/kf/Ud713fee99c5d4f2bac69dd0469a95b13e.png") repeat-x;background-size:contain;background-position:center;-webkit-animation:marquee 60s linear infinite;animation:marquee 60s linear infinite}.fog__img--second{background:url("https://ae01.alicdn.com/kf/Ub5631e112d7742cbb3cab47a304b80f4T.png") repeat-x;background-size:contain;background-position:center;-webkit-animation:marquee 40s linear infinite;animation:marquee 40s linear infinite}@media screen and (max-width:767px){.fog__img--first{-webkit-animation:marquee 6s linear infinite;animation:marquee 6s linear infinite}.fog__img--second{-webkit-animation:marquee 6s linear infinite;animation:marquee 6s linear infinite}}@-webkit-keyframes marquee{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{-webkit-transform:translate3d(-200vw,0,0);transform:translate3d(-200vw,0,0)}}@keyframes marquee{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{-webkit-transform:translate3d(-200vw,0,0);transform:translate3d(-200vw,0,0)}} 然后编辑/usr/themes/handsome/component/footer.php文件在<?php $this->footer(); ?>上面添加以下代码 [/collapse]文章底部添加标签[collapse status="false" title="文章底部添加标签"]效果图：在当前文章内容尾部添加该文章的标签，在主题目录下的/usr/themes/handsome/post.php文件中的适当地方加入以下代码。 标签：<?php $this->tags('，', true, 'no tag'); ?>[/collapse]在文章顶部添加百度是否收录[collapse status="false" title="在文章顶部添加百度是否收录"]效果图：使用方法在handsome/functions.php最底部添加代码/** * 提示文章百度是否收录 * */ function baidu_record() { $url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if(checkBaidu($url)==1){ echo "百度已收录"; } else{ echo "百度未收录";} } function checkBaidu($url) { $url = 'http://www.baidu.com/s?wd=' . urlencode($url); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $rs = curl_exec($curl); curl_close($curl); if (!strpos($rs, '没有找到')) { //没有找到说明已被百度收录 return 1; } else { return -1; } } 然后在handsome/post.php在63行左右添加代码 &nbsp<?php echo baidu_record() ?> [/collapse]鼠标点击特效​-富强、民主文字样式[collapse status="false" title="鼠标点击特效​"]效果图：将以下代码放在主题的​​handsome/component/footer.php​​中的 之前即可。或者直接在后台外观设置→开发者设置→自定义输出body尾部的HTML代码处粘贴即可 [/collapse]鼠标点击特效​-文字样式第二种[collapse status="false" title="鼠标点击特效​-文字样式第二种"]效果图：在后台设置的‘自定义输出body 尾部的HTML代码’里填上以下代码，保存即可；/*全局-鼠标点击特效*/ [/collapse]鼠标点击特效​-文字样式第三种[collapse status="false" title="鼠标点击特效"]效果图：将以下代码放在主题的​​handsome/component/footer.php​​中的 之前即可。或者直接在后台外观设置→开发者设置→自定义输出body尾部的HTML代码处粘贴即可 [/collapse]更改一言接口[collapse status="false" title="更改一言接口"]假如你是个古诗词爱好者，你可能希望将handsome自带的一言换为换成古诗词版的，刚好已经有人开发出这样的api了，我们直接调用即可。今日诗词官网地址我比较喜欢的一点是，它会自动获取访客ip，然后根据ip所在地、访问时间等信息来推荐相关的古诗词（比如如果你在上海的晚上打开网站，它就会推送有关江南、夜雨的古诗词），很妙。具体的推荐方式点我查看。主题根目录下打开index.php，找到以下代码：<?php if (@!in_array('hitokoto',$this->options->featuresetup)) { $this->options->Indexwords(); }else{ echo '加载中……'; echo ' '; } ?>更改为以下代码： 正在加载今日诗词.... 当然，别忘了在主题后台启用主题增强功能->增强功能开关->启用一言接口[/collapse]文章页面页脚插入one一言[collapse status="false" title="文章页面页脚插入one一言"]效果图：代码放置开发者设置-文章页脚广告位 ◈ [/collapse]右侧广告位 插入今日诗词一言[collapse status="false" title="右侧广告位 插入今日诗词一言"]效果图：代码放置开发者设置-全局右侧边栏广告位 ◈ 正在加载今日诗词.... 之后去/usr/themes/handsome/component/sidebar.php大约在162行左右[/collapse]一言打字特效[collapse status="false" title="一言打字特效"]第一步先把这两个js放到：设置外观–开发者设置–自定义输出head头部的HTML代码 第二步把下面的js代码。复制到：设置外观–开发者设置–自定义JavaScriptfunction typedword(){ $.ajax({ type:"get", url:"https://api.gordsky.cn/Love/", data:{type:'json10'}, async:true, success:function(word){ var list = []; for(var i = 0 ;i < word.length ; i++){ list.push(word[i]['word']); } $("#word").typed({ strings: list, typeSpeed: 20, loop: true, backDelay: 3000, }); } }); }第三步把下面的html代码复制到：设置外观–初级设置–首页一行文字介绍 [/collapse]右侧栏加入每日pixiv热榜图片[collapse status="false" title="右侧栏加入每日pixiv热榜图片"]效果图：Github：https://github.com/mokeyjay/Pixiv-daily-top50-widget主题设置 – 开发者设置 – 全局右侧广告位添加以下代码 然后修改handsome/component/sidebar.php找到 <?php _me(“广告”) ?> ，将”广告”二字修改为“P站每日热门”[/collapse]位置地球[collapse status="false" title="位置地球"]效果图：方法：进入handsome后台，选择“更换外观--设置外观--开发者设置--全局右侧边栏广告位”，将复制的代码粘贴即可 替换广告字：打开“/usr/themes/handsome/component/sidebar.php”文件，搜索“广告”二字，改为“位置地球”。[/collapse]全站友链显示图片[collapse status="false" title="全站友链显示图片"]效果图：打开/usr/themes/handsome/component/aside.php文件，大概在210左右，把这一段替换为以下代码替换为： <?php $mypattern1 = " {name} "; Handsome_Plugin::output($mypattern1, 0, "ten");?> [/collapse]右侧添加“全屏显示按钮”[collapse status="false" title="右侧添加“全屏显示按钮”"]效果图：打开/usr/themes/handsome/component/fotter.php文件，找到“返回顶部”这段代码 大概在96行左右，在下方开始添加 <button id="f10" class="fix-padding btn btn-default rightSettingBtn pos-abt border-radius-half-left" data-toggle="tooltip" data-placement="left" data-original-title="<?php _me("全屏切换") ?>" style="top:44px;border:none;box-shadow:-3px 0 2px 0 rgba(0,0,0,.02);background:rgba(255,255,255,.3) !important;color:#840606 !important;border-top-right-radius:0;border-bottom-right-radius:0;left:-43px;padding:10px 15px;position:absolute;"> */ [/collapse]时光机去除蒙层[collapse status="false" title="时光机去除蒙层"]效果图：修改前修改后把以下代码添加到自定义JavaScript代码内/* 时光机去蒙版 */ try{ document.getElementsByClassName("wrapper-lg bg-white-opacity")[0].classList.remove("bg-white-opacity"); }catch(err){}之后去/usr/themes/handsome/cross.php文件内搜索bg-white-opacity，将这一行代码注释掉，在下方添加 示例图：[/collapse]表情包添加[scode type="green"]以下提到的JSON内容添加到/usr/themes/handsome/usr/OwO.json文件里面，压缩包内的文件夹放到/usr/themes/handsome/assets/img/emotion目录内[/scode][collapse status="false" title="阿鲁"]阿鲁是在自带阿鲁表情包的基础上做的拓展，所以如果你不想拓展的话，JSON部分需要自行调整"阿鲁": { "name": "aru", "type": "image", "container": [ { "icon": "0000", "text": "**" }, { "icon": "0010", "text": "**" }, { "icon": "0020", "text": "**" }, { "icon": "0030", "text": "**" }, { "icon": "0040", "text": "**" }, { "icon": "0050", "text": "**" }, { "icon": "0060", "text": "**" }, { "icon": "0070", "text": "**" }, { "icon": "0080", "text": "**" }, { "icon": "0090", "text": "**" }, { "icon": "0100", "text": "**" }, { "icon": "0110", "text": "**" }, { "icon": "0120", "text": "**" }, { "icon": "0130", "text": "**" }, { "icon": "0140", "text": "**" }, { "icon": "0150", "text": "**" }, { "icon": "0160", "text": "**" }, { "icon": "0171", "text": "**" }, { "icon": "0180", "text": "**" }, { "icon": "0181", "text": "**" }, { "icon": "0190", "text": "**" }, { "icon": "0200", "text": "**" }, { "icon": "0210", "text": "**" }, { "icon": "0220", "text": "**" }, { "icon": "0230", "text": "**" }, { "icon": "0240", "text": "**" }, { "icon": "0241", "text": "**" }, { "icon": "0250", "text": "**" }, { "icon": "0260", "text": "**" }, { "icon": "0270", "text": "**" }, { "icon": "0280", "text": "**" }, { "icon": "0290", "text": "**" }, { "icon": "0300", "text": "**" }, { "icon": "0310", "text": "**" }, { "icon": "0320", "text": "**" }, { "icon": "0330", "text": "**" }, { "icon": "0331", "text": "**" }, { "icon": "0340", "text": "**" }, { "icon": "0350", "text": "**" }, { "icon": "0360", "text": "**" }, { "icon": "0370", "text": "**" }, { "icon": "0380", "text": "**" }, { "icon": "0390", "text": "**" }, { "icon": "0391", "text": "**" }, { "icon": "0400", "text": "**" }, { "icon": "0410", "text": "**" }, { "icon": "0420", "text": "**" }, { "icon": "0430", "text": "**" }, { "icon": "0431", "text": "**" }, { "icon": "0440", "text": "**" }, { "icon": "0450", "text": "**" }, { "icon": "0451", "text": "**" }, { "icon": "0460", "text": "**" }, { "icon": "0461", "text": "**" }, { "icon": "0462", "text": "**" }, { "icon": "0470", "text": "**" }, { "icon": "0480", "text": "**" }, { "icon": "0490", "text": "**" }, { "icon": "0500", "text": "**" }, { "icon": "0510", "text": "**" }, { "icon": "0520", "text": "**" }, { "icon": "0530", "text": "**" }, { "icon": "0540", "text": "**" }, { "icon": "0550", "text": "**" }, { "icon": "0560", "text": "**" }, { "icon": "0570", "text": "**" }, { "icon": "0580", "text": "**" }, { "icon": "0590", "text": "**" }, { "icon": "0600", "text": "**" }, { "icon": "0610", "text": "**" }, { "icon": "0620", "text": "**" }, { "icon": "despise", "text": "鄙视" }, { "icon": "knife", "text": "插刀" }, { "icon": "pouting", "text": "亲嘴" }, { "icon": "shutup", "text": "闭嘴" }, { "icon": "unhappy", "text": "不开心" }, { "icon": "discovertruth", "text": "发现真相" }, { "icon": "shit", "text": "便便" }, { "icon": "distressed", "text": "烦恼" }, { "icon": "shy", "text": "捂脸" }, { "icon": "speechless", "text": "无语" }, { "icon": "confuse", "text": "迷惑" }, { "icon": "frown", "text": "皱眉" }, { "icon": "proud", "text": "得意" }, { "icon": "cheer", "text": "欢呼" }, { "icon": "meditation", "text": "沉思" }, { "icon": "diving", "text": "潜水" }, { "icon": "cryingface", "text": "掩面哭泣" }, { "icon": "lurking", "text": "潜伏" }, { "icon": "thumb", "text": "大拇指" }, { "icon": "smile", "text": "微笑" }, { "icon": "clap", "text": "拍掌" }, { "icon": "envious", "text": "眼馋" }, { "icon": "surrender", "text": "投降" }, { "icon": "bigeye", "text": "大眼睛" }, { "icon": "nose", "text": "抠鼻" }, { "icon": "sweat", "text": "流汗" }, { "icon": "flower", "text": "小花花" }, { "icon": "crying", "text": "流泪" }, { "icon": "spit", "text": "吐" }, { "icon": "surprised", "text": "吃惊" }, { "icon": "blood", "text": "一滩血" }, { "icon": "blood2", "text": "吐血" }, { "icon": "shy2", "text": "脸红" }, { "icon": "angry", "text": "生气" }, { "icon": "nomatter", "text": "无所谓" }, { "icon": "dead", "text": "死翘翘" }, { "icon": "insidious", "text": "阴险" }, { "icon": "1010", "text": "**" }, { "icon": "1020", "text": "**" }, { "icon": "1030", "text": "**" }, { "icon": "1040", "text": "**" }, { "icon": "1050", "text": "**" }, { "icon": "1060", "text": "**" }, { "icon": "1070", "text": "**" }, { "icon": "1080", "text": "**" }, { "icon": "2010", "text": "**" }, { "icon": "2020", "text": "**" }, { "icon": "2030", "text": "**" }, { "icon": "2040", "text": "**" }, { "icon": "2050", "text": "**" }, { "icon": "2060", "text": "**" }, { "icon": "2070", "text": "**" }, { "icon": "2080", "text": "**" }, { "icon": "2090", "text": "**" }, { "icon": "2100", "text": "**" }, { "icon": "2101", "text": "**" }, { "icon": "2110", "text": "**" }, { "icon": "2120", "text": "**" }, { "icon": "2130", "text": "**" }, { "icon": "2140", "text": "**" }, { "icon": "2141", "text": "**" }, { "icon": "2145", "text": "**" }, { "icon": "2150", "text": "**" }, { "icon": "2151", "text": "**" }, { "icon": "2152", "text": "**" }, { "icon": "2160", "text": "**" }, { "icon": "2161", "text": "**" }, { "icon": "2165", "text": "**" }, { "icon": "2170", "text": "**" }, { "icon": "2171", "text": "**" }, { "icon": "3010", "text": "**" }, { "icon": "3011", "text": "**" }, { "icon": "3020", "text": "**" }, { "icon": "3030", "text": "**" }, { "icon": "3040", "text": "**" }, { "icon": "3050", "text": "**" }, { "icon": "3060", "text": "**" }, { "icon": "3061", "text": "**" }, { "icon": "4010", "text": "**" }, { "icon": "4020", "text": "**" }, { "icon": "4021", "text": "**" }, { "icon": "4022", "text": "**" }, { "icon": "4023", "text": "**" }, { "icon": "4024", "text": "**" }, { "icon": "4025", "text": "**" }, { "icon": "4030", "text": "**" }, { "icon": "4031", "text": "**" }, { "icon": "4040", "text": "**" }, { "icon": "4041", "text": "**" }, { "icon": "4042", "text": "**" }, { "icon": "4100", "text": "**" }, { "icon": "4110", "text": "**" }, { "icon": "4111", "text": "**" }, { "icon": "4112", "text": "**" }, { "icon": "4113", "text": "**" }, { "icon": "4114", "text": "**" }, { "icon": "4115", "text": "**" }, { "icon": "4120", "text": "**" }, { "icon": "4121", "text": "**" }, { "icon": "4130", "text": "**" }, { "icon": "4140", "text": "**" }, { "icon": "4200", "text": "**" }, { "icon": "4201", "text": "**" }, { "icon": "4210", "text": "**" }, { "icon": "4211", "text": "**" }, { "icon": "4212", "text": "**" }, { "icon": "4213", "text": "**" }, { "icon": "4220", "text": "**" }, { "icon": "4300", "text": "**" }, { "icon": "4301", "text": "**" }, { "icon": "4302", "text": "**" }, { "icon": "4303", "text": "**" }, { "icon": "4304", "text": "**" }, { "icon": "tongue", "text": "吐舌" }, { "icon": "4310", "text": "#" }, { "icon": "5000", "text": "#" }, { "icon": "5001", "text": "#" }, { "icon": "5002", "text": "#" }, { "icon": "5003", "text": "#" }, { "icon": "5010", "text": "#" }, { "icon": "5020", "text": "#" }, { "icon": "5030", "text": "#" }, { "icon": "5040", "text": "#" }, { "icon": "5050", "text": "#" }, { "icon": "5060", "text": "#" }, { "icon": "5069", "text": "#" }, { "icon": "5070", "text": "#" }, { "icon": "5080", "text": "#" }, { "icon": "5090", "text": "#" }, { "icon": "5091", "text": "#" }, { "icon": "5100", "text": "#" }, { "icon": "5110", "text": "#" }, { "icon": "5120", "text": "#" }, { "icon": "5130", "text": "#" }, { "icon": "5131", "text": "#" }, { "icon": "5140", "text": "#" }, { "icon": "5141", "text": "#" }, { "icon": "5150", "text": "#" }, { "icon": "5151", "text": "#" }, { "icon": "5160", "text": "#" }, { "icon": "5161", "text": "#" }, { "icon": "5170", "text": "#" }, { "icon": "5180", "text": "#" }, { "icon": "5190", "text": "#" }, { "icon": "5200", "text": "#" }, { "icon": "5210", "text": "#" }, { "icon": "5220", "text": "#" }, { "icon": "5230", "text": "#" }, { "icon": "6000", "text": "#" }, { "icon": "6001", "text": "#" }, { "icon": "6010", "text": "#" }, { "icon": "6020", "text": "#" }, { "icon": "6030", "text": "#" }, { "icon": "6040", "text": "#" }, { "icon": "6050", "text": "#" }, { "icon": "6051", "text": "#" }, { "icon": "6060", "text": "#" }, { "icon": "6061", "text": "#" }, { "icon": "6070", "text": "#" }, { "icon": "6080", "text": "#" }, { "icon": "6090", "text": "#" }, { "icon": "6091", "text": "#" }, { "icon": "6092", "text": "#" }, { "icon": "6100", "text": "#" }, { "icon": "6110", "text": "#" }, { "icon": "6120", "text": "#" }, { "icon": "6121", "text": "#" }, { "icon": "6130", "text": "#" }, { "icon": "6131", "text": "#" }, { "icon": "6132", "text": "#" }, { "icon": "6140", "text": "#" }, { "icon": "6150", "text": "#" }, { "icon": "6151", "text": "#" }, { "icon": "6160", "text": "#" }, { "icon": "6500", "text": "#" }, { "icon": "6510", "text": "#" }, { "icon": "6520", "text": "#" }, { "icon": "6530", "text": "#" }, { "icon": "7000", "text": "#" }, { "icon": "7010", "text": "#" }, { "icon": "7011", "text": "#" }, { "icon": "7012", "text": "#" }, { "icon": "7020", "text": "#" }, { "icon": "7021", "text": "#" }, { "icon": "7030", "text": "#" }, { "icon": "7040", "text": "#" }, { "icon": "7045", "text": "#" }, { "icon": "7046", "text": "#" }, { "icon": "7050", "text": "#" }, { "icon": "7051", "text": "#" }, { "icon": "7052", "text": "#" }, { "icon": "7053", "text": "#" }, { "icon": "7054", "text": "#" }, { "icon": "7060", "text": "#" }, { "icon": "7061", "text": "#" }, { "icon": "7062", "text": "#" }, { "icon": "7070", "text": "#" }, { "icon": "7071", "text": "#" }, { "icon": "7080", "text": "#" }, { "icon": "7081", "text": "#" }, { "icon": "7090", "text": "#" }, { "icon": "7100", "text": "#" }, { "icon": "7110", "text": "#" }, { "icon": "7111", "text": "#" }, { "icon": "7112", "text": "#" }, { "icon": "7113", "text": "#" }, { "icon": "7200", "text": "#" }, { "icon": "7201", "text": "#" }, { "icon": "7210", "text": "#" }, { "icon": "7220", "text": "#" }, { "icon": "7230", "text": "#" }, { "icon": "8000", "text": "#" }, { "icon": "8001", "text": "#" }, { "icon": "8010", "text": "#" }, { "icon": "8020", "text": "#" }, { "icon": "8021", "text": "#" }, { "icon": "8030", "text": "#" }, { "icon": "8040", "text": "#" }, { "icon": "8041", "text": "#" }, { "icon": "8042", "text": "#" }, { "icon": "8050", "text": "#" }, { "icon": "8051", "text": "#" }, { "icon": "8060", "text": "#" }, { "icon": "8062", "text": "#" }, { "icon": "8070", "text": "#" }, { "icon": "8071", "text": "#" }, { "icon": "8072", "text": "#" }, { "icon": "8080", "text": "#" }, { "icon": "8081", "text": "#" }, { "icon": "8082", "text": "#" }, { "icon": "8083", "text": "#" }, { "icon": "8084", "text": "#" }, { "icon": "8085", "text": "#" }, { "icon": "8090", "text": "#" }, { "icon": "8091", "text": "#" }, { "icon": "8092", "text": "#" }, { "icon": "8100", "text": "#" }, { "icon": "8101", "text": "#" }, { "icon": "8102", "text": "#" }, { "icon": "8103", "text": "#" }, { "icon": "8110", "text": "#" }, { "icon": "x010", "text": "#" }, { "icon": "x011", "text": "#" }, { "icon": "x012", "text": "#" }, { "icon": "x013", "text": "#" }, { "icon": "x014", "text": "#" }, { "icon": "x021", "text": "#" }, { "icon": "x022", "text": "#" }, { "icon": "x031", "text": "#" }, { "icon": "x032", "text": "#" }, { "icon": "x041", "text": "#" }, { "icon": "x042", "text": "#" }, { "icon": "x050", "text": "#" }, { "icon": "x060", "text": "#" }, { "icon": "x061", "text": "#" }, { "icon": "x062", "text": "#" }, { "icon": "x063", "text": "#" }, { "icon": "x069", "text": "#" }, { "icon": "x070", "text": "#" }, { "icon": "x071", "text": "#" }, { "icon": "x080", "text": "#" }, { "icon": "x081", "text": "#" }, { "icon": "x082", "text": "#" }, { "icon": "x083", "text": "#" }, { "icon": "x090", "text": "#" }, { "icon": "x091", "text": "#" }, { "icon": "x092", "text": "#" }, { "icon": "x093", "text": "#" }, { "icon": "x094", "text": "#" }, { "icon": "x099", "text": "#" } ] },[button color="success" icon="download" url="https://rjw.lanzoul.com/iLZLu051x4uj" type=""]阿鲁整合包下载[/button][/collapse][collapse status="false" title="贴吧"]"贴吧":{ "type": "image", "name": "tieba", "container":[ { "icon": "Y.tb1", "text": "贴吧" }, { "icon": "Y.tb2", "text": "贴吧" }, { "icon": "Y.tb3", "text": "贴吧" }, { "icon": "Y.tb4", "text": "贴吧" }, { "icon": "Y.tb5", "text": "贴吧" }, { "icon": "Y.tb6", "text": "贴吧" }, { "icon": "Y.tb7", "text": "贴吧" }, { "icon": "Y.tb8", "text": "贴吧" }, { "icon": "Y.tb9", "text": "贴吧" }, { "icon": "Y.tb10", "text": "贴吧" }, { "icon": "Y.tb11", "text": "贴吧" }, { "icon": "Y.tb12", "text": "贴吧" }, { "icon": "Y.tb13", "text": "贴吧" }, { "icon": "Y.tb14", "text": "贴吧" }, { "icon": "Y.tb15", "text": "贴吧" }, { "icon": "Y.tb17", "text": "贴吧" }, { "icon": "Y.tb18", "text": "贴吧" }, { "icon": "Y.tb19", "text": "贴吧" }, { "icon": "Y.tb20", "text": "贴吧" }, { "icon": "Y.tb23", "text": "贴吧" }, { "icon": "Y.tb24", "text": "贴吧" }, { "icon": "Y.tb25", "text": "贴吧" }, { "icon": "Y.tb26", "text": "贴吧" }, { "icon": "Y.tb27", "text": "贴吧" }, { "icon": "Y.tb28", "text": "贴吧" }, { "icon": "Y.tb29", "text": "贴吧" }, { "icon": "Y.tb30", "text": "贴吧" }, { "icon": "Y.tb31", "text": "贴吧" }, { "icon": "Y.tb32", "text": "贴吧" }, { "icon": "Y.tb33", "text": "贴吧" }, { "icon": "Y.tb34", "text": "贴吧" }, { "icon": "Y.tb35", "text": "贴吧" }, { "icon": "Y.tb36", "text": "贴吧" }, { "icon": "Y.tb37", "text": "贴吧" }, { "icon": "Y.tb38", "text": "贴吧" }, { "icon": "Y.tb39", "text": "贴吧" }, { "icon": "Y.tb40", "text": "贴吧" }, { "icon": "Y.tb41", "text": "贴吧" }, { "icon": "Y.tb42", "text": "贴吧" }, { "icon": "Y.tb43", "text": "贴吧" }, { "icon": "Y.tb44", "text": "贴吧" }, { "icon": "Y.tb45", "text": "贴吧" }, { "icon": "Y.tb46", "text": "贴吧" }, { "icon": "Y.tb47", "text": "贴吧" }, { "icon": "Y.tb48", "text": "贴吧" }, { "icon": "Y.tb49", "text": "贴吧" }, { "icon": "Y.tb50", "text": "贴吧" }, { "icon": "Y.tb51", "text": "贴吧" }, { "icon": "Y.tb52", "text": "贴吧" }, { "icon": "Y.tb53", "text": "贴吧" }, { "icon": "Y.tb54", "text": "贴吧" }, { "icon": "Y.tb55", "text": "贴吧" }, { "icon": "Y.tb56", "text": "贴吧" }, { "icon": "Y.tb57", "text": "贴吧" }, { "icon": "Y.tb58", "text": "贴吧" }, { "icon": "Y.tb59", "text": "贴吧" }, { "icon": "Y.tb60", "text": "贴吧" }, { "icon": "Y.tb61", "text": "贴吧" }, { "icon": "Y.tb62", "text": "贴吧" }, { "icon": "Y.tb63", "text": "贴吧" }, { "icon": "Y.tb64", "text": "贴吧" }, { "icon": "Y.tb65", "text": "贴吧" }, { "icon": "Y.tb66", "text": "贴吧" }, { "icon": "Y.tb67", "text": "贴吧" }, { "icon": "Y.tb68", "text": "贴吧" }, { "icon": "Y.tb69", "text": "贴吧" }, { "icon": "Y.tb70", "text": "贴吧" }, { "icon": "Y.tb71", "text": "贴吧" }, { "icon": "Y.tb72", "text": "贴吧" }, { "icon": "Y.tb73", "text": "贴吧" }, { "icon": "Y.tb74", "text": "贴吧" }, { "icon": "Y.tb75", "text": "贴吧" }, { "icon": "Y.tb76", "text": "贴吧" }, { "icon": "Y.tb77", "text": "贴吧" }, { "icon": "Y.tb78", "text": "贴吧" }, { "icon": "Y.tb79", "text": "贴吧" }, { "icon": "Y.tb80", "text": "贴吧" }, { "icon": "Y.tb81", "text": "贴吧" }, { "icon": "Y.tb82", "text": "贴吧" }, { "icon": "Y.tb83", "text": "贴吧" }, { "icon": "Y.tb84", "text": "贴吧" }, { "icon": "Y.tb85", "text": "贴吧" }, { "icon": "Y.tb86", "text": "贴吧" }, { "icon": "Y.tb87", "text": "贴吧" }, { "icon": "Y.tb88", "text": "贴吧" }, { "icon": "Y.tb89", "text": "贴吧" }, { "icon": "Y.tb90", "text": "贴吧" }, { "icon": "Y.tb91", "text": "贴吧" }, { "icon": "Y.tb92", "text": "贴吧" }, { "icon": "Y.tb93", "text": "贴吧" }, { "icon": "Y.tb94", "text": "贴吧" }, { "icon": "Y.tb95", "text": "贴吧" }, { "icon": "Y.tb96", "text": "贴吧" }, { "icon": "Y.tb97", "text": "贴吧" }, { "icon": "Y.tb98", "text": "贴吧" }, { "icon": "Y.tb99", "text": "贴吧" } ] },[button color="success" icon="download" url="https://rjw.lanzoul.com/i74vd051x7qd" type=""]贴吧整合包下载[/button][/collapse][collapse status="false" title="微博"]"微博":{ "type": "image", "name": "weibo", "container":[ { "icon": "Y.wb1", "text": "微博" }, { "icon": "Y.wb2", "text": "微博" }, { "icon": "Y.wb3", "text": "微博" }, { "icon": "Y.wb4", "text": "微博" }, { "icon": "Y.wb5", "text": "微博" }, { "icon": "Y.wb6", "text": "微博" }, { "icon": "Y.wb7", "text": "微博" }, { "icon": "Y.wb8", "text": "微博" }, { "icon": "Y.wb9", "text": "微博" }, { "icon": "Y.wb10", "text": "微博" }, { "icon": "Y.wb11", "text": "微博" }, { "icon": "Y.wb12", "text": "微博" }, { "icon": "Y.wb13", "text": "微博" }, { "icon": "Y.wb14", "text": "微博" }, { "icon": "Y.wb15", "text": "微博" }, { "icon": "Y.wb16", "text": "微博" }, { "icon": "Y.wb17", "text": "微博" }, { "icon": "Y.wb18", "text": "微博" }, { "icon": "Y.wb19", "text": "微博" }, { "icon": "Y.wb20", "text": "微博" }, { "icon": "Y.wb21", "text": "微博" }, { "icon": "Y.wb22", "text": "微博" }, { "icon": "Y.wb23", "text": "微博" }, { "icon": "Y.wb24", "text": "微博" }, { "icon": "Y.wb25", "text": "微博" }, { "icon": "Y.wb26", "text": "微博" }, { "icon": "Y.wb27", "text": "微博" }, { "icon": "Y.wb28", "text": "微博" }, { "icon": "Y.wb29", "text": "微博" }, { "icon": "Y.wb30", "text": "微博" }, { "icon": "Y.wb31", "text": "微博" }, { "icon": "Y.wb32", "text": "微博" }, { "icon": "Y.wb33", "text": "微博" }, { "icon": "Y.wb34", "text": "微博" }, { "icon": "Y.wb35", "text": "微博" }, { "icon": "Y.wb36", "text": "微博" }, { "icon": "Y.wb37", "text": "微博" }, { "icon": "Y.wb38", "text": "微博" }, { "icon": "Y.wb39", "text": "微博" }, { "icon": "Y.wb40", "text": "微博" }, { "icon": "Y.wb41", "text": "微博" }, { "icon": "Y.wb42", "text": "微博" }, { "icon": "Y.wb43", "text": "微博" }, { "icon": "Y.wb44", "text": "微博" }, { "icon": "Y.wb45", "text": "微博" }, { "icon": "Y.wb46", "text": "微博" }, { "icon": "Y.wb47", "text": "微博" }, { "icon": "Y.wb48", "text": "微博" }, { "icon": "Y.wb49", "text": "微博" }, { "icon": "Y.wb50", "text": "微博" }, { "icon": "Y.wb51", "text": "微博" }, { "icon": "Y.wb52", "text": "微博" }, { "icon": "Y.wb53", "text": "微博" }, { "icon": "Y.wb54", "text": "微博" }, { "icon": "Y.wb55", "text": "微博" }, { "icon": "Y.wb56", "text": "微博" }, { "icon": "Y.wb57", "text": "微博" }, { "icon": "Y.wb58", "text": "微博" }, { "icon": "Y.wb59", "text": "微博" }, { "icon": "Y.wb60", "text": "微博" }, { "icon": "Y.wb61", "text": "微博" }, { "icon": "Y.wb62", "text": "微博" }, { "icon": "Y.wb63", "text": "微博" }, { "icon": "Y.wb64", "text": "微博" }, { "icon": "Y.wb65", "text": "微博" }, { "icon": "Y.wb66", "text": "微博" }, { "icon": "Y.wb67", "text": "微博" }, { "icon": "Y.wb68", "text": "微博" }, { "icon": "Y.wb69", "text": "微博" }, { "icon": "Y.wb70", "text": "微博" }, { "icon": "Y.wb71", "text": "微博" }, { "icon": "Y.wb72", "text": "微博" }, { "icon": "Y.wb73", "text": "微博" }, { "icon": "Y.wb74", "text": "微博" }, { "icon": "Y.wb75", "text": "微博" }, { "icon": "Y.wb76", "text": "微博" }, { "icon": "Y.wb77", "text": "微博" }, { "icon": "Y.wb78", "text": "微博" }, { "icon": "Y.wb79", "text": "微博" }, { "icon": "Y.wb80", "text": "微博" }, { "icon": "Y.wb81", "text": "微博" }, { "icon": "Y.wb82", "text": "微博" }, { "icon": "Y.wb83", "text": "微博" }, { "icon": "Y.wb84", "text": "微博" }, { "icon": "Y.wb85", "text": "微博" }, { "icon": "Y.wb86", "text": "微博" }, { "icon": "Y.wb87", "text": "微博" }, { "icon": "Y.wb88", "text": "微博" }, { "icon": "Y.wb89", "text": "微博" }, { "icon": "Y.wb90", "text": "微博" }, { "icon": "Y.wb91", "text": "微博" }, { "icon": "Y.wb92", "text": "微博" }, { "icon": "Y.wb93", "text": "微博" }, { "icon": "Y.wb94", "text": "微博" }, { "icon": "Y.wb95", "text": "微博" }, { "icon": "Y.wb96", "text": "微博" }, { "icon": "Y.wb97", "text": "微博" }, { "icon": "Y.wb98", "text": "微博" }, { "icon": "Y.wb99", "text": "微博" }, { "icon": "Y.wb100", "text": "微博" }, { "icon": "Y.wb101", "text": "微博" }, { "icon": "Y.wb102", "text": "微博" }, { "icon": "Y.wb103", "text": "微博" }, { "icon": "Y.wb104", "text": "微博" }, { "icon": "Y.wb105", "text": "微博" }, { "icon": "Y.wb106", "text": "微博" }, { "icon": "Y.wb107", "text": "微博" }, { "icon": "Y.wb108", "text": "微博" }, { "icon": "Y.wb109", "text": "微博" }, { "icon": "Y.wb110", "text": "微博" }, { "icon": "Y.wb111", "text": "微博" }, { "icon": "Y.wb112", "text": "微博" } ] },[button color="success" icon="download" url="https://rjw.lanzoul.com/iy56Z051xafa" type=""]微博整合包下载[/button][/collapse][collapse status="false" title="QQ"]"QQ":{ "type": "image", "name": "QQ", "container":[ { "icon": "Y.qq1", "text": "QQ" }, { "icon": "Y.qq2", "text": "QQ" }, { "icon": "Y.qq3", "text": "QQ" }, { "icon": "Y.qq4", "text": "QQ" }, { "icon": "Y.qq5", "text": "QQ" }, { "icon": "Y.qq6", "text": "QQ" }, { "icon": "Y.qq7", "text": "QQ" }, { "icon": "Y.qq8", "text": "QQ" }, { "icon": "Y.qq9", "text": "QQ" }, { "icon": "Y.qq10", "text": "QQ" }, { "icon": "Y.qq11", "text": "QQ" }, { "icon": "Y.qq12", "text": "QQ" }, { "icon": "Y.qq13", "text": "QQ" }, { "icon": "Y.qq14", "text": "QQ" }, { "icon": "Y.qq15", "text": "QQ" }, { "icon": "Y.qq17", "text": "QQ" }, { "icon": "Y.qq18", "text": "QQ" }, { "icon": "Y.qq19", "text": "QQ" }, { "icon": "Y.qq20", "text": "QQ" }, { "icon": "Y.qq23", "text": "QQ" }, { "icon": "Y.qq24", "text": "QQ" }, { "icon": "Y.qq25", "text": "QQ" }, { "icon": "Y.qq26", "text": "QQ" }, { "icon": "Y.qq27", "text": "QQ" }, { "icon": "Y.qq28", "text": "QQ" }, { "icon": "Y.qq29", "text": "QQ" }, { "icon": "Y.qq30", "text": "QQ" }, { "icon": "Y.qq31", "text": "QQ" }, { "icon": "Y.qq32", "text": "QQ" }, { "icon": "Y.qq33", "text": "QQ" }, { "icon": "Y.qq34", "text": "QQ" }, { "icon": "Y.qq35", "text": "QQ" }, { "icon": "Y.qq36", "text": "QQ" }, { "icon": "Y.qq37", "text": "QQ" }, { "icon": "Y.qq38", "text": "QQ" }, { "icon": "Y.qq39", "text": "QQ" }, { "icon": "Y.qq40", "text": "QQ" }, { "icon": "Y.qq41", "text": "QQ" }, { "icon": "Y.qq42", "text": "QQ" }, { "icon": "Y.qq43", "text": "QQ" }, { "icon": "Y.qq44", "text": "QQ" }, { "icon": "Y.qq45", "text": "QQ" }, { "icon": "Y.qq46", "text": "QQ" }, { "icon": "Y.qq47", "text": "QQ" }, { "icon": "Y.qq48", "text": "QQ" }, { "icon": "Y.qq49", "text": "QQ" }, { "icon": "Y.qq50", "text": "QQ" }, { "icon": "Y.qq51", "text": "QQ" }, { "icon": "Y.qq52", "text": "QQ" }, { "icon": "Y.qq53", "text": "QQ" }, { "icon": "Y.qq54", "text": "QQ" }, { "icon": "Y.qq55", "text": "QQ" }, { "icon": "Y.qq56", "text": "QQ" }, { "icon": "Y.qq57", "text": "QQ" }, { "icon": "Y.qq58", "text": "QQ" }, { "icon": "Y.qq59", "text": "QQ" }, { "icon": "Y.qq60", "text": "QQ" }, { "icon": "Y.qq61", "text": "QQ" }, { "icon": "Y.qq62", "text": "QQ" }, { "icon": "Y.qq63", "text": "QQ" }, { "icon": "Y.qq64", "text": "QQ" }, { "icon": "Y.qq65", "text": "QQ" }, { "icon": "Y.qq66", "text": "QQ" }, { "icon": "Y.qq67", "text": "QQ" }, { "icon": "Y.qq68", "text": "QQ" }, { "icon": "Y.qq69", "text": "QQ" }, { "icon": "Y.qq70", "text": "QQ" }, { "icon": "Y.qq71", "text": "QQ" }, { "icon": "Y.qq72", "text": "QQ" }, { "icon": "Y.qq73", "text": "QQ" }, { "icon": "Y.qq74", "text": "QQ" }, { "icon": "Y.qq75", "text": "QQ" }, { "icon": "Y.qq76", "text": "QQ" }, { "icon": "Y.qq77", "text": "QQ" }, { "icon": "Y.qq78", "text": "QQ" }, { "icon": "Y.qq79", "text": "QQ" }, { "icon": "Y.qq80", "text": "QQ" } ] },[button color="success" icon="download" url="https://rjw.lanzoul.com/iuFRu051xdad" type=""]QQ整合包下载[/button][/collapse][collapse status="false" title="emoji"]"emoji":{ "type": "image", "name": "emoji", "container":[ { "icon": "Y.emoji1", "text": "emoji" }, { "icon": "Y.emoji2", "text": "emoji" }, { "icon": "Y.emoji3", "text": "emoji" }, { "icon": "Y.emoji4", "text": "emoji" }, { "icon": "Y.emoji5", "text": "emoji" }, { "icon": "Y.emoji6", "text": "emoji" }, { "icon": "Y.emoji7", "text": "emoji" }, { "icon": "Y.emoji8", "text": "emoji" }, { "icon": "Y.emoji9", "text": "emoji" }, { "icon": "Y.emoji10", "text": "emoji" }, { "icon": "Y.emoji11", "text": "emoji" }, { "icon": "Y.emoji12", "text": "emoji" }, { "icon": "Y.emoji13", "text": "emoji" }, { "icon": "Y.emoji14", "text": "emoji" }, { "icon": "Y.emoji15", "text": "emoji" }, { "icon": "Y.emoji17", "text": "emoji" }, { "icon": "Y.emoji18", "text": "emoji" }, { "icon": "Y.emoji19", "text": "emoji" }, { "icon": "Y.emoji20", "text": "emoji" }, { "icon": "Y.emoji23", "text": "emoji" }, { "icon": "Y.emoji24", "text": "emoji" }, { "icon": "Y.emoji25", "text": "emoji" }, { "icon": "Y.emoji26", "text": "emoji" }, { "icon": "Y.emoji27", "text": "emoji" }, { "icon": "Y.emoji28", "text": "emoji" }, { "icon": "Y.emoji29", "text": "emoji" }, { "icon": "Y.emoji30", "text": "emoji" }, { "icon": "Y.emoji31", "text": "emoji" }, { "icon": "Y.emoji32", "text": "emoji" }, { "icon": "Y.emoji33", "text": "emoji" }, { "icon": "Y.emoji34", "text": "emoji" }, { "icon": "Y.emoji35", "text": "emoji" }, { "icon": "Y.emoji36", "text": "emoji" }, { "icon": "Y.emoji37", "text": "emoji" }, { "icon": "Y.emoji38", "text": "emoji" }, { "icon": "Y.emoji39", "text": "emoji" }, { "icon": "Y.emoji40", "text": "emoji" }, { "icon": "Y.emoji41", "text": "emoji" }, { "icon": "Y.emoji42", "text": "emoji" }, { "icon": "Y.emoji43", "text": "emoji" }, { "icon": "Y.emoji44", "text": "emoji" }, { "icon": "Y.emoji45", "text": "emoji" }, { "icon": "Y.emoji46", "text": "emoji" }, { "icon": "Y.emoji47", "text": "emoji" }, { "icon": "Y.emoji48", "text": "emoji" }, { "icon": "Y.emoji49", "text": "emoji" }, { "icon": "Y.emoji50", "text": "emoji" }, { "icon": "Y.emoji51", "text": "emoji" }, { "icon": "Y.emoji52", "text": "emoji" }, { "icon": "Y.emoji53", "text": "emoji" }, { "icon": "Y.emoji54", "text": "emoji" }, { "icon": "Y.emoji55", "text": "emoji" }, { "icon": "Y.emoji56", "text": "emoji" }, { "icon": "Y.emoji57", "text": "emoji" }, { "icon": "Y.emoji58", "text": "emoji" }, { "icon": "Y.emoji59", "text": "emoji" }, { "icon": "Y.emoji60", "text": "emoji" }, { "icon": "Y.emoji61", "text": "emoji" }, { "icon": "Y.emoji62", "text": "emoji" }, { "icon": "Y.emoji63", "text": "emoji" }, { "icon": "Y.emoji64", "text": "emoji" }, { "icon": "Y.emoji65", "text": "emoji" }, { "icon": "Y.emoji66", "text": "emoji" }, { "icon": "Y.emoji67", "text": "emoji" }, { "icon": "Y.emoji68", "text": "emoji" }, { "icon": "Y.emoji69", "text": "emoji" }, { "icon": "Y.emoji70", "text": "emoji" }, { "icon": "Y.emoji71", "text": "emoji" }, { "icon": "Y.emoji72", "text": "emoji" }, { "icon": "Y.emoji73", "text": "emoji" }, { "icon": "Y.emoji74", "text": "emoji" }, { "icon": "Y.emoji75", "text": "emoji" } ] },[button color="success" icon="download" url="https://rjw.lanzoul.com/ihie8051xijc" type=""]emoji整合包下载[/button][/collapse][collapse status="false" title="蛆音娘"]"蛆音娘": { "name": "quyin", "type": "image", "container": [ { "icon": "hematemesis", "text": "吐血" }, { "icon": "1huaji", "text": "滑稽" }, { "icon": "amazing", "text": "吃惊" }, { "icon": "angry", "text": "生气" }, { "icon": "cry", "text": "哭泣" }, { "icon": "die", "text": "die" }, { "icon": "doubt", "text": "疑问" }, { "icon": "feizao", "text": "肥皂" }, { "icon": "fue", "text": "扶额" }, { "icon": "heng", "text": "哼" }, { "icon": "laughing", "text": "大笑" }, { "icon": "look", "text": "偷看" }, { "icon": "maimeng", "text": "卖萌" }, { "icon": "OK", "text": "OK！" }, { "icon": "scare", "text": "吓死宝宝惹" }, { "icon": "shakinghead", "text": "摇头" }, { "icon": "sleep", "text": "睡觉" }, { "icon": "speechless", "text": "无语" }, { "icon": "watermaleon", "text": "吃瓜" }, { "icon": "witty", "text": "机智" } ] },[button color="success" icon="download" url="https://rjw.lanzoul.com/iA4VQ051xm8f" type=""]蛆音娘整合包下载[/button][/collapse][collapse status="false" title="bilibili"]"哔哩哔哩":{ "type": "image", "name": "bilibili", "container":[ { "icon": "baiyan", "text": "白眼" }, { "icon": "bishi", "text": "鄙视" }, { "icon": "bizui", "text": "闭嘴" }, { "icon": "chan", "text": "馋" }, { "icon": "daku", "text": "大哭" }, { "icon": "dalao", "text": "大佬" }, { "icon": "dalian", "text": "打脸" },{ "icon": "dianzan", "text": "点赞" },{ "icon": "doge", "text": "doge" }, { "icon": "facai", "text": "发财" },{ "icon": "fadai", "text": "发呆" },{ "icon": "fanu", "text": "发怒" },{ "icon": "ganga", "text": "尴尬" },{ "icon": "guzhang", "text": "鼓掌" },{ "icon": "haixiu", "text": "害羞" },{ "icon": "heirenwenhao", "text": "黑人问号" },{ "icon": "huaixiao", "text": "坏笑" },{ "icon": "jingxia", "text": "惊吓" },{ "icon": "keai", "text": "可爱" },{ "icon": "koubi", "text": "抠鼻" },{ "icon": "kun", "text": "困" },{ "icon": "liubixie", "text": "流鼻血" },{ "icon": "liuhan", "text": "流汗" }, { "icon": "miantian", "text": "腼腆" },{ "icon": "nanguo", "text": "难过" },{ "icon": "outu", "text": "呕吐" },{ "icon": "qinqin", "text": "亲亲" },{ "icon": "se", "text": "色" },{ "icon": "shengbing", "text": "生病" },{ "icon": "shengqi", "text": "生气" },{ "icon": "shuizhao", "text": "睡着" },{ "icon": "sikao", "text": "思考" },{ "icon": "tiaopi", "text": "调皮" },{ "icon": "touxiao", "text": "偷笑" },{ "icon": "tuxie", "text": "吐血" },{ "icon": "weiqu", "text": "委屈" },{ "icon": "weixiao", "text": "微笑" },{ "icon": "wunai", "text": "无奈" },{ "icon": "xiaoku", "text": "笑哭" },{ "icon": "xieyanxiao", "text": "斜眼笑" },{ "icon": "yiwen", "text": "疑问" },{ "icon": "yun", "text": "晕" },{ "icon": "zaijian", "text": "再见" },{ "icon": "zhuakuang", "text": "抓狂" } ] },[button color="success" icon="download" url="https://rjw.lanzoul.com/iKjZM051xodc" type=""]bilibili整合包下载[/button][/collapse][collapse status="false" title="表情包过大解决办法"]在自定义CSS处添加如下代码即可，注意emotion-后面即为表情名字，即OwO.json文件里的name。每个表情包都要写一个css添加进去才可以。以本博客为例：/* Emoji大小调整 */ .emotion-QQ {width:35px;} .emotion-aru {width:35px;} .emotion-bilibili {width:35px;} .emotion-weibo {width:35px;} .emotion-quyin {width:35px;} .emotion-tieba {width:35px;}[/collapse]插件推荐UserAgent插件v1.1.1显示评论人使用的操作系统和浏览器信息[collapse status="false" title="UserAgent插件"]插件截图[album][/album]1.请先将插件置于plugins目录下，且插件目录名应为UserAgent，注意大小写，否则将无法正常食用！！！2.修改Handsome主题，component/comments.php代码文件，大概第83行左右<?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?>获取真实IP博客开启CDN后，可能无法获取访客真实IP，只能取得CDN节点IP，为此可以在根目录的config.inc.php插入下面的代码：//** 防止CDN造成无法获取客户真实IP地址 */ if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $list[0]; }[button color="info" icon="download" url="https://rjw.lanzoul.com/iD2L005exuib" type=""]下载地址[/button][/collapse]自动生成Sitemap插件v1.3.2[collapse status="false" title="自动生成Sitemap插件"]插件截图[album][/album]将压缩包内文件夹Sitemap上传到plugins目录功能生成 sitemap包含首页、独立页面、分类、标签、文章推送百度搜索资源平台，目前仅支持普通收录推送[button color="info" icon="download" url="https://rjw.lanzoul.com/iyJjr05fpefa" type=""]下载地址[/button][/collapse]评论邮件提醒插件CommentNotifier v1.2.9[collapse status="false" title="评论邮件提醒插件"]插件截图[album][/album]将压缩包内文件夹上传到plugins目录功能有新评论时会自动发送邮件提醒[button color="info" icon="download" url="https://rjw.lanzoul.com/ietp405hbgdi" type=""]下载地址[/button][/collapse]检测异常友链插件AbnormalLinks v1.0.1[collapse status="false" title="检测异常友链插件"]插件截图：[album][/album]将压缩包内文件夹上传到plugins目录插件只需开启，无需其他设置，直接一键检测即可，检测完可一键设置为失效链接[button color="info" icon="download" url="https://rjw.lanzoul.com/iMFyH05fr23i" type=""]下载地址[/button][/collapse]炫彩鼠标插件HoerMouse v1.3.0[collapse status="false" title="炫彩鼠标插件"]插件截图：将压缩包内文件夹上传到plugins目录插件内置7款鼠标样式和3款点击样式，简单设置即可[button color="info" icon="download" url="https://rjw.lanzoul.com/inCFS05fu68f" type=""]下载地址[/button][/collapse]b站追番插件Mo66CnBilifan v1.0.3[collapse status="false" title="b站追番插件"]插件截图：将压缩包内文件夹上传到plugins目录新增追番独立页面（Handsome官方文档有介绍 这里就不多讲了）配合插件使用这里我将下如何获取b站UID以及B站cookie登录b站后，点击头像，按F12键，刷新下页面，选择“网络”-再找到nav-复制整段cookie即可[button color="info" icon="download" url="https://rjw.lanzoul.com/iX1DU05ez1ef" type=""]下载地址[/button][/collapse]数据库自动备份至邮箱插件 AutoBackup v1.3.2[collapse status="false" title="数据库自动备份至邮箱插件"]插件截图：放到 plugins 目录，在后台启用插件，插件进行简单配置，添加邮箱发送信息。然后在宝塔面板添加计划任务，每天备份一次即可[button color="info" icon="download" url="https://rjw.lanzoul.com/i9zdV0a6pnza" type=""]下载地址[/button][/collapse]外部链接转换内部链接ShortLinks v1.2.0[collapse status="false" title="外部链接转换内部链接"]插件截图：将压缩包内文件夹上传到plugins目录插件内置6款跳转模板，可自行选择[album][/album][button color="info" icon="download" url="https://rjw.lanzoul.com/idcV70a6pode" type=""]下载地址[/button][/collapse]代码语法高亮插件 CodePrettify v2.1.5[collapse status="false" title="代码语法高亮插件"]插件截图：激活1、进入Typecho后台启用插件2、关闭Hansome内置高亮：主题增强功能->启用主题内置代码高亮，取消勾选3、将以下代码添加到主题增强功能：PJAX->PJAX回调函数if (typeof Prism !== 'undefined') { var pres = document.getElementsByTagName('pre'); for (var i = 0; i < pres.length; i++){ if (pres[i].getElementsByTagName('code').length > 0) pres[i].className = 'line-numbers';} Prism.highlightAll(true,null);}4、将以下代码添加到主题设置后台：开发者设置->自定义 CSS/*代码高亮激活*/ #post-content pre code { display:block; overflow-x:auto; position:relative; margin:0; padding-left:50px; } pre code { position:relative; display:block; overflow-x:auto; margin:4.4px 0.px .4px 1px; padding:0; max-height:500px; padding-left:3.5em }使用\\```php(语言类型必填) <?php echo 'hello jrotty!'; ?> \\```注意：实际使用没有\\，这里是防止Markdown错误解析GitHub：https://github.com/Xcnte/Code-Prettify-for-typecho[button color="info" icon="download" url="https://rjw.lanzoul.com/iaJ9c0aguylc" type=""]下载地址[/button][/collapse]友链自助申请插件ErcerLink v1.0.7[collapse status="false" title="友链自助申请插件"]插件截图：提交友链申请后，在Typecho后台友情链接里显示失效链接，修改下即可[button color="info" icon="download" url="https://rjw.lanzoul.com/iHEwC05fs19e" type=""]下载地址[/button][/collapse]后台美化插件SimpleAdmin v1.2.3[collapse status="false" title="后台美化插件"]插件截图：[album][/album]上传后插件目录/usr/plugins名修改为SimpleAdmin，否则启用不了介绍插件，即插即用安全，不会破坏您的原有文件轻量级，几乎纯js,css修改支持 gogobody原创的黑暗模式手机，pc 自适应界面绝对简洁GitHub：https://github.com/gogobody/SimpleAdmin[button color="info" icon="download" url="https://rjw.lanzoul.com/ijgRW0agvygd" type=""]下载地址[/button][/collapse]标签自动生成插件AutoTags v1.0.0[collapse status="false" title="标签自动生成插件"]插件截图：插件上传到目录/usr/plugins文件名修改为AutoTags发布文章时会自动生成5个插件[button color="info" icon="download" url="https://rjw.lanzoul.com/i9pe50agvxgh" type=""]下载地址[/button][/collapse]好了，暂时没有了 如果您有更多的Handsome主题修改方法欢迎在评论区提出！感谢支持！