├── IMG ├── bq │ ├── OK.png │ ├── a.png │ ├── ku.png │ ├── nu.png │ ├── tu.png │ ├── 233.png │ ├── aixin.png │ ├── bishi.png │ ├── dese.png │ ├── guai.png │ ├── haha.png │ ├── han.png │ ├── hehe.png │ ├── hlj.png │ ├── huaji.png │ ├── lazhu.png │ ├── lei.png │ ├── liwu.png │ ├── pen.png │ ├── ruo.png │ ├── shafa.png │ ├── tushe.png │ ├── wabi.png │ ├── weiqu.png │ ├── what.png │ ├── xili.png │ ├── yiwen.png │ ├── biexiao.png │ ├── caihong.png │ ├── chabei.png │ ├── chigua.png │ ├── chigua2.png │ ├── damuzhi.png │ ├── dangao.png │ ├── dengpao.png │ ├── heixian.png │ ├── huaxin.png │ ├── jingku.png │ ├── jingya.png │ ├── landeli.png │ ├── meigui.png │ ├── qianbi.png │ ├── shengli.png │ ├── shouzhi.png │ ├── taiyang.png │ ├── toukan.png │ ├── xiaoyan.png │ ├── xinsui.png │ ├── yaowan.png │ ├── yingyue.png │ ├── yinxian.png │ ├── bianbian.png │ ├── bugaoxin.png │ ├── chaiquan.png │ ├── chaiquan_3.png │ ├── chaiquanku.png │ ├── chixiang.png │ ├── hemenjiu.png │ ├── huaji_djy.png │ ├── huaji_han.png │ ├── huaji_mj.png │ ├── huaji_pc.png │ ├── huaji_xiao.png │ ├── kuanghan.png │ ├── mianqiang.png │ ├── nidongde.png │ ├── shuijiao.png │ ├── suanshuang.png │ ├── taikaixin.png │ ├── wuzuixiao.png │ ├── xiangjiao.png │ ├── xiaoguai.png │ ├── xiaoniao.png │ ├── yamiedie.png │ ├── zhenbang.png │ ├── chaiquan_gh.png │ ├── chaiquan_han.png │ ├── huaji_shang.png │ ├── xiaohonglian.png │ ├── chaiquan_hufen.png │ ├── chaiquan_mask.png │ ├── chaiquan_melon.png │ ├── chaiquan_red_1.png │ ├── chaiquanzaijian.png │ ├── chaoquan_love.png │ ├── xinxinyueliang.png │ └── chaiquanbugaoxin.png ├── down.png ├── upyun.png ├── down-hover.png ├── up.svg ├── down.svg ├── notice.svg ├── dot.svg ├── menu.svg ├── warn.svg └── reply.svg ├── screenshot.png ├── .gitattributes ├── 404.php ├── welcome.php ├── nav.php ├── index.php ├── IndexSwitcher.php ├── archive.php ├── README.md ├── link.php ├── LICENSE ├── page.php ├── post.php ├── CSS ├── nprogress.css ├── setting.css ├── shortcode.white.css ├── toastr.min.css ├── prism.css ├── jquery.fancybox.min.css └── OwO.min.css ├── footer.php ├── lib ├── shortcode.php └── shortcode.main.php ├── archives.php ├── comments.php ├── JS ├── toastr.min.js ├── jquery.pjax.min.js ├── X.js ├── clipboard.min.js └── nprogress.js ├── header.php ├── owo.php └── functions.php /IMG/bq/OK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/OK.png -------------------------------------------------------------------------------- /IMG/bq/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/a.png -------------------------------------------------------------------------------- /IMG/bq/ku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/ku.png -------------------------------------------------------------------------------- /IMG/bq/nu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/nu.png -------------------------------------------------------------------------------- /IMG/bq/tu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/tu.png -------------------------------------------------------------------------------- /IMG/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/down.png -------------------------------------------------------------------------------- /IMG/upyun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/upyun.png -------------------------------------------------------------------------------- /IMG/bq/233.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/233.png -------------------------------------------------------------------------------- /IMG/bq/aixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/aixin.png -------------------------------------------------------------------------------- /IMG/bq/bishi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/bishi.png -------------------------------------------------------------------------------- /IMG/bq/dese.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/dese.png -------------------------------------------------------------------------------- /IMG/bq/guai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/guai.png -------------------------------------------------------------------------------- /IMG/bq/haha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/haha.png -------------------------------------------------------------------------------- /IMG/bq/han.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/han.png -------------------------------------------------------------------------------- /IMG/bq/hehe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/hehe.png -------------------------------------------------------------------------------- /IMG/bq/hlj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/hlj.png -------------------------------------------------------------------------------- /IMG/bq/huaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaji.png -------------------------------------------------------------------------------- /IMG/bq/lazhu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/lazhu.png -------------------------------------------------------------------------------- /IMG/bq/lei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/lei.png -------------------------------------------------------------------------------- /IMG/bq/liwu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/liwu.png -------------------------------------------------------------------------------- /IMG/bq/pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/pen.png -------------------------------------------------------------------------------- /IMG/bq/ruo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/ruo.png -------------------------------------------------------------------------------- /IMG/bq/shafa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/shafa.png -------------------------------------------------------------------------------- /IMG/bq/tushe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/tushe.png -------------------------------------------------------------------------------- /IMG/bq/wabi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/wabi.png -------------------------------------------------------------------------------- /IMG/bq/weiqu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/weiqu.png -------------------------------------------------------------------------------- /IMG/bq/what.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/what.png -------------------------------------------------------------------------------- /IMG/bq/xili.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xili.png -------------------------------------------------------------------------------- /IMG/bq/yiwen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/yiwen.png -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/screenshot.png -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /IMG/bq/biexiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/biexiao.png -------------------------------------------------------------------------------- /IMG/bq/caihong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/caihong.png -------------------------------------------------------------------------------- /IMG/bq/chabei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chabei.png -------------------------------------------------------------------------------- /IMG/bq/chigua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chigua.png -------------------------------------------------------------------------------- /IMG/bq/chigua2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chigua2.png -------------------------------------------------------------------------------- /IMG/bq/damuzhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/damuzhi.png -------------------------------------------------------------------------------- /IMG/bq/dangao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/dangao.png -------------------------------------------------------------------------------- /IMG/bq/dengpao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/dengpao.png -------------------------------------------------------------------------------- /IMG/bq/heixian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/heixian.png -------------------------------------------------------------------------------- /IMG/bq/huaxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaxin.png -------------------------------------------------------------------------------- /IMG/bq/jingku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/jingku.png -------------------------------------------------------------------------------- /IMG/bq/jingya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/jingya.png -------------------------------------------------------------------------------- /IMG/bq/landeli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/landeli.png -------------------------------------------------------------------------------- /IMG/bq/meigui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/meigui.png -------------------------------------------------------------------------------- /IMG/bq/qianbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/qianbi.png -------------------------------------------------------------------------------- /IMG/bq/shengli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/shengli.png -------------------------------------------------------------------------------- /IMG/bq/shouzhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/shouzhi.png -------------------------------------------------------------------------------- /IMG/bq/taiyang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/taiyang.png -------------------------------------------------------------------------------- /IMG/bq/toukan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/toukan.png -------------------------------------------------------------------------------- /IMG/bq/xiaoyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xiaoyan.png -------------------------------------------------------------------------------- /IMG/bq/xinsui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xinsui.png -------------------------------------------------------------------------------- /IMG/bq/yaowan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/yaowan.png -------------------------------------------------------------------------------- /IMG/bq/yingyue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/yingyue.png -------------------------------------------------------------------------------- /IMG/bq/yinxian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/yinxian.png -------------------------------------------------------------------------------- /IMG/down-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/down-hover.png -------------------------------------------------------------------------------- /IMG/bq/bianbian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/bianbian.png -------------------------------------------------------------------------------- /IMG/bq/bugaoxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/bugaoxin.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan_3.png -------------------------------------------------------------------------------- /IMG/bq/chaiquanku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquanku.png -------------------------------------------------------------------------------- /IMG/bq/chixiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chixiang.png -------------------------------------------------------------------------------- /IMG/bq/hemenjiu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/hemenjiu.png -------------------------------------------------------------------------------- /IMG/bq/huaji_djy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaji_djy.png -------------------------------------------------------------------------------- /IMG/bq/huaji_han.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaji_han.png -------------------------------------------------------------------------------- /IMG/bq/huaji_mj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaji_mj.png -------------------------------------------------------------------------------- /IMG/bq/huaji_pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaji_pc.png -------------------------------------------------------------------------------- /IMG/bq/huaji_xiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaji_xiao.png -------------------------------------------------------------------------------- /IMG/bq/kuanghan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/kuanghan.png -------------------------------------------------------------------------------- /IMG/bq/mianqiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/mianqiang.png -------------------------------------------------------------------------------- /IMG/bq/nidongde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/nidongde.png -------------------------------------------------------------------------------- /IMG/bq/shuijiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/shuijiao.png -------------------------------------------------------------------------------- /IMG/bq/suanshuang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/suanshuang.png -------------------------------------------------------------------------------- /IMG/bq/taikaixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/taikaixin.png -------------------------------------------------------------------------------- /IMG/bq/wuzuixiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/wuzuixiao.png -------------------------------------------------------------------------------- /IMG/bq/xiangjiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xiangjiao.png -------------------------------------------------------------------------------- /IMG/bq/xiaoguai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xiaoguai.png -------------------------------------------------------------------------------- /IMG/bq/xiaoniao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xiaoniao.png -------------------------------------------------------------------------------- /IMG/bq/yamiedie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/yamiedie.png -------------------------------------------------------------------------------- /IMG/bq/zhenbang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/zhenbang.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan_gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan_gh.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan_han.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan_han.png -------------------------------------------------------------------------------- /IMG/bq/huaji_shang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/huaji_shang.png -------------------------------------------------------------------------------- /IMG/bq/xiaohonglian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xiaohonglian.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan_hufen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan_hufen.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan_mask.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan_melon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan_melon.png -------------------------------------------------------------------------------- /IMG/bq/chaiquan_red_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquan_red_1.png -------------------------------------------------------------------------------- /IMG/bq/chaiquanzaijian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquanzaijian.png -------------------------------------------------------------------------------- /IMG/bq/chaoquan_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaoquan_love.png -------------------------------------------------------------------------------- /IMG/bq/xinxinyueliang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/xinxinyueliang.png -------------------------------------------------------------------------------- /IMG/bq/chaiquanbugaoxin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hiPsyDuck/white/HEAD/IMG/bq/chaiquanbugaoxin.png -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | need('header.php'); ?> 2 | 3 |

一片空白

4 | 5 | need('footer.php'); ?> 6 | -------------------------------------------------------------------------------- /welcome.php: -------------------------------------------------------------------------------- 1 | need('header.php'); 8 | ?> 9 | 10 |
11 |
12 | content();?> 13 |
14 |
15 | 16 | need('footer.php'); ?> 17 | -------------------------------------------------------------------------------- /nav.php: -------------------------------------------------------------------------------- 1 | 首页 2 | 3 | 留言 4 | 5 | 归档 6 | 7 | 邻居 8 | 9 | 关于 -------------------------------------------------------------------------------- /IMG/up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | need('header.php'); 13 | ?> 14 |
15 |
16 | 17 | need('IndexSwitcher.php'); ?> 18 | 19 |
20 | pageLink('下一页','next'); ?> 21 | pageLink('上一页','prev'); ?> 22 |
23 | 24 |
25 |
26 | 27 | 28 | 29 | 30 | need('footer.php'); ?> 31 | -------------------------------------------------------------------------------- /IndexSwitcher.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | next()): ?> 10 | 11 |
12 |

title() ?>

13 | excerpt(80);?> 14 |

date('Y年m月d日'); ?>commentsNum(); ?> 评论

15 |
16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | need('header.php'); ?> 2 | 3 | 4 | 5 |
6 |
7 |

archiveTitle(array('category' => _t('「%s」'), 'search' => _t('包含关键字「%s」的文章'), 'tag' => _t('「%s」'), 'author' => _t('「%s」 发布的文章')), '', ''); ?>

8 | need('IndexSwitcher.php'); ?> 9 |
10 | pageLink('更多 >','next'); ?> 11 | pageLink('< 返回','prev'); ?> 12 |
13 |
14 |
15 | 16 | 17 | need('footer.php'); ?> 18 | -------------------------------------------------------------------------------- /IMG/down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## white 2 | 3 | typecho 主题 白 4 | 5 | 下载解压后将文件夹改名为`white`, 放入/usr/themes,进入后台启用。 6 | 7 | 添加独立页面`bb.html` `archive.html` `links.html` `about.html` 分别对应底部导航栏的 `留言` `归档` `邻居` `关于` 8 | 9 | 10 | 推荐安装插件: Links | CommentToMail 11 | 12 | 13 | ## 更新记录 14 | 15 | | 日期 | 更新内容 | 16 | | ---- | ---- | 17 | | 2021-05-23 | 增加又拍云联盟开关,开启后底部展示| 18 | | 2021-02-21 | 导航栏位置可选,页角阴影设置,修复代码块样式丢失问题,文章标题自豪差异更明显,调整手机和ipad适配问题| 19 | | 2021-02-18 | 修复部分样式 | 20 | | 2020-12-30 | 单反引号代码块适配 | 21 | | 2020-12-26 | 评论新增状态进度条 | 22 | | 2020-12-22 | 修复评论按钮bug,新增邮件接收开关,优化部分样式 | 23 | 24 | ## 在线演示 25 | 26 | https://psyduck.liujiayang.cn/ 27 | 28 | 29 | ## 截图 30 | 31 | ![截图](https://www.liujiayang.cn/psyduck/screenshot.png) 32 | 33 | ## 感谢 34 | 35 | 特别鸣谢 [youranreus](https://github.com/youranreus/G) 的G主题 36 | 37 | **本主题由 G主题 魔改** 38 | -------------------------------------------------------------------------------- /IMG/notice.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /link.php: -------------------------------------------------------------------------------- 1 | need('header.php'); 8 | ?> 9 | 37 | need('footer.php'); ?> 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 psyduck 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. -------------------------------------------------------------------------------- /IMG/dot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /IMG/menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /IMG/warn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | 2 | need('header.php'); 4 | ?> 5 | 6 | 18 | 19 |
20 |
21 |
22 |
23 |

title();?>

24 | date('F j, Y'); ?> · category(' · '); ?> · 次阅读 25 |
26 |
27 |
28 |
29 |
30 | content; 32 | emotionContent($content,$this->options->themeUrl); 33 | ?> 34 |
35 |
36 | 37 | options->feedIMG): ?> 38 |

喝杯水

39 |
40 | 41 |
42 | 43 | 44 |
45 |

标签:tags(',', true, 'none'); ?>

46 |

最后编辑于:modified); ?>

47 |
48 |
49 | 50 | 51 | need('comments.php'); ?> 52 | 53 | need('footer.php'); ?> 54 | -------------------------------------------------------------------------------- /post.php: -------------------------------------------------------------------------------- 1 | 2 | need('header.php'); 4 | ?> 5 | 6 | 18 | 19 |
20 |
21 |
22 |
23 |

title();?>

24 | date('Y年m月d日'); ?> · category(' · '); ?> · 次阅读 25 |
26 |
27 |
28 |
29 |
30 | content; 32 | emotionContent($content,$this->options->themeUrl); 33 | ?> 34 |
35 |
36 | 37 | options->feedIMG): ?> 38 |

喝杯水

39 |
40 | 41 |
42 | 43 | 44 |
45 |

标签:tags(',', true, 'none'); ?>

46 |

最后编辑于:modified); ?>

47 |
48 |
49 | 50 | 51 | need('comments.php'); ?> 52 | 53 | need('footer.php'); ?> 54 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /IMG/reply.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CSS/setting.css: -------------------------------------------------------------------------------- 1 | /** 2 | * @name: setting.css 3 | * @description: 主题white 设置 样式表 4 | * @author: psyduck(gdfs1996@qq.com) 5 | * @update: 2020-07-15 6 | */ 7 | 8 | /** 9 | * 清除自带样式 10 | */ 11 | .typecho-option-tabs,.typecho-page-title,.typecho-foot{ 12 | display: none!important; 13 | } 14 | .typecho-option{ 15 | padding:20px; 16 | background: rgb(250,250,250); 17 | border:1px solid #d6d7d9; 18 | border-radius: 15px; 19 | } 20 | .main{ 21 | background: white; 22 | position: relative; 23 | } 24 | form{ 25 | margin-bottom:100px; 26 | position: relative; 27 | z-index:2; 28 | } 29 | #art-box{ 30 | border-radius: 15px; 31 | overflow: hidden; 32 | background: #fff no-repeat center; 33 | background-size: cover; 34 | position: relative; 35 | margin-top: 3rem; 36 | } 37 | #ab-content{ 38 | padding: 2rem 2rem; 39 | text-align: center; 40 | display: table-cell; 41 | width: 100%; 42 | height: 100%; 43 | vertical-align: middle; 44 | } 45 | #ab-mask{ 46 | background: rgba(0,0,0,0.25); 47 | position: relative; 48 | z-index: 10; 49 | display: table; 50 | vertical-align: middle; 51 | width: 100%; 52 | height: 15.5rem; 53 | } 54 | 55 | #ab-content p{ 56 | font-size: 4rem; 57 | text-align: center; 58 | color:white; 59 | } 60 | #ab-content p a{ 61 | font-weight: 400; 62 | color:white; 63 | } 64 | input.text{ 65 | display: inline-block; 66 | -webkit-box-sizing: border-box; 67 | -moz-box-sizing: border-box; 68 | box-sizing: border-box; 69 | padding: .5em .6em; 70 | border: 0; 71 | outline:none; 72 | background: rgba(250,250,250,1); 73 | border-bottom: 2px solid #444; 74 | color: #43454A; 75 | } 76 | @media screen and (max-width: 768px) { 77 | #ab-mask{ 78 | width: 100%; 79 | height: 7rem; 80 | } 81 | 82 | #ab-content p{ 83 | font-size: 2rem; 84 | text-align: center; 85 | color:white; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 77 | 78 | 79 |
80 | 81 | 82 | 83 |
84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /lib/shortcode.php: -------------------------------------------------------------------------------- 1 | 8 | * @link https://github.com/maicong/stay 9 | * @since 1.5.4 10 | * 11 | */ 12 | 13 | if (!defined('__TYPECHO_ROOT_DIR__')) exit; 14 | 15 | require_once __DIR__ . '/shortcode.main.php'; 16 | 17 | // // 项目面板 18 | // function shortcode_panel_task( $atts, $content = '' ) { 19 | // return '
' . $content . '
'; 20 | // } 21 | // add_shortcode( 'task' , 'shortcode_panel_task' ); 22 | 23 | //文章跳转 24 | function shortcode_jump_button( $atts, $content= ''){ 25 | 26 | $db = Typecho_Db::get(); 27 | $result = $db->fetchAll($db->select()->from('table.contents') 28 | ->where('status = ?','publish') 29 | ->where('type = ?', 'post') 30 | ->where('cid = ?',$content) 31 | ); 32 | if($result){ 33 | $i=1; 34 | foreach($result as $val){ 35 | $val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val); 36 | $post_title = htmlspecialchars($val['title']); 37 | $post_permalink = $val['permalink']; 38 | $post_date = $val['created']; 39 | $post_cid = $val['cid']; 40 | $post_date = date('Y-m-d',$post_date); 41 | return ' 42 |
43 |

'.$post_title.'

44 |

ID:'.$post_cid.''.$post_date.'

45 |
46 | '; 47 | } 48 | } 49 | else{ 50 | return 'id无效QAQ'; 51 | } 52 | 53 | 54 | 55 | } 56 | add_shortcode('art','shortcode_jump_button'); 57 | 58 | // 下载 59 | function shortcode_button_dl( $atts, $content = '' ) { 60 | $args = shortcode_atts( array( 61 | 'href' => 'https://', 62 | 'target' => '_blank' 63 | ), $atts ); 64 | return '
' . $content . '
'; 65 | } 66 | add_shortcode( 'dl' , 'shortcode_button_dl' ); 67 | 68 | 69 | function shortcode_notice( $atts, $content = '' ) { 70 | return "
".$content."
"; 71 | } 72 | add_shortcode( 'notice' , 'shortcode_notice' ); 73 | 74 | 75 | function shortcode_warn( $atts, $content = '' ) { 76 | return "
".$content."
"; 77 | } 78 | add_shortcode( 'warn' , 'shortcode_warn' ); 79 | 80 | 81 | function shortcode_tag( $atts, $content = '' ) { 82 | $args = shortcode_atts( array( 83 | 'type' => 'blue' 84 | ), $atts ); 85 | return "".$content.""; 86 | } 87 | add_shortcode( 'tag' , 'shortcode_tag' ); 88 | 89 | // function shortcode_fold( $atts, $content = '' ) { 90 | // $args = shortcode_atts( array( 91 | // 'title' => '折叠内容' 92 | // ), $atts ); 93 | // return "
".$args["title"]."

".$content."

"; 94 | // } 95 | // add_shortcode( 'fold' , 'shortcode_fold' ); 96 | -------------------------------------------------------------------------------- /archives.php: -------------------------------------------------------------------------------- 1 | need('header.php'); 8 | ?> 9 | 10 |
11 |
12 |

归档

13 |
14 | 15 | widget('Widget_Metas_Tag_Cloud', array('sort' => 'count', 'ignoreZeroCount' => true, 'desc' => true, 'limit' => 20))->to($tags); ?> 16 | have()): ?> 17 | next()): ?> 18 |
  • 19 | 20 | 21 | 22 |
    23 | 24 |
    25 | 26 | "Jan", 28 | 2 => "Feb", 29 | 3 => "Mar", 30 | 4 => "Apr", 31 | 5 => "May", 32 | 6 => "Jun", 33 | 7 => "Jul", 34 | 8 => "Aug", 35 | 9 => "Sep", 36 | 10 => "Oct", 37 | 11 => "Nov", 38 | 12 => "Dec"); 39 | $this->widget('Widget_Contents_Post_Recent', 'pageSize=10000')->to($archives); 40 | $year = 0; 41 | $mon = 0; 42 | $i = 0; 43 | $j = 0; 44 | $all = array(); 45 | $output = ''; 46 | while ($archives->next()): 47 | $year_tmp = date('Y', $archives->created); 48 | $mon_tmp = date('n', $archives->created); 49 | 50 | $y = $year; 51 | $m = $mon; 52 | if ($mon != $mon_tmp && $mon > 0) $output .= '
    '; 53 | if ($year != $year_tmp) { 54 | $year = $year_tmp; 55 | $all[$year] = array(); 56 | } 57 | 58 | if ($mon != $mon_tmp) { 59 | $mon = $mon_tmp; 60 | array_push($all[$year], $mon); 61 | $output .= "

    $year-$Month_E[$mon]

    "; 62 | } 63 | $output .= ''; 64 | endwhile; 65 | $output .= '
    '; 66 | echo $output; 67 | 68 | $html = ""; 69 | $year_now = date("Y"); 70 | foreach ($all as $key => $value) { 71 | $html .= "
  • $key
  • "; 77 | } 78 | ?> 79 | 80 |
    81 | 82 | 83 | 84 | 85 | need('footer.php'); ?> 86 | -------------------------------------------------------------------------------- /CSS/shortcode.white.css: -------------------------------------------------------------------------------- 1 | /* 2 | * @description: 短代码样式表 3 | * @author: psyduck 4 | */ 5 | 6 | * { 7 | font-family: 'Arima Madurai', Microsoft JhengHei, Georgia, Times, serif; 8 | -webkit-appearance: none; 9 | } 10 | 11 | .ArtinArt { 12 | padding: 20px; 13 | background: white; 14 | max-width: 300px; 15 | margin: 10px auto; 16 | /*box-shadow: 0px 0px 10px 2px rgba(0,0,0,0.12);*/ 17 | border: 1px solid #eee; 18 | } 19 | 20 | .ArtinArt h4 { 21 | margin: 0; 22 | border: none; 23 | } 24 | 25 | .ArtinArt h4 a::after { 26 | display: none; 27 | } 28 | 29 | .ArtinArt p { 30 | margin-top: 5px !important; 31 | margin-bottom: 0; 32 | color: hsla(0, 0%, 100%, .6); 33 | } 34 | 35 | .post-download { 36 | 37 | } 38 | 39 | .post-download a { 40 | margin: 10px auto; 41 | border: 1px solid #3A8FB7; 42 | padding: 0.7rem 2rem; 43 | display: inline-block; 44 | max-width: 150px; 45 | /*border-radius: 100000000rem;*/ 46 | text-align: center; 47 | color: #3A8FB7 !important; 48 | text-overflow: ellipsis; 49 | white-space: nowrap !important; 50 | overflow: hidden; 51 | -webkit-transition: .3s ease all; 52 | -moz-transition: .3s ease all; 53 | -ms-transition: .3s ease all; 54 | -o-transition: .3s ease all; 55 | transition: .3s ease all; 56 | } 57 | 58 | .post-download a span::before { 59 | font-size: 1rem; 60 | content: ' '; 61 | display: inline-block; 62 | position: relative; 63 | width: 1rem; 64 | height: 1rem; 65 | top: 0.2rem; 66 | left: -0.4rem; 67 | background-size: contain; 68 | background-image: url(../IMG/down.png); 69 | -webkit-transition: .3s ease all; 70 | -moz-transition: .3s ease all; 71 | -ms-transition: .3s ease all; 72 | -o-transition: .3s ease all; 73 | transition: .3s ease all; 74 | } 75 | 76 | .post-download a:hover span::before { 77 | font-size: 1rem; 78 | content: ' '; 79 | display: inline-block; 80 | position: relative; 81 | width: 1rem; 82 | height: 1rem; 83 | top: 0.2rem; 84 | left: -0.4rem; 85 | background-size: contain; 86 | background-image: url(../IMG/down-hover.png); 87 | } 88 | 89 | .post-download a::after { 90 | display: none; 91 | } 92 | 93 | .post-download a:hover { 94 | background: #3A8FB7; 95 | color: white !important; 96 | } 97 | 98 | .post-content-notice { 99 | margin: 15px 0; 100 | border: 1.5px solid RGB(121, 145, 209); 101 | padding: 1.5rem 1.25rem 1.5rem 3.5rem; 102 | position: relative; 103 | overflow: hidden; 104 | } 105 | 106 | .post-content-notice:before { 107 | content: " "; 108 | position: absolute; 109 | top: 0; 110 | right: 0; 111 | bottom: 0; 112 | left: 0; 113 | background: url(../IMG/notice.svg) no-repeat; 114 | opacity: .1; 115 | } 116 | 117 | .post-content-warn { 118 | margin: 15px 0; 119 | border: 1.5px solid RGBA(184, 2, 51, 0.6); 120 | padding: 1.5rem 1.25rem 1.5rem 3.5rem; 121 | position: relative; 122 | overflow: hidden; 123 | } 124 | 125 | .post-content-warn:before { 126 | content: " "; 127 | position: absolute; 128 | top: 0; 129 | right: 0; 130 | bottom: 0; 131 | left: 0; 132 | background: url(../IMG/warn.svg) no-repeat; 133 | opacity: .1; 134 | } 135 | 136 | .post-content-tag { 137 | display: inline-block; 138 | margin: 0 5px; 139 | padding: 0 .5rem; 140 | font-size: 12px; 141 | vertical-align: middle; 142 | } 143 | 144 | .tag-blue { 145 | color: RGB(121, 145, 209); 146 | border: 0.0625rem solid RGB(121, 145, 209); 147 | } 148 | 149 | .tag-black { 150 | color: #444; 151 | border: 0.0625rem solid #444; 152 | } 153 | 154 | .tag-red { 155 | color: RGBA(184, 2, 51, 0.6); 156 | border: 0.0625rem solid RGBA(184, 2, 51, 0.6); 157 | } 158 | -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | options->themeUrl; 3 | $header = Comment_hash_fix($this); 4 | echo $header; 5 | ?> 6 | 7 | authorId) { 11 | if ($comments->authorId == $comments->ownerId) { 12 | $commentClass .= ' comment-by-author'; 13 | } else { 14 | $commentClass .= ' comment-by-user'; 15 | } 16 | } 17 | 18 | $commentLevelClass = $comments->levels > 0 ? ' comment-child' : ' comment-parent'; 19 | ?> 20 | 21 |
  • 31 | 32 | levels == 0){ 34 | echo "
    "; 35 | } 36 | ?> 37 | 38 |
    39 |
    40 |
    41 | gravatar('40', ''); ?> 42 | author(); ?> 43 |
    44 |
    45 | date('Y-m-d H:i'); ?> 46 |
    47 |
    48 | ',$comments->content); 50 | echo $cos; 51 | ?> 52 |
    53 | reply(); ?> 54 |
    55 |
    56 | 57 | children) { ?> 58 |
    59 | threadedComments($options); ?> 60 |
    61 | 62 | 63 | levels == 0){ 65 | echo "
    "; 66 | } 67 | ?> 68 | 69 |
  • 70 | 71 | 72 | 73 |
    74 | comments()->to($comments); ?> 75 |
    76 | 77 | allow('comment')): ?> 78 |
    79 | options->themeUrl('IMG/loading.gif'); ?> 80 |
    81 | cancelReply(); ?> 82 |
    83 | user->hasLogin()): ?> 84 |

    85 |
    86 |
    87 |
    88 | 89 |

    90 | 91 | 92 |

    93 | 94 |
    95 | 96 | 99 | 100 | 101 | 102 | options->plugins['activated']['CommentToMail'])) : ?> 103 | 107 | 108 | 109 | 110 |
    111 |
    need('owo.php'); ?>
    112 |
    113 | 114 |
    115 | 116 | have()): ?> 117 | listComments(); ?> 118 | pageNav('<上一页', '下一页>'); ?> 119 | 120 | 121 |
    122 | -------------------------------------------------------------------------------- /JS/toastr.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Note that this is toastr v2.1.3, the "latest" version in url has no more maintenance, 3 | * please go to https://cdnjs.com/libraries/toastr.js and pick a certain version you want to use, 4 | * make sure you copy the url from the website since the url may change between versions. 5 | * */ 6 | !function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("
    ").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e("
    "),M=e("
    "),B=e("
    "),q=e("
    "),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,success:i,version:"2.1.3",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); 7 | //# sourceMappingURL=toastr.js.map 8 | -------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | <?php $this->archiveTitle(' » ', '', ' | '); ?><?php $this->options->title(); ?> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | header(); ?> 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 |
    228 | 229 | 257 | 258 | 259 | 260 |
    261 | 262 | -------------------------------------------------------------------------------- /CSS/toastr.min.css: -------------------------------------------------------------------------------- 1 | /* * Note that this is toastr v2.1.3, the "latest" version in url has no more maintenance, * please go to https://cdnjs.com/libraries/toastr.js and pick a certain version you want to use, * make sure you copy the url from the website since the url may change between versions. * */ .toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#FFF}.toast-message a:hover{color:#CCC;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#FFF;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);line-height:1}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}.rtl .toast-close-button{left:-.3em;float:left;right:.3em}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#FFF;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>div.rtl{direction:rtl;padding:15px 50px 15px 15px;background-position:right 15px center}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51A351}.toast-error{background-color:#BD362F}.toast-info{background-color:#2F96B4}.toast-warning{background-color:#F89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}} -------------------------------------------------------------------------------- /CSS/prism.css: -------------------------------------------------------------------------------- 1 | /* PrismJS 1.15.0 2 | https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+c+ruby+docker+markup-templating+git+go+http+java+json+nginx+php+php-extras+scss+python+sass+swift+yaml&plugins=line-numbers+toolbar+autoloader+show-language+copy-to-clipboard */ 3 | /** 4 | * prism.js default theme for JavaScript, CSS and HTML 5 | * Based on dabblet (http://dabblet.com) 6 | * @author Lea Verou 7 | */ 8 | 9 | code[class*="language-"], 10 | pre[class*="language-"] { 11 | color: #333; 12 | background: none; 13 | text-shadow: 0 1px white; 14 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 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 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, 33 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { 34 | text-shadow: none; 35 | background: #b3d4fc; 36 | } 37 | 38 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection, 39 | code[class*="language-"]::selection, code[class*="language-"] ::selection { 40 | text-shadow: none; 41 | background: #b3d4fc; 42 | } 43 | 44 | @media print { 45 | code[class*="language-"], 46 | pre[class*="language-"] { 47 | text-shadow: none; 48 | } 49 | } 50 | 51 | /* Code blocks */ 52 | pre[class*="language-"] { 53 | padding: 1em; 54 | margin: .5em 0; 55 | overflow: auto; 56 | /*border-radius: 15px;*/ 57 | } 58 | 59 | :not(pre) > code[class*="language-"], 60 | pre[class*="language-"] { 61 | background: #f5f2f0; 62 | /*border-radius: 15px;*/ 63 | } 64 | 65 | 66 | :not(pre) > code[class*="language-"]::-webkit-scrollbar, 67 | pre[class*="language-"]::-webkit-scrollbar { 68 | /*滚动条整体样式*/ 69 | width: 4px; /*高宽分别对应横竖滚动条的尺寸*/ 70 | height: 4px; 71 | } 72 | :not(pre) > code[class*="language-"]::-webkit-scrollbar-thumb, 73 | pre[class*="language-"]::-webkit-scrollbar-thumb { 74 | /*滚动条里面小方块*/ 75 | border-radius: 5px; 76 | background: rgba(12,105,27,0.1); 77 | transition:all .24s ease; 78 | } 79 | :not(pre) > code[class*="language-"]::-webkit-scrollbar-thumb:hover, 80 | pre[class*="language-"]::-webkit-scrollbar-thumb:hover { 81 | background: rgba(12,105,27,0.8); 82 | transition:all .24s ease; 83 | } 84 | :not(pre) > code[class*="language-"]::-webkit-scrollbar-track, 85 | pre[class*="language-"]::-webkit-scrollbar-track{ 86 | /*滚动条里面轨道*/ 87 | /* -webkit-box-shadow: inset 0 0 5px rgba(72,184,48,0.2); */ 88 | border-radius: 0; 89 | background: rgba(255,255,255,0.1); 90 | } 91 | 92 | 93 | 94 | 95 | 96 | /* Inline code */ 97 | :not(pre) > code[class*="language-"] { 98 | padding: .1em; 99 | border-radius: .3em; 100 | white-space: normal; 101 | } 102 | 103 | .token.comment, 104 | .token.prolog, 105 | .token.doctype, 106 | .token.cdata { 107 | color: slategray; 108 | } 109 | 110 | .token.punctuation { 111 | color: #999; 112 | } 113 | 114 | .namespace { 115 | opacity: .7; 116 | } 117 | 118 | .token.property, 119 | .token.tag, 120 | .token.boolean, 121 | .token.number, 122 | .token.constant, 123 | .token.symbol, 124 | .token.deleted { 125 | color: #905; 126 | } 127 | 128 | .token.selector, 129 | .token.attr-name, 130 | .token.string, 131 | .token.char, 132 | .token.builtin, 133 | .token.inserted { 134 | color: #690; 135 | } 136 | 137 | .token.operator, 138 | .token.entity, 139 | .token.url, 140 | .language-css .token.string, 141 | .style .token.string { 142 | color: #9a6e3a; 143 | background: hsla(0, 0%, 100%, .5); 144 | } 145 | 146 | .token.atrule, 147 | .token.attr-value, 148 | .token.keyword { 149 | color: #07a; 150 | } 151 | 152 | .token.function, 153 | .token.class-name { 154 | color: #DD4A68; 155 | } 156 | 157 | .token.regex, 158 | .token.important, 159 | .token.variable { 160 | color: #e90; 161 | } 162 | 163 | .token.important, 164 | .token.bold { 165 | font-weight: bold; 166 | } 167 | .token.italic { 168 | font-style: italic; 169 | } 170 | 171 | .token.entity { 172 | cursor: help; 173 | } 174 | 175 | pre[class*="language-"].line-numbers { 176 | position: relative; 177 | padding-left: 3.8em; 178 | counter-reset: linenumber; 179 | } 180 | 181 | pre[class*="language-"].line-numbers > code { 182 | position: relative; 183 | white-space: inherit; 184 | } 185 | 186 | .line-numbers .line-numbers-rows { 187 | position: absolute; 188 | pointer-events: none; 189 | top: 0; 190 | font-size: 100%; 191 | left: -3.8em; 192 | width: 3em; /* works for line-numbers below 1000 lines */ 193 | letter-spacing: -1px; 194 | border-right: 1px solid #999; 195 | 196 | -webkit-user-select: none; 197 | -moz-user-select: none; 198 | -ms-user-select: none; 199 | user-select: none; 200 | 201 | } 202 | 203 | .line-numbers-rows > span { 204 | pointer-events: none; 205 | display: block; 206 | counter-increment: linenumber; 207 | } 208 | 209 | .line-numbers-rows > span:before { 210 | content: counter(linenumber); 211 | color: #999; 212 | display: block; 213 | padding-right: 0.8em; 214 | text-align: right; 215 | } 216 | 217 | div.code-toolbar { 218 | position: relative; 219 | } 220 | 221 | div.code-toolbar > .toolbar { 222 | position: absolute; 223 | top: .3em; 224 | right: .2em; 225 | transition: opacity 0.3s ease-in-out; 226 | opacity: 0; 227 | } 228 | 229 | div.code-toolbar:hover > .toolbar { 230 | opacity: 1; 231 | } 232 | 233 | div.code-toolbar > .toolbar .toolbar-item { 234 | display: inline-block; 235 | } 236 | 237 | div.code-toolbar > .toolbar a { 238 | cursor: pointer; 239 | } 240 | 241 | div.code-toolbar > .toolbar button { 242 | background: none; 243 | border: 0; 244 | color: inherit; 245 | font: inherit; 246 | line-height: normal; 247 | overflow: visible; 248 | padding: 0; 249 | -webkit-user-select: none; /* for button */ 250 | -moz-user-select: none; 251 | -ms-user-select: none; 252 | } 253 | 254 | div.code-toolbar > .toolbar a, 255 | div.code-toolbar > .toolbar button, 256 | div.code-toolbar > .toolbar span { 257 | color: #bbb; 258 | font-size: .8em; 259 | padding: 0 .5em; 260 | background: #f5f2f0; 261 | background: rgba(224, 224, 224, 0.2); 262 | box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); 263 | border-radius: .5em; 264 | } 265 | 266 | div.code-toolbar > .toolbar a:hover, 267 | div.code-toolbar > .toolbar a:focus, 268 | div.code-toolbar > .toolbar button:hover, 269 | div.code-toolbar > .toolbar button:focus, 270 | div.code-toolbar > .toolbar span:hover, 271 | div.code-toolbar > .toolbar span:focus { 272 | color: inherit; 273 | text-decoration: none; 274 | } 275 | -------------------------------------------------------------------------------- /JS/jquery.pjax.min.js: -------------------------------------------------------------------------------- 1 | !function(t){function e(e,a,r){return r=m(a,r),this.on("click.pjax",e,function(e){var a=r;a.container||(a=t.extend({},r),a.container=t(this).attr("data-pjax")),n(e,a)})}function n(e,n,a){a=m(n,a);var i=e.currentTarget,o=t(i);if("A"!==i.tagName.toUpperCase())throw"$.fn.pjax or $.pjax.click requires an anchor element";if(!(e.which>1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||location.protocol!==i.protocol||location.hostname!==i.hostname||i.href.indexOf("#")>-1&&h(i)==h(location)||e.isDefaultPrevented())){var c={url:i.href,container:o.attr("data-pjax"),target:i},s=t.extend({},c,a),u=t.Event("pjax:click");o.trigger(u,[s]),u.isDefaultPrevented()||(r(s),e.preventDefault(),o.trigger("pjax:clicked",[s]))}}function a(e,n,a){a=m(n,a);var i=e.currentTarget,o=t(i);if("FORM"!==i.tagName.toUpperCase())throw"$.pjax.submit requires a form element";var c={type:(o.attr("method")||"GET").toUpperCase(),url:o.attr("action"),container:o.attr("data-pjax"),target:i};if("GET"!==c.type&&void 0!==window.FormData)c.data=new FormData(i),c.processData=!1,c.contentType=!1;else{if(o.find(":file").length)return;c.data=o.serializeArray()}r(t.extend({},c,a)),e.preventDefault()}function r(e){function n(n,a,r){r||(r={}),r.relatedTarget=e.target;var i=t.Event(n,r);return c.trigger(i,a),!i.isDefaultPrevented()}e=t.extend(!0,{},t.ajaxSettings,r.defaults,e),t.isFunction(e.url)&&(e.url=e.url());var a=f(e.url).hash,i=t.type(e.container);if("string"!==i)throw"expected string value for 'container' option; got "+i;var c=e.context=t(e.container);if(!c.length)throw"the container selector '"+e.container+"' did not match anything";e.data||(e.data={}),t.isArray(e.data)?e.data.push({name:"_pjax",value:e.container}):e.data._pjax=e.container;var s;e.beforeSend=function(t,r){if("GET"!==r.type&&(r.timeout=0),t.setRequestHeader("X-PJAX","true"),t.setRequestHeader("X-PJAX-Container",e.container),!n("pjax:beforeSend",[t,r]))return!1;r.timeout>0&&(s=setTimeout(function(){n("pjax:timeout",[t,e])&&t.abort("timeout")},r.timeout),r.timeout=0);var i=f(r.url);a&&(i.hash=a),e.requestUrl=d(i)},e.complete=function(t,a){s&&clearTimeout(s),n("pjax:complete",[t,a,e]),n("pjax:end",[t,e])},e.error=function(t,a,r){var i=g("",t,e),c=n("pjax:error",[t,a,r,e]);"GET"==e.type&&"abort"!==a&&c&&o(i.url)},e.success=function(i,s,u){var p=r.state,d="function"==typeof t.pjax.defaults.version?t.pjax.defaults.version():t.pjax.defaults.version,h=u.getResponseHeader("X-PJAX-Version"),m=g(i,u,e),v=f(m.url);if(a&&(v.hash=a,m.url=v.href),d&&h&&d!==h)return void o(m.url);if(!m.contents)return void o(m.url);r.state={id:e.id||l(),url:m.url,title:m.title,container:e.container,fragment:e.fragment,timeout:e.timeout},(e.push||e.replace)&&window.history.replaceState(r.state,m.title,m.url);var x=t.contains(c,document.activeElement);if(x)try{document.activeElement.blur()}catch(t){}m.title&&(document.title=m.title),n("pjax:beforeReplace",[m.contents,e],{state:r.state,previousState:p}),c.html(m.contents);var j=c.find("input[autofocus], textarea[autofocus]").last()[0];j&&document.activeElement!==j&&j.focus(),y(m.scripts);var w=e.scrollTo;if(a){var b=decodeURIComponent(a.slice(1)),T=document.getElementById(b)||document.getElementsByName(b)[0];T&&(w=t(T).offset().top)}"number"==typeof w&&t(window).scrollTop(w),n("pjax:success",[i,s,u,e])},r.state||(r.state={id:l(),url:window.location.href,title:document.title,container:e.container,fragment:e.fragment,timeout:e.timeout},window.history.replaceState(r.state,document.title)),u(r.xhr),r.options=e;var h=r.xhr=t.ajax(e);return h.readyState>0&&(e.push&&!e.replace&&(j(r.state.id,[e.container,p(c)]),window.history.pushState(null,"",e.requestUrl)),n("pjax:start",[h,e]),n("pjax:send",[h,e])),r.xhr}function i(e,n){var a={url:window.location.href,push:!1,replace:!0,scrollTo:!1};return r(t.extend(a,m(e,n)))}function o(t){window.history.replaceState(null,"",r.state.url),window.location.replace(t)}function c(e){P||u(r.xhr);var n,a=r.state,i=e.state;if(i&&i.container){if(P&&C==i.url)return;if(a){if(a.id===i.id)return;n=a.id",{method:"GET"===a?"GET":"POST",action:n,style:"display:none"});"GET"!==a&&"POST"!==a&&r.append(t("",{type:"hidden",name:"_method",value:a.toLowerCase()}));var i=e.data;if("string"==typeof i)t.each(i.split("&"),function(e,n){var a=n.split("=");r.append(t("",{type:"hidden",name:a[0],value:a[1]}))});else if(t.isArray(i))t.each(i,function(e,n){r.append(t("",{type:"hidden",name:n.name,value:n.value}))});else if("object"==typeof i){var o;for(o in i)r.append(t("",{type:"hidden",name:o,value:i[o]}))}t(document.body).append(r),r.submit()}function u(e){e&&e.readyState<4&&(e.onreadystatechange=t.noop,e.abort())}function l(){return(new Date).getTime()}function p(e){var n=e.clone();return n.find("script").each(function(){this.src||t._data(this,"globalEval",!1)}),n.contents()}function d(t){return t.search=t.search.replace(/([?&])(_pjax|_)=[^&]*/g,"").replace(/^&/,""),t.href.replace(/\?($|#)/,"$1")}function f(t){var e=document.createElement("a");return e.href=t,e}function h(t){return t.href.replace(/#.*/,"")}function m(e,n){return e&&n?(n=t.extend({},n),n.container=e,n):t.isPlainObject(e)?e:{container:e}}function v(t,e){return t.filter(e).add(t.find(e))}function x(e){return t.parseHTML(e,document,!0)}function g(e,n,a){var r={},i=/]*>([\s\S.]*)<\/body>/i)[0]));var u=e.match(/]*>([\s\S.]*)<\/head>/i);c=null!=u?t(x(u[0])):s}else c=s=t(x(e));if(0===s.length)return r;if(r.title=v(c,"title").last().text(),a.fragment){var l=s;"body"!==a.fragment&&(l=v(l,a.fragment).first()),l.length&&(r.contents="body"===a.fragment?l:l.contents(),r.title||(r.title=l.attr("title")||l.data("title")))}else i||(r.contents=s);return r.contents&&(r.contents=r.contents.not(function(){return t(this).is("title")}),r.contents.find("title").remove(),r.scripts=v(r.contents,"script[src]").remove(),r.contents=r.contents.not(r.scripts)),r.title&&(r.title=t.trim(r.title)),r}function y(e){if(e){var n=t("script[src]");e.each(function(){var e=this.src,a=n.filter(function(){return this.src===e});if(!a.length){var r=document.createElement("script"),i=t(this).attr("type");i&&(r.type=i),r.src=t(this).attr("src"),document.head.appendChild(r)}})}}function j(t,e){D[t]=e,U.push(t),b(R,0),b(U,r.defaults.maxCacheLength)}function w(t,e,n){var a,i;D[e]=n,"forward"===t?(a=U,i=R):(a=R,i=U),a.push(e),e=i.pop(),e&&delete D[e],b(a,r.defaults.maxCacheLength)}function b(t,e){for(;t.length>e;)delete D[t.shift()]}function T(){return t("meta").filter(function(){var e=t(this).attr("http-equiv");return e&&"X-PJAX-VERSION"===e.toUpperCase()}).attr("content")}function E(){t.fn.pjax=e,t.pjax=r,t.pjax.enable=t.noop,t.pjax.disable=S,t.pjax.click=n,t.pjax.submit=a,t.pjax.reload=i,t.pjax.defaults={timeout:650,push:!0,replace:!1,type:"GET",dataType:"html",scrollTo:0,maxCacheLength:20,version:T},t(window).on("popstate.pjax",c)}function S(){t.fn.pjax=function(){return this},t.pjax=s,t.pjax.enable=E,t.pjax.disable=t.noop,t.pjax.click=t.noop,t.pjax.submit=t.noop,t.pjax.reload=function(){window.location.reload()},t(window).off("popstate.pjax",c)}var P=!0,C=window.location.href,A=window.history.state;A&&A.container&&(r.state=A),"state"in window.history&&(P=!1);var D={},R=[],U=[];t.event.props&&t.inArray("state",t.event.props)<0?t.event.props.push("state"):"state"in t.Event.prototype||t.event.addProp("state"),t.support.pjax=window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),t.support.pjax?E():S()}(jQuery); 2 | //# sourceMappingURL=jquery.pjax.min.js.map -------------------------------------------------------------------------------- /JS/X.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @file X.js 3 | * @author youranreus 4 | */ 5 | 6 | //移动端Hover补偿 7 | var mobileHover = function () { 8 |     $('*').on('touchstart', function () { 9 |         $(this).trigger('hover'); 10 |     }).on('touchend', function () { 11 |         $(this).trigger('hover'); 12 |     }); 13 | }; 14 | 15 | //pjax 刷新 16 | $(document).pjax('a:not(a[target="_blank"], a[no-pjax])', { 17 | container: '#pjax-container', 18 | fragment: '#pjax-container', 19 | timeout: 8000 20 | }).on('pjax:send',function () {pjax_send();}).on('pjax:complete',function() {pjax_complete();}).on('pjax:click',function() {pjax_click();}); 21 | 22 | function pjax_click(){ 23 | //结束aplayer进程 24 | if (typeof aplayers !== 'undefined'){ 25 | for (var i = 0; i < aplayers.length; i++) { 26 | try {aplayers[i].destroy()} catch(e){} 27 | } 28 | } 29 | } 30 | 31 | function pjax_send(){ 32 | $("#M").addClass("opacity-disappear"); 33 | } 34 | 35 | function pjax_complete(){ 36 | //Prism重启 37 | if (typeof Prism !== 'undefined') { 38 | Prism.highlightAll(true,null); 39 | } 40 | //Meting重启 41 | var isFunction =false; 42 | try{ 43 | isFunction = typeof(eval('loadMeting'))=="function"; 44 | }catch(e){} 45 | if(isFunction) { 46 | loadMeting(); 47 | }else{} 48 | 49 | 50 | //显示主页面 51 | $("#M").addClass("opacity-show"); 52 | PreFancybox(); 53 | ajaxc(); 54 | } 55 | 56 | function PreFancybox(){ 57 | $("#post img").each(function(){ 58 | $(this).wrap(function(){ 59 | if($(this).is(".bq")) 60 | { 61 | return ''; 62 | } 63 | if($(this).is("#feedme-content img")) 64 | { 65 | return ''; 66 | } 67 | return ''; 68 | }) 69 | }); 70 | } 71 | 72 | function show_site_runtime(bdate){ 73 | window.setTimeout("show_site_runtime('" +bdate + "')",1000); 74 | X=new Date(bdate); 75 | Y=new Date(); 76 | T=(Y.getTime()-X.getTime()); 77 | i=24*60*60*1000; 78 | d=T/i; 79 | D=Math.floor(d); 80 | h=(d-D)*24; 81 | H=Math.floor(h); 82 | m=(h-H)*60; 83 | M=Math.floor(m); 84 | s=(m-M)*60 85 | S=Math.floor(s); 86 | site_runtime.innerHTML= D + "" + H + "小时" + M + "" + S + "" 87 | } 88 | 89 | //赞赏按钮 90 | function feedme_show(){ 91 | if($("#feedme-content").css("display")=='none'){ 92 | $("#feedme-content").slideDown(); 93 | }else{ 94 | $("#feedme-content").slideUp(); 95 | } 96 | } 97 | //OwO设置 98 | Smilies = { 99 | dom: function(id) { 100 | return document.getElementById(id); 101 | }, 102 | grin: function(tag) { 103 | tag = ' ' + tag + ' '; 104 | myField = this.dom("textarea"); 105 | document.selection ? (myField.focus(), sel = document.selection.createRange(), sel.text = tag, myField.focus()) : this.insertTag(tag); 106 | }, 107 | insertTag: function(tag) { 108 | myField = Smilies.dom("textarea"); 109 | 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()); 110 | } 111 | } 112 | //OwO开关 113 | function OwO_show(){ 114 | if($("#OwO-container").css("display")=='none'){ 115 | $("#OwO-container").slideDown(); 116 | }else{ 117 | $("#OwO-container").slideUp(); 118 | } 119 | } 120 | 121 | 122 | function gototop(){ 123 | 124 | $('body,html').animate({scrollTop:0},500); 125 | return false; 126 | } 127 | 128 | 129 | 130 | 131 | //ajax评论 132 | function ajaxc(){ 133 | var replyTo = '', //回复评论时候的ID 134 | submitButton = $(".submit").eq(0), //提交评论按钮 135 | commentForm = $("#comment-form"), //评论表单 136 | newCommentId = ""; //新评论的ID 137 | var bindButton = function () { 138 | $(".comment-reply a").click(function () { 139 | replyTo = $(this).parent().parent().parent().attr("id"); 140 | }); 141 | $(".cancel-comment-reply a").click(function () { replyTo = ''; }); 142 | }; 143 | bindButton(); 144 | 145 | /** 146 | * 发送前的处理 147 | */ 148 | function beforeSendComment() { 149 | NProgress.start(); 150 | $(".submit").fadeOut(); 151 | $("#OwO-container").slideUp(); 152 | } 153 | 154 | /** 155 | * 发送后的处理 156 | * @param {boolean} ok 157 | */ 158 | function afterSendComment(ok) { 159 | if (ok) { 160 | $("#textarea").val(''); 161 | replyTo = ''; 162 | } 163 | bindButton(); 164 | } 165 | $("#comment-form").submit(function () { 166 | commentData = $(this).serializeArray(); 167 | // replyAuthor = $("#comment-" + commentData[3]['value']).find(".comment-inner").find(".comment-author").find('span').find('a').html(); 168 | // commentData[1]['value'] = '@' + replyAuthor + ' ' + commentData[1]['value']; 169 | beforeSendComment(); 170 | $.ajax({ 171 | type: $(this).attr('method'), 172 | url: $(this).attr('action'), 173 | data: commentData, 174 | error: function (e) { 175 | NProgress.done(); 176 | console.log('Ajax Comment Error'); 177 | window.location.reload(); 178 | }, 179 | success: function (data) { 180 | if (!$('#comments', data).length) { 181 | NProgress.done(); 182 | var msg = $('title').eq(0).text().trim().toLowerCase() === 'error' ? $('.container', data).eq(0).text() : '评论提交失败!'; 183 | toastr.warning(msg, 'QAQ', {"iconClass": 'customer-warn'}); 184 | $(".submit").fadeIn(); 185 | afterSendComment(false); 186 | return false; 187 | } 188 | 189 | $("input,textarea", commentForm).attr('disabled', false); 190 | $("#textarea").val(''); 191 | 192 | var newComment; 193 | newCommentId = $(".comment-list", data).html().match(/id=\"?comment-\d+/g).join().match(/\d+/g).sort(function (a, b) { return a - b }).pop(); 194 | if('' === replyTo) { 195 | if(!$('.comment-list').length) { 196 | newComment = $("#li-comment-" + newCommentId, data); 197 | $('.comments-header').after('
      '); 198 | $('.comment-list').first().prepend((newComment).addClass('animated fadeInUp')); 199 | } 200 | else if($('.prev').length) { 201 | $('#page-nav ul li a').eq(1).click(); 202 | } 203 | else { 204 | newComment = $("#li-comment-" + newCommentId, data); 205 | $('.comment-list').first().prepend((newComment).addClass('animated fadeInUp')); 206 | } 207 | var response = $('#response'); 208 | if (response.length) { 209 | var responseTop = response.offset().top; 210 | $('html,body').animate({scrollTop: responseTop - 100},1000); 211 | } 212 | } 213 | else { 214 | newComment = $("#li-comment-" + newCommentId, data); 215 | if ($('#' + replyTo).find('.comment-children').length) { 216 | $('#' + replyTo + ' .comment-children .comment-list').first().prepend((newComment).addClass('animated fadeInUp')); 217 | TypechoComment.cancelReply(); 218 | } 219 | else { 220 | $('#' + replyTo).append('
        '); 221 | $('#' + replyTo + ' .comment-children .comment-list').first().prepend((newComment).addClass('animated fadeInUp')); 222 | TypechoComment.cancelReply(); 223 | } 224 | } 225 | NProgress.done(true); 226 | afterSendComment(true); 227 | 228 | }, 229 | error:function(){ 230 | NProgress.done(); 231 | $(".submit").fadeIn(); 232 | }, 233 | complete:function(){ 234 | NProgress.done(); 235 | $(".submit").fadeIn(); 236 | } 237 | }); 238 | return false; 239 | }); 240 | } 241 | 242 | $(window).scroll(function(){if($(this).scrollTop()>200){$("#m_top").fadeIn(100)}else{$("#m_top").fadeOut(200)}}); 243 | 244 | console.info(" %c made by psyDuck %c https://psyduck.liujiayang.cn/",'color: #fadfa3; background: #030307; padding:5px 0;', 'color: #fadfa3; background: #fadfa3; padding:5px 0;'); -------------------------------------------------------------------------------- /JS/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v2.0.0 3 | * https://zenorocha.github.io/clipboard.js 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([function(t,e,n){var o,r,i;!function(a,c){r=[t,n(7)],o=c,void 0!==(i="function"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(t){return t&&t.__esModule?t:{default:t}}(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=a})},function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return r(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(6),u=n(5);t.exports=o},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){r.off(t,o),e.apply(n,arguments)}var r=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;for(o;o0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,f.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},function(t,e){function n(t,e){for(;t&&t.nodeType!==o;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=n},function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function r(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,r,i)}))}function i(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(4);t.exports=r},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e){function n(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}t.exports=n}])}); -------------------------------------------------------------------------------- /owo.php: -------------------------------------------------------------------------------- 1 | 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 |
        • 79 |
        • 80 |
        • 81 |
        • 82 |
        • 83 |
        • 84 |
        • 85 |
        • 86 |
        • 87 |
        • 88 |
        • 89 |
        • 90 |
        • 91 |
        • 92 |
        • 93 |
        • 94 |
        95 |
        96 |
        97 | -------------------------------------------------------------------------------- /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)}} -------------------------------------------------------------------------------- /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: 'ease', 22 | positionUsing: '', 23 | speed: 200, 24 | trickle: true, 25 | trickleRate: 0.02, 26 | trickleSpeed: 800, 27 | showSpinner: true, 28 | barSelector: '[role="bar"]', 29 | spinnerSelector: '[role="spinner"]', 30 | parent: 'body', 31 | template: '
        ' 32 | }; 33 | 34 | /** 35 | * Updates configuration. 36 | * 37 | * NProgress.configure({ 38 | * minimum: 0.1 39 | * }); 40 | */ 41 | NProgress.configure = function(options) { 42 | var key, value; 43 | for (key in options) { 44 | value = options[key]; 45 | if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value; 46 | } 47 | 48 | return this; 49 | }; 50 | 51 | /** 52 | * Last number. 53 | */ 54 | 55 | NProgress.status = null; 56 | 57 | /** 58 | * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`. 59 | * 60 | * NProgress.set(0.4); 61 | * NProgress.set(1.0); 62 | */ 63 | 64 | NProgress.set = function(n) { 65 | var started = NProgress.isStarted(); 66 | 67 | n = clamp(n, Settings.minimum, 1); 68 | NProgress.status = (n === 1 ? null : n); 69 | 70 | var progress = NProgress.render(!started), 71 | bar = progress.querySelector(Settings.barSelector), 72 | speed = Settings.speed, 73 | ease = Settings.easing; 74 | 75 | progress.offsetWidth; /* Repaint */ 76 | 77 | queue(function(next) { 78 | // Set positionUsing if it hasn't already been set 79 | if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS(); 80 | 81 | // Add transition 82 | css(bar, barPositionCSS(n, speed, ease)); 83 | 84 | if (n === 1) { 85 | // Fade out 86 | css(progress, { 87 | transition: 'none', 88 | opacity: 1 89 | }); 90 | progress.offsetWidth; /* Repaint */ 91 | 92 | setTimeout(function() { 93 | css(progress, { 94 | transition: 'all ' + speed + 'ms linear', 95 | opacity: 0 96 | }); 97 | setTimeout(function() { 98 | NProgress.remove(); 99 | next(); 100 | }, speed); 101 | }, speed); 102 | } else { 103 | setTimeout(next, speed); 104 | } 105 | }); 106 | 107 | return this; 108 | }; 109 | 110 | NProgress.isStarted = function() { 111 | return typeof NProgress.status === 'number'; 112 | }; 113 | 114 | /** 115 | * Shows the progress bar. 116 | * This is the same as setting the status to 0%, except that it doesn't go backwards. 117 | * 118 | * NProgress.start(); 119 | * 120 | */ 121 | NProgress.start = function() { 122 | if (!NProgress.status) NProgress.set(0); 123 | 124 | var work = function() { 125 | setTimeout(function() { 126 | if (!NProgress.status) return; 127 | NProgress.trickle(); 128 | work(); 129 | }, Settings.trickleSpeed); 130 | }; 131 | 132 | if (Settings.trickle) work(); 133 | 134 | return this; 135 | }; 136 | 137 | /** 138 | * Hides the progress bar. 139 | * This is the *sort of* the same as setting the status to 100%, with the 140 | * difference being `done()` makes some placebo effect of some realistic motion. 141 | * 142 | * NProgress.done(); 143 | * 144 | * If `true` is passed, it will show the progress bar even if its hidden. 145 | * 146 | * NProgress.done(true); 147 | */ 148 | 149 | NProgress.done = function(force) { 150 | if (!force && !NProgress.status) return this; 151 | 152 | return NProgress.inc(0.3 + 0.5 * Math.random()).set(1); 153 | }; 154 | 155 | /** 156 | * Increments by a random amount. 157 | */ 158 | 159 | NProgress.inc = function(amount) { 160 | var n = NProgress.status; 161 | 162 | if (!n) { 163 | return NProgress.start(); 164 | } else { 165 | if (typeof amount !== 'number') { 166 | amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95); 167 | } 168 | 169 | n = clamp(n + amount, 0, 0.994); 170 | return NProgress.set(n); 171 | } 172 | }; 173 | 174 | NProgress.trickle = function() { 175 | return NProgress.inc(Math.random() * Settings.trickleRate); 176 | }; 177 | 178 | /** 179 | * Waits for all supplied jQuery promises and 180 | * increases the progress as the promises resolve. 181 | * 182 | * @param $promise jQUery Promise 183 | */ 184 | (function() { 185 | var initial = 0, current = 0; 186 | 187 | NProgress.promise = function($promise) { 188 | if (!$promise || $promise.state() === "resolved") { 189 | return this; 190 | } 191 | 192 | if (current === 0) { 193 | NProgress.start(); 194 | } 195 | 196 | initial++; 197 | current++; 198 | 199 | $promise.always(function() { 200 | current--; 201 | if (current === 0) { 202 | initial = 0; 203 | NProgress.done(); 204 | } else { 205 | NProgress.set((initial - current) / initial); 206 | } 207 | }); 208 | 209 | return this; 210 | }; 211 | 212 | })(); 213 | 214 | /** 215 | * (Internal) renders the progress bar markup based on the `template` 216 | * setting. 217 | */ 218 | 219 | NProgress.render = function(fromStart) { 220 | if (NProgress.isRendered()) return document.getElementById('nprogress'); 221 | 222 | addClass(document.documentElement, 'nprogress-busy'); 223 | 224 | var progress = document.createElement('div'); 225 | progress.id = 'nprogress'; 226 | progress.innerHTML = Settings.template; 227 | 228 | var bar = progress.querySelector(Settings.barSelector), 229 | perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0), 230 | parent = document.querySelector(Settings.parent), 231 | spinner; 232 | 233 | css(bar, { 234 | transition: 'all 0 linear', 235 | transform: 'translate3d(' + perc + '%,0,0)' 236 | }); 237 | 238 | if (!Settings.showSpinner) { 239 | spinner = progress.querySelector(Settings.spinnerSelector); 240 | spinner && removeElement(spinner); 241 | } 242 | 243 | if (parent != document.body) { 244 | addClass(parent, 'nprogress-custom-parent'); 245 | } 246 | 247 | parent.appendChild(progress); 248 | return progress; 249 | }; 250 | 251 | /** 252 | * Removes the element. Opposite of render(). 253 | */ 254 | 255 | NProgress.remove = function() { 256 | removeClass(document.documentElement, 'nprogress-busy'); 257 | removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent'); 258 | var progress = document.getElementById('nprogress'); 259 | progress && removeElement(progress); 260 | }; 261 | 262 | /** 263 | * Checks if the progress bar is rendered. 264 | */ 265 | 266 | NProgress.isRendered = function() { 267 | return !!document.getElementById('nprogress'); 268 | }; 269 | 270 | /** 271 | * Determine which positioning CSS rule to use. 272 | */ 273 | 274 | NProgress.getPositioningCSS = function() { 275 | // Sniff on document.body.style 276 | var bodyStyle = document.body.style; 277 | 278 | // Sniff prefixes 279 | var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' : 280 | ('MozTransform' in bodyStyle) ? 'Moz' : 281 | ('msTransform' in bodyStyle) ? 'ms' : 282 | ('OTransform' in bodyStyle) ? 'O' : ''; 283 | 284 | if (vendorPrefix + 'Perspective' in bodyStyle) { 285 | // Modern browsers with 3D support, e.g. Webkit, IE10 286 | return 'translate3d'; 287 | } else if (vendorPrefix + 'Transform' in bodyStyle) { 288 | // Browsers without 3D support, e.g. IE9 289 | return 'translate'; 290 | } else { 291 | // Browsers without translate() support, e.g. IE7-8 292 | return 'margin'; 293 | } 294 | }; 295 | 296 | /** 297 | * Helpers 298 | */ 299 | 300 | function clamp(n, min, max) { 301 | if (n < min) return min; 302 | if (n > max) return max; 303 | return n; 304 | } 305 | 306 | /** 307 | * (Internal) converts a percentage (`0..1`) to a bar translateX 308 | * percentage (`-100%..0%`). 309 | */ 310 | 311 | function toBarPerc(n) { 312 | return (-1 + n) * 100; 313 | } 314 | 315 | 316 | /** 317 | * (Internal) returns the correct CSS for changing the bar's 318 | * position given an n percentage, and speed and ease from Settings 319 | */ 320 | 321 | function barPositionCSS(n, speed, ease) { 322 | var barCSS; 323 | 324 | if (Settings.positionUsing === 'translate3d') { 325 | barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' }; 326 | } else if (Settings.positionUsing === 'translate') { 327 | barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' }; 328 | } else { 329 | barCSS = { 'margin-left': toBarPerc(n)+'%' }; 330 | } 331 | 332 | barCSS.transition = 'all '+speed+'ms '+ease; 333 | 334 | return barCSS; 335 | } 336 | 337 | /** 338 | * (Internal) Queues a function to be executed. 339 | */ 340 | 341 | var queue = (function() { 342 | var pending = []; 343 | 344 | function next() { 345 | var fn = pending.shift(); 346 | if (fn) { 347 | fn(next); 348 | } 349 | } 350 | 351 | return function(fn) { 352 | pending.push(fn); 353 | if (pending.length == 1) next(); 354 | }; 355 | })(); 356 | 357 | /** 358 | * (Internal) Applies css properties to an element, similar to the jQuery 359 | * css method. 360 | * 361 | * While this helper does assist with vendor prefixed property names, it 362 | * does not perform any manipulation of values prior to setting styles. 363 | */ 364 | 365 | var css = (function() { 366 | var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ], 367 | cssProps = {}; 368 | 369 | function camelCase(string) { 370 | return string.replace(/^-ms-/, 'ms-').replace(/-([\da-z])/gi, function(match, letter) { 371 | return letter.toUpperCase(); 372 | }); 373 | } 374 | 375 | function getVendorProp(name) { 376 | var style = document.body.style; 377 | if (name in style) return name; 378 | 379 | var i = cssPrefixes.length, 380 | capName = name.charAt(0).toUpperCase() + name.slice(1), 381 | vendorName; 382 | while (i--) { 383 | vendorName = cssPrefixes[i] + capName; 384 | if (vendorName in style) return vendorName; 385 | } 386 | 387 | return name; 388 | } 389 | 390 | function getStyleProp(name) { 391 | name = camelCase(name); 392 | return cssProps[name] || (cssProps[name] = getVendorProp(name)); 393 | } 394 | 395 | function applyCss(element, prop, value) { 396 | prop = getStyleProp(prop); 397 | element.style[prop] = value; 398 | } 399 | 400 | return function(element, properties) { 401 | var args = arguments, 402 | prop, 403 | value; 404 | 405 | if (args.length == 2) { 406 | for (prop in properties) { 407 | value = properties[prop]; 408 | if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value); 409 | } 410 | } else { 411 | applyCss(element, args[1], args[2]); 412 | } 413 | } 414 | })(); 415 | 416 | /** 417 | * (Internal) Determines if an element or space separated list of class names contains a class name. 418 | */ 419 | 420 | function hasClass(element, name) { 421 | var list = typeof element == 'string' ? element : classList(element); 422 | return list.indexOf(' ' + name + ' ') >= 0; 423 | } 424 | 425 | /** 426 | * (Internal) Adds a class to an element. 427 | */ 428 | 429 | function addClass(element, name) { 430 | var oldList = classList(element), 431 | newList = oldList + name; 432 | 433 | if (hasClass(oldList, name)) return; 434 | 435 | // Trim the opening space. 436 | element.className = newList.substring(1); 437 | } 438 | 439 | /** 440 | * (Internal) Removes a class from an element. 441 | */ 442 | 443 | function removeClass(element, name) { 444 | var oldList = classList(element), 445 | newList; 446 | 447 | if (!hasClass(element, name)) return; 448 | 449 | // Replace the class name. 450 | newList = oldList.replace(' ' + name + ' ', ' '); 451 | 452 | // Trim the opening and closing spaces. 453 | element.className = newList.substring(1, newList.length - 1); 454 | } 455 | 456 | /** 457 | * (Internal) Gets a space separated list of the class names on the element. 458 | * The list is wrapped with a single space on each end to facilitate finding 459 | * matches within the list. 460 | */ 461 | 462 | function classList(element) { 463 | return (' ' + (element.className || '') + ' ').replace(/\s+/gi, ' '); 464 | } 465 | 466 | /** 467 | * (Internal) Removes an element from the DOM. 468 | */ 469 | 470 | function removeElement(element) { 471 | element && element.parentNode && element.parentNode.removeChild(element); 472 | } 473 | 474 | return NProgress; 475 | }); 476 | 477 | -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | "; 5 | echo " 6 |
        7 |
        8 |
        9 |

        主题设置

        10 |
        11 |
        12 |
        "; 13 | $favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, NULL, _t('图标') , _t('')); 14 | $form->addInput($favicon); 15 | $beian = new Typecho_Widget_Helper_Form_Element_Text('beian', NULL, NULL, _t('备案号') , _t('')); 16 | $form->addInput($beian); 17 | $builtTime = new Typecho_Widget_Helper_Form_Element_Text('builtTime', NULL, NULL, _t('博客建立时间') , _t('格式YYYY-MM-DD')); 18 | $form->addInput($builtTime); 19 | $animateTime = new Typecho_Widget_Helper_Form_Element_Text('animateTime', NULL, NULL, _t('动画过渡时间') , _t('格式 1s')); 20 | $form->addInput($animateTime); 21 | $feedIMG = new Typecho_Widget_Helper_Form_Element_Text('feedIMG', NULL, NULL, _t('打赏二维码图片') , _t('如果没有就算啦,反正不会有人赞赏的')); 22 | $form->addInput($feedIMG); 23 | $navPosition = new Typecho_Widget_Helper_Form_Element_Radio('navPosition', array( 24 | '0' => _t('置底'), 25 | '1' => _t('置顶') 26 | ) , '0', _t('导航栏位置') , _t('默认置底')); 27 | $form->addInput($navPosition); 28 | $pageShadow = new Typecho_Widget_Helper_Form_Element_Radio('pageShadow', array( 29 | '0' => _t('关闭'), 30 | '1' => _t('开启') 31 | ) , '0', _t('页角阴影') , _t('默认关闭')); 32 | $form->addInput($pageShadow); 33 | $upyun = new Typecho_Widget_Helper_Form_Element_Radio('upyun', array( 34 | '0' => _t('否'), 35 | '1' => _t('是') 36 | ) , '0', _t('又拍云联盟') , _t('默认否')); 37 | $form->addInput($upyun); 38 | 39 | } 40 | 41 | require_once __DIR__ . '/lib/shortcode.php'; 42 | 43 | 44 | /** 45 | * 网站运行时间 46 | * 47 | * @access public 48 | * @param mixed $arg1 49 | */ 50 | function getBuildTime($builtTime) { 51 | echo $builtTime; 52 | } 53 | 54 | 55 | /** 56 | * 文章阅读次数 57 | * 58 | * @access public 59 | * @param mixed 60 | * @return 61 | */ 62 | function get_post_view($archive) 63 | { 64 | $cid = $archive->cid; 65 | $db = Typecho_Db::get(); 66 | $prefix = $db->getPrefix(); 67 | if (!array_key_exists('views', $db->fetchRow($db->select()->from('table.contents')))) { 68 | $db->query('ALTER TABLE `' . $prefix . 'contents` ADD `views` INT(10) DEFAULT 0;'); 69 | echo 0; 70 | return; 71 | } 72 | $row = $db->fetchRow($db->select('views')->from('table.contents')->where('cid = ?', $cid)); 73 | if ($archive->is('single')) { 74 | $views = Typecho_Cookie::get('extend_contents_views'); 75 | if(empty($views)){ 76 | $views = array(); 77 | }else{ 78 | $views = explode(',', $views); 79 | } 80 | if(!in_array($cid,$views)){ 81 | $db->query($db->update('table.contents')->rows(array('views' => (int) $row['views'] + 1))->where('cid = ?', $cid)); 82 | array_push($views, $cid); 83 | $views = implode(',', $views); 84 | Typecho_Cookie::set('extend_contents_views', $views); //记录查看cookie 85 | } 86 | } 87 | echo $row['views']; 88 | } 89 | 90 | 91 | /** 92 | * 通过id获取文章信息 93 | * 94 | * @access public 95 | * @param mixed 96 | * @return 97 | */ 98 | 99 | function GetPostById($id){ 100 | 101 | $db = Typecho_Db::get(); 102 | $result = $db->fetchAll($db->select()->from('table.contents') 103 | ->where('status = ?','publish') 104 | ->where('type = ?', 'post') 105 | ->where('cid = ?',$id) 106 | ); 107 | if($result){ 108 | $i=1; 109 | foreach($result as $val){ 110 | $val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val); 111 | $post_title = htmlspecialchars($val['title']); 112 | $post_permalink = $val['permalink']; 113 | $post_date = $val['created']; 114 | $post_date = date('Y-m-d',$post_date); 115 | echo '
        116 |

        '.$post_title.'

        117 |

        ID:'.$id.''.$post_date.'

        118 |
        '; 119 | } 120 | } 121 | else{ 122 | return 'id无效QAQ'; 123 | } 124 | } 125 | 126 | /** 127 | * 评论锚点修复 128 | * 129 | * @access public 130 | */ 131 | function Comment_hash_fix($archive){ 132 | $header = " 191 | "; 192 | return $header; 193 | } 194 | 195 | 196 | 197 | /** 198 | * 文章内容解析(短代码,表情) 199 | * 200 | * @access public 201 | * @param mixed 202 | * @return 203 | */ 204 | function emotionContent($content,$url) 205 | { 206 | // //HyperDown解析 207 | // $Parsedown = new Parsedown(); 208 | // $content = $Parsedown->text($content); 209 | //表情解析 210 | $fcontent = preg_replace('#\@\((.*?)\)#','',$content); 211 | 212 | //感谢Maicong大佬的短代码解析QwQ 213 | $fcontent = do_shortcode($fcontent); 214 | 215 | 216 | //输出最终结果 217 | echo $fcontent; 218 | } 219 | 220 | 221 | 222 | /** 223 | * 泽泽大佬的字数统计 224 | */ 225 | Typecho_Plugin::factory('admin/write-post.php')->bottom = array('myyodu', 'one'); 226 | Typecho_Plugin::factory('admin/write-page.php')->bottom = array('myyodu', 'one'); 227 | class myyodu { 228 | public static function one() 229 | { 230 | ?> 231 | 234 | 309 | 315 | 7 | * @link https://github.com/maicong/stay 8 | * @since 1.0.0 9 | * 10 | */ 11 | 12 | $shortcode_tags = array(); 13 | 14 | function add_shortcode($tag, $func) { 15 | global $shortcode_tags; 16 | if ( '' == trim( $tag ) ) { 17 | return; 18 | } 19 | if ( 0 !== preg_match( '@[<>&/\[\]\x00-\x20=]@', $tag ) ) { 20 | return; 21 | } 22 | $shortcode_tags[ $tag ] = $func; 23 | } 24 | 25 | function do_shortcode( $content, $ignore_html = false ) { 26 | global $shortcode_tags; 27 | if ( false === strpos( $content, '[' ) ) { 28 | return $content; 29 | } 30 | if (empty($shortcode_tags) || !is_array($shortcode_tags)) { 31 | return $content; 32 | } 33 | // Find all registered tag names in $content. 34 | //20180603 35 | $pregRule="/

        \[(.*?)\]<\/p>/"; 36 | $content = preg_replace($pregRule,'[${1}]', $content); 37 | 38 | preg_match_all( '@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches ); 39 | $tagnames = array_intersect( array_keys( $shortcode_tags ), $matches[1] ); 40 | if ( empty( $tagnames ) ) { 41 | return $content; 42 | } 43 | $content = do_shortcodes_in_html_tags( $content, $ignore_html, $tagnames ); 44 | $pattern = get_shortcode_regex( $tagnames ); 45 | $content = preg_replace_callback( "/$pattern/", 'do_shortcode_tag', $content ); 46 | // Always restore square braces so we don't break things like is found. 245 | . '-(?!->)' // Dash not followed by end of comment. 246 | . '[^\-]*+' // Consume non-dashes. 247 | . ')*+' // Loop possessively. 248 | . '(?:-->)?'; // End of comment. If not found, match all input. 249 | $cdata = 250 | '!\[CDATA\[' // Start of comment, after the <. 251 | . '[^\]]*+' // Consume non-]. 252 | . '(?:' // Unroll the loop: Consume everything until ]]> is found. 253 | . '](?!]>)' // One ] not followed by end of comment. 254 | . '[^\]]*+' // Consume non-]. 255 | . ')*+' // Loop possessively. 256 | . '(?:]]>)?'; // End of comment. If not found, match all input. 257 | $escaped = 258 | '(?=' // Is the element escaped? 259 | . '!--' 260 | . '|' 261 | . '!\[CDATA\[' 262 | . ')' 263 | . '(?(?=!-)' // If yes, which type? 264 | . $comments 265 | . '|' 266 | . $cdata 267 | . ')'; 268 | $regex = 269 | '/(' // Capture the entire match. 270 | . '<' // Find start of element. 271 | . '(?' // Conditional expression follows. 272 | . $escaped // Find end of escaped element. 273 | . '|' // ... else ... 274 | . '[^>]*>?' // Find end of normal element. 275 | . ')' 276 | . ')/'; 277 | } 278 | return $regex; 279 | } 280 | 281 | function kses_attr_parse( $element ) { 282 | $valid = preg_match('%^(<\s*)(/\s*)?([a-zA-Z0-9]+\s*)([^>]*)(>?)$%', $element, $matches); 283 | if ( 1 !== $valid ) { 284 | return false; 285 | } 286 | $begin = $matches[1]; 287 | $slash = $matches[2]; 288 | $elname = $matches[3]; 289 | $attr = $matches[4]; 290 | $end = $matches[5]; 291 | if ( '' !== $slash ) { 292 | // Closing elements do not get parsed. 293 | return false; 294 | } 295 | // Is there a closing XHTML slash at the end of the attributes? 296 | if ( 1 === preg_match( '%\s*/\s*$%', $attr, $matches ) ) { 297 | $xhtml_slash = $matches[0]; 298 | $attr = substr( $attr, 0, -strlen( $xhtml_slash ) ); 299 | } else { 300 | $xhtml_slash = ''; 301 | } 302 | 303 | // Split it 304 | $attrarr = kses_hair_parse( $attr ); 305 | if ( false === $attrarr ) { 306 | return false; 307 | } 308 | // Make sure all input is returned by adding front and back matter. 309 | array_unshift( $attrarr, $begin . $slash . $elname ); 310 | array_push( $attrarr, $xhtml_slash . $end ); 311 | 312 | return $attrarr; 313 | } 314 | 315 | function kses_hair_parse( $attr ) { 316 | if ( '' === $attr ) { 317 | return array(); 318 | } 319 | $regex = 320 | '(?:' 321 | . '[-a-zA-Z:]+' // Attribute name. 322 | . '|' 323 | . '\[\[?[^\[\]]+\]\]?' // Shortcode in the name position implies unfiltered_html. 324 | . ')' 325 | . '(?:' // Attribute value. 326 | . '\s*=\s*' // All values begin with '=' 327 | . '(?:' 328 | . '"[^"]*"' // Double-quoted 329 | . '|' 330 | . "'[^']*'" // Single-quoted 331 | . '|' 332 | . '[^\s"\']+' // Non-quoted 333 | . '(?:\s|$)' // Must have a space 334 | . ')' 335 | . '|' 336 | . '(?:\s|$)' // If attribute has no value, space is required. 337 | . ')' 338 | . '\s*'; // Trailing space is optional except as mentioned above. 339 | // Although it is possible to reduce this procedure to a single regexp, 340 | // we must run that regexp twice to get exactly the expected result. 341 | $validation = "%^($regex)+$%"; 342 | $extraction = "%$regex%"; 343 | if ( 1 === preg_match( $validation, $attr ) ) { 344 | preg_match_all( $extraction, $attr, $attrarr ); 345 | return $attrarr[0]; 346 | } else { 347 | return false; 348 | } 349 | } 350 | 351 | function kses_one_attr( $string, $element ) { 352 | $string = preg_replace( ['/[\x00-\x08\x0B\x0C\x0E-\x1F]/', '%&\s*\{[^}]*(\}\s*;?|$)%'], '', $string ); 353 | 354 | // Preserve leading and trailing whitespace. 355 | $matches = array(); 356 | preg_match('/^\s*/', $string, $matches); 357 | $lead = $matches[0]; 358 | preg_match('/\s*$/', $string, $matches); 359 | $trail = $matches[0]; 360 | if ( empty( $trail ) ) { 361 | $string = substr( $string, strlen( $lead ) ); 362 | } else { 363 | $string = substr( $string, strlen( $lead ), -strlen( $trail ) ); 364 | } 365 | 366 | // Parse attribute name and value from input. 367 | $split = preg_split( '/\s*=\s*/', $string, 2 ); 368 | $name = $split[0]; 369 | if ( count( $split ) == 2 ) { 370 | $value = $split[1]; 371 | // Remove quotes surrounding $value. 372 | // Also guarantee correct quoting in $string for this one attribute. 373 | if ( '' == $value ) { 374 | $quote = ''; 375 | } else { 376 | $quote = $value[0]; 377 | } 378 | if ( '"' == $quote || "'" == $quote ) { 379 | if ( substr( $value, -1 ) != $quote ) { 380 | return ''; 381 | } 382 | $value = substr( $value, 1, -1 ); 383 | } else { 384 | $quote = '"'; 385 | } 386 | // Sanitize quotes, angle braces, and entities. 387 | $value = htmlspecialchars( $value, ENT_QUOTES, 'UTF-8' ); 388 | // Sanitize URI values. 389 | $string = "$name=$quote$value$quote"; 390 | $vless = 'n'; 391 | } else { 392 | $value = ''; 393 | $vless = 'y'; 394 | } 395 | 396 | // Restore whitespace. 397 | return $lead . $string . $trail; 398 | } 399 | 400 | function autop( $pee, $br = true ) { 401 | $pre_tags = array(); 402 | if ( trim( $pee ) === '' ) { 403 | return ''; 404 | } 405 | // Just to make things a little easier, pad the end. 406 | $pee = $pee . "\n"; 407 | /* 408 | * Pre tags shouldn't be touched by autop. 409 | * Replace pre tags with placeholders and bring them back after autop. 410 | */ 411 | if ( strpos( $pee, '', $pee ); 413 | $last_pee = array_pop( $pee_parts ); 414 | $pee = ''; 415 | $i = 0; 416 | foreach ( $pee_parts as $pee_part ) { 417 | $start = strpos( $pee_part, ''; 425 | $pee .= substr( $pee_part, 0, $start ) . $name; 426 | $i++; 427 | } 428 | $pee .= $last_pee; 429 | } 430 | // Change multiple
        s into two line breaks, which will turn into paragraphs. 431 | $pee = preg_replace( '|\s*|', "\n\n", $pee ); 432 | $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)'; 433 | // Add a double line break above block-level opening tags. 434 | $pee = preg_replace( '!(<' . $allblocks . '[\s/>])!', "\n\n$1", $pee ); 435 | // Add a double line break below block-level closing tags. 436 | $pee = preg_replace( '!()!', "$1\n\n", $pee ); 437 | // Standardize newline characters to "\n". 438 | $pee = str_replace( array( "\r\n", "\r" ), "\n", $pee ); 439 | // Find newlines in all elements and add placeholders. 440 | $pee = replace_in_html_tags( $pee, array( "\n" => ' ' ) ); 441 | // Collapse line breaks before and after ', $pee ); 445 | } 446 | /* 447 | * Collapse line breaks inside elements, before and elements 448 | * so they don't get autop'd. 449 | */ 450 | if ( strpos( $pee, '' ) !== false ) { 451 | $pee = preg_replace( '|(]*>)\s*|', '$1', $pee ); 452 | $pee = preg_replace( '|\s*|', '', $pee ); 453 | $pee = preg_replace( '%\s*(]*>)\s*%', '$1', $pee ); 454 | } 455 | /* 456 | * Collapse line breaks inside

        elements. 465 | if ( strpos( $pee, ']*>)|', '$1', $pee ); 467 | $pee = preg_replace( '|
        \s*|', '', $pee ); 468 | } 469 | // Remove more than two contiguous line breaks. 470 | $pee = preg_replace( "/\n\n+/", "\n\n", $pee ); 471 | // Split up the contents into an array of strings, separated by double line breaks. 472 | $pees = preg_split( '/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY ); 473 | // Reset $pee prior to rebuilding. 474 | $pee = ''; 475 | // Rebuild the content as a string, wrapping every bit with a

        . 476 | foreach ( $pees as $tinkle ) { 477 | $pee .= '

        ' . trim( $tinkle, "\n" ) . "

        \n"; 478 | } 479 | // Under certain strange conditions it could create a P of entirely whitespace. 480 | $pee = preg_replace( '|

        \s*

        |', '', $pee ); 481 | // Add a closing

        inside

        ,
        , or
        tag if missing. 482 | $pee = preg_replace( '!

        ([^<]+)!', '

        $1

        ', $pee ); 483 | // If an opening or closing block element tag is wrapped in a

        , unwrap it. 484 | $pee = preg_replace( '!

        \s*(]*>)\s*

        !', '$1', $pee ); 485 | // In some cases
      1. may get wrapped in

        , fix them. 486 | $pee = preg_replace( '|

        (|', '$1', $pee ); 487 | // If a

        is wrapped with a

        , move it inside the

        . 488 | $pee = preg_replace( '|

        ]*)>|i', '

        ', $pee ); 489 | $pee = str_replace( '

        ', '

        ', $pee ); 490 | // If an opening or closing block element tag is preceded by an opening

        tag, remove it. 491 | $pee = preg_replace( '!

        \s*(]*>)!', '$1', $pee ); 492 | // If an opening or closing block element tag is followed by a closing

        tag, remove it. 493 | $pee = preg_replace( '!(]*>)\s*

        !', '$1', $pee ); 494 | // Optionally insert line breaks. 495 | if ( $br ) { 496 | // Replace newlines that shouldn't be touched with a placeholder. 497 | $pee = preg_replace_callback( '/<(script|style).*?<\/\\1>/s', '_autop_newline_preservation_helper', $pee ); 498 | // Normalize
        499 | $pee = str_replace( array( '
        ', '
        ' ), '
        ', $pee ); 500 | // Replace any new line characters that aren't preceded by a
        with a
        . 501 | $pee = preg_replace( '|(?)\s*\n|', "
        \n", $pee ); 502 | // Replace newline placeholders with newlines. 503 | $pee = str_replace( '', "\n", $pee ); 504 | } 505 | // If a
        tag is after an opening or closing block tag, remove it. 506 | $pee = preg_replace( '!(]*>)\s*
        !', '$1', $pee ); 507 | // If a
        tag is before a subset of opening or closing block tags, remove it. 508 | $pee = preg_replace( '!
        (\s*]*>)!', '$1', $pee ); 509 | $pee = preg_replace( "|\n

        $|", '

        ', $pee ); 510 | // Replace placeholder
         tags with their original content.
        511 | 	if ( ! empty( $pre_tags ) ) {
        512 | 		$pee = str_replace( array_keys( $pre_tags ), array_values( $pre_tags ), $pee );
        513 | 	}
        514 | 	// Restore newlines in all elements.
        515 | 	if ( false !== strpos( $pee, '' ) ) {
        516 | 		$pee = str_replace( array( '  ', '' ), "\n", $pee );
        517 | 	}
        518 | 	return $pee;
        519 | }
        520 | 
        521 | function _autop_newline_preservation_helper( $matches ) {
        522 | 	return str_replace( "\n", '', $matches[0] );
        523 | }
        524 | 
        525 | function replace_in_html_tags( $haystack, $replace_pairs ) {
        526 | 	// Find all elements.
        527 | 	$textarr = html_split( $haystack );
        528 | 	$changed = false;
        529 | 	// Optimize when searching for one item.
        530 | 	if ( 1 === count( $replace_pairs ) ) {
        531 | 		// Extract $needle and $replace.
        532 | 		foreach ( $replace_pairs as $needle => $replace ) {
        533 | 		}
        534 | 		// Loop through delimiters (elements) only.
        535 | 		for ( $i = 1, $c = count( $textarr ); $i < $c; $i += 2 ) {
        536 | 			if ( false !== strpos( $textarr[ $i ], $needle ) ) {
        537 | 				$textarr[ $i ] = str_replace( $needle, $replace, $textarr[ $i ] );
        538 | 				$changed       = true;
        539 | 			}
        540 | 		}
        541 | 	} else {
        542 | 		// Extract all $needles.
        543 | 		$needles = array_keys( $replace_pairs );
        544 | 		// Loop through delimiters (elements) only.
        545 | 		for ( $i = 1, $c = count( $textarr ); $i < $c; $i += 2 ) {
        546 | 			foreach ( $needles as $needle ) {
        547 | 				if ( false !== strpos( $textarr[ $i ], $needle ) ) {
        548 | 					$textarr[ $i ] = strtr( $textarr[ $i ], $replace_pairs );
        549 | 					$changed       = true;
        550 | 					// After one strtr() break out of the foreach loop and look at next element.
        551 | 					break;
        552 | 				}
        553 | 			}
        554 | 		}
        555 | 	}
        556 | 	if ( $changed ) {
        557 | 		$haystack = implode( $textarr );
        558 | 	}
        559 | 	return $haystack;
        560 | }
        561 | 
        
        
        --------------------------------------------------------------------------------