diff --git a/source/_posts/A27-image-hosting.md b/source/_posts/A27-image-hosting.md index 1c54ea25077a74a07d198ac789b4596684783c1a..9ea4b74738be519d0a1d0585f7038e6cc0bd1bf1 100644 --- a/source/_posts/A27-image-hosting.md +++ b/source/_posts/A27-image-hosting.md @@ -24,9 +24,9 @@ avatar: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.1.9/images/trhx.png > - SM.MS:运营四年多了,也变得越来越慢了,到了晚上直接打不开图片,速度堪忧 > - 其他小众图床:随时有挂掉的风险 > - Imgur等国外图床:国内访问速度太慢,随时有被墙的风险 -> - 大厂储存服务:例如七牛云、又拍云、腾讯云COS、阿里云OSS等,操作繁琐,又是实名认证又是域名备案的,麻烦,而且还要花钱(有钱又不怕麻烦的当我没说) +> - 大厂储存服务:例如七牛云、又拍云、腾讯云COS、阿里云OSS等,容量限制,操作繁琐,又是实名认证又是域名备案的,麻烦,而且还要花钱(有钱又不怕麻烦的当我没说) -因此,GitHub图床是个不错的选择,利用jsDelivr CDN加速访问(jsDelivr 是一个免费开源的 CDN 解决方案),PicGo工具一键上传,操作简单高效,GitHub和jsDelivr都是大厂,不用担心跑路问题,不用担心速度和容量问题,而且完全免费,可以说是目前免费图床的最佳解决方案! +因此,GitHub 图床是个不错的选择,利用 jsDelivr CDN 加速访问(jsDelivr 是一个免费开源的 CDN 解决方案),PicGo 工具一键上传,操作简单高效,GitHub 和 jsDelivr 都是大厂,不用担心跑路问题,不用担心速度和容量问题,而且完全免费,可以说是目前免费图床的最佳解决方案! --- @@ -76,9 +76,11 @@ avatar: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.1.9/images/trhx.png - 设定Token:粘贴之前生成的【Token】 -- 指定存储路径:填写想要储存的路径,如【ITRHX-PIC/】,这样就会在仓库下创建一个名为ITRHX-PIC的文件夹,图片将会储存在此文件夹中 +- 指定存储路径:填写想要储存的路径,如【ITRHX-PIC/】,这样就会在仓库下创建一个名为 ITRHX-PIC 的文件夹,图片将会储存在此文件夹中 -- 设定自定义域名:它的的作用是,在图片上传后,PicGo会按照【自定义域名+上传的图片名】的方式生成访问链接,放到粘贴板上,因为我们要使用jsDelivr加速访问,所以可以设置为【https://cdn.jsdelivr.net/gh/用户名/图床仓库名 】,关于jsDelivr是如何引用资源的可以参考我的另一篇博客:[《免费CDN:jsDeliver+Github》](https://www.itrhx.com/2019/02/10/A18-free-cdn/) +- 设定自定义域名:它的作用是,在图片上传后,PicGo 会按照【自定义域名+储存路径+上传的图片名】的方式生成访问链接,并放到粘贴板上,因为我们要使用 jsDelivr 加速访问,所以可以设置为【https://cdn.jsdelivr.net/gh/用户名/图床仓库名 】,上传完毕后,我们就可以通过【https://cdn.jsdelivr.net/gh/用户名/图床仓库名/图片路径 】加速访问我们的图片了,比如上图的图片链接为:https://cdn.jsdelivr.net/gh/TRHX/ImageHosting/ITRHX-PIC/A27/08.png + +关于 jsDelivr 具体是如何引用资源的可以参考我的另一篇博客:[《免费CDN:jsDelivr+Github》](https://www.itrhx.com/2019/02/10/A18-free-cdn/) --- diff --git a/source/friends/index.md b/source/friends/index.md index 24fb78efc2e3789509288df8b684e63595fa198c..cf79c22f20c33b7f8d8f73508f952d8ada92671e 100644 --- a/source/friends/index.md +++ b/source/friends/index.md @@ -238,7 +238,7 @@ links: - name: Yinux's Blog avatar: https://cdn.jsdelivr.net/gh/TRHX/ImageHosting/ITRHX-LINKS/codingpy.png - url: https://www.codingpy.cn/ + url: https://www.yinuxy.com/ backgroundColor: '#967ADC' textColor: '#fff' tags: diff --git a/themes/hexo-theme-material-x-master/.github/ISSUE_TEMPLATE/------.md b/themes/hexo-theme-material-x-master/.github/ISSUE_TEMPLATE/------.md deleted file mode 100644 index ff82096acc8c419d59683b0ca9ad726509b538ca..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/.github/ISSUE_TEMPLATE/------.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: 使用遇到问题 -about: 使用遇到问题请先认真阅读文档,仍然无法解决可在文档页面下方留言。 - ---- - -如果你发现 无法使用 或者效果与示例有较大区别,可以使用hexo官方提供的用于单元测试的博客应用本主题查看样式是否正常,对比_config.yml文件排查问题。 - -## 下载单元测试: - -Hexo官方的单元测试博客: [https://github.com/hexojs/hexo-theme-unit-test](https://github.com/hexojs/hexo-theme-unit-test)。 -如果你的系统是macOS,则可以使用hexo.sh脚本一键完成测试。 - -## 提问前请先认真阅读文档 - -文档:[https://xaoxuu.com/wiki/material-x/](https://xaoxuu.com/wiki/material-x/) diff --git a/themes/hexo-theme-material-x-master/.gitignore b/themes/hexo-theme-material-x-master/.gitignore deleted file mode 100644 index bd3e973d585be9035e1f7958e5a8846bf134b3e2..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -_site/ -.sass-cache/ -.jekyll-metadata -.DS_Store diff --git a/themes/hexo-theme-material-x-master/LICENSE b/themes/hexo-theme-material-x-master/LICENSE deleted file mode 100644 index b9229be113b1891aba89567354c9f7aacec8ff86..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 xaoxuu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/themes/hexo-theme-material-x-master/README.md b/themes/hexo-theme-material-x-master/README.md deleted file mode 100644 index 2407f60c4ca1005cd19b80d9d5dee300e4402ea4..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# Material X - -一个简约的卡片式Hexo博客主题。 - -![](https://img.vim-cn.com/52/a54815c02ce232f11f54b2c547c1337828833c.png) - - -#### 完全自由的模块化、易于定制化设计 - -- 可以自由决定每个页面是否需要封面、封面是否需要背景图片、多少图片、是否需要轮播、速度如何。 -- 可以自由决定每个页面是否需要侧边栏、侧边栏小部件显示什么卡片、顺序如何。 -- 可以自由决定每个页面的主体结构(默认文章+评论),可以按需增加卡片(与侧边栏小部件共用卡片库)。 -- 可以自由决定每篇文章的meta标签(日期、更新日期、分类、标签、分享、阅读统计、置顶)显示与否、放置在文章开头还是末尾。标题、缩略图、小图标(用于归档页面)、页面专属的音乐播放器也算做meta标签,但是它们的位置固定。 -- 大部分按钮可以自由设置图标、文字、target、nofollow等 -- 方便更换主题色、自定义字体、边距、圆角、阴影等视觉效果,快速实现暗色主题。 - -#### 易于扩展 - -- 使用 [import](https://xaoxuu.com/wiki/material-x/config/#import) 字段方便导入css和js到主题中。 - -#### 移动端优化 - -- 针对移动端布局进行了大量优化。 - -#### 更多功能的支持 - -- 支持4种评论系统:Disqus、Gitalk、来必力和Valine评论。 -- 提供主题CDN,也可自定义CDN。 -- 使用卡片设计元素以及交互动效。 -- 使用 fontawesome 5.6.3 免费版图标。 -- 支持APlayer播放器,可以播放网易云、QQ音乐、虾米、酷狗平台以及其它服务器的音乐。 -- 支持不蒜子阅读统计、百度分析、Google分析。 -- 支持渲染MathJax数学公式,优化了渲染效果。 - - - -
- -## 博客示例 - -| 博客 | 源码 | 说明 | -| ----------------------------------- | -------------------------------------- | ------------------ | -| [@mxclub](https://mxclub.github.io) | https://github.com/xaoxuu/blog-example | master分支默认效果 | -| [@xaoxuu](https://xaoxuu.com) | 暂未开源 | myblog分支效果 | - - -- **更多示例请见 [#示例博客](https://github.com/xaoxuu/hexo-theme-material-x/issues/97)** - - - -
- -## 下载安装 - -### A. 使用脚本全自动安装(目前仅支持macOS) - -1. 打开终端输入下面命令安装脚本,脚本文档见[#hexo.sh](https://xaoxuu.com/wiki/hexo.sh/)。 -```bash -curl -s https://xaoxuu.com/install | sh -s hexo.sh -``` - -2. 安装成功后,在你的博客路径打开终端,输入下面命令即可安装主题和依赖包。 -```bash -hexo.sh i x -``` - - - -### B. 手动安装 - -1. 下载主题到 `themes/` 文件夹 -```bash -git clone https://github.com/xaoxuu/hexo-theme-material-x themes/material-x -``` - -2. 然后安装必要的依赖包 -```bash -npm i -S hexo-generator-search hexo-generator-json-content hexo-renderer-less -``` - - - -
- -## 文档 - -https://xaoxuu.com/wiki/material-x/ diff --git a/themes/hexo-theme-material-x-master/_config.yml b/themes/hexo-theme-material-x-master/_config.yml deleted file mode 100644 index e514cf0220a46306fdaef033cb170209cd640548..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/_config.yml +++ /dev/null @@ -1,307 +0,0 @@ -############################### 基本信息 ############################### -info: - name: Material X - docs: https://xaoxuu.com/wiki/material-x/ - cdn: # 把对应的那一行注释掉就使用本地的文件 - css: - # style: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@19.10.22/css/style.css - js: - app: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@19.9/js/app.js - search: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@19.9/js/search.js - volantis: https://cdn.jsdelivr.net/gh/xaoxuu/volantis@1.0.6/js/volantis.min.js - - - -############################### 主题风格 ############################### -# style: material # material: 导航栏和标题栏背景是主题色 -style: pure # pure: 导航栏和标题栏背景是白色 - - -############################### 服务开关 ############################### -scrollreveal: true -nodewaves: true -busuanzi: true -# fastclick: true - - - -############################### 默认值 ############################### -# 音乐控件的默认配置,如果sidebar或者page里没有提供,就取这里的参数 -music: - enable: true # 是否启用 - color: '#1BCDFC' # 主题色 - mode: circulation # random (随机) single (单曲) circulation (列表循环) order (列表) - server: netease # netease(网易云音乐)tencent(QQ音乐) xiami(虾米) kugou(酷狗) - type: playlist # song (单曲) album (专辑) playlist (歌单) search (搜索) - id: 2615636388 # 歌曲/专辑/歌单 ID - volume: 0.7 # 音量, 0~1 - autoplay: false # 自动播放 - -# 友链页头像占位图 -avatar_placeholder: https://cdn.jsdelivr.net/gh/xaoxuu/assets@master/avatar/avatar.png - -# 日期格式 http://momentjs.com/docs/ -date_format: 'YYYY-MM-DD' # 文章发布日期的格式 -updated_date_format: 'll' # 文章更新日期的格式 - -# 幻灯片 -backstretch: - position: cover # cover: 封面背景 full: 整个网页背景 - duration: 6000 # 持续时间(毫秒) - fade: 2500 # 渐变(毫秒) - images: - - https://img.vim-cn.com/29/91197b04c13f512f734a76d4ac422d89dbe229.jpg - - - -############################### 自定义 ############################### -# page的封面 -cover: - scheme: search # 后期将会提供多种封面方案 - height: half # full(默认值): 首页封面占据整个第一屏幕,其他页面占半个屏幕高度, half: 所有页面都封面都只占半个屏幕高度 - title: Demo - # logo: assets/logo.png # logo和title只显示一个,若同时设置,则只显示logo - # search_placeholder: '搜索' - # 主页封面菜单 - features: - - name: 博文 - icon: fas fa-rss - url: / - - name: 项目 - icon: fas fa-code-branch - url: projects/ - - name: 友链 - icon: fas fa-link - url: friends/ - rel: nofollow - - name: 关于 - icon: fas fa-info-circle - url: about/ - rel: nofollow - - -# 桌面端导航栏菜单 -menu_desktop: - - name: 示例 - icon: fas fa-grin - url: / - - name: 分类 - icon: fas fa-folder-open - url: blog/categories/ - rel: nofollow - - name: 标签 - icon: fas fa-hashtag - url: blog/tags/ - rel: nofollow - - name: 归档 - icon: fas fa-archive - url: blog/archives/ - rel: nofollow - -# 手机端导航菜单(从右上角的按钮点击展开) -menu_mobile: - - name: 近期文章 - icon: fas fa-clock - url: / - - name: 文章归档 - icon: fas fa-archive - url: blog/archives/ - rel: nofollow - - name: 开源项目 - icon: fas fa-code-branch - url: projects/ - - name: 我的友链 - icon: fas fa-link - url: friends/ - rel: nofollow - - name: 主题文档 - icon: fas fa-book - url: https://xaoxuu.com/wiki/material-x/ - rel: nofollow - - name: 关于小站 - icon: fas fa-info-circle - url: about/ - rel: nofollow - -layout: - # 文章列表(主页、自定义的列表)布局 - posts: - # 列表中每一篇文章的meta信息 - meta: [title, author, date, categories, top] - # 列表类页面的侧边栏 - sidebar: [author, list, grid, category, tagcloud] - # 文章页面布局 - article: - # 文章页面主体元素,你也可以在页面的Front-matter中设置 - body: [article, comments] - # 默认的meta信息,文章中没有配置则按照这里的配置来显示,设置为false则不显示 - # 其中,title只在header中有效,music和thumbnail无需在这里设置,文章中有则显示 - # 如果tags放置在meta.header中,那么在post列表中不显示(因为卡片下方已经有了) - header: [title, author, date, categories, counter, top] - footer: [updated, tags, share] - # 文章页面的侧边栏 - sidebar: [author, toc, grid, category, tagcloud, list, related_posts] - # 其他的页面布局暂时等于文章列表 - - -# 侧边栏小部件配置 -sidebar: - - widget: author - avatar: https://cdn.jsdelivr.net/gh/xaoxuu/assets@master/avatar/avatar.png - social: true - - widget: toc - - widget: grid - icon: fas fa-map-signs - title: 站内导航 - rows: - - name: 近期文章 - icon: fas fa-clock - url: / - - name: 文章归档 - icon: fas fa-archive - url: blog/archives/ - rel: nofollow - - name: 开源项目 - icon: fas fa-code-branch - url: projects/ - - name: 我的友链 - icon: fas fa-link - url: friends/ - rel: nofollow - - name: 主题文档 - icon: fas fa-book - url: https://xaoxuu.com/wiki/material-x/ - rel: nofollow - - name: 关于小站 - icon: fas fa-info-circle - url: about/ - rel: nofollow - - widget: category - more: - icon: fas fa-expand-arrows-alt - url: blog/categories/ - rel: nofollow - - widget: tagcloud - icon: fas fa-tags - more: - icon: fas fa-expand-arrows-alt - url: blog/tags/ - rel: nofollow - # - widget: related_posts # 需要安装插件 npm i -S hexo-related-popular-posts - - widget: music - icon: fas fa-compact-disc - title: "最近在听" - more: - icon: far fa-heart - url: https://music.163.com/#/user/home?id=63035382 - rel: external nofollow noopener noreferrer - target: _blank - server: netease # netease(网易云音乐)tencent(QQ音乐) xiami(虾米) kugou(酷狗) - type: playlist # song (单曲) album (专辑) playlist (歌单) search (搜索) - id: 2615636388 # 歌曲/专辑/歌单 ID - - widget: list - icon: fas fa-thumbs-up - title: 强烈推荐 - rows: - - name: Hexo脚本(Mac) - url: https://xaoxuu.com/wiki/hexo.sh/ - - name: 图床脚本(Mac) - url: https://xaoxuu.com/wiki/vim-cn.sh/ - - name: 图片在线压缩 - url: https://yasuotu.com - - name: 生成Favicon - url: https://realfavicongenerator.net - - name: 简历主题 - url: https://mxclub.github.io/resume/ - - - -# 社交信息 -social: - - icon: fas fa-rss - url: atom.xml - - icon: fas fa-envelope - url: mailto:me@xaoxuu.com - - icon: fab fa-github - url: https://github.com/xaoxuu - - icon: fas fa-headphones-alt - url: https://music.163.com/#/user/home?id=63035382 - - -# 分享按钮 -# 当id为qrcode时需要安装插件 npm i -S hexo-helper-qrcode -share: - - id: qq - name: QQ好友 - img: https://cdn.jsdelivr.net/gh/xaoxuu/assets@19.1.9/logo/128/qq.png - - id: qzone - name: QQ空间 - img: https://cdn.jsdelivr.net/gh/xaoxuu/assets@19.1.9/logo/128/qzone.png - # - id: qrcode - # name: 微信 - # img: https://cdn.jsdelivr.net/gh/xaoxuu/assets@19.1.9/logo/128/wechat.png - - id: weibo - name: 微博 - img: https://cdn.jsdelivr.net/gh/xaoxuu/assets@19.1.9/logo/128/weibo.png - # - id: qrcode - # name: QRcode - # img: https://cdn.jsdelivr.net/gh/xaoxuu/assets@19.1.9/logo/128/qrcode.png - - - -# footer: '页脚文字,支持[markdown](/)' - - -############################### 评论系统 ############################### -# disqus_shortname: 要使用哪个请复制到根目录配置文件! -# livere_uid: 要使用哪个请复制到根目录配置文件! -# gitalk: 要使用哪个请复制到根目录配置文件! -# clientID: 你的clientID -# clientSecret: 你的clientSecret -# repo: 你的repo名 -# owner: 你的GitHub名 -# admin: [] 至少填写你的GitHub名 -# leancloud: 要使用哪个请复制到根目录配置文件! -# app_id: 你的appId -# app_key: 你的appKey - - -############################### 杂项,请勿删除 ############################### -#valine配置 -valine: - enable: true # 如果你想用Valine评论系统,请设置enable为true - volantis: true # 是否启用volantis版本(禁止匿名,增加若干贴吧、QQ表情) - # 还需要在根目录配置文件中添加下面这三行内容 - # leancloud: - # app_id: 你的appId - # app_key: 你的appKey - guest_info: nick,mail,link #valine comment header info - placeholder: 快来评论吧~ # valine comment input placeholder(like: Please leave your footprints ) - avatar: mp # gravatar style https://valine.js.org/avatar - pageSize: 10 # comment list page size - verify: true # valine verify code (true/false) - notify: true # valine mail notify (true/false) - lang: zh-cn - highlight: true - -# 搜索配置 -search: - enable: true - service: hexo - # google - google_api_key: - google_engine_id: - # algolia - algolia_app_id: - algolia_api_key: - algolia_index_name: - # azure - azure_service_name: - azure_index_name: - azure_query_key: - # baidu - baidu_api_id: - -# Less渲染 -less: - compress: true diff --git a/themes/hexo-theme-material-x-master/languages/en.yml b/themes/hexo-theme-material-x-master/languages/en.yml deleted file mode 100644 index fc257805db41271ebfc08a02dd9529426bffd03e..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/languages/en.yml +++ /dev/null @@ -1,45 +0,0 @@ -sidebar: - category: Categories - tagcloud: Hot Tags - toc: TOC - related_posts: Related Posts -post: - top: Top - read_more: Read More - sticky: Sticky - comments: Comments - comments_placeholder: Unable to load %s, please make sure your network can access. - copy_button: Copy - copy_success: Copied - copy_failure: Copy failed - updated: updated at - prev_page: Previous - next_page: Next - copyright: - author: Post author - link: Post link - license_title: Copyright Notice - license_content: "All articles in this blog are licensed under %s unless stating additionally." -footer: - license: 'Blog content follows the [Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en)' - use: Use - theme: as theme - total_views: total visits - total_visitors: total visitors - times: times -search: - placeholder: Search -symbol: - comma: ", " - period: ". " - colon: ": " - brackets_l: "(" - brackets_r: ")" -# 下面这是博主相关的 -navbar: - home: Home - blogs: Blogs - categories: Categories - tags: Tags - archives: Archives - friends: Friends diff --git a/themes/hexo-theme-material-x-master/languages/zh-CN.yml b/themes/hexo-theme-material-x-master/languages/zh-CN.yml deleted file mode 100644 index 60c080d41febcdb47361c4807d119ceb042e4e1a..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/languages/zh-CN.yml +++ /dev/null @@ -1,45 +0,0 @@ -sidebar: - category: 文章分类 - tagcloud: 热门标签 - toc: 本文目录 - related_posts: 相关文章 -post: - top: 置顶 - read_more: 阅读全文 - sticky: 置顶 - comments: 评论 - comments_placeholder: 无法加载%s评论系统,请确保您的网络能够正常访问。 - copy_button: 复制 - copy_success: 复制成功 - copy_failure: 复制失败 - updated: 更新于 - prev_page: 上一页 - next_page: 下一页 - copyright: - author: 本文作者 - link: 本文链接 - license_title: 版权声明 - license_content: "本博客所有文章除特别声明外,均采用 %s 许可协议。转载请注明出处!" -footer: - license: '博客内容遵循 [署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)' - use: 本站使用 - theme: 作为主题 - total_views: 总访问量为 - total_visitors: 总访客量 - times: 次 -search: - placeholder: 搜索 -symbol: - comma: "," - period: "。" - colon: ":" - brackets_l: "(" - brackets_r: ")" -# 下面这是博主相关的 -navbar: - home: 主页 - blogs: 博客 - categories: 分类 - tags: 标签 - archives: 归档 - friends: 朋友 diff --git a/themes/hexo-theme-material-x-master/languages/zh-HK.yml b/themes/hexo-theme-material-x-master/languages/zh-HK.yml deleted file mode 100644 index 32c0c29f2aaa0cbaa99f06045ae82e03f021413e..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/languages/zh-HK.yml +++ /dev/null @@ -1,45 +0,0 @@ -sidebar: - category: 文章分類 - tagcloud: 熱門標籤 - toc: 本文目錄 - related_posts: 相關文章 -post: - top: 置頂 - read_more: 閱讀全文 - sticky: 置頂 - comments: 評論 - comments_placeholder: 無法加載%s評論系統,請確保您的網絡能夠正常訪問。 - copy_button: 複製 - copy_success: 複製成功 - copy_failure: 複製失敗 - updated: 更新於 - prev_page: 上一頁 - next_page: 下一頁 - copyright: - author: 本文作者 - link: 文章連結 - license_title: 版權聲明 - license_content: "本網誌所有文章除特別聲明外,均採用 %s 許可協議。轉載請註明出處!" -footer: - license: '博客內容遵循 [姓名標示-非商業性-相同方式分享 4.0 國際 (CC BY-NC-SA 4.0) 協議](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh_TW)' - use: 本站使用 -  theme: 作為主題 -  total_views: 總訪問量為 -  total_visitors: 總訪客量為 -  times: 次 -search: - placeholder: 搜尋 -symbol: - comma: "," - period: "。" - colon: ":" - brackets_l: "(" - brackets_r: ")" -# 下面這是博主相關的 -navbar: - home: 主頁 - blogs: 博客 - categories: 分類 - tags: 標籤 - archives: 歸檔 - friends: 朋友 diff --git a/themes/hexo-theme-material-x-master/languages/zh-TW.yml b/themes/hexo-theme-material-x-master/languages/zh-TW.yml deleted file mode 100644 index d53e3e6ce2a4fa1b96ee1dd15cc9799160ab470e..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/languages/zh-TW.yml +++ /dev/null @@ -1,45 +0,0 @@ -sidebar: - category: 文章分類 - tagcloud: 熱門標籤 - toc: 本文目錄 - related_posts: 相關文章 -post: - top: 置頂 - read_more: 閱讀全文 - sticky: 置頂 - comments: 評論 - comments_placeholder: 無法加載%s評論系統,請確保您的網絡能夠正常訪問。 - copy_button: 複製 - copy_success: 複製成功 - copy_failure: 複製失敗 - updated: 更新於 - prev_page: 上一頁 - next_page: 下一頁 - copyright: - author: 本文作者 - link: 文章連結 - license_title: 版權聲明 - license_content: "本網誌所有文章除特別聲明外,均採用 %s 許可協議。轉載請註明出處!" -footer: - license: '博客內容遵循 [姓名標示-非商業性-相同方式分享 4.0 國際 (CC BY-NC-SA 4.0) 協議](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh_TW)' - use: 本站使用 - theme: 作為主題 - total_views: 總訪問量為 - total_visitors: 總訪客量為 - times: 次 -search: - placeholder: 搜尋 -symbol: - comma: "," - period: "。" - colon: ":" - brackets_l: "(" - brackets_r: ")" -# 下面這是博主相關的 -navbar: - home: 主頁 - blogs: 博客 - categories: 分類 - tags: 標籤 - archives: 歸檔 - friends: 朋友 diff --git a/themes/hexo-theme-material-x-master/layout/_cover/search.ejs b/themes/hexo-theme-material-x-master/layout/_cover/search.ejs deleted file mode 100644 index e742dfe3ac0ac46b60edb3a33c04827e3bcf5fee..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_cover/search.ejs +++ /dev/null @@ -1,33 +0,0 @@ -<% if (theme.cover.logo) { %> - -<% } else { %> -

<%- theme.cover.title ? theme.cover.title : config.title %>

-<% } %> -<% if (theme.search.enable === true) { %> - -<% } %> - diff --git a/themes/hexo-theme-material-x-master/layout/_meta/author.ejs b/themes/hexo-theme-material-x-master/layout/_meta/author.ejs deleted file mode 100644 index 409d1592ae589d89c1c36b0aae5ac9d5dec8c7f2..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/author.ejs +++ /dev/null @@ -1,23 +0,0 @@ -<% if(post.author || config.author){ %> -
- <% if (post.author) { %> - - <% if (post.author.avatar) { %> - - <% } else { %> - - <% } %> -

<%- post.author.name %>

-
- <% } else { %> - - <% if (config.avatar) { %> - - <% } else { %> - - <% } %> -

<%- config.author %>

-
- <% } %> -
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/categories.ejs b/themes/hexo-theme-material-x-master/layout/_meta/categories.ejs deleted file mode 100644 index a73aaf7f5aeb2df9242a36c9a25cc6241a7b59b2..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/categories.ejs +++ /dev/null @@ -1,16 +0,0 @@ -<% if (post.categories && post.categories.length && post.categories.forEach){ %> - <% - var cats = []; - var path; - post.categories.forEach(function(cat){ - cats.push(cat.name); - path = cat.path; - }); - %> -
- - -

<%- cats.join(' / ') %>

-
-
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/counter.ejs b/themes/hexo-theme-material-x-master/layout/_meta/counter.ejs deleted file mode 100644 index 59579ec10af460d67a6b7a0312ed2dd9d95f39bc..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/counter.ejs +++ /dev/null @@ -1,14 +0,0 @@ -<% if(!isPostList){ %> - <% if (theme.busuanzi == true) { %> -
- - -

- - - -

-
-
- <% } %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/date.ejs b/themes/hexo-theme-material-x-master/layout/_meta/date.ejs deleted file mode 100644 index 097bab97ebf8f577317a65d03a33fe4551286c8e..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/date.ejs +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

<%- date(post.date, theme.date_format) %>

-
-
diff --git a/themes/hexo-theme-material-x-master/layout/_meta/music.ejs b/themes/hexo-theme-material-x-master/layout/_meta/music.ejs deleted file mode 100644 index 71268feed5ec25d372f172378067d72ccedc0058..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/music.ejs +++ /dev/null @@ -1,6 +0,0 @@ -<% if(post.music && post.music.enable != false){ %> - <%- partial('../_third-party/aplayer', - {aplayer_theme: '', aplayer_mini: true, aplayer_mode: 'circulation', - aplayer_server: post.music.server, aplayer_type: post.music.type, aplayer_id: post.music.id, - aplayer_volume: post.music.volume?post.music.volume:'0.7', aplayer_autoplay: post.music.autoplay?true:false }) %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/share.ejs b/themes/hexo-theme-material-x-master/layout/_meta/share.ejs deleted file mode 100644 index cb515b39281e6e65a7b25f4314f9168130df1f88..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/share.ejs +++ /dev/null @@ -1,3 +0,0 @@ -<% if (theme.share) { %> - <%- partial('../_third-party/share') %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/tags.ejs b/themes/hexo-theme-material-x-master/layout/_meta/tags.ejs deleted file mode 100644 index b219bbe5dff762d0f8c2f79a2870e0f00095bb57..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/tags.ejs +++ /dev/null @@ -1,9 +0,0 @@ -<% if (!isPostList && post.tags && post.tags.length) { %> - <% - var items = []; - post.tags.each(function(item){ - items.push('

' + item.name + '

'); - }); - %> - <%- items.join(' ') %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/thumbnail.ejs b/themes/hexo-theme-material-x-master/layout/_meta/thumbnail.ejs deleted file mode 100644 index 8cd47623cb7efb47b8561b9221e347d03a306077..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/thumbnail.ejs +++ /dev/null @@ -1,3 +0,0 @@ -<% if(post.thumbnail && post.thumbnail.length){ %> - -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/title.ejs b/themes/hexo-theme-material-x-master/layout/_meta/title.ejs deleted file mode 100644 index be03ffb0ad2b403200948d7b18595b95877ff519..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/title.ejs +++ /dev/null @@ -1,15 +0,0 @@ -<% if(isPostList){ %> -

- - <%- post.title ? post.title : date(post.date, theme.date_format) %> - -

-<% } else { %> - <% if (post.title || page.title || config.title) { %> -

- - <%- post.title ? post.title : date(post.date, theme.date_format) %> - -

- <% } %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/top.ejs b/themes/hexo-theme-material-x-master/layout/_meta/top.ejs deleted file mode 100644 index b3b9b3d728c35d54c0adbb8415b1bb027842917d..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/top.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if(isPostList && post.top){ %> -
- - -

<%- post.top != true ? post.top : __('post.top') %>

-
-
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_meta/updated.ejs b/themes/hexo-theme-material-x-master/layout/_meta/updated.ejs deleted file mode 100644 index dc58c1ab34f47f5770863794e5bbed0238d6b6dd..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_meta/updated.ejs +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

<%- __('post.updated') + ' ' + date(post.updated, theme.updated_date_format) %>

-
-
diff --git a/themes/hexo-theme-material-x-master/layout/_partial/archive.ejs b/themes/hexo-theme-material-x-master/layout/_partial/archive.ejs deleted file mode 100644 index 52fbf4bb57201d957b7696bae26ca0e30620ce20..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/archive.ejs +++ /dev/null @@ -1,76 +0,0 @@ -<% if (site.posts && site.posts.length > 0) { %> -
- <% if (!page.prev) { %> - <% if (is_home()) { %> - <% site.posts.each(function(post){ %> - <% if (post.top) { %> - <% if (page.type == undefined || post.type == page.type) { %> -
- <%- partial('post', {post: post}) %> -
- <% } %> - <% } %> - <% }) %> - <% } else if (page.posts && page.posts.length > 0) { %> - <% page.posts.each(function(post){ %> - <% if (post.top) { %> -
- <%- partial('post', {post: post}) %> -
- <% } %> - <% }) %> - <% } %> - <% } %> - <% if (page.posts && page.posts.length > 0) { %> - <% page.posts.each(function(post){ %> - <% if (!post.top) { %> -
- <%- partial('post', {post: post}) %> -
- <% } %> - <% }) %> - <% } %> -
- <% if (page && page.posts) { %> - <% if (page.total > 1) { %> -
-
-
- <% if (page.prev != 0) { %> - - <% } %> -

- <%= page.current%> / <%= page.total%> -

- <% if (page.next != 0) { %> - - <% } %> -
-
- - <% } %> - - <% - var need_mathjax = false; - page.posts.each(function(post){ - if (post.mathjax){ - if (post.mathjax != "internal") { - need_mathjax = true; - } - } - }); - %> - <% if (need_mathjax){ %> - <%- partial('mathjax') %> - <% } %> - - <% } %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_partial/article.ejs b/themes/hexo-theme-material-x-master/layout/_partial/article.ejs deleted file mode 100644 index 03e4fe443a8b3c7192e6b61e9cbf90c9a33d2359..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/article.ejs +++ /dev/null @@ -1,107 +0,0 @@ -<% var sections = page.body ? page.body : theme.layout.article.body; %> -<% if (sections.indexOf('article') > -1) { %> -
- <%- partial('meta', {post: post, position: 'header'}) %> -
-
- <%- post.content %> -
- <% if(post.layout == 'post'){ %> -
- <%- partial('meta', {post: post, position: 'footer'}) %> - <% } %> - <% if(post.prev || post.next){ %> -
- <% if(post.prev){ %> -
- -
 <%- __('post.prev_page') %>
-

- -

- <% if (post.prev.tags && post.prev.tags.length && post.prev.tags.each) { %> - <% - var items = []; - post.prev.tags.each(function(item){ - items.push(' ' + item.name + ''); - }); - %> -
- <%- items.join(' ') %> -
- <% } %> -
-
- <% } %> - <% if(post.next){ %> -
- -
- <%} %> -
- <%} %> -
-
-<% } %> -<% if (sections.indexOf('category') > -1 || sections.indexOf('tagcloud') > -1 || sections.indexOf('related_posts') > -1) { %> - <% sections.forEach(function(sectionName){ %> - <% if (['category', 'tagcloud', 'related_posts'].indexOf(sectionName) > -1) { %> - <% theme.sidebar.forEach(function(item){ %> - <% if (item.widget == sectionName) { %> - <%- partial('../_widget/' + item.widget, {item: item}) %> - <% } %> - <% }) %> - <% } %> - <% }) %> -<% } %> -<% if (sections.indexOf('comments') > -1) { %> - <%- partial('../_third-party/comments') %> -<% } %> - -<% - if (sections.indexOf('comments') < 0) { - page.comments = false; - } -%> - - -<% if (page.mathjax){ %> - <%- partial('mathjax') %> -<% } %> - -<% if (page.layout == 'post'){ %> - -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_partial/categories.ejs b/themes/hexo-theme-material-x-master/layout/_partial/categories.ejs deleted file mode 100644 index f9f33f488302624a99df3510e319a65f6c0985c8..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/categories.ejs +++ /dev/null @@ -1,11 +0,0 @@ -<% if (post.categories && post.categories.length && post.categories.forEach){ %> - <% - var cats = []; - post.categories.forEach(function(cat){ - cats.push('' + cat.name + ''); - }); - %> -
-  <%- cats.join(' / ') %> -
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_partial/cover.ejs b/themes/hexo-theme-material-x-master/layout/_partial/cover.ejs deleted file mode 100644 index c6c84f46a47a8900b3a712daded36614b16e395a..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/cover.ejs +++ /dev/null @@ -1,12 +0,0 @@ -<% if (showCover == true) { %> -
- - <% if (theme.cover.scheme == 'search') { %> - <%- partial('../_cover/search') %> - <% } %> - - <%- partial('header', null, {cache: false, path: path}) %> -
-<% } else { %> - <%- partial('header', null, {cache: false, path: path}) %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_partial/footer.ejs b/themes/hexo-theme-material-x-master/layout/_partial/footer.ejs deleted file mode 100644 index 659ed9396438584ac30ab793e8de69e23ed37a3d..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/footer.ejs +++ /dev/null @@ -1,36 +0,0 @@ - - diff --git a/themes/hexo-theme-material-x-master/layout/_partial/head.ejs b/themes/hexo-theme-material-x-master/layout/_partial/head.ejs deleted file mode 100644 index 0e527fac1a24ba2f2ea6602f7abb7dac991c3cee..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/head.ejs +++ /dev/null @@ -1,96 +0,0 @@ - - - - <% - var title = page.title; - if (is_archive()) { - title = 'Archives'; - if (is_month()) - title += ': ' + page.year + '/' + page.month; - else if (is_year()) - title += ': ' + page.year; - } - else if (is_category()) - title = 'Category: ' + page.category; - else if (is_tag()) - title = 'Tag: ' + page.tag; - %> - <% if (title) { %><%= title %> | <% } %><%= config.title %> - <% if (page.keywords && config.keywords){ %> - - <% } else if (page.keywords) { %> - - <% } else if (config.keywords) { %> - - <% } %> - <% if (page.description && config.description){ %> - - <% } else if (page.description) { %> - - <% } else if (config.description) { %> - - <% } %> - - <% if (config.feed && config.feed.path){ %> - <%- feed_tag(config.feed.path, {title: config.title}) %> - <% } %> - - - - - - <% if (config.import && config.import.meta){ %> - <% (config.import.meta||[]).forEach(function(item){ %> - <%- item %><% }) %> - <% } %> - - - - <% if (theme.nodewaves == true) { %> - - <% } %> - - <% if (config.import && config.import.link){ %> - <% (config.import.link||[]).forEach(function(item){ %> - <%- item %><% }) %> - <% } %> - - <% if (config.favicon) { %> - - <% } %> - - <% if (theme.info && theme.info.cdn && theme.info.cdn.css && theme.info.cdn.css.style) { %> - <%- css(theme.info.cdn.css.style) %> - <% } else { %> - <%- css('style.css') %> - <% } %> - - - - <% if (config.google_analytics_key) { %> - - - - <% } %> - <% if (config.baidu_analytics_key) { %> - - - <% } %> - diff --git a/themes/hexo-theme-material-x-master/layout/_partial/header.ejs b/themes/hexo-theme-material-x-master/layout/_partial/header.ejs deleted file mode 100644 index dcfdfb729d4328fa04dd6f1fe9d3e44ceb7b9682..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/header.ejs +++ /dev/null @@ -1,87 +0,0 @@ -
-
-
-
- -
- - - -
-
- - diff --git a/themes/hexo-theme-material-x-master/layout/_partial/mathjax.ejs b/themes/hexo-theme-material-x-master/layout/_partial/mathjax.ejs deleted file mode 100644 index 56656ca54bcb8e00f1f837db16f2ea346246f677..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/mathjax.ejs +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - diff --git a/themes/hexo-theme-material-x-master/layout/_partial/meta.ejs b/themes/hexo-theme-material-x-master/layout/_partial/meta.ejs deleted file mode 100644 index b0b035d4739af71f90cc6d3395bca2901583ea85..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/meta.ejs +++ /dev/null @@ -1,71 +0,0 @@ -<% if(is_home() || is_category() || is_archive() || is_tag() || page.layout == 'list') { - var isPostList = true; -} else { - var isPostList = false; -} -var topMetas = (theme.meta && theme.meta.header) || []; -if (isPostList) { - topMetas = theme.layout.posts.meta || []; -} else { - topMetas = theme.layout.article.header || []; -} -if (post.meta && (post.meta.header !== undefined && post.meta.header !== null)) { - if (post.meta.header.length) { - topMetas = post.meta.header; - } else { - topMetas = []; - } -} -var bottomMetas = (theme.meta && theme.meta.footer) || []; -if (isPostList) { - bottomMetas = []; -} else { - bottomMetas = theme.layout.article.footer || []; -} -if (post.meta && (post.meta.footer !== undefined && post.meta.footer !== null)) { - if (post.meta.footer.length) { - bottomMetas = post.meta.footer; - } else { - bottomMetas = []; - } -} -%> - -<% if (position == 'header') { %> -
- <% if (post.music && post.music.enable != false) { %> - <%- partial('../_third-party/aplayer', - {aplayer_theme: '', aplayer_mini: true, aplayer_mode: 'circulation', - aplayer_server: post.music.server, aplayer_type: post.music.type, aplayer_id: post.music.id, - aplayer_volume: post.music.volume?post.music.volume:'0.7', aplayer_autoplay: post.music.autoplay?true:false }) %> - <% } %> - <% if(post.thumbnail && post.thumbnail.length){ %> - - <% } %> -
- <% if((topMetas).indexOf('title') > -1){ %> - <%- partial('../_meta/' + 'title', {post: post, isPostList: isPostList}) %> - <% } %> -
- <% (topMetas).forEach(function(meta){ %> - <% if(meta != 'title'){ %> - <%- partial('../_meta/' + meta, {post: post, isPostList: isPostList}) %> - <% } %> - <% }) %> -
- <% if ((topMetas).length > 0){ %> -
- <% } %> -
-
-<% } else if (position == 'footer') { %> - -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_partial/post.ejs b/themes/hexo-theme-material-x-master/layout/_partial/post.ejs deleted file mode 100644 index e56d708b16673747cd47cdddd7c5167bea7ef6f5..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/post.ejs +++ /dev/null @@ -1,23 +0,0 @@ -
"> - <%- partial('meta',{post:post, position:'header'}) %> -
-
- <%- post.excerpt || post.description %> - <% if (post.readmore != false && post.path) { %> - - <% } %> -
- <% if (post.tags && post.tags.length) { %> -
- <% post.tags.each(function(item){ %> - <%=item.name %> - <%})%> -
- <% } %> -
-
diff --git a/themes/hexo-theme-material-x-master/layout/_partial/scripts.ejs b/themes/hexo-theme-material-x-master/layout/_partial/scripts.ejs deleted file mode 100644 index c970edb5966390f64e2ea167d552e32cb4fc6ab8..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/scripts.ejs +++ /dev/null @@ -1,231 +0,0 @@ - -<% if (theme.search && theme.search.enable) { %> - -<% } %> - - -<% if (theme.scrollreveal == true) { %> - - -<% } %> -<% if (theme.nodewaves == true) { %> - - -<% } %> -<% if (theme.busuanzi == true) { %> - -<% } %> -<% if (theme.fastclick == true) { %> - - - -<% } %> - -<% if (theme.backstretch && (theme.backstretch.images || page.images)) { %> - <% var imgs = theme.backstretch.images || page.images; %> - <% var posi = null; - if (theme.backstretch.position == 'cover') { - posi = '.cover'; - } - %> - <% if (imgs != undefined && theme.backstretch.position != undefined){ %> - - - <% } %> -<% } %> - - -<% - var enableDisqus = false; - var enableLivere = false; - var enableGitalk = false; - var enableValine = false; - if (page && page.comments == true) { - if (config.disqus_shortname) { - enableDisqus = true; - } - if (config.livere_uid) { - enableLivere = true; - } - if (config.gitalk) { - enableGitalk = true; - } - if (theme.valine.enable && config.leancloud) { - enableValine = true; - } - } -%> -<% if (enableDisqus){ %> - -<% } %> -<% if (enableLivere){ %> - -<% } %> -<% if (enableGitalk) { %> - - - -<% } %> - -<% if (enableValine){ %> - - <% if (theme.valine.volantis == true) { %> - <% if (theme.info && theme.info.cdn && theme.info.cdn.js && theme.info.cdn.js.volantis) { %> - <%- js(theme.info.cdn.js.volantis) %> - <% } else { %> - <%- js(['js/volantis.js']) %> - <% } %> - <% } else { %> - - <% } %> - -<% } %> - -<% if (theme.info && theme.info.cdn && theme.info.cdn.js && theme.info.cdn.js.app) { %> - <%- js(theme.info.cdn.js.app) %> -<% } else { %> - <%- js(['js/app.js']) %> -<% } %> -<% if (theme.info && theme.info.cdn && theme.info.cdn.js && theme.info.cdn.js.search) { %> - <%- js(theme.info.cdn.js.search) %> -<% } else { %> - <%- js(['js/search.js']) %> -<% } %> - -<% if (page.layout == 'links') { %> - <%- js('https://cdn.jsdelivr.net/gh/toddmotto/echo@1.7.3/src/echo.js') %> - -<% } %> - - -<%- partial('_third-party/clipboard') %> - - -<%- partial('_third-party/fancybox') %> - - -<% if (config.import && config.import.script){ %> -<% (config.import.script||[]).forEach(function(item){ %> -<%- item %><% }) %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_partial/side.ejs b/themes/hexo-theme-material-x-master/layout/_partial/side.ejs deleted file mode 100644 index 44a9e6c80fac1a95f2d53b5b443a4c55aa66a27c..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_partial/side.ejs +++ /dev/null @@ -1,44 +0,0 @@ - diff --git a/themes/hexo-theme-material-x-master/layout/_third-party/aplayer.ejs b/themes/hexo-theme-material-x-master/layout/_third-party/aplayer.ejs deleted file mode 100644 index c1cf813c49f870c9b7cf12345cf08b9ad662d001..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_third-party/aplayer.ejs +++ /dev/null @@ -1,15 +0,0 @@ -<% if (theme.music && theme.music.enable == true) { %> - -
data-mini=true <%}%> - <%if(aplayer_autoplay != undefined ? aplayer_autoplay : theme.music.autoplay){%>data-autoplay=true <%}%> - data-mode="<%- aplayer_mode != undefined ? aplayer_mode : theme.music.mode %>" - data-server="<%= aplayer_server != undefined ? aplayer_server : theme.music.server %>" - data-type="<%= aplayer_type != undefined ? aplayer_type : theme.music.type %>" - data-id="<%= aplayer_id != undefined ? aplayer_id : theme.music.id %>" - data-volume="<%= aplayer_volume != undefined ? aplayer_volume : theme.music.volume %>"> -
- - -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_third-party/clipboard.ejs b/themes/hexo-theme-material-x-master/layout/_third-party/clipboard.ejs deleted file mode 100644 index ec1df04eedce107e14e0a92ec082c85638b15b61..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_third-party/clipboard.ejs +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/themes/hexo-theme-material-x-master/layout/_third-party/comments.ejs b/themes/hexo-theme-material-x-master/layout/_third-party/comments.ejs deleted file mode 100644 index ec24df97b4b485021753a1a292159e147bd9d38b..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_third-party/comments.ejs +++ /dev/null @@ -1,57 +0,0 @@ - -<% - var enableDisqus = false; - var enableLivere = false; - var enableGitalk = false; - var enableValine = false; - if (page && page.comments != false) { - if (config.disqus_shortname) { - enableDisqus = true; - } - if (config.livere_uid) { - enableLivere = true; - } - if (config.gitalk) { - enableGitalk = true; - } - if (theme.valine.enable && config.leancloud) { - enableValine = true; - } - } -%> - -<% if (enableDisqus || enableLivere || enableGitalk || enableValine) { %> -
-
-

 <%- __('post.comments') %>

- <% if (enableDisqus) { %> -
-
-
 <%- __('post.comments_placeholder', 'Disqus') %>
-
-
- <% } %> - <% if (enableLivere){ %> -
-
- -
-
- <% } %> - <% if (enableGitalk){ %> -
-
-
- <% } %> - <% if (enableValine){ %> -
-
- -
-
- <% } %> -
-
-<% } else { %> - <% page.comments = false; %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_third-party/fancybox.ejs b/themes/hexo-theme-material-x-master/layout/_third-party/fancybox.ejs deleted file mode 100644 index 967dee24a1c98b5cb3c495cfc3aa69a95df275dc..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_third-party/fancybox.ejs +++ /dev/null @@ -1,18 +0,0 @@ - - diff --git a/themes/hexo-theme-material-x-master/layout/_third-party/share.ejs b/themes/hexo-theme-material-x-master/layout/_third-party/share.ejs deleted file mode 100644 index 4797143239427bd1fa8879498ecdd6cb53b141a1..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_third-party/share.ejs +++ /dev/null @@ -1,31 +0,0 @@ -
- -
diff --git a/themes/hexo-theme-material-x-master/layout/_widget/author.ejs b/themes/hexo-theme-material-x-master/layout/_widget/author.ejs deleted file mode 100644 index 62bc147720f29db5d9ea8db0f96eed97909a961d..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/author.ejs +++ /dev/null @@ -1,36 +0,0 @@ -
-
- <% if(item.avatar) { %> -
- -
- <%} %> - <% if (item.title || item.body || item.jinrishici) { %> -
- <% if (item.title){ %> -

<%- item.title %>

- <% } %> - <% if (item.body){ %> - <%- markdown(item.body) %> - <% } %> - <% if (item.jinrishici){ %> -

<%- item.jinrishici != true ? item.jinrishici : config.title %>

- - <% } %> -
- <% } %> - <% if (item.social == true && theme.social) { %> - - <% } %> -
-
diff --git a/themes/hexo-theme-material-x-master/layout/_widget/category.ejs b/themes/hexo-theme-material-x-master/layout/_widget/category.ejs deleted file mode 100644 index 2f510ccd7df3499fa7a1f09103491c5ad9e5b743..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/category.ejs +++ /dev/null @@ -1,12 +0,0 @@ -<% if (site.categories.length){ %> -
- <%- partial('header', {item: item, defIcon: 'fas fa-folder-open', defTitle: __('sidebar.category')}) %> -
- -
-
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_widget/grid.ejs b/themes/hexo-theme-material-x-master/layout/_widget/grid.ejs deleted file mode 100644 index 8cd86296f2a52e755d4b8506b6fd199b79340c35..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/grid.ejs +++ /dev/null @@ -1,26 +0,0 @@ -
- <%- partial('header', {item: item, defIcon: '', defTitle: ''}) %> - -
diff --git a/themes/hexo-theme-material-x-master/layout/_widget/header.ejs b/themes/hexo-theme-material-x-master/layout/_widget/header.ejs deleted file mode 100644 index ce5cfd17feb078e34f56320d001cb796ade2966d..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/header.ejs +++ /dev/null @@ -1,23 +0,0 @@ -<% - let icon = item.icon ? item.icon : defIcon; - let title = item.title ? item.title : defTitle; -%> -
-
  <%- title %>
- <% if (item.widget == 'toc') { %> - - <% } else if(item.more && item.more.url) { %> - - rel="<%- item.more.rel %>" - <% } else { %> - rel="external nofollow noopener noreferrer" - <% } %> - <% if (item.more.target) { %> - target="<%- item.more.target %>" - <% } %> - href="<%- url_for(item.more.url) %>" - title="<%- item.more.url %>"> - - <% } %> -
diff --git a/themes/hexo-theme-material-x-master/layout/_widget/list.ejs b/themes/hexo-theme-material-x-master/layout/_widget/list.ejs deleted file mode 100644 index 70ced6d31be80b3153c01b24990eed9611d4fb3a..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/list.ejs +++ /dev/null @@ -1,31 +0,0 @@ -
- <%- partial('header', {item: item, defIcon: '', defTitle: ''}) %> - -
diff --git a/themes/hexo-theme-material-x-master/layout/_widget/music.ejs b/themes/hexo-theme-material-x-master/layout/_widget/music.ejs deleted file mode 100644 index eaab7decac71c83d707f58d7d7ecef97cb13803b..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/music.ejs +++ /dev/null @@ -1,21 +0,0 @@ -<% -var needDisplay = true; -if (page.music && page.music.autoplay) { - needDisplay = false; -} -if (page.widget && page.widget.music == false) { - needDisplay = false; -} -%> - -<% if (theme.music && theme.music.enable == true && needDisplay == true) { %> -
- <%- partial('header', {item: item, defIcon: '', defTitle: ''}) %> -
- <%- partial('../_third-party/aplayer', - {aplayer_theme: item.color, aplayer_mini: false, aplayer_mode: item.mode, - aplayer_server: item.server, aplayer_type: item.type, aplayer_id: item.id, - aplayer_volume: item.volume, aplayer_autoplay: item.autoplay?item.autoplay:false }) %> -
-
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_widget/plain.ejs b/themes/hexo-theme-material-x-master/layout/_widget/plain.ejs deleted file mode 100644 index e7fbdab1ab07b72cfb45c2e4b2744cb5be43d9f4..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/plain.ejs +++ /dev/null @@ -1,6 +0,0 @@ -
'> - <%- partial('header', {item: item, defIcon: '', defTitle: ''}) %> -
- <%- markdown(item.body) %> -
-
diff --git a/themes/hexo-theme-material-x-master/layout/_widget/related_posts.ejs b/themes/hexo-theme-material-x-master/layout/_widget/related_posts.ejs deleted file mode 100644 index 502881552dec96c52ff0e30c724d74163a8be977..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/related_posts.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if(page.layout == 'post' && page.content && page.path != undefined){ %> -
- <%- partial('header', {item: item, defIcon: 'fas fa-bookmark', defTitle: __('sidebar.related_posts')}) %> -
- <%- popular_posts( { maxCount: 10 , ulClass: 'popular-posts' , PPMixingRate: 0.2 } , page ) %> -
-
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_widget/tagcloud.ejs b/themes/hexo-theme-material-x-master/layout/_widget/tagcloud.ejs deleted file mode 100644 index ed37435db88e8b45f032ebc18cfd9e1f715513f7..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/tagcloud.ejs +++ /dev/null @@ -1,14 +0,0 @@ -<% if (site.tags.length){ %> -
- <%- partial('header', {item: item, defIcon: 'fas fa-tags', defTitle: __('sidebar.tagcloud')}) %> -
- <%- tagcloud(site.tags, { - min_font: 14, - max_font: 24, - color: true, - start_color: item.start_color ? item.start_color : '#999', - end_color: item.end_color ? item.end_color : '#555', - }) %> -
-
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/_widget/toc.ejs b/themes/hexo-theme-material-x-master/layout/_widget/toc.ejs deleted file mode 100644 index d0467d8b1edc0cf312d288b498b282620b3466c8..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/_widget/toc.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if(page.layout == 'post' && page.content && toc(page.content).length > 0){ %> -
- <%- partial('header', {item: item, defIcon: 'fas fa-list', defTitle: __('sidebar.toc')}) %> -
- <%- toc(page.content, {list_number: false}) %> -
-
-<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/archive.ejs b/themes/hexo-theme-material-x-master/layout/archive.ejs deleted file mode 100644 index c57b19c396a7d8dc7adbebad99f55e26325ba6ae..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/archive.ejs +++ /dev/null @@ -1,64 +0,0 @@ -
'> - <% if (page.year || page.month) { %> - <%- partial('_partial/archive') %> - <% } else { %> -
-
- <% - var year = -1, postid = -1; - site.posts.sort('date', -1).each(function(post) { - post.year = date(post.date, 'YYYY'); - if (post.year && post.year !== year) { - year = post.year; - %> -
-

<%= year %>

-
- <% } %> -
- - - - <% if(post.title){ %> - <%- post.title %> - <% } else if (post.date) { %> - <%= date(post.date, config.date_format) %> - <% } %> - <% if(post.music && post.music.enable != false){ %> -   - <% } %> - <% if (post.icon) { %> -   - <% } %> - <% (post.icons && post.icons||[]).forEach(function(icon){ %> -   - <% }) %> - - -
- <% }); %> -
-
- <% } %> -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> - - -<% if (page && page.posts) { %> - - <% - var need_mathjax = false; - page.posts.each(function(post){ - if (post.mathjax){ - if (post.mathjax != "internal") { - need_mathjax = true; - } - } - }); - %> - - <% if (need_mathjax){ %> - <%- partial('_partial/mathjax') %> - <% } %> -<% } %> diff --git a/themes/hexo-theme-material-x-master/layout/category.ejs b/themes/hexo-theme-material-x-master/layout/category.ejs deleted file mode 100644 index fc1ea2a3592957ed6edce82e993f7b2b2c9eacff..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/category.ejs +++ /dev/null @@ -1,38 +0,0 @@ -<% page.comments = false; %> -
'> - <% if (site.posts && site.posts.length > 0) { %> - <% if (page.layout == 'category') { %> -
-
- -
-
- <% } else { %> - <%- partial('_partial/archive') %> - <% } %> - <% } %> - -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> diff --git a/themes/hexo-theme-material-x-master/layout/index.ejs b/themes/hexo-theme-material-x-master/layout/index.ejs deleted file mode 100644 index 11ef3c83e13b8e96d30e8a7487a30aa77ec727a3..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/index.ejs +++ /dev/null @@ -1,5 +0,0 @@ -
'> - <%- partial('_partial/archive') %> -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> diff --git a/themes/hexo-theme-material-x-master/layout/layout.ejs b/themes/hexo-theme-material-x-master/layout/layout.ejs deleted file mode 100644 index 29acf0caff36ce161d25615f455264cf3d870033..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/layout.ejs +++ /dev/null @@ -1,36 +0,0 @@ - - -<%- partial('_partial/head') %> - - <% - var showCover = false; - if (theme.cover) { - // 如果页面的Front-matter声明了cover,就取页面的值 - if (page.cover != undefined && page.cover != undefined) { - showCover = page.cover; - } else { - // 否则,如果是首页,只有首页的第一页显示 - if (is_home()) { - if (page.prev) { - showCover = false; - } else { - showCover = true; - } - } else { - showCover = true; - } - } - } - %> - <%- partial('_partial/cover', {showCover: showCover}) %> -
-
- <%- body %> - -
- -
- <%- partial('_partial/scripts') %> - - - diff --git a/themes/hexo-theme-material-x-master/layout/links.ejs b/themes/hexo-theme-material-x-master/layout/links.ejs deleted file mode 100644 index 9d3afde46bdac2dd51147b3a0f4dcd1520ba0291..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/links.ejs +++ /dev/null @@ -1,51 +0,0 @@ -
'> -
- <%- partial('_partial/meta',{post:page, position:'header'}) %> -
- <% if (page.links){ %> - <% (page.links||[]).forEach(function(group){ %> - <% if(group.items) { %> -
- <% if(group.group) { %> -
-

- <% if (group.icon) { %> - - <%} %> - <%= group.group %> -

- <%} %> - -
- <%} %> - <% }) %> - <% } %> -

- <%- page.content %> -
-
- - <%- partial('_third-party/comments') %> - -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> diff --git a/themes/hexo-theme-material-x-master/layout/list.ejs b/themes/hexo-theme-material-x-master/layout/list.ejs deleted file mode 100644 index c41d87ef34d0c940b6731ee275ffe6ca9434ff15..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/list.ejs +++ /dev/null @@ -1,46 +0,0 @@ -<% page.comments = false; %> -
'> - <% if (site.posts && site.posts.length > 0) { %> -
- <% if (!page.prev) { %> - <% site.posts.sort(page.sort ? page.sort : "-date").each(function(post){ %> - <% if (post.type && post.type == page.type) { %> - <% if (post.top) { %> -
- <%- partial('_partial/post', {post: post, index: false}) %> -
- <% } %> - <% } %> - <% }) %> - <% } %> - <% site.posts.sort(page.sort ? page.sort : "-date").each(function(post){ %> - <% if (post.type && post.type == page.type) { %> - <% if (!post.top) { %> -
- <%- partial('_partial/post', {post: post, index: false}) %> -
- <% } %> - <% } %> - <% }) %> -
- <% if (page && page.posts) { %> - - <% - var need_mathjax = false; - page.posts.each(function(post){ - if (post.mathjax){ - if (post.mathjax != "internal") { - need_mathjax = true; - } - } - }); - %> - <% if (need_mathjax){ %> - <%- partial('mathjax') %> - <% } %> - - <% } %> - <% } %> -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> diff --git a/themes/hexo-theme-material-x-master/layout/page.ejs b/themes/hexo-theme-material-x-master/layout/page.ejs deleted file mode 100644 index 3db1a6388b2f5e01fbde10899caf371e3a55194f..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/page.ejs +++ /dev/null @@ -1,5 +0,0 @@ -
'> - <%- partial('_partial/article', {post: page, index: false}) %> -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> diff --git a/themes/hexo-theme-material-x-master/layout/post.ejs b/themes/hexo-theme-material-x-master/layout/post.ejs deleted file mode 100644 index 3db1a6388b2f5e01fbde10899caf371e3a55194f..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/post.ejs +++ /dev/null @@ -1,5 +0,0 @@ -
'> - <%- partial('_partial/article', {post: page, index: false}) %> -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> diff --git a/themes/hexo-theme-material-x-master/layout/tag.ejs b/themes/hexo-theme-material-x-master/layout/tag.ejs deleted file mode 100644 index f928c1a99f5b6397f2dc9da430aa646cecbde25b..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/layout/tag.ejs +++ /dev/null @@ -1,39 +0,0 @@ -<% page.comments = false; %> -
- <% if (site.posts && site.posts.length > 0) { %> - <% if (page.layout == 'tag') { %> -
-
- -
-
- <% } else { %> - <%- partial('_partial/archive') %> - <% } %> - <% } %> -
-<%- partial('_partial/side') %> -<%- partial('_partial/footer', null, {cache: !config.relative_link}) %> diff --git a/themes/hexo-theme-material-x-master/source/fonts/Monaco.ttf b/themes/hexo-theme-material-x-master/source/fonts/Monaco.ttf deleted file mode 100644 index 13ca480ac8b0d9ff71d3d8e20aaec374c9e3f20a..0000000000000000000000000000000000000000 Binary files a/themes/hexo-theme-material-x-master/source/fonts/Monaco.ttf and /dev/null differ diff --git a/themes/hexo-theme-material-x-master/source/fonts/Skranji-Regular.ttf b/themes/hexo-theme-material-x-master/source/fonts/Skranji-Regular.ttf deleted file mode 100644 index 4301e7fcfb8c5bb94d2e3816a67d9a9d76c4a8f5..0000000000000000000000000000000000000000 Binary files a/themes/hexo-theme-material-x-master/source/fonts/Skranji-Regular.ttf and /dev/null differ diff --git a/themes/hexo-theme-material-x-master/source/fonts/Ubuntu-Regular.ttf b/themes/hexo-theme-material-x-master/source/fonts/Ubuntu-Regular.ttf deleted file mode 100644 index 421ab0b32933755c8c511348a92752c4443f29d9..0000000000000000000000000000000000000000 Binary files a/themes/hexo-theme-material-x-master/source/fonts/Ubuntu-Regular.ttf and /dev/null differ diff --git a/themes/hexo-theme-material-x-master/source/js/app.js b/themes/hexo-theme-material-x-master/source/js/app.js deleted file mode 100644 index 764ebdff7cbab1bfcbcb932e3ddeeb886692edae..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/js/app.js +++ /dev/null @@ -1,293 +0,0 @@ -/* eslint-disable */ -var customSearch; -(function ($) { - - "use strict"; - var scrollCorrection = 80; // (header height = 64px) + (gap = 16px) - const $headerAnchor = $('.l_header', '.cover-wrapper'); - if ($headerAnchor[0]) { - scrollCorrection = $headerAnchor[0].clientHeight + 16; - } - - function scrolltoElement(elem, correction) { - correction = correction || scrollCorrection; - const $elem = elem.href ? $(elem.getAttribute('href')) : $(elem); - $('html, body').animate({ 'scrollTop': $elem.offset().top - correction }, 400); - }; - - function setScrollAnchor(){ - // button - const $postsBtn = $('.menu .active'); - const $topBtn = $('.s-top'); - const $titleBtn = $('h1.title', '#header-meta'); - // anchor - const $bodyAnchor = $('.l_body'); - // action - if ($postsBtn.length && $bodyAnchor) { - $postsBtn.click(e => { e.preventDefault(); e.stopPropagation(); scrolltoElement($bodyAnchor); }); - } - if ($titleBtn.length && $bodyAnchor) { - $titleBtn.click(e => { e.preventDefault(); e.stopPropagation(); scrolltoElement($bodyAnchor); }); - } - if ($topBtn.length && $bodyAnchor) { - $topBtn.click(e => { e.preventDefault(); e.stopPropagation(); scrolltoElement($bodyAnchor); }); - } - - const $coverAnchor = $('.cover-wrapper'); - var showHeaderPoint = 0; - if ($coverAnchor[0]) { - showHeaderPoint = $coverAnchor[0].clientHeight - 164; - } - var pos = document.body.scrollTop; - $(document, window).scroll(() => { - const scrollTop = $(window).scrollTop(); - const del = scrollTop - pos; - pos = scrollTop; - if (scrollTop > 150) { - $topBtn.addClass('show'); - if (del > 0) { - $topBtn.removeClass('hl'); - } else { - $topBtn.addClass('hl'); - } - } else { - $topBtn.removeClass('show').removeClass('hl'); - } - if (scrollTop > showHeaderPoint) { - $headerAnchor.addClass('show'); - } else { - $headerAnchor.removeClass('show'); - } - }); - } - - function setHeader() { - if (!window.subData) return; - const $wrapper = $('header .wrapper'); - const $comment = $('.s-comment', $wrapper); - const $toc = $('.s-toc', $wrapper); - - $wrapper.find('.nav-sub .logo').text(window.subData.title); - let pos = document.body.scrollTop; - $(document, window).scroll(() => { - const scrollTop = $(window).scrollTop(); - const del = scrollTop - pos; - if (del >= 50 && scrollTop > 100) { - pos = scrollTop; - $wrapper.addClass('sub'); - } else if (del <= -50) { - pos = scrollTop; - $wrapper.removeClass('sub'); - } - }); - - // bind events to every btn - const $commentTarget = $('#comments'); - if ($commentTarget.length) { - $comment.click(e => { e.preventDefault(); e.stopPropagation(); scrolltoElement($commentTarget); }); - } else $comment.remove(); - - const $tocTarget = $('.toc-wrapper'); - if ($tocTarget.length && $tocTarget.children().length) { - $toc.click((e) => { e.stopPropagation(); $tocTarget.toggleClass('active'); }); - } else $toc.remove(); - - - - } - - function setHeaderMenuSelection() { - var $headerMenu = $('body .navgation'); - // 先把已经激活的取消激活 - $headerMenu.find('li a.active').removeClass('active'); - // var $underline = $headerMenu.find('.underline'); - function setUnderline($item) { - // if (!transition) $underline.addClass('disable-trans'); - if ($item && $item.length) { - $item.addClass('active').siblings().removeClass('active'); - } - } - //set current active nav - var $active_link = null; - var idname = location.pathname.replace(/\/|%/g, ""); - if (idname.length == 0) { - idname = "home"; - } - var page = idname.match(/page\d{0,}$/g); - if (page) { - page = page[0]; - idname = idname.split(page)[0]; - } - var index = idname.match(/index.html/); - if (index) { - index = index[0]; - idname = idname.split(index)[0]; - } - if (idname && $headerMenu) { - $active_link = $('#' + idname, $headerMenu); - setUnderline($active_link); - } - } - - function setHeaderMenuPhone() { - var $switcher = $('.l_header .switcher .s-menu'); - $switcher.click(function (e) { - e.stopPropagation(); - $('body').toggleClass('z_menu-open'); - $switcher.toggleClass('active'); - }); - $(document).click(function (e) { - $('body').removeClass('z_menu-open'); - $switcher.removeClass('active'); - }); - } - - function setHeaderSearch() { - var $switcher = $('.l_header .switcher .s-search'); - var $header = $('.l_header'); - var $search = $('.l_header .m_search'); - if ($switcher.length === 0) return; - $switcher.click(function (e) { - e.stopPropagation(); - $header.toggleClass('z_search-open'); - $search.find('input').focus(); - }); - $(document).click(function (e) { - $header.removeClass('z_search-open'); - }); - $search.click(function (e) { - e.stopPropagation(); - }); - $header.ready(function () { - $header.bind('keydown', function (event) { - if (event.keyCode == 9) { - return false; - } else { - var isie = (document.all) ? true: false; - var key; - var ev; - if (isie) { //IE浏览器 - key = window.event.keyCode; - ev = window.event; - } else { //火狐浏览器 - key = e.which; - ev = e; - } - if (key == 9) { //IE浏览器 - if (isie) { - ev.keyCode = 0; - ev.returnValue = false; - } else { //火狐浏览器 - ev.which = 0; - ev.preventDefault(); - } - } - } - }); - }); - } - - function setTocToggle() { - const $toc = $('.toc-wrapper'); - if ($toc.length === 0) return; - // $toc.click((e) => { - // e.stopPropagation(); - // $toc.addClass('active'); - // }); - $(document).click(() => $toc.removeClass('active')); - - $toc.on('click', 'a', (e) => { - e.preventDefault(); - e.stopPropagation(); - if (e.target.tagName === 'A') { - scrolltoElement(e.target); - } else if (e.target.tagName === 'SPAN') { - scrolltoElement(e.target.parentElement); - } - $toc.removeClass('active'); - }); - - const liElements = Array.from($toc.find('li a')); - //function animate above will convert float to int. - const getAnchor = () => liElements.map(elem => Math.floor($(elem.getAttribute('href')).offset().top - scrollCorrection)); - - let anchor = getAnchor(); - const scrollListener = () => { - const scrollTop = $('html').scrollTop() || $('body').scrollTop(); - if (!anchor) return; - //binary search. - let l = 0, r = anchor.length - 1, mid; - while (l < r) { - mid = (l + r + 1) >> 1; - if (anchor[mid] === scrollTop) l = r = mid; - else if (anchor[mid] < scrollTop) l = mid; - else r = mid - 1; - } - $(liElements).removeClass('active').eq(l).addClass('active'); - } - $(window) - .resize(() => { - anchor = getAnchor(); - scrollListener(); - }) - .scroll(() => { - scrollListener() - }); - scrollListener(); - } - - - $(function () { - //set header - setHeader(); - setHeaderMenuSelection(); - setHeaderMenuPhone(); - setHeaderSearch(); - - setTocToggle(); - setScrollAnchor(); - // $(".article .video-container").fitVids(); - - setTimeout(function () { - $('#loading-bar-wrapper').fadeOut(500); - }, 300); - - - if (SEARCH_SERVICE === 'google') { - customSearch = new GoogleCustomSearch({ - apiKey: GOOGLE_CUSTOM_SEARCH_API_KEY, - engineId: GOOGLE_CUSTOM_SEARCH_ENGINE_ID, - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'algolia') { - customSearch = new AlgoliaSearch({ - apiKey: ALGOLIA_API_KEY, - appId: ALGOLIA_APP_ID, - indexName: ALGOLIA_INDEX_NAME, - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'hexo') { - customSearch = new HexoSearch({ - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'azure') { - customSearch = new AzureSearch({ - serviceName: AZURE_SERVICE_NAME, - indexName: AZURE_INDEX_NAME, - queryKey: AZURE_QUERY_KEY, - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'baidu') { - customSearch = new BaiduSearch({ - apiId: BAIDU_API_ID, - imagePath: "/images/" - }); - } - - }); - -})(jQuery); diff --git a/themes/hexo-theme-material-x-master/source/js/search.js b/themes/hexo-theme-material-x-master/source/js/search.js deleted file mode 100644 index 9da102d0495dd44c7f0e0a0586c6e3d2adc42663..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/js/search.js +++ /dev/null @@ -1,780 +0,0 @@ -/* eslint-disable */ -var SearchService = ""; - -(function($) { - /** - * A super class of common logics for all search services - * @param options : (object) - */ - SearchService = function(options) { - var self = this; - - self.config = $.extend({ - per_page: 10, - selectors: { - body: "body", - form: ".u-search-form", - input: ".u-search-input", - container: "#u-search", - modal: "#u-search .modal", - modal_body: "#u-search .modal-body", - modal_footer: "#u-search .modal-footer", - modal_overlay: "#u-search .modal-overlay", - modal_results: "#u-search .modal-results", - modal_metadata: "#u-search .modal-metadata", - modal_error: "#u-search .modal-error", - modal_loading_bar: "#u-search .modal-loading-bar", - modal_ajax_content: "#u-search .modal-ajax-content", - modal_logo: '#u-search .modal-footer .logo', - btn_close: "#u-search .btn-close", - btn_next: "#u-search .btn-next", - btn_prev: "#u-search .btn-prev" - }, - brands: { - 'google': {logo: 'google.svg', url: 'https://cse.google.com'}, - 'algolia': {logo: 'algolia.svg', url: 'https://www.algolia.com'}, - 'hexo': {logo: '', url: ''}, - 'azure': {logo: 'azure.svg', url: 'https://azure.microsoft.com/en-us/services/search/'}, - 'baidu': {logo: 'baidu.svg', url: 'http://zn.baidu.com/cse/home/index'} - }, - imagePath: ROOT + "img/" - }, options); - - self.dom = {}; - self.percentLoaded = 0; - self.open = false; - self.queryText = ""; - self.nav = { - next: -1, - prev: -1, - total: 0, - current: 1 - }; - - self.parseSelectors = function() { - for (var key in self.config.selectors) { - self.dom[key] = $(self.config.selectors[key]); - } - }; - - self.beforeQuery = function() { - if (!self.open) { - self.dom.container.fadeIn(); - self.dom.body.addClass('modal-active'); - } - self.dom.input.each(function(index,elem) { - $(elem).val(self.queryText); - }); - document.activeElement.blur(); - self.dom.modal_error.hide(); - self.dom.modal_ajax_content.removeClass('loaded'); - self.startLoading(); - }; - - self.afterQuery = function() { - self.dom.modal_body.scrollTop(0); - self.dom.modal_ajax_content.addClass('loaded'); - self.stopLoading(); - }; - - /** - * Perform a complete serach operation including UI updates and query - * @param startIndex {int} start index or page number - */ - self.search = function(startIndex, callback) { - self.beforeQuery(); - if (self.search instanceof Function) { - self.query(self.queryText, startIndex, function() { - self.afterQuery(); - }); - } - else { - console.log("query() does not exist."); - self.onQueryError(self.queryText, ''); - self.afterQuery(); - } - }; - - /** - * Query error handler - * @param queryText: (string) - * @param status: (string) - */ - self.onQueryError = function(queryText, status) { - var errMsg = ""; - if (status === "success") errMsg = "No result found for \"" +queryText+ "\"."; - else if (status === "timeout") errMsg = "Unfortunate timeout."; - else errMsg = "Mysterious failure."; - self.dom.modal_results.html(""); - self.dom.modal_error.html(errMsg); - self.dom.modal_error.show(); - }; - - self.nextPage = function() { - if (self.nav.next !== -1) { - self.search(self.nav.next); - } - }; - - self.prevPage = function() { - if (self.nav.prev !== -1) { - self.search(self.nav.prev); - } - }; - - /** - * Generate html for one result - * @param url : (string) url - * @param title : (string) title - * @param digest : (string) digest - */ - self.buildResult = function(url, title, digest) { - var html = ""; - html = "
  • "; - html += ""; - html += "" +title+ ""; - html += "" +digest+ ""; - html += ""; - html += ""; - html += "
  • "; - return html; - }; - - /** - * Close the modal, resume body scrolling - * no param - */ - self.close = function() { - self.open = false; - self.dom.container.fadeOut(); - self.dom.body.removeClass('modal-active'); - }; - - /** - * Searchform submit event handler - * @param queryText : (string) the query text - */ - self.onSubmit = function(event) { - event.preventDefault(); - self.queryText = $(this).find('.u-search-input').val(); - if (self.queryText) { - self.search(1); - } - }; - - /** - * Start loading bar animation - * no param - */ - self.startLoading = function() { - self.dom.modal_loading_bar.show(); - self.loadingTimer = setInterval(function() { - self.percentLoaded = Math.min(self.percentLoaded+5,95); - self.dom.modal_loading_bar.css('width', self.percentLoaded+'%'); - }, 100); - }; - - /** - * Stop loading bar animation - * no param - */ - self.stopLoading = function() { - clearInterval(self.loadingTimer); - self.dom.modal_loading_bar.css('width', '100%'); - self.dom.modal_loading_bar.fadeOut(); - setTimeout(function() { - self.percentLoaded = 0; - self.dom.modal_loading_bar.css('width', '0%'); - }, 300); - }; - - /** - * Add service branding - * @param service {String} service name - */ - self.addLogo = function(service) { - var html = ""; - if (self.config.brands[service] && self.config.brands[service].logo) { - html += ""; - html += ''; - html += ""; - self.dom.modal_logo.html(html); - } - }; - - self.destroy = function() { - self.dom.form.each(function(index,elem) { - $(elem).off('submit'); - }); - self.dom.modal_overlay.off('click'); - self.dom.btn_close.off('click'); - self.dom.btn_next.off('click'); - self.dom.btn_prev.off('click'); - self.dom.container.remove(); - }; - - /** - * Load template and register event handlers - * no param - */ - self.init = function() { - $('body').append(template); - self.parseSelectors(); - self.dom.modal_footer.show(); - self.dom.form.each(function(index,elem) { - $(elem).on('submit', self.onSubmit); - }); - self.dom.modal_overlay.on('click', self.close); - self.dom.btn_close.on('click', self.close); - self.dom.btn_next.on('click', self.nextPage); - self.dom.btn_prev.on('click', self.prevPage); - }; - - self.init(); - }; - - var template = ''; -})(jQuery); - -var AlgoliaSearch; - -(function($) { - 'use strict'; - - /** - * Search by Algolia Search - * @param options : (object) - */ - AlgoliaSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = "https://" +self.config.app_id+ "-dsn.algolia.net/1/indexes/" +self.config.indexName; - self.addLogo('algolia'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data) { - var html = ""; - $.each(data, function(index, row) { - var url = row.permalink || row.path || ""; - if (!row.permalink && row.path) { - url = ROOT + url; - } - var title = row.title; - var digest = row._highlightResult.excerptStrip.value || ""; - html += self.buildResult(url, title, digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw search response data - */ - self.buildMetadata = function(data) { - self.nav.current = data.page * data.hitsPerPage + 1; - self.nav.currentCount = data.hits.length; - self.nav.total = parseInt(data.nbHits); - self.dom.modal_metadata.children('.total').html(self.nav.total); - self.dom.modal_metadata.children('.range').html(self.nav.current + "-" + (self.nav.current+self.nav.currentCount-1)); - if (self.nav.total > 0) { - self.dom.modal_metadata.show(); - } - else { - self.dom.modal_metadata.hide(); - } - - if (data.page < data.nbPages-1) { - self.nav.next = (data.page+1)+1; - self.dom.btn_next.show(); - } - else { - self.nav.next = -1; - self.dom.btn_next.hide(); - } - if (data.page > 0) { - self.nav.prev = (data.page+1)-1; - self.dom.btn_prev.show(); - } - else { - self.nav.prev = -1; - self.dom.btn_prev.hide(); - } - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param page : (int) the current page (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, page, callback) { - $.get(endpoint, { - query: queryText, - page: page-1, - hitsPerPage: self.config.per_page, - "x-algolia-application-id": self.config.app_id, - "x-algolia-api-key": self.config.apiKey - }, function(data, status) { - if (status === 'success' && data.hits && data.hits.length > 0) { - var results = self.buildResultList(data.hits); - self.dom.modal_results.html(results); - } - else { - self.onQueryError(queryText, status); - } - self.buildMetadata(data); - if (callback) { - callback(data); - } - }); - }; - - return self; - }; - -})(jQuery); -var AzureSearch; - -(function($) { - 'use strict'; - - /** - * Search by Azure Search API - * @param options : (object) - */ - AzureSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = "https://" +self.config.serviceName+ ".search.windows.net/indexes/" +self.config.indexName+ "/docs?api-version=2015-02-28"; - self.nav.current = 1; - self.addLogo('azure'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data) { - var html = ""; - $.each(data, function(index, row) { - var url = row.permalink || row.path || ""; - if (!row.permalink && row.path) { - url = "/" + url; - } - var title = row.title; - var digest = row.excerpt || ""; - html += self.buildResult(url, title, digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw response data - * @param startIndex : (int) requested start index of current query - */ - self.buildMetadata = function(data, startIndex) { - self.nav.current = startIndex; - self.nav.currentCount = data.value.length; - self.nav.total = parseInt(data['@odata.count']); - self.dom.modal_metadata.children('.total').html(self.nav.total); - self.dom.modal_metadata.children('.range').html(self.nav.current + "-" + (self.nav.current+self.nav.currentCount-1)); - if (self.nav.total > 0) { - self.dom.modal_metadata.show(); - } - else { - self.dom.modal_metadata.hide(); - } - - if (self.nav.current+self.nav.currentCount <= self.nav.total) { - self.nav.next = self.nav.current+self.nav.currentCount; - self.dom.btn_next.show(); - } - else { - self.nav.next = -1; - self.dom.btn_next.hide(); - } - if (self.nav.current > 1) { - self.nav.prev = self.nav.current-self.config.per_page; - self.dom.btn_prev.show(); - } - else { - self.nav.prev = -1; - self.dom.btn_prev.hide(); - } - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param page : (int) the current page (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, startIndex, callback) { - $.ajax({ - url: endpoint, - headers: { - "Accept": "application/json", - "api-key": self.config.queryKey - }, - data: { - search: queryText, - $orderby: "date desc", - $skip: startIndex-1, - $top: self.config.per_page, - $count: true - }, - type: "GET", - success: function(data, status) { - if (status === 'success' && data.value && data.value.length > 0) { - var results = self.buildResultList(data.value); - self.dom.modal_results.html(results); - } - else { - self.onQueryError(queryText, status); - } - self.buildMetadata(data, startIndex); - if (callback) { - callback(data); - } - } - }); - }; - - return self; - }; - -})(jQuery); -var BaiduSearch; - -(function($) { - 'use strict'; - - /** - * TODO - * Search by Baidu Search API - * @param options : (object) - */ - BaiduSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = ""; - self.addLogo('baidu'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data, queryText) { - var results = [], - html = ""; - $.each(data, function(index, post) { - if (self.contentSearch(post, queryText)) - html += self.buildResult(post.linkUrl, post.title, post.abstract); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw google custom search response data - */ - self.buildMetadata = function(data) { - - }; - - self.loadScript = function() { - self.dom.input.each(function(index,elem) { - $(elem).attr('disabled', true); - }); - var script = ""; - self.dom.body.append(script); - }; - - self.initBaidu = function() { - self.cse = new BCse.Search(self.config.apiId); - //self.cse.setPageNum(self.config.per_page); - self.dom.input.each(function(index,elem) { - $(elem).attr('disabled', false); - }); - }; - - /** - * Get search results - * @param queryText {String} - * @param page {Integer} - * @param callback {Function} - */ - self.query = function(queryText, page, callback) { - self.cse.getResult(queryText, function(data) { - console.log("Searching: " + queryText); - self.cse.getError(function(data) { - console.log(data); - }); - if (data.length > 0) { - self.buildResultList(data, queryText); - self.cse.getSearchInfo(queryText, function(data) { - console.log(data); - self.buildMetadata(data); - }); - } - else { - self.nav.total = 0; - self.nav.next = -1; - self.nav.prev = -1; - self.dom.modal_metadata.hide(); - self.dom.btn_next.hide(); - self.dom.btn_prev.hide(); - self.onQueryError(queryText, "success"); - } - if (callback instanceof Function) { - callback(); - } - }); - }; - - self.loadScript(); - - return self; - }; - -})(jQuery); -var GoogleCustomSearch = ""; - -(function($) { - 'use strict'; - - /** - * Search by Google Custom Search Engine JSON API - * @param options : (object) - */ - GoogleCustomSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = "https://www.googleapis.com/customsearch/v1"; - self.addLogo('google'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data) { - var html = ""; - $.each(data, function(index, row) { - var url = row.link; - var title = row.title; - var digest = (row.htmlSnippet || "").replace('
    ',''); - html += self.buildResult(url, title, digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw google custom search response data - */ - self.buildMetadata = function(data) { - if (data.queries && data.queries.request && data.queries.request[0].totalResults !== '0') { - self.nav.current = data.queries.request[0].startIndex; - self.nav.currentCount = data.queries.request[0].count; - self.nav.total = parseInt(data.queries.request[0].totalResults); - self.dom.modal_metadata.children('.total').html(self.nav.total); - self.dom.modal_metadata.children('.range').html(self.nav.current + "-" + (self.nav.current+self.nav.currentCount-1)); - self.dom.modal_metadata.show(); - } - else { - self.dom.modal_metadata.hide(); - } - if (data.queries && data.queries.nextPage) { - self.nav.next = data.queries.nextPage[0].startIndex; - self.dom.btn_next.show(); - } - else { - self.nav.next = -1; - self.dom.btn_next.hide(); - } - if (data.queries && data.queries.previousPage) { - self.nav.prev = data.queries.previousPage[0].startIndex; - self.dom.btn_prev.show(); - } - else { - self.nav.prev = -1; - self.dom.btn_prev.hide(); - } - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param startIndex : (int) the index of first item (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, startIndex, callback) { - $.get(endpoint, { - key: self.config.apiKey, - cx: self.config.engineId, - q: queryText, - start: startIndex, - num: self.config.per_page - }, function(data, status) { - if (status === 'success' && data.items && data.items.length > 0) { - var results = self.buildResultList(data.items); - self.dom.modal_results.html(results); - } - else { - self.onQueryError(queryText, status); - } - self.buildMetadata(data); - if (callback) { - callback(); - } - }); - }; - - return self; - }; -})(jQuery); -var HexoSearch; - -(function($) { - 'use strict'; - - /** - * Search by Hexo generator json content - * @param options : (object) - */ - HexoSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - self.config.endpoint = ROOT + ((options||{}).endpoint || "content.json"); - self.config.endpoint = self.config.endpoint.replace("//","/"); //make sure the url is correct - self.cache = ""; - - /** - * Search queryText in title and content of a post - * Credit to: http://hahack.com/codes/local-search-engine-for-hexo/ - * @param post : the post object - * @param queryText : the search query - */ - self.contentSearch = function(post, queryText) { - var post_title = post.title.trim().toLowerCase(), - post_content = post.text.trim().toLowerCase(), - keywords = queryText.trim().toLowerCase().split(" "), - foundMatch = false, - index_title = -1, - index_content = -1, - first_occur = -1; - if (post_title !== '' && post_content !== '') { - $.each(keywords, function(index, word) { - index_title = post_title.indexOf(word); - index_content = post_content.indexOf(word); - if (index_title < 0 && index_content < 0) { - foundMatch = false; - } - else { - foundMatch = true; - if (index_content < 0) { - index_content = 0; - } - if (index === 0) { - first_occur = index_content; - } - } - if (foundMatch) { - post_content = post.text.trim(); - var start = 0, end = 0; - if (first_occur >= 0) { - start = Math.max(first_occur-30, 0); - end = (start === 0) ? Math.min(200, post_content.length) : Math.min(first_occur+170, post_content.length); - var match_content = post_content.substring(start, end); - keywords.forEach(function(keyword) { - var regS = new RegExp(keyword, "gi"); - match_content = match_content.replace(regS, ""+keyword+""); - }); - post.digest = match_content; - } - else { - end = Math.min(200, post_content.length); - post.digest = post_content.trim().substring(0, end); - } - } - }); - } - return foundMatch; - }; - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data, queryText) { - var results = [], - html = ""; - $.each(data, function(index, post) { - if (self.contentSearch(post, queryText)) - html += self.buildResult(post.permalink, post.title, post.digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw google custom search response data - */ - self.buildMetadata = function(data) { - self.dom.modal_footer.hide(); - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param startIndex : (int) the index of first item (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, startIndex, callback) { - if (!self.cache) { - $.get(self.config.endpoint, { - key: self.config.apiKey, - cx: self.config.engineId, - q: queryText, - start: startIndex, - num: self.config.per_page - }, function(data, status) { - if (status !== 'success' || - !data || - (!data.posts && !data.pages) || - (data.posts.length < 1 && data.pages.length < 1) - ) { - self.onQueryError(queryText, status); - } - else { - self.cache = data; - var results = ""; - results += self.buildResultList(data.pages, queryText); - results += self.buildResultList(data.posts, queryText); - self.dom.modal_results.html(results); - } - self.buildMetadata(data); - if (callback) { - callback(data); - } - }); - } - else { - var results = ""; - results += self.buildResultList(self.cache.pages, queryText); - results += self.buildResultList(self.cache.posts, queryText); - self.dom.modal_results.html(results); - self.buildMetadata(self.cache); - if (callback) { - callback(self.cache); - } - } - }; - - return self; - }; - -})(jQuery); diff --git a/themes/hexo-theme-material-x-master/source/js/volantis.js b/themes/hexo-theme-material-x-master/source/js/volantis.js deleted file mode 100644 index 7a1e1fdbe891cfa9cd5c132f963ec3aa8d6f43b1..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/js/volantis.js +++ /dev/null @@ -1,2783 +0,0 @@ -/*! - * Valine v1.3.9 - * (c) 2017-2019 xCss - * Released under the GPL-2.0 License. - * Last Update: 2019-6-26 21:52:17 - */ -!function(e, t) { - "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.Valine = t() : e.Valine = t() -}(this, function() { - return function(e) { - function t(r) { - if (n[r]) - return n[r].exports; - var i = n[r] = { - i: r, - l: !1, - exports: {} - }; - return e[r].call(i.exports, i, i.exports, t), - i.l = !0, - i.exports - } - var n = {}; - return t.m = e, - t.c = n, - t.i = function(e) { - return e - } - , - t.d = function(e, n, r) { - t.o(e, n) || Object.defineProperty(e, n, { - configurable: !1, - enumerable: !0, - get: r - }) - } - , - t.n = function(e) { - var n = e && e.__esModule ? function() { - return e.default - } - : function() { - return e - } - ; - return t.d(n, "a", n), - n - } - , - t.o = function(e, t) { - return Object.prototype.hasOwnProperty.call(e, t) - } - , - t.p = "", - t(t.s = 17) - }([function(e, t, n) { - var r, i, o; - i = [e, t], - r = function(e, t) { - "use strict"; - function n(e) { - function t(t) { - var n = e.style.width; - e.style.width = "0px", - e.offsetWidth, - e.style.width = n, - e.style.overflowY = t - } - function n() { - if (0 !== e.scrollHeight) { - var t = function(e) { - for (var t = []; e && e.parentNode && e.parentNode instanceof Element; ) - e.parentNode.scrollTop && t.push({ - node: e.parentNode, - scrollTop: e.parentNode.scrollTop - }), - e = e.parentNode; - return t - }(e) - , n = document.documentElement && document.documentElement.scrollTop; - e.style.height = "", - e.style.height = e.scrollHeight + i + "px", - s = e.clientWidth, - t.forEach(function(e) { - e.node.scrollTop = e.scrollTop - }), - n && (document.documentElement.scrollTop = n) - } - } - function r() { - n(); - var r = Math.round(parseFloat(e.style.height)) - , i = window.getComputedStyle(e, null) - , o = "content-box" === i.boxSizing ? Math.round(parseFloat(i.height)) : e.offsetHeight; - if (o < r ? "hidden" === i.overflowY && (t("scroll"), - n(), - o = "content-box" === i.boxSizing ? Math.round(parseFloat(window.getComputedStyle(e, null).height)) : e.offsetHeight) : "hidden" !== i.overflowY && (t("hidden"), - n(), - o = "content-box" === i.boxSizing ? Math.round(parseFloat(window.getComputedStyle(e, null).height)) : e.offsetHeight), - l !== o) { - l = o; - var s = a("autosize:resized"); - try { - e.dispatchEvent(s) - } catch (e) {} - } - } - if (e && e.nodeName && "TEXTAREA" === e.nodeName && !o.has(e)) { - var i = null - , s = null - , l = null - , c = function() { - e.clientWidth !== s && r() - } - , d = function(t) { - window.removeEventListener("resize", c, !1), - e.removeEventListener("input", r, !1), - e.removeEventListener("keyup", r, !1), - e.removeEventListener("autosize:destroy", d, !1), - e.removeEventListener("autosize:update", r, !1), - Object.keys(t).forEach(function(n) { - e.style[n] = t[n] - }), - o.delete(e) - } - .bind(e, { - height: e.style.height, - resize: e.style.resize, - overflowY: e.style.overflowY, - overflowX: e.style.overflowX, - wordWrap: e.style.wordWrap - }); - e.addEventListener("autosize:destroy", d, !1), - "onpropertychange"in e && "oninput"in e && e.addEventListener("keyup", r, !1), - window.addEventListener("resize", c, !1), - e.addEventListener("input", r, !1), - e.addEventListener("autosize:update", r, !1), - e.style.overflowX = "hidden", - e.style.wordWrap = "break-word", - o.set(e, { - destroy: d, - update: r - }), - function() { - var t = window.getComputedStyle(e, null); - "vertical" === t.resize ? e.style.resize = "none" : "both" === t.resize && (e.style.resize = "horizontal"), - i = "content-box" === t.boxSizing ? -(parseFloat(t.paddingTop) + parseFloat(t.paddingBottom)) : parseFloat(t.borderTopWidth) + parseFloat(t.borderBottomWidth), - isNaN(i) && (i = 0), - r() - }() - } - } - function r(e) { - var t = o.get(e); - t && t.destroy() - } - function i(e) { - var t = o.get(e); - t && t.update() - } - var o = "function" == typeof Map ? new Map : function() { - var e = [] - , t = []; - return { - has: function(t) { - return e.indexOf(t) > -1 - }, - get: function(n) { - return t[e.indexOf(n)] - }, - set: function(n, r) { - -1 === e.indexOf(n) && (e.push(n), - t.push(r)) - }, - delete: function(n) { - var r = e.indexOf(n); - r > -1 && (e.splice(r, 1), - t.splice(r, 1)) - } - } - }() - , a = function(e) { - return new Event(e,{ - bubbles: !0 - }) - }; - try { - new Event("test") - } catch (e) { - a = function(e) { - var t = document.createEvent("Event"); - return t.initEvent(e, !0, !1), - t - } - } - var s = null; - "undefined" == typeof window || "function" != typeof window.getComputedStyle ? ((s = function(e) { - return e - } - ).destroy = function(e) { - return e - } - , - s.update = function(e) { - return e - } - ) : ((s = function(e, t) { - return e && Array.prototype.forEach.call(e.length ? e : [e], function(e) { - return n(e) - }), - e - } - ).destroy = function(e) { - return e && Array.prototype.forEach.call(e.length ? e : [e], r), - e - } - , - s.update = function(e) { - return e && Array.prototype.forEach.call(e.length ? e : [e], i), - e - } - ), - t.default = s, - e.exports = t.default - } - , - void 0 !== (o = "function" == typeof r ? r.apply(t, i) : r) && (e.exports = o) - } - , function(e, t, n) { - "use strict"; - function r(e) { - return this.init(e), - this - } - function i(e) { - return new r(e) - } - var o = n(9).version - , a = n(6) - , s = n(8) - , l = n(0) - , c = n(5) - , d = n(3) - , u = n(4) - , p = n(2) - , f = n(7) - , h = /^https?\:\/\// - , v = { - comment: "", - nick: "Anonymous", - mail: "", - link: "", - ua: navigator.userAgent, - url: "" - } - , g = { - "zh-cn": { - head: { - nick: "昵称(必填)", - mail: "邮箱(必填)", - link: "完整链接" - }, - tips: { - comments: "评论", - sofa: "快来做第一个评论的人吧~", - busy: "还在提交中,请稍候...", - again: "这么简单也能错,也是没谁了." - }, - ctrl: { - reply: "回复", - ok: "好的", - sure: "确认", - cancel: "取消", - confirm: "确认", - continue: "继续", - more: "查看更多...", - try: "再试试?", - preview: "预览", - emoji: "表情" - }, - error: { - 99: "初始化失败,请检查init中的`el`元素.", - 100: "初始化失败,请检查你的AppId和AppKey.", - 401: "未经授权的操作,请检查你的AppId和AppKey.", - 403: "访问被api域名白名单拒绝,请检查你的安全域名设置." - }, - timeago: { - seconds: "秒前", - minutes: "分钟前", - hours: "小时前", - days: "天前", - now: "刚刚" - } - }, - en: { - head: { - nick: "NickName", - mail: "E-Mail", - link: "Website(http://)" - }, - tips: { - comments: "Comments", - sofa: "No comments yet.", - busy: "Submit is busy, please wait...", - again: "Sorry, this is a wrong calculation." - }, - ctrl: { - reply: "Reply", - ok: "Ok", - sure: "Sure", - cancel: "Cancel", - confirm: "Confirm", - continue: "Continue", - more: "Load More...", - try: "Once More?", - preview: "Preview", - emoji: "Emoji" - }, - error: { - 99: "Initialization failed, Please check the `el` element in the init method.", - 100: "Initialization failed, Please check your appId and appKey.", - 401: "Unauthorized operation, Please check your appId and appKey.", - 403: "Access denied by api domain white list, Please check your security domain." - }, - timeago: { - seconds: "seconds ago", - minutes: "minutes ago", - hours: "hours ago", - days: "days ago", - now: "just now" - } - } - } - , m = { - cdn: "https://gravatar.loli.net/avatar/", - ds: ["mp", "identicon", "monsterid", "wavatar", "robohash", "retro", ""], - params: "", - hide: !1 - } - , b = ["nick", "mail", "link"] - , x = Storage && localStorage && localStorage instanceof Storage && localStorage - , y = location.pathname.replace(/index\.html?$/, ""); - r.prototype.init = function(e) { - var t = this; - if (t.config = e, - "undefined" != typeof document) - return "undefined" == typeof AV ? u.dynamicLoadSource("script", { - src: "//cdn.jsdelivr.net/npm/leancloud-storage/dist/av-min.js" - }, function() { - "undefined" != typeof AV ? e && t._init() : setTimeout(function() { - t.init(e) - }, 300) - }) : e && t._init(), - u.dynamicLoadSource("script", { - src: "//js.fundebug.cn/fundebug.1.9.0.min.js", - apikey: "2c7e5b30c7cf402cb7fb35d14b62e7f778babbb70d054160af750065a180fdcd", - async: !0 - }), - t; - console - } - , - r.prototype._init = function() { - var e = this; - try { - var t = e.config - , n = t.lang - , r = t.langMode - , i = t.avatar - , a = t.avatarForce - , l = t.avatar_cdn - , c = t.notify - , d = t.verify - , p = t.visitor - , x = t.pageSize - , w = t.recordIP - , _ = t.clazzName - , A = void 0 === _ ? "Comment" : _; - e.config.clazzName = A; - var O = m.ds - , S = a ? "&q=" + Math.random().toString(32).substring(2) : ""; - n && r && e.installLocale(n, r), - e.locale = e.locale || g[n || "zh-cn"], - e.notify = c || !1, - e.verify = d || !1, - m.params = "?d=" + (O.indexOf(i) > -1 ? i : "mp") + "&v=" + o + S, - m.hide = "hide" === i, - m.cdn = h.test(l) ? l : m.cdn, - y = e.config.path || y; - var $ = Number(x || 10); - if (e.config.pageSize = isNaN($) ? 10 : $ < 1 ? 10 : $, - s.setOptions({ - renderer: new s.Renderer, - highlight: !1 === e.config.highlight ? null : f, - gfm: !0, - tables: !0, - breaks: !0, - pedantic: !1, - sanitize: !1, - smartLists: !0, - smartypants: !0 - }), - w) { - var E = u.create("script", "src", "//api.ip.sb/jsonip?callback=getIP") - , L = document.getElementsByTagName("script")[0]; - L.parentNode.insertBefore(E, L), - window.getIP = function(e) { - v.ip = e.ip - } - } - var M = e.config.app_id || e.config.appId - , C = e.config.app_key || e.config.appKey; - if (!M || !C) - throw 99; - var z, T = "https://"; - if (!e.config.serverURLs) - switch (M.slice(-9)) { - case "-9Nh9j0Va": - T += "tab."; - break; - case "-MdYXbMMI": - T += "us." - } - z = e.config.serverURLs || T + "avoscloud.com", - M !== AV._config.applicationId && C !== AV._config.applicationKey && AV.init({ - appId: M, - appKey: C, - serverURLs: z - }); - var R = u.findAll(document, ".valine-comment-count"); - u.each(R, function(t, n) { - if (n) { - var r = u.attr(n, "data-xid"); - r && e.Q(r).count().then(function(e) { - n.innerText = e - }).catch(function(e) { - n.innerText = 0 - }) - } - }), - p && k.add(AV.Object.extend("Counter")); - var j = e.config.el || null - , B = u.findAll(document, j); - if (!(j = j instanceof HTMLElement ? j : B[B.length - 1] || null)) - return; - e.el = j, - e.el.classList.add("v"), - m.hide && e.el.classList.add("hide-avatar"), - e.config.meta = (e.config.guest_info || e.config.meta || b).filter(function(e) { - return b.indexOf(e) > -1 - }); - var P = (0 == e.config.meta.length ? b : e.config.meta).map(function(t) { - var n = "mail" == t ? "email" : "text"; - return b.indexOf(t) > -1 ? '' : "" - }); - e.placeholder = e.config.placeholder || "Just Go Go", - e.el.innerHTML = '
    ' + P.join("") + '
    ' + e.locale.ctrl.emoji + ' | ' + e.locale.ctrl.preview + '
    Powered By Valine
    ' + o + "
    "; - var U = u.find(e.el, ".vempty"); - e.nodata = { - show: function(t) { - return U.innerHTML = t || e.locale.tips.sofa, - u.attr(U, "style", "display:block;"), - e - }, - hide: function() { - return u.attr(U, "style", "display:none;"), - e - } - }; - var I = u.create("div", "class", "vloading") - , N = u.find(e.el, ".vlist"); - e.loading = { - show: function(t) { - var n = u.findAll(N, ".vcard"); - return t ? N.insertBefore(I, n[0]) : N.appendChild(I), - e.nodata.hide(), - e - }, - hide: function() { - var t = u.find(N, ".vloading"); - return t && u.remove(t), - 0 === u.findAll(N, ".vcard").length && e.nodata.show(), - e - } - }; - var Q = u.find(e.el, ".vmark"); - e.alert = { - show: function(t) { - Q.innerHTML = '
    ' + (t && t.text || 1) + '
    '; - var n = u.find(Q, ".vbtns") - , r = '" - , i = '"; - if (n.innerHTML = "" + r + (t && t.type && i), - u.on("click", u.find(Q, ".vcancel"), function(t) { - e.alert.hide() - }), - u.attr(Q, "style", "display:block;"), - t && t.type) { - var o = u.find(Q, ".vsure"); - u.on("click", o, function(n) { - e.alert.hide(), - t.cb && t.cb() - }) - } - return e - }, - hide: function() { - return u.attr(Q, "style", "display:none;"), - e - } - }, - e.bind() - } catch (t) { - e.ErrorHandler(t) - } - } - ; - var w = function(e, t) { - var n = new e - , r = new AV.ACL; - r.setPublicReadAccess(!0), - r.setPublicWriteAccess(!0), - n.setACL(r), - n.set("url", t.url), - n.set("xid", t.xid), - n.set("title", t.title), - n.set("time", 1), - n.save().then(function(e) { - u.find(t.el, ".leancloud-visitors-count").innerText = 1 - }).catch(function(e) {}) - } - , k = { - add: function(e) { - var t = u.findAll(document, ".leancloud_visitors,.leancloud-visitors"); - if (t.length) { - var n = t[0] - , r = u.attr(n, "id") - , i = u.attr(n, "data-flag-title") - , o = encodeURI(r) - , a = { - el: n, - url: r, - xid: o, - title: i - }; - if (decodeURI(r) === decodeURI(y)) { - var s = new AV.Query(e); - s.equalTo("url", r), - s.find().then(function(t) { - if (t.length > 0) { - var r = t[0]; - r.increment("time"), - r.save().then(function(e) { - u.find(n, ".leancloud-visitors-count").innerText = e.get("time") - }).catch(function(e) {}) - } else - w(e, a) - }).catch(function(t) { - 101 == t.code && w(e, a) - }) - } else - k.show(e, t) - } - }, - show: function(e, t) { - u.each(t, function(e, t) { - var n = u.find(t, ".leancloud-visitors-count"); - n && (n.innerText = 0) - }); - var n = []; - for (var r in t) - t.hasOwnProperty(r) && n.push(u.attr(t[r], "id")); - if (n.length) { - var i = new AV.Query(e); - i.containedIn("url", n), - i.find().then(function(e) { - e.length > 0 && u.each(e, function(e, t) { - var n = t.get("url") - , r = t.get("time") - , i = u.findAll(document, '.leancloud_visitors[id="' + n + '"],.leancloud-visitors[id="' + n + '"]'); - u.each(i, function(e, t) { - var n = u.find(t, ".leancloud-visitors-count"); - n && (n.innerText = r) - }) - }) - }).catch(function(e) {}) - } - } - }; - r.prototype.Q = function(e) { - var t = this; - if (1 == arguments.length) { - var n = new AV.Query(t.config.clazzName); - n.doesNotExist("rid"); - var r = new AV.Query(t.config.clazzName); - r.equalTo("rid", ""); - var i = AV.Query.or(n, r); - return "*" === e ? i.exists("url") : i.equalTo("url", decodeURI(e)), - i.addDescending("createdAt"), - i.addDescending("insertedAt"), - i - } - var o = JSON.stringify(arguments[1]).replace(/(\[|\])/g, "") - , a = "select * from " + t.config.clazzName + " where rid in (" + o + ") order by -createdAt,-createdAt"; - return AV.Query.doCloudQuery(a) - } - , - r.prototype.ErrorHandler = function(e) { - var t = this; - if (t.el && t.loading.hide().nodata.hide(), - "[object Error]" === {}.toString.call(e)) { - var n = e.code || "" - , r = t.locale.error[n] || e.message || e.error || ""; - 101 == n ? t.nodata.show() : t.el && t.nodata.show('
    Code ' + n + ": " + r + "
    ") || console - } else - t.el && t.nodata.show('
    ' + JSON.stringify(e) + "
    ") || console - } - , - r.prototype.installLocale = function(e, t) { - return t = t || {}, - e && (g[e] = t, - this.locale = g[e] || g["zh-cn"]), - this - } - , - r.prototype.setPath = function(e) { - return y = e || y, - this - } - , - r.prototype.bind = function(e) { - var t = this - , n = u.find(t.el, ".vemojis") - , r = u.find(t.el, ".vpreview") - , i = u.find(t.el, ".vemoji-btn") - , o = u.find(t.el, ".vpreview-btn") - , f = u.find(t.el, ".veditor") - , h = p.data; - for (var g in h) - h.hasOwnProperty(g) && function(e, t) { - var r = u.create("i", { - name: e, - title: e - }); - r.innerHTML = t, - n.appendChild(r), - u.on("click", r, function(e) { - E(f, t), - w(f) - }) - }(g, h[g]); - t.emoji = { - show: function() { - return t.preview.hide(), - u.attr(i, "v", 1), - u.removeAttr(o, "v"), - u.attr(n, "style", "display:block"), - t.emoji - }, - hide: function() { - return u.removeAttr(i, "v"), - u.attr(n, "style", "display:hide"), - t.emoji - } - }, - t.preview = { - show: function() { - return v.comment && (t.emoji.hide(), - u.attr(o, "v", 1), - u.removeAttr(i, "v"), - r.innerHTML = v.comment, - u.attr(r, "style", "display:block"), - C()), - t.preview - }, - hide: function() { - return u.removeAttr(o, "v"), - u.attr(r, "style", "display:none"), - t.preview - }, - empty: function() { - return r.innerHtml = "", - t.preview - } - }; - var b = function(e) { - var t = u.create("div"); - t.insertAdjacentHTML("afterbegin", e); - var n = u.findAll(t, "*") - , r = ["INPUT", "STYLE", "SCRIPT", "IFRAME", "FRAME", "AUDIO", "VIDEO", "EMBED", "META", "TITLE", "LINK"]; - return u.each(n, function(e, t) { - 1 === t.nodeType && (r.indexOf(t.nodeName) > -1 && ("INPUT" === t.nodeName && "checkbox" === u.attr(t, "type") ? u.attr(t, "disabled", "disabled") : u.remove(t)), - "A" === t.nodeName && function(e, t) { - var n = u.attr(e, t); - n && u.attr(e, t, n.replace(/(javascript|eval)/gi, "")) - }(t, "href"), - u.clearAttr(t)) - }), - t.innerHTML - } - , w = function(e) { - var t = e.value || ""; - t = p.parse(t), - e.value = t; - var n = b(s(t)); - v.comment = n, - r.innerHTML = n, - t ? l(e) : l.destroy(e) - }; - u.on("click", i, function(e) { - u.attr(i, "v") ? t.emoji.hide() : t.emoji.show() - }), - u.on("click", o, function(e) { - u.attr(o, "v") ? t.preview.hide() : t.preview.show() - }); - for (var k = t.config.meta, _ = {}, A = { - veditor: "comment" - }, O = 0, S = k.length; O < S; O++) - A["v" + k[O]] = k[O]; - for (var $ in A) - A.hasOwnProperty($) && function() { - var e = A[$] - , n = u.find(t.el, "." + $); - _[e] = n, - n && u.on("input change blur", n, function(t) { - "comment" === e ? w(n) : v[e] = u.escape(n.value.replace(/(^\s*)|(\s*$)/g, "")) - }) - }(); - var E = function(e, t) { - if (document.selection) - e.focus(), - document.selection.createRange().text = t, - e.focus(); - else if (e.selectionStart || "0" == e.selectionStart) { - var n = e.selectionStart - , r = e.selectionEnd - , i = e.scrollTop; - e.value = e.value.substring(0, n) + t + e.value.substring(r, e.value.length), - e.focus(), - e.selectionStart = n + t.length, - e.selectionEnd = n + t.length, - e.scrollTop = i - } else - e.focus(), - e.value += t - } - , L = function(e) { - var n = u.find(t.el, ".vh[rootid='" + e + "']") - , r = u.find(n, ".vquote"); - return r || (r = u.create("div", "class", "vquote"), - n.appendChild(r)), - r - }; - t.Q(y).count().then(function(e) { - e > 0 ? (u.attr(u.find(t.el, ".vinfo"), "style", "display:block;"), - u.find(t.el, ".vcount").innerHTML = '' + e + " " + t.locale.tips.comments, - function e() { - var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1 - , r = t.config.pageSize - , i = Number(u.find(t.el, ".vnum").innerText); - t.loading.show(); - var o = t.Q(y); - o.limit(r), - o.skip((n - 1) * r), - o.find().then(function(o) { - for (var a = o.length, s = [], l = 0; l < a; l++) { - var c = o[l]; - s.push(c.id), - M(c, u.find(t.el, ".vlist"), !0) - } - t.Q(y, s).then(function(e) { - for (var t = e && e.results || [], n = 0; n < t.length; n++) { - var r = t[n]; - M(r, L(r.get("rid"))) - } - }); - var d = u.find(t.el, ".vpage"); - d.innerHTML = r * n < i ? '" : ""; - var p = u.find(d, ".vmore"); - p && u.on("click", p, function(t) { - d.innerHTML = "", - e(++n) - }), - t.loading.hide() - }).catch(function(e) { - t.loading.hide().ErrorHandler(e) - }) - }()) : t.loading.hide() - }).catch(function(e) { - t.ErrorHandler(e) - }); - var M = function(e, n, r) { - var i = u.create("div", { - class: "vcard", - id: e.id - }) - , o = m.hide ? "" : '' - , s = e.get("ua") || "" - , l = ""; - s && (l = '' + (s = d(s)).browser + " " + s.version + ' ' + s.os + " " + s.osVersion + ""), - "*" === y && (l = '' + e.get("url") + ""); - var p, f = e.get("link") || ""; - p = f ? '' + e.get("nick") + "" : '' + e.get("nick") + "", - i.innerHTML = o + '\n
    \n
    ' + p + " " + l + '
    \n
    \n ' + c(e.get("insertedAt") || e.createdAt, t.locale) + '\n ' + t.locale.ctrl.reply + '\n
    \n
    \n ' + b(e.get("comment")) + "\n
    \n
    "; - for (var h = u.find(i, ".vat"), v = u.findAll(i, "a"), g = 0, x = v.length; g < x; g++) { - var w = v[g]; - w && -1 == (u.attr(w, "class") || "").indexOf("at") && u.attr(w, { - target: "_blank", - rel: "nofollow" - }) - } - var k = u.findAll(n, ".vcard"); - r ? n.appendChild(i) : n.insertBefore(i, k[0]); - var _ = u.find(i, ".vcontent"); - _ && z(_), - h && R(h, e), - C() - } - , C = function() { - setTimeout(function() { - try { - "undefined" != typeof MathJax && MathJax.Hub.Queue(["Typeset", MathJax.Hub]), - "undefined" != typeof hljs && (u.each(u.findAll("pre code"), function(e, t) { - hljs.highlightBlock(t) - }), - u.each(u.findAll("code.hljs"), function(e, t) { - hljs.lineNumbersBlock(t) - })) - } catch (e) {} - }, 200) - } - , z = function(e) { - setTimeout(function() { - e.offsetHeight > 180 && (e.classList.add("expand"), - u.on("click", e, function(t) { - u.attr(e, "class", "vcontent") - })) - }) - } - , T = {} - , R = function(e, t) { - u.on("click", e, function(e) { - var n = "@" + u.escape(t.get("nick")); - T = { - at: u.escape(n) + " ", - rid: t.get("rid") || t.id, - pid: t.id, - rmail: t.get("mail") - }, - u.attr(_.comment, "placeholder", n), - _.comment.focus() - }) - }; - !function() { - var e = x && x.ValineCache; - if (e) { - e = JSON.parse(e); - var n = k; - for (var r in n) { - var i = n[r]; - u.find(t.el, ".v" + i).value = u.unescape(e[i]), - v[i] = e[i] - } - } - }(); - var j = u.find(t.el, ".vsubmit") - , B = function(e) { - return u.attr(j, "disabled") ? void t.alert.show({ - type: 0, - text: t.locale.tips.busy + 'ヾ(๑╹◡╹)ノ"', - ctxt: t.locale.ctrl.ok - }) : "" == v.comment ? void _.comment.focus() : "" == v.nick ? void _.nick.focus() : "" == v.mail ? void _.mail.focus() : (v.nick = v.nick || "Anonymous", - void (t.notify || t.verify ? I(U) : U())) - } - , P = function() { - var e = new AV.ACL; - return e.setPublicReadAccess(!0), - e.setPublicWriteAccess(!1), - e - } - , U = function() { - u.attr(j, "disabled", !0), - t.loading.show(!0); - var e = new (AV.Object.extend(t.config.clazzName || "Comment")) - , n = "*" === y ? location.pathname.replace(/index\.html?$/, "") : y; - if (v.url = decodeURI(n), - v.insertedAt = new Date, - T.rid) { - var r = T.pid || T.rid; - e.set("rid", T.rid), - e.set("pid", r), - v.comment = v.comment.replace("

    ", '

    ' + T.at + " , ") - } - for (var i in v) - if (v.hasOwnProperty(i)) { - var o = v[i]; - e.set(i, o) - } - e.setACL(P()), - e.save().then(function(e) { - "Anonymous" != v.nick && x && x.setItem("ValineCache", JSON.stringify({ - nick: v.nick, - link: v.link, - mail: v.mail - })); - var n = u.find(t.el, ".vnum") - , r = 1; - try { - if (T.rid) { - var i = u.find(t.el, '.vquote[rid="' + T.rid + '"]') || L(T.rid); - M(e, i, !0) - } else - n ? (r = Number(n.innerText) + 1, - n.innerText = r) : u.find(t.el, ".vcount").innerHTML = '1 ' + t.locale.tips.comments, - M(e, u.find(t.el, ".vlist")); - v.mail && N({ - username: v.nick, - mail: v.mail - }), - T.at && T.rmail && t.notify && Q({ - username: T.at.replace("@", ""), - mail: T.rmail - }), - u.removeAttr(j, "disabled"), - t.loading.hide(), - v.comment = "", - _.comment.value = "", - w(_.comment), - u.attr(_.comment, "placeholder", t.placeholder), - T = {}, - t.preview.empty().hide() - } catch (e) { - t.ErrorHandler(e) - } - }).catch(function(e) { - t.ErrorHandler(e) - }) - } - , I = function e(n) { - var r = Math.floor(10 * Math.random() + 1) - , i = Math.floor(10 * Math.random() + 1) - , o = Math.floor(10 * Math.random() + 1) - , a = ["+", "-", "x"] - , s = "" + r + a[Math.floor(3 * Math.random())] + i + a[Math.floor(3 * Math.random())] + o - , l = s + " = "; - t.alert.show({ - type: 1, - text: l, - ctxt: t.locale.ctrl.cancel, - otxt: t.locale.ctrl.ok, - cb: function() { - var r = +u.find(t.el, ".vcode").value; - new Function("return " + s.replace(/x/g, "*"))() === r ? n && n() : t.alert.show({ - type: 1, - text: "(T_T)" + t.locale.tips.again, - ctxt: t.locale.ctrl.cancel, - otxt: t.locale.ctrl.try, - cb: function() { - e(n) - } - }) - } - }) - } - , N = function(e) { - var t = new AV.User; - return t.setUsername(e.username), - t.setPassword(e.mail), - t.setEmail(e.mail), - t.setACL(P()), - t.signUp() - } - , Q = function e(n) { - AV.User.requestPasswordReset(n.mail).then(function(e) {}).catch(function(r) { - 1 == r.code ? t.alert.show({ - type: 0, - text: "ヾ(o・ω・)ノ At太频繁啦,提醒功能暂时宕机。
    " + r.error, - ctxt: t.locale.ctrl.ok - }) : N(n).then(function(t) { - e(n) - }).catch(function(e) {}) - }) - }; - u.on("click", j, B), - u.on("keydown", document, function(e) { - var t = (e = event || e).keyCode || e.which || e.charCode; - (e.ctrlKey || e.metaKey) && 13 === t && B(), - 9 === t && "veditor" == (document.activeElement.id || "") && (e.preventDefault(), - E(f, " ")) - }) - } - , - e.exports = i, - e.exports.default = i - } - , function(e, t, n) { - "use strict"; - var r = { - data: n(11), - parse: function(e) { - return String(e).replace(/:(.+?):/g, function(e, t) { - return r.data[t] || e - }) - } - }; - e.exports = r - } - , function(e, t, n) { - "use strict"; - e.exports = function(e) { - return new function(e) { - var t = this - , n = { - Trident: e.indexOf("Trident") > -1 || e.indexOf("NET CLR") > -1, - Presto: e.indexOf("Presto") > -1, - WebKit: e.indexOf("AppleWebKit") > -1, - Gecko: e.indexOf("Gecko/") > -1, - Safari: e.indexOf("Safari") > -1, - Chrome: e.indexOf("Chrome") > -1 || e.indexOf("CriOS") > -1, - IE: e.indexOf("MSIE") > -1 || e.indexOf("Trident") > -1, - Edge: e.indexOf("Edge") > -1, - Firefox: e.indexOf("Firefox") > -1 || e.indexOf("FxiOS") > -1, - "Firefox Focus": e.indexOf("Focus") > -1, - Chromium: e.indexOf("Chromium") > -1, - Opera: e.indexOf("Opera") > -1 || e.indexOf("OPR") > -1, - Vivaldi: e.indexOf("Vivaldi") > -1, - Yandex: e.indexOf("YaBrowser") > -1, - Kindle: e.indexOf("Kindle") > -1 || e.indexOf("Silk/") > -1, - 360: e.indexOf("360EE") > -1 || e.indexOf("360SE") > -1, - UC: e.indexOf("UC") > -1 || e.indexOf(" UBrowser") > -1, - QQBrowser: e.indexOf("QQBrowser") > -1, - QQ: e.indexOf("QQ/") > -1, - Baidu: e.indexOf("Baidu") > -1 || e.indexOf("BIDUBrowser") > -1, - Maxthon: e.indexOf("Maxthon") > -1, - Sogou: e.indexOf("MetaSr") > -1 || e.indexOf("Sogou") > -1, - LBBROWSER: e.indexOf("LBBROWSER") > -1, - "2345Explorer": e.indexOf("2345Explorer") > -1, - TheWorld: e.indexOf("TheWorld") > -1, - XiaoMi: e.indexOf("MiuiBrowser") > -1, - Quark: e.indexOf("Quark") > -1, - Qiyu: e.indexOf("Qiyu") > -1, - Wechat: e.indexOf("MicroMessenger") > -1, - Taobao: e.indexOf("AliApp(TB") > -1, - Alipay: e.indexOf("AliApp(AP") > -1, - Weibo: e.indexOf("Weibo") > -1, - Douban: e.indexOf("com.douban.frodo") > -1, - Suning: e.indexOf("SNEBUY-APP") > -1, - iQiYi: e.indexOf("IqiyiApp") > -1, - Windows: e.indexOf("Windows") > -1, - Linux: e.indexOf("Linux") > -1 || e.indexOf("X11") > -1, - "Mac OS": e.indexOf("Macintosh") > -1, - Android: e.indexOf("Android") > -1 || e.indexOf("Adr") > -1, - Ubuntu: e.indexOf("Ubuntu") > -1, - FreeBSD: e.indexOf("FreeBSD") > -1, - Debian: e.indexOf("Debian") > -1, - "Windows Phone": e.indexOf("IEMobile") > -1 || e.indexOf("Windows Phone") > -1, - BlackBerry: e.indexOf("BlackBerry") > -1 || e.indexOf("RIM") > -1, - MeeGo: e.indexOf("MeeGo") > -1, - Symbian: e.indexOf("Symbian") > -1, - iOS: e.indexOf("like Mac OS X") > -1, - "Chrome OS": e.indexOf("CrOS") > -1, - WebOS: e.indexOf("hpwOS") > -1, - Mobile: e.indexOf("Mobi") > -1 || e.indexOf("iPh") > -1 || e.indexOf("480") > -1, - Tablet: e.indexOf("Tablet") > -1 || e.indexOf("Pad") > -1 || e.indexOf("Nexus 7") > -1 - }; - n.Mobile && (n.Mobile = !(e.indexOf("iPad") > -1)); - var r = { - engine: ["WebKit", "Trident", "Gecko", "Presto"], - browser: ["Safari", "Chrome", "Edge", "IE", "Firefox", "Firefox Focus", "Chromium", "Opera", "Vivaldi", "Yandex", "Kindle", "360", "UC", "QQBrowser", "QQ", "Baidu", "Maxthon", "Sogou", "LBBROWSER", "2345Explorer", "TheWorld", "XiaoMi", "Quark", "Qiyu", "Wechat", "Taobao", "Alipay", "Weibo", "Douban", "Suning", "iQiYi"], - os: ["Windows", "Linux", "Mac OS", "Android", "Ubuntu", "FreeBSD", "Debian", "iOS", "Windows Phone", "BlackBerry", "MeeGo", "Symbian", "Chrome OS", "WebOS"], - device: ["Mobile", "Tablet"] - }; - for (var i in t.device = "PC", - r) - for (var o = 0; o < r[i].length; o++) { - var a = r[i][o]; - n[a] && (t[i] = a) - } - var s = { - Windows: function() { - var t = e.replace(/^.*Windows NT ([\d.]+);.*$/, "$1"); - return { - 6.4: "10", - 6.3: "8.1", - 6.2: "8", - 6.1: "7", - "6.0": "Vista", - 5.2: "XP", - 5.1: "XP", - "5.0": "2000" - }[t] || t - }, - Android: function() { - return e.replace(/^.*Android ([\d.]+);.*$/, "$1") - }, - iOS: function() { - return e.replace(/^.*OS ([\d_]+) like.*$/, "$1").replace(/_/g, ".") - }, - Debian: function() { - return e.replace(/^.*Debian\/([\d.]+).*$/, "$1") - }, - "Windows Phone": function() { - return e.replace(/^.*Windows Phone( OS)? ([\d.]+);.*$/, "$2") - }, - "Mac OS": function() { - return e.replace(/^.*Mac OS X ([\d_]+).*$/, "$1").replace(/_/g, ".") - }, - WebOS: function() { - return e.replace(/^.*hpwOS\/([\d.]+);.*$/, "$1") - } - }; - t.osVersion = "", - s[t.os] && (t.osVersion = s[t.os](), - t.osVersion == e && (t.osVersion = "")); - var l = { - Safari: function() { - return e.replace(/^.*Version\/([\d.]+).*$/, "$1") - }, - Chrome: function() { - return e.replace(/^.*Chrome\/([\d.]+).*$/, "$1").replace(/^.*CriOS\/([\d.]+).*$/, "$1") - }, - IE: function() { - return e.replace(/^.*MSIE ([\d.]+).*$/, "$1").replace(/^.*rv:([\d.]+).*$/, "$1") - }, - Edge: function() { - return e.replace(/^.*Edge\/([\d.]+).*$/, "$1") - }, - Firefox: function() { - return e.replace(/^.*Firefox\/([\d.]+).*$/, "$1").replace(/^.*FxiOS\/([\d.]+).*$/, "$1") - }, - "Firefox Focus": function() { - return e.replace(/^.*Focus\/([\d.]+).*$/, "$1") - }, - Chromium: function() { - return e.replace(/^.*Chromium\/([\d.]+).*$/, "$1") - }, - Opera: function() { - return e.replace(/^.*Opera\/([\d.]+).*$/, "$1").replace(/^.*OPR\/([\d.]+).*$/, "$1") - }, - Vivaldi: function() { - return e.replace(/^.*Vivaldi\/([\d.]+).*$/, "$1") - }, - Yandex: function() { - return e.replace(/^.*YaBrowser\/([\d.]+).*$/, "$1") - }, - Kindle: function() { - return e.replace(/^.*Version\/([\d.]+).*$/, "$1") - }, - Maxthon: function() { - return e.replace(/^.*Maxthon\/([\d.]+).*$/, "$1") - }, - QQBrowser: function() { - return e.replace(/^.*QQBrowser\/([\d.]+).*$/, "$1") - }, - QQ: function() { - return e.replace(/^.*QQ\/([\d.]+).*$/, "$1") - }, - Baidu: function() { - return e.replace(/^.*BIDUBrowser[\s\/]([\d.]+).*$/, "$1") - }, - UC: function() { - return e.replace(/^.*UC?Browser\/([\d.]+).*$/, "$1") - }, - Sogou: function() { - return e.replace(/^.*SE ([\d.X]+).*$/, "$1").replace(/^.*SogouMobileBrowser\/([\d.]+).*$/, "$1") - }, - "2345Explorer": function() { - return e.replace(/^.*2345Explorer\/([\d.]+).*$/, "$1") - }, - TheWorld: function() { - return e.replace(/^.*TheWorld ([\d.]+).*$/, "$1") - }, - XiaoMi: function() { - return e.replace(/^.*MiuiBrowser\/([\d.]+).*$/, "$1") - }, - Quark: function() { - return e.replace(/^.*Quark\/([\d.]+).*$/, "$1") - }, - Qiyu: function() { - return e.replace(/^.*Qiyu\/([\d.]+).*$/, "$1") - }, - Wechat: function() { - return e.replace(/^.*MicroMessenger\/([\d.]+).*$/, "$1") - }, - Taobao: function() { - return e.replace(/^.*AliApp\(TB\/([\d.]+).*$/, "$1") - }, - Alipay: function() { - return e.replace(/^.*AliApp\(AP\/([\d.]+).*$/, "$1") - }, - Weibo: function() { - return e.replace(/^.*weibo__([\d.]+).*$/, "$1") - }, - Douban: function() { - return e.replace(/^.*com.douban.frodo\/([\d.]+).*$/, "$1") - }, - Suning: function() { - return e.replace(/^.*SNEBUY-APP([\d.]+).*$/, "$1") - }, - iQiYi: function() { - return e.replace(/^.*IqiyiVersion\/([\d.]+).*$/, "$1") - } - }; - t.version = "", - l[t.browser] && (t.version = l[t.browser](), - t.version == e && (t.version = "")), - "Edge" == t.browser ? t.engine = "EdgeHTML" : "Chrome" == t.browser && parseInt(t.version) > 27 ? t.engine = "Blink" : "Opera" == t.browser && parseInt(t.version) > 12 ? t.engine = "Blink" : "Yandex" == t.browser ? t.engine = "Blink" : void 0 == t.browser && (t.browser = "Unknow App") - } - (e) - } - } - , function(e, t, n) { - "use strict"; - var r = window - , i = document - , o = {} - , a = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`", - "\\": "\" - }; - for (var s in a) - o[a[s]] = s; - var l = /[&<>"'`\\]/g - , c = RegExp(l.source) - , d = /&(?:amp|lt|gt|quot|#39|#x60|#x5c);/g - , u = RegExp(d.source) - , p = { - domReady: function(e) { - if ("complete" === i.readyState || "loading" !== i.readyState && !i.documentElement.doScroll) - setTimeout(function() { - return e && e() - }, 0); - else { - var t = function t() { - i.removeEventListener("DOMContentLoaded", t, !1), - r.removeEventListener("load", t, !1), - e && e() - }; - i.addEventListener("DOMContentLoaded", t, !1), - r.addEventListener("load", t, !1) - } - }, - dynamicLoadSource: function(e, t, n) { - var r = { - script: "src", - link: "href" - }[e]; - if (p.find(i, e + "[" + r + '="' + t[r] + '"]')) - "function" == typeof n && n(); - else { - var o = p.create(e, t); - i.getElementsByTagName("head")[0].appendChild(o), - o.onload = o.onreadystatechange = function() { - this.onload = this.onreadystatechange = null, - "function" == typeof n && n() - } - } - }, - on: function(e, t, n, r) { - for (var i = 0, o = (e = e.split(" ")).length; i < o; i++) - p.off(e[i], t, n, r), - t.addEventListener ? t.addEventListener(e[i], n, r || !1) : t.attachEvent ? t.attachEvent("on" + e[i], n) : t["on" + e[i]] = n - }, - off: function(e, t, n, r) { - for (var i = 0, o = (e = e.split(" ")).length; i < o; i++) - t.removeEventListener ? t.removeEventListener(e, n, r || !1) : t.detachEvent ? t.detachEvent("on" + e, n) : t["on" + e] = null - }, - escape: function(e) { - return e && c.test(e) ? e.replace(l, function(e) { - return a[e] - }) : e - }, - unescape: function(e) { - return e && u.test(e) ? e.replace(d, function(e) { - return o[e] - }) : e - }, - create: function(e, t, n) { - var r = document.createElement(e); - return p.attr(r, t, n), - r - }, - find: function(e, t) { - return e.querySelector(t) - }, - findAll: function(e, t) { - return e.querySelectorAll(t) - }, - attr: function(e, t, n) { - if (void 0 === e.getAttribute) - return p.prop(e, t, n); - if (void 0 !== n) - null === n ? p.removeAttr(e, t) : e.setAttribute(t, n); - else { - if ("[object Object]" !== {}.toString.call(t)) - return e.getAttribute(t); - p.each(t, function(t, n) { - e.setAttribute(t, n) - }) - } - }, - prop: function(e, t, n) { - return void 0 !== n ? e[t] = n : "[object Object]" !== {}.toString.call(t) ? e[t] : void p.each(t, function(t, n) { - e[t] = n - }) - }, - removeAttr: function(e, t) { - var n = void 0 - , r = 0 - , i = t && t.match(/[^\x20\t\r\n\f\*\/\\]+/g); - if (i && 1 === e.nodeType) - for (; n = i[r++]; ) - e.removeAttribute(n); - return e - }, - clearAttr: function(e) { - var t = e.attributes - , n = ["align", "alt", "checked", "class", "disabled", "href", "id", "target", "title", "type", "src", "style"]; - return p.each(t, function(t, r) { - var i = r.name; - switch (i.toLowerCase()) { - case "style": - var o = r.value; - p.each(o.split(";"), function(t, n) { - n.indexOf("color") > -1 ? p.attr(e, "style", n) : p.removeAttr(e, "style") - }); - break; - case "class": - if ("CODE" == e.nodeName) - return !1; - var a = r.value; - a.indexOf("at") > -1 ? p.attr(e, "class", "at") : a.indexOf("vemoji") > -1 ? p.attr(e, "class", "vemoji") : p.removeAttr(e, "class"); - break; - default: - if (n.indexOf(i) > -1) - return !0; - p.removeAttr(e, i) - } - }), - e - }, - remove: function(e) { - try { - e.parentNode && e.parentNode.removeChild(e) - } catch (e) {} - }, - each: function(e, t) { - var n = 0 - , r = e.length - , i = {}.toString.call(e); - if (["[object Array]", "[object NodeList]"].indexOf(i) > -1) - for (; n < r && (!t || !1 !== t.call(e[n], n, e[n])); n++) - ; - else - for (n in e) - if (e.hasOwnProperty(n) && t && !1 === t.call(e[n], n, e[n])) - break; - return e - } - }; - e.exports = p - } - , function(e, t, n) { - "use strict"; - var r = function(e) { - var t = i(e.getDate(), 2) - , n = i(e.getMonth() + 1, 2); - return i(e.getFullYear(), 2) + "-" + n + "-" + t - } - , i = function(e, t) { - for (var n = e.toString(); n.length < t; ) - n = "0" + n; - return n - }; - e.exports = function(e, t) { - if (e) - try { - var n = e.getTime() - , i = (new Date).getTime() - n - , o = Math.floor(i / 864e5); - if (0 === o) { - var a = i % 864e5 - , s = Math.floor(a / 36e5); - if (0 === s) { - var l = a % 36e5 - , c = Math.floor(l / 6e4); - if (0 === c) { - var d = l % 6e4; - return Math.round(d / 1e3) + " " + t.timeago.seconds - } - return c + " " + t.timeago.minutes - } - return s + " " + t.timeago.hours - } - return o < 0 ? t.timeago.now : o < 8 ? o + " " + t.timeago.days : r(e) - } catch (e) {} - } - } - , function(e, t, n) { - var r; - !function(i) { - "use strict"; - function o(e, t) { - var n = (65535 & e) + (65535 & t); - return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n - } - function a(e, t, n, r, i, a) { - return o(function(e, t) { - return e << t | e >>> 32 - t - }(o(o(t, e), o(r, a)), i), n) - } - function s(e, t, n, r, i, o, s) { - return a(t & n | ~t & r, e, t, i, o, s) - } - function l(e, t, n, r, i, o, s) { - return a(t & r | n & ~r, e, t, i, o, s) - } - function c(e, t, n, r, i, o, s) { - return a(t ^ n ^ r, e, t, i, o, s) - } - function d(e, t, n, r, i, o, s) { - return a(n ^ (t | ~r), e, t, i, o, s) - } - function u(e, t) { - e[t >> 5] |= 128 << t % 32, - e[14 + (t + 64 >>> 9 << 4)] = t; - var n, r, i, a, u, p = 1732584193, f = -271733879, h = -1732584194, v = 271733878; - for (n = 0; n < e.length; n += 16) - r = p, - i = f, - a = h, - u = v, - f = d(f = d(f = d(f = d(f = c(f = c(f = c(f = c(f = l(f = l(f = l(f = l(f = s(f = s(f = s(f = s(f, h = s(h, v = s(v, p = s(p, f, h, v, e[n], 7, -680876936), f, h, e[n + 1], 12, -389564586), p, f, e[n + 2], 17, 606105819), v, p, e[n + 3], 22, -1044525330), h = s(h, v = s(v, p = s(p, f, h, v, e[n + 4], 7, -176418897), f, h, e[n + 5], 12, 1200080426), p, f, e[n + 6], 17, -1473231341), v, p, e[n + 7], 22, -45705983), h = s(h, v = s(v, p = s(p, f, h, v, e[n + 8], 7, 1770035416), f, h, e[n + 9], 12, -1958414417), p, f, e[n + 10], 17, -42063), v, p, e[n + 11], 22, -1990404162), h = s(h, v = s(v, p = s(p, f, h, v, e[n + 12], 7, 1804603682), f, h, e[n + 13], 12, -40341101), p, f, e[n + 14], 17, -1502002290), v, p, e[n + 15], 22, 1236535329), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 1], 5, -165796510), f, h, e[n + 6], 9, -1069501632), p, f, e[n + 11], 14, 643717713), v, p, e[n], 20, -373897302), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 5], 5, -701558691), f, h, e[n + 10], 9, 38016083), p, f, e[n + 15], 14, -660478335), v, p, e[n + 4], 20, -405537848), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 9], 5, 568446438), f, h, e[n + 14], 9, -1019803690), p, f, e[n + 3], 14, -187363961), v, p, e[n + 8], 20, 1163531501), h = l(h, v = l(v, p = l(p, f, h, v, e[n + 13], 5, -1444681467), f, h, e[n + 2], 9, -51403784), p, f, e[n + 7], 14, 1735328473), v, p, e[n + 12], 20, -1926607734), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 5], 4, -378558), f, h, e[n + 8], 11, -2022574463), p, f, e[n + 11], 16, 1839030562), v, p, e[n + 14], 23, -35309556), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 1], 4, -1530992060), f, h, e[n + 4], 11, 1272893353), p, f, e[n + 7], 16, -155497632), v, p, e[n + 10], 23, -1094730640), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 13], 4, 681279174), f, h, e[n], 11, -358537222), p, f, e[n + 3], 16, -722521979), v, p, e[n + 6], 23, 76029189), h = c(h, v = c(v, p = c(p, f, h, v, e[n + 9], 4, -640364487), f, h, e[n + 12], 11, -421815835), p, f, e[n + 15], 16, 530742520), v, p, e[n + 2], 23, -995338651), h = d(h, v = d(v, p = d(p, f, h, v, e[n], 6, -198630844), f, h, e[n + 7], 10, 1126891415), p, f, e[n + 14], 15, -1416354905), v, p, e[n + 5], 21, -57434055), h = d(h, v = d(v, p = d(p, f, h, v, e[n + 12], 6, 1700485571), f, h, e[n + 3], 10, -1894986606), p, f, e[n + 10], 15, -1051523), v, p, e[n + 1], 21, -2054922799), h = d(h, v = d(v, p = d(p, f, h, v, e[n + 8], 6, 1873313359), f, h, e[n + 15], 10, -30611744), p, f, e[n + 6], 15, -1560198380), v, p, e[n + 13], 21, 1309151649), h = d(h, v = d(v, p = d(p, f, h, v, e[n + 4], 6, -145523070), f, h, e[n + 11], 10, -1120210379), p, f, e[n + 2], 15, 718787259), v, p, e[n + 9], 21, -343485551), - p = o(p, r), - f = o(f, i), - h = o(h, a), - v = o(v, u); - return [p, f, h, v] - } - function p(e) { - var t, n = "", r = 32 * e.length; - for (t = 0; t < r; t += 8) - n += String.fromCharCode(e[t >> 5] >>> t % 32 & 255); - return n - } - function f(e) { - var t, n = []; - for (n[(e.length >> 2) - 1] = void 0, - t = 0; t < n.length; t += 1) - n[t] = 0; - var r = 8 * e.length; - for (t = 0; t < r; t += 8) - n[t >> 5] |= (255 & e.charCodeAt(t / 8)) << t % 32; - return n - } - function h(e) { - var t, n, r = "0123456789abcdef", i = ""; - for (n = 0; n < e.length; n += 1) - t = e.charCodeAt(n), - i += r.charAt(t >>> 4 & 15) + r.charAt(15 & t); - return i - } - function v(e) { - return unescape(encodeURIComponent(e)) - } - function g(e) { - return function(e) { - return p(u(f(e), 8 * e.length)) - }(v(e)) - } - function m(e, t) { - return function(e, t) { - var n, r, i = f(e), o = [], a = []; - for (o[15] = a[15] = void 0, - i.length > 16 && (i = u(i, 8 * e.length)), - n = 0; n < 16; n += 1) - o[n] = 909522486 ^ i[n], - a[n] = 1549556828 ^ i[n]; - return r = u(o.concat(f(t)), 512 + 8 * t.length), - p(u(a.concat(r), 640)) - }(v(e), v(t)) - } - function b(e, t, n) { - return t ? n ? m(t, e) : function(e, t) { - return h(m(e, t)) - }(t, e) : n ? g(e) : function(e) { - return h(g(e)) - }(e) - } - void 0 !== (r = function() { - return b - } - .call(t, n, t, e)) && (e.exports = r) - }() - } - , function(e, t, n) { - e.exports = function() { - "use strict"; - var e = function(e, t) { - return function(e) { - var t = e.exports = function() { - return new RegExp("(?:" + t.line().source + ")|(?:" + t.block().source + ")","gm") - } - ; - t.line = function() { - return /(?:^|\s)\/\/(.+?)$/gm - } - , - t.block = function() { - return /\/\*([\S\s]*?)\*\//gm - } - }(t = { - exports: {} - }), - t.exports - }() - , t = ["23AC69", "91C132", "F19726", "E8552D", "1AAB8E", "E1147F", "2980C1", "1BA1E6", "9FA0A0", "F19726", "E30B20", "E30B20", "A3338B"]; - return function(n, r) { - void 0 === r && (r = {}); - var i = r.colors; - void 0 === i && (i = t); - var o = 0 - , a = {} - , s = new RegExp("(" + /[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af\u0400-\u04FF]+|\w+/.source + "|" + /' + e + "" - }(n); - if ("<" === t) - return "<"; - var r; - a[t] ? r = a[t] : (r = i[o], - a[t] = r); - var s = '' + t + ""; - return o = ++o % i.length, - s - }) - } - }() - } - , function(e, t, n) { - (function(t) { - !function(t) { - "use strict"; - function n(e) { - this.tokens = [], - this.tokens.links = {}, - this.options = e || h.defaults, - this.rules = v.normal, - this.options.pedantic ? this.rules = v.pedantic : this.options.gfm && (this.options.tables ? this.rules = v.tables : this.rules = v.gfm) - } - function r(e, t) { - if (this.options = t || h.defaults, - this.links = e, - this.rules = g.normal, - this.renderer = this.options.renderer || new i, - this.renderer.options = this.options, - !this.links) - throw new Error("Tokens array requires a `links` property."); - this.options.pedantic ? this.rules = g.pedantic : this.options.gfm && (this.options.breaks ? this.rules = g.breaks : this.rules = g.gfm) - } - function i(e) { - this.options = e || h.defaults - } - function o() {} - function a(e) { - this.tokens = [], - this.token = null, - this.options = e || h.defaults, - this.options.renderer = this.options.renderer || new i, - this.renderer = this.options.renderer, - this.renderer.options = this.options - } - function s(e, t) { - return e.replace(t ? /&/g : /&(?!#?\w+;)/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") - } - function l(e) { - return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi, function(e, t) { - return "colon" === (t = t.toLowerCase()) ? ":" : "#" === t.charAt(0) ? "x" === t.charAt(1) ? String.fromCharCode(parseInt(t.substring(2), 16)) : String.fromCharCode(+t.substring(1)) : "" - }) - } - function c(e, t) { - return e = e.source || e, - t = t || "", - { - replace: function(t, n) { - return n = (n = n.source || n).replace(/(^|[^\[])\^/g, "$1"), - e = e.replace(t, n), - this - }, - getRegex: function() { - return new RegExp(e,t) - } - } - } - function d(e, t) { - return m[" " + e] || (/^[^:]+:\/*[^\/]*$/.test(e) ? m[" " + e] = e + "/" : m[" " + e] = e.replace(/[^\/]*$/, "")), - e = m[" " + e], - "//" === t.slice(0, 2) ? e.replace(/:[\s\S]*/, ":") + t : "/" === t.charAt(0) ? e.replace(/(:\/*[^\/]*)[\s\S]*/, "$1") + t : e + t - } - function u() {} - function p(e) { - for (var t, n, r = 1; r < arguments.length; r++) - for (n in t = arguments[r]) - Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); - return e - } - function f(e, t) { - var n = e.replace(/([^\\])\|/g, "$1 |").split(/ +\| */) - , r = 0; - if (n.length > t) - n.splice(t); - else - for (; n.length < t; ) - n.push(""); - for (; r < n.length; r++) - n[r] = n[r].replace(/\\\|/g, "|"); - return n - } - function h(e, t, r) { - if (void 0 === e || null === e) - throw new Error("marked(): input parameter is undefined or null"); - if ("string" != typeof e) - throw new Error("marked(): input parameter is of type " + Object.prototype.toString.call(e) + ", string expected"); - if (r || "function" == typeof t) { - r || (r = t, - t = null); - var i, o, l = (t = p({}, h.defaults, t || {})).highlight, c = 0; - try { - i = n.lex(e, t) - } catch (e) { - return r(e) - } - o = i.length; - var d = function(e) { - if (e) - return t.highlight = l, - r(e); - var n; - try { - n = a.parse(i, t) - } catch (t) { - e = t - } - return t.highlight = l, - e ? r(e) : r(null, n) - }; - if (!l || l.length < 3) - return d(); - if (delete t.highlight, - !o) - return d(); - for (; c < i.length; c++) - !function(e) { - "code" !== e.type ? --o || d() : l(e.text, e.lang, function(t, n) { - return t ? d(t) : null == n || n === e.text ? --o || d() : (e.text = n, - e.escaped = !0, - void (--o || d())) - }) - }(i[c]) - } else - try { - return t && (t = p({}, h.defaults, t)), - a.parse(n.lex(e, t), t) - } catch (e) { - if (e.message += "\nPlease report this to https://github.com/markedjs/marked.", - (t || h.defaults).silent) - return "

    An error occurred:

    " + s(e.message + "", !0) + "
    "; - throw e - } - } - var v = { - newline: /^\n+/, - code: /^( {4}[^\n]+\n*)+/, - fences: u, - hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/, - heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/, - nptable: u, - blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/, - list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, - html: "^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$))", - def: /^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/, - table: u, - lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, - paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/, - text: /^[^\n]+/, - _label: /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/, - _title: /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/ - }; - v.def = c(v.def).replace("label", v._label).replace("title", v._title).getRegex(), - v.bullet = /(?:[*+-]|\d+\.)/, - v.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/, - v.item = c(v.item, "gm").replace(/bull/g, v.bullet).getRegex(), - v.list = c(v.list).replace(/bull/g, v.bullet).replace("hr", "\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def", "\\n+(?=" + v.def.source + ")").getRegex(), - v._tag = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", - v._comment = //, - v.html = c(v.html, "i").replace("comment", v._comment).replace("tag", v._tag).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), - v.paragraph = c(v.paragraph).replace("hr", v.hr).replace("heading", v.heading).replace("lheading", v.lheading).replace("tag", v._tag).getRegex(), - v.blockquote = c(v.blockquote).replace("paragraph", v.paragraph).getRegex(), - v.normal = p({}, v), - v.gfm = p({}, v.normal, { - fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/, - paragraph: /^/, - heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ - }), - v.gfm.paragraph = c(v.paragraph).replace("(?!", "(?!" + v.gfm.fences.source.replace("\\1", "\\2") + "|" + v.list.source.replace("\\1", "\\3") + "|").getRegex(), - v.tables = p({}, v.gfm, { - nptable: /^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/, - table: /^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/ - }), - v.pedantic = p({}, v.normal, { - html: c("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment", v._comment).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), - def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/ - }), - n.rules = v, - n.lex = function(e, t) { - return new n(t).lex(e) - } - , - n.prototype.lex = function(e) { - return e = e.replace(/\r\n|\r/g, "\n").replace(/\t/g, " ").replace(/\u00a0/g, " ").replace(/\u2424/g, "\n"), - this.token(e, !0) - } - , - n.prototype.token = function(e, t) { - e = e.replace(/^ +$/gm, ""); - for (var n, r, i, o, a, s, l, c, d, u, p, h, g; e; ) - if ((i = this.rules.newline.exec(e)) && (e = e.substring(i[0].length), - i[0].length > 1 && this.tokens.push({ - type: "space" - })), - i = this.rules.code.exec(e)) - e = e.substring(i[0].length), - i = i[0].replace(/^ {4}/gm, ""), - this.tokens.push({ - type: "code", - text: this.options.pedantic ? i : i.replace(/\n+$/, "") - }); - else if (i = this.rules.fences.exec(e)) - e = e.substring(i[0].length), - this.tokens.push({ - type: "code", - lang: i[2], - text: i[3] || "" - }); - else if (i = this.rules.heading.exec(e)) - e = e.substring(i[0].length), - this.tokens.push({ - type: "heading", - depth: i[1].length, - text: i[2] - }); - else if (t && (i = this.rules.nptable.exec(e)) && (s = { - type: "table", - header: f(i[1].replace(/^ *| *\| *$/g, "")), - align: i[2].replace(/^ *|\| *$/g, "").split(/ *\| */), - cells: i[3] ? i[3].replace(/\n$/, "").split("\n") : [] - }).header.length === s.align.length) { - for (e = e.substring(i[0].length), - c = 0; c < s.align.length; c++) - /^ *-+: *$/.test(s.align[c]) ? s.align[c] = "right" : /^ *:-+: *$/.test(s.align[c]) ? s.align[c] = "center" : /^ *:-+ *$/.test(s.align[c]) ? s.align[c] = "left" : s.align[c] = null; - for (c = 0; c < s.cells.length; c++) - s.cells[c] = f(s.cells[c], s.header.length); - this.tokens.push(s) - } else if (i = this.rules.hr.exec(e)) - e = e.substring(i[0].length), - this.tokens.push({ - type: "hr" - }); - else if (i = this.rules.blockquote.exec(e)) - e = e.substring(i[0].length), - this.tokens.push({ - type: "blockquote_start" - }), - i = i[0].replace(/^ *> ?/gm, ""), - this.token(i, t), - this.tokens.push({ - type: "blockquote_end" - }); - else if (i = this.rules.list.exec(e)) { - for (e = e.substring(i[0].length), - p = (o = i[2]).length > 1, - this.tokens.push({ - type: "list_start", - ordered: p, - start: p ? +o : "" - }), - n = !1, - u = (i = i[0].match(this.rules.item)).length, - c = 0; c < u; c++) - l = (s = i[c]).length, - ~(s = s.replace(/^ *([*+-]|\d+\.) +/, "")).indexOf("\n ") && (l -= s.length, - s = this.options.pedantic ? s.replace(/^ {1,4}/gm, "") : s.replace(new RegExp("^ {1," + l + "}","gm"), "")), - this.options.smartLists && c !== u - 1 && (o === (a = v.bullet.exec(i[c + 1])[0]) || o.length > 1 && a.length > 1 || (e = i.slice(c + 1).join("\n") + e, - c = u - 1)), - r = n || /\n\n(?!\s*$)/.test(s), - c !== u - 1 && (n = "\n" === s.charAt(s.length - 1), - r || (r = n)), - g = void 0, - (h = /^\[[ xX]\] /.test(s)) && (g = " " !== s[1], - s = s.replace(/^\[[ xX]\] +/, "")), - this.tokens.push({ - type: r ? "loose_item_start" : "list_item_start", - task: h, - checked: g - }), - this.token(s, !1), - this.tokens.push({ - type: "list_item_end" - }); - this.tokens.push({ - type: "list_end" - }) - } else if (i = this.rules.html.exec(e)) - e = e.substring(i[0].length), - this.tokens.push({ - type: this.options.sanitize ? "paragraph" : "html", - pre: !this.options.sanitizer && ("pre" === i[1] || "script" === i[1] || "style" === i[1]), - text: i[0] - }); - else if (t && (i = this.rules.def.exec(e))) - e = e.substring(i[0].length), - i[3] && (i[3] = i[3].substring(1, i[3].length - 1)), - d = i[1].toLowerCase().replace(/\s+/g, " "), - this.tokens.links[d] || (this.tokens.links[d] = { - href: i[2], - title: i[3] - }); - else if (t && (i = this.rules.table.exec(e)) && (s = { - type: "table", - header: f(i[1].replace(/^ *| *\| *$/g, "")), - align: i[2].replace(/^ *|\| *$/g, "").split(/ *\| */), - cells: i[3] ? i[3].replace(/(?: *\| *)?\n$/, "").split("\n") : [] - }).header.length === s.align.length) { - for (e = e.substring(i[0].length), - c = 0; c < s.align.length; c++) - /^ *-+: *$/.test(s.align[c]) ? s.align[c] = "right" : /^ *:-+: *$/.test(s.align[c]) ? s.align[c] = "center" : /^ *:-+ *$/.test(s.align[c]) ? s.align[c] = "left" : s.align[c] = null; - for (c = 0; c < s.cells.length; c++) - s.cells[c] = f(s.cells[c].replace(/^ *\| *| *\| *$/g, ""), s.header.length); - this.tokens.push(s) - } else if (i = this.rules.lheading.exec(e)) - e = e.substring(i[0].length), - this.tokens.push({ - type: "heading", - depth: "=" === i[2] ? 1 : 2, - text: i[1] - }); - else if (t && (i = this.rules.paragraph.exec(e))) - e = e.substring(i[0].length), - this.tokens.push({ - type: "paragraph", - text: "\n" === i[1].charAt(i[1].length - 1) ? i[1].slice(0, -1) : i[1] - }); - else if (i = this.rules.text.exec(e)) - e = e.substring(i[0].length), - this.tokens.push({ - type: "text", - text: i[0] - }); - else if (e) - throw new Error("Infinite loop on byte: " + e.charCodeAt(0)); - return this.tokens - } - ; - var g = { - escape: /^\\([!"#$%&'()*+,\-.\/:;<=>?@\[\]\\^_`{|}~])/, - autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/, - url: u, - tag: "^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^", - link: /^!?\[(label)\]\(href(?:\s+(title))?\s*\)/, - reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/, - nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/, - strong: /^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)|^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)/, - em: /^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*][\s\S]*?[^\s])\*(?!\*)|^_([^\s_])_(?!_)|^\*([^\s*])\*(?!\*)/, - code: /^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/, - br: /^ {2,}\n(?!\s*$)/, - del: u, - text: /^[\s\S]+?(?=[\\?@\[\]\\^_`{|}~])/g, - _scheme: /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/, - _email: /[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/ - }; - g.autolink = c(g.autolink).replace("scheme", g._scheme).replace("email", g._email).getRegex(), - g._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/, - g.tag = c(g.tag).replace("comment", v._comment).replace("attribute", g._attribute).getRegex(), - g._label = /(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/, - g._href = /\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f()\\]*\)|[^\s\x00-\x1f()\\])*?)/, - g._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/, - g.link = c(g.link).replace("label", g._label).replace("href", g._href).replace("title", g._title).getRegex(), - g.reflink = c(g.reflink).replace("label", g._label).getRegex(), - g.normal = p({}, g), - g.pedantic = p({}, g.normal, { - strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, - em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/, - link: c(/^!?\[(label)\]\((.*?)\)/).replace("label", g._label).getRegex(), - reflink: c(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", g._label).getRegex() - }), - g.gfm = p({}, g.normal, { - escape: c(g.escape).replace("])", "~|])").getRegex(), - url: c(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email", g._email).getRegex(), - _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/, - del: /^~~(?=\S)([\s\S]*?\S)~~/, - text: c(g.text).replace("]|", "~]|").replace("|", "|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex() - }), - g.breaks = p({}, g.gfm, { - br: c(g.br).replace("{2,}", "*").getRegex(), - text: c(g.gfm.text).replace("{2,}", "*").getRegex() - }), - r.rules = g, - r.output = function(e, t, n) { - return new r(t,n).output(e) - } - , - r.prototype.output = function(e) { - for (var t, n, i, o, a, l = ""; e; ) - if (a = this.rules.escape.exec(e)) - e = e.substring(a[0].length), - l += a[1]; - else if (a = this.rules.autolink.exec(e)) - e = e.substring(a[0].length), - "@" === a[2] ? i = "mailto:" + (n = s(this.mangle(a[1]))) : i = n = s(a[1]), - l += this.renderer.link(i, null, n); - else if (this.inLink || !(a = this.rules.url.exec(e))) { - if (a = this.rules.tag.exec(e)) - !this.inLink && /^/i.test(a[0]) && (this.inLink = !1), - e = e.substring(a[0].length), - l += this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(a[0]) : s(a[0]) : a[0]; - else if (a = this.rules.link.exec(e)) - e = e.substring(a[0].length), - this.inLink = !0, - i = a[2], - this.options.pedantic ? (t = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i)) ? (i = t[1], - o = t[3]) : o = "" : o = a[3] ? a[3].slice(1, -1) : "", - i = i.trim().replace(/^<([\s\S]*)>$/, "$1"), - l += this.outputLink(a, { - href: r.escapes(i), - title: r.escapes(o) - }), - this.inLink = !1; - else if ((a = this.rules.reflink.exec(e)) || (a = this.rules.nolink.exec(e))) { - if (e = e.substring(a[0].length), - t = (a[2] || a[1]).replace(/\s+/g, " "), - !(t = this.links[t.toLowerCase()]) || !t.href) { - l += a[0].charAt(0), - e = a[0].substring(1) + e; - continue - } - this.inLink = !0, - l += this.outputLink(a, t), - this.inLink = !1 - } else if (a = this.rules.strong.exec(e)) - e = e.substring(a[0].length), - l += this.renderer.strong(this.output(a[4] || a[3] || a[2] || a[1])); - else if (a = this.rules.em.exec(e)) - e = e.substring(a[0].length), - l += this.renderer.em(this.output(a[6] || a[5] || a[4] || a[3] || a[2] || a[1])); - else if (a = this.rules.code.exec(e)) - e = e.substring(a[0].length), - l += this.renderer.codespan(s(a[2].trim(), !0)); - else if (a = this.rules.br.exec(e)) - e = e.substring(a[0].length), - l += this.renderer.br(); - else if (a = this.rules.del.exec(e)) - e = e.substring(a[0].length), - l += this.renderer.del(this.output(a[1])); - else if (a = this.rules.text.exec(e)) - e = e.substring(a[0].length), - l += this.renderer.text(s(this.smartypants(a[0]))); - else if (e) - throw new Error("Infinite loop on byte: " + e.charCodeAt(0)) - } else - a[0] = this.rules._backpedal.exec(a[0])[0], - e = e.substring(a[0].length), - "@" === a[2] ? i = "mailto:" + (n = s(a[0])) : (n = s(a[0]), - i = "www." === a[1] ? "http://" + n : n), - l += this.renderer.link(i, null, n); - return l - } - , - r.escapes = function(e) { - return e ? e.replace(r.rules._escapes, "$1") : e - } - , - r.prototype.outputLink = function(e, t) { - var n = t.href - , r = t.title ? s(t.title) : null; - return "!" !== e[0].charAt(0) ? this.renderer.link(n, r, this.output(e[1])) : this.renderer.image(n, r, s(e[1])) - } - , - r.prototype.smartypants = function(e) { - return this.options.smartypants ? e.replace(/---/g, "—").replace(/--/g, "–").replace(/(^|[-\u2014\/(\[{"\s])'/g, "$1‘").replace(/'/g, "’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g, "$1“").replace(/"/g, "”").replace(/\.{3}/g, "…") : e - } - , - r.prototype.mangle = function(e) { - if (!this.options.mangle) - return e; - for (var t, n = "", r = e.length, i = 0; i < r; i++) - t = e.charCodeAt(i), - Math.random() > .5 && (t = "x" + t.toString(16)), - n += "&#" + t + ";"; - return n - } - , - i.prototype.code = function(e, t, n) { - if (this.options.highlight) { - var r = this.options.highlight(e, t); - null != r && r !== e && (n = !0, - e = r) - } - return t ? '
    ' + (n ? e : s(e, !0)) + "
    \n" : "
    " + (n ? e : s(e, !0)) + "
    " - } - , - i.prototype.blockquote = function(e) { - return "
    \n" + e + "
    \n" - } - , - i.prototype.html = function(e) { - return e - } - , - i.prototype.heading = function(e, t, n) { - return this.options.headerIds ? "' + e + "\n" : "" + e + "\n" - } - , - i.prototype.hr = function() { - return this.options.xhtml ? "
    \n" : "
    \n" - } - , - i.prototype.list = function(e, t, n) { - var r = t ? "ol" : "ul"; - return "<" + r + (t && 1 !== n ? ' start="' + n + '"' : "") + ">\n" + e + "\n" - } - , - i.prototype.listitem = function(e) { - return "
  • " + e + "
  • \n" - } - , - i.prototype.checkbox = function(e) { - return " " - } - , - i.prototype.paragraph = function(e) { - return "

    " + e + "

    \n" - } - , - i.prototype.table = function(e, t) { - return t && (t = "" + t + ""), - "\n\n" + e + "\n" + t + "
    \n" - } - , - i.prototype.tablerow = function(e) { - return "\n" + e + "\n" - } - , - i.prototype.tablecell = function(e, t) { - var n = t.header ? "th" : "td"; - return (t.align ? "<" + n + ' align="' + t.align + '">' : "<" + n + ">") + e + "\n" - } - , - i.prototype.strong = function(e) { - return "" + e + "" - } - , - i.prototype.em = function(e) { - return "" + e + "" - } - , - i.prototype.codespan = function(e) { - return "" + e + "" - } - , - i.prototype.br = function() { - return this.options.xhtml ? "
    " : "
    " - } - , - i.prototype.del = function(e) { - return "" + e + "" - } - , - i.prototype.link = function(e, t, n) { - if (this.options.sanitize) { - try { - var r = decodeURIComponent(l(e)).replace(/[^\w:]/g, "").toLowerCase() - } catch (e) { - return n - } - if (0 === r.indexOf("javascript:") || 0 === r.indexOf("vbscript:") || 0 === r.indexOf("data:")) - return n - } - this.options.baseUrl && !b.test(e) && (e = d(this.options.baseUrl, e)); - try { - e = encodeURI(e).replace(/%25/g, "%") - } catch (e) { - return n - } - var i = '
    " + n + "" - } - , - i.prototype.image = function(e, t, n) { - this.options.baseUrl && !b.test(e) && (e = d(this.options.baseUrl, e)); - var r = '' + n + '" : ">") - } - , - i.prototype.text = function(e) { - return e - } - , - o.prototype.strong = o.prototype.em = o.prototype.codespan = o.prototype.del = o.prototype.text = function(e) { - return e - } - , - o.prototype.link = o.prototype.image = function(e, t, n) { - return "" + n - } - , - o.prototype.br = function() { - return "" - } - , - a.parse = function(e, t) { - return new a(t).parse(e) - } - , - a.prototype.parse = function(e) { - this.inline = new r(e.links,this.options), - this.inlineText = new r(e.links,p({}, this.options, { - renderer: new o - })), - this.tokens = e.reverse(); - for (var t = ""; this.next(); ) - t += this.tok(); - return t - } - , - a.prototype.next = function() { - return this.token = this.tokens.pop() - } - , - a.prototype.peek = function() { - return this.tokens[this.tokens.length - 1] || 0 - } - , - a.prototype.parseText = function() { - for (var e = this.token.text; "text" === this.peek().type; ) - e += "\n" + this.next().text; - return this.inline.output(e) - } - , - a.prototype.tok = function() { - switch (this.token.type) { - case "space": - return ""; - case "hr": - return this.renderer.hr(); - case "heading": - return this.renderer.heading(this.inline.output(this.token.text), this.token.depth, l(this.inlineText.output(this.token.text))); - case "code": - return this.renderer.code(this.token.text, this.token.lang, this.token.escaped); - case "table": - var e, t, n, r, i = "", o = ""; - for (n = "", - e = 0; e < this.token.header.length; e++) - n += this.renderer.tablecell(this.inline.output(this.token.header[e]), { - header: !0, - align: this.token.align[e] - }); - for (i += this.renderer.tablerow(n), - e = 0; e < this.token.cells.length; e++) { - for (t = this.token.cells[e], - n = "", - r = 0; r < t.length; r++) - n += this.renderer.tablecell(this.inline.output(t[r]), { - header: !1, - align: this.token.align[r] - }); - o += this.renderer.tablerow(n) - } - return this.renderer.table(i, o); - case "blockquote_start": - for (o = ""; "blockquote_end" !== this.next().type; ) - o += this.tok(); - return this.renderer.blockquote(o); - case "list_start": - o = ""; - for (var a = this.token.ordered, s = this.token.start; "list_end" !== this.next().type; ) - o += this.tok(); - return this.renderer.list(o, a, s); - case "list_item_start": - for (o = "", - this.token.task && (o += this.renderer.checkbox(this.token.checked)); "list_item_end" !== this.next().type; ) - o += "text" === this.token.type ? this.parseText() : this.tok(); - return this.renderer.listitem(o); - case "loose_item_start": - for (o = ""; "list_item_end" !== this.next().type; ) - o += this.tok(); - return this.renderer.listitem(o); - case "html": - return this.renderer.html(this.token.text); - case "paragraph": - return this.renderer.paragraph(this.inline.output(this.token.text)); - case "text": - return this.renderer.paragraph(this.parseText()) - } - } - ; - var m = {} - , b = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; - u.exec = u, - h.options = h.setOptions = function(e) { - return p(h.defaults, e), - h - } - , - h.getDefaults = function() { - return { - baseUrl: null, - breaks: !1, - gfm: !0, - headerIds: !0, - headerPrefix: "", - highlight: null, - langPrefix: "language-", - mangle: !0, - pedantic: !1, - renderer: new i, - sanitize: !1, - sanitizer: null, - silent: !1, - smartLists: !1, - smartypants: !1, - tables: !0, - xhtml: !1 - } - } - , - h.defaults = h.getDefaults(), - h.Parser = a, - h.parser = a.parse, - h.Renderer = i, - h.TextRenderer = o, - h.Lexer = n, - h.lexer = n.lex, - h.InlineLexer = r, - h.inlineLexer = r.output, - h.parse = h, - e.exports = h - }(this || "undefined" != typeof window && window) - } - ).call(t, n(10)) - } - , function(e, t) { - e.exports = { - name: "valine", - version: "Volantis Edition (based on 1.3.10)", - description: "A simple comment system based on Leancloud.", - main: "/dist/Valine.min.js", - author: "xCss (https://github.com/xCss)", - scripts: { - test: "webpack", - build: "webpack", - dev: "webpack-dev-server --env.dev", - clean: "rm -rf dist/* " - }, - keywords: ["simple", "easy-to-use", "fast-and-safe", "comment-system"], - license: "GPL-2.0", - repository: { - type: "git", - url: "git+https://github.com/xcss/Valine.git" - }, - homepage: "https://github.com/xcss/Valine#readme", - devDependencies: { - autoprefixer: "^7.1.1", - autosize: "^4.0.2", - "babel-core": "^6.25.0", - "babel-loader": "^7.1.1", - "babel-polyfill": "^6.23.0", - "babel-preset-es2015": "^6.24.1", - "babel-preset-stage-0": "^6.24.1", - "blueimp-md5": "^2.8.0", - "css-loader": "^0.28.4", - "exports-loader": "^0.6.3", - "file-loader": "^0.11.2", - hanabi: "^0.4.0", - marked: "^0.4.0", - "node-sass": "^4.9.2", - "postcss-loader": "^2.0.5", - "sass-loader": "^6.0.3", - "style-loader": "^0.18.2", - "url-loader": "^0.6.2", - webpack: "^2.6.1", - "webpack-cli": "^3.3.5", - "webpack-dev-server": "^2.9.1" - } - } - } - , function(e, t) { - var n; - n = function() { - return this - }(); - try { - n = n || Function("return this")() || (0, - eval)("this") - } catch (e) { - "object" == typeof window && (n = window) - } - e.exports = n - } - , function(e, t) { - function aru(index){ - return ""; - } - function tieba(str){ - return ""; - } - function qq(str) { - return ""; - } - e.exports = { - aru151: aru(151), - 贴吧what: tieba('what'), - 贴吧乖: tieba('乖'), - 贴吧喷: tieba('喷'), - 贴吧太开心: tieba('太开心'), - 贴吧委屈: tieba('委屈'), - 贴吧小乖: tieba('小乖'), - 贴吧捂嘴笑: tieba('捂嘴笑'), - 贴吧泪: tieba('泪'), - 贴吧滑稽: tieba('滑稽'), - 贴吧爱心: tieba('爱心'), - 贴吧玫瑰: tieba('玫瑰'), - 贴吧真棒: tieba('真棒'), - 贴吧疑问: tieba('疑问'), - qqOK: qq('OK'), - qq亲亲: qq('亲亲'), - qq便便: qq('便便'), - qq偷笑: qq('偷笑'), - qq冷汗: qq('冷汗'), - qq发呆: qq('发呆'), - qq发怒: qq('发怒'), - qq可怜: qq('可怜'), - qq可爱: qq('可爱'), - qq左哼哼: qq('左哼哼'), - qq右哼哼: qq('右哼哼'), - qq吓: qq('吓'), - qq呲牙: qq('呲牙'), - qq嗅大了: qq('嗅大了'), - qq坏笑: qq('坏笑'), - qq奋斗: qq('奋斗'), - qq委屈: qq('委屈'), - qq害羞: qq('害羞'), - qq尴尬: qq('尴尬'), - qq强: qq('强'), - qq得意: qq('得意'), - qq快哭了: qq('快哭了'), - qq惊恐: qq('惊恐'), - qq憨笑: qq('憨笑'), - qq抓狂: qq('抓狂'), - qq抱拳: qq('抱拳'), - qq握手: qq('握手'), - qq晕: qq('晕'), - qq疑问: qq('疑问'), - qq阴险: qq('阴险'), - qq鼓掌: qq('鼓掌'), - grinning: "😀", - smiley: "😃", - smile: "😄", - grin: "😁", - laughing: "😆", - sweat_smile: "😅", - joy: "😂", - blush: "😊", - innocent: "😇", - wink: "😉", - relieved: "😌", - heart_eyes: "😍", - kissing_heart: "😘", - kissing: "😗", - kissing_smiling_eyes: "😙", - kissing_closed_eyes: "😚", - yum: "😋", - stuck_out_tongue_winking_eye: "😜", - stuck_out_tongue_closed_eyes: "😝", - stuck_out_tongue: "😛", - sunglasses: "😎", - smirk: "😏", - unamused: "😒", - disappointed: "😞", - pensive: "😔", - worried: "😟", - confused: "😕", - persevere: "😣", - confounded: "😖", - tired_face: "😫", - weary: "😩", - angry: "😠", - rage: "😡", - no_mouth: "😶", - neutral_face: "😐", - expressionless: "😑", - hushed: "😯", - frowning: "😦", - anguished: "😧", - open_mouth: "😮", - astonished: "😲", - dizzy_face: "😵", - flushed: "😳", - scream: "😱", - fearful: "😨", - cold_sweat: "😰", - cry: "😢", - disappointed_relieved: "😥", - sob: "😭", - sweat: "😓", - sleepy: "😪", - sleeping: "😴", - mask: "😷", - smiling_imp: "😈", - smiley_cat: "😺", - smile_cat: "😸", - joy_cat: "😹", - heart_eyes_cat: "😻", - smirk_cat: "😼", - kissing_cat: "😽", - scream_cat: "🙀", - crying_cat_face: "😿", - pouting_cat: "😾", - cat: "🐱", - mouse: "🐭", - cow: "🐮", - monkey_face: "🐵", - hand: "✋", - fist: "✊", - v: "✌️", - point_up: "👆", - point_down: "👇", - point_left: "👈", - point_right: "👉", - facepunch: "👊", - wave: "👋", - clap: "👏", - open_hands: "👐", - "+1": "👍", - "-1": "👎", - ok_hand: "👌", - pray: "🙏", - ear: "👂", - eyes: "👀", - nose: "👃", - lips: "👄", - tongue: "👅", - heart: "❤️", - cupid: "💘", - sparkling_heart: "💖", - star: "⭐️", - sparkles: "✨", - zap: "⚡️", - sunny: "☀️", - cloud: "☁️", - snowflake: "❄️", - umbrella: "☔️", - coffee: "☕️", - airplane: "✈️", - anchor: "⚓️", - watch: "⌚️", - phone: "☎️", - hourglass: "⌛️", - email: "✉️", - scissors: "✂️", - black_nib: "✒️", - pencil2: "✏️", - x: "❌", - recycle: "♻️", - white_check_mark: "✅", - negative_squared_cross_mark: "❎", - m: "Ⓜ️", - i: "ℹ️", - tm: "™️", - copyright: "©️", - registered: "®️" - } - } - , function(e, t, n) { - var r = n(13); - "string" == typeof r && (r = [[e.i, r, ""]]); - var i = { - transform: void 0 - }; - n(15)(r, i), - r.locals && (e.exports = r.locals) - } - , function(e, t, n) { - (e.exports = n(14)(!1)).push([e.i, '.v{font-size:16px;text-align:left}.v *{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:2;color:#555;-webkit-transition:all .3s ease;transition:all .3s ease}.v hr{margin:.825em 0;border-color:#f6f6f6;border-style:dashed}.v.hide-avatar .vimg{display:none}.v a{position:relative;cursor:pointer;color:#1abc9c;display:inline-block}.v a:before{content:"";position:absolute;width:0;right:0;bottom:0;height:1px;background:#1abc9c;-webkit-transition:width .3s ease;transition:width .3s ease}.v a:hover{color:#d7191a}.v a:hover:before{width:100%;left:0;right:auto}.v code,.v pre{background-color:#f6f6f6;color:#555;padding:.2em .4em;border-radius:3px;font-size:85%;margin:0;font-family:Source Code Pro,courier new,Input Mono,PT Mono,SFMono-Regular,Consolas,Monaco,Menlo,PingFang SC,Liberation Mono,Microsoft YaHei,Courier,monospace}.v pre{padding:10px;overflow:auto;line-height:1.45}.v pre code{padding:0;background:transparent;white-space:pre-wrap;word-break:keep-all}.v blockquote{color:#666;margin:.5em 0;padding:0 0 0 1em;border-left:8px solid hsla(0,0%,93%,.5)}.v .vinput{border:none;resize:none;outline:none;padding:10px 5px;max-width:100%;font-size:.775em}.v input[type=checkbox],.v input[type=radio]{display:inline-block;vertical-align:middle;margin-top:-2px}.v .vwrap{border:1px solid #f0f0f0;border-radius:4px;margin-bottom:10px;overflow:hidden;position:relative;padding:10px}.v .vwrap input{background:transparent}.v .vwrap .vedit{position:relative;padding-top:10px}.v .vwrap .vedit .vctrl{text-align:right;font-size:12px}.v .vwrap .vedit .vctrl span{padding:10px;display:inline-block;vertical-align:middle;cursor:pointer}.v .vwrap .vedit .vemojis{display:none;font-size:18px;text-align:justify;max-height:145px;overflow:auto;margin-bottom:10px;-webkit-box-shadow:0 0 1px #f0f0f0;box-shadow:0 0 1px #f0f0f0}.v .vwrap .vedit .vemojis i{font-style:normal;padding:7px 0;width:38px;cursor:pointer;text-align:center;display:inline-block;vertical-align:middle}.v .vwrap .vedit .vpreview{padding:7px;-webkit-box-shadow:0 0 1px #f0f0f0;box-shadow:0 0 1px #f0f0f0}.v .vwrap .vedit .vpreview frame,.v .vwrap .vedit .vpreview iframe,.v .vwrap .vedit .vpreview img{max-width:100%;border:none}.v .vwrap .vheader .vinput{width:33.33%;border-bottom:1px dashed #dedede}.v .vwrap .vheader.item2 .vinput{width:50%}.v .vwrap .vheader.item1 .vinput{width:100%}.v .vwrap .vheader .vinput:focus{border-bottom-color:#eb5055}@media screen and (max-width:520px){.v .vwrap .vheader.item2 .vinput,.v .vwrap .vheader .vinput{width:100%}}.v .vwrap .vcontrol{font-size:0;padding-top:15px}.v .vwrap .vcontrol .col{display:inline-block;font-size:16px;vertical-align:middle;color:#ccc}.v .vwrap .vcontrol .col.text-right{text-align:right}.v .vwrap .vcontrol .col svg{margin-right:2px;overflow:hidden;fill:currentColor;vertical-align:middle}.v .vwrap .vcontrol .col.col-20{width:20%}.v .vwrap .vcontrol .col.col-40{width:40%}.v .vwrap .vcontrol .col.col-60{width:60%}.v .vwrap .vcontrol .col.col-80{width:80%}.v .vwrap .vcontrol .col.split{width:50%}.v .vwrap .vmark{position:absolute;background:rgba(0,0,0,.65);width:100%;height:100%;left:0;top:0}.v .vwrap .vmark .valert{padding-top:3em}.v .vwrap .vmark .valert .vtext{color:#fff;padding:1em 0}.v .vwrap .vmark .valert .vcode{width:4.6875em;border-radius:.3125em;padding:.5em;background:#dedede}.v .vwrap .vmark .valert .vcode:focus{border-color:#3090e4;background-color:#fff}@media screen and (max-width:720px){.v .vwrap .vmark .valert{padding-top:5.5em}.v .vwrap .vmark .valert .vtext{color:#fff;padding:1em 0}}.v .power{color:#999;padding:.5em 0}.v .power,.v .power a{font-size:.75em}.v .vinfo{font-size:0;padding:5px}.v .vinfo .col{font-size:16px;display:inline-block;width:50%;vertical-align:middle}.v .vinfo .vcount .vnum{font-weight:600;font-size:1.25em}.v a{text-decoration:none;color:#555}.v a:hover{color:#222}.v ol,.v ul{padding:0;margin-left:1.25em}.v .txt-center{text-align:center}.v .txt-right{text-align:right}.v .pd5{padding:5px}.v .pd10{padding:10px}.v .veditor{width:100%;min-height:8.75em;font-size:.875em;background:transparent;resize:vertical;-webkit-transition:all .25s ease;transition:all .25s ease}.v .vbtn{-webkit-transition-duration:.4s;transition-duration:.4s;text-align:center;color:#313131;border:1px solid #ededed;border-radius:.3em;display:inline-block;background:#ededed;margin-bottom:0;font-weight:400;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;white-space:nowrap;padding:.5em 1.25em;font-size:.875em;line-height:1.42857143;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none}.v .vbtn+.vbtn{margin-left:1.25em}.v .vbtn:active,.v .vbtn:hover{color:#3090e4;border-color:#3090e4;background-color:#fff}.v .vempty{padding:1.25em;text-align:center;color:#999}.v .vlist{width:100%}.v .vlist .vcard{padding-top:1.5em;position:relative;display:block}.v .vlist .vcard:after{content:"";clear:both;display:block}.v .vlist .vcard .vimg{width:3.125em;height:3.125em;float:left;border-radius:50%;margin-right:.7525em;border:1px solid #f5f5f5;padding:.125em}@media screen and (max-width:720px){.v .vlist .vcard .vimg{width:2.5em;height:2.5em}}.v .vlist .vcard .vhead{line-height:1.5;margin-top:0}.v .vlist .vcard .vhead .vnick{position:relative;font-size:.875em;font-weight:500;margin-right:.875em;cursor:pointer;color:#1abc9c;text-decoration:none;display:inline-block}.v .vlist .vcard .vhead .vnick:before{content:"";position:absolute;width:0;right:0;bottom:0;height:1px;background:#1abc9c;-webkit-transition:width .3s ease;transition:width .3s ease}.v .vlist .vcard .vhead .vnick:hover{color:#d7191a}.v .vlist .vcard .vhead .vnick:hover:before{width:100%;left:0;right:auto}.v .vlist .vcard .vhead .vsys{display:inline-block;padding:.2em .5em;background:#ededed;color:#b3b1b1;font-size:.75em;border-radius:.2em;margin-right:.3em}@media screen and (max-width:520px){.v .vlist .vcard .vhead .vsys{display:none}}.v .vlist .vcard .vh{overflow:hidden;padding-bottom:.5em;border-bottom:1px dashed #f5f5f5}.v .vlist .vcard .vh .vtime{color:#b3b3b3;font-size:.75em;margin-right:.875em}.v .vlist .vcard .vh .vmeta{line-height:1;position:relative}.v .vlist .vcard .vh .vmeta .vat{font-size:.8125em;color:#ef2f11;cursor:pointer;float:right}.v .vlist .vcard:last-child .vh{border-bottom:none}.v .vlist .vcard .vcontent{word-wrap:break-word;word-break:break-all;text-align:justify;color:#4a4a4a;font-size:.875em;line-height:2;position:relative;margin-bottom:.75em;padding-top:.625em}.v .vlist .vcard .vcontent frame,.v .vlist .vcard .vcontent iframe,.v .vlist .vcard .vcontent img{max-width:100%;border:none}.v .vlist .vcard .vcontent.expand{cursor:pointer;max-height:11.25em;overflow:hidden}.v .vlist .vcard .vcontent.expand:before{display:block;content:"";position:absolute;width:100%;left:0;top:0;bottom:3.15em;pointer-events:none;background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),to(hsla(0,0%,100%,.9)));background:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.9))}.v .vlist .vcard .vcontent.expand:after{display:block;content:"Click on expand";text-align:center;color:#828586;position:absolute;width:100%;height:3.15em;line-height:3.15em;left:0;bottom:0;pointer-events:none;background:hsla(0,0%,100%,.9)}.v .vlist .vcard .vquote{color:#666;margin-top:1em;padding-left:1em;border-left:1px dashed hsla(0,0%,93%,.5)}.v .vlist .vcard .vquote .vimg{width:2.225em;height:2.225em}.v .vpage .vmore{margin:1em 0}.v .clear{content:"";display:block;clear:both}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes pulse{50%{background:#dcdcdc}}@keyframes pulse{50%{background:#dcdcdc}}.v .vloading{position:relative;padding:20px;display:block;height:80px}.v .vloading:before{-webkit-box-sizing:border-box;box-sizing:border-box;content:"";position:absolute;display:inline-block;top:20px;left:50%;margin-left:-20px;width:40px;height:40px;border:6px double #a0a0a0;border-top-color:transparent;border-bottom-color:transparent;border-radius:50%;-webkit-animation:spin 1s infinite linear;animation:spin 1s infinite linear}', ""]) - } - , function(e, t) { - function n(e, t) { - var n = e[1] || "" - , r = e[3]; - if (!r) - return n; - if (t && "function" == typeof btoa) { - var i = function(e) { - return "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(e)))) + " */" - }(r); - return [n].concat(r.sources.map(function(e) { - return "/*# sourceURL=" + r.sourceRoot + e + " */" - })).concat([i]).join("\n") - } - return [n].join("\n") - } - e.exports = function(e) { - var t = []; - return t.toString = function() { - return this.map(function(t) { - var r = n(t, e); - return t[2] ? "@media " + t[2] + "{" + r + "}" : r - }).join("") - } - , - t.i = function(e, n) { - "string" == typeof e && (e = [[null, e, ""]]); - for (var r = {}, i = 0; i < this.length; i++) { - var o = this[i][0]; - "number" == typeof o && (r[o] = !0) - } - for (i = 0; i < e.length; i++) { - var a = e[i]; - "number" == typeof a[0] && r[a[0]] || (n && !a[2] ? a[2] = n : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), - t.push(a)) - } - } - , - t - } - } - , function(e, t, n) { - function r(e, t) { - for (var n = 0; n < e.length; n++) { - var r = e[n] - , i = p[r.id]; - if (i) { - i.refs++; - for (var o = 0; o < i.parts.length; o++) - i.parts[o](r.parts[o]); - for (; o < r.parts.length; o++) - i.parts.push(d(r.parts[o], t)) - } else { - var a = []; - for (o = 0; o < r.parts.length; o++) - a.push(d(r.parts[o], t)); - p[r.id] = { - id: r.id, - refs: 1, - parts: a - } - } - } - } - function i(e, t) { - for (var n = [], r = {}, i = 0; i < e.length; i++) { - var o = e[i] - , a = t.base ? o[0] + t.base : o[0] - , s = { - css: o[1], - media: o[2], - sourceMap: o[3] - }; - r[a] ? r[a].parts.push(s) : n.push(r[a] = { - id: a, - parts: [s] - }) - } - return n - } - function o(e, t) { - var n = h(e.insertInto); - if (!n) - throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid."); - var r = m[m.length - 1]; - if ("top" === e.insertAt) - r ? r.nextSibling ? n.insertBefore(t, r.nextSibling) : n.appendChild(t) : n.insertBefore(t, n.firstChild), - m.push(t); - else { - if ("bottom" !== e.insertAt) - throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'."); - n.appendChild(t) - } - } - function a(e) { - if (null === e.parentNode) - return !1; - e.parentNode.removeChild(e); - var t = m.indexOf(e); - t >= 0 && m.splice(t, 1) - } - function s(e) { - var t = document.createElement("style"); - return e.attrs.type = "text/css", - c(t, e.attrs), - o(e, t), - t - } - function l(e) { - var t = document.createElement("link"); - return e.attrs.type = "text/css", - e.attrs.rel = "stylesheet", - c(t, e.attrs), - o(e, t), - t - } - function c(e, t) { - Object.keys(t).forEach(function(n) { - e.setAttribute(n, t[n]) - }) - } - function d(e, t) { - var n, r, i, o; - if (t.transform && e.css) { - if (!(o = t.transform(e.css))) - return function() {} - ; - e.css = o - } - if (t.singleton) { - var c = g++; - n = v || (v = s(t)), - r = u.bind(null, n, c, !1), - i = u.bind(null, n, c, !0) - } else - e.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (n = l(t), - r = function(e, t, n) { - var r = n.css - , i = n.sourceMap - , o = void 0 === t.convertToAbsoluteUrls && i; - (t.convertToAbsoluteUrls || o) && (r = b(r)), - i && (r += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(i)))) + " */"); - var a = new Blob([r],{ - type: "text/css" - }) - , s = e.href; - e.href = URL.createObjectURL(a), - s && URL.revokeObjectURL(s) - } - .bind(null, n, t), - i = function() { - a(n), - n.href && URL.revokeObjectURL(n.href) - } - ) : (n = s(t), - r = function(e, t) { - var n = t.css - , r = t.media; - if (r && e.setAttribute("media", r), - e.styleSheet) - e.styleSheet.cssText = n; - else { - for (; e.firstChild; ) - e.removeChild(e.firstChild); - e.appendChild(document.createTextNode(n)) - } - } - .bind(null, n), - i = function() { - a(n) - } - ); - return r(e), - function(t) { - if (t) { - if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) - return; - r(e = t) - } else - i() - } - } - function u(e, t, n, r) { - var i = n ? "" : r.css; - if (e.styleSheet) - e.styleSheet.cssText = x(t, i); - else { - var o = document.createTextNode(i) - , a = e.childNodes; - a[t] && e.removeChild(a[t]), - a.length ? e.insertBefore(o, a[t]) : e.appendChild(o) - } - } - var p = {} - , f = function(e) { - var t; - return function() { - return void 0 === t && (t = function() { - return window && document && document.all && !window.atob - } - .apply(this, arguments)), - t - } - }() - , h = function(e) { - var t = {}; - return function(e) { - return void 0 === t[e] && (t[e] = function(e) { - return document.querySelector(e) - } - .call(this, e)), - t[e] - } - }() - , v = null - , g = 0 - , m = [] - , b = n(16); - e.exports = function(e, t) { - if ("undefined" != typeof DEBUG && DEBUG && "object" != typeof document) - throw new Error("The style-loader cannot be used in a non-browser environment"); - (t = t || {}).attrs = "object" == typeof t.attrs ? t.attrs : {}, - t.singleton || (t.singleton = f()), - t.insertInto || (t.insertInto = "head"), - t.insertAt || (t.insertAt = "bottom"); - var n = i(e, t); - return r(n, t), - function(e) { - for (var o = [], a = 0; a < n.length; a++) { - var s = n[a]; - (l = p[s.id]).refs--, - o.push(l) - } - e && r(i(e, t), t); - for (a = 0; a < o.length; a++) { - var l; - if (0 === (l = o[a]).refs) { - for (var c = 0; c < l.parts.length; c++) - l.parts[c](); - delete p[l.id] - } - } - } - } - ; - var x = function() { - var e = []; - return function(t, n) { - return e[t] = n, - e.filter(Boolean).join("\n") - } - }() - } - , function(e, t) { - e.exports = function(e) { - var t = "undefined" != typeof window && window.location; - if (!t) - throw new Error("fixUrls requires window.location"); - if (!e || "string" != typeof e) - return e; - var n = t.protocol + "//" + t.host - , r = n + t.pathname.replace(/\/[^\/]*$/, "/"); - return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(e, t) { - var i, o = t.trim().replace(/^"(.*)"$/, function(e, t) { - return t - }).replace(/^'(.*)'$/, function(e, t) { - return t - }); - return /^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(o) ? e : (i = 0 === o.indexOf("//") ? o : 0 === o.indexOf("/") ? n + o : r + o.replace(/^\.\//, ""), - "url(" + JSON.stringify(i) + ")") - }) - } - } - , function(e, t, n) { - n(12), - e.exports = n(1) - } - ]) -}); diff --git a/themes/hexo-theme-material-x-master/source/less/_archive.less b/themes/hexo-theme-material-x-master/source/less/_archive.less deleted file mode 100644 index f1ddc849cb99ed837a0bdad925fee3ffb756afc1..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_archive.less +++ /dev/null @@ -1,77 +0,0 @@ -#archive-page { - margin-bottom: @gap * 2; - .archive { - position: relative; - .archive-year { - font-size: @fontsize_base; - margin-top: 4em; - margin-bottom: 1em; - &:first-child{ - margin-top: 0em; - padding-top: 0; - } - h2 { - margin-top: 1em; - } - a { - color: @color_text_main; - text-decoration: none; - } - } - .archive-post { - a { - width: 100%; - display: inline-flex; - flex-flow: row nowrap; - justify-content: flex-start; - align-items: flex-start; - text-decoration: none; - &.child{ - padding-left: 2*@gap; - } - } - time { - color: @color_text_main; - flex: none; - font-size: @fontsize_small; - padding: .5em .5em .5em 3em; - @media (max-width: @on_phone) { - padding: .5em .5em .5em 0; - } - } - .title { - flex: auto; - padding: .5em; - font-size: @fontsize_small; - color: @color_text_main; - i{ - color: @theme_main; - &.music { - color: @color_text_highlight; - } - &.red { - color: @color_mac_close; - } - &.green { - color: @color_mac_maximize; - } - &.yellow { - color: @color_mac_minimize; - } - &.blue { - color: @color_mac_finder; - } - &.theme { - color: @theme_main; - } - &.accent { - color: @color_text_highlight; - } - &.orange { - color: @color_md_deep_orange; - } - } - } - } - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_article.less b/themes/hexo-theme-material-x-master/source/less/_article.less deleted file mode 100644 index 77d2c3de42f2b757a62b66fac25778f5df2101a6..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_article.less +++ /dev/null @@ -1,666 +0,0 @@ -.article { - color: @color_text_main; - font-size: @fontsize_base; - line-height: @lineheight_base; - word-break: break-all; - word-wrap: break-word; - img { - position: relative; - margin: 0 auto; - background: white; - .enable-trans(); - @media (max-width: @on_phone) { - box-shadow: none; - } - } - span{ - img { - display: inline; - margin: auto; - } - } - .aplayer{ - margin: 0; - display: inline-block; - width: 400px; - max-width: 100%; - border-radius: 4px; - color: #666; - font-family: @fontfamily_base; - } - p.small-img, - div.small-img { - img { - width: auto; - max-width: 100%; - margin: 0; - box-shadow: none; - } - } - p { - // margin: 20px 0px; - margin-top: .5em; - margin-bottom: 1em; - // text-align: justify; - strong{ - color: @color_text_main; - padding-left: 2px; - padding-right: 2px; - } - max-width: 100%; - overflow: auto; - .mjx-math{ - font-family: @fontfamily_code; - background: fade(@theme_background, 50%); - padding: @gap/2; - border-radius: @border_radius_code_block; - } - } - ul, - ol { - font-size: @fontsize_base * .95; - list-style: initial; - padding-left: 10px; - margin-left: 10px; - margin-bottom: 1em; - &.center{ - justify-content: center; - } - &.pure{ - margin: 0; - padding: 0; - display: flex; - flex-wrap: wrap; - align-items: stretch; - br{ - display: none; - } - @media screen and (max-width: 900px){ - justify-content: space-between; - } - li{ - margin: 8px; - display: flex; - width: 75px; - flex-direction: column; - align-items: stretch; - vertical-align: middle; - text-align: center; - font-size: .8em; - line-height: 1.2em; - overflow: hidden; - a{ - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - } - - img{ - margin-bottom: 8px; - } - - } - &.rounded{ - img{ - border-radius: 25%; - } - } - - &.circle{ - img{ - border-radius: 50%; - } - } - &.about{ - @media screen and (max-width: 900px){ - justify-content: center; - } - } - } - } - ul { - & > li{ - list-style: initial; - } - - } - ol { - & > li{ - margin-left: 10px; - list-style: decimal; - } - } - a { - &:before{ - display: none; - } - color: @color_text_link; - .enable-trans(); - &:hover { - color: @color_text_highlight; - text-decoration: underline; - } - &:active { - color: darken(@color_text_highlight, 25%); - } - } - h1, - h2, - h3, - h4, - h5, - h6 { - position: relative; - font-family: @fontfamily_base; - font-weight: normal; - margin-top: 1.5em; - margin-bottom: 1em; - &.title { - left: 0; - &:before { - content: none; - } - } - } - h1, h2 { - color: @color_text_header; - margin-top: 3em; - border-bottom: 1px solid fade(@color_text_main, 10%); - padding-bottom: .2em; - } - h3, h4, h5, h6 { - &:first-child{ - margin-top: 0; - padding-top: 0; - } - } - h1 { - font-size: @fontsize_h1; - } - h2 { - font-size: @fontsize_h2; - text-align: @text_align_h2; - } - h3 { - font-size: @fontsize_h3; - color: @color_text_h3; - text-align: @text_align_h3; - } - h4 { - font-weight: bold; - font-size: @fontsize_h4; - } - h5 { - font-weight: bold; - color: @color_text_main; - font-size: @fontsize_h5; - } - h6 { - color: fade(@color_text_main, 75%); - font-size: @fontsize_h6; - } - .subtitle{ - h6 { - color: fade(@color_text_main, 90%); - } - } - figure { - figcaption { - span { - display: inline-block; - margin-right: 5px; - } - } - } - blockquote { - p{ - text-align: left; - word-wrap: normal; - margin: 0; - font-size: @fontsize_small; - line-height: @fontsize_small * 1.5; - } - position: relative; - width: 100%; - font-size: @fontsize_small; - background: fade(@color_bg_quote, 10%); - margin: 1em 0; - padding: @gap; - border-left: @border_radius_code_block solid @color_bg_quote; - border-radius: @border_radius_code_block; - .enable-trans(); - footer { - strong { - margin-right: 7px; - } - } - &.pullquote{ - &.right{ - border-left: none; - border-right: @border_radius_code_block solid @color_bg_quote; - p{ - text-align: right; - } - } - } - } - - pre { - display: block; - -moz-box-sizing: border-box; - box-sizing: border-box; - font-family: @fontfamily_code; - color: @color_text_main; - } - code { - font-family: @fontfamily_code; - padding: 3px 3px 0px 3px; - margin: 0px 2px; - vertical-align: center; - border-radius: 2px; - border: 1px solid fade(@color_bg_code, 50%); - font-size: @fontsize_base * .8; - background: @color_bg_code; - @media(max-width: @on_phone){ - font-size: @fontsize_base * .8 * .95; - } - } - .readmore { - // display: none; // howtodesign? - font-family: @fontfamily_base; - font-size: .8em; - letter-spacing: .1em; - margin-top: @gap; - a { - text-decoration: none; - display: inline-block; - vertical-align: middle; - line-height: 2rem; - font-weight: bold; - background-color: @theme_main; - padding: .2em 2.4em; - color: @color_text_in_header; - border-radius: @border_radius/2; - .enable-trans(); - &:hover { - background: darken(@theme_main, 10%); - } - &:active { - // background: darken(@theme_main, 20%); - } - } - - } - .tags { - position: relative; - padding-top: @gap/2; - padding-bottom: @gap/2; - font-size: @fontsize_small; - line-height: @lineheight_base; - margin-top: @gap; - background: darken(fade(@theme_background, 50%), 5%); - &.article-tags { - // padding-top: 2*@gap; - // background: transparent; - } - word-spacing: @gap/2; - a { - color: @color_text_main; - position: relative; - display: inline-block; - word-spacing: 0; - // letter-spacing: .1em; - // &+a{ - // margin-left: @gap/2; - // } - .enable-trans(); - &:hover { - color: @color_text_highlight; - background: transparent; - text-decoration: none; - } - &::before { - // content: "#"; - } - } - } - - table:not('.highlight table') { - width: 100%; - - td, - th { - padding: 12px 24px; - } - tr { - // border-bottom: 1px solid #ddd; - } - &>thead>th { - // border-bottom-width: 2px; - } - } - @media (max-width: @on_phone) { - ul, - ol { - font-size: @fontsize_base * .95; - } - figure { - font-size: 13px; - line-height: 1.6em; - } - } - .prev-next{ - width: 100%; - display: flex; - justify-content: space-between; - align-content: flex-start; - section{ - width: 100%; - padding: @gap/2; - color: fade(@color_text_main, 70%); - background-color: fade(@theme_background, 50%); - border-radius: @border_radius; - p{ - font-size: @fontsize_base; - line-height: @lineheight_base; - margin: 0; - } - h4{ - margin-top: @gap/2; - margin-bottom: @gap/2; - position: relative; - font-family: @fontfamily_base; - font-weight: bold; - font-size: @fontsize_h5; - @media(max-width:@on_phone) { - letter-spacing: -1px; - } - - } - h6{ - margin: 0; - word-spacing: normal; - } - .enable-trans(); - // border: 1px solid transparent; - // &:hover{ - // border: 1px solid fade(@theme_main, 30%); - // } - .tags{ - background: transparent; - padding: 0; - margin-top: @gap/2; - margin-bottom: 0; - font-size: @fontsize_small * 0.9; - word-spacing: 4px; - } - &:first-child{ - margin-left: 0; - margin-right: 0; - } - } - .prev{ - text-align: left; - margin-left: 0; - margin-right: @gap/2; - border-top-right-radius: @border_radius; - border-bottom-right-radius: @border_radius; - } - .next{ - text-align: right; - margin-left: @gap/2; - margin-right: 0; - border-top-left-radius: @border_radius; - border-bottom-left-radius: @border_radius; - } - - } -} - - -.highlight { - position: relative; - width: 100%; - margin-top: 1em; - margin-bottom: 1.2em; - overflow: auto; - display: block; - background: @color_bg_code_block; - font-size: @fontsize_small * .95; - font-family:@fontfamily_code; - line-height: @lineheight_base; - border-radius: @border_radius_code_block; - .enable-trans(); - figcaption{ - padding: @gap/4 @gap/2; - background-color: darken(@color_bg_code_block, 3%); - } - table{ - td,th{ - padding: 0; - } - } - .gutter{ - width: 24px; - padding: 0 12px; - text-align: right; - border-width: 0; - margin-left: 0; - background-color: darken(@color_bg_code_block, 3%); - pre{ - color: fade(@color_text_main, 80%); - } - &:hover{ - - } - } - .code{ - padding: @gap; - vertical-align: top; - border: 0px solid darken(@theme_background, 2%); - &:before{ - content: ""; - position: absolute; - top: 0; - right: 0; - color: fade(@color_text_main, 80%); - font-size: @fontsize_footnote; - padding: 4px 8px 0; - line-height: @lineheight_base; - } - } - - &.html .code:before{ - content: "HTML"; - } - &.js .code:before{ - content: "JS"; - } - &.bash .code:before{ - content: "BASH"; - } - &.shell .code:before{ - content: "SHELL"; - } - &.css .code:before{ - content: "CSS"; - } - &.less .code:before{ - content: "LESS"; - } - &.swift .code:before{ - content: "SWIFT"; - } - &.objc .code:before{ - content: "OBJECTIVE-C"; - } - &.c .code:before{ - content: "C"; - } - &.java .code:before{ - content: "JAVA"; - } - &.python .code:before{ - content: "PYTHON"; - } - &.plain .code:before{ - content: ""; - } - - &::-webkit-scrollbar { - height: @border_radius_line; - width: @border_radius_line; - } - // /* Track */ - - &::-webkit-scrollbar-track-piece { - background: transparent; - } - - -/* Handle */ - - &::-webkit-scrollbar-thumb { - background: darken(@color_bg_code_block, 5%); - cursor: pointer; - border-radius: @border_radius_code_block; - .enable-trans(); - &:hover { - background: darken(@color_bg_code_block, 12%); - } - } - -} - -.article { - @media (max-width: @on_phone) { - .highlight { - font-size: @fontsize_small * .95 * .95; - } - } -} - -.art-item-footer{ - height: 40px; - line-height: @lineheight_base; - font-size: @fontsize_small; - .art-item-left,.art-item-right{ - width:50%; - height: 40px; - line-height: 40px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - } - .art-item-left{ - float: left; - text-align: left; - } - .art-item-right{ - float: right; - text-align: right; - } - @media (max-width: @on_phone) { - font-size: @fontsize_small * .95 * .95; - } -} - -@hl_keyword: #9c27b0; -@hl_blue: #1E80F0; -@hl_cyan: #17AFCA; -@hl_green: #3FA33F; -@hl_light_blue: #6ECDF9; -@hl_red: #EE2B29; -@hl_orange: #FB3F1B; -@hl_amber: #FD8607; - -pre{ - // 行 - .line{ - color: fade(@color_text_main, 90%); - } - .marked{ - background-color: fade(@color_mac_minimize, 20%); - border-radius: 2px; - border: 1px solid fade(@color_mac_minimize, 40%); - } - .title{ - color: @color_md_indigo; - } - // 注释 - .comment { - color: fade(darken(@color_md_green, 10%), 70%); - } - .keyword, .javascript .function, .attr { - color: @hl_keyword; - } - .type, .built_in, .tag .name{ - color: @color_md_light_blue; - } - .variable, .attribute, .regexp, .ruby .constant, .xml .tag .title, .xml .pi, .xml .doctype, .html .doctype, .css .id, .css .class, .css .pseudo { - color: @hl_amber; - } - .number, .preprocessor, .literal, .params, .constant { - color: @hl_amber; - } - .class, .ruby .class .title, .css .rules .attribute { - color: @color_md_orange; - } - .string { - color: darken(@color_md_green, 10%); - } - .value, .inheritance, .header, .ruby .symbol, .xml .cdata { - color: @color_md_green; - } - .css .hexcolor { - color: #66cccc; - } - .function, .python .decorator, .python .title, .ruby .function .title, .ruby .title .keyword, .perl .sub, .javascript .title, .coffeescript .title { - color: #6699cc; - } - -} -.html{ - .tag .name{ - color: @hl_red; - } -} - -//代码块复制按钮 -.highlight{ - //方便copy代码按钮(btn-copy)的定位 - position: relative; -} -.btn-copy { - display: inline-block; - cursor: pointer; - background-color: #FCFCFC; - background-image: linear-gradient(#fcfcfc,#eee); - border: 1px solid #d5d5d5; - border-radius: 2px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-appearance: none; - font-size: 13px; - font-weight: 700; - line-height: 20px; - color: #666; - padding: 2px 6px; - position: absolute; - right: 5px; - top: 5px; - opacity: 0; - .enable-trans(); - &:hover{ - color: #444; - } -} -.btn-copy span { - margin-left: 5px; -} -.highlight:hover .btn-copy{ - opacity: 1; -} diff --git a/themes/hexo-theme-material-x-master/source/less/_base.less b/themes/hexo-theme-material-x-master/source/less/_base.less deleted file mode 100644 index c90bfc030d594d47c0b454ea73931e1004b90067..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_base.less +++ /dev/null @@ -1,546 +0,0 @@ -/* Basic Settings */ - -* { - box-sizing: border-box; - outline: none; - margin: 0; - padding: 0; -} - - -/* My Base */ - -html { - color: @color_text_main; - width: 100%; - height: 100%; - font-family: @fontfamily_base; - font-size: @fontsize_base; - line-height: 1.5rem; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - text-rendering: optimizelegibility; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -body { - background-color: @theme_background; - &.modal-active { - overflow: hidden; - @media (max-width: @on_modal_threshold) { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - } - } - &.z_menu-open { - .menu-phone { - transform: translate3d(-@gap, 0, 0); - } - } -} - -fancybox{ - display: flex; - justify-content: center; -} -.backstretch { - // opacity: .75; -} -.cover-wrapper{ - padding-bottom: 2px; - .cover{ - top: 0; - left: 0; - max-width: 100%; - height: ~"calc(100vh)"; - display: flex; - flex-wrap: nowrap; - flex-direction: column; - align-items: center; - align-self: center; - align-content: center; - // padding: @gap; - .title, .logo{ - font-size: @fontsize_h1*2; - margin-top: ~"calc(28vh - 2*@{gap})"; - text-align: center; - font-weight: bold; - } - .title{ - line-height: ~"calc(@{fontsize_h1}*2 + 2*@{gap})"; - } - .logo{ - max-height: 100px; - max-width: ~"calc(100% - 4*@{gap})"; - } - @media(max-width: @on_phone){ - .title, .logo { - font-size: @fontsize_h1*2; - line-height: @fontsize_h1*2.2; - } - } - .m_search{ - @iconW: 32px; - @iconMargin: 4px; - margin-top: ~"calc(2vh + 2*@{gap})"; - position: relative; - max-width: ~"calc(100% - 1*@{gap})"; - width: 340px; - // @media(max-width: @on_laptop){ - // width: 1.4*@width_sidebar_m; - // } - line-height: @height_navbar - @gap; - vertical-align: middle; - .form { - position: relative; - display: block; - width: 100%; - } - .icon,.input{ - .enable-trans(.3s); - } - .icon { - position: absolute; - display:block; - line-height: @searchbar_height_cover; - height: @searchbar_height_cover; - width: @iconW; - top: 0; - left: @iconMargin+1px; - font-size: @fontsize_base; - color: fade(@color_text_main, 60%); - } - .input { - display: block; - font-size: @fontsize_base; - line-height: @fontsize_base; - height: @searchbar_height_cover; - width: 100%; - color: @color_text_main; - box-shadow: none; - box-sizing: border-box; - -webkit-appearance: none; - padding-left: @iconW + @iconMargin; - @media(max-width: @on_phone){ - padding-left: @iconW + @iconMargin; - } - border-radius: @height_navbar; - background: lighten(@theme_cardbg, 10%); - border: 1px dashed transparent; - .set-placeholder({ - padding-top: 2px; - color: fade(@color_text_main, 60%); - }); - &:hover{ - ~.icon{ - color: @theme_main; - } - } - &:focus { - ~.icon{ - color: @theme_main; - } - border: 1px solid @theme_main; - } - } - - } - &.half{ - height: ~"calc(60vh - @{gap} - @{height_navbar})"; - .title, .logo{ - margin-top: ~"calc(22vh - 4*@{gap})"; - } - @media(max-width: @on_phone){ - height: ~"calc(45vh - @{gap} - @{height_navbar})"; - .title, .logo{ - margin-top: ~"calc(24vh - 6*@{gap})"; - } - } - .m_search{ - margin-top: @gap; - } - } - &, a{ - color: @theme_main; - } - .menu{ - margin-top: @gap; - ul { - display: flex; - flex-wrap: wrap; - align-items: baseline; - justify-content: center; - li { - display: flex; - flex-wrap: wrap; - align-items: center; - padding: 0; - height: auto; - } - } - ul > li > a{ - font-size: @fontsize_small; - padding: 2px; - margin: 0 4px; - .enable-trans(); - color: fade(@color_text_main, 85%); - border-bottom: 1px solid transparent; - &:hover, &.active{ - color: @theme_main; - border-bottom: 1px solid @theme_main; - } - } - } - .switcher{ - & > li{ - a{ - &:hover { - background: fade(@theme_main, 15%); - } - } - } - } - - } -} - - - -.z-depth-nav { - box-shadow: 0 1px 2px 0px rgba(0, 0, 0, 0.24), 0 3px 6px 0px rgba(0, 0, 0, 0.1); -} -.z-depth-nav-raised { - box-shadow: @boxshadow_card_raised; -} - -.z-depth-main { - box-shadow: @boxshadow_card_normal; -} - -.z-depth-main-raised { - box-shadow: @boxshadow_card_raised; -} - -.z-depth-0 { - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.07); -} - -.z-depth-1 { - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08), 0 2px 4px 0 rgba(0, 0, 0, 0.1); -} - -.z-depth-1-half { - box-shadow: 0 2px 3px 0px rgba(0, 0, 0, 0.4), 0 0px 8px 0px rgba(0, 0, 0, 0.2); -} - -.z-depth-2 { - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 3px 10px 0 rgba(0, 0, 0, 0.1); -} - -.z-depth-3 { - box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.12), 0 8px 25px 0 rgba(0, 0, 0, 0.1); -} - -.z-depth-4 { - box-shadow: 0 8px 14px 0 rgba(0, 0, 0, 0.11), 0 12px 22px 0 rgba(0, 0, 0, 0.11); -} - -.z-depth-5 { - box-shadow: 0 12px 12px 0 rgba(0, 0, 0, 0.1), 0 20px 33px 0 rgba(0, 0, 0, 0.11); -} -.z-depth-0 { - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.08), 0 2px 4px 0 rgba(0, 0, 0, 0.08); -} - -.hoverable { - .enable-trans(); - box-shadow: 0; -} - -.hoverable:hover { - .enable-trans(); - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -::-moz-selection { - background: @color_bg_selection; -} - -::selection { - background: @color_bg_selection; -} -// transition -.enable-trans(@time: 0.25s){ - transition: all @time ease; - -moz-transition: all @time ease; - -webkit-transition: all @time ease; - -o-transition: all @time ease; -} - -.set-placeholder(@rules){ - &::-webkit-input-placeholder {@rules();} - &:-moz-placeholder {@rules();} - &::-moz-placeholder {@rules();} - &:-ms-input-placeholder {@rules();} -} - - -h1, -h2, -h3, -h4, -h5, -h6 { - -webkit-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; - -moz-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; - -o-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; - text-rendering: geometricPrecision; - margin: 0 0 0.4em 0; -} - -h1 { - font-size: @fontsize_h1; -} - -h2 { - font-size: @fontsize_h2; -} - -h3 { - font-size: @fontsize_h3; -} - -h4 { - font-size: @fontsize_h4; -} - -h5 { - font-size: @fontsize_h5; -} - -h6 { - font-size: @fontsize_h6; -} - -a { - color: @black; - cursor: pointer; - text-decoration: none; - .enable-trans(); - &:hover { - text-decoration: none; - } -} - -pre { - tab-size: 4; - -moz-tab-size: 4; - -o-tab-size: 4; - -webkit-tab-size: 4; -} - -img { - max-width: 100%; -} - - -/** -* Util -*/ - -.clearfix { - zoom: 1; - &:before, - &:after { - content: " "; // 1 - display: table; // 2 - } - &:after { - clear: both; - } -} - - -.hidden { - text-indent: -9999px; - visibility: hidden; - display: none; -} - -.inner { - position: relative; - width: 80%; - max-width: 710px; - margin: 0 auto; -} - -.vertical { - display: table-cell; - vertical-align: middle; -} - -.right { - float: right; -} - -.left { - float: left; -} - -.disable-trans { - -moz-transition: none !important; - -webkit-transition: none !important; - transition: none !important; -} - -.txt-ellipsis { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -ul, -ol { - padding-left: 0; -} - -li { - list-style: none; -} - -.mark { - position: relative; - a { - color: @black; - background: transparent; - display: inline-block; - padding: 0 8px; - border-left: @border_radius_line solid transparent; - background: transparent; - border-radius: @border_radius_code_block; - .enable-trans(); - &:hover { - background: fade(@theme_main, 10%); - border-left: @border_radius_line solid @theme_main; - padding: 8px; - } - &:active { - border-left: 2*@border_radius_line solid @theme_main; - } - - } -} - -ul.h-list { - display: flex; - align-items: center; - height: 100%; - &>li { - // flex: none; - height: 100%; - justify-content: center; - } -} - - -/** - * Loading bar - */ - -#loading-bar-wrapper { - position: fixed; - top: @height_navbar - @loading_height; - // top: 0; - left: 0; - width: 100%; - // overflow: scroll; - z-index: 99999; -} - -#loading-bar { - position: fixed; - width: 0; - height: @loading_height; - // height: @height_navbar; - .enable-trans(); - background-color: fade(white, 50%); - &.pure{ - background-color: fade(@theme_main, 50%); - } -} - -.body-wrapper { - position: relative; - display: flex; - width: 100%; - max-width: @width_container; - margin: 0 auto; - flex-wrap: wrap; - justify-content: space-between; - align-items: stretch; -} - -.container--flex { - display: flex; - flex-wrap: nowrap; - justify-content: space-between; - align-items: center; -} - -.l_body { - position: relative; - margin: @gap; - margin-top: @gap; - &.nocover{ - margin-top: @gap + @height_navbar; - } - @media(max-width: @on_phone) { - margin: @height_navbar + @gap 0 @gap; - border-radius: 0; - } - // padding-top: -@gap/2; - .s-top{ - .enable-trans(0.6s); - z-index: 9; - position: fixed; - width: 48px; - height: 48px; - line-height: 48px; - border-radius: 100%; - bottom: @gap*2; - right: @gap*2; - transform: translateY(100px) scale(0); - transform-origin: bottom; - color: @color_text_main; - @media(max-width: @on_pad) { - right: @gap; - } - &.show{ - transform: translateY(0) scale(1); - &.hl{ - background: @theme_main; - color: white; - box-shadow: @boxshadow_card_normal; - } - } - @media(min-width: @on_pad) { - &:hover{ - transform: scale(1.2); - border-radius: 25%; - background: @theme_main; - color: white; - box-shadow: @boxshadow_card_raised; - &.hl{ - box-shadow: @boxshadow_card_raised; - } - } - } - } -} - -.reveal { - // visibility: hidden; -} diff --git a/themes/hexo-theme-material-x-master/source/less/_color.less b/themes/hexo-theme-material-x-master/source/less/_color.less deleted file mode 100644 index 888c07d73955120eaf1a37495c5339afed2d9073..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_color.less +++ /dev/null @@ -1,41 +0,0 @@ -// 如果你只想简单地换个风格,可以只改这里的几项: -// 网页背景颜色 -@theme_background: #F4F4F4; -// @theme_background: #454545; // 暗色主题 -// 主题色 -@theme_main: #1BC3FB; -// 卡片背景颜色 -@theme_cardbg: white; -// @theme_cardbg: #555; // 暗色主题 - - - - -// 如果你想更自由地定制颜色,可以修改这里的几项: - -// 背景色 ---------------- -// 导航栏背景,默认和主题色保持一致 -@color_bg_navbar: @theme_main; -// 代码的背景色 -@color_bg_code: fade(@theme_main, 10%); -// 代码块的背景色 -@color_bg_code_block: #F4FAFE; -// 引用的颜色 -@color_bg_quote: @theme_main; -// 选中部分文字的背景颜色 -@color_bg_selection: fade(@color_md_blue, 20%); - -// 文字颜色 ---------------- -// 标题文字颜色(h1/h2) -@color_text_header: darken(@color_text_main, 5%); -// 标题文字颜色(h3) -@color_text_h3: darken(@theme_main, 5%); -// 链接颜色 -@color_text_link: @theme_main; -// 链接高亮颜色 -@color_text_highlight: @color_md_deep_orange; -// 在主题色中显示的文本(一般为白或深灰) -@color_text_in_header: white; -// 正文文字颜色 -@color_text_main: @dark; -// @color_text_main: white; // 暗色主题 diff --git a/themes/hexo-theme-material-x-master/source/less/_defines.less b/themes/hexo-theme-material-x-master/source/less/_defines.less deleted file mode 100644 index 7708b282c59222db5397cc29e54e62398de89f89..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_defines.less +++ /dev/null @@ -1,52 +0,0 @@ -// 颜色 -// Material color scheme -@color_md_red: #f44336; -@color_md_pink: #E91E63; -@color_md_purple: #9c27b0; -@color_md_deep_purple: #673ab7; -@color_md_indigo: #3f51b5; -@color_md_light_blue: #4BA7EE; -@color_md_blue: #2196f3; -@color_md_deep_blue: #3367d6; -@color_md_teal: #009688; -@color_md_green: #4caf50; -@color_md_light_green: #8bc34a; -@color_md_orange: #ff9800; -@color_md_deep_orange: #ff5722; -@color_md_brown: #795548; -@color_md_blue_grey: #607d8b; -@color_md_grey: #9e9e9e; -@color_md_light_grey:#e0e0e0; -@color_md_yellow: #FCEC60; -@color_md_amber: #F6C344; -// 基本不变的黑白灰 -@black: #444444; -@color_grey: #828282; -@white: #ffffff; -@light: #eeeeee; -@dark: #333333; -// 这些颜色取自macOS -@color_mac_maximize: #3DC550; -@color_mac_minimize: #FFBD2B; -@color_mac_close: #FE5F58; -@color_mac_finder: #1BCDFC; -// xx -@color_light_green: #5CC281; -@color_vue: #4fc08d; -@color_yellow: #e96900; -// 这些颜色由xaoxuu调配 -@color_ax_light_red: #FF6868; -@color_ax_red: #F24E32; -@color_ax_blue: #52A1F8; - -// 阴影 -@boxshadow_base_1: 0 1px 2px 0px rgba(0, 0, 0, 0.1); -@boxshadow_base_2: 0 2px 4px 0px rgba(0, 0, 0, 0.1); -@boxshadow_base_4: 0 4px 8px 0px rgba(0, 0, 0, 0.1); -@boxshadow_base_8: 0 8px 16px 0px rgba(0, 0, 0, 0.1); -@boxshadow_base_16: 0 16px 32px 0px rgba(0, 0, 0, 0.1); - -// 卡片正常状态的阴影 -@boxshadow_card_normal: @boxshadow_base_1, @boxshadow_base_2; -// 卡片漂浮起来时的阴影 -@boxshadow_card_raised: @boxshadow_base_2, @boxshadow_base_4, @boxshadow_base_8, @boxshadow_base_16; diff --git a/themes/hexo-theme-material-x-master/source/less/_fonts.less b/themes/hexo-theme-material-x-master/source/less/_fonts.less deleted file mode 100644 index 013e942ef5745e06e06571c0ebe4caec42090f0b..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_fonts.less +++ /dev/null @@ -1,39 +0,0 @@ -@font-face{ - font-family: 'Varela Round'; - src: url(https://cdn.jsdelivr.net/gh/xaoxuu/cdn-fonts@19.1.7/VarelaRound/VarelaRound-Regular.ttf); - font-weight: normal; - font-style: normal; -} -@font-face{ - font-family: 'Source Sans Pro'; - src: url(https://cdn.jsdelivr.net/gh/xaoxuu/cdn-fonts@master/SourceSansPro/SourceSansPro-Regular.ttf); - font-weight: normal; - font-style: normal; -} - -// 大部分文字字体 -@fontfamily_base: 'Varela Round', "Microsoft YaHei", "Source Sans Pro", "Helvetica Neue", Menlo, Monaco, monospace, "Lucida Console", sans-serif, Helvetica, "Hiragino Sans GB", "Hiragino Sans GB W3", Source Han Sans CN Regular, WenQuanYi Micro Hei, Arial, sans-serif; -// 代码字体 -@fontfamily_code: Menlo, Monaco, courier, monospace, "Lucida Console", 'Source Code Pro', "Microsoft YaHei", Helvetica, Arial, sans-serif, 'Ubuntu'; -// LOGO字体 -@fontfamily_logo: @fontfamily_base; - - -// 字号 -// base -@fontsize_base: 16px; -@fontsize_small: @fontsize_base * 0.875; -@fontsize_footnote: @fontsize_base * 0.7; -@lineheight_base: 1.7; -// title -@fontsize_h1: @fontsize_base * 1.5; -@fontsize_h2: @fontsize_base * 1.5; -@fontsize_h3: @fontsize_base * 1.3; -@fontsize_h4: @fontsize_base * 1.15; -@fontsize_h5: @fontsize_base * 1; -@fontsize_h6: @fontsize_small; -// 文章列表中的标题 -@fontsize_list_title: @fontsize_base * 1.5; -// 文章页的标题 -@fontsize_article_title: @fontsize_h2 * 1.2; -@fontsize_article_title_phone: @fontsize_h2; diff --git a/themes/hexo-theme-material-x-master/source/less/_footer.less b/themes/hexo-theme-material-x-master/source/less/_footer.less deleted file mode 100644 index e558cffad72663c9328f37b8963d1c1a5a1b68d5..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_footer.less +++ /dev/null @@ -1,52 +0,0 @@ -#footer { - position: relative; - padding: 40px 10px 120px 10px; - width: 100%; - color: fade(@color_text_main, 50%); - margin: 0px auto; - font-size: @fontsize_small; - overflow: hidden; - text-align: center; - font-family: @fontfamily_base; - .licenses { - color: fade(@color_text_main, 50%); - text-decoration: underline; - } - .codename { - // color: @color_vue; - text-decoration: underline; - } - .social-wrapper { - display: flex; - justify-content: center; - flex-wrap: wrap; - margin: 4px @gap/2; - } - a { - color: fade(@color_text_main, 70%); - padding: 0; - .enable-trans(); - &:hover { - color: @color_text_highlight; - } - &.social { - position: relative; - display: inline-block; - text-align: center; - display: flex; - justify-content: center; - align-items: center; - width: 32px; - height: 32px; - margin: 4px; - border-radius: 100px; - &:hover { - background: fade(@theme_main, 10%); - color: @theme_main; - } - } - } - @media(max-width: @on_pad){ - justify-content: center; - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_header.less b/themes/hexo-theme-material-x-master/source/less/_header.less deleted file mode 100644 index 7a65698a70fa83809451b4123bb6384fc560789e..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_header.less +++ /dev/null @@ -1,375 +0,0 @@ -.l_header { - @iconW: 32px; - @iconMargin: 4px; - position: fixed; - z-index: 9999; - top: 0; - overflow: hidden; - width: 100%; - font-size: @fontsize_base; - line-height: @height_navbar; - height: @height_navbar; - overflow: hidden; - font-family: @fontfamily_base; - padding: 0 @gap; - margin-bottom: @gap; - .wrapper{ - padding: auto @gap; - max-width: @width_container; - margin: auto; - .enable-trans(); - a.logo { - color: @color_text_header; - } - } - &.no_sidebar{ - .wrapper{ - max-width: @on_pad; - margin: auto; - } - } - .wrapper.sub{ - .enable-trans(); - transform: translateY(-@height_navbar); - .logo{ - // padding-left: 0; - @media(max-width: @on_phone){ - .enable-trans(); - padding-left: @gap; - padding-right: 0; - font-size: @fontsize_base; - } - } - } - .nav--main,.nav-sub{ - height: @height_navbar; - } - background: @color_bg_navbar; - &.hide{ - transform: translateY(100px) scale(0); - } - &.show{ - transform: translateY(0) scale(1); - } - &, a{ - .txt-ellipsis; - height: @height_navbar; - line-height: @height_navbar; - color: @color_text_in_header; - } - &:extend(.z-depth-nav); // 适合深色导航栏背景 - - .enable-trans(); - &:hover { - // &:extend(.z-depth-nav-raised); - } - &:active { - - } - .logo { - padding: 0 @gap*1.5; - font-size: @fontsize_logo; - font-family: @fontfamily_logo; - @media(max-width: @on_phone){ - padding: 0 @gap; - } - &.img{ - padding: 0 @gap 0 0; - } - img{ - height: 100%; - } - letter-spacing: 0; - } - img.logo { - padding: 4px 0; - } - - .nav-sub{ - .logo { - padding: 0 @gap*1.5; - font-size: @fontsize_base; - font-family: @fontfamily_base; - @media(max-width: @on_phone){ - letter-spacing: -0.5px; - padding-top: 1px; - } - - } - } - .menu{ - position:relative; - flex: 1 0 auto; - height: @height_navbar; - .enable-trans(); - margin: 0 @gap 0 0; - ul > li > a{ - .enable-trans(); - display: block; - font-size: @fontsize_base; - color: fade(@color_text_in_header, 70%); - padding: 0 8px; - &:hover{ - color: @color_text_in_header; - border-bottom: @loading_height solid @theme_cardbg; - background: fade(@theme_cardbg, 10%); - } - &:active,&.active{ - color: @color_text_in_header; - border-bottom: @loading_height solid @theme_cardbg; - } - } - @media(max-width: @on_phone){ - display:none; - } - } - .switcher{ - display: none; - font-size: @fontsize_base; - line-height: @height_navbar; - .s-toc { - display: none; - } - @media(max-width: @on_pad){ - .s-toc { - display: block; - } - } - & > li{ - height: @height_navbar - @gap; - .enable-trans(); - margin: 2px; - @height: @height_navbar - @gap; - @media(max-width: @on_phone){ - margin: 0; - height: @height; - } - a{ - display: flex; - justify-content: center; - align-items: center; - width: @height; - height: @height; - border-radius: 100px; - .enable-trans(); - &:hover { - background: fade(@theme_cardbg, 30%); - } - @media(max-width: @on_phone){ - width: @iconW; - height: @height; - } - } - } - @media(max-width: @on_phone){ - display: flex; - padding-left: @gap/2; - padding-right: @gap - 6px; - } - } - .nav-sub .switcher{ - display: flex; - } - .m_search { - position: relative; - display: flex; - width: @width_sidebar; - height: @height_navbar; - @media(max-width: @on_desktop){ - width: @width_sidebar_m; - } - .form { - position: relative; - display: block; - width: 100%; - margin: auto; - } - .icon,.input{ - .enable-trans(.3s); - } - .icon { - position: absolute; - display: block; - line-height: @height_searchbar; - height: @height_searchbar; - width: @iconW; - top: 0; - left: @iconMargin+1px; - font-size: @fontsize_base; - color: fade(@color_text_in_header, 60%); - } - .input { - display: block; - font-size: @fontsize_base; - line-height: @fontsize_base; - height: @height_searchbar; - width: 100%; - color: fade(@color_text_in_header, 60%); - box-shadow: none; - box-sizing: border-box; - -webkit-appearance: none; - padding-left: @iconW + @iconMargin; - @media(max-width: @on_phone){ - padding-left: @iconW + @iconMargin; - } - border-radius: @border_radius_searchbar; - background: fade(@theme_cardbg, 15%); - border: 1px dashed transparent; - .set-placeholder({ - padding-top: 2px; - color: fade(@color_text_in_header, 60%); - }); - &:hover{ - color: @color_text_in_header; - border: 1px solid fade(@color_text_in_header, 60%); - } - &:focus { - ~.icon{ - color: @color_text_in_header; - } - color: @color_text_in_header; - border: 1px solid @color_text_in_header; - } - } - } - &.pure{ - background: @theme_cardbg; - &, a{ - color: @theme_main; - } - box-shadow: @boxshadow_card_normal; // 适合白色导航栏背景 - // box-shadow: none; - // background: transparent; - // .wrapper{ - // background: @theme_cardbg; - // box-shadow: @boxshadow_card_normal; // 适合白色导航栏背景 - // } - .menu{ - ul > li > a{ - .enable-trans(); - color: fade(@color_text_main, 85%); - &.current{ - border-bottom: @loading_height solid fade(@theme_main, 80%); - } - &:hover{ - color: @theme_main; - border-bottom: @loading_height solid @theme_main; - background: fade(@theme_main, 10%); - } - &:active,&.active{ - color: @theme_main; - border-bottom: @loading_height solid @theme_main; - } - } - } - .switcher{ - & > li{ - a{ - &:hover { - background: fade(@theme_main, 15%); - } - } - } - } - .m_search { - .icon{ - color: fade(@color_text_main, 60%); - } - .input { - color: @color_text_main; - background: @theme_background; - .set-placeholder({ - color: fade(@color_text_main, 60%); - }); - &:hover{ - ~.icon{ - color: fade(@theme_main, 80%); - } - border: 1px solid fade(@theme_main, 60%); - } - &:focus { - ~.icon{ - color: @theme_main; - } - color: @color_text_main; - background: fade(@theme_main, 15%); - border: 1px solid @theme_main; - } - } - } - } - @media (max-width: @on_phone) { - padding: 0; - .m_search{ - width:0; - overflow: hidden; - position: absolute; - .enable-trans(); - margin: 0 @gap/2; - } - &.z_search-open{ - .logo{ - opacity:0; - } - .m_search{ - width: ~"calc(100vw - 2*@{gap} - 2*@{iconW})"; - } - } - } -} - -.menu-phone{ - .header{ - border-top-left-radius: @border_radius; - border-top-right-radius: @border_radius; - background-color: fade(@color_bg_navbar,90%); - color: @color_text_in_header; - font-size: @fontsize_base; - line-height: 1.8em; - padding: 8px @gap+6px; - } - position: fixed; - top: @height_navbar + @gap; - right: 0; - z-index:9999 + 1; - line-height: 2 * @gap; - background: white; - border-right: 0; - box-shadow: @boxshadow_card_raised; - border-radius: @border_radius; - transform: translate3d(-40px, -40px, 0) scale(0,0); - transform-origin: right top; - .enable-trans(); - &:hover { - box-shadow: @boxshadow_card_raised; - } - &:active { - box-shadow: @boxshadow_card_normal; - } - nav { - padding: @gap/2 0px; - .nav { - height: @height_cell; - line-height: @height_cell; - position: relative; - display: block; - color: @black; - padding: 2px 20px; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - &:hover,&.active{ - border-left: 4px solid @theme_main; - background: fade(@theme_main, 10%); - } - } - } -} -.cover-wrapper{ - .l_header{ - .enable-trans(0.5s); - transform: translateY(-1.5*@height_navbar); - &.show{ - transform: translateY(0); - } - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_layout.less b/themes/hexo-theme-material-x-master/source/less/_layout.less deleted file mode 100644 index d5e42ee1452933ba1b08fcaa7e2c83d600f2d1f8..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_layout.less +++ /dev/null @@ -1,52 +0,0 @@ -// start: 间距 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -@gap: 16px; -// end: 间距 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - - -// start: 布局尺寸 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -@on_phone: 580px; -@on_pad: 768px; -@on_laptop: 1024px; // 1024 + 285 -@on_desktop: 1350px; -// container -@width_container: 1080px; -@on_modal_threshold: 680px; -// 侧边栏宽度 -@width_sidebar: 285px; -@width_sidebar_m: 240px; -// 搜索框的宽度,建议和侧边栏宽度保持一致 -@width_searchbar: @width_sidebar; -@width_searchbar_m: @width_sidebar_m; -// 搜索框的高度,建议不要超出导航栏的高度 -@height_searchbar: 40px; -@searchbar_height_cover: 44px; -// 一个cell的高度 -@height_cell: 36px; -// end: 布局尺寸 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - - -// start: 导航栏 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -// 导航栏高度 -@height_navbar: 64px; -@fontsize_logo: @fontsize_base * 1.2; -@fontsize_header_switcher: 1.3em; -@fontsize_header: 1em; -// 定位条和页面加载的进度条的高度 -@loading_height: 2px; -// end: 导航栏 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - - -// start: 圆角 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -@border_radius: 12px; // 圆角半径,可以根据心情随时调整风格 -@border_radius_line: 4px; // 线的宽度和滚动条的宽度 -@border_radius_code_block: 4px; // 引用、代码块的圆角 - -@border_radius_searchbar: 8px; // 搜索框的圆角半径,可以根据心情随时调整风格 -// end: 圆角 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - - -// start: 文字对齐方向 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -@text_align_h1: left; -@text_align_h2: left; -@text_align_h3: left; -// end: 文字对齐方向 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< diff --git a/themes/hexo-theme-material-x-master/source/less/_links.less b/themes/hexo-theme-material-x-master/source/less/_links.less deleted file mode 100644 index 895d29a0beae2e56b8a0b1ede2ba17cef5db395d..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_links.less +++ /dev/null @@ -1,125 +0,0 @@ -.article.typo.l_friends{ - .friends-group{ - h2{ - font-size: @fontsize_h3; - } - .friend-content{ - display: flex; - flex-wrap: wrap; - margin: -@gap/2; - border-radius: @border_radius; - .friend-card{ - display: flex; - border-radius: @border_radius; - box-shadow: @boxshadow_card_normal; - background: #eee; - margin: @gap/2; - color: fade(@color_text_main, 80%); - justify-content: flex-start; - align-content: flex-start; - flex-direction: column; - border: 1px solid transparent; - width:~"calc(100%/3 - @{gap})"; - @media(max-width: @on_laptop){ - width:~"calc(100%/3 - @{gap})"; - } - @media(max-width: @on_pad){ - width:~"calc(100%/2 - @{gap})"; - } - @media(max-width: @on_phone){ - width: 100%; - margin: 0 @gap/4; - border-radius: 0; - flex-direction: row; - &:first-child{ - border-top-left-radius: @border_radius; - border-top-right-radius: @border_radius; - } - &:last-child{ - border-bottom-left-radius: @border_radius; - border-bottom-right-radius: @border_radius; - } - } - &:hover{ - text-decoration: none; - box-shadow: @boxshadow_card_raised, 0 32px 64px 0px rgba(0, 0, 0, 0.1); - transform: scale(1.05); - border-radius: @border_radius; - @media(max-width: @on_phone){ - transform: scale(1.02); - margin: @gap/2 0; - } - .friend-left{ - .avatar{ - transform: scale(1.2) rotate(12deg); - box-shadow: @boxshadow_card_raised; - // border: 2px solid transparent; - } - } - - } - .friend-left{ - display: flex; - align-self: center; - .avatar{ - width: 64px; - height: 64px; - min-width: 64px; - min-height: 64px; - margin: @gap @gap/2 @gap/4 @gap/2; - border-radius: 100%; - border: 0px solid transparent; - // box-shadow: @boxshadow_card_normal; - @media(max-width: @on_phone){ - margin: @gap; - } - } - } - .friend-right{ - margin: @gap/4 @gap/2; - display: flex; - // flex: 1; - flex-direction: column; - text-align: center; - p{ - text-align: center; - } - @media(max-width: @on_phone){ - margin: @gap @gap @gap 0; - text-align: left; - p{ - text-align: left; - } - } - .friend-tags-wrapper{ - .enable-trans(); - margin-left: -2px; - word-break:break-all; - margin-bottom: @gap/2; - @media(max-width: @on_phone){ - margin-bottom: 0; - } - } - p{ - margin: 0; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); - &.friend-name{ - font-family: @fontfamily_logo; - font-size: @fontsize_base; - font-weight: bold; - padding-top: 4px; - } - &.tags{ - font-size: @fontsize_small * 0.85; - display: inline; - background: none; - word-wrap: break-word; - padding-right: 4px; - } - } - } - } - } - - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_main.less b/themes/hexo-theme-material-x-master/source/less/_main.less deleted file mode 100644 index e3bb00a423edfbb31e88409e7cce90935a3f1d0a..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_main.less +++ /dev/null @@ -1,595 +0,0 @@ -.l_main { - width: ~"calc(100% - 1 * @{width_sidebar})"; - @media(max-width: @on_desktop) { - width: ~"calc(100% - 1 * @{width_sidebar_m})"; - } - @media(max-width: @on_pad) { - width: 100%; - } - padding-right: @gap; - &.no_sidebar{ - width: 100%; - padding-right: 0; - max-width: @on_pad; - margin: auto; - ~.l_side{ - display: none; - } - } - float: left; - .post-list { - position: relative; - margin: 0px auto; - // columns: 400px; - column-gap: 0; - @media(max-width: @on_phone) { - margin: 0; - } - } - ul.popular-posts{ - h3{ - padding: 0; - margin: 0; - font-size: @fontsize_base; - } - } - #comments { - position: relative; - // padding-top: 1.5*@gap; - @media(max-width: @on_phone) { - // padding-top: @gap; - } - #valine_container{ - p{ - line-height: @lineheight_base; - } - img { - display: inline; - } - .info{ - // display: none; - } - .vwrap{ - border-radius: @border_radius; - border-style: dashed; - border: 1px dashed fade(@color_text_main, 30%); - .enable-trans(); - &:hover{ - border: 1px dashed fade(@theme_main, 100%); - } - .vheader{ - .vinput{ - border-radius: 0; - border-bottom: 1px dashed fade(@color_text_main, 30%); - &:hover{ - border-bottom: 1px dashed @theme_main; - } - &:focus{ - border-bottom: 1px solid @theme_main; - } - } - } - - .vedit .vctrl span { - color: @theme_main; - padding: 0; - margin: 10px; - } - - } - button{ - border: none; - padding-left: 2.4em; - padding-right: 2.4em; - font-weight: bold; - background-color: @theme_main; - color: @color_text_in_header; - border-radius: @border_radius/2; - .enable-trans(); - &:hover { - background: darken(@theme_main, 10%); - } - &:active { - // background: lighten(@theme_main, 20%); - } - } - blockquote{ - padding: @gap; - border-left: @border_radius_line solid @color_bg_quote; - // border-radius: @border_radius_code_block; - .enable-trans(); - p{ - text-align: left; - word-wrap: normal; - margin: 0; - font-size: @fontsize_small; - line-height: @fontsize_small * 1.5; - } - } - pre code{ - border: none; - } - code{ - font-family: @fontfamily_code; - font-size: @fontsize_base * .8; - color: fade(@color_text_main, 90%); - } - a, .vemoji-btn, .vpreview-btn{ - color: @color_text_link; - .enable-trans(); - &:hover { - color: @color_text_highlight; - text-decoration: underline; - } - &:active { - color: darken(@color_text_highlight, 25%); - } - } - .vhead{ - span{ - &.vnick{ - color: fade(@color_text_main, 90%); - } - } - a{ - &.vnick{ - color: #ff9800; - font-weight: bold; - &:hover { - color: @color_text_highlight; - text-decoration: underline; - } - } - } - .vsys{ - margin: 2px; - padding: 1px 8px; - background-color: fade(@color_text_main, 10%); - } - - } - .vcard{ - .vquote{ - border-left: none; - } - .vh { - border-bottom: 1px dashed fade(@color_text_main, 10%); - } - } - .vmeta{ - .vat{ - font-weight: bold; - color: @theme_main; - .enable-trans(); - &:hover { - color: @color_text_highlight; - text-decoration: underline; - } - &:active { - color: darken(@color_text_highlight, 25%); - } - } - } - .vinput{ - color: @color_text_main; - } - p{ - color: @color_text_main; - } - } - .vemojis{ - justify-content: space-between; - i{ - width: auto; - height: 36px; - padding: 0; - margin: 8px 8px 0 8px; - #emoji{ - height: 24px; - margin-top: 6px; - background: transparent; - } - } - } - p{ - #emoji{ - display: inline; - max-height: 28px; - background: transparent; - } - } - } - .post-wrapper{ - // for firefox - column-break-inside: avoid; - break-inside: avoid-column; - } - .mobile-post() { - .post { - .meta { - margin-bottom: @gap; - .title { - font-size: @fontsize_article_title_phone; - } - } - .full-width { - margin-left: -@gap; - margin-right: -@gap; - padding-left: @gap; - padding-right: @gap; - width:~"calc(100% + 2 * @{gap})" - } - .auto-padding { - padding-left: @gap; - padding-right: @gap; - border-bottom-left-radius: @border_radius; - border-bottom-right-radius: @border_radius; - overflow: auto; - } - .highlight{ - margin-left: 0*@gap; - margin-right: 0*@gap; - width:~"calc(100% - 0 * @{gap})"; - } - @media(max-width:@on_phone) { - padding: 1.5*@gap @gap; - .highlight { - margin-left: 0*@gap; - margin-right: 0*@gap; - width:~"calc(100% - 0 * @{gap})"; - } - .auto-padding { - // padding-left: @gap; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - } - - } - } - .post-wrapper { - margin-bottom: @gap; - .post { - .meta { - margin-bottom: @gap; - .title { - font-size: @fontsize_list_title; - a { - font-size: @fontsize_list_title; - } - } - } - .full-width { - margin-left: -1.5*@gap; - margin-right: -1.5*@gap; - width:~"calc(100% + 3 * @{gap})" - } - .auto-padding { - padding-left: 1.5*@gap; - padding-right: 1.5*@gap; - border-bottom-left-radius: @border_radius; - border-bottom-right-radius: @border_radius; - overflow: auto; - } - } - .tags { - margin-bottom: -2*@gap; - } - @media(max-width:@on_phone) { - .tags { - margin-bottom: -1.5*@gap; - } - .mobile-post(); - } - - } - .widget{ - @media(max-width: @on_phone) { - border-radius: 0; - margin-left: 0; - margin-right: 0; - width: auto; - &:hover { - box-shadow: @boxshadow_card_normal; - } - } - } - .post { - position: relative; - margin: @gap auto; - padding: 2*@gap 1.5*@gap; - background: @theme_cardbg; - border-radius: @border_radius; - h1{ - font-weight: normal; - font-size: @fontsize_article_title; - line-height: @lineheight_base; - color: @color_text_main; - } - &:extend(.z-depth-main); - .enable-trans(); - &:hover { - box-shadow: @boxshadow_card_raised; - } - &:active { - box-shadow: @boxshadow_card_normal; - } - @media(max-width: @on_phone) { - border-radius: 0; - &:hover { - box-shadow: @boxshadow_card_normal; - } - } - .tags a{ - color: fade(@color_text_main, 70%); - } - .meta { - color: fade(@color_text_main, 70%); - &#header-meta{ - margin-top: 0; - margin-bottom: 1*@gap; - } - &#footer-meta{ - margin-top: 2*@gap; - margin-bottom: 0.5*@gap; - } - font-size: @fontsize_small * .95; - .aplayer,.thumbnail{ - .enable-trans(); - width: 65px; - height: 65px; - border-radius: 100%; - float: right; - margin: 4px; - box-shadow: @boxshadow_card_normal; - &:hover { - border-radius: 25%; - transform: scale(1.1); - box-shadow: @boxshadow_card_raised; - } - @media(max-width: @on_phone) { - &:hover { - border-radius: 100%; - transform: scale(1); - box-shadow: @boxshadow_card_normal; - } - } - } - .thumbnail{ - width: auto; - border-radius: 4px; - box-shadow: none; - &:hover { - border-radius: 4px; - transform: scale(1.1) rotate(4deg); - box-shadow: none; - } - } - .title { - // left: 0; - text-align: @text_align_h1; - font-size: @fontsize_article_title; - margin: 0; - @media(max-width: @on_phone) { - font-size: @fontsize_article_title_phone; - } - &:before { - // content: "#"; - } - a { - display: inline; - line-height: @lineheight_base; - font-weight: normal; - color: @color_text_main; - text-decoration: none; - font-size: @fontsize_article_title; - @media(max-width: @on_phone) { - font-size: @fontsize_article_title_phone; - } - &:hover { - color: @color_text_highlight; - } - } - } - @cellH: 28px; - .new-meta-box{ - @metaH: 24px; - .enable-trans(); - padding-top: 4px; - padding-bottom: 8px; - display: flex; - align-items: center; - flex-wrap: wrap; - .new-meta-item{ - color: fade(@color_text_main, 70%); - font-size: @fontsize_small * 1; - line-height: @metaH; - .notlink{ - cursor: default; - &:hover{ - color: fade(@color_text_main, 70%); - p{ - color: fade(@color_text_main, 70%); - } - } - } - display: flex; - align-items: center; - justify-content: center; - padding: 2px; - margin: 0 8px 0 0; - border-radius: 4px; - &:last-child{ - margin-right: 0; - } - img,i{ - border-radius: 100%; - display: inline; - } - i{ - margin-right: 4px; - border-radius: 0; - &.fa-hashtag{ - margin-right: 1px; - } - } - p,a{ - color: fade(@color_text_main, 70%); - padding-left: 0; - padding-right: 4px; - } - a{ - font-family: @fontfamily_base; - display: flex; - justify-content: center; - align-items: center; - img{ - height: @metaH - 7px; - width: @metaH - 7px; - margin-right: 5px; - transform: translateY(-1px); - } - p{ - margin: 0; - padding-top: 2px; - font-weight: normal; - .enable-trans(); - } - &:hover{ - color: @color_text_highlight; - p{ - color: @color_text_highlight; - } - text-decoration: none; - } - } - } - .share-body{ - height: @metaH - 2px; - display: flex; - a{ - padding: 0; - margin-right: 4px; - img{ - height: @metaH - 2px; - width: auto; - background: transparent; - } - } - } - - } - - } - .full-width,.highlight{ - margin-left: 0*@gap; - margin-right: 0*@gap; - width:~"calc(100% - 0 * @{gap})"; - } - - img { - display: flex; - justify-content: center; - align-items: center; - max-width: 100%; - border-radius: 4px; - background: none; - } - span img{ - display: inline-block; - } - a { - img{ - display: inline; - } - } - } - @media(max-width:@on_pad) { - padding-right: 0; - @media(max-width: @on_phone) { - width: 100%; - } - .mobile-post(); - } - - .prev-next{ - width: 100%; - display: flex; - justify-content: space-between; - align-items: baseline; - color: fade(@color_text_main, 50%); - margin: 0; - .prev{ - text-align: left; - border-top-right-radius: 32px; - border-bottom-right-radius: 32px; - } - .next{ - text-align: right; - border-top-left-radius: 32px; - border-bottom-left-radius: 32px; - } - p{ - margin: @gap; - } - a{ - color: fade(@color_text_link, 90%); - } - section{ - color: fade(@color_text_main, 80%); - padding: @gap; - border-radius: @border_radius; - &:hover { - color: @color_text_highlight; - } - } - @media(max-width:@on_phone) { - section{ - border-radius: 0; - } - } - - } - -} - -.alert { - display: none; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%,-50%); - z-index: 99999; - text-align: center; - padding: 24px 36px; - border-radius: @border_radius_code_block; - box-shadow: @boxshadow_card_normal; - font-family: @fontfamily_base; - font-weight: bold; - font-size: @fontsize_base; - - &.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; - } - - &.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; - } - - &.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; - } - - &.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; - } - -} diff --git a/themes/hexo-theme-material-x-master/source/less/_normalize.less b/themes/hexo-theme-material-x-master/source/less/_normalize.less deleted file mode 100644 index 550307249873074e5134a0dd0db240b06ca7ec6d..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_normalize.less +++ /dev/null @@ -1,446 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; - border: 0; - border-radius: 1px; - border-bottom: 1px solid fade(@color_text_main, 10%); -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - width: 100%; - th { - background-color: lighten(@theme_background, 1%); - } - td, - th { - text-align: justify; - padding: 4px 8px; - border: 1px solid @theme_background; - } - tr { - // border-bottom: 2px solid #eee; - // background-color: @theme_main; - } - &>thead>th { - // border-bottom-width: 2px; - } -} - -td, -th { - padding: 0; -} diff --git a/themes/hexo-theme-material-x-master/source/less/_pagination.less b/themes/hexo-theme-material-x-master/source/less/_pagination.less deleted file mode 100644 index e6737ab5507b0851b3b6f2f510197cde2d4423da..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_pagination.less +++ /dev/null @@ -1,40 +0,0 @@ -/* Pagination */ - -#page-nav { - position: relative; - width: 100%; - padding: 20px 0px; - - .page-number, - .space { - display: none; - } - .next, - .prev { - font-size: 0.8125em; - font-weight: normal; - color: lighten(@black, 40%); - border-radius: 2px; - - &:hover { - color: @black; - } - span { - line-height: 20px; - vertical-align: middle; - - &.icon { - position: relative; - top: 1px; - } - } - } - .next { - float: right; - padding: 0 7px 2px 10px; - } - .prev { - float: left; - padding: 0 10px 2px 7px; - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_search.less b/themes/hexo-theme-material-x-master/source/less/_search.less deleted file mode 100644 index eeb07bdd0c79d8102047120bb6c16850bdd2e91b..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_search.less +++ /dev/null @@ -1,310 +0,0 @@ -#u-search { - display: none; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - padding: 60px 20px; - z-index: 999999; - - @media (max-width: @on_modal_threshold) { - padding: 0px; - } - .modal { - position: fixed; - height: 80%; - width: 100%; - max-width: 640px; - left: 50%; - top: 0; - margin: 64px 0px 0px -320px; - background: #fff; - box-shadow: 0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12); - z-index: 3; - border-radius: @border_radius; - overflow: hidden; - @media (max-width: @on_modal_threshold) { - box-shadow: none; - max-width: none; - top: 0; - left: 0; - margin: 0; - height: 100%; - border-radius: 0; - } - - .modal-ajax-content { - opacity: 0; - visibility: hidden; - .enable-trans(); - - &.loaded { - opacity: 1; - visibility: visible; - } - } - .modal-header { - position: relative; - width: 100%; - height: @height_navbar; - background-color: @color_bg_navbar; - z-index: 3; - border-top-left-radius: @border_radius; - border-top-right-radius: @border_radius; - @media (max-width: @on_modal_threshold) { - padding: 0px; - border-radius: 0; - } - &:extend(.z-depth-nav); - .enable-trans(); - &:hover { - &:extend(.z-depth-nav-raised); - } - &:active { - - } - .btn-close { - display: block; - position: absolute; - width: 50px + 5px; - height: @height_navbar; - top: 0; - right: 0; - color: @color_text_in_header; - cursor: pointer; - text-align: center; - line-height: @height_navbar; - vertical-align: middle; - font-size: @fontsize_header_switcher; - .enable-trans(); - z-index: 2; - - &:hover { - transform: rotate(90deg); - } - } - .modal-loading { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 2px; - background: transparent; - z-index: 1; - - .modal-loading-bar { - display: block; - position: relative; - width: 0%; - height: 100%; - background: fade(@white, 100%); - .enable-trans(); - } - } - #u-search-modal-form { - position: relative; - width: 100%; - height: 100%; - z-index: 2; - - #u-search-modal-input { - width: 100%; - padding: 0px 50px; - height: @height_navbar; - font-size: @fontsize_base; - line-height: @lineheight_base; - vertical-align: middle; - color: @color_text_in_header; - border: none; - background: transparent; - .enable-trans(); - font-weight: thin; - appearance: none; - box-shadow: none; - - &:focus { - border-top-left-radius: @border_radius; - border-top-right-radius: @border_radius; - } - } - } - #u-search-modal-btn-submit { - position: absolute; - top: 0; - left: 0; - padding-left: 5px; - padding-top: 2px; - background: transparent; - border: none; - width: 50px; - height: @height_navbar; - vertical-align: middle; - font-size: @fontsize_header_switcher; - color: @color_text_in_header; - z-index: 2; - } - } - .modal-footer { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 50px; - padding: 0px 15px; - background: #fff; - border-top: 1px solid lighten(@black,60%); - - .logo { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - z-index: 0; - - a { - display: inline-block; - } - &.google img { - height: 24px; - margin-top: 13px; - } - &.baidu img { - height: 22px; - margin-top: 14px; - } - img { - position: relative; - display: inline-block; - width: auto; - height: 18px; - margin-top: 16px; - } - } - .modal-error { - position: relative; - float: left; - vertical-align: middle; - line-height: 50px; - font-size: 13px; - z-index: 1; - } - .modal-metadata { - position: relative; - float: left; - vertical-align: middle; - line-height: 50px; - font-size: 13px; - z-index: 1; - } - .nav { - position: relative; - display: block; - float: right; - vertical-align: middle; - font-size: 13px; - font-weight: 500; - line-height: 50px; - color: @color_grey; - cursor: pointer; - z-index: 1; - - &:hover { - color: @black; - } - &.btn-next { - margin-left: 10px; - } - .icon { - font-size: 12px; - } - } - } - .modal-body { - position: absolute; - padding: 64px 50px 80px 50px; - width: 100%; - height: 100%; - top: 0; - left: 0; - overflow-y: scroll; - -webkit-overflow-scrolling: touch; - background-color: @theme_cardbg; - border-radius: @border_radius; - @media (max-width: @on_modal_threshold) { - padding: 60px 20px 80px 20px; - } - .modal-results { - list-style: none; - - li { - border-bottom: 1px solid #e6e8ea; - - &:last-child { - border-bottom: none; - } - } - .result { - position: relative; - display: block; - padding: 15px 30px 15px 0px; - text-decoration: none; - - &:hover { - .digest, .icon { - // color: @black; - } - .title { - color: @color_text_highlight; - } - } - .title { - display: inline-block; - max-width: 100%; - color: lighten(@color_text_main, 10%); - font-size: @fontsize_base; - font-weight: bold; - padding: 1px; - margin-bottom: 2px; - line-height: @lineheight_base; - white-space: normal; - overflow: hidden; - text-overflow: ellipsis; - } - .digest { - display: block; - white-space: pre-wrap; - overflow: scroll; - text-overflow: ellipsis; - font-size: @fontsize_small; - line-height: @lineheight_base; - color: lighten(@color_text_main, 30%); - .enable-trans(); - em { - // font-weight: bold; - } - } - .icon { - position: absolute; - top: 50%; - right: 0; - margin-top: -4px; - font-size: 11px; - color: @color_grey; - } - } - } - } - } - .modal-overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(0,0,0,0.7); - z-index: 1; - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_side.less b/themes/hexo-theme-material-x-master/source/less/_side.less deleted file mode 100644 index 168e892a086d3670149c213545a181f6f848a583..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_side.less +++ /dev/null @@ -1,381 +0,0 @@ -.l_side { - width: @width_sidebar; - float: right; - position: relative; - display: flex; - flex-direction: column; - @media(max-width: @on_desktop) { - width: @width_sidebar_m; - } - @media(max-width: @on_pad) { - // margin: @gap 0 0; - width: 100%; - } - -} - -.widget{ - z-index: 0; - &:extend(.z-depth-main); - background: @theme_cardbg; - margin-top: @gap; - font-family: @fontfamily_base; - font-size: @fontsize_base; - - border-radius: @border_radius; - .enable-trans(); - &:hover { - box-shadow: @boxshadow_card_raised; - } - &:active { - box-shadow: @boxshadow_card_normal; - } - - width: 100%; - - @media(max-width: @on_phone) { - width: ~"calc(100% - 2 * @{gap})"; - margin: @gap @gap 0 @gap; - } - max-height: ~"calc(100% - @{height_navbar} - 4 * @{gap})"; - header{ - display: flex; - justify-content: space-between; - border-top-left-radius: @border_radius; - border-top-right-radius: @border_radius; - background-color: @color_bg_navbar; - color: @color_text_in_header; - font-weight: bold; - line-height: 1.5em; - padding: 8px @gap; - .rightBtn{ - color: @color_text_in_header; - &:hover { - color: darken(@theme_main, 25%); - &.rotate90{ - transform: rotate(90deg); - } - } - } - &.pure{ - background-color: @theme_cardbg; - color: @theme_main; - padding-top: 14px; // 适合白色导航栏背景 - padding-bottom: 14px; // 适合白色导航栏背景 - .rightBtn{ - color: @theme_main; - &:hover { - color: darken(@theme_main, 25%); - } - } - } - } - .content{ - text-align: justify; - padding: @gap/2; - max-height: ~"calc(100% - @{height_navbar} - 12.5 * @{gap})"; - ul > li{ - a{ - color: fade(@color_text_main, 80%); - padding: 0 @gap; - line-height: @height_cell; - display: flex; - justify-content: space-between; - align-content: center; - border-left: 2px solid transparent; - .enable-trans(); - } - } - ul.entry, ul.popular-posts{ - a{ - .name{ - flex:auto; - &:extend(.txt-ellipsis); - color: fade(@color_text_main, 80%); - } - .badge{ - flex:none; - font-weight: normal; - font-size: @fontsize_small; - color: fade(@color_text_main, 70%); - } - &:hover{ - border-left: 4px solid @theme_main; - background: fade(@theme_main, 10%); - } - &:active{ - border-left: 8px solid @theme_main; - } - &.child{ - padding-left: @gap*2; - } - } - } - } - - - &.author{ - .enable-trans(); - .content{ - padding: 0; - div.avatar{ - display: flex; - justify-content: center; - } - img{ - padding: 0; - margin: 0; - display: flex; - justify-content: center; - width: @width_sidebar; - height: @width_sidebar; - border-top-left-radius: @border_radius; - border-top-right-radius: @border_radius; - @media(max-width: @on_desktop) { - width: @width_sidebar_m; - height: @width_sidebar_m; - } - @media(max-width: @on_pad){ - width: 96px; - height: 96px; - border-radius: 100%; - margin-top: @gap/2; - padding: @gap/2; - } - - } - h2{ - text-align: center; - font-weight: bold; - margin: @gap/2; - @media(max-width: @on_pad){ - margin: @gap/2; - } - } - p{ - font-size: @fontsize_base; - font-weight: bold; - text-align: center; - margin: @gap/2 @gap/2 0 @gap/2; - empty-cells: hide; - } - .social-wrapper{ - display: flex; - justify-content: space-between; - flex-wrap: wrap; - margin: 4px @gap/2; - a{ - color: fade(@color_text_main, 70%); - padding: 0; - .enable-trans(); - &:hover{ - color: @color_text_highlight; - } - &.social { - display: flex; - justify-content: center; - align-items: center; - width: 32px; - height: 32px; - margin: 4px; - border-radius: 100px; - &:hover { - background: fade(@theme_main, 10%); - color: @theme_main; - } - } - } - @media(max-width: @on_pad){ - justify-content: center; - display: none; - } - } - } - @media(max-width: @on_pad){ - box-shadow: none; - background: @theme_background; - margin-top: 2*@gap; - } - } - - &.plain{ - .content{ - font-size: @fontsize_small; - font-weight: bold; - word-break: break-all; - padding: @gap/2 @gap; - line-height: @fontsize_small + 8px; - &.pure{ - padding: 0 @gap @gap @gap; // 适合白色导航栏背景 - } - a{ - color: @color_text_link; - .enable-trans(); - &:hover { - color: @color_text_highlight; - text-decoration: underline; - } - &:active { - color: darken(@color_text_highlight, 25%); - } - } - } - } - - &.list{ - .content{ - padding: @gap/2 0; - &.pure{ - padding-top: 0; // 适合白色导航栏背景 - } - a{ - font-size: @fontsize_small; - font-weight: bold; - &:hover{ - text-decoration: none; - } - i{ - color: fade(@color_text_main,70%); - line-height: @height_cell; - margin-right: 3px; - } - img{ - display: inline; - vertical-align: middle; - height: 18px; - width: 18px; - margin-bottom: 4px; - &#round{ - border-radius: 100%; - } - } - } - } - } - &.grid{ - .content{ - padding: @gap/2 0; - &.pure{ - padding-top: 0; // 适合白色导航栏背景 - } - ul.grid{ - border: none; - display: flex; - flex-wrap: wrap; - justify-content: space-around; - padding: 0 @gap; - a{ - text-align: center; - border-radius: @border_radius; - margin: 4px 0; - padding: 4px 8px; - display: flex; - flex-direction: column; - align-items: center; - font-size: @fontsize_small * .9; - font-weight: bold; - line-height: @fontsize_small * 1.3; - color: fade(@color_text_main, 70%); - i{ - margin-top: .3em; - margin-bottom: .3em; - font-size: 1.8em; - } - img{ - display: inline; - vertical-align: middle; - margin-bottom: 4px; - &#round{ - border-radius: 100%; - } - } - border: 1px solid transparent; - &:hover { - color: @theme_main; - background: fade(@theme_main, 10%); - border-radius: 4px; - } - &:active { - color: @theme_main; - } - &.active { - color: @theme_main; - border: 1px solid @theme_main; - } - } - } - } - } - &.category{ - .content{ - padding: @gap/2 0; - font-size: @fontsize_small; - font-weight: bold; - &.pure{ - padding-top: 0; // 适合白色导航栏背景 - } - } - } - - &.tagcloud{ - .content{ - text-align: justify; - padding: @gap/2 @gap; - &.pure{ - padding: 0 @gap @gap @gap; // 适合白色导航栏背景 - } - a{ - display:inline-block; - .enable-trans(.1s); - line-height: 1.6em; - &:hover{ - color: @color_text_highlight !important; //to cover inline style. - text-decoration: underline - } - } - } - } - - &.music{ - header{ - &.pure{ - padding-bottom: @gap/4; // 适合白色导航栏背景 - } - } - .content{ - padding: @gap/2+4px; - padding-top: @gap/2; - &.pure{ - padding-top: @gap/4; // 适合白色导航栏背景 - } - .aplayer{ - border-radius: 4px; - color: #666; - font-family: @fontfamily_base; - } - } - } - - &.related_posts{ - .content{ - padding: @gap/2 0; - font-size: @fontsize_small; - font-weight: bold; - &.pure{ - padding-top: 0; // 适合白色导航栏背景 - } - h3{ - font-size: @fontsize_small; - font-weight: bold; - margin: 0; - a{ - // line-height: @fontsize_small*1.7; - line-height: inherit; - padding-top: 4px; - padding-bottom: 4px; - } - } - } - } - -} diff --git a/themes/hexo-theme-material-x-master/source/less/_toc.less b/themes/hexo-theme-material-x-master/source/less/_toc.less deleted file mode 100644 index df685f280852e5d1f73f1d7cfe1de23d44622ba0..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_toc.less +++ /dev/null @@ -1,118 +0,0 @@ -.l_side .toc-wrapper{ - z-index: 1; - overflow: hidden; - border-radius: @border_radius; - position: sticky; - top: @height_navbar + @gap; - .enable-trans(); - header{ - position: sticky; - width: 100%; - top: 0; - } - .content{ - padding: @gap/2 0 @gap 0; - max-height: 500px; - overflow: auto; - &.pure{ - padding-top: 0; // 适合白色导航栏背景 - } - a { - border-left: 4px solid transparent; - &:hover{ - color: fade(@color_text_main, 100%); - border-left: 4px solid @theme_main; - } - &:active{ - border-left: 8px solid @theme_main; - } - &.active{ - color: fade(@color_text_main, 100%); - border-left: 4px solid @theme_main; - background: fade(@theme_main, 10%); - } - } - } - &.active{ - position: fixed; - box-shadow: @boxshadow_card_raised; - top: @height_navbar; - header{ - .s-toc{ - transform: rotate(30deg); - } - } - width: @width_sidebar; - @media(max-width: @on_desktop) { - width: @width_sidebar_m; - } - @media(max-width: @on_pad) { - width: ~"calc(100% - 2 * @{gap})"; - } - } - .enable-trans(); - @media(max-width: @on_pad){ - position: fixed; - max-height: 1000px; - width: ~"calc(100% - 2 * @{gap})"; - top: @height_navbar; - box-shadow: @boxshadow_card_raised; - visibility: hidden; - .rightBtn{ - display: none; - } - transform: scale(0,0); - transform-origin: right top; - &.active{ - visibility: visible; - transform: scale(1,1); - } - } - - a { - padding-left: 8px; - color: fade(@color_text_main, 60%); - font-size: @fontsize_small; - display: inline-block; - } - ol{ - .toc-item.toc-level-1 { - .toc-child a{ - padding-left: 0.8*@gap; - font-weight: normal; - } - } - .toc-item.toc-level-2 { - .toc-child a{ - padding-left: 1.6*@gap; - font-weight: normal; - } - } - .toc-item.toc-level-3 { - .toc-child a{ - padding-left: 2.4*@gap; - font-weight: normal; - } - } - .toc-item.toc-level-4 { - .toc-child a{ - padding-left: 3.2*@gap; - font-weight: normal; - } - } - li{ - a{ - padding: 0 @gap/2 0 (@gap - 5px); - font-weight: bold; - width: 100%; - - } - width: auto; - text-align: left; - // &:extend(.txt-ellipsis); - } - } - &:empty{ - display:none; - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_tog.less b/themes/hexo-theme-material-x-master/source/less/_tog.less deleted file mode 100644 index e5ad09d8b66a084aea2b50e69a2c50b549ab5334..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_tog.less +++ /dev/null @@ -1,40 +0,0 @@ -.tog{ - position:fixed; - top: @height_navbar + @gap * 2; - right: ~"calc((100% - @{container-width})/2)"; - .enable-trans(); - @media(max-width: @width_container){ - right: 0; - } - @media(max-width: @on_phone){ - right: -@width_sidebar; - &.active{ - transform: translateX(-@width_sidebar); - } - } - width: @width_sidebar + 6px; - z-index:3; - &:extend(.z-depth-2); - padding: @gap; - border-left: 6px solid @color_bg_navbar; - background: @color_text_in_header; - a { - display: inline-block; - &:hover,&:active,&.active{ - color: @color_text_highlight; - } - } - ol{ - &.toc-child{ - padding-left: @gap; - } - li{ - list-style:none; - width: auto; - &:extend(.txt-ellipsis); - } - } - &:empty{ - display:none; - } -} diff --git a/themes/hexo-theme-material-x-master/source/less/_typo.less b/themes/hexo-theme-material-x-master/source/less/_typo.less deleted file mode 100644 index cab17d68d06b534d244d2bc9960efaa3a7594d48..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/less/_typo.less +++ /dev/null @@ -1,334 +0,0 @@ -@charset "utf-8"; -.typo { - font-size:1.6rem; - @media (max-width: @on_phone) { - padding: 0px 20px; - } -} -/* 内外边距通常让各个浏览器样式的表现位置不同 */ -body, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td, hr, button, article, aside, details, figcaption, figure, footer, header, menu, nav, section { - margin: 0; - padding: 0; -} - -/* 重设 HTML5 标签, IE 需要在 js 中 createElement(TAG) */ -article, aside, details, figcaption, figure, footer, header, menu, nav, section { - display: block; -} - -/* HTML5 媒体文件跟 img 保持一致 */ -audio, canvas, video { - display: inline-block; -} - -/* 要注意表单元素并不继承父级 font 的问题 */ -body, button, input, select, textarea { - font: 300 1em/1.8 PingFang SC, Lantinghei SC, Microsoft Yahei, Hiragino Sans GB, Microsoft Sans Serif, WenQuanYi Micro Hei, sans; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} - -/* 去掉各Table cell 的边距并让其边重合 */ -table { - border-collapse: collapse; - border-spacing: 0; -} - -/* 去除默认边框 */ -fieldset, img { - border: 0; -} - -/* 块/段落引用 */ -blockquote { - position: relative; - color: #999; - font-weight: 400; - border-left: 1px solid #1abc9c; - padding-left: 1em; - margin: 1em 3em 1em 2em; -} - -@media only screen and ( max-width: 640px ) { - blockquote { - margin: 1em 0; - } -} - -/* Firefox 以外,元素没有下划线,需添加 */ -acronym, abbr { - border-bottom: 1px dotted; - font-variant: normal; -} - -/* 添加鼠标问号,进一步确保应用的语义是正确的(要知道,交互他们也有洁癖,如果你不去掉,那得多花点口舌) */ -abbr { - cursor: help; -} - -/* 一致的 del 样式 */ -del { - text-decoration: line-through; -} - -address, caption, cite, code, dfn, em, th, var { - font-style: normal; - font-weight: 400; -} - -/* 去掉列表前的标识, li 会继承,大部分网站通常用列表来很多内容,所以应该当去 */ -ul, ol { - list-style: none; -} - -/* 对齐是排版最重要的因素, 别让什么都居中 */ -caption, th { - text-align: left; -} - -q:before, q:after { - content: ''; -} - -/* 统一上标和下标 */ -sub, sup { - font-size: 75%; - line-height: 0; - position: relative; -} - -:root sub, :root sup { - vertical-align: baseline; /* for ie9 and other modern browsers */ -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* 让链接在 hover 状态下显示下划线 */ -a { - color: #1abc9c; -} - -a:hover { - text-decoration: underline; -} - -.typo a { - border-bottom: 1px solid #1abc9c; -} - -.typo a:hover { - border-bottom-color: #555; - color: #555; - text-decoration: none; -} - -/* 默认不显示下划线,保持页面简洁 */ -ins, a { - text-decoration: none; -} - -/* 专名号:虽然 u 已经重回 html5 Draft,但在所有浏览器中都是可以使用的, - * 要做到更好,向后兼容的话,添加 class="typo-u" 来显示专名号 - * 关于 标签:http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-u-element - * 被放弃的是 4,之前一直搞错 http://www.w3.org/TR/html401/appendix/changes.html#idx-deprecated - * 一篇关于 标签的很好文章:http://html5doctor.com/u-element/ - */ -u, .typo-u { - text-decoration: underline; -} - -/* 标记,类似于手写的荧光笔的作用 */ -mark { - background: #fffdd1; - border-bottom: 1px solid #ffedce; - padding: 2px; - margin: 0 5px; -} - -/* 代码片断 */ -pre, code, pre tt { - font-family: Courier, 'Courier New', monospace; -} - -pre { - background: #f8f8f8; - border: 1px solid #ddd; - padding: 1em 1.5em; - display: block; - -webkit-overflow-scrolling: touch; -} - -/* 一致化 horizontal rule */ -hr { - border: none; - border-bottom: 1px solid #cfcfcf; - margin-bottom: 0.8em; - height: 10px; -} - -/* 底部印刷体、版本等标记 */ -small, .typo-small, - /* 图片说明 */ -figcaption { - font-size: 0.9em; - color: #888; -} - -strong, b { - font-weight: bold; - color: #000; -} - -/* 可拖动文件添加拖动手势 */ -[draggable] { - cursor: move; -} - -.clearfix:before, .clearfix:after { - content: ""; - display: table; -} - -.clearfix:after { - clear: both; -} - -.clearfix { - zoom: 1; -} - -/* 强制文本换行 */ -.textwrap, .textwrap td, .textwrap th { - word-wrap: break-word; - word-break: break-all; -} - -.textwrap-table { - table-layout: fixed; -} - -/* 提供 serif 版本的字体设置: iOS 下中文自动 fallback 到 sans-serif */ -.serif { - font-family: Palatino, Optima, Georgia, serif; -} - -/* 保证块/段落之间的空白隔行 */ -.typo p, .typo pre, .typo ul, .typo ol, .typo dl, .typo form, .typo hr, .typo table, -.typo-p, .typo-pre, .typo-ul, .typo-ol, .typo-dl, .typo-form, .typo-hr, .typo-table, blockquote { - margin-bottom: 1.2em -} - -h1, h2, h3, h4, h5, h6 { - font-family: PingFang SC, Verdana, Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, Microsoft Sans Serif, WenQuanYi Micro Hei, sans-serif; - font-weight: 100; - color: #000; - line-height: 1.35; -} - -/* 标题应该更贴紧内容,并与其他块区分,margin 值要相应做优化 */ -.typo h1, .typo h2, .typo h3, .typo h4, .typo h5, .typo h6, -.typo-h1, .typo-h2, .typo-h3, .typo-h4, .typo-h5, .typo-h6 { - margin-top: 1.2em; - margin-bottom: 0.6em; - line-height: 1.35; -} - -.typo h1, .typo-h1 { - font-size: 2em; -} - -.typo h2, .typo-h2 { - font-size: 1.8em; -} - -.typo h3, .typo-h3 { - font-size: 1.6em; -} - -.typo h4, .typo-h4 { - font-size: 1.4em; -} - -.typo h5, .typo h6, .typo-h5, .typo-h6 { - font-size: 1.2em; -} - -/* 在文章中,应该还原 ul 和 ol 的样式 */ -.typo ul, .typo-ul { - margin-left: 1.3em; - list-style: disc; -} - -.typo ol, .typo-ol { - list-style: decimal; - margin-left: 1.9em; -} - -.typo li ul, .typo li ol, .typo-ul ul, .typo-ul ol, .typo-ol ul, .typo-ol ol { - margin-bottom: 0.8em; - margin-left: 2em; -} - -.typo li ul, .typo-ul ul, .typo-ol ul { - list-style: circle; -} - -/* 同 ul/ol,在文章中应用 table 基本格式 */ -.typo table th, .typo table td, .typo-table th, .typo-table td, .typo table caption { - border: 1px solid #ddd; - padding: 0.5em 1em; - color: #666; -} - -.typo table th, .typo-table th { - background: #fbfbfb; -} - -.typo table thead th, .typo-table thead th { - background: #f1f1f1; -} - -.typo table caption { - border-bottom: none; -} - -/* 去除 webkit 中 input 和 textarea 的默认样式 */ -.typo-input, .typo-textarea { - -webkit-appearance: none; - border-radius: 0; -} - -.typo-em, .typo em, legend, caption { - color: #000; - font-weight: inherit; -} - -/* 着重号,只能在少量(少于100个字符)且全是全角字符的情况下使用 */ -.typo-em { - position: relative; -} - -.typo-em:after { - position: absolute; - top: 0.65em; - left: 0; - width: 100%; - overflow: hidden; - white-space: nowrap; - content: "・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・"; -} - -/* Responsive images */ -.typo img { - max-width: 100%; -} diff --git a/themes/hexo-theme-material-x-master/source/style.less b/themes/hexo-theme-material-x-master/source/style.less deleted file mode 100644 index aab2f39e744aaaadf9acb1bbb95e1538f22d7ed1..0000000000000000000000000000000000000000 --- a/themes/hexo-theme-material-x-master/source/style.less +++ /dev/null @@ -1,17 +0,0 @@ -@charset "utf-8"; -@import "less/_defines.less"; -@import "less/_fonts.less"; -@import "less/_normalize.less"; -@import "less/_base.less"; -@import "less/_header.less"; -@import "less/_main.less"; -@import "less/_side.less"; -@import "less/_toc.less"; -@import "less/_archive.less"; -@import "less/_article.less"; -@import "less/_pagination.less"; -@import "less/_search.less"; -@import "less/_footer.less"; -@import "less/_color.less"; -@import "less/_layout.less"; -@import "less/_links.less"; diff --git a/themes/material-x-1.2.1/_config.yml b/themes/material-x-1.2.1/_config.yml index 688060863f2304abe613cdce14eafe1c6b5e7052..d1c33e6af9c7103659876430bb11ea38ab2f5bdf 100644 --- a/themes/material-x-1.2.1/_config.yml +++ b/themes/material-x-1.2.1/_config.yml @@ -4,11 +4,11 @@ info: docs: https://xaoxuu.com/wiki/material-x/ cdn: # 把对应的那一行注释掉就使用本地的文件 css: - style: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/css/style.css + style: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/css/style.css js: - app: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/js/app.js - search: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/js/search.js - volantis: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/js/volantis.min.js + app: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/js/app.js + search: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/js/search.js + volantis: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/js/volantis.min.js @@ -38,10 +38,10 @@ music: autoplay: false # 自动播放 # 友链页头像占位图 -avatar_placeholder: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/images/bitmap.gif +avatar_placeholder: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/images/bitmap.gif -# 字数统计 -word_count: True +# 文章字数统计、阅读时长 +word_count: true # 日期格式 http://momentjs.com/docs/ date_format: 'YYYY-MM-DD' # 文章发布日期的格式 @@ -53,17 +53,17 @@ backstretch: duration: 5000 # 持续时间(毫秒) fade: 1500 # 渐变(毫秒) images: - #- https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/images/background/017.webp - - https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/images/background/021.webp + #- https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/images/background/017.webp + #- https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/images/background/021.webp ############################### 自定义 ############################### # page的封面 cover: scheme: search # 后期将会提供多种封面方案 - height: half # full(默认值): 首页封面占据整个第一屏幕,其他页面占半个屏幕高度, half: 所有页面都封面都只占半个屏幕高度 + height: full # full(默认值): 首页封面占据整个第一屏幕,其他页面占半个屏幕高度, half: 所有页面都封面都只占半个屏幕高度 # title: "TRHX'S BLOG" - logo: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/images/logo.png # logo和title只显示一个,若同时设置,则只显示logo + logo: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/images/logo.png # logo和title只显示一个,若同时设置,则只显示logo search_placeholder: '世界之大,探索一下!' # 主页封面菜单 features: @@ -141,7 +141,7 @@ menu_mobile: # 其中,title只在header中有效,music和thumbnail无需在这里设置,文章中有则显示 # 如果tags放置在meta.header中,那么在post列表中不显示(因为卡片下方已经有了) meta: - header: [title, author, date, categories, tags, counter, word, top] + header: [title, author, date, categories, tags, counter, wordcount, top] footer: [updated, share] # 主体元素,你也可以在页面的Front-matter中设置 @@ -150,7 +150,7 @@ body: [article, comments] # 侧边栏小部件,默认按下面给定的顺序全部显示,文章中还可以自定义显示一部分以及顺序 sidebar: - widget: author - avatar: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.1/images/trhx.png + avatar: https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@2.2.2/images/trhx.png title: TRHX'S BLOG body: 一入IT深似海,从此学习无绝期 social: true @@ -198,7 +198,7 @@ sidebar: - widget: plain icon: fas fa-comments title: 交流群组 - body: 'QQ 交流群Telegram 交流群' + body: 'QQ 交流群Telegram 交流群' # - widget: list # icon: fas fa-link # title: 特别链接 diff --git a/themes/material-x-1.2.1/layout/_meta/word.ejs b/themes/material-x-1.2.1/layout/_meta/word.ejs deleted file mode 100644 index 30ad72922cb8dbce32b1dbed80b9cad0bdcff0f7..0000000000000000000000000000000000000000 --- a/themes/material-x-1.2.1/layout/_meta/word.ejs +++ /dev/null @@ -1,21 +0,0 @@ -<% if(isPostList || !isPostList){ %> - <% if (theme.word_count && !post.no_word_count) { %> -
    - - - -   |   - - - -
    - <% } %> -<% } %> \ No newline at end of file diff --git a/themes/material-x-1.2.1/layout/_meta/wordcount.ejs b/themes/material-x-1.2.1/layout/_meta/wordcount.ejs new file mode 100644 index 0000000000000000000000000000000000000000..c2d9b088063196585acecfd61c998b896f80b859 --- /dev/null +++ b/themes/material-x-1.2.1/layout/_meta/wordcount.ejs @@ -0,0 +1,18 @@ +<% if(isPostList || !isPostList){ %> + <% if (theme.word_count && !post.no_word_count) { %> + + + <% } %> +<% } %> \ No newline at end of file diff --git a/themes/material-x-1.2.1/layout/_partial/head.ejs b/themes/material-x-1.2.1/layout/_partial/head.ejs index 2876a67628fe6a6402deac26872ba4d4ac3d527f..6bc2e97cb60637b27899a6d1647bdf9fa9391203 100644 --- a/themes/material-x-1.2.1/layout/_partial/head.ejs +++ b/themes/material-x-1.2.1/layout/_partial/head.ejs @@ -39,7 +39,7 @@ - + <% if (config.import && config.import.meta){ %> <% (config.import.meta||[]).forEach(function(item){ %> diff --git a/themes/material-x-1.2.1/layout/layout.ejs b/themes/material-x-1.2.1/layout/layout.ejs index 6dce60577a0c242462e0ce97eb654c832fcfc67b..23e5300851770909212b8504b69fc4e137e6d772 100644 --- a/themes/material-x-1.2.1/layout/layout.ejs +++ b/themes/material-x-1.2.1/layout/layout.ejs @@ -1,13 +1,33 @@ - + <%- partial('_partial/head') %> @@ -45,21 +65,23 @@ - + - + - + + - + - + + + diff --git a/themes/material-x-1.2.1/source/js/snow.js b/themes/material-x-1.2.1/source/js/snow.js new file mode 100644 index 0000000000000000000000000000000000000000..d817abd3476bba1ed0c01bd27220fad867accb4d --- /dev/null +++ b/themes/material-x-1.2.1/source/js/snow.js @@ -0,0 +1 @@ +(function($){$.fn.snow=function(options){var $flake=$('
    ').css({"position":"absolute","z-index":"9999","top":"-50px"}).html("❄"),documentHeight=$(document).height(),documentWidth=$(document).width(),defaults={minSize:10,maxSize:20,newOn:1000,flakeColor:"#AFDAEF"},options=$.extend({},defaults,options);var interval=setInterval(function(){var startPositionLeft=Math.random()*documentWidth-100,startOpacity=0.5+Math.random(),sizeFlake=options.minSize+Math.random()*options.maxSize,endPositionTop=documentHeight-200,endPositionLeft=startPositionLeft-500+Math.random()*500,durationFall=documentHeight*10+Math.random()*5000;$flake.clone().appendTo("body").css({left:startPositionLeft,opacity:startOpacity,"font-size":sizeFlake,color:options.flakeColor}).animate({top:endPositionTop,left:endPositionLeft,opacity:0.2},durationFall,"linear",function(){$(this).remove()})},options.newOn)}})(jQuery);$(function(){$.fn.snow({minSize:5,maxSize:50,newOn:300})}); \ No newline at end of file