├── 404.php ├── LICENSE ├── README.md ├── assets ├── bootstrap │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ └── bootstrap.min.css.map ├── bq │ ├── 233.png │ ├── OK.png │ ├── a.png │ ├── aixin.png │ ├── bianbian.png │ ├── bishi.png │ ├── bugaoxin.png │ ├── caihong.png │ ├── chabei.png │ ├── chaiquan.png │ ├── chaiquanbugaoxin.png │ ├── chaiquanku.png │ ├── chaiquanzaijian.png │ ├── chigua.png │ ├── chixiang.png │ ├── damuzhi.png │ ├── dangao.png │ ├── dengpao.png │ ├── dese.png │ ├── guai.png │ ├── haha.png │ ├── han.png │ ├── hehe.png │ ├── heixian.png │ ├── hlj.png │ ├── huaji.png │ ├── huaxin.png │ ├── jingku.png │ ├── jingya.png │ ├── ku.png │ ├── kuanghan.png │ ├── landeli.png │ ├── lazhu.png │ ├── lei.png │ ├── liwu.png │ ├── meigui.png │ ├── mianqiang.png │ ├── nidongde.png │ ├── nu.png │ ├── pen.png │ ├── qianbi.png │ ├── ruo.png │ ├── shafa.png │ ├── shengli.png │ ├── shouzhi.png │ ├── shuijiao.png │ ├── suanshuang.png │ ├── taikaixin.png │ ├── taiyang.png │ ├── tu.png │ ├── tushe.png │ ├── wabi.png │ ├── weiqu.png │ ├── what.png │ ├── wuzuixiao.png │ ├── xiangjiao.png │ ├── xiaoguai.png │ ├── xiaohonglian.png │ ├── xiaoniao.png │ ├── xiaoyan.png │ ├── xili.png │ ├── xinsui.png │ ├── xinxinyueliang.png │ ├── yamiedie.png │ ├── yaowan.png │ ├── yingyue.png │ ├── yinxian.png │ ├── yiwen.png │ ├── zhenbang.png │ ├── 不高兴.png │ ├── 乖.png │ ├── 你懂的.png │ ├── 便便.png │ ├── 勉强.png │ ├── 吃瓜.png │ ├── 吃翔.png │ ├── 吐.png │ ├── 吐舌.png │ ├── 呀咩爹.png │ ├── 呵呵.png │ ├── 哈哈.png │ ├── 啊.png │ ├── 喷.png │ ├── 嘚瑟.png │ ├── 大拇指.png │ ├── 太开心.png │ ├── 太阳.png │ ├── 委屈.png │ ├── 小乖.png │ ├── 小红脸.png │ ├── 弱.png │ ├── 彩虹.png │ ├── 心碎.png │ ├── 怒.png │ ├── 惊哭.png │ └── 惊讶.png ├── css │ ├── button.css │ ├── customemin.css │ ├── font-awesome.min.css │ ├── jquery.fancybox.min.css │ ├── lines.css │ ├── mark.min.css │ ├── mdui.min.css │ ├── nprogress.css │ ├── owo.min.css │ ├── prism.css │ └── setting.css ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── images │ ├── 404.png │ ├── avatar-bg.jpg │ ├── bilibili.png │ ├── github.png │ ├── qq.png │ ├── rss.png │ └── scroll.png ├── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── id-transition.js │ ├── jquery.fancybox.min.js │ ├── jquery.mCustomScrollbar.min.js │ ├── jquery.min.js │ ├── jquery.mousewheel-3.0.6.min.js │ ├── mdui.min.js │ ├── nav.js │ ├── npm.js │ ├── nprogress.js │ ├── owo.js │ └── prism.js └── pjax │ └── jquery.pjax.js ├── cross.php ├── file.php ├── functions.php ├── includes ├── comments.php ├── footer.php ├── head.php ├── header.php ├── owo.php ├── post-content.php ├── post-item.php ├── sidebar.php └── toolbar.php ├── index.php ├── links.php ├── page.php ├── plugins └── Links │ ├── Action.php │ ├── Mysql.sql │ ├── Plugin.php │ ├── SQLite.sql │ ├── Update_Mysql.sql │ ├── Update_SQLite.sql │ ├── manage-links.php │ └── nopic.jpg ├── post.php ├── post ├── post-content.php ├── post-excerpt.php └── post-item.php └── screenshot.png /404.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); ?> 2 | need('includes/header.php'); ?> 3 | 4 |
5 | 6 | 7 |
8 | 9 |
10 | options->title(); ?> / title() ?> 11 |
12 |
13 | 14 | 15 |
16 | 17 |
18 |
19 |
20 |
21 |

卧槽,404!

22 |

内个,你有看见我的康康吗?

23 | 回到首页 24 |
25 |
26 |
27 | 28 |
29 | 30 |
31 |
32 | 33 | 34 |
35 | need('includes/sidebar.php'); ?> 36 |
37 | need('includes/toolbar.php'); ?> 38 |
39 | 40 | 41 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 阔落 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 注意 2 | Mark 主题目前处于半弃坑的状态,有问题请查看 wiki 3 | 4 | # 介绍 5 |   Mark主题是我前前后后花费了1个月进行维护(其实也没有,一个多月之中的每个周末而已),之后又重写发布了2.0.0版本的一款简洁双栏主题。并且Mark永久免费,弃不弃坑我就说不定了~ 6 |    7 | 8 | - 相对于1.0版本的改动 9 | - 移除首页大图(之后有望回归) 10 | - 代码高亮引擎由Highlight更换为Prism 11 | - css命名及结构更加规范 12 | - 新增透明背景图模式 13 | - 一个很适合阅读的字体——'华文细黑' 14 | - 更棒、更方便自定义的侧边社交按钮 15 | - 优化了导航栏的自适应 16 | - 更简洁的友链样式(需要新的由我改过的Links插件) 17 | - 侧边栏博客信息 18 | - 标签云再次回到侧边栏 19 | - 搜索不显示说说和文章缩略图。 20 | - More to find. 21 | - 首页说说 22 | - 普通模式和透明模式 23 | - 首页公告 24 | - 页内友链he全站友链 25 | - 图片灯箱 26 | - 设计合理的双栏版式 27 | - ...... 28 | # 计划 29 | - [x] pjax 30 | - [x] owo表情 31 | - [x] 时光机页面 32 | - [x] 自定义404页面 33 | - [x] 加回首页大图 34 | - [ ] 文章目录 35 | 36 | # 演示 37 | [Demo](https://mark-demo.guhub.cn) 38 | 39 | # BUG 40 | 暂未发现bug,如果有任何问题欢迎`issues`。 41 | 42 | # Secret Code 43 | 它总会在别的地方派上用场。 44 | ``` 45 | JTNDcm9vdCUzRS9oYXBweS1uZXcteWVhci1lbmQvc3VjY2Vzcy5odG1s 46 | ``` 47 | -------------------------------------------------------------------------------- /assets/bq/233.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/233.png -------------------------------------------------------------------------------- /assets/bq/OK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/OK.png -------------------------------------------------------------------------------- /assets/bq/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/a.png -------------------------------------------------------------------------------- /assets/bq/aixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/aixin.png -------------------------------------------------------------------------------- /assets/bq/bianbian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/bianbian.png -------------------------------------------------------------------------------- /assets/bq/bishi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/bishi.png -------------------------------------------------------------------------------- /assets/bq/bugaoxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/bugaoxin.png -------------------------------------------------------------------------------- /assets/bq/caihong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/caihong.png -------------------------------------------------------------------------------- /assets/bq/chabei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/chabei.png -------------------------------------------------------------------------------- /assets/bq/chaiquan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/chaiquan.png -------------------------------------------------------------------------------- /assets/bq/chaiquanbugaoxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/chaiquanbugaoxin.png -------------------------------------------------------------------------------- /assets/bq/chaiquanku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/chaiquanku.png -------------------------------------------------------------------------------- /assets/bq/chaiquanzaijian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/chaiquanzaijian.png -------------------------------------------------------------------------------- /assets/bq/chigua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/chigua.png -------------------------------------------------------------------------------- /assets/bq/chixiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/chixiang.png -------------------------------------------------------------------------------- /assets/bq/damuzhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/damuzhi.png -------------------------------------------------------------------------------- /assets/bq/dangao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/dangao.png -------------------------------------------------------------------------------- /assets/bq/dengpao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/dengpao.png -------------------------------------------------------------------------------- /assets/bq/dese.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/dese.png -------------------------------------------------------------------------------- /assets/bq/guai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/guai.png -------------------------------------------------------------------------------- /assets/bq/haha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/haha.png -------------------------------------------------------------------------------- /assets/bq/han.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/han.png -------------------------------------------------------------------------------- /assets/bq/hehe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/hehe.png -------------------------------------------------------------------------------- /assets/bq/heixian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/heixian.png -------------------------------------------------------------------------------- /assets/bq/hlj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/hlj.png -------------------------------------------------------------------------------- /assets/bq/huaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/huaji.png -------------------------------------------------------------------------------- /assets/bq/huaxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/huaxin.png -------------------------------------------------------------------------------- /assets/bq/jingku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/jingku.png -------------------------------------------------------------------------------- /assets/bq/jingya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/jingya.png -------------------------------------------------------------------------------- /assets/bq/ku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/ku.png -------------------------------------------------------------------------------- /assets/bq/kuanghan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/kuanghan.png -------------------------------------------------------------------------------- /assets/bq/landeli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/landeli.png -------------------------------------------------------------------------------- /assets/bq/lazhu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/lazhu.png -------------------------------------------------------------------------------- /assets/bq/lei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/lei.png -------------------------------------------------------------------------------- /assets/bq/liwu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/liwu.png -------------------------------------------------------------------------------- /assets/bq/meigui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/meigui.png -------------------------------------------------------------------------------- /assets/bq/mianqiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/mianqiang.png -------------------------------------------------------------------------------- /assets/bq/nidongde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/nidongde.png -------------------------------------------------------------------------------- /assets/bq/nu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/nu.png -------------------------------------------------------------------------------- /assets/bq/pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/pen.png -------------------------------------------------------------------------------- /assets/bq/qianbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/qianbi.png -------------------------------------------------------------------------------- /assets/bq/ruo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/ruo.png -------------------------------------------------------------------------------- /assets/bq/shafa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/shafa.png -------------------------------------------------------------------------------- /assets/bq/shengli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/shengli.png -------------------------------------------------------------------------------- /assets/bq/shouzhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/shouzhi.png -------------------------------------------------------------------------------- /assets/bq/shuijiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/shuijiao.png -------------------------------------------------------------------------------- /assets/bq/suanshuang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/suanshuang.png -------------------------------------------------------------------------------- /assets/bq/taikaixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/taikaixin.png -------------------------------------------------------------------------------- /assets/bq/taiyang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/taiyang.png -------------------------------------------------------------------------------- /assets/bq/tu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/tu.png -------------------------------------------------------------------------------- /assets/bq/tushe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/tushe.png -------------------------------------------------------------------------------- /assets/bq/wabi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/wabi.png -------------------------------------------------------------------------------- /assets/bq/weiqu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/weiqu.png -------------------------------------------------------------------------------- /assets/bq/what.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/what.png -------------------------------------------------------------------------------- /assets/bq/wuzuixiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/wuzuixiao.png -------------------------------------------------------------------------------- /assets/bq/xiangjiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xiangjiao.png -------------------------------------------------------------------------------- /assets/bq/xiaoguai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xiaoguai.png -------------------------------------------------------------------------------- /assets/bq/xiaohonglian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xiaohonglian.png -------------------------------------------------------------------------------- /assets/bq/xiaoniao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xiaoniao.png -------------------------------------------------------------------------------- /assets/bq/xiaoyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xiaoyan.png -------------------------------------------------------------------------------- /assets/bq/xili.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xili.png -------------------------------------------------------------------------------- /assets/bq/xinsui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xinsui.png -------------------------------------------------------------------------------- /assets/bq/xinxinyueliang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/xinxinyueliang.png -------------------------------------------------------------------------------- /assets/bq/yamiedie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/yamiedie.png -------------------------------------------------------------------------------- /assets/bq/yaowan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/yaowan.png -------------------------------------------------------------------------------- /assets/bq/yingyue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/yingyue.png -------------------------------------------------------------------------------- /assets/bq/yinxian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/yinxian.png -------------------------------------------------------------------------------- /assets/bq/yiwen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/yiwen.png -------------------------------------------------------------------------------- /assets/bq/zhenbang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/zhenbang.png -------------------------------------------------------------------------------- /assets/bq/不高兴.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/不高兴.png -------------------------------------------------------------------------------- /assets/bq/乖.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/乖.png -------------------------------------------------------------------------------- /assets/bq/你懂的.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/你懂的.png -------------------------------------------------------------------------------- /assets/bq/便便.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/便便.png -------------------------------------------------------------------------------- /assets/bq/勉强.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/勉强.png -------------------------------------------------------------------------------- /assets/bq/吃瓜.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/吃瓜.png -------------------------------------------------------------------------------- /assets/bq/吃翔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/吃翔.png -------------------------------------------------------------------------------- /assets/bq/吐.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/吐.png -------------------------------------------------------------------------------- /assets/bq/吐舌.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/吐舌.png -------------------------------------------------------------------------------- /assets/bq/呀咩爹.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/呀咩爹.png -------------------------------------------------------------------------------- /assets/bq/呵呵.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/呵呵.png -------------------------------------------------------------------------------- /assets/bq/哈哈.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/哈哈.png -------------------------------------------------------------------------------- /assets/bq/啊.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/啊.png -------------------------------------------------------------------------------- /assets/bq/喷.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/喷.png -------------------------------------------------------------------------------- /assets/bq/嘚瑟.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/嘚瑟.png -------------------------------------------------------------------------------- /assets/bq/大拇指.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/大拇指.png -------------------------------------------------------------------------------- /assets/bq/太开心.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/太开心.png -------------------------------------------------------------------------------- /assets/bq/太阳.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/太阳.png -------------------------------------------------------------------------------- /assets/bq/委屈.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/委屈.png -------------------------------------------------------------------------------- /assets/bq/小乖.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/小乖.png -------------------------------------------------------------------------------- /assets/bq/小红脸.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/小红脸.png -------------------------------------------------------------------------------- /assets/bq/弱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/弱.png -------------------------------------------------------------------------------- /assets/bq/彩虹.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/彩虹.png -------------------------------------------------------------------------------- /assets/bq/心碎.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/心碎.png -------------------------------------------------------------------------------- /assets/bq/怒.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/怒.png -------------------------------------------------------------------------------- /assets/bq/惊哭.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/惊哭.png -------------------------------------------------------------------------------- /assets/bq/惊讶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/bq/惊讶.png -------------------------------------------------------------------------------- /assets/css/customemin.css: -------------------------------------------------------------------------------- 1 | pre:before { 2 | content:" "; 3 | position:absolute; 4 | -webkit-border-radius:50%; 5 | border-radius:50%; 6 | background:#fc625d; 7 | width:12px; 8 | height:12px; 9 | left:10px; 10 | top:10px; 11 | -webkit-box-shadow:20px 0 #fdbc40,40px 0 #35cd4b; 12 | box-shadow:20px 0 #fdbc40,40px 0 #35cd4b; 13 | z-index:2 14 | } 15 | pre { 16 | background:#21252b; 17 | border-radius:5px; 18 | font:15px/22px"Microsoft YaHei",Arial,Sans-Serif; 19 | line-height:1.4; 20 | margin-bottom:1.6em; 21 | max-width:100%; 22 | overflow:; 23 | text-shadow:none; 24 | color:#000; 25 | box-shadow:0 10px 30px 0 rgba(0,0,0,.4) 26 | } 27 | pre code::-webkit-scrollbar { 28 | height:10x !important; 29 | width:10x !important; 30 | background-color:#1d1f21 !important 31 | } 32 | pre code::-webkit-scrollbar-track { 33 | -webkit-box-shadow:inset 0 0 6px rgba(0, 0, 0, .3) !important; 34 | border-radius:10px !important; 35 | background-color:#21252b !important 36 | } 37 | pre code::-webkit-scrollbar-thumb { 38 | border-radius:10px !important; 39 | -webkit-box-shadow:inset 0 0 6px rgba(0, 0, 0, .5) !important; 40 | background-color:#21252b !important 41 | } 42 | pre code { 43 | background:#1d1f21; 44 | color:#fff; 45 | word-break:break-word; 46 | font-family:'Source Code Pro', monospace, Helvetica, Tahoma, Arial, STXihei, "STHeiti Light", "Microsoft YaHei", sans-serif; 47 | padding:2px; 48 | text-shadow:none; 49 | border-radius:0 0 5px 5px; 50 | cursor:auto; 51 | /*max-height: calc(100vh - 250px);*/ 52 | overflow-y: scroll; 53 | } 54 | pre code[data-rel]:before { 55 | color:#fff; 56 | content:attr(data-rel); 57 | height:38px; 58 | line-height:38px; 59 | background:#21252b; 60 | font-size:16px; 61 | position:absolute; 62 | margin-top:-45px; 63 | left:0; 64 | width:100%; 65 | font-family:'Ubuntu', sans-serif; 66 | font-weight:bold; 67 | /*padding:0 80px;*/ 68 | text-indent:15px; 69 | text-align:center; 70 | float:left; 71 | z-index:1; 72 | border-radius:5px 5px 0 0; 73 | border-top-left-radius:5px; 74 | border-top-right-radius:5px; 75 | border-bottom-right-radius:0; 76 | border-bottom-left-radius:0; 77 | pointer-events:none 78 | } 79 | .hljs-ln-line span::-moz-selection,.hljs-ln-line::-moz-selection { 80 | background:#fff; 81 | color:#21252b 82 | } 83 | .hljs-ln-line span::selection,.hljs-ln-line::selection { 84 | background:#fff; 85 | color:#21252b 86 | } 87 | .hljs { 88 | display:block; 89 | overflow-x:auto; 90 | padding:.5em; 91 | color:#abb2bf; 92 | background:#282c34; 93 | max-height: 600px; 94 | } 95 | } 96 | .hljs-comment,.hljs-quote { 97 | color:#5c6370; 98 | font-style:italic 99 | } 100 | .hljs-doctag,.hljs-formula,.hljs-keyword { 101 | color:#c678dd 102 | } 103 | .hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst { 104 | color:#e06c75 105 | } 106 | .hljs-literal { 107 | color:#56b6c2 108 | } 109 | .hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string { 110 | color:#98c379 111 | } 112 | .hljs-built_in,.hljs-class .hljs-title { 113 | color:#e6c07b 114 | } 115 | .hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable { 116 | color:#d19a66 117 | } 118 | .hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title { 119 | color:#61aeee 120 | } 121 | .hljs-emphasis { 122 | font-style:italic 123 | } 124 | .hljs-strong { 125 | font-weight:700 126 | } 127 | .hljs-link { 128 | text-decoration:underline 129 | } 130 | .hljs-ln { 131 | margin:6px 0 0 0 !important 132 | } 133 | td.hljs-ln-numbers { 134 | display: none; 135 | -webkit-touch-callout:none; 136 | -webkit-user-select:none; 137 | -khtml-user-select:none; 138 | -moz-user-select:none; 139 | -ms-user-select:none; 140 | user-select:none; 141 | text-align:center; 142 | color:#888f96; 143 | background:#1d1f21; 144 | font-family:'Source Code Pro', monospace, Helvetica, Tahoma, Arial, STXihei, "STHeiti Light", "Microsoft YaHei", sans-serif; 145 | vertical-align:top; 146 | position:absolute; 147 | left:0; 148 | width:30px 149 | } 150 | .hljs-ln-code .hljs-ln-line { 151 | margin-left:25px; 152 | padding-left:5px 153 | } 154 | .hljs-ln-code .hljs-ln-line:hover { 155 | background-color:rgba(255, 255, 255, .1) 156 | } 157 | 158 | @keyframes elastic { 159 | 0% { 160 | transform:scale(0) 161 | } 162 | 55% { 163 | transform:scale(1) 164 | } 165 | 70% { 166 | transform:scale(.98) 167 | } 168 | 100% { 169 | transform:scale(1) 170 | } 171 | } 172 | 173 | .hljs-emphasis { 174 | font-style: italic; 175 | } 176 | 177 | .hljs-strong { 178 | font-weight: bold; 179 | } 180 | pre .content{ 181 | width: 40%; 182 | margin: 5rem auto; 183 | position: relative; 184 | } 185 | #post-content .code-block-fullscreen{ 186 | padding-top: 32px; 187 | position:fixed; 188 | width: 80vw; 189 | height: 80vh; 190 | min-height: 80vh; 191 | top: 0; 192 | left: 0; 193 | right: 0; 194 | bottom: 0; 195 | margin: auto; 196 | z-index:9999999; box-shadow: 0 0 20px 0 rgba(255,255,255,.4); 197 | animation:elastic 1s; 198 | overflow: hidden; 199 | } 200 | .code-block-fullscreen code { 201 | --widthA:100%; 202 | --widthB:calc(var(--widthA) - 30px); 203 | height:var(--widthB); 204 | min-height:99%; 205 | overflow-y:scroll; 206 | height:100%; 207 | } 208 | .code-block-fullscreen-html-scroll { 209 | overflow:hidden 210 | } 211 | -------------------------------------------------------------------------------- /assets/css/jquery.fancybox.min.css: -------------------------------------------------------------------------------- 1 | body.compensate-for-scrollbar{overflow:hidden}.fancybox-active{height:auto}.fancybox-is-hidden{left:-9999px;margin:0;position:absolute!important;top:-9999px;visibility:hidden}.fancybox-container{-webkit-backface-visibility:hidden;height:100%;left:0;outline:none;position:fixed;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:manipulation;touch-action:manipulation;transform:translateZ(0);width:100%;z-index:99992}.fancybox-container *{box-sizing:border-box}.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-stage{bottom:0;left:0;position:absolute;right:0;top:0}.fancybox-outer{-webkit-overflow-scrolling:touch;overflow-y:auto}.fancybox-bg{background:#1e1e1e;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.9;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption,.fancybox-infobar,.fancybox-navigation .fancybox-button,.fancybox-toolbar{direction:ltr;opacity:0;position:absolute;transition:opacity .25s ease,visibility 0s ease .25s;visibility:hidden;z-index:99997}.fancybox-show-caption .fancybox-caption,.fancybox-show-infobar .fancybox-infobar,.fancybox-show-nav .fancybox-navigation .fancybox-button,.fancybox-show-toolbar .fancybox-toolbar{opacity:1;transition:opacity .25s ease 0s,visibility 0s ease 0s;visibility:visible}.fancybox-infobar{color:#ccc;font-size:13px;-webkit-font-smoothing:subpixel-antialiased;height:44px;left:0;line-height:44px;min-width:44px;mix-blend-mode:difference;padding:0 10px;pointer-events:none;top:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fancybox-toolbar{right:0;top:0}.fancybox-stage{direction:ltr;overflow:visible;transform:translateZ(0);z-index:99994}.fancybox-is-open .fancybox-stage{overflow:hidden}.fancybox-slide{-webkit-backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:absolute;text-align:center;top:0;transition-property:transform,opacity;white-space:normal;width:100%;z-index:99994}.fancybox-slide:before{content:"";display:inline-block;font-size:0;height:100%;vertical-align:middle;width:0}.fancybox-is-sliding .fancybox-slide,.fancybox-slide--current,.fancybox-slide--next,.fancybox-slide--previous{display:block}.fancybox-slide--image{overflow:hidden;padding:44px 0}.fancybox-slide--image:before{display:none}.fancybox-slide--html{padding:6px}.fancybox-content{background:#fff;display:inline-block;margin:0;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:relative;text-align:left;vertical-align:middle}.fancybox-slide--image .fancybox-content{animation-timing-function:cubic-bezier(.5,0,.14,1);-webkit-backface-visibility:hidden;background:transparent;background-repeat:no-repeat;background-size:100% 100%;left:0;max-width:none;overflow:visible;padding:0;position:absolute;top:0;transform-origin:top left;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:99995}.fancybox-can-zoomOut .fancybox-content{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-content{cursor:zoom-in}.fancybox-can-pan .fancybox-content,.fancybox-can-swipe .fancybox-content{cursor:grab}.fancybox-is-grabbing .fancybox-content{cursor:grabbing}.fancybox-container [data-selectable=true]{cursor:text}.fancybox-image,.fancybox-spaceball{background:transparent;border:0;height:100%;left:0;margin:0;max-height:none;max-width:none;padding:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.fancybox-spaceball{z-index:1}.fancybox-slide--iframe .fancybox-content,.fancybox-slide--map .fancybox-content,.fancybox-slide--pdf .fancybox-content,.fancybox-slide--video .fancybox-content{height:100%;overflow:visible;padding:0;width:100%}.fancybox-slide--video .fancybox-content{background:#000}.fancybox-slide--map .fancybox-content{background:#e5e3df}.fancybox-slide--iframe .fancybox-content{background:#fff}.fancybox-iframe,.fancybox-video{background:transparent;border:0;display:block;height:100%;margin:0;overflow:hidden;padding:0;width:100%}.fancybox-iframe{left:0;position:absolute;top:0}.fancybox-error{background:#fff;cursor:default;max-width:400px;padding:40px;width:100%}.fancybox-error p{color:#444;font-size:16px;line-height:20px;margin:0;padding:0}.fancybox-button{background:rgba(30,30,30,.6);border:0;border-radius:0;box-shadow:none;cursor:pointer;display:inline-block;height:44px;margin:0;padding:10px;position:relative;transition:color .2s;vertical-align:top;visibility:inherit;width:44px}.fancybox-button,.fancybox-button:link,.fancybox-button:visited{color:#ccc}.fancybox-button:hover{color:#fff}.fancybox-button:focus{outline:none}.fancybox-button.fancybox-focus{outline:1px dotted}.fancybox-button[disabled],.fancybox-button[disabled]:hover{color:#888;cursor:default;outline:none}.fancybox-button div{height:100%}.fancybox-button svg{display:block;height:100%;overflow:visible;position:relative;width:100%}.fancybox-button svg path{fill:currentColor;stroke-width:0}.fancybox-button--fsenter svg:nth-child(2),.fancybox-button--fsexit svg:first-child,.fancybox-button--pause svg:first-child,.fancybox-button--play svg:nth-child(2){display:none}.fancybox-progress{background:#ff5268;height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;z-index:99998}.fancybox-close-small{background:transparent;border:0;border-radius:0;color:#ccc;cursor:pointer;opacity:.8;padding:8px;position:absolute;right:-12px;top:-44px;z-index:401}.fancybox-close-small:hover{color:#fff;opacity:1}.fancybox-slide--html .fancybox-close-small{color:currentColor;padding:10px;right:0;top:0}.fancybox-slide--image.fancybox-is-scaling .fancybox-content{overflow:hidden}.fancybox-is-scaling .fancybox-close-small,.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small{display:none}.fancybox-navigation .fancybox-button{background-clip:content-box;height:100px;opacity:0;position:absolute;top:calc(50% - 50px);width:70px}.fancybox-navigation .fancybox-button div{padding:7px}.fancybox-navigation .fancybox-button--arrow_left{left:0;left:env(safe-area-inset-left);padding:31px 26px 31px 6px}.fancybox-navigation .fancybox-button--arrow_right{padding:31px 6px 31px 26px;right:0;right:env(safe-area-inset-right)}.fancybox-caption{background:linear-gradient(0deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.3) 50%,rgba(0,0,0,.15) 65%,rgba(0,0,0,.075) 75.5%,rgba(0,0,0,.037) 82.85%,rgba(0,0,0,.019) 88%,transparent);bottom:0;color:#eee;font-size:14px;font-weight:400;left:0;line-height:1.5;padding:75px 44px 25px;pointer-events:none;right:0;text-align:center;z-index:99996}@supports (padding:max(0px)){.fancybox-caption{padding:75px max(44px,env(safe-area-inset-right)) max(25px,env(safe-area-inset-bottom)) max(44px,env(safe-area-inset-left))}}.fancybox-caption--separate{margin-top:-50px}.fancybox-caption__body{max-height:50vh;overflow:auto;pointer-events:all}.fancybox-caption a,.fancybox-caption a:link,.fancybox-caption a:visited{color:#ccc;text-decoration:none}.fancybox-caption a:hover{color:#fff;text-decoration:underline}.fancybox-loading{animation:a 1s linear infinite;background:transparent;border:4px solid #888;border-bottom-color:#fff;border-radius:50%;height:50px;left:50%;margin:-25px 0 0 -25px;opacity:.7;padding:0;position:absolute;top:50%;width:50px;z-index:99999}@keyframes a{to{transform:rotate(1turn)}}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{opacity:0;transform:translate3d(-100%,0,0)}.fancybox-fx-slide.fancybox-slide--next{opacity:0;transform:translate3d(100%,0,0)}.fancybox-fx-slide.fancybox-slide--current{opacity:1;transform:translateZ(0)}.fancybox-fx-fade.fancybox-slide--next,.fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{opacity:0;transform:scale3d(1.5,1.5,1.5)}.fancybox-fx-zoom-in-out.fancybox-slide--next{opacity:0;transform:scale3d(.5,.5,.5)}.fancybox-fx-zoom-in-out.fancybox-slide--current{opacity:1;transform:scaleX(1)}.fancybox-fx-rotate.fancybox-slide--previous{opacity:0;transform:rotate(-1turn)}.fancybox-fx-rotate.fancybox-slide--next{opacity:0;transform:rotate(1turn)}.fancybox-fx-rotate.fancybox-slide--current{opacity:1;transform:rotate(0deg)}.fancybox-fx-circular.fancybox-slide--previous{opacity:0;transform:scale3d(0,0,0) translate3d(-100%,0,0)}.fancybox-fx-circular.fancybox-slide--next{opacity:0;transform:scale3d(0,0,0) translate3d(100%,0,0)}.fancybox-fx-circular.fancybox-slide--current{opacity:1;transform:scaleX(1) translateZ(0)}.fancybox-fx-tube.fancybox-slide--previous{transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{transform:translateZ(0) scale(1)}@media (max-height:576px){.fancybox-slide{padding-left:6px;padding-right:6px}.fancybox-slide--image{padding:6px 0}.fancybox-close-small{right:-6px}.fancybox-slide--image .fancybox-close-small{background:#4e4e4e;color:#f2f4f6;height:36px;opacity:1;padding:6px;right:0;top:0;width:36px}.fancybox-caption{padding-left:12px;padding-right:12px}@supports (padding:max(0px)){.fancybox-caption{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}}.fancybox-share{background:#f4f4f4;border-radius:3px;max-width:90%;padding:30px;text-align:center}.fancybox-share h1{color:#222;font-size:35px;font-weight:700;margin:0 0 20px}.fancybox-share p{margin:0;padding:0}.fancybox-share__button{border:0;border-radius:3px;display:inline-block;font-size:14px;font-weight:700;line-height:40px;margin:0 5px 10px;min-width:130px;padding:0 15px;text-decoration:none;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.fancybox-share__button:link,.fancybox-share__button:visited{color:#fff}.fancybox-share__button:hover{text-decoration:none}.fancybox-share__button--fb{background:#3b5998}.fancybox-share__button--fb:hover{background:#344e86}.fancybox-share__button--pt{background:#bd081d}.fancybox-share__button--pt:hover{background:#aa0719}.fancybox-share__button--tw{background:#1da1f2}.fancybox-share__button--tw:hover{background:#0d95e8}.fancybox-share__button svg{height:25px;margin-right:7px;position:relative;top:-1px;vertical-align:middle;width:25px}.fancybox-share__button svg path{fill:#fff}.fancybox-share__input{background:transparent;border:0;border-bottom:1px solid #d7d7d7;border-radius:0;color:#5d5b5b;font-size:14px;margin:10px 0 0;outline:none;padding:10px 15px;width:100%}.fancybox-thumbs{background:#ddd;bottom:0;display:none;margin:0;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;padding:2px 2px 4px;position:absolute;right:0;-webkit-tap-highlight-color:rgba(0,0,0,0);top:0;width:212px;z-index:99995}.fancybox-thumbs-x{overflow-x:auto;overflow-y:hidden}.fancybox-show-thumbs .fancybox-thumbs{display:block}.fancybox-show-thumbs .fancybox-inner{right:212px}.fancybox-thumbs__list{font-size:0;height:100%;list-style:none;margin:0;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;position:relative;white-space:nowrap;width:100%}.fancybox-thumbs-x .fancybox-thumbs__list{overflow:hidden}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar{width:7px}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track{background:#fff;border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}.fancybox-thumbs__list a{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:rgba(0,0,0,.1);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;float:left;height:75px;margin:2px;max-height:calc(100% - 8px);max-width:calc(50% - 4px);outline:none;overflow:hidden;padding:0;position:relative;-webkit-tap-highlight-color:transparent;width:100px}.fancybox-thumbs__list a:before{border:6px solid #ff5268;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.25,.46,.45,.94);z-index:99991}.fancybox-thumbs__list a:focus:before{opacity:.5}.fancybox-thumbs__list a.fancybox-thumbs-active:before{opacity:1}@media (max-width:576px){.fancybox-thumbs{width:110px}.fancybox-show-thumbs .fancybox-inner{right:110px}.fancybox-thumbs__list a{max-width:calc(100% - 10px)}} -------------------------------------------------------------------------------- /assets/css/lines.css: -------------------------------------------------------------------------------- 1 | .copy_code{ 2 | z-index: 2; 3 | transition: all .3s; 4 | display: none; 5 | position: absolute; 6 | color: #ddd; 7 | background-color: transparent; 8 | right: 5px; 9 | top: 9px; 10 | font-size: 12px; 11 | line-height: 12px; 12 | padding: 3px 5px; 13 | border: 1px solid; 14 | border-radius: 4px; 15 | } 16 | pre code ul { 17 | list-style: decimal; 18 | margin: 0px 0px 0 35px !important; 19 | padding: 0px; 20 | font-size: 14px; 21 | color: #F5F5F5; 22 | border-left: 1px solid #696969; 23 | } 24 | pre code ul li { 25 | list-style: decimal; 26 | padding: 5px!important; 27 | margin: 0 !important; 28 | font-family: SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace; 29 | line-height: 14px; 30 | word-break: break-all; 31 | word-wrap: break-word; 32 | } 33 | pre code ul li:nth-of-type(even) { 34 | color: inherit; 35 | 36 | } 37 | 38 | /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ 39 | pre code::-webkit-scrollbar{ 40 | width: 5px; 41 | height: 8px; 42 | background-color: rgba(255,255,255,0); 43 | } 44 | 45 | /*定义滚动条轨道 内阴影+圆角*/ 46 | pre code::-webkit-scrollbar-track{ 47 | -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 48 | border-radius: 10px; 49 | background-color: rgba(255,255,255,0); 50 | } 51 | 52 | /*定义滑块 内阴影+圆角*/ 53 | pre code::-webkit-scrollbar-thumb{ 54 | border-radius: 10px; 55 | -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); 56 | background-color: #555; 57 | } 58 | 59 | 60 | pre code::-webkit-scrollbar-corner { 61 | /* background: transparent!important; */ 62 | } 63 | 64 | pre code:-webkit-scrollbar { 65 | /* width: 8px!important; */ 66 | height: 8px!important; 67 | } 68 | 69 | pre code::-webkit-scrollbar-thumb { 70 | border-radius: 5px!important; 71 | background-color: #777!important; 72 | } 73 | 74 | pre code::-webkit-scrollbar-track-piece { 75 | background: #21252a!important 76 | } 77 | 78 | pre code::-webkit-scrollbar-thumb:hover { 79 | background-color: #888!important 80 | } 81 | 82 | pre code::-webkit-scrollbar-thumb:active { 83 | background-color: #999!important 84 | } 85 | 86 | pre,article pre{ 87 | max-height: calc(100vh - 250px); 88 | overflow: auto; 89 | padding: 0; 90 | margin-left: 2px; 91 | background: #161616; 92 | min-height: 100%; position: relative; padding-top: 30px; overflow-y: hidden; 93 | } 94 | 95 | .btn-copy-code { 96 | transition:all .3s; 97 | opacity:0; 98 | position:absolute; 99 | color:#ddd; 100 | background-color:transparent; 101 | right:6px; 102 | top:4px; 103 | font-size:10px; 104 | line-height:12px; 105 | padding:3px 5px; 106 | border:1px solid; 107 | border-radius:4px 108 | } 109 | .btn-copy-code:hover { 110 | color:#fff 111 | } 112 | pre:hover .btn-copy-code { 113 | opacity:1 114 | } 115 | -------------------------------------------------------------------------------- /assets/css/mark.min.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* 3 | * The css file of Theme Mark 4 | * By BigCoke https://cokewithice.com 5 | * You'd better not delete the copyright infomation 6 | */ 7 | 8 | /* 全局样式 */ 9 | body{ 10 | background-color:#F8F8FF!important; 11 | font-family:'Noto Serif SC'!important; 12 | } 13 | p{ 14 | font-size:1.1em; 15 | } 16 | .post-content a{ 17 | border-bottom:1px solid black; 18 | display:inline-block; 19 | padding-bottom:0!important; 20 | } 21 | a{ 22 | color:black; 23 | } 24 | a,.post-content a{ 25 | transition:all 0.3s; 26 | } 27 | a:hover,a:active{ 28 | opacity:0.9; 29 | text-decoration:none; 30 | } 31 | .gallery-link{ 32 | border:none!important; 33 | padding:0!important; 34 | } 35 | /* 各种css */ 36 | .item,.comment-body{ 37 | border-radius:2px; 38 | } 39 | .item{ 40 | background-color:#fff; 41 | box-shadow:0 0 8px #ccc; 42 | -webkit-box-shadow:0 0 8px #ccc; 43 | padding:15px; 44 | } 45 | .item-hr{ 46 | margin-left:-15px; 47 | margin-right:-15px; 48 | margin-bottom:5px; 49 | margin-top:5px; 50 | } 51 | /* 文章及文章列表 */ 52 | .post-topic{ 53 | color:gray; 54 | font-size:15px; 55 | padding:4px; 56 | padding-left:10px; 57 | margin-bottom:5px; 58 | } 59 | .inpost-topic{ 60 | text-align:center; 61 | font-size:24px; 62 | color:gray; 63 | border-top:1px solid #ddd; 64 | border-bottom:1px solid #ddd; 65 | padding-top:20px; 66 | padding-bottom:15px; 67 | font-family:宋体; 68 | font-weight:bold; 69 | } 70 | .post-topic-content{ 71 | font-family:微软雅黑; 72 | font-weight:normal 73 | } 74 | .post-item{ 75 | transition:all 0.5s; 76 | overflow:hidden; 77 | } 78 | .post-item:hover{ 79 | box-shadow:0 2px 12px #ccc; 80 | -webkit-box-shadow:0 2px 16px #ccc; 81 | } 82 | .post-header{ 83 | margin-top:20px; 84 | } 85 | .post-info{ 86 | margin-bottom:-20px; 87 | font-size:0.9em; 88 | } 89 | .excerpt{ 90 | color:gray; 91 | margin:10px; 92 | } 93 | .post-item hr{ 94 | margin-left:-15px; 95 | margin-right:-15px; 96 | margin-top:10px; 97 | } 98 | .post-link:hover{ 99 | color:black; 100 | } 101 | .post-banner-sm{ 102 | margin-top:-15px; 103 | margin-bottom:-15px; 104 | } 105 | .post-banner{ 106 | margin-bottom:20px!important; 107 | margin:-15px; 108 | padding:0; 109 | overflow:hidden; 110 | } 111 | .media-banner{ 112 | height:20em; 113 | transition:transform 0.6s; 114 | } 115 | .media-banner:hover{ 116 | transform:scale(1.3); 117 | } 118 | .page-navigator{ 119 | margin-left:-40px; 120 | } 121 | .pagenav li,.page-navigator li{ 122 | display:inline-block; 123 | list-style-type:none; 124 | background:#fff; 125 | box-shadow:0 0 8px #ccc; 126 | -webkit-box-shadow:0 0 8px #ccc; 127 | margin-right:7px; 128 | padding:0; 129 | padding:4px 10px; 130 | font-size:17px; 131 | transition:background 0.3s; 132 | } 133 | .pagenav li:hover,.page-navigator li:hover{ 134 | background:#F8F8FF; 135 | } 136 | .saying-avatar img{ 137 | border-radius:1000px; 138 | } 139 | .saying-title-info h4{ 140 | margin-bottom:-16px; 141 | } 142 | .saying-title-info span{ 143 | color:gray; 144 | } 145 | .post-bread{ 146 | font-weight:bold; 147 | padding:10px; 148 | } 149 | .post-content,.page-content{ 150 | margin-top:30px; 151 | font-size:1.2em; 152 | letter-spacing:2px; 153 | } 154 | .post-content img{ 155 | max-width:100%; 156 | border-radius:2px; 157 | box-shadow:0 0 5px #808080; 158 | -webkit-box-shadow:0 0 5px #808080; 159 | display:block!important; 160 | margin:10px auto!important; 161 | transition:box-shadow 0.5s; 162 | } 163 | .post-content img:hover{ 164 | box-shadow:0 0 15px #808080; 165 | -webkit-box-shadow:0 0 15px #808080; 166 | } 167 | .post-content p{ 168 | line-height:1.5em; 169 | } 170 | .post-content h2{ 171 | border-left:3px solid #6495ED; 172 | margin:-15px; 173 | margin-top:26px; 174 | margin-bottom:26px; 175 | padding-left:12px; 176 | font-weight:normal; 177 | } 178 | .post-content h3:before{ 179 | content:"# "; 180 | color:#6495ED; 181 | font-weight:bold; 182 | } 183 | .post-content blockquote{ 184 | background:#F8F8FF; 185 | border-left:4px solid #00BFFF; 186 | font-size:14px; 187 | padding:10px; 188 | } 189 | .post-content blockquote>p{ 190 | margin-top:-40px; 191 | } 192 | .post-content blockquote:before{ 193 | content:"\f10d"; 194 | font-family:FontAwesome; 195 | color:#00BFFF; 196 | text-shadow:0 0 5px #808080; 197 | font-size:2em; 198 | margin-left:-24px; 199 | font-weight:bold; 200 | margin-top:-30px; 201 | } 202 | .post-content p>code{ 203 | background:rgba(0,0,0,0); 204 | font-family:宋体; 205 | font-weight:bold; 206 | text-shadow:1px 1px 2px #DD4B39; 207 | } 208 | .saying-content{ 209 | margin-top:5px; 210 | margin-left:10px; 211 | margin-right:10px; 212 | } 213 | .saying-content h3{ 214 | margin-left:-10px; 215 | font-weight:bold; 216 | margin-top:0; 217 | } 218 | .saying-info{ 219 | margin-top:-10px; 220 | } 221 | .post-img-alt{ 222 | font-size:14px; 223 | color:gray; 224 | text-align:center; 225 | display:block; 226 | margin-top:-10px; 227 | } 228 | .read-more{ 229 | margin-top:-36px; 230 | } 231 | /* 社会图标及打赏 */ 232 | .social-share{ 233 | display:inline-block; 234 | font-size:28px; 235 | color:#bababa; 236 | letter-spacing:20px; 237 | } 238 | 239 | 240 | /* Nb首页大图 */ 241 | .jumbotron{ 242 | height:60vh; 243 | box-shadow:0 0 10px #808080; 244 | color:white; 245 | text-align:Center; 246 | padding-top:25vh; 247 | text-shadow:0 0 10px #bababa; 248 | font-weight:bold 249 | } 250 | /* 评论 */ 251 | .comment-normal-img{ 252 | max-width:100%!important; 253 | max-height:100%!important; 254 | } 255 | #comments textarea,#comments input{ 256 | border:none; 257 | display:block!important; 258 | width:100%; 259 | border-radius:3px; 260 | border:1px solid #DCDCDC; 261 | resize:none; 262 | padding:10px; 263 | } 264 | .comment-list a{ 265 | color:black; 266 | font-style:normal; 267 | font-size:1.2em; 268 | } 269 | .comment-list a:hover{ 270 | text-decoration:none; 271 | } 272 | .comment-reply{ 273 | text-align:right; 274 | } 275 | .comment-body{ 276 | margin-top:10px; 277 | margin-left:-40px; 278 | box-shadow:0 0 5px #bababa; 279 | list-style-type:none; 280 | background:#fff; 281 | padding:15px; 282 | font-size:13px; 283 | } 284 | .comment-child{ 285 | margin-top:10px; 286 | background:rgba(255,250,250,0); 287 | margin:2px; 288 | margin-left:-40px; 289 | } 290 | .comment-title{ 291 | margin:0; 292 | } 293 | .fn{ 294 | font-style:normal!important; 295 | } 296 | .comment-reply a{ 297 | font-size:1em; 298 | margin:0.3em; 299 | color:white; 300 | padding:0.5em; 301 | border-radius:0.3em; 302 | color:#00BFFF; 303 | margin-top:-2em; 304 | display:inline-block; 305 | } 306 | .comment-reply a:hover{ 307 | background:#F0F8FF; 308 | } 309 | .avatar{ 310 | margin-right:0.3em; 311 | border-radius:10000px; 312 | } 313 | .comment-meta a{ 314 | color:#bababa; 315 | font-size:10px; 316 | } 317 | /* owo */ 318 | .OwO-logo{ 319 | display:inline-block; 320 | margin-left:15px; 321 | text-shadow:0 0 2px #808080; 322 | padding:5px; 323 | border-radius:3px; 324 | transition:background 0.5s; 325 | } 326 | .OwO-logo:hover{ 327 | background:rgba(230,230,230,0.9); 328 | } 329 | .OwO-body,.OwO{ 330 | margin-left:5px; 331 | margin-top:-10px; 332 | } 333 | .OwO-item img,.comment-content img{ 334 | max-width:30px!important; 335 | max-height:30px!important; 336 | } 337 | 338 | /* 页脚 */ 339 | .footer-info{ 340 | background:rgb(54,59,63); 341 | padding:0px; 342 | padding-top:15px; 343 | padding-bottom:20px; 344 | margin-top:50px; 345 | color:rgba(254,254,254,0.9); 346 | } 347 | .site-info a{ 348 | color:rgba(254,254,254,0.9)!important; 349 | } 350 | .newest-comment img{ 351 | border-radius:1000px; 352 | border:1px solid white; 353 | margin:2px; 354 | height:50px; 355 | width:50px; 356 | display:inline-block; 357 | } 358 | .footer-copyright{ 359 | background:gray; 360 | margin:-5px; 361 | margin-top:20px; 362 | width:100vw; 363 | padding:10px; 364 | font-size:1.15em; 365 | } 366 | .footer-tools{ 367 | position:fixed; 368 | bottom:15px; 369 | right:15px; 370 | z-index:66; 371 | } 372 | 373 | .footer-tools a,.footer-tools button{ 374 | font-size:25px; 375 | padding:10px 15px; 376 | display:block; 377 | text-align:center; 378 | color:white; 379 | background:rgba(54,59,63,0.8); 380 | z-index:66; 381 | margin-top:15px; 382 | } 383 | .footer-tools a:hover,.footer-tools button:hover{ 384 | box-shadow:0 0 10px #bababa; 385 | -webkit-box-shadow:0 0 10px #bababa; 386 | } 387 | 388 | /* 侧边栏 */ 389 | .sidebar li,.sidebar li>a{ 390 | color:gray; 391 | } 392 | .sidebar .list-group>li{ 393 | transition:background 0.4s; 394 | } 395 | .sidebar .list-group>li:hover{ 396 | background:#F6F6EF; 397 | } 398 | .avatar-bg{ 399 | background-repeat:no-repeat; 400 | background-size:cover; 401 | height:10em; 402 | margin:-15px; 403 | } 404 | .name-card{ 405 | text-align:Center; 406 | } 407 | .sidebar-avatar{ 408 | display:block; 409 | margin:10px auto; 410 | height:140px; 411 | width:140px; 412 | border-radius:1000px; 413 | border:3px solid #F8F8FF; 414 | margin-top:-80px; 415 | transition:all 1s; 416 | } 417 | .sidebar-avatar:hover{ 418 | transform:rotate(360deg); 419 | -ms-transform:rotate(360deg); /* IE 9 */ 420 | -moz-transform:rotate(360deg); /* Firefox */ 421 | -webkit-transform:rotate(360deg); /* Safari 和 Chrome */ 422 | -o-transform:rotate(360deg); /* Opera */ 423 | } 424 | .aside h4{ 425 | margin-top:-2px; 426 | margin-bottom:-10px; 427 | } 428 | .aside hr{ 429 | margin-left:-15px; 430 | margin-right:-15px; 431 | } 432 | .sidebar .list-group{ 433 | margin:-15px; 434 | margin-top:-20px; 435 | } 436 | .aside li{ 437 | border-radius:0!important; 438 | border-left:none; 439 | border-right:none; 440 | border-color:#F5F5F5!important; 441 | } 442 | .list-group li{ 443 | position: relative; 444 | display: block; 445 | padding: 10px 15px; 446 | margin-bottom: -1px; 447 | background-color: #fff; 448 | border: 1px solid #ddd; 449 | } 450 | .tags-list a{ 451 | display:inline-block; 452 | background-color:#F5F5F5; 453 | border:1px solid #DCDCDC; 454 | border-radius:3px; 455 | padding:5px; 456 | margin-right:4px; 457 | margin-bottom:4px; 458 | padding-bottom:0; 459 | padding-top:0; 460 | } 461 | .tags-list a:hover{ 462 | background-color:#DCDCDC; 463 | color:black; 464 | } 465 | 466 | /* 导航 */ 467 | #nav{ 468 | width:100vw; 469 | background:#fff; 470 | box-shadow:0 0 20px #bababa; 471 | -webkit-box-shadow:0 0 20px #bababa; 472 | font-size:20px; 473 | z-index:55; 474 | padding-top:10px; 475 | color:gray; 476 | } 477 | .nav-content{ 478 | display:inline; 479 | margin-top:-38px; 480 | } 481 | .nav-content,.nav-content ul>li{ 482 | float:right; 483 | } 484 | .nav-content ul>li{ 485 | transition:background 0.5s; 486 | } 487 | .nav-content ul>li:hover{ 488 | background-color:#F8F8FF 489 | } 490 | .slideUp { 491 | -webkit-transform: translateY(-100px); 492 | transform: translateY(-100px); 493 | transition: transform .5s ease-out; 494 | } 495 | 496 | .slideDown { 497 | -webkit-transform: translateY(0); 498 | transform: translateY(0); 499 | transition: transform .5s ease-out; 500 | } 501 | /* 友链 */ 502 | .links-box{ 503 | margin:10px; 504 | margin-top:30px; 505 | } 506 | .links-box h2{ 507 | text-align:Center; 508 | border-bottom:1px solid rgb(230,230,250); 509 | padding-bottom:20px; 510 | font-weight:bold; 511 | } 512 | .links-link:hover{ 513 | opacity:1!important; 514 | } 515 | .links-item{ 516 | background:#fff; 517 | box-shadow:0 2px 1px #ddd; 518 | -webkit-box-shadow:0 1px 2px #ddd; 519 | overflow:hidden; 520 | transition:all 0.2s!important; 521 | margin-bottom:20px; 522 | } 523 | .links-item:hover{ 524 | transform:scale(1.05); 525 | box-shadow:0 6px 22px #ddd; 526 | -webkit-box-shadow:0 6px 22px #ddd; 527 | transform:translateY(-6px); 528 | } 529 | .link-box a{ 530 | color:black; 531 | } 532 | .links-title{ 533 | text-align:Center; 534 | } 535 | .links-title h4{ 536 | font-weight:bold; 537 | letter-spacing:2px; 538 | white-space: nowrap; 539 | } 540 | /* 归档 */ 541 | .archive-list ul{ 542 | margin-left:-36px; 543 | } 544 | .archive-list li:first{ 545 | border-top:1px solid #bababa; 546 | } 547 | .archive-list li{ 548 | list-style-type:none; 549 | font-size:1.2em; 550 | border-bottom:1px solid #bababa; 551 | padding-top:10px; 552 | padding-bottom:10px; 553 | } 554 | .archive-list li>span{ 555 | color:#bababa; 556 | } 557 | 558 | /* pjax */ 559 | .pjax-loading{ 560 | opacity:0.4; 561 | } 562 | .pjax-loadend{ 563 | opacity:1; 564 | } 565 | #pjax-container{ 566 | transition:opacity 0.5s; 567 | } 568 | 569 | /* 文章内短代码 */ 570 | .tip{ 571 | display:block; 572 | padding:10px; 573 | background-color:rgb(250,250,250); 574 | border-left:5px solid #ddd; 575 | border-radius:2px; 576 | color:#332244; 577 | } 578 | .tip.lblue{ 579 | border-color:#4D90FE!important; 580 | background-color:#F8F8FF!important; 581 | } 582 | .tip.yellow{ 583 | border-color:#FFD700!important; 584 | background-color:#FFF8DC!important; 585 | } 586 | .tip.red{ 587 | border-color:#FF6347!important; 588 | background-color:#FFE4E1!important; 589 | } 590 | .tip.green{ 591 | border-color:#3CB371!important; 592 | background-color:rgb(243,247,230)!important; 593 | } 594 | .post-stext{ 595 | max-height:200px; 596 | overflow:auto; 597 | padding:5px; 598 | padding-left:10px; 599 | border:1px solid #ddd; 600 | border-radius:4px; 601 | box-shadow:0 0 1px #bababa inset; 602 | } 603 | .post-content a.btn{ 604 | padding-bottom:6px!important; 605 | color:white; 606 | } 607 | .collapse{ 608 | border-radius:2px; 609 | box-shadow:0 0 6px #bababa; 610 | -webkit-box-shadow:0 0 6px #bababa; 611 | color:black; 612 | } 613 | .collapse-body{ 614 | height:0; 615 | transition:height 0.2s; 616 | } 617 | .collapse-title:active .collapse-body{ 618 | height:auto; 619 | } 620 | 621 | 622 | /* 滚动条 */ 623 | ::-webkit-scrollbar{ 624 | width:10px; 625 | opacity:0.8 626 | } 627 | ::-webkit-scrollbar-track-piece{ 628 | background:rgba(0,0,0,0)!important; 629 | } 630 | ::-webkit-scrollbar-thumb{ 631 | background:#ccc; 632 | border-radius:2px; 633 | } -------------------------------------------------------------------------------- /assets/css/nprogress.css: -------------------------------------------------------------------------------- 1 | /* Make clicks pass-through */ 2 | #nprogress { 3 | pointer-events: none; 4 | } 5 | 6 | #nprogress .bar { 7 | background: #29d; 8 | 9 | position: fixed; 10 | z-index: 1031; 11 | top: 0; 12 | left: 0; 13 | 14 | width: 100%; 15 | height: 2px; 16 | } 17 | 18 | /* Fancy blur effect */ 19 | #nprogress .peg { 20 | display: block; 21 | position: absolute; 22 | right: 0px; 23 | width: 100px; 24 | height: 100%; 25 | box-shadow: 0 0 10px #29d, 0 0 5px #29d; 26 | opacity: 1.0; 27 | 28 | -webkit-transform: rotate(3deg) translate(0px, -4px); 29 | -ms-transform: rotate(3deg) translate(0px, -4px); 30 | transform: rotate(3deg) translate(0px, -4px); 31 | } 32 | 33 | /* Remove these to get rid of the spinner */ 34 | #nprogress .spinner { 35 | display: block; 36 | position: fixed; 37 | z-index: 1031; 38 | top: 15px; 39 | right: 15px; 40 | } 41 | 42 | #nprogress .spinner-icon { 43 | width: 18px; 44 | height: 18px; 45 | box-sizing: border-box; 46 | 47 | border: solid 2px transparent; 48 | border-top-color: #29d; 49 | border-left-color: #29d; 50 | border-radius: 50%; 51 | 52 | -webkit-animation: nprogress-spinner 400ms linear infinite; 53 | animation: nprogress-spinner 400ms linear infinite; 54 | } 55 | 56 | .nprogress-custom-parent { 57 | overflow: hidden; 58 | position: relative; 59 | } 60 | 61 | .nprogress-custom-parent #nprogress .spinner, 62 | .nprogress-custom-parent #nprogress .bar { 63 | position: absolute; 64 | } 65 | 66 | @-webkit-keyframes nprogress-spinner { 67 | 0% { -webkit-transform: rotate(0deg); } 68 | 100% { -webkit-transform: rotate(360deg); } 69 | } 70 | @keyframes nprogress-spinner { 71 | 0% { transform: rotate(0deg); } 72 | 100% { transform: rotate(360deg); } 73 | } 74 | 75 | -------------------------------------------------------------------------------- /assets/css/owo.min.css: -------------------------------------------------------------------------------- 1 | .OwO { 2 | position: relative; 3 | -webkit-user-select: none; 4 | -moz-user-select: none; 5 | -ms-user-select: none; 6 | user-select: none 7 | } 8 | 9 | .OwO:hover .OwO-logo { 10 | color: #444 11 | } 12 | 13 | .OwO.OwO-open .OwO-logo { 14 | border-radius: 4px 4px 0 0; 15 | border-bottom: none; 16 | color: #444 17 | } 18 | 19 | .OwO.OwO-open .OwO-body { 20 | height:160px; 21 | } 22 | 23 | .OwO.OwO-up .OwO-body { 24 | top: inherit; 25 | bottom: 21px; 26 | border-radius: 4px 4px 4px 0 27 | } 28 | 29 | .OwO.OwO-up .OwO-body .OwO-bar .OwO-packages li:nth-child(1) { 30 | border-radius: 0 31 | } 32 | 33 | .OwO.OwO-up.OwO-open .OwO-logo { 34 | border: 1px solid #ddd; 35 | border-radius: 0 0 4px 4px; 36 | border-top: none 37 | } 38 | 39 | .OwO .OwO-logo { 40 | position: relative; 41 | display: inline-block; 42 | color: #888; 43 | background: #fff; 44 | border: 1px solid #ddd; 45 | border-radius: 4px; 46 | font-size: 13px; 47 | padding: 2px 5px; 48 | cursor: pointer; 49 | height: 22px; 50 | box-sizing: border-box; 51 | z-index: 2; 52 | line-height: 16px 53 | } 54 | 55 | .OwO .OwO-logo:hover span { 56 | display: inline-block; 57 | -webkit-animation: a 5s infinite ease-in-out; 58 | animation: a 5s infinite ease-in-out 59 | } 60 | 61 | .OwO .OwO-body { 62 | transition:height 0.5s; 63 | height:0; 64 | overflow:hidden; 65 | width: 400px; 66 | z-index: 1; 67 | top: 21px; 68 | width:97%; 69 | } 70 | 71 | .OwO .OwO-body .OwO-items { 72 | -webkit-user-select: none; 73 | -moz-user-select: none; 74 | -ms-user-select: none; 75 | user-select: none; 76 | display: none; 77 | padding: 10px; 78 | margin: 0; 79 | overflow: scroll; 80 | font-size: 0 81 | } 82 | 83 | .OwO .OwO-body .OwO-items .OwO-item { 84 | list-style-type: none; 85 | padding: 5px 10px; 86 | border-radius: 5px; 87 | display: inline-block; 88 | font-size: 12px; 89 | line-height: 14px; 90 | margin: 0 10px 12px 0; 91 | cursor: pointer; 92 | -webkit-transition: .3s; 93 | transition: .3s 94 | } 95 | 96 | .OwO .OwO-body .OwO-items .OwO-item:hover { 97 | -webkit-animation: a 5s infinite ease-in-out; 98 | animation: a 5s infinite ease-in-out; 99 | transition:scale(1.02); 100 | } 101 | 102 | .OwO .OwO-body .OwO-items-emoji .OwO-item { 103 | font-size: 20px; 104 | line-height: 19px 105 | } 106 | 107 | .OwO .OwO-body .OwO-items-image .OwO-item { 108 | max-width: calc(25% - 10px); 109 | box-sizing: border-box 110 | } 111 | 112 | .OwO .OwO-body .OwO-items-image .OwO-item img { 113 | max-width: 100% 114 | } 115 | 116 | .OwO .OwO-body .OwO-items-show { 117 | display: block 118 | } 119 | 120 | .OwO .OwO-body .OwO-bar { 121 | width: 100%; 122 | height: 30px; 123 | border-top: 1px solid #ddd; 124 | background: #fff; 125 | border-radius: 0 0 4px 4px; 126 | color: #444 127 | } 128 | 129 | .OwO .OwO-body .OwO-bar .OwO-packages { 130 | margin: 0; 131 | padding: 0; 132 | font-size: 0 133 | } 134 | 135 | .OwO .OwO-body .OwO-bar .OwO-packages li { 136 | list-style-type: none; 137 | display: inline-block; 138 | line-height: 30px; 139 | font-size: 14px; 140 | padding: 0 10px; 141 | cursor: pointer; 142 | margin-right: 3px 143 | } 144 | 145 | .OwO .OwO-body .OwO-bar .OwO-packages li:nth-child(1) { 146 | border-radius: 0 0 0 3px 147 | } 148 | 149 | .OwO .OwO-body .OwO-bar .OwO-packages li:hover { 150 | background: #eee 151 | } 152 | 153 | .OwO .OwO-body .OwO-bar .OwO-packages .OwO-package-active { 154 | background: #eee; 155 | -webkit-transition: .3s; 156 | transition: .3s 157 | } 158 | 159 | @-webkit-keyframes a { 160 | 2% { 161 | -webkit-transform: translateY(1.5px) rotate(1.5deg); 162 | transform: translateY(1.5px) rotate(1.5deg) 163 | } 164 | 165 | 4% { 166 | -webkit-transform: translateY(-1.5px) rotate(-.5deg); 167 | transform: translateY(-1.5px) rotate(-.5deg) 168 | } 169 | 170 | 6% { 171 | -webkit-transform: translateY(1.5px) rotate(-1.5deg); 172 | transform: translateY(1.5px) rotate(-1.5deg) 173 | } 174 | 175 | 8% { 176 | -webkit-transform: translateY(-1.5px) rotate(-1.5deg); 177 | transform: translateY(-1.5px) rotate(-1.5deg) 178 | } 179 | 180 | 10% { 181 | -webkit-transform: translateY(2.5px) rotate(1.5deg); 182 | transform: translateY(2.5px) rotate(1.5deg) 183 | } 184 | 185 | 12% { 186 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 187 | transform: translateY(-.5px) rotate(1.5deg) 188 | } 189 | 190 | 14% { 191 | -webkit-transform: translateY(-1.5px) rotate(1.5deg); 192 | transform: translateY(-1.5px) rotate(1.5deg) 193 | } 194 | 195 | 16% { 196 | -webkit-transform: translateY(-.5px) rotate(-1.5deg); 197 | transform: translateY(-.5px) rotate(-1.5deg) 198 | } 199 | 200 | 18% { 201 | -webkit-transform: translateY(.5px) rotate(-1.5deg); 202 | transform: translateY(.5px) rotate(-1.5deg) 203 | } 204 | 205 | 20% { 206 | -webkit-transform: translateY(-1.5px) rotate(2.5deg); 207 | transform: translateY(-1.5px) rotate(2.5deg) 208 | } 209 | 210 | 22% { 211 | -webkit-transform: translateY(.5px) rotate(-1.5deg); 212 | transform: translateY(.5px) rotate(-1.5deg) 213 | } 214 | 215 | 24% { 216 | -webkit-transform: translateY(1.5px) rotate(1.5deg); 217 | transform: translateY(1.5px) rotate(1.5deg) 218 | } 219 | 220 | 26% { 221 | -webkit-transform: translateY(.5px) rotate(.5deg); 222 | transform: translateY(.5px) rotate(.5deg) 223 | } 224 | 225 | 28% { 226 | -webkit-transform: translateY(.5px) rotate(1.5deg); 227 | transform: translateY(.5px) rotate(1.5deg) 228 | } 229 | 230 | 30% { 231 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 232 | transform: translateY(-.5px) rotate(2.5deg) 233 | } 234 | 235 | 32%,34% { 236 | -webkit-transform: translateY(1.5px) rotate(-.5deg); 237 | transform: translateY(1.5px) rotate(-.5deg) 238 | } 239 | 240 | 36% { 241 | -webkit-transform: translateY(-1.5px) rotate(2.5deg); 242 | transform: translateY(-1.5px) rotate(2.5deg) 243 | } 244 | 245 | 38% { 246 | -webkit-transform: translateY(1.5px) rotate(-1.5deg); 247 | transform: translateY(1.5px) rotate(-1.5deg) 248 | } 249 | 250 | 40% { 251 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 252 | transform: translateY(-.5px) rotate(2.5deg) 253 | } 254 | 255 | 42% { 256 | -webkit-transform: translateY(2.5px) rotate(-1.5deg); 257 | transform: translateY(2.5px) rotate(-1.5deg) 258 | } 259 | 260 | 44% { 261 | -webkit-transform: translateY(1.5px) rotate(.5deg); 262 | transform: translateY(1.5px) rotate(.5deg) 263 | } 264 | 265 | 46% { 266 | -webkit-transform: translateY(-1.5px) rotate(2.5deg); 267 | transform: translateY(-1.5px) rotate(2.5deg) 268 | } 269 | 270 | 48% { 271 | -webkit-transform: translateY(-.5px) rotate(.5deg); 272 | transform: translateY(-.5px) rotate(.5deg) 273 | } 274 | 275 | 50% { 276 | -webkit-transform: translateY(.5px) rotate(.5deg); 277 | transform: translateY(.5px) rotate(.5deg) 278 | } 279 | 280 | 52% { 281 | -webkit-transform: translateY(2.5px) rotate(2.5deg); 282 | transform: translateY(2.5px) rotate(2.5deg) 283 | } 284 | 285 | 54% { 286 | -webkit-transform: translateY(-1.5px) rotate(1.5deg); 287 | transform: translateY(-1.5px) rotate(1.5deg) 288 | } 289 | 290 | 56% { 291 | -webkit-transform: translateY(2.5px) rotate(2.5deg); 292 | transform: translateY(2.5px) rotate(2.5deg) 293 | } 294 | 295 | 58% { 296 | -webkit-transform: translateY(.5px) rotate(2.5deg); 297 | transform: translateY(.5px) rotate(2.5deg) 298 | } 299 | 300 | 60% { 301 | -webkit-transform: translateY(2.5px) rotate(2.5deg); 302 | transform: translateY(2.5px) rotate(2.5deg) 303 | } 304 | 305 | 62% { 306 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 307 | transform: translateY(-.5px) rotate(2.5deg) 308 | } 309 | 310 | 64% { 311 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 312 | transform: translateY(-.5px) rotate(1.5deg) 313 | } 314 | 315 | 66% { 316 | -webkit-transform: translateY(1.5px) rotate(-.5deg); 317 | transform: translateY(1.5px) rotate(-.5deg) 318 | } 319 | 320 | 68% { 321 | -webkit-transform: translateY(-1.5px) rotate(-.5deg); 322 | transform: translateY(-1.5px) rotate(-.5deg) 323 | } 324 | 325 | 70% { 326 | -webkit-transform: translateY(1.5px) rotate(.5deg); 327 | transform: translateY(1.5px) rotate(.5deg) 328 | } 329 | 330 | 72% { 331 | -webkit-transform: translateY(2.5px) rotate(1.5deg); 332 | transform: translateY(2.5px) rotate(1.5deg) 333 | } 334 | 335 | 74% { 336 | -webkit-transform: translateY(-.5px) rotate(.5deg); 337 | transform: translateY(-.5px) rotate(.5deg) 338 | } 339 | 340 | 76% { 341 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 342 | transform: translateY(-.5px) rotate(2.5deg) 343 | } 344 | 345 | 78% { 346 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 347 | transform: translateY(-.5px) rotate(1.5deg) 348 | } 349 | 350 | 80% { 351 | -webkit-transform: translateY(1.5px) rotate(1.5deg); 352 | transform: translateY(1.5px) rotate(1.5deg) 353 | } 354 | 355 | 82% { 356 | -webkit-transform: translateY(-.5px) rotate(.5deg); 357 | transform: translateY(-.5px) rotate(.5deg) 358 | } 359 | 360 | 84% { 361 | -webkit-transform: translateY(1.5px) rotate(2.5deg); 362 | transform: translateY(1.5px) rotate(2.5deg) 363 | } 364 | 365 | 86% { 366 | -webkit-transform: translateY(-1.5px) rotate(-1.5deg); 367 | transform: translateY(-1.5px) rotate(-1.5deg) 368 | } 369 | 370 | 88% { 371 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 372 | transform: translateY(-.5px) rotate(2.5deg) 373 | } 374 | 375 | 90% { 376 | -webkit-transform: translateY(2.5px) rotate(-.5deg); 377 | transform: translateY(2.5px) rotate(-.5deg) 378 | } 379 | 380 | 92% { 381 | -webkit-transform: translateY(.5px) rotate(-.5deg); 382 | transform: translateY(.5px) rotate(-.5deg) 383 | } 384 | 385 | 94% { 386 | -webkit-transform: translateY(2.5px) rotate(.5deg); 387 | transform: translateY(2.5px) rotate(.5deg) 388 | } 389 | 390 | 96% { 391 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 392 | transform: translateY(-.5px) rotate(1.5deg) 393 | } 394 | 395 | 98% { 396 | -webkit-transform: translateY(-1.5px) rotate(-.5deg); 397 | transform: translateY(-1.5px) rotate(-.5deg) 398 | } 399 | 400 | 0%,to { 401 | -webkit-transform: translate(0) rotate(0deg); 402 | transform: translate(0) rotate(0deg) 403 | } 404 | } 405 | 406 | @keyframes a { 407 | 2% { 408 | -webkit-transform: translateY(1.5px) rotate(1.5deg); 409 | transform: translateY(1.5px) rotate(1.5deg) 410 | } 411 | 412 | 4% { 413 | -webkit-transform: translateY(-1.5px) rotate(-.5deg); 414 | transform: translateY(-1.5px) rotate(-.5deg) 415 | } 416 | 417 | 6% { 418 | -webkit-transform: translateY(1.5px) rotate(-1.5deg); 419 | transform: translateY(1.5px) rotate(-1.5deg) 420 | } 421 | 422 | 8% { 423 | -webkit-transform: translateY(-1.5px) rotate(-1.5deg); 424 | transform: translateY(-1.5px) rotate(-1.5deg) 425 | } 426 | 427 | 10% { 428 | -webkit-transform: translateY(2.5px) rotate(1.5deg); 429 | transform: translateY(2.5px) rotate(1.5deg) 430 | } 431 | 432 | 12% { 433 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 434 | transform: translateY(-.5px) rotate(1.5deg) 435 | } 436 | 437 | 14% { 438 | -webkit-transform: translateY(-1.5px) rotate(1.5deg); 439 | transform: translateY(-1.5px) rotate(1.5deg) 440 | } 441 | 442 | 16% { 443 | -webkit-transform: translateY(-.5px) rotate(-1.5deg); 444 | transform: translateY(-.5px) rotate(-1.5deg) 445 | } 446 | 447 | 18% { 448 | -webkit-transform: translateY(.5px) rotate(-1.5deg); 449 | transform: translateY(.5px) rotate(-1.5deg) 450 | } 451 | 452 | 20% { 453 | -webkit-transform: translateY(-1.5px) rotate(2.5deg); 454 | transform: translateY(-1.5px) rotate(2.5deg) 455 | } 456 | 457 | 22% { 458 | -webkit-transform: translateY(.5px) rotate(-1.5deg); 459 | transform: translateY(.5px) rotate(-1.5deg) 460 | } 461 | 462 | 24% { 463 | -webkit-transform: translateY(1.5px) rotate(1.5deg); 464 | transform: translateY(1.5px) rotate(1.5deg) 465 | } 466 | 467 | 26% { 468 | -webkit-transform: translateY(.5px) rotate(.5deg); 469 | transform: translateY(.5px) rotate(.5deg) 470 | } 471 | 472 | 28% { 473 | -webkit-transform: translateY(.5px) rotate(1.5deg); 474 | transform: translateY(.5px) rotate(1.5deg) 475 | } 476 | 477 | 30% { 478 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 479 | transform: translateY(-.5px) rotate(2.5deg) 480 | } 481 | 482 | 32%,34% { 483 | -webkit-transform: translateY(1.5px) rotate(-.5deg); 484 | transform: translateY(1.5px) rotate(-.5deg) 485 | } 486 | 487 | 36% { 488 | -webkit-transform: translateY(-1.5px) rotate(2.5deg); 489 | transform: translateY(-1.5px) rotate(2.5deg) 490 | } 491 | 492 | 38% { 493 | -webkit-transform: translateY(1.5px) rotate(-1.5deg); 494 | transform: translateY(1.5px) rotate(-1.5deg) 495 | } 496 | 497 | 40% { 498 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 499 | transform: translateY(-.5px) rotate(2.5deg) 500 | } 501 | 502 | 42% { 503 | -webkit-transform: translateY(2.5px) rotate(-1.5deg); 504 | transform: translateY(2.5px) rotate(-1.5deg) 505 | } 506 | 507 | 44% { 508 | -webkit-transform: translateY(1.5px) rotate(.5deg); 509 | transform: translateY(1.5px) rotate(.5deg) 510 | } 511 | 512 | 46% { 513 | -webkit-transform: translateY(-1.5px) rotate(2.5deg); 514 | transform: translateY(-1.5px) rotate(2.5deg) 515 | } 516 | 517 | 48% { 518 | -webkit-transform: translateY(-.5px) rotate(.5deg); 519 | transform: translateY(-.5px) rotate(.5deg) 520 | } 521 | 522 | 50% { 523 | -webkit-transform: translateY(.5px) rotate(.5deg); 524 | transform: translateY(.5px) rotate(.5deg) 525 | } 526 | 527 | 52% { 528 | -webkit-transform: translateY(2.5px) rotate(2.5deg); 529 | transform: translateY(2.5px) rotate(2.5deg) 530 | } 531 | 532 | 54% { 533 | -webkit-transform: translateY(-1.5px) rotate(1.5deg); 534 | transform: translateY(-1.5px) rotate(1.5deg) 535 | } 536 | 537 | 56% { 538 | -webkit-transform: translateY(2.5px) rotate(2.5deg); 539 | transform: translateY(2.5px) rotate(2.5deg) 540 | } 541 | 542 | 58% { 543 | -webkit-transform: translateY(.5px) rotate(2.5deg); 544 | transform: translateY(.5px) rotate(2.5deg) 545 | } 546 | 547 | 60% { 548 | -webkit-transform: translateY(2.5px) rotate(2.5deg); 549 | transform: translateY(2.5px) rotate(2.5deg) 550 | } 551 | 552 | 62% { 553 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 554 | transform: translateY(-.5px) rotate(2.5deg) 555 | } 556 | 557 | 64% { 558 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 559 | transform: translateY(-.5px) rotate(1.5deg) 560 | } 561 | 562 | 66% { 563 | -webkit-transform: translateY(1.5px) rotate(-.5deg); 564 | transform: translateY(1.5px) rotate(-.5deg) 565 | } 566 | 567 | 68% { 568 | -webkit-transform: translateY(-1.5px) rotate(-.5deg); 569 | transform: translateY(-1.5px) rotate(-.5deg) 570 | } 571 | 572 | 70% { 573 | -webkit-transform: translateY(1.5px) rotate(.5deg); 574 | transform: translateY(1.5px) rotate(.5deg) 575 | } 576 | 577 | 72% { 578 | -webkit-transform: translateY(2.5px) rotate(1.5deg); 579 | transform: translateY(2.5px) rotate(1.5deg) 580 | } 581 | 582 | 74% { 583 | -webkit-transform: translateY(-.5px) rotate(.5deg); 584 | transform: translateY(-.5px) rotate(.5deg) 585 | } 586 | 587 | 76% { 588 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 589 | transform: translateY(-.5px) rotate(2.5deg) 590 | } 591 | 592 | 78% { 593 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 594 | transform: translateY(-.5px) rotate(1.5deg) 595 | } 596 | 597 | 80% { 598 | -webkit-transform: translateY(1.5px) rotate(1.5deg); 599 | transform: translateY(1.5px) rotate(1.5deg) 600 | } 601 | 602 | 82% { 603 | -webkit-transform: translateY(-.5px) rotate(.5deg); 604 | transform: translateY(-.5px) rotate(.5deg) 605 | } 606 | 607 | 84% { 608 | -webkit-transform: translateY(1.5px) rotate(2.5deg); 609 | transform: translateY(1.5px) rotate(2.5deg) 610 | } 611 | 612 | 86% { 613 | -webkit-transform: translateY(-1.5px) rotate(-1.5deg); 614 | transform: translateY(-1.5px) rotate(-1.5deg) 615 | } 616 | 617 | 88% { 618 | -webkit-transform: translateY(-.5px) rotate(2.5deg); 619 | transform: translateY(-.5px) rotate(2.5deg) 620 | } 621 | 622 | 90% { 623 | -webkit-transform: translateY(2.5px) rotate(-.5deg); 624 | transform: translateY(2.5px) rotate(-.5deg) 625 | } 626 | 627 | 92% { 628 | -webkit-transform: translateY(.5px) rotate(-.5deg); 629 | transform: translateY(.5px) rotate(-.5deg) 630 | } 631 | 632 | 94% { 633 | -webkit-transform: translateY(2.5px) rotate(.5deg); 634 | transform: translateY(2.5px) rotate(.5deg) 635 | } 636 | 637 | 96% { 638 | -webkit-transform: translateY(-.5px) rotate(1.5deg); 639 | transform: translateY(-.5px) rotate(1.5deg) 640 | } 641 | 642 | 98% { 643 | -webkit-transform: translateY(-1.5px) rotate(-.5deg); 644 | transform: translateY(-1.5px) rotate(-.5deg) 645 | } 646 | 647 | 0%,to { 648 | -webkit-transform: translate(0) rotate(0deg); 649 | transform: translate(0) rotate(0deg) 650 | } 651 | } 652 | -------------------------------------------------------------------------------- /assets/css/prism.css: -------------------------------------------------------------------------------- 1 | /* PrismJS 1.15.0 2 | https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+markup-templating+php+javadoclike+phpdoc&plugins=line-numbers */ 3 | /** 4 | * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML 5 | * Based on https://github.com/chriskempson/tomorrow-theme 6 | * @author Rose Pritchard 7 | */ 8 | 9 | code[class*="language-"], 10 | pre[class*="language-"] { 11 | color: #ccc; 12 | background: none; 13 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 14 | font-size: 1em; 15 | text-align: left; 16 | white-space: pre; 17 | word-spacing: normal; 18 | word-break: normal; 19 | word-wrap: normal; 20 | line-height: 1.5; 21 | 22 | -moz-tab-size: 4; 23 | -o-tab-size: 4; 24 | tab-size: 4; 25 | 26 | -webkit-hyphens: none; 27 | -moz-hyphens: none; 28 | -ms-hyphens: none; 29 | hyphens: none; 30 | 31 | } 32 | 33 | /* Code blocks */ 34 | pre:before { 35 | content:" "; 36 | -webkit-border-radius:50%; 37 | border-radius:50%; 38 | background:#fc625d; 39 | width:12px; 40 | height:12px; 41 | left:10px; 42 | top:10px; 43 | -webkit-box-shadow:20px 0 #fdbc40,40px 0 #35cd4b; 44 | box-shadow:20px 0 #fdbc40,40px 0 #35cd4b; 45 | z-index:2; 46 | display:block; 47 | margin-bottom:15px; 48 | } 49 | pre[class*="language-"] { 50 | padding: 1em; 51 | margin: .5em 0; 52 | overflow: auto; 53 | } 54 | 55 | :not(pre) > code[class*="language-"], 56 | pre[class*="language-"] { 57 | background: #2d2d2d; 58 | } 59 | 60 | /* Inline code */ 61 | :not(pre) > code[class*="language-"] { 62 | padding: .1em; 63 | border-radius: .3em; 64 | white-space: normal; 65 | } 66 | 67 | .token.comment, 68 | .token.block-comment, 69 | .token.prolog, 70 | .token.doctype, 71 | .token.cdata { 72 | color: #999; 73 | } 74 | 75 | .token.punctuation { 76 | color: #ccc; 77 | } 78 | 79 | .token.tag, 80 | .token.attr-name, 81 | .token.namespace, 82 | .token.deleted { 83 | color: #e2777a; 84 | } 85 | 86 | .token.function-name { 87 | color: #6196cc; 88 | } 89 | 90 | .token.boolean, 91 | .token.number, 92 | .token.function { 93 | color: #f08d49; 94 | } 95 | 96 | .token.property, 97 | .token.class-name, 98 | .token.constant, 99 | .token.symbol { 100 | color: #f8c555; 101 | } 102 | 103 | .token.selector, 104 | .token.important, 105 | .token.atrule, 106 | .token.keyword, 107 | .token.builtin { 108 | color: #cc99cd; 109 | } 110 | 111 | .token.string, 112 | .token.char, 113 | .token.attr-value, 114 | .token.regex, 115 | .token.variable { 116 | color: #7ec699; 117 | } 118 | 119 | .token.operator, 120 | .token.entity, 121 | .token.url { 122 | color: #67cdcc; 123 | } 124 | 125 | .token.important, 126 | .token.bold { 127 | font-weight: bold; 128 | } 129 | .token.italic { 130 | font-style: italic; 131 | } 132 | 133 | .token.entity { 134 | cursor: help; 135 | } 136 | 137 | .token.inserted { 138 | color: green; 139 | } 140 | 141 | pre[class*="language-"].line-numbers { 142 | position: relative; 143 | padding-left: 3.8em; 144 | counter-reset: linenumber; 145 | } 146 | 147 | pre[class*="language-"].line-numbers > code { 148 | position: relative; 149 | white-space: inherit; 150 | } 151 | 152 | .line-numbers .line-numbers-rows { 153 | position: absolute; 154 | pointer-events: none; 155 | top: 0; 156 | font-size: 100%; 157 | left: -3.8em; 158 | width: 3em; /* works for line-numbers below 1000 lines */ 159 | letter-spacing: -1px; 160 | border-right: 1px solid #999; 161 | 162 | -webkit-user-select: none; 163 | -moz-user-select: none; 164 | -ms-user-select: none; 165 | user-select: none; 166 | 167 | } 168 | 169 | .line-numbers-rows > span { 170 | pointer-events: none; 171 | display: block; 172 | counter-increment: linenumber; 173 | } 174 | 175 | .line-numbers-rows > span:before { 176 | content: counter(linenumber); 177 | color: #999; 178 | display: block; 179 | padding-right: 0.8em; 180 | text-align: right; 181 | } 182 | 183 | -------------------------------------------------------------------------------- /assets/css/setting.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background-repeat:no-repeat; 3 | background-position:bottom right; 4 | background-color:#F8F8FF; 5 | background-attachment: fixed; 6 | } 7 | .typecho-option{ 8 | background:white; 9 | border:1px solid #bababa; 10 | -webkit-box-shadow:0 0 5px #808080; 11 | box-shadow:0 0 5px #808080; 12 | padding:2em; 13 | } 14 | .typecho-page-title{ 15 | position:absolute; 16 | top:35px; 17 | left:0; 18 | right:0; 19 | background:#00BFFF; 20 | box-shadow:0 0 10px #808080; 21 | -webkit-box-shadow:0 0 20px #808080; 22 | } 23 | .typecho-page-title h2{ 24 | text-align:center; 25 | font-size:3em; 26 | margin-top:100px; 27 | color:white; 28 | margin-bottom:100px; 29 | } 30 | .typecho-page-title h2:before{ 31 | content:"Mark主题 - "; 32 | } 33 | .typecho-option-tabs{ 34 | margin-top:260px; 35 | z-index:100; 36 | visibility:hidden; 37 | } 38 | .typecho-option-tabs li{ 39 | display:block; 40 | } 41 | input{ 42 | border-radius:0; 43 | } 44 | .btn{ 45 | position:fixed; 46 | right:2em; 47 | bottom:2em; 48 | box-shadow:0 0 8px #808080; 49 | -webkit-box-shadow:0 0 8px #808080; 50 | } 51 | .typecho-label{ 52 | font-size:1.2em; 53 | } 54 | .typecho-option input,.typecho-option textarea{ 55 | border:none; 56 | border-radius:0; 57 | font-size:1.15em; 58 | margin:10px; 59 | border-bottom:1px solid black; 60 | padding:10px; 61 | } 62 | .alert{ 63 | text-align:center; 64 | font-size:1.1em; 65 | margin-left:10px; 66 | } 67 | .img-lg{ 68 | margin:-2em; 69 | height:20em; 70 | background:url('https://s2.ax1x.com/2019/03/02/kbqz9I.jpg'); 71 | background-repeat:no-repeat; 72 | background-size:cover 73 | } 74 | .title{ 75 | font-size:2em; 76 | margin-top:-0.4em; 77 | } 78 | -------------------------------------------------------------------------------- /assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /assets/images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/images/404.png -------------------------------------------------------------------------------- /assets/images/avatar-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/images/avatar-bg.jpg -------------------------------------------------------------------------------- /assets/images/bilibili.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/images/bilibili.png -------------------------------------------------------------------------------- /assets/images/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/images/github.png -------------------------------------------------------------------------------- /assets/images/qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/images/qq.png -------------------------------------------------------------------------------- /assets/images/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/images/rss.png -------------------------------------------------------------------------------- /assets/images/scroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/assets/images/scroll.png -------------------------------------------------------------------------------- /assets/js/id-transition.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | //锚点跳转滑动效果 3 | $('a[href*=#],area[href*=#]').click(function() { 4 | console.log(this.pathname) 5 | if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { 6 | var $target = $(this.hash); 7 | $target = $target.length && $target || $('[name=' + this.hash.slice(1) + ']'); 8 | if ($target.length) { 9 | var targetOffset = $target.offset().top; 10 | $('html,body').animate({ 11 | scrollTop: targetOffset 12 | }, 13 | 1000); 14 | return false; 15 | } 16 | } 17 | }); 18 | }) 19 | -------------------------------------------------------------------------------- /assets/js/jquery.mousewheel-3.0.6.min.js: -------------------------------------------------------------------------------- 1 | /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) 2 | * Licensed under the MIT License (LICENSE.txt). 3 | * 4 | * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. 5 | * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. 6 | * Thanks to: Seamus Leahy for adding deltaX and deltaY 7 | * 8 | * Version: 3.0.6 9 | * 10 | * Requires: 1.2.2+ 11 | */ 12 | (function(a){function d(b){var c=b||window.event,d=[].slice.call(arguments,1),e=0,f=!0,g=0,h=0;return b=a.event.fix(c),b.type="mousewheel",c.wheelDelta&&(e=c.wheelDelta/120),c.detail&&(e=-c.detail/3),h=e,c.axis!==undefined&&c.axis===c.HORIZONTAL_AXIS&&(h=0,g=-1*e),c.wheelDeltaY!==undefined&&(h=c.wheelDeltaY/120),c.wheelDeltaX!==undefined&&(g=-1*c.wheelDeltaX/120),d.unshift(b,e,g,h),(a.event.dispatch||a.event.handle).apply(this,d)}var b=["DOMMouseScroll","mousewheel"];if(a.event.fixHooks)for(var c=b.length;c;)a.event.fixHooks[b[--c]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=b.length;a;)this.addEventListener(b[--a],d,!1);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=b.length;a;)this.removeEventListener(b[--a],d,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); 13 | -------------------------------------------------------------------------------- /assets/js/nav.js: -------------------------------------------------------------------------------- 1 | var new_scroll_position = 0; 2 | var last_scroll_position; 3 | var header = document.getElementById("nav"); 4 | 5 | window.addEventListener('scroll', function(e) { 6 | last_scroll_position = window.scrollY; 7 | 8 | // 向下滚动 9 | if (new_scroll_position < last_scroll_position && last_scroll_position > 80) { 10 | header.classList.remove("slideDown"); 11 | header.classList.add("slideUp"); 12 | 13 | // 向上滚动 14 | } else if (new_scroll_position > last_scroll_position) { 15 | header.classList.remove("slideUp"); 16 | header.classList.add("slideDown"); 17 | } 18 | 19 | new_scroll_position = last_scroll_position; 20 | }); -------------------------------------------------------------------------------- /assets/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /assets/js/nprogress.js: -------------------------------------------------------------------------------- 1 | /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress 2 | * @license MIT */ 3 | 4 | ;(function(root, factory) { 5 | 6 | if (typeof define === 'function' && define.amd) { 7 | define(factory); 8 | } else if (typeof exports === 'object') { 9 | module.exports = factory(); 10 | } else { 11 | root.NProgress = factory(); 12 | } 13 | 14 | })(this, function() { 15 | var NProgress = {}; 16 | 17 | NProgress.version = '0.2.0'; 18 | 19 | var Settings = NProgress.settings = { 20 | minimum: 0.08, 21 | easing: 'linear', 22 | positionUsing: '', 23 | speed: 200, 24 | trickle: true, 25 | trickleSpeed: 200, 26 | showSpinner: true, 27 | barSelector: '[role="bar"]', 28 | spinnerSelector: '[role="spinner"]', 29 | parent: 'body', 30 | template: '
' 31 | }; 32 | 33 | /** 34 | * Updates configuration. 35 | * 36 | * NProgress.configure({ 37 | * minimum: 0.1 38 | * }); 39 | */ 40 | NProgress.configure = function(options) { 41 | var key, value; 42 | for (key in options) { 43 | value = options[key]; 44 | if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value; 45 | } 46 | 47 | return this; 48 | }; 49 | 50 | /** 51 | * Last number. 52 | */ 53 | 54 | NProgress.status = null; 55 | 56 | /** 57 | * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`. 58 | * 59 | * NProgress.set(0.4); 60 | * NProgress.set(1.0); 61 | */ 62 | 63 | NProgress.set = function(n) { 64 | var started = NProgress.isStarted(); 65 | 66 | n = clamp(n, Settings.minimum, 1); 67 | NProgress.status = (n === 1 ? null : n); 68 | 69 | var progress = NProgress.render(!started), 70 | bar = progress.querySelector(Settings.barSelector), 71 | speed = Settings.speed, 72 | ease = Settings.easing; 73 | 74 | progress.offsetWidth; /* Repaint */ 75 | 76 | queue(function(next) { 77 | // Set positionUsing if it hasn't already been set 78 | if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS(); 79 | 80 | // Add transition 81 | css(bar, barPositionCSS(n, speed, ease)); 82 | 83 | if (n === 1) { 84 | // Fade out 85 | css(progress, { 86 | transition: 'none', 87 | opacity: 1 88 | }); 89 | progress.offsetWidth; /* Repaint */ 90 | 91 | setTimeout(function() { 92 | css(progress, { 93 | transition: 'all ' + speed + 'ms linear', 94 | opacity: 0 95 | }); 96 | setTimeout(function() { 97 | NProgress.remove(); 98 | next(); 99 | }, speed); 100 | }, speed); 101 | } else { 102 | setTimeout(next, speed); 103 | } 104 | }); 105 | 106 | return this; 107 | }; 108 | 109 | NProgress.isStarted = function() { 110 | return typeof NProgress.status === 'number'; 111 | }; 112 | 113 | /** 114 | * Shows the progress bar. 115 | * This is the same as setting the status to 0%, except that it doesn't go backwards. 116 | * 117 | * NProgress.start(); 118 | * 119 | */ 120 | NProgress.start = function() { 121 | if (!NProgress.status) NProgress.set(0); 122 | 123 | var work = function() { 124 | setTimeout(function() { 125 | if (!NProgress.status) return; 126 | NProgress.trickle(); 127 | work(); 128 | }, Settings.trickleSpeed); 129 | }; 130 | 131 | if (Settings.trickle) work(); 132 | 133 | return this; 134 | }; 135 | 136 | /** 137 | * Hides the progress bar. 138 | * This is the *sort of* the same as setting the status to 100%, with the 139 | * difference being `done()` makes some placebo effect of some realistic motion. 140 | * 141 | * NProgress.done(); 142 | * 143 | * If `true` is passed, it will show the progress bar even if its hidden. 144 | * 145 | * NProgress.done(true); 146 | */ 147 | 148 | NProgress.done = function(force) { 149 | if (!force && !NProgress.status) return this; 150 | 151 | return NProgress.inc(0.3 + 0.5 * Math.random()).set(1); 152 | }; 153 | 154 | /** 155 | * Increments by a random amount. 156 | */ 157 | 158 | NProgress.inc = function(amount) { 159 | var n = NProgress.status; 160 | 161 | if (!n) { 162 | return NProgress.start(); 163 | } else if(n > 1) { 164 | return; 165 | } else { 166 | if (typeof amount !== 'number') { 167 | if (n >= 0 && n < 0.2) { amount = 0.1; } 168 | else if (n >= 0.2 && n < 0.5) { amount = 0.04; } 169 | else if (n >= 0.5 && n < 0.8) { amount = 0.02; } 170 | else if (n >= 0.8 && n < 0.99) { amount = 0.005; } 171 | else { amount = 0; } 172 | } 173 | 174 | n = clamp(n + amount, 0, 0.994); 175 | return NProgress.set(n); 176 | } 177 | }; 178 | 179 | NProgress.trickle = function() { 180 | return NProgress.inc(); 181 | }; 182 | 183 | /** 184 | * Waits for all supplied jQuery promises and 185 | * increases the progress as the promises resolve. 186 | * 187 | * @param $promise jQUery Promise 188 | */ 189 | (function() { 190 | var initial = 0, current = 0; 191 | 192 | NProgress.promise = function($promise) { 193 | if (!$promise || $promise.state() === "resolved") { 194 | return this; 195 | } 196 | 197 | if (current === 0) { 198 | NProgress.start(); 199 | } 200 | 201 | initial++; 202 | current++; 203 | 204 | $promise.always(function() { 205 | current--; 206 | if (current === 0) { 207 | initial = 0; 208 | NProgress.done(); 209 | } else { 210 | NProgress.set((initial - current) / initial); 211 | } 212 | }); 213 | 214 | return this; 215 | }; 216 | 217 | })(); 218 | 219 | /** 220 | * (Internal) renders the progress bar markup based on the `template` 221 | * setting. 222 | */ 223 | 224 | NProgress.render = function(fromStart) { 225 | if (NProgress.isRendered()) return document.getElementById('nprogress'); 226 | 227 | addClass(document.documentElement, 'nprogress-busy'); 228 | 229 | var progress = document.createElement('div'); 230 | progress.id = 'nprogress'; 231 | progress.innerHTML = Settings.template; 232 | 233 | var bar = progress.querySelector(Settings.barSelector), 234 | perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0), 235 | parent = document.querySelector(Settings.parent), 236 | spinner; 237 | 238 | css(bar, { 239 | transition: 'all 0 linear', 240 | transform: 'translate3d(' + perc + '%,0,0)' 241 | }); 242 | 243 | if (!Settings.showSpinner) { 244 | spinner = progress.querySelector(Settings.spinnerSelector); 245 | spinner && removeElement(spinner); 246 | } 247 | 248 | if (parent != document.body) { 249 | addClass(parent, 'nprogress-custom-parent'); 250 | } 251 | 252 | parent.appendChild(progress); 253 | return progress; 254 | }; 255 | 256 | /** 257 | * Removes the element. Opposite of render(). 258 | */ 259 | 260 | NProgress.remove = function() { 261 | removeClass(document.documentElement, 'nprogress-busy'); 262 | removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent'); 263 | var progress = document.getElementById('nprogress'); 264 | progress && removeElement(progress); 265 | }; 266 | 267 | /** 268 | * Checks if the progress bar is rendered. 269 | */ 270 | 271 | NProgress.isRendered = function() { 272 | return !!document.getElementById('nprogress'); 273 | }; 274 | 275 | /** 276 | * Determine which positioning CSS rule to use. 277 | */ 278 | 279 | NProgress.getPositioningCSS = function() { 280 | // Sniff on document.body.style 281 | var bodyStyle = document.body.style; 282 | 283 | // Sniff prefixes 284 | var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' : 285 | ('MozTransform' in bodyStyle) ? 'Moz' : 286 | ('msTransform' in bodyStyle) ? 'ms' : 287 | ('OTransform' in bodyStyle) ? 'O' : ''; 288 | 289 | if (vendorPrefix + 'Perspective' in bodyStyle) { 290 | // Modern browsers with 3D support, e.g. Webkit, IE10 291 | return 'translate3d'; 292 | } else if (vendorPrefix + 'Transform' in bodyStyle) { 293 | // Browsers without 3D support, e.g. IE9 294 | return 'translate'; 295 | } else { 296 | // Browsers without translate() support, e.g. IE7-8 297 | return 'margin'; 298 | } 299 | }; 300 | 301 | /** 302 | * Helpers 303 | */ 304 | 305 | function clamp(n, min, max) { 306 | if (n < min) return min; 307 | if (n > max) return max; 308 | return n; 309 | } 310 | 311 | /** 312 | * (Internal) converts a percentage (`0..1`) to a bar translateX 313 | * percentage (`-100%..0%`). 314 | */ 315 | 316 | function toBarPerc(n) { 317 | return (-1 + n) * 100; 318 | } 319 | 320 | 321 | /** 322 | * (Internal) returns the correct CSS for changing the bar's 323 | * position given an n percentage, and speed and ease from Settings 324 | */ 325 | 326 | function barPositionCSS(n, speed, ease) { 327 | var barCSS; 328 | 329 | if (Settings.positionUsing === 'translate3d') { 330 | barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' }; 331 | } else if (Settings.positionUsing === 'translate') { 332 | barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' }; 333 | } else { 334 | barCSS = { 'margin-left': toBarPerc(n)+'%' }; 335 | } 336 | 337 | barCSS.transition = 'all '+speed+'ms '+ease; 338 | 339 | return barCSS; 340 | } 341 | 342 | /** 343 | * (Internal) Queues a function to be executed. 344 | */ 345 | 346 | var queue = (function() { 347 | var pending = []; 348 | 349 | function next() { 350 | var fn = pending.shift(); 351 | if (fn) { 352 | fn(next); 353 | } 354 | } 355 | 356 | return function(fn) { 357 | pending.push(fn); 358 | if (pending.length == 1) next(); 359 | }; 360 | })(); 361 | 362 | /** 363 | * (Internal) Applies css properties to an element, similar to the jQuery 364 | * css method. 365 | * 366 | * While this helper does assist with vendor prefixed property names, it 367 | * does not perform any manipulation of values prior to setting styles. 368 | */ 369 | 370 | var css = (function() { 371 | var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ], 372 | cssProps = {}; 373 | 374 | function camelCase(string) { 375 | return string.replace(/^-ms-/, 'ms-').replace(/-([\da-z])/gi, function(match, letter) { 376 | return letter.toUpperCase(); 377 | }); 378 | } 379 | 380 | function getVendorProp(name) { 381 | var style = document.body.style; 382 | if (name in style) return name; 383 | 384 | var i = cssPrefixes.length, 385 | capName = name.charAt(0).toUpperCase() + name.slice(1), 386 | vendorName; 387 | while (i--) { 388 | vendorName = cssPrefixes[i] + capName; 389 | if (vendorName in style) return vendorName; 390 | } 391 | 392 | return name; 393 | } 394 | 395 | function getStyleProp(name) { 396 | name = camelCase(name); 397 | return cssProps[name] || (cssProps[name] = getVendorProp(name)); 398 | } 399 | 400 | function applyCss(element, prop, value) { 401 | prop = getStyleProp(prop); 402 | element.style[prop] = value; 403 | } 404 | 405 | return function(element, properties) { 406 | var args = arguments, 407 | prop, 408 | value; 409 | 410 | if (args.length == 2) { 411 | for (prop in properties) { 412 | value = properties[prop]; 413 | if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value); 414 | } 415 | } else { 416 | applyCss(element, args[1], args[2]); 417 | } 418 | } 419 | })(); 420 | 421 | /** 422 | * (Internal) Determines if an element or space separated list of class names contains a class name. 423 | */ 424 | 425 | function hasClass(element, name) { 426 | var list = typeof element == 'string' ? element : classList(element); 427 | return list.indexOf(' ' + name + ' ') >= 0; 428 | } 429 | 430 | /** 431 | * (Internal) Adds a class to an element. 432 | */ 433 | 434 | function addClass(element, name) { 435 | var oldList = classList(element), 436 | newList = oldList + name; 437 | 438 | if (hasClass(oldList, name)) return; 439 | 440 | // Trim the opening space. 441 | element.className = newList.substring(1); 442 | } 443 | 444 | /** 445 | * (Internal) Removes a class from an element. 446 | */ 447 | 448 | function removeClass(element, name) { 449 | var oldList = classList(element), 450 | newList; 451 | 452 | if (!hasClass(element, name)) return; 453 | 454 | // Replace the class name. 455 | newList = oldList.replace(' ' + name + ' ', ' '); 456 | 457 | // Trim the opening and closing spaces. 458 | element.className = newList.substring(1, newList.length - 1); 459 | } 460 | 461 | /** 462 | * (Internal) Gets a space separated list of the class names on the element. 463 | * The list is wrapped with a single space on each end to facilitate finding 464 | * matches within the list. 465 | */ 466 | 467 | function classList(element) { 468 | return (' ' + (element && element.className || '') + ' ').replace(/\s+/gi, ' '); 469 | } 470 | 471 | /** 472 | * (Internal) Removes an element from the DOM. 473 | */ 474 | 475 | function removeElement(element) { 476 | element && element.parentNode && element.parentNode.removeChild(element); 477 | } 478 | 479 | return NProgress; 480 | }); 481 | -------------------------------------------------------------------------------- /assets/js/owo.js: -------------------------------------------------------------------------------- 1 | function OwO_show() { 2 | if ($("#OwO-container").css("display") == 'none') { 3 | $("#OwO-container").slideDown(); 4 | } else { 5 | $("#OwO-container").slideUp(); 6 | } 7 | } 8 | Smilies = { 9 | dom: function(id) { 10 | return document.getElementById(id); 11 | }, 12 | grin: function(tag) { 13 | tag = ' ' + tag + ' '; 14 | myField = this.dom("owo-textarea"); 15 | document.selection ? (myField.focus(), sel = document.selection.createRange(), sel.text = tag, myField.focus()) : this.insertTag(tag); 16 | }, 17 | insertTag: function(tag) { 18 | myField = Smilies.dom("owo-textarea"); 19 | myField.selectionStart || myField.selectionStart == "0" ? (startPos = myField.selectionStart, endPos = myField.selectionEnd, cursorPos = startPos, myField.value = myField.value.substring(0, startPos) + tag + myField.value.substring(endPos, myField.value.length), cursorPos += tag.length, myField.focus(), myField.selectionStart = cursorPos, myField.selectionEnd = cursorPos) : (myField.value += tag, myField.focus()); 20 | } 21 | } -------------------------------------------------------------------------------- /assets/js/prism.js: -------------------------------------------------------------------------------- 1 | /* PrismJS 1.15.0 2 | https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+markup-templating+php+javadoclike+phpdoc&plugins=line-numbers */ 3 | var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(g){var c=/\blang(?:uage)?-([\w-]+)\b/i,a=0,C={manual:g.Prism&&g.Prism.manual,disableWorkerMessageHandler:g.Prism&&g.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof M?new M(e.type,C.util.encode(e.content),e.alias):Array.isArray(e)?e.map(C.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(!(k instanceof M)){if(f&&y!=a.length-1){if(c.lastIndex=v,!(x=c.exec(e)))break;for(var b=x.index+(h?x[1].length:0),w=x.index+x[0].length,A=y,P=v,O=a.length;A"+n.content+""},!g.document)return g.addEventListener&&(C.disableWorkerMessageHandler||g.addEventListener("message",function(e){var a=JSON.parse(e.data),t=a.language,n=a.code,r=a.immediateClose;g.postMessage(C.highlight(n,C.languages[t],t)),r&&g.close()},!1)),C;var e=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return e&&(C.filename=e.src,C.manual||e.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(C.highlightAll):window.setTimeout(C.highlightAll,16):document.addEventListener("DOMContentLoaded",C.highlightAll))),C}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); 4 | Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var n={"included-cdata":{pattern://i,inside:s}};n["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var i={};i[a]={pattern:RegExp("(<__[\\s\\S]*?>)(?:\\s*|[\\s\\S])*?(?=<\\/__>)".replace(/__/g,a),"i"),lookbehind:!0,greedy:!0,inside:n},Prism.languages.insertBefore("markup","cdata",i)}}),Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup; 5 | !function(s){var e=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?[\s\S]*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:RegExp("url\\((?:"+e.source+"|.*?)\\)","i"),selector:RegExp("[^{}\\s](?:[^{};\"']|"+e.source+")*?(?=\\s*\\{)"),string:{pattern:e,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var a=s.languages.markup;a&&(a.tag.addInlined("style","css"),s.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:a.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:s.languages.css}},alias:"language-css"}},a.tag))}(Prism); 6 | Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/}; 7 | Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript; 8 | !function(h){function v(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(h.languages["markup-templating"]={},{buildPlaceholders:{value:function(a,r,e,o){if(a.language===r){var c=a.tokenStack=[];a.code=a.code.replace(e,function(e){if("function"==typeof o&&!o(e))return e;for(var n,t=c.length;-1!==a.code.indexOf(n=v(r,t));)++t;return c[t]=e,n}),a.grammar=h.languages.markup}}},tokenizePlaceholders:{value:function(p,k){if(p.language===k&&p.tokenStack){p.grammar=h.languages[k];var m=0,d=Object.keys(p.tokenStack);!function e(n){for(var t=0;t=d.length);t++){var a=n[t];if("string"==typeof a||a.content&&"string"==typeof a.content){var r=d[m],o=p.tokenStack[r],c="string"==typeof a?a:a.content,i=v(k,r),u=c.indexOf(i);if(-1$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),n.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),n.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var e={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:{rest:n.languages.php}};n.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:e}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:e}}}),delete n.languages.php.string,n.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){n.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}}),n.hooks.add("after-tokenize",function(e){n.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism); 10 | !function(p){var a=p.languages.javadoclike={parameter:{pattern:/(^\s*(?:\/{3}|\*|\/\*\*)\s*@(?:param|arg|arguments)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^\s*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(a,"addSupport",{value:function(a,e){"string"==typeof a&&(a=[a]),a.forEach(function(a){!function(a,e){var n="doc-comment",t=p.languages[a];if(t){var r=t[n];if(!r){var i={"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,alias:"comment"}};r=(t=p.languages.insertBefore(a,"comment",i))[n]}if(r instanceof RegExp&&(r=t[n]={pattern:r}),Array.isArray(r))for(var o=0,s=r.length;o");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,n.hasAttribute("data-start")&&(n.style.counterReset="linenumber "+(parseInt(n.getAttribute("data-start"),10)-1)),e.element.appendChild(l),m(n),Prism.hooks.run("line-numbers",e)}}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}),Prism.plugins.lineNumbers={getLine:function(e,t){if("PRE"===e.tagName&&e.classList.contains(l)){var n=e.querySelector(".line-numbers-rows"),r=parseInt(e.getAttribute("data-start"),10)||1,s=r+(n.children.length-1);t 8 | need('includes/head.php'); ?> 9 | need('includes/header.php'); ?> 10 | 11 |
12 | 13 | 14 |
15 | 16 |
17 | options->title(); ?> / title() ?> 18 |
19 |
20 | 21 | 22 |
23 | fields->banner && $this->fields->banner!='') :?> 24 |
25 |
26 |
27 | 28 | 29 |
30 |

title() ?>

31 | 32 | date('Y-m-d'); ?>  /   33 | category(',', true, '木有分类'); ?>  /   34 | commentsNum('%d'); ?> 35 | 36 |
37 | 38 |
39 |
40 | 41 | 42 | 101 | 102 | 103 | 104 | user->hasLogin()): ?> 105 |
106 | allow('comment')): ?> 107 |
108 |
109 |
110 |

111 | 112 |

113 | 114 | need('includes/owo.php'); ?> 115 |

116 | 117 |

118 |
119 |
120 | 121 |

122 | 123 | 124 | 125 | comments()->to($comments); ?> 126 | have()): ?> 127 |
128 | listComments(); ?> 129 |
130 | pageNav('« 前一页', '后一页 »'); ?> 131 | 132 |

这孩子连一篇动态都没有写哦~

133 | 134 |
135 | 136 |
137 | 138 | 139 |
140 | need('includes/sidebar.php'); ?> 141 |
142 | need('includes/toolbar.php'); ?> 143 |
144 | 145 | 146 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /file.php: -------------------------------------------------------------------------------- 1 | 8 | need('includes/head.php'); ?> 9 | need('includes/header.php'); ?> 10 | 11 |
12 | 13 | 14 |
15 | 16 |
17 | options->title(); ?> / title() ?> 18 |
19 |
20 | 21 | 22 |
23 | fields->banner && $this->fields->banner!='') :?> 24 |
25 |
26 |
27 | 28 | 29 |
30 |

title() ?>

31 |
32 | 33 |
34 | 35 |
36 |
    37 | widget('Widget_Contents_Post_Recent', 'pageSize='.$stat->publishedPostsNum)->to($archives); 40 | $year=0; $mon=0; $i=0; $j=0; 41 | while($archives->next()){ 42 | $year_tmp = date('Y',$archives->created); 43 | $mon_tmp = date('m',$archives->created); 44 | $y=$year; $m=$mon; 45 | if ($year > $year_tmp || $mon > $mon_tmp) { 46 | $output .= '
'; 47 | } 48 | $output .= '
  • '. $year_tmp .' - '. $mon_tmp .' | '. $archives->title .'
  • '; 49 | } 50 | $output .= ''; 51 | echo $output; 52 | ?> 53 | 54 |
    55 |
    56 | 57 |
    58 | 59 | 60 |
    61 | need('includes/sidebar.php'); ?> 62 |
    63 | need('includes/toolbar.php'); ?> 64 |
    65 | 66 | 67 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | addItem($banner); 9 | 10 | $topic = new Typecho_Widget_Helper_Form_Element_Text('topic', NULL, NULL, _t('题记'), _t('输入一段话,作为题记显示在文章列表(仅普通文章有效) 和 文章内页')); 11 | $layout->addItem($topic); 12 | 13 | $type=new Typecho_Widget_Helper_Form_Element_Select('type',array('0'=>'一般文章','1'=>'说说','2'=>'小板式文章(New)'),'0','文章类型'); 14 | $layout->addItem($type); 15 | } 16 | 17 | /* 18 | * 主题设置 19 | * By BigCoke 20 | */ 21 | function themeConfig($form) { 22 | 23 | echo ""; 24 | echo "

    Mark 2.0.0

    感谢您使用Mark主题,若有什么疑问可以查阅主题wiki,或者email我:bc@cokewithice.com
      并请您不要删除主题版权信息,谢谢配合!
    "; 25 | 26 | //基础设置 27 | $IndexName = new Typecho_Widget_Helper_Form_Element_Text('IndexName', NULL, NULL, _t('站点名称'), _t('首页名称,会在一些地方调用。')); 28 | $form->addInput($IndexName); 29 | 30 | $IndexDecoration = new Typecho_Widget_Helper_Form_Element_Text('IndexDecoration', NULL, NULL, _t('站点介绍'), _t('用一句话来介绍你的网站')); 31 | $form->addInput($IndexDecoration); 32 | 33 | $IndexIcon = new Typecho_Widget_Helper_Form_Element_Text('IndexIcon', NULL, NULL, _t('LOGO图标'), _t('显示在导航栏的站点名之前,参考font-awesome或者bootstrap内置图标的class')); 34 | $form->addInput($IndexIcon); 35 | 36 | $news = new Typecho_Widget_Helper_Form_Element_Text('news', NULL, NULL, _t('首页公告'), _t('公告,显示在首页文章列表之前')); 37 | $form->addInput($news); 38 | 39 | $avatar = new Typecho_Widget_Helper_Form_Element_Text('avatar', NULL, NULL, _t('博主头像'), _t('填入一个图片url,作为博主头像显示在侧边栏(其他地方的图片自动调用gravatar)')); 40 | $form->addInput($avatar); 41 | 42 | $site_create_time = new Typecho_Widget_Helper_Form_Element_Text('site_create_time', NULL, NULL, _t('网站建立时间'), _t('格式为 2010-09-10 00:00:00 即 年-月-日 时:分:秒')); 43 | $form->addInput($site_create_time); 44 | 45 | //侧边栏社交按钮配置 46 | $github = new Typecho_Widget_Helper_Form_Element_Text('github', NULL, NULL, _t('github主页地址'), _t('输入你的github主页地址,显示在侧边栏,不填写则不显示')); 47 | $form->addInput($github); 48 | 49 | $QQ_num = new Typecho_Widget_Helper_Form_Element_Text('QQ_num', NULL, NULL, _t('QQ号'), _t('输入你的QQ号,在侧边栏点击后自动打开聊天窗口,不填写则不显示。')); 50 | $form->addInput($QQ_num); 51 | 52 | $QQ_group = new Typecho_Widget_Helper_Form_Element_Text('QQ_group', NULL, NULL, _t('QQ群'), _t('在qq群官网,找到加群组件,将里面超链接中的url复制过来,直接打开QQ群,显示在侧边栏,不填写则不显示。')); 53 | $form->addInput($QQ_group); 54 | 55 | $custom_social = new Typecho_Widget_Helper_Form_Element_Textarea('custom_social', NULL, NULL,_t('自定义社交按钮'), _t('和之前的github、qq、qq群按钮显示在一起,如有需要请根据主题wiki配置。')); 56 | $form->addInput($custom_social); 57 | 58 | //个性化设置 59 | $bg_url = new Typecho_Widget_Helper_Form_Element_Text('bg_url', NULL, NULL, _t('背景图url'), _t('填入一个图片url作为背景图,填入背景图后自动设置透明度。')); 60 | $form->addInput($bg_url); 61 | 62 | $lgimg_url = new Typecho_Widget_Helper_Form_Element_Text('lgimg_url', NULL, NULL, _t('首页大图url'), _t('填入一个图片url作为首页大图,不填则不显示,填写后背景图失效。')); 63 | $form->addInput($lgimg_url); 64 | 65 | $custom_nav = new Typecho_Widget_Helper_Form_Element_Textarea('custom_nav', NULL, NULL, _t('自定义导航'), _t('用li标签结合a标签书写,若不清楚可以查看主题wiki,设置之后会直接覆盖默认的导航。')); 66 | $form->addInput($custom_nav); 67 | 68 | $custom_sidebar = new Typecho_Widget_Helper_Form_Element_Textarea('custom_sidebar', NULL, NULL, _t('自定义侧边栏'), _t('显示在原有侧边栏之后,按照wiki书写。')); 69 | $form->addInput($custom_sidebar); 70 | 71 | //pjax 72 | $pjax = new Typecho_Widget_Helper_Form_Element_Select('pjax',array('0'=>'不启用','1'=>'启用'),'0','启用 PJAX (BETA)','是否启用 PJAX。如果你发现站点有点不对劲,又不知道这个选项是啥意思,请关闭此项。'); 73 | $form->addInput($pjax); 74 | 75 | $pjax_reload = new Typecho_Widget_Helper_Form_Element_Textarea('pjax_reload', NULL, NULL, _t('Pjax重载函数'), _t('填入Pjax重载函数,不懂或者没有打开pjax请留空。')); 76 | $form->addInput($pjax_reload); 77 | } 78 | ?> 79 | 80 | -------------------------------------------------------------------------------- /includes/comments.php: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 | 63 | 64 | 65 |
    66 | $this->hidden ? 0 : $this->cid, 69 | 'parentContent' => $this->row, 70 | 'respondId' => $this->respondId, 71 | 'commentPage' => $this->request->filter('int')->commentPage, 72 | 'allowComment' => $this->allow('comment') 73 | ); 74 | ?> 75 | allow('comment')): ?> 76 |
    77 |

    发射弹幕

    78 |
    79 | 80 |
    81 |
    82 |

    83 | 84 |

    85 | 86 | user->hasLogin()): ?> 87 |

    user->screenName(); ?>. »

    88 | 89 |

    90 | 91 |

    92 | 95 |

    96 | options->commentsRequireURL): ?> required /> 97 |

    98 | 99 | need('includes/owo.php'); ?> 100 |

    101 | 102 |

    103 |
    104 |
    105 |
    106 |
    107 | 108 | 109 |

    110 | 111 | 112 | comments()->to($comments); ?> 113 | have()): ?> 114 | 115 |

    commentsNum('评论列表', '已有 1 条评论', '已有 %d 条评论'); ?> (o゜▽゜)o☆

    116 |
    117 | listComments(); ?> 118 |
    119 | 120 | pageNav('«', '»'); ?> 121 | 122 | 123 | 124 |
    -------------------------------------------------------------------------------- /includes/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
    4 |
    5 |
    6 |
    7 |

    最新访客

    8 |
    9 | widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?> 10 | next()): ?> 11 | gravatar(200); ?> 12 | 13 |
    14 |
    15 | 16 |
    17 |

    站点信息

    18 |

    小站已萌萌哒运行:,感谢陪伴

    19 |

    正在玩命获取一言毒鸡汤( ̄(∞) ̄)

    20 |

    21 | Powered by Typecho | Theme Mark by BigCoke with 22 |
    Copyright © options->title() ?> 23 |

    24 |
    25 |
    26 |
    27 |
    28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | options->pjax && $this->options->pjax!=0) :?> 42 | 43 | 44 | 76 | 77 | 78 | 137 | 138 | footer(); ?> 139 | 140 | -------------------------------------------------------------------------------- /includes/head.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | is('index')): ?> 10 | 11 | 12 | 13 | 14 | is('post')||$this->is('page')): ?> 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | <?php if($this->_currentPage>1) echo '第 '.$this->_currentPage.' 页 | '; ?> 28 | <?php $this->archiveTitle(array( 29 | 'category'=>_t('分类 %s 下的文章'), 30 | 'search'=>_t('包含关键字 %s 的文章'), 31 | 'tag' =>_t('标签 %s 下的文章'), 32 | 'author'=>_t('%s 的主页') 33 | ), '', ' | '); ?> 34 | <?php $this->options->title(); ?> 35 | <?php if($this->is('index')||$this->is('front')): ?> 36 | <?php endif; ?> 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 113 | 114 | 115 | header(); ?> 116 | 117 | 139 | 140 | -------------------------------------------------------------------------------- /includes/header.php: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | 4 | 28 | 29 | 30 | options->lgimg_url && $this->options->lgimg_url!='') :?> 31 |
    32 |

    options->IndexName(); ?>

    33 |

    options->IndexDecoration(); ?>

    34 |
    35 | 36 | 37 | 38 |
    39 |
    40 |
    41 |
    42 |
    43 | 44 | 45 |
    -------------------------------------------------------------------------------- /includes/owo.php: -------------------------------------------------------------------------------- 1 | 2 | 5 |
    6 |
    7 |
    8 |
      9 |
    • 10 |
    • 11 |
    • 12 |
    • 13 |
    • 14 |
    • 15 |
    • 16 |
    • 17 |
    • 18 |
    • 19 |
    • 20 |
    • 21 |
    • 22 |
    • 23 |
    • 24 |
    • 25 |
    • 26 |
    • 27 |
    • 28 |
    • 29 |
    • 30 |
    • 31 |
    • 32 |
    • 33 |
    • 34 |
    • 35 |
    • 36 |
    • 37 |
    • 38 |
    • 39 |
    • 40 |
    • 41 |
    • 42 |
    • 43 |
    • 44 |
    • 45 |
    • 46 |
    • 47 |
    • 48 |
    • 49 |
    • 50 |
    • 51 |
    • 52 |
    • 53 |
    • 54 |
    • 55 |
    • 56 |
    • 57 |
    • 58 |
    • 59 |
    • 60 |
    • 61 |
    • 62 |
    • 63 |
    • 64 |
    • 65 |
    • 66 |
    • 67 |
    • 68 |
    • 69 |
    • 70 |
    • 71 |
    • 72 |
    • 73 |
    • 74 | 75 |
    76 |
    77 |
    78 |
    -------------------------------------------------------------------------------- /includes/post-content.php: -------------------------------------------------------------------------------- 1 | content; 3 | 4 | $content = preg_replace('//s','',$content); 5 | $content = preg_replace('/
    /s','
    ',$content);
     6 | 	$content = preg_replace('//s','',$content); 
     7 | 	
     8 | 	//短代码(无参数)
     9 | 	$reg = '/\[scode\](.*?)\[\/scode\]/s';
    10 |     $rp = '
    ${1}
    '; 11 | $content = preg_replace($reg,$rp,$content); 12 | 13 | //短代码(有参数) 14 | $reg = '/\[scode.*?type="(.*?)"\](.*?)\[\/scode\]/s'; 15 | $rp = '
    ${2}
    '; 16 | $content = preg_replace($reg,$rp,$content); 17 | 18 | //font文字排版 19 | //无参数时,自动解析为红色 20 | $reg = '/\[font\](.*?)\[\/font\]/s'; 21 | $rg = '${1}'; 22 | $content = preg_replace($reg,$rp,$content); 23 | 24 | //解析只有color参数的font 25 | $reg = '/\[font color="(.*?)"\](.*?)\[\/font\]/s'; 26 | $rp = '${2}'; 27 | $content = preg_replace($reg,$rp,$content); 28 | 29 | //解析只有bg参数的font 30 | $reg = '/\[font bg="(.*?)"\](.*?)\[\/font\]/s'; 31 | $rp = '${2}'; 32 | $content = preg_replace($reg,$rp,$content); 33 | 34 | //解析只有size参数的font 35 | $reg = '/\[font size="(.*?)"\](.*?)\[\/font\]/s'; 36 | $rp = '${2}'; 37 | $content = preg_replace($reg,$rp,$content); 38 | 39 | //解析只有style参数的font 40 | $reg = '/\[font style="(.*?)"\](.*?)\[\/font\]/s'; 41 | $rp = '${2}'; 42 | $content = preg_replace($reg,$rp,$content); 43 | 44 | //滚动文本区域 45 | $reg = '/\[stext\](.*?)\[\/stext\]/s'; 46 | $rp = '
    ${1}
    '; 47 | $content = preg_replace($reg,$rp,$content); 48 | 49 | //解析按钮 50 | $reg = '/\[btn url="(.*?)" type="(.*?)" ico="(.*?)"\](.*?)\[\/btn\]/s'; 51 | $rp = ' ${4}'; 52 | $content = preg_replace($reg,$rp,$content); 53 | 54 | //解析嵌入块 55 | $reg = '/\[well\](.*?)\[\/well\]/s'; 56 | $rp = '
    ${1}
    '; 57 | $content = preg_replace($reg,$rp,$content); 58 | 59 | //解析面板 60 | //无参数面板 61 | $reg = '/\[panel\](.*?)\[\/panel\]/s'; 62 | $rp = '
    ${1}
    '; 63 | $content = preg_replace($reg,$rp,$content); 64 | //有标题的面板 65 | $reg = '/\[panel title="(.*?)"\](.*?)\[\/panel\]/s'; 66 | $rp = '
    ${1}
    ${2}
    '; 67 | $content = preg_replace($reg,$rp,$content); 68 | 69 | //解析列表组 70 | $reg = '/\[lg\](.*?)\[\/lg\]/s'; 71 | $rp = '
      ${1}
    '; 72 | $content = preg_replace($reg,$rp,$content); 73 | 74 | echo $content; 75 | ?> -------------------------------------------------------------------------------- /includes/post-item.php: -------------------------------------------------------------------------------- 1 | is('post') || $this->fields->type=='1' ): ?> 2 | 3 | is('index')): ?> 4 |
    5 |
    6 |

    author() ?>说:

    7 | need('includes/post-content.php'); ?> 8 |
    9 |
    10 |
    11 |
    12 | author->gravatar(50) ?> 13 |
    14 |
    15 |

    title(); ?>

    16 |
    date('F j, Y'); ?>
    17 | 18 | 前往吐槽 19 |
    20 |
    21 |
    22 | 23 |
    24 | 25 | 26 | fields->type=='2'): ?> 27 | 28 |
    29 |
    30 |
    31 |
    32 |

    sticky(); $this->title() ?>

    33 |

    34 | excerpt(50); ?> 35 |
    36 |

    37 |
    38 | 39 | 40 |
    41 |
    42 |
    43 |
    44 |
    45 | 46 | 47 | 48 |
    49 | is('index')): ?> 50 |
    51 | fields->banner && $this->fields->banner!='') :?> 52 |
    53 | 54 |
    55 | 56 | 57 | 58 |

    sticky(); $this->title() ?>

    59 |

    60 | excerpt(100); ?> 61 |

    62 | 63 |
    64 | 65 | 66 | 67 |
    68 |
    69 |
    70 |
    71 | 72 | 73 | -------------------------------------------------------------------------------- /includes/sidebar.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /includes/toolbar.php: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 11 | $this->need('includes/header.php'); 12 | ?> 13 | 14 |
    15 | 16 | 17 |
    18 | is('index')): ?> 19 | 20 |
    21 | options->news(); ?> 22 |
    23 |
    24 | 25 | 26 | is('archive')): ?> 27 |
    28 | archiveTitle(array( 29 | 'category'=>_t('分类 %s 下的文章'), 30 | 'search'=>_t('包含关键字 %s 的文章'), 31 | 'tag' =>_t('标签 %s 下的文章'), 32 | 'author'=>_t('%s 的主页') 33 | ), '', ''); ?> 34 | have()): ?> 35 | 36 |

    居然没有找到相关内容Σ(⊙▽⊙"a

    37 | 38 |
    39 |
    40 | 41 | 42 | next()): ?> 43 | need('post/post-item.php'); ?> 44 | 45 | 46 | 47 |
    48 | 49 | 50 |
    51 | need('includes/sidebar.php'); ?> 52 |
    53 | 54 | need('includes/toolbar.php'); ?> 55 |
    56 | 57 | 58 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /links.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 8 | $this->need('includes/header.php'); ?> 9 | 10 |
    11 | 12 |
    13 | 14 |
    15 | options->title(); ?> / title() ?> 16 |
    17 |
    18 | 19 |
    20 | fields->banner && $this->fields->banner!='') :?> 21 |
    22 |
    23 |
    24 | 25 |

    title() ?>

    26 |
    27 | 32 | 33 |
    34 | 35 |
    36 | need('post/post-content.php'); ?> 37 |
    38 |
    39 | 40 | need('includes/comments.php'); ?> 41 |
    42 | 43 | 44 |
    45 | need('includes/sidebar.php'); ?> 46 |
    47 | 48 | need('includes/toolbar.php'); ?> 49 |
    50 | 51 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); ?> 2 | need('includes/header.php'); ?> 3 | 4 |
    5 | 6 | 7 |
    8 | 9 |
    10 | options->title(); ?> / title() ?> 11 |
    12 |
    13 | 14 | 15 |
    16 | fields->banner && $this->fields->banner!='') :?> 17 |
    18 |
    19 |
    20 | 21 | 22 |
    23 |

    title() ?>

    24 |
    25 | 26 |
    27 | 28 |
    29 | need('post/post-content.php'); ?> 30 |
    31 | 32 |
    33 | 34 | need('includes/comments.php'); ?> 35 |
    36 |
    37 | 38 | 39 |
    40 | need('includes/sidebar.php'); ?> 41 |
    42 | need('includes/toolbar.php'); ?> 43 |
    44 | 45 | 46 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /plugins/Links/Action.php: -------------------------------------------------------------------------------- 1 | validate()) { 11 | $this->response->goBack(); 12 | } 13 | /** 取出数据 */ 14 | $link = $this->request->from('name', 'url', 'sort', 'image', 'description', 'user'); 15 | $link['order'] = $this->db->fetchObject($this->db->select(array('MAX(order)' => 'maxOrder'))->from($this->prefix.'links'))->maxOrder + 1; 16 | 17 | /** 插入数据 */ 18 | $link['lid'] = $this->db->query($this->db->insert($this->prefix.'links')->rows($link)); 19 | 20 | /** 设置高亮 */ 21 | $this->widget('Widget_Notice')->highlight('link-'.$link['lid']); 22 | 23 | /** 提示信息 */ 24 | $this->widget('Widget_Notice')->set(_t('链接 %s 已经被增加', 25 | $link['url'], $link['name']), NULL, 'success'); 26 | 27 | /** 转向原页 */ 28 | $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl)); 29 | } 30 | 31 | public function addHannysBlog() 32 | { 33 | /** 取出数据 */ 34 | $link = array( 35 | 'name' => "Hanny's Blog", 36 | 'url' => "http://www.imhan.com", 37 | 'description' => "寒泥 - Typecho插件开发者", 38 | ); 39 | $link['order'] = $this->db->fetchObject($this->db->select(array('MAX(order)' => 'maxOrder'))->from($this->prefix.'links'))->maxOrder + 1; 40 | 41 | /** 插入数据 */ 42 | $link['lid'] = $this->db->query($this->db->insert($this->prefix.'links')->rows($link)); 43 | 44 | /** 设置高亮 */ 45 | $this->widget('Widget_Notice')->highlight('link-'.$link['lid']); 46 | 47 | /** 提示信息 */ 48 | $this->widget('Widget_Notice')->set(_t('链接 %s 已经被增加', 49 | $link['url'], $link['name']), NULL, 'success'); 50 | 51 | /** 转向原页 */ 52 | $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl)); 53 | } 54 | 55 | public function updateLink() 56 | { 57 | if (Links_Plugin::form('update')->validate()) { 58 | $this->response->goBack(); 59 | } 60 | 61 | /** 取出数据 */ 62 | $link = $this->request->from('lid', 'name', 'sort', 'image', 'url', 'description', 'user'); 63 | 64 | /** 更新数据 */ 65 | $this->db->query($this->db->update($this->prefix.'links')->rows($link)->where('lid = ?', $link['lid'])); 66 | 67 | /** 设置高亮 */ 68 | $this->widget('Widget_Notice')->highlight('link-'.$link['lid']); 69 | 70 | /** 提示信息 */ 71 | $this->widget('Widget_Notice')->set(_t('链接 %s 已经被更新', 72 | $link['url'], $link['name']), NULL, 'success'); 73 | 74 | /** 转向原页 */ 75 | $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl)); 76 | } 77 | 78 | public function deleteLink() 79 | { 80 | $lids = $this->request->filter('int')->getArray('lid'); 81 | $deleteCount = 0; 82 | if ($lids && is_array($lids)) { 83 | foreach ($lids as $lid) { 84 | if ($this->db->query($this->db->delete($this->prefix.'links')->where('lid = ?', $lid))) { 85 | $deleteCount ++; 86 | } 87 | } 88 | } 89 | /** 提示信息 */ 90 | $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('链接已经删除') : _t('没有链接被删除'), NULL, 91 | $deleteCount > 0 ? 'success' : 'notice'); 92 | 93 | /** 转向原页 */ 94 | $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl)); 95 | } 96 | 97 | public function sortLink() 98 | { 99 | $links = $this->request->filter('int')->getArray('lid'); 100 | if ($links && is_array($links)) { 101 | foreach ($links as $sort => $lid) { 102 | $this->db->query($this->db->update($this->prefix.'links')->rows(array('order' => $sort + 1))->where('lid = ?', $lid)); 103 | } 104 | } 105 | } 106 | 107 | public function action() 108 | { 109 | $this->db = Typecho_Db::get(); 110 | $this->prefix = $this->db->getPrefix(); 111 | $this->options = Typecho_Widget::widget('Widget_Options'); 112 | $this->on($this->request->is('do=insert'))->insertLink(); 113 | $this->on($this->request->is('do=addhanny'))->addHannysBlog(); 114 | $this->on($this->request->is('do=update'))->updateLink(); 115 | $this->on($this->request->is('do=delete'))->deleteLink(); 116 | $this->on($this->request->is('do=sort'))->sortLink(); 117 | $this->response->redirect($this->options->adminUrl); 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /plugins/Links/Mysql.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `typecho_links` ( 2 | `lid` int(10) unsigned NOT NULL auto_increment COMMENT 'links表主键', 3 | `name` varchar(200) default NULL COMMENT 'links名称', 4 | `url` varchar(200) default NULL COMMENT 'links网址', 5 | `sort` varchar(200) default NULL COMMENT 'links分类', 6 | `image` varchar(200) default NULL COMMENT 'links图片', 7 | `description` varchar(200) default NULL COMMENT 'links描述', 8 | `user` varchar(200) default NULL COMMENT '自定义', 9 | `order` int(10) unsigned default '0' COMMENT 'links排序', 10 | PRIMARY KEY (`lid`) 11 | ) ENGINE=MYISAM DEFAULT CHARSET=%charset%; 12 | -------------------------------------------------------------------------------- /plugins/Links/Plugin.php: -------------------------------------------------------------------------------- 1 | contentEx = array('Links_Plugin', 'parse'); 58 | Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('Links_Plugin', 'parse'); 59 | Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx = array('Links_Plugin', 'parse'); 60 | return _t($info); 61 | } 62 | 63 | /** 64 | * 禁用插件方法,如果禁用失败,直接抛出异常 65 | * 66 | * @static 67 | * @access public 68 | * @return void 69 | * @throws Typecho_Plugin_Exception 70 | */ 71 | public static function deactivate() 72 | { 73 | Helper::removeAction('links-edit'); 74 | Helper::removePanel(3, 'Links/manage-links.php'); 75 | } 76 | 77 | /** 78 | * 获取插件配置面板 79 | * 80 | * @access public 81 | * @param Typecho_Widget_Helper_Form $form 配置面板 82 | * @return void 83 | */ 84 | public static function config(Typecho_Widget_Helper_Form $form) {} 85 | 86 | /** 87 | * 个人用户的配置面板 88 | * 89 | * @access public 90 | * @param Typecho_Widget_Helper_Form $form 91 | * @return void 92 | */ 93 | public static function personalConfig(Typecho_Widget_Helper_Form $form) {} 94 | 95 | public static function linksInstall() 96 | { 97 | $installDb = Typecho_Db::get(); 98 | $type = explode('_', $installDb->getAdapterName()); 99 | $type = array_pop($type); 100 | $prefix = $installDb->getPrefix(); 101 | $scripts = file_get_contents('usr/plugins/Links/'.$type.'.sql'); 102 | $scripts = str_replace('typecho_', $prefix, $scripts); 103 | $scripts = str_replace('%charset%', 'utf8', $scripts); 104 | $scripts = explode(';', $scripts); 105 | try { 106 | foreach ($scripts as $script) { 107 | $script = trim($script); 108 | if ($script) { 109 | $installDb->query($script, Typecho_Db::WRITE); 110 | } 111 | } 112 | return '建立友情链接数据表,插件启用成功'; 113 | } catch (Typecho_Db_Exception $e) { 114 | $code = $e->getCode(); 115 | if(('Mysql' == $type && 1050 == $code) || 116 | ('SQLite' == $type && ('HY000' == $code || 1 == $code))) { 117 | try { 118 | $script = 'SELECT `lid`, `name`, `url`, `sort`, `image`, `description`, `user`, `order` from `' . $prefix . 'links`'; 119 | $installDb->query($script, Typecho_Db::READ); 120 | return '检测到友情链接数据表,友情链接插件启用成功'; 121 | } catch (Typecho_Db_Exception $e) { 122 | $code = $e->getCode(); 123 | if(('Mysql' == $type && 1054 == $code) || 124 | ('SQLite' == $type && ('HY000' == $code || 1 == $code))) { 125 | return Links_Plugin::linksUpdate($installDb, $type, $prefix); 126 | } 127 | throw new Typecho_Plugin_Exception('数据表检测失败,友情链接插件启用失败。错误号:'.$code); 128 | } 129 | } else { 130 | throw new Typecho_Plugin_Exception('数据表建立失败,友情链接插件启用失败。错误号:'.$code); 131 | } 132 | } 133 | } 134 | 135 | public static function linksUpdate($installDb, $type, $prefix) 136 | { 137 | $scripts = file_get_contents('usr/plugins/Links/Update_'.$type.'.sql'); 138 | $scripts = str_replace('typecho_', $prefix, $scripts); 139 | $scripts = str_replace('%charset%', 'utf8', $scripts); 140 | $scripts = explode(';', $scripts); 141 | try { 142 | foreach ($scripts as $script) { 143 | $script = trim($script); 144 | if ($script) { 145 | $installDb->query($script, Typecho_Db::WRITE); 146 | } 147 | } 148 | return '检测到旧版本友情链接数据表,升级成功'; 149 | } catch (Typecho_Db_Exception $e) { 150 | $code = $e->getCode(); 151 | if(('Mysql' == $type && 1060 == $code) ) { 152 | return '友情链接数据表已经存在,插件启用成功'; 153 | } 154 | throw new Typecho_Plugin_Exception('友情链接插件启用失败。错误号:'.$code); 155 | } 156 | } 157 | 158 | public static function form($action = NULL) 159 | { 160 | /** 构建表格 */ 161 | $options = Typecho_Widget::widget('Widget_Options'); 162 | $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/links-edit', $options->index), 163 | Typecho_Widget_Helper_Form::POST_METHOD); 164 | 165 | /** 链接名称 */ 166 | $name = new Typecho_Widget_Helper_Form_Element_Text('name', NULL, NULL, _t('链接名称*')); 167 | $form->addInput($name); 168 | 169 | /** 链接地址 */ 170 | $url = new Typecho_Widget_Helper_Form_Element_Text('url', NULL, "http://", _t('链接地址*')); 171 | $form->addInput($url); 172 | 173 | /** 链接分类 */ 174 | $sort = new Typecho_Widget_Helper_Form_Element_Text('sort', NULL, NULL, _t('链接分类'), _t('建议以英文字母开头,只包含字母与数字')); 175 | $form->addInput($sort); 176 | 177 | /** 链接图片 */ 178 | $image = new Typecho_Widget_Helper_Form_Element_Text('image', NULL, NULL, _t('链接图片'), _t('需要以http://开头,留空表示没有链接图片')); 179 | $form->addInput($image); 180 | 181 | /** 链接描述 */ 182 | $description = new Typecho_Widget_Helper_Form_Element_Textarea('description', NULL, NULL, _t('链接描述')); 183 | $form->addInput($description); 184 | 185 | /** 自定义数据 */ 186 | $user = new Typecho_Widget_Helper_Form_Element_Text('user', NULL, NULL, _t('自定义数据'), _t('该项用于用户自定义数据扩展')); 187 | $form->addInput($user); 188 | 189 | /** 链接动作 */ 190 | $do = new Typecho_Widget_Helper_Form_Element_Hidden('do'); 191 | $form->addInput($do); 192 | 193 | /** 链接主键 */ 194 | $lid = new Typecho_Widget_Helper_Form_Element_Hidden('lid'); 195 | $form->addInput($lid); 196 | 197 | /** 提交按钮 */ 198 | $submit = new Typecho_Widget_Helper_Form_Element_Submit(); 199 | $submit->input->setAttribute('class', 'btn primary'); 200 | $form->addItem($submit); 201 | $request = Typecho_Request::getInstance(); 202 | 203 | if (isset($request->lid) && 'insert' != $action) { 204 | /** 更新模式 */ 205 | $db = Typecho_Db::get(); 206 | $prefix = $db->getPrefix(); 207 | $link = $db->fetchRow($db->select()->from($prefix.'links')->where('lid = ?', $request->lid)); 208 | if (!$link) { 209 | throw new Typecho_Widget_Exception(_t('链接不存在'), 404); 210 | } 211 | 212 | $name->value($link['name']); 213 | $url->value($link['url']); 214 | $sort->value($link['sort']); 215 | $image->value($link['image']); 216 | $description->value($link['description']); 217 | $user->value($link['user']); 218 | $do->value('update'); 219 | $lid->value($link['lid']); 220 | $submit->value(_t('编辑链接')); 221 | $_action = 'update'; 222 | } else { 223 | $do->value('insert'); 224 | $submit->value(_t('增加链接')); 225 | $_action = 'insert'; 226 | } 227 | 228 | if (empty($action)) { 229 | $action = $_action; 230 | } 231 | 232 | /** 给表单增加规则 */ 233 | if ('insert' == $action || 'update' == $action) { 234 | $name->addRule('required', _t('必须填写链接名称')); 235 | $url->addRule('required', _t('必须填写链接地址')); 236 | $url->addRule('url', _t('不是一个合法的链接地址')); 237 | $image->addRule('url', _t('不是一个合法的图片地址')); 238 | } 239 | if ('update' == $action) { 240 | $lid->addRule('required', _t('链接主键不存在')); 241 | $lid->addRule(array(new Links_Plugin, 'LinkExists'), _t('链接不存在')); 242 | } 243 | return $form; 244 | } 245 | 246 | public static function LinkExists($lid) 247 | { 248 | $db = Typecho_Db::get(); 249 | $prefix = $db->getPrefix(); 250 | $link = $db->fetchRow($db->select()->from($prefix.'links')->where('lid = ?', $lid)->limit(1)); 251 | return $link ? true : false; 252 | } 253 | 254 | /** 255 | * 控制输出格式 256 | */ 257 | public static function output_str($pattern=NULL, $links_num=0, $sort=NULL) 258 | { 259 | $options = Typecho_Widget::widget('Widget_Options'); 260 | if (!isset($options->plugins['activated']['Links'])) { 261 | return '友情链接插件未激活'; 262 | } 263 | if (!isset($pattern) || $pattern == "" || $pattern == NULL || $pattern == "SHOW_TEXT") { 264 | $pattern = "
  • {name}
  • \n"; 265 | } else if ($pattern == "SHOW_IMG") { 266 | $pattern = "
  • \"{name}\"
  • \n"; 267 | } else if ($pattern == "SHOW_MIX") { 268 | $pattern = " 269 | 270 |
    271 | 277 |
    278 |
    "; 279 | } 280 | $db = Typecho_Db::get(); 281 | $prefix = $db->getPrefix(); 282 | $options = Typecho_Widget::widget('Widget_Options'); 283 | $nopic_url = Typecho_Common::url('/usr/plugins/Links/nopic.jpg', $options->siteUrl); 284 | $sql = $db->select()->from($prefix.'links'); 285 | if (!isset($sort) || $sort == "") { 286 | $sort = NULL; 287 | } 288 | if ($sort) { 289 | $sql = $sql->where('sort=?', $sort); 290 | } 291 | $sql = $sql->order($prefix.'links.order', Typecho_Db::SORT_ASC); 292 | $links_num = intval($links_num); 293 | if ($links_num > 0) { 294 | $sql = $sql->limit($links_num); 295 | } 296 | $links = $db->fetchAll($sql); 297 | $str = ""; 298 | foreach ($links as $link) { 299 | if ($link['image'] == NULL) { 300 | $link['image'] = $nopic_url; 301 | } 302 | $str .= str_replace( 303 | array('{lid}', '{name}', '{url}', '{sort}', '{title}', '{description}', '{image}', '{user}'), 304 | array($link['lid'], $link['name'], $link['url'], $link['sort'], $link['description'], $link['description'], $link['image'], $link['user']), 305 | $pattern 306 | ); 307 | } 308 | return $str; 309 | } 310 | 311 | //输出 312 | public static function output($pattern=NULL, $links_num=0, $sort=NULL) 313 | { 314 | echo Links_Plugin::output_str($pattern, $links_num, $sort); 315 | } 316 | 317 | /** 318 | * 解析 319 | * 320 | * @access public 321 | * @param array $matches 解析值 322 | * @return string 323 | */ 324 | public static function parseCallback($matches) 325 | { 326 | $db = Typecho_Db::get(); 327 | $pattern = $matches[3]; 328 | $links_num = $matches[1]; 329 | $sort = $matches[2]; 330 | return Links_Plugin::output_str($pattern, $links_num, $sort); 331 | } 332 | 333 | public static function parse($text, $widget, $lastResult) 334 | { 335 | $text = empty($lastResult) ? $text : $lastResult; 336 | 337 | if ($widget instanceof Widget_Archive || $widget instanceof Widget_Abstract_Comments) { 338 | return preg_replace_callback("/\s*(.*?)\s*<\/links>/is", array('Links_Plugin', 'parseCallback'), $text); 339 | } else { 340 | return $text; 341 | } 342 | } 343 | } 344 | -------------------------------------------------------------------------------- /plugins/Links/SQLite.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `typecho_links` ( 2 | `lid` INTEGER NOT NULL PRIMARY KEY, 3 | `name` varchar(200) default NULL, 4 | `url` varchar(200) default NULL, 5 | `sort` varchar(200) default NULL, 6 | `image` varchar(200) default NULL, 7 | `description` varchar(200) default NULL, 8 | `user` varchar(200) default NULL, 9 | `order` int(10) default '0' 10 | ); 11 | -------------------------------------------------------------------------------- /plugins/Links/Update_Mysql.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `typecho_links` 2 | ADD `sort` varchar( 200 ) default NULL COMMENT 'links分类' AFTER `url`, 3 | ADD `image` varchar( 200 ) default NULL COMMENT 'links图片' AFTER `sort`, 4 | ADD `user` varchar( 200 ) default NULL COMMENT '自定义' AFTER `description`; -------------------------------------------------------------------------------- /plugins/Links/Update_SQLite.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `typecho_links_upgrade` ( 2 | `lid` INTEGER NOT NULL PRIMARY KEY, 3 | `name` varchar(200) default NULL, 4 | `url` varchar(200) default NULL, 5 | `sort` varchar(200) default NULL, 6 | `image` varchar(200) default NULL, 7 | `description` varchar(200) default NULL, 8 | `user` varchar(200) default NULL, 9 | `order` int(10) default '0' 10 | ); 11 | INSERT INTO `typecho_links_upgrade` (`lid`, `name`, `url`, `sort`, `image`, `description`, `user`, `order`) 12 | SELECT `lid`, `name`, `url`, NULL, NULL, `description`, NULL, `order` FROM `typecho_links`; 13 | DROP TABLE `typecho_links`; 14 | CREATE TABLE `typecho_links` ( 15 | `lid` INTEGER NOT NULL PRIMARY KEY, 16 | `name` varchar(200) default NULL, 17 | `url` varchar(200) default NULL, 18 | `sort` varchar(200) default NULL, 19 | `image` varchar(200) default NULL, 20 | `description` varchar(200) default NULL, 21 | `user` varchar(200) default NULL, 22 | `order` int(10) default '0' 23 | ); 24 | INSERT INTO `typecho_links` SELECT * FROM `typecho_links_upgrade`; 25 | DROP TABLE `typecho_links_upgrade`; 26 | -------------------------------------------------------------------------------- /plugins/Links/manage-links.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 |
    9 |
    10 | 11 |
    12 | 19 | 20 |
    21 | getPrefix(); 23 | $links = $db->fetchAll($db->select()->from($prefix.'links')->order($prefix.'links.order', Typecho_Db::SORT_ASC)); 24 | ?> 25 |
    26 |
    27 |
    28 | 29 |
    30 | 31 | 34 |
    35 |
    36 |
    37 | 38 |
    39 |
    40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 63 | 64 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 |
    62 | '.$link['name'].''; 67 | } else { 68 | $options = Typecho_Widget::widget('Widget_Options'); 69 | $nopic_url = Typecho_Common::url('/usr/plugins/Links/nopic.jpg', $options->siteUrl); 70 | echo 'NOPIC'; 71 | } 72 | ?>
    82 | 83 | 84 | 85 |
    86 | render(); ?> 87 |
    88 | 89 | 90 | 91 | 92 | 96 | 97 | 144 | 145 | -------------------------------------------------------------------------------- /plugins/Links/nopic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/plugins/Links/nopic.jpg -------------------------------------------------------------------------------- /post.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); ?> 2 | need('includes/header.php'); ?> 3 | 4 |
    5 | 6 | 7 |
    8 | 9 |
    10 | options->title(); ?> / category('', true, '无分类'); ?> / title() ?> 11 |
    12 |
    13 | 14 | 15 |
    16 | fields->banner && $this->fields->banner!='') :?> 17 |
    18 |
    19 |
    20 | 21 | 22 |
    23 |

    title() ?>

    24 | 25 | date('Y-m-d'); ?>  /   26 | category(',', true, '木有分类'); ?>  /   27 | commentsNum('%d'); ?> 28 | 29 |
    30 | 31 |
    32 | fields->topic && $this->fields->topic!='') :?> 33 |
    34 |

    fields->topic(); ?>

    35 |
    36 | 37 | 38 |
    39 | need('post/post-content.php'); ?> 40 |
    41 | 42 |
    43 | 44 | 54 |
    55 | 56 | need('includes/comments.php'); ?> 57 |
    58 |
    59 | 60 | 61 |
    62 | need('includes/sidebar.php'); ?> 63 |
    64 | need('includes/toolbar.php'); ?> 65 |
    66 | 67 | 68 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /post/post-content.php: -------------------------------------------------------------------------------- 1 | content; 3 | 4 | $content = preg_replace('//s','',$content); 5 | $content = preg_replace('//s','',$content); 6 | $content = preg_replace('/
    /s','
    ',$content);
     7 | 	$content = preg_replace('//s','
    ${4}
    ',$content); 8 | 9 | //短代码(无参数) 10 | $reg = '/\[scode\](.*?)\[\/scode\]/s'; 11 | $rp = '
    ${1}
    '; 12 | $content = preg_replace($reg,$rp,$content); 13 | 14 | //短代码(有参数) 15 | $reg = '/\[scode.*?type="(.*?)"\](.*?)\[\/scode\]/s'; 16 | $rp = '
    ${2}
    '; 17 | $content = preg_replace($reg,$rp,$content); 18 | 19 | //font文字排版 20 | //无参数时,自动解析为红色 21 | $reg = '/\[font\](.*?)\[\/font\]/s'; 22 | $rg = '${1}'; 23 | $content = preg_replace($reg,$rp,$content); 24 | 25 | //解析只有color参数的font 26 | $reg = '/\[font color="(.*?)"\](.*?)\[\/font\]/s'; 27 | $rp = '${2}'; 28 | $content = preg_replace($reg,$rp,$content); 29 | 30 | //解析只有bg参数的font 31 | $reg = '/\[font bg="(.*?)"\](.*?)\[\/font\]/s'; 32 | $rp = '${2}'; 33 | $content = preg_replace($reg,$rp,$content); 34 | 35 | //解析只有size参数的font 36 | $reg = '/\[font size="(.*?)"\](.*?)\[\/font\]/s'; 37 | $rp = '${2}'; 38 | $content = preg_replace($reg,$rp,$content); 39 | 40 | //解析只有style参数的font 41 | $reg = '/\[font style="(.*?)"\](.*?)\[\/font\]/s'; 42 | $rp = '${2}'; 43 | $content = preg_replace($reg,$rp,$content); 44 | 45 | //滚动文本区域 46 | $reg = '/\[stext\](.*?)\[\/stext\]/s'; 47 | $rp = '
    ${1}
    '; 48 | $content = preg_replace($reg,$rp,$content); 49 | 50 | //解析按钮 51 | $reg = '/\[btn url="(.*?)" type="(.*?)" ico="(.*?)"\](.*?)\[\/btn\]/s'; 52 | $rp = ' ${4}'; 53 | $content = preg_replace($reg,$rp,$content); 54 | 55 | //解析嵌入块 56 | $reg = '/\[well\](.*?)\[\/well\]/s'; 57 | $rp = '
    ${1}
    '; 58 | $content = preg_replace($reg,$rp,$content); 59 | 60 | //解析面板 61 | //无参数面板 62 | $reg = '/\[panel\](.*?)\[\/panel\]/s'; 63 | $rp = '
    ${1}
    '; 64 | $content = preg_replace($reg,$rp,$content); 65 | //有标题的面板 66 | $reg = '/\[panel title="(.*?)"\](.*?)\[\/panel\]/s'; 67 | $rp = '
    ${1}
    ${2}
    '; 68 | $content = preg_replace($reg,$rp,$content); 69 | 70 | echo $content; 71 | ?> -------------------------------------------------------------------------------- /post/post-excerpt.php: -------------------------------------------------------------------------------- 1 | excerpt); 6 | 7 | //短代码(有参数) 8 | $reg = '/\[scode.*?type="(.*?)"\](.*?)\[\/scode\]/s'; 9 | $rp = '${2}'; 10 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 11 | 12 | //font文字排版 13 | //无参数时,自动解析为红色 14 | $reg = '/\[font\](.*?)\[\/font\]/s'; 15 | $rg = '${1}'; 16 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 17 | 18 | //解析只有color参数的font 19 | $reg = '/\[font color="(.*?)"\](.*?)\[\/font\]/s'; 20 | $rp = '${2}'; 21 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 22 | 23 | //解析只有bg参数的font 24 | $reg = '/\[font bg="(.*?)"\](.*?)\[\/font\]/s'; 25 | $rp = '${2}'; 26 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 27 | 28 | //解析只有size参数的font 29 | $reg = '/\[font size="(.*?)"\](.*?)\[\/font\]/s'; 30 | $rp = '${2}'; 31 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 32 | 33 | //解析只有style参数的font 34 | $reg = '/\[font style="(.*?)"\](.*?)\[\/font\]/s'; 35 | $rp = '${2}'; 36 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 37 | 38 | //滚动文本区域 39 | $reg = '/\[stext\](.*?)\[\/stext\]/s'; 40 | $rp = '${1}'; 41 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 42 | 43 | //解析按钮 44 | $reg = '/\[btn url="(.*?)" type="(.*?)" ico="(.*?)"\](.*?)\[\/btn\]/s'; 45 | $rp = '${4}'; 46 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 47 | 48 | //解析嵌入块 49 | $reg = '/\[well\](.*?)\[\/well\]/s'; 50 | $rp = '${1}'; 51 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 52 | 53 | //解析面板 54 | //无参数面板 55 | $reg = '/\[panel\](.*?)\[\/panel\]/s'; 56 | $rp = '${1}'; 57 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 58 | //有标题的面板 59 | $reg = '/\[panel title="(.*?)"\](.*?)\[\/panel\]/s'; 60 | $rp = '${1} ${2}'; 61 | $this->excerpt = preg_replace($reg,$rp,$this->excerpt); 62 | ?> -------------------------------------------------------------------------------- /post/post-item.php: -------------------------------------------------------------------------------- 1 | is('post') || $this->fields->type=='1' ): ?> 2 | 3 | is('index')): ?> 4 |
    5 |
    6 |

    author() ?>说:

    7 | need('post/post-content.php'); ?> 8 |
    9 |
    10 |
    11 |
    12 | author->gravatar(50) ?> 13 |
    14 |
    15 |

    title(); ?>

    16 |
    date('F j, Y'); ?>
    17 | 18 | 前往吐槽 19 |
    20 |
    21 |
    22 | 23 |
    24 | 25 | 26 | fields->type=='2'): ?> 27 | 28 |
    29 |
    30 |
    31 |
    32 |

    sticky(); $this->title() ?>

    33 |

    34 | need('post/post-excerpt.php'); ?> 35 | excerpt(50); ?> 36 |
    37 |

    38 |
    39 | 40 | 41 |
    42 |
    43 |
    44 |
    45 |
    46 | 47 | 48 | 49 |
    50 | is('index')): ?> 51 |
    52 | fields->banner && $this->fields->banner!='') :?> 53 |
    54 | 55 |
    56 | 57 | 58 | 59 |

    sticky(); $this->title() ?>

    60 | fields->topic && $this->fields->topic!='') :?> 61 |
    62 |

    fields->topic(); ?>

    63 |
    64 | 65 |

    66 | need('post/post-excerpt.php'); ?> 67 | excerpt(100); ?> 68 |

    69 | 70 |
    71 | 72 | 73 | 74 |
    75 |
    76 |
    77 |
    78 | 79 | 80 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/mark/7f6b024083238626b598af0be48c4160d94cb21b/screenshot.png --------------------------------------------------------------------------------