feat: 更换分支

This commit is contained in:
DefectingCat
2021-01-24 10:28:27 +08:00
parent 8c7085f18f
commit 1ce1a25f95
326 changed files with 31810 additions and 5159 deletions

48
.github/workflows/hexo_deploy.yml vendored Normal file
View File

@ -0,0 +1,48 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: yarn -v
- name: setup hexo env
env:
HEXO_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_KEY }}
run: |
# set up private key for deploy
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_KEY" | tr -d '\r' > ~/.ssh/id_rsa # 配置秘钥
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
ssh-keyscan e.coding.net >> ~/.ssh/known_hosts
# set git infomation
git config --global user.name 'DefectingCat'
git config --global user.email 'i@defect.ink'
# install dependencies
npm install
- name: deploy
run: |
# publish
npm run go

7
.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/

3
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"recommendations": []
}

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"compile-hero.disable-compile-files-on-did-save-code": false
}

File diff suppressed because one or more lines are too long

22
CHANGELOG.md Normal file
View File

@ -0,0 +1,22 @@
## [0.0.2-0](https://e.coding.net/Defectink/blog/blog/compare/de59640a4b9a7c779340ceb28000dd0e80f87ac1...v0.0.2-0) (2020-12-31)
### Bug Fixes
* 修复一篇文章 Front-matter 出错 ([4506a88](https://e.coding.net/Defectink/blog/blog/commits/4506a882ee74a77424bac7980d4275948d14ef8a))
### Features
* **更新文章:** 更新[构造函数与绑定this] ([0629a61](https://e.coding.net/Defectink/blog/blog/commits/0629a6144701050dfba33a462a549f1e78de6143))
* **更新文章:** ajax入门 ([de59640](https://e.coding.net/Defectink/blog/blog/commits/de59640a4b9a7c779340ceb28000dd0e80f87ac1))
* **更新文章:** javaScript 的类 ([784eda3](https://e.coding.net/Defectink/blog/blog/commits/784eda3a9f2eb8a221c11cba0ba27dc22f4c71de))
* **添加changelog:** 使用 commit 规范 ([d0b704a](https://e.coding.net/Defectink/blog/blog/commits/d0b704ab8c0559c739283d4885c7bc926727d3e0))
### BREAKING CHANGES
* **添加changelog:** 修改了npm源

12
Dockerfile Normal file
View File

@ -0,0 +1,12 @@
FROM node:15.0.1-alpine as builder
WORKDIR /root
COPY ./ ./
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update \
&& apk upgrade \
&& apk add --no-cache yarn \
&& npm install \
&& npm run dev
FROM nginx:alpine
COPY --from=builder /root/public/ /usr/share/nginx/html

33
Gulpfile.js Normal file
View File

@ -0,0 +1,33 @@
const { series, parallel } = require('gulp');
const { src, dest } = require('gulp');
const cleanCSS = require('gulp-clean-css');
const htmlmin = require('gulp-htmlmin');
const uglify = require('gulp-uglify-es').default;
const htmlclean = require('gulp-htmlclean');
function html() {
return src('./public/**/*.html')
.pipe(htmlclean())
.pipe(htmlmin({
collapseWhitespace: true,
removeComments: true,
minifyJS: true,
minifyCSS: true,
minifyURLs: true
}))
.pipe(dest('./public'))
};
function css() {
return src('./public/**/*.css')
.pipe(cleanCSS())
.pipe(dest('./public'))
};
function js() {
return src('public/**/*.js')
.pipe(uglify())
.pipe(dest('./public'))
}
exports.default = parallel(html, css, js);

964
_config.fluid.yml Normal file
View File

@ -0,0 +1,964 @@
#---------------------------
# Hexo Theme Fluid
# Author: Fluid-dev
# Github: https://github.com/fluid-dev/hexo-theme-fluid
#
# 配置指南: https://hexo.fluid-dev.com/docs/guide/
# 你可以从指南中获得更详细的说明
#
# Guide: https://hexo.fluid-dev.com/docs/en/guide/
# You can get more detailed help from the guide
#---------------------------
#---------------------------
# 全局
# Global
#---------------------------
# 用于浏览器标签的图标
# Icon for browser tab
favicon: /images/img/favicon.webp
# 用于苹果设备的图标
# Icon for Apple touch
apple_touch_icon: /images/img/apple-touch-icon.webp
# 浏览器标签页中的标题分隔符,效果: 文章名 - 站点名
# Title separator in browser tab, eg: article - site
title_join_string: " - "
# 强制所有链接升级为 HTTPS适用于图片等资源出现 HTTP 混入报错)
# Force all links to be HTTPS (applicable to HTTP mixed error)
force_https: false
# 代码块的增强配置
# Enhancements to code blocks
code:
# 是否开启复制代码的按钮
# Enable copy code button
copy_btn: true
# 代码高亮
# Code highlight
highlight:
enable: true
# 代码块是否显示行号
# If true, the code block display line numbers
line_number: false
# 实现高亮的库,对应下面的设置
# Highlight library
# Options: highlightjs | prismjs
lib: "highlightjs"
highlightjs:
# 在链接中挑选 style 填入
# Select a style in the link
# See: https://highlightjs.org/static/demo/
style: "Github Gist"
# 是否根据 style 改变代码背景色(如果 style 是深色背景别忘了开启此项)
# If true, the code background will change color based on the style (If style has a dark background, don't forget to true)
bg_color: false
prismjs:
# 在下方链接页面右侧的圆形按钮挑选 style 填入,也可以直接填入 css 链接
# Select the style button on the right side of the link page, you can also set the CSS link
# See: https://prismjs.com/
style: "default"
# 设为 true 高亮将本地静态生成(并只支持部分 prismjs 插件),设为 false 高亮将在浏览器通过 js 生成
# If true, it will be generated locally (but some prismjs plugins are not supported). If false, it will be generated via JS in the browser
preprocess: true
# 一些好玩的功能
# Some fun features
fun_features:
# 为 subtitle 添加打字机效果
# Typing animation for subtitle
typing:
enable: true
# 打印速度,数字越大越慢
# Typing speed, the larger the number, the slower
typeSpeed: 70
# 游标字符
# Cursor character
cursorChar: "❤"
# 是否循环播放效果
# If true, loop animation
loop: false
# 为文章内容中的标题添加锚图标
# Add an anchor icon to the title on the post page
anchorjs:
enable: true
element: h1,h2,h3,h4,h5,h6
placement: right
# Options: hover | always | touch
visible: hover
# Option§ | # | ❡
icon: ""
# 加载进度条
# Progress bar when loading
progressbar:
enable: true
height_px: 3
color: "#29d"
# See: https://github.com/rstacruz/nprogress
options: { showSpinner: false, trickleSpeed: 100 }
# 主题暗色模式,开启后菜单中会出现切换按钮,用户浏览器会存储切换选项,并且会遵循 prefers-color-scheme 自动切换
# Theme dark mode. If enable, a switch button will appear on the menu, each of the visitor's browser will store his switch option
dark_mode:
enable: true
# 默认的选项(当用户手动切换后则不再按照默认模式),选择 `auto` 会优先遵循 prefers-color-scheme其次按用户本地时间 18 点到次日 6 点之间进入暗色模式
# Default option (when the visitor switches manually, the default mode is no longer followed), choosing `auto` will give priority to prefers-color-scheme, and then enter the dark mode from 18:00 to 6:00 in the visitors local time
# Options: auto | light | dark
default: auto
# 主题颜色配置,其他不生效的地方请使用自定义 css 解决,配色可以在下方链接中获得启发
# Theme color, please use custom CSS to solve other colors, color schema can be inspired by the links below
# See: https://www.webdesignrankings.com/resources/lolcolors/
color:
# body 背景色
# Color of body background
body_bg_color: "#eee"
# 暗色模式下的 body 背景色,下同
# Color in dark mode, the same below
body_bg_color_dark: "#181c27"
# 顶部菜单背景色
# Color of navigation bar background
navbar_bg_color: "#9DC8C8"
navbar_bg_color_dark: "#1f3144"
# 顶部菜单字体色
# Color of navigation bar text
navbar_text_color: "#fff"
navbar_text_color_dark: "#d0d0d0"
# 全局字体色
# Color of global text
text_color: "#3c4858"
text_color_dark: "#c4c6c9"
# 全局次级字体色(摘要、简介等位置)
# Color of global secondary text (excerpt, introduction, etc.)
sec_text_color: "#718096"
sec_text_color_dark: "#a7a9ad"
# 文章正文字体色
# Color of post text
post_text_color: "#2c3e50"
post_text_color_dark: "#c4c6c9"
# 文章正文字体色h1 h2 h3...
# Color of Article heading (h1 h2 h3...)
post_heading_color: "#1a202c"
post_heading_color_dark: "#c4c6c9"
# 文章超链接字体色
# Color of post link
post_link_color: "#0366d6"
post_link_color_dark: "#1589e9"
# 超链接悬浮时字体色
# Color of link when hovering
link_hover_color: "#30a9de"
link_hover_color_dark: "#30a9de"
# 超链接悬浮背景色
# Color of link background when hovering
link_hover_bg_color: "#f8f9fa"
link_hover_bg_color_dark: "#364151"
# 主面板背景色
# Color of main board
board_color: "#fff"
board_color_dark: "#252d38"
# 主题字体配置
# Font
font:
font_size: 16px
font_family:
code_font_size: 85%
# 指定自定义 .js 文件路径,支持列表;路径是相对 source 目录,如 /js/custom.js 对应存放目录 source/js/custom.js
# Specify the path of your custom js file, support list. The path is relative to the source directory, such as `/js/custom.js` corresponding to the directory `source/js/custom.js`
custom_js: /js/xfy.js
# 指定自定义 .css 文件路径,用法和 custom_js 相同
# The usage is the same as custom_js
custom_css: /css/xfy.css
# 自定义底部 HTML 内容(位于 footer 上方),注意不要和 `post: custom` 配置冲突
# Customize the HTML content at the bottom (located above the footer), be careful not to conflict with `post: custom`
custom_html: ''
# 网页访问统计
# Analysis of website visitors
web_analytics: # 网页访问统计
enable: false
# 百度统计的 Key值需要获取下方链接中 `hm.js?` 后边的字符串
# Baidu analytics, get the string behind `hm.js?`
# See: https://tongji.baidu.com/sc-web/10000033910/home/site/getjs?siteId=13751376
baidu:
# Google 统计的 Tracking ID
# Google analytics, set Tracking ID
# See: https://developers.google.com/analytics/devguides/collection/analyticsjs
google:
# Google gtag.js 的媒体资源 ID
# Google gtag.js GA_MEASUREMENT_ID
# See: https://developers.google.com/analytics/devguides/collection/gtagjs/
gtag:
# 腾讯统计的 H5 App ID开启高级功能才有cid
# Tencent analytics, set APP ID
# See: https://mta.qq.com/h5/manage/ctr_app_manage
tencent:
sid:
cid:
# 51.la 站点统计 ID
# 51.la analytics
# See: https://www.51.la/user/site/index
woyaola: # 51.la 站点统计 ID参见
# 友盟/cnzz 站点统计 web_id
# cnzz analytics
# See: https://web.umeng.com/main.php?c=site&a=show
cnzz:
# LeanCloud 计数统计,可用于 PV UV 展示,如果 `web_analytics: enable` 没有开启PV UV 展示只会查询不会增加
# LeanCloud count statistics, which can be used for PV UV display. If `web_analytics: enable` is false, PV UV display will only query and not increase
leancloud:
app_id:
app_key:
# REST API 服务器地址,国际版不填
# Only the Chinese mainland users need to set
server_url:
# 对页面中的图片进行懒加载处理,可见范围外的图片不会加载
# Lazy loading of images on the page
lazyload:
enable: true
# 懒加载仅对文章页生效,开启后如果自定义页面需要使用,可以在 Front-matter 里指定 `lazyload: true`
# If true, only enable lazyload on the post page. For custom pages, you can set 'lazyload: true' in front-matter
onlypost: false
# 主题版本相关
# Theme version
version:
# 每次生成页面后,检测主题是否为最新版本
# If true, check whether Fluid is the latest version after hexo generate
check: false
#---------------------------
# 页头
# Header
#---------------------------
# 导航栏的相关配置
# Navigation bar
navbar:
# 导航栏左侧的标题,为空则按 hexo config 中 `title` 显示
# The title on the left side of the navigation bar. If empty, it is based on `title` in hexo config
blog_title:
# 导航栏毛玻璃特效,实验性功能,可能会造成页面滚动掉帧和抖动,部分浏览器不支持会自动不生效
# Navigation bar frosted glass special animation. It is an experimental feature
ground_glass:
enable: true
# 模糊像素,只能为数字,数字越大模糊度越高
# Number of blurred pixel. the larger the number, the higher the blur
px: 3
# 不透明度,数字越大透明度越低,注意透明过度可能看不清菜单字体
# Ratio of opacity, 1.0 is completely opaque
# available: 0 - 1.0
alpha: 0.7
# 导航栏菜单可自行增减key 用来关联 languages/*.yml如不存在关联则显示 key 本身的值icon 是 css class可以省略增加 name 可以强制显示指定名称
# Navigation bar menu. `key` is used to associate languages/*.yml. If there is no association, the value of `key` itself will be displayed; if `icon` is a css class, it can be omitted; adding `name` can force the display of the specified name
menu:
# - { key: 'home', link: '/', icon: 'iconfont icon-home-fill' }
# - {
# key: '索引',
# icon: 'iconfont icon-books',
# submenu: [
# { key: 'category', link: '/categories/', icon: 'iconfont icon-category-fill' },
# { key: 'tag', link: '/tags/', icon: 'iconfont icon-tags-fill' }
# ]
# }
# - { key: 'archive', link: '/archives/', icon: 'iconfont icon-archive-fill' }
# - { key: 'about', link: '/about/', icon: 'iconfont icon-user-fill' }
# - { key: '小伙伴', link: '/links/', icon: 'iconfont icon-link-fill' }
# - { key: 'PGP', link: '/pgp/', icon: 'iconfont icon-clipcheck' }
- { key: '🏠 首页', link: '/', icon: '' }
- {
key: '📕 索引',
icon: '',
submenu: [
{ key: '🎁 分类 ', link: '/categories/', icon: '' },
{ key: '🎐 标签', link: '/tags/', icon: '' }
]
}
- { key: '📂 归档', link: '/archives/', icon: '' }
- { key: '🎃 关于', link: '/about/', icon: '' }
- { key: '🙆‍♀️ 小伙伴', link: '/links/', icon: '' }
- { key: '🔐 PGP', link: '/pgp/', icon: '' }
# 搜索功能,基于 hexo-generator-search 插件,若已安装其他搜索插件请关闭此功能,以避免生成多余的索引文件
# Search feature, based on hexo-generator-search. If you have installed other search plugins, please disable this feature to avoid generating redundant index files
search:
enable: true
# 搜索索引文件的路径,可以是相对路径或外站的绝对路径
# Path for search index file, it can be a relative path or an absolute path
path: /xml/local-search.xml
# 文件生成在本地的位置,必须是相对路径
# The location where the index file is generated locally, it must be a relative location
generate_path: /xml/local-search.xml
# 搜索的范围
# Search field
# Options: post | page | all
field: post
# 搜索是否扫描正文
# If true, search will scan the post content
content: true
# 首屏图片的相关配置
# Config of the big image on the first screen
banner:
# 视差滚动,图片与板块会随着屏幕滚动产生视差效果
# Scrolling parallax
parallax: true
# 图片最小的宽高比,以免图片两边被过度裁剪,适用于移动端竖屏时,如需关闭设为 0
# Minimum ratio of width to height, applicable to the vertical screen of mobile device, if you need to close it, set it to 0
width_height_ratio: 1.0
# 向下滚动的箭头
# Scroll down arrow
scroll_down_arrow:
enable: true
# 头图高度不小于指定比例,才显示箭头
# Only the height of the banner image is greater than the ratio, the arrow is displayed
# Available: 0 - 100
banner_height_limit: 90
# 翻页后自动滚动
# Auto scroll after page turning
scroll_after_turning_page: true
# 向顶部滚动的箭头
# Scroll top arrow
scroll_top_arrow:
enable: true
#---------------------------
# 页脚
# Footer
#---------------------------
footer:
# 页脚第一行文字的 HTML建议保留 Fluid 的链接,用于向更多人推广本主题
# HTML of the first line of the footer, it is recommended to keep the Fluid link to promote this theme to more people
content: '
<a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a>
<i class="iconfont icon-love"></i>
<a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a>
'
# 展示网站的 PV、UV 统计数
# Display website PV and UV statistics
statistics:
enable: false
# 统计数据来源,如果使用 leancloud 需要设置 `web_analytics: leancloud` 中的参数;如果使用 busuanzi 可能会有请求失败的情况
# Data source. If use leancloud, you need to set the parameter in `web_analytics: leancloud`
# Options: busuanzi | leancloud
source: "busuanzi"
# 页面显示的文本,{}是数字的占位符(必须包含),下同
# Displayed text, {} is a placeholder for numbers (must be included), the same below
pv_format: "总访问量 {} 次"
uv_format: "总访客数 {} 人"
# 国内大陆服务器的备案信息
# For Chinese mainland website policy, other areas keep disable
beian:
enable: true
# ICP证号
icp_text: 皖ICP备17017808号
# 公安备案号不填则只显示ICP
police_text:
# 公安备案的编号用于URL跳转查询
police_code: 17017808
# 公安备案的图片. 为空时不显示备案图片
police_icon: /img/police_beian.webp
#---------------------------
# 首页
# Home Page
#---------------------------
index:
# 首页 Banner 头图,可以是相对路径或绝对路径,以下相同
# Path of Banner image, can be a relative path or an absolute path, the same on other pages
banner_img: /images/img/index.webp
# 头图高度,屏幕百分比
# Height ratio of banner image
# Available: 0 - 100
banner_img_height: 90
# 头图黑色蒙版的不透明度available: 0 - 1.0 1 是完全不透明
# Opacity of the banner mask, 1.0 is completely opaque
# Available: 0 - 1.0
banner_mask_alpha: 0.3
# 首页副标题的独立设置
# Independent config of home page subtitle
slogan:
enable: true
# 为空则按 hexo config.subtitle 显示
# If empty, text based on `subtitle` in hexo config
text:
# 通过 API 接口作为首页副标题的内容,必须返回的是 JSON 格式,如果请求失败则按 text 字段显示,该功能必须先开启 typing 打字机功能
# Subtitle of the homepage through the API, must be returned a JSON. If the request fails, it will be displayed in `text` value. This feature must first enable the typing animation
api:
enable: false
# 请求地址
# Request url
url: ""
# 请求方法
# Request method
# Available: GET | POST | PUT
method: "GET"
# 请求头
# Request headers
headers: {}
# 从请求结果获取字符串的取值字段,最终必须是一个字符串,例如返回结果为 {"data": {"author": "fluid", "content": "An elegant theme"}}, 则取值字段为 ['data', 'content'];如果返回是列表则自动选择第一项
# The value field of the string obtained from the response. For example, the response content is {"data": {"author": "fluid", "content": "An elegant theme"}}, the expected `keys: ['data','content']`; if the return is a list, the first item is automatically selected
keys: []
# 自动截取文章摘要
# Auto extract post
auto_excerpt:
enable: true
# 打开文章的标签方式
# The browser tag to open the post
# Available: _blank | _self
post_url_target: _self
# 是否显示文章信息(时间、分类、标签)
# Meta information of post
post_meta:
date: true
category: true
tag: true
# 文章通过 sticky 排序后,在首页文章标题前显示图标
# If the posts are sorted by `sticky`, an icon is displayed in front of the post title
post_sticky:
enable: true
icon: "iconfont icon-top"
#---------------------------
# 文章页
# Post Page
#---------------------------
post:
banner_img: /images/img/post.webp
banner_img_height: 75
banner_mask_alpha: 0.3
# 文章在首页的默认封面图,当没有指定 index_img 时会使用该图片,若两者都为空则不显示任何图片
# Path of the default post cover when `index_img` is not set. If both are empty, no image will be displayed
default_index_img:
# 文章标题下方的元信息
# Meta information below title
meta:
# 作者,优先根据 front-matter 里 author 字段,其次是 hexo 配置中 author 值
# Author, based on `author` field in front-matter, if not set, based on `author` value in hexo config
author:
enable: true
# 文章日期,优先根据 front-matter 里 date 字段,其次是 md 文件日期
# Post date, based on `date` field in front-matter, if not set, based on create date of .md file
date:
enable: true
# 格式参照 ISO-8601 日期格式化
# ISO-8601 date format
# See: http://momentjs.cn/docs/#/parsing/string-format/
format: "LL a"
# 字数统计
# Word count
wordcount:
enable: true
# 显示的文本,{}是数字的占位符(必须包含),下同
# Displayed text, {} is a placeholder for numbers (must be included), the same below
format: "{} 字"
# 估计阅读全文需要的时长
# Estimate the time required to read the full text
min2read:
enable: true
format: "{} 分钟"
# 每分钟阅读多少字,如果是技术文章,建议降低
# Words read per minute
words: 100
# 浏览量计数
# Number of visits
views:
enable: false
# 统计数据来源
# Data Source
# Options: busuanzi | leancloud
source: "busuanzi"
format: "{} 次"
# 在文章开头显示文章更新时间,该时间默认是 md 文件更新时间,可通过 front-matter 中 `updated` 手动指定(和 date 一样格式)
# Update date is displayed at the beginning of the post. The default date is the update date of the md file, which can be manually specified by `updated` in front-matter (same format as date)
updated:
enable: true
# 描述文字
# Descriptive text before date
content: 本文最后水于:
# 是否使用相对时间表示,比如:"3 天前"
# If true, it will be a relative time, such as: "3 days ago"
relative: false
# 文章右侧目录
# Table of contents (TOC)
toc:
enable: true
# 目录会选择这些节点作为标题
# TOC will select these nodes as headings
headingSelector: "h1,h2,h3,h4,h5,h6"
# 层级的折叠深度0 是全部折叠,大于 0 后如果存在下级标题则默认展开
# Collapse depth. If 0, all headings collapsed. If greater than 0, it will be expanded by default if there are sub headings
collapseDepth: 3
# 版权声明,会显示在每篇文章的结尾
# Copyright, will be displayed at the end of each post
copyright:
enable: true
content: '<a href="https://zh.wikipedia.org/wiki/Wikipedia:CC_BY-SA_3.0%E5%8D%8F%E8%AE%AE%E6%96%87%E6%9C%AC" rel="nofollow noopener">CC BY-SA 3.0❤</a> '
# 文章底部上一篇下一篇功能
# Link to previous/next post
prev_next:
enable: true
# 文章底部自定义区域(位于 footer 上方),支持 HTML可插入赞赏码、公众号这类内容内容
# Custom content at the bottom of the post page (located above the footer)
custom:
enable: false
content: '<img src="https://octodex.github.com/images/jetpacktocat.png" class="rounded mx-auto d-block mt-5" style="width:150px; height:150px;">'
# 文章图片可点击放大
# Zoom feature of images
image_zoom:
enable: true
# 脚注语法,会在文章底部生成脚注,如果 Markdown 渲染器本身支持,则建议关闭,否则可能会冲突
# Support footnote syntax, footnotes will be generated at the bottom of the post page. If the Markdown renderer itself supports it, please disable it, otherwise it may conflict
footnote:
enable: true
# 脚注的节标题,也可以在 front-matter 中通过 `footnote: <h2>Reference</h2>` 这种形式修改单独页面的 header
# The section title of the footnote, you can also modify the header of a single page in the form of `footnote: <h2>Reference</h2>` in front-matter
header: ''
# 数学公式,开启之前需要更换 Markdown 渲染器否则复杂公式会有兼容问题具体请见https://hexo.fluid-dev.com/docs/guide/##latex-数学公式
# Mathematical formula. If enable, you need to change the Markdown renderer, see: https://hexo.fluid-dev.com/docs/en/guide/#math
math:
# 开启后文章默认可用,自定义页面如需使用,需在 Front-matter 中指定 `math: true`
# If you want to use math on the custom page, you need to set `math: true` in Front-matter
enable: true
# 开启后,只有在文章 Front-matter 里指定 `math: true` 才会在文章页启动公式转换,以便在页面不包含公式时提高加载速度
# If true, only set `math: true` in Front-matter will enable math, to load faster when the page does not contain math
specific: true
# Options: mathjax | katex
engine: mathjax
# 流程图,基于 mermaid-js具体请见https://hexo.fluid-dev.com/docs/guide/#mermaid-流程图
# Flow chart, based on mermaid-js, see: https://hexo.fluid-dev.com/docs/en/guide/#mermaid
mermaid:
# 开启后文章默认可用,自定义页面如需使用,需在 Front-matter 中指定 `mermaid: true`
# If you want to use mermaid on the custom page, you need to set `mermaid: true` in Front-matter
enable: true
# 开启后,只有在文章 Front-matter 里指定 `mermaid: true` 才会在文章页启动公式转换,以便在页面不包含公式时提高加载速度
# If true, only set `mermaid: true` in Front-matter will enable mermaid, to load faster when the page does not contain mermaid
specific: false
# See: http://mermaid-js.github.io/mermaid/
options: { theme: 'default' }
# 评论插件
# Comment plugin
comments:
enable: true
# 指定的插件,需要同时设置对应插件的必要参数
# The specified plugin needs to set the necessary parameters at the same time
# Options: utterances | disqus | gitalk | valine | waline | changyan | livere | remark42 | twikoo
type: valine
#---------------------------
# 评论插件
# Comment plugins
#
# 开启评论需要先设置上方 `post: comments: enable: true`,然后根据 `type` 设置下方对应的评论插件参数
# Enable comments need to be set `post: comments: enable: true`, then set the corresponding comment plugin parameters below according to `type`
#---------------------------
# Utterances
# 基于 GitHub Issues
# Based on GitHub Issues
# See: https://utteranc.es
utterances:
repo:
issue_term: pathname
label: utterances
theme: github-light
theme_dark: github-dark
crossorigin: anonymous
# Disqus
# 基于第三方的服务,国内用户直接使用容易被墙,建议配合 Disqusjs
# Based on third-party service
# See: https://disqus.com
disqus:
shortname: defectink
# 以下为 Disqusjs 支持, 国内用户如果想使用 Disqus 建议配合使用
# The following are Disqusjs configurations, please ignore if DisqusJS is not required
# See: https://github.com/SukkaW/DisqusJS
disqusjs: true
apikey: uLPmTxSU1b8Ty8a8tpXZzlBl1NaURmrJFI5RDyIerCl38c7wqJhNDRwPypGaYe8x
# Gitalk
# 基于 GitHub Issues
# Based on GitHub Issues
# See: https://github.com/gitalk/gitalk#options
gitalk:
clientID:
clientSecret:
repo:
owner:
admin: ['name']
language: zh-CN
labels: ['Gitalk']
perPage: 10
pagerDirection: last
distractionFreeMode: false
createIssueManually: true
# Valine
# 基于 LeanCloud
# Based on LeanCloud
# See: https://valine.js.org/configuration.html
valine:
appid: dD9t7mcIBVzJWag5ez6GPy2v-MdYXbMMI
appkey: bWG6pmKsEscrH4JjrpNNAAy6
placeholder: 嘤嘤嘤???
path: window.location.pathname
avatar: retro
meta: ['nick', 'mail', 'link']
pageSize: 10
lang: zh-CN
highlight: true
recordIP: false
serverURLs:
# Waline
# 一款从 Valine 衍生的带后端的评论插件
# A comment plugin with backend derived from Valine
# See: https://waline.js.org/
waline:
serverURL: ''
placeholder: 说点什么
path: window.location.pathname
avatar: retro
meta: ['nick', 'mail', 'link']
pageSize: 10
lang: zh-CN
highlight: true
avatarForce: false
requiredFields: []
emojiCDN: ''
emojiMaps: {}
# 畅言 Changyan
# 基于第三方的服务
# Based on third-party service, insufficient support for regions outside China
# http://changyan.kuaizhan.com
changyan:
appid: ''
appkey: ''
# 来必力 Livere
# 基于第三方的服务
# Based on third-party service
# See: https://www.livere.com
livere:
uid: ''
# Remark42
# 需要自己运行后端服务
# Need to run the backend service yourself
# See: https://remark42.com
remark42:
host:
site_id:
max_shown_comments: 10
locale: zh
# Twikoo
# 基于腾讯云开发
# Based on Tencent CloudBase
# See: https://twikoo.js.org
twikoo:
env_id:
#---------------------------
# 归档页
# Archive Page
#---------------------------
archive:
banner_img: /images/img/Sensei_sakura.webp
banner_img_height: 90
banner_mask_alpha: 0.3
subtitle:
#---------------------------
# 分类页
# Category Page
#---------------------------
category:
enable: true
banner_img: /images/img/category.webp
banner_img_height: 80
banner_mask_alpha: 0.3
subtitle:
# 单个分类中折叠展示文章数的最大值,超过限制会显示 More
# The maximum number of posts in a single category. If the limit is exceeded, it will be displayed More
post_limit: 10
# 排序字段前面带减号是倒序不带减号是正序可选项name | length
# Sort field, with a minus sign is reverse order
# Options: name | length
order_by: "-length"
# 层级的折叠深度0 是全部折叠,大于 0 后如果存在子分类则默认展开
# Collapse depth. If 0, all posts collapsed. If greater than 0, it will be expanded by default if there are subcategories
collapse_depth: 0
#---------------------------
# 标签页
# Tag Page
#---------------------------
tag:
enable: true
banner_img: /images/img/tags.webp
banner_img_height: 80
banner_mask_alpha: 0.3
subtitle:
tagcloud:
min_font: 15
max_font: 30
unit: px
start_color: "#BBBBEE"
end_color: "#337ab7"
#---------------------------
# 关于页
# About Page
#---------------------------
about:
enable: true
banner_img: /images/img/about.webp
banner_img_height: 90
banner_mask_alpha: 0.3
subtitle: 嘤嘤嘤
avatar: /images/img/avatar.webp
name: Defectink
introduce: "!@#$%^&*"
# 更多图标可从 https://hexo.fluid-dev.com/docs/icon/ 查找,`class` 代表图标的 css class添加 `qrcode` 后,图标不再是链接而是悬浮二维码
# More icons can be found from https://hexo.fluid-dev.com/docs/en/icon/ `class` is the css class of the icon. If adding `qrcode`, The icon is no longer a link, but a hovering QR code
icons:
- { class: 'iconfont icon-github-fill', link: 'https://github.com/DefectingCat' }
- { class: 'iconfont icon-twitter-fill', link: 'https://twitter.com/Defect___' }
- { class: 'iconfont icon-telegram-fill', link: 'https://t.me/Defectink' }
- { class: 'iconfont icon-mail', link: 'mailto:i@defect.ink' }
- { class: 'iconfont icon-wechat-fill', qrcode: '/images/img/qrcode.webp' }
#---------------------------
# 自定义页
# Custom Page
#
# 通过 hexo new page 命令创建的页面
# Custom Page through `hexo new page`
#---------------------------
page:
banner_img: /images/img/post.webp
banner_img_height: 90
banner_mask_alpha: 0.3
#---------------------------
# 404页
# 404 Page
#---------------------------
page404:
enable: true
banner_img: /images/img/Sensei_dark.webp
banner_img_height: 100
banner_mask_alpha: 0.3
subtitle: "Page not found"
#---------------------------
# 友链页
# Links Page
#---------------------------
links:
enable: true
banner_img: /images/img/friend.webp
banner_img_height: 90
banner_mask_alpha: 0.3
subtitle: 小伙伴
# 友链的成员项
# Member item of page
items:
- {
title: '非常医学生',
intro: '以医德观人生。',
link: 'https://www.cunzher.cn',
image: 'https://ypcdnsave.cunzher.cn/img/logo.png'
}
- {
title: 'Zeroの日常',
intro: '嘤嘤嘤',
link: 'https://mikuac.com/',
image: 'https://mikuac.com/images/zero.png'
}
- {
title: 'Feng''blog',
intro: '嘤嘤嘤',
link: 'https://1984n.win',
image: 'https://cdn.v2ex.com/gravatar/bf7a5bd302ccc8021d13d77bd09c9310?s=100&r=g'
}
- {
title: 'Locyoo',
intro: '嘤嘤嘤',
link: 'https://blog.locyoo.com',
image: '/images/img/backup.webp'
}
- {
title: '萌萌哒の柯基',
intro: '仰望大佬的菜鸡〒▽〒',
link: 'https://www.heroyf.club/',
image: 'https://cdn.defectink.com/images/20200924163805.png'
}
#---------------------------
# 以下是配置 JS CSS 等静态资源的 URL 前缀,可以自定义成 CDN 地址,
# 默认的 jsDelivr CDN 可能在部分地区无法访问,如果需要修改,最好使用与默认配置相同的版本,以避免潜在的问题,
# ** 如果你不知道如何设置,请不要做任何改动 **
#
# Here is the url prefix to configure the static assets. Set CDN addresses you want to customize.
# Be aware that you would better use the same version as default ones to avoid potential problems.
# DO NOT EDIT THE FOLLOWING SETTINGS UNLESS YOU KNOW WHAT YOU ARE DOING
#---------------------------
static_prefix:
# 内部静态
# Internal static
internal_js: /js
internal_css: /css
internal_img: /images/img
# 图标库,包含了大量社交类图标,主题依赖的不包含在内,因此可自行修改,详见 https://hexo.fluid-dev.com/docs/icon/
# Icon library, which includes many social icons, does not include those theme dependent, so your can modify link by yourself. See: https://hexo.fluid-dev.com/docs/en/icon/
iconfont: //at.alicdn.com/t/font_1736178_kmeydafke9r.css
anchor: https://cdn.jsdelivr.net/npm/anchor-js@4.3.0/
github_markdown: https://cdn.jsdelivr.net/npm/github-markdown-css@4.0.0/
jquery: https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/
bootstrap: https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/
highlightjs: https://cdn.jsdelivr.net/npm/highlight.js@10.4.0/
prismjs: https://cdn.jsdelivr.net/npm/prismjs@1.22.0/
tocbot: https://cdn.jsdelivr.net/npm/tocbot@4.12.0/dist/
typed: https://cdn.jsdelivr.net/npm/typed.js@2.0.11/lib/
fancybox: https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/
nprogress: https://cdn.jsdelivr.net/npm/nprogress@0.2.0/
mathjax: https://cdn.jsdelivr.net/npm/mathjax@3.1.2/es5/
katex: https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/
busuanzi: https://busuanzi.ibruce.info/busuanzi/2.3/
clipboard: https://cdn.jsdelivr.net/npm/clipboard@2.0.6/dist/
mermaid: https://cdn.jsdelivr.net/npm/mermaid@8.8.3/dist/
valine: https://cdn.jsdelivr.net/npm/valine@1.4.14/dist/
waline: https://cdn.jsdelivr.net/npm/@waline/client@0.4.2/dist/
gitalk: https://cdn.jsdelivr.net/npm/gitalk@1.7.0/dist/
disqusjs: https://cdn.jsdelivr.net/npm/disqusjs@1.0/dist/
twikoo: https://cdn.jsdelivr.net/npm/twikoo@0.1.15/dist/
hint: /lib/hint/

136
_config.yml Normal file
View File

@ -0,0 +1,136 @@
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/
# Site
title: 🍭Defectink
subtitle: '只要心还在跳'
description: ''
keywords:
author: Defectink
language: zh-CN
timezone: ''
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://www.defectink.com
root: /
permalink: defect/:url.html
permalink_defaults:
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
trailing_html: true # Set to false to remove trailing '.html' from permalinks
# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:
# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
enable: false
line_number: false
auto_detect: false
tab_replace: ''
wrap: true
hljs: false
# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
path: ''
per_page: 10
order_by: -date
archive_generator:
per_page: 0
# Category & Tag
default_category: uncategorized
category_map:
tag_map:
# Metadata elements
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
meta_generator: true
# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss
## Use post's date for updated date unless set in front-matter
use_date_for_updated: false
# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page
# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
exclude:
ignore:
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: fluid
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: 'git'
repo: git@github.com:DefectingCat/DefectingCat.github.io.git
branch: gh-pages
message:
- type: 'git'
repo: git@e.coding.net:Defectink/blog/blog.git
branch: gh-pages
message:
# feed
feed:
type:
- atom
- rss2
path:
- /xml/atom.xml
- /xml/rss.xml
limit: 20
hub:
content:
content_limit: 140
content_limit_delim: ' '
order_by: -date
icon: icon.png
autodiscovery: true
template:
# sitemap
sitemap:
path: /xml/sitemap.xml
template: ./source/_data/sitemap_template.xml
rel: false
tags: true
categories: true

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,3 +0,0 @@
<!DOCTYPE html><html lang="zh-CN" data-default-color-scheme="&#34;auto&#34;"><head><meta charset="UTF-8"><link rel="apple-touch-icon" sizes="76x76" href="/images/img/apple-touch-icon.webp"><link rel="icon" type="image/png" href="/images/img/favicon.webp"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="theme-color" content="#9DC8C8"><meta name="description" content=""><meta name="author" content="Defectink"><meta name="keywords" content=""><title>分类 - 实践 - 🍭Defectink</title><link rel="stylesheet" href="https://cdn.defectink.com/static/twitter-bootstrap/4.5.3/css/bootstrap.min.css"><link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_ba1fz6golrf.css"><link rel="stylesheet" href="https://cdn.defectink.com/static/t/font_1736178_kmeydafke9r.css"><link rel="stylesheet" href="/css/main.css"><link rel="stylesheet" href="/css/xfy.css"><script src="/js/utils.js"></script><script src="/js/color-schema.js"></script><meta name="generator" content="Hexo 5.2.0"><link rel="alternate" href="/xml/atom.xml" title="🍭Defectink" type="application/atom+xml"><link rel="alternate" href="/xml/rss.xml" title="🍭Defectink" type="application/rss+xml"></head><body><header style="height:80vh"><nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar"><div class="container"><a class="navbar-brand" href="/">&nbsp;<strong>🍭Defectink</strong>&nbsp;</a> <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><div class="animated-icon"><span></span><span></span><span></span></div></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav ml-auto text-center"><li class="nav-item"><a class="nav-link" href="/">🏠 首页</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">📕 索引</a><div class="dropdown-menu" aria-labelledby="navbarDropdown"><a class="dropdown-item" href="/categories/">🎁 分类</a> <a class="dropdown-item" href="/tags/">🎐 标签</a></div></li><li class="nav-item"><a class="nav-link" href="/archives/">📂 归档</a></li><li class="nav-item"><a class="nav-link" href="/about/">🎃 关于</a></li><li class="nav-item"><a class="nav-link" href="/links/">🙆‍♀️ 小伙伴</a></li><li class="nav-item"><a class="nav-link" href="/pgp/">🔐 PGP</a></li><li class="nav-item" id="search-btn"><a class="nav-link" data-toggle="modal" data-target="#modalSearch">&nbsp;<i class="iconfont icon-search"></i>&nbsp;</a></li><li class="nav-item" id="color-toggle-btn"><a class="nav-link" href="javascript:">&nbsp;<i class="iconfont icon-dark" id="color-toggle-icon"></i>&nbsp;</a></li></ul></div></div></nav><div class="banner intro-2" id="background" parallax="true" style="background:url(/images/img/category.webp) no-repeat center center;background-size:cover"><div class="full-bg-img"><div class="mask flex-center" style="background-color:rgba(0,0,0,.3)"><div class="container page-header text-center fade-in-up"><span class="h2" id="subtitle"></span></div></div></div></div></header><main><div class="container nopadding-md"><div class="py-5" id="board"><div class="container"><div class="row"><div class="col-12 col-md-10 m-auto"><div class="list-group"><p class="h4">共计 13 篇文章</p><hr><p class="h5">2018</p><a href="/defect/hexo-again.html" class="list-group-item list-group-item-action"><span class="archive-post-title">想起来当年还折腾过hexo</span> <time style="float:right">06-29</time></a><p class="h5">2017</p><a href="/defect/hexo-and-github.html" class="list-group-item list-group-item-action"><span class="archive-post-title">Hexo and Github</span> <time style="float:right">09-14</time></a> <a href="/defect/hexo.html" class="list-group-item list-group-item-action"><span class="archive-post-title">hexo</span> <time style="float:right">08-30</time></a></div><nav aria-label="navigation"><span class="pagination" id="pagination"><a class="extend prev" rel="prev" href="/categories/%E5%AE%9E%E8%B7%B5/"><i class="iconfont icon-arrowleft"></i></a> <a class="page-number" href="/categories/%E5%AE%9E%E8%B7%B5/">1</a><span class="page-number current">2</span></span></nav><script>for (ele of document.getElementById("pagination").getElementsByTagName("a")) {
ele.href += '#board';
}</script></div></div></div></div></div></main><a id="scroll-top-button" href="#" role="button"><i class="iconfont icon-arrowup" aria-hidden="true"></i></a><div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true"><div class="modal-dialog modal-dialog-scrollable modal-lg" role="document"><div class="modal-content"><div class="modal-header text-center"><h4 class="modal-title w-100 font-weight-bold">搜索</h4><button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body mx-3"><div class="md-form mb-5"><input type="text" id="local-search-input" class="form-control validate"> <label data-error="x" data-success="v" for="local-search-input">关键词</label></div><div class="list-group" id="local-search-result"></div></div></div></div></div><footer class="text-center mt-5 py-3"><div class="footer-content"><a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a><i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a></div><div class="beian"><a href="http://beian.miit.gov.cn/" target="_blank" rel="nofollow noopener">皖ICP备17017808号</a></div></footer><script src="https://cdn.defectink.com/static/jquery/3.4.1/jquery.min.js"></script><script src="https://cdn.defectink.com/static/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script><script src="/js/debouncer.js"></script><script src="/js/main.js"></script><script src="/js/lazyload.js"></script><script defer="defer" src="https://cdn.defectink.com/static/clipboard.js/2.0.6/clipboard.min.js"></script><script src="/js/clipboard-use.js"></script><script src="/js/xfy.js"></script><script src="https://cdn.defectink.com/static/typed.js/2.0.11/typed.min.js"></script><script>var typed=new Typed("#subtitle",{strings:[" ","分类 - 实践&nbsp;"],cursorChar:"❤",typeSpeed:70,loop:!1});typed.stop(),$(document).ready(function(){$(".typed-cursor").addClass("h2"),typed.start()})</script><script src="/js/local-search.js"></script><script>var path="/xml/local-search.xml",inputArea=document.querySelector("#local-search-input");inputArea.onclick=function(){searchFunc(path,"local-search-input","local-search-result"),this.onclick=null}</script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
img{border-radius:.5rem;transition:all .5s;-webkit-transition:all .5;-ms-transition:all .5}img:hover{transition:all .5s;-webkit-transition:all .5s;-ms-transition:all .5s;transform:scale(1.05)}.markdown-body a{background-color:transparent;text-decoration:none;color:#00f4e8;transition:all .12s}.markdown-body li:hover{text-shadow:3px 3px 2px rgba(47,47,47,.341)}.markdown-body ol{counter-reset:xxx 0!important}.markdown-body ol li:before{content:counter(xxx,decimal) "."!important;counter-increment:xxx 1!important;position:absolute;font-family:'Comic Sans MS','Open Sans','Microsoft Yahei','Microsoft Yahei',-apple-system,sans-serif!important;color:#000;top:0;left:0;text-align:center;font-size:1.2em;opacity:.5;line-height:1.33;text-shadow:4px 4px 1px rgba(0,0,0,.1);-webkit-transition:.5s;transition:.5s}.markdown-body ol li:hover:before{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2);opacity:1;text-shadow:2px 2px 1px rgba(0,0,0,.1);-webkit-transition:.1s;transition:.1s}.markdown-body ol li{list-style:none;position:relative;padding:0 0 0 2.1em;margin:0 0 0 10px;text-shadow:0 0 0 rgba(0,0,0,.1);-webkit-transition:.12s;transition:.12s}.markdown-body ul li:before{position:absolute;content:'\2022';font-family:Arial;color:#000;top:0;left:0;text-align:center;font-size:1.5em;opacity:.5;line-height:1;text-shadow:4px 4px 1px rgba(0,0,0,.1);-webkit-transition:.5s;transition:.5s}.markdown-body ul li:hover:before{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2);opacity:1;text-shadow:2px 2px 1px rgba(0,0,0,.1);-webkit-transition:.1s;transition:.1s}.markdown-body ul li{list-style:none;position:relative;padding:0 0 0 1.5em;margin:0 0 0 10px;text-shadow:0 0 0 rgba(0,0,0,.1);-webkit-transition:.12s;transition:.12s}.note.note-warning{background-color:rgba(163,243,241,.631);border-color:#ff81c0!important}::selection{background:#a2f1f1;text-shadow:0 0 25px}.navbar .nav-item .nav-link{font-size:.9rem}.modal-dialog .modal-content{border-radius:.4rem}.markdown-body p>a>img,.markdown-body p>img{border-radius:.425rem}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{background:linear-gradient(to bottom,transparent 60%,rgba(189,202,219,.3) 0) no-repeat;width:auto;display:table;background-size:90%}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:0 solid #eaecef!important}::-webkit-scrollbar{width:8px;background-color:transparent}::-webkit-scrollbar-thumb{background-color:#a9a9a9;border-radius:10px}.v[data-class=v] .vwrap .vedit{position:relative;padding-top:10px;background:no-repeat right bottom url(https://cdn.defectink.com/static/images/iloli.gif);background-size:20%}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
!function(n,o,t){function e(){$(".markdown-body pre").each((function(){const n=$(this);n.find("code.mermaid").length>0||n.append('<button class="copy-btn" data-clipboard-snippet=""><i class="iconfont icon-copy"></i><span>Copy</span></button>')}));var n=new ClipboardJS(".copy-btn",{target:function(n){return n.previousElementSibling}});$(".copy-btn").addClass(function(){var n=$("div.hljs, pre");if(0===n.length)return"copy-btn-dark";var o=n.css("background-color").replace(/rgba*\(/,"").replace(")","").split(",");return.213*o[0]+.715*o[1]+.072*o[2]>127.5?"copy-btn-dark":"copy-btn-light"}()),n.on("success",(function(n){n.clearSelection();var o=n.trigger.outerHTML;n.trigger.innerHTML="Success",setTimeout((function(){n.trigger.outerHTML=o}),2e3)}))}var r=window.onload;window.onload=function(){r&&r(),e()}}(window,document);

View File

@ -1 +0,0 @@
!function(t,e){var r=e.documentElement;function o(t){try{return localStorage.getItem(t)}catch(t){return null}}function n(){var t=getComputedStyle(r).getPropertyValue("--color-mode");return"string"==typeof t?t.replace(/["'\s]/g,""):null}function a(){r.setAttribute("data-user-color-scheme",l()),function(t){try{localStorage.removeItem(t)}catch(t){}}("Fluid_Color_Scheme")}var c={dark:!0,light:!0};function l(){var t,e="string"==typeof(t=r.getAttribute("data-default-color-scheme"))?t.replace(/["'\s]/g,""):null;if(c[e])return e;if(e=n(),c[e])return e;var o=(new Date).getHours();return o>=18||o>=0&&o<=6?"dark":"light"}function i(n){var i=n||o("Fluid_Color_Scheme")||l();if(i===l())a();else{if(!c[i])return void a();r.setAttribute("data-user-color-scheme",i)}!function(t){if(c[t]){var r="icon-dark";t&&(r="icon-"+u[t]);var o=e.getElementById("color-toggle-icon");o?(o.setAttribute("class","iconfont "+r),o.setAttribute("data",u[t])):waitElementLoaded("color-toggle-icon",(function(){var o=e.getElementById("color-toggle-icon");o&&(o.setAttribute("class","iconfont "+r),o.setAttribute("data",u[t]))}))}}(i),function(r){t.REMARK42&&t.REMARK42.changeTheme(r);var o=e.querySelector("iframe");if(o){var n=t.UtterancesThemeLight;"dark"===r&&(n=t.UtterancesThemeDark);const e={type:"set-theme",theme:n};o.contentWindow.postMessage(e,"https://utteranc.es")}}(i)}var u={dark:"light",light:"dark"};function d(){var t=o("Fluid_Color_Scheme");if(c[t])t=u[t];else{if(null!==t)return;var r=e.getElementById("color-toggle-icon");r&&(t=r.getAttribute("data")),r&&c[t]||(t=u[n()])}return function(t,e){try{localStorage.setItem(t,e)}catch(t){}}("Fluid_Color_Scheme",t),t}i();var g=t.onload;t.onload=function(){g&&g();var t=e.getElementById("color-toggle-btn");t&&t.addEventListener("click",()=>{i(d())})}}(window,document);

View File

@ -1 +0,0 @@
function Debouncer(i){this.callback=i,this.ticking=!1}window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,Debouncer.prototype={constructor:Debouncer,update:function(){this.callback&&this.callback(),this.ticking=!1},requestTick:function(){this.ticking||(requestAnimationFrame(this.rafCallback||(this.rafCallback=this.update.bind(this))),this.ticking=!0)},handleEvent:function(){this.requestTick()}};

1
js/dist/xfy.dev.js vendored
View File

@ -1 +0,0 @@
"use strict";$(document).ready((function(){$("#comments").on("focus",".v[data-class=v] .vwrap .vedit",(function(){$(this).animate({"background-size":"0%"})})),$("#comments").on("blur",".v[data-class=v] .vwrap .vedit",(function(){$(this).animate({"background-size":"20%"})}))}));

View File

@ -1 +0,0 @@
!function(e,t){var n=void 0!==e&&"IntersectionObserver"in e,r=Array.prototype.slice.call(t.querySelectorAll("img[srcset]"));if(r&&0!==r.length)if(n){var o=new IntersectionObserver((function(e){e.forEach(({target:e,isIntersecting:t})=>{t&&(e.setAttribute("srcset",e.src),e.onload=e.onerror=()=>o.unobserve(e))})}),{threshold:[0],rootMargin:(e.innerHeight||t.documentElement.clientHeight)+"px"});r.map(e=>o.observe(e))}else{function i(e,t){var n=new Image,r=e.getAttribute("src");n.onload=function(){e.srcset=r,t&&t()},n.srcset=r}var c=new Debouncer((function(){for(var n=0;n<r.length;n++)o=r[n],s=void 0,l=void 0,v=void 0,s=o.getBoundingClientRect(),l=e.innerHeight||t.documentElement.clientHeight,((v=s.top)>=0&&v<=3*l||v<=0&&v<=-2*l-s.height)&&function(e){var t=r[e];i(t,(function(){r=r.filter((function(e){return t!==e}))}))}(n);var o,s,l,v;0===r.length&&e.removeEventListener("scroll",c,!1)}));e.addEventListener("scroll",c,!1),c.handleEvent()}}(window,document);

View File

@ -1 +0,0 @@
var searchFunc=function(t,e,n){"use strict";var i=document.getElementById(e),a=document.getElementById(n);a.innerHTML='<div class="m-auto text-center"><div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div><br/>Loading...</div>',$.ajax({url:t,dataType:"xml",success:function(t){var e=$("entry",t).map((function(){return{title:$("title",this).text(),content:$("content",this).text(),url:$("url",this).text()}})).get();a.innerHTML="",i.addEventListener("input",(function(){var t="",n=this.value.trim().toLowerCase().split(/[\s-]+/);if(a.innerHTML="",this.value.trim().length<=0)return;e.forEach((function(e){var i=!0;e.title&&""!==e.title.trim()||(e.title="Untitled");var a=e.title.trim(),r=a.toLowerCase(),s=e.content.trim().replace(/<[^>]+>/g,""),l=s.toLowerCase(),c=e.url,o=-1,u=-1,d=-1;if(""!==l?n.forEach((function(t,e){o=r.indexOf(t),u=l.indexOf(t),o<0&&u<0?i=!1:(u<0&&(u=0),0===e&&(d=u))})):i=!1,i){t+="<a href='"+c+"' class='list-group-item list-group-item-action font-weight-bolder search-list-title'>"+a+"</a>";var v=s;if(d>=0){var h=d-20,m=d+80;h<0&&(h=0),0===h&&(m=100),m>v.length&&(m=v.length);var f=v.substring(h,m);n.forEach((function(t){var e=new RegExp(t,"gi");f=f.replace(e,'<span class="search-word">'+t+"</span>")})),t+="<p class='search-list-content'>"+f+"...</p>"}}}));const i=$("#local-search-input");if(-1===t.indexOf("list-group-item"))return i.addClass("invalid").removeClass("valid");i.addClass("valid").removeClass("invalid"),a.innerHTML=t}))}}),$(document).on("click","#local-search-close",(function(){$("#local-search-input").val("").removeClass("invalid").removeClass("valid"),$("#local-search-result").html("")}))};

View File

@ -1 +0,0 @@
function listenScroll(o){const n=new Debouncer(o);window.addEventListener("scroll",n,!1),n.handleEvent()}function scrollToElement(o,n){var a=$(o).offset();$("body,html").animate({scrollTop:a.top+(n||0),easing:"swing"})}function navbarScrollEvent(){var o=$("#navbar"),n=$("#navbar .dropdown-menu");o.offset().top>0&&(o.removeClass("navbar-dark"),n.removeClass("navbar-dark")),listenScroll((function(){o[o.offset().top>50?"addClass":"removeClass"]("top-nav-collapse"),n[o.offset().top>50?"addClass":"removeClass"]("dropdown-collapse"),o.offset().top>0?(o.removeClass("navbar-dark"),n.removeClass("navbar-dark")):(o.addClass("navbar-dark"),n.removeClass("navbar-dark"))})),$("#navbar-toggler-btn").on("click",(function(){$(".animated-icon").toggleClass("open"),$("#navbar").toggleClass("navbar-col-show")}))}function parallaxEvent(){var o=$('#background[parallax="true"]');o.length>0&&listenScroll((function(){var n=$(window).scrollTop()/5,a=96+parseInt($("#board").css("margin-top"),0);n>a&&(n=a),o.css({transform:"translate3d(0,"+n+"px,0)","-webkit-transform":"translate3d(0,"+n+"px,0)","-ms-transform":"translate3d(0,"+n+"px,0)","-o-transform":"translate3d(0,"+n+"px,0)"}),$("#toc")&&$("#toc-ctn").css({"padding-top":n+"px"})}))}function scrollDownArrowEvent(){$(".scroll-down-bar").on("click",(function(){scrollToElement("#board",-$("#navbar").height())}))}function scrollTopArrowEvent(){var o=$("#scroll-top-button");if(o){var n=!1,a=!1,t=function(){var t=document.getElementById("board").getClientRects()[0].right,r=document.body.offsetWidth-t;n=r>=50,o.css({bottom:n&&a?"20px":"-60px",right:r-64+"px"})};t(),$(window).resize(t);var r=$("#board").offset().top;listenScroll((function(){var t=document.body.scrollTop+document.documentElement.scrollTop;a=t>=r,o.css({bottom:n&&a?"20px":"-60px"})})),o.on("click",(function(){$("body,html").animate({scrollTop:0,easing:"swing"})}))}}$(document).ready((function(){navbarScrollEvent(),parallaxEvent(),scrollDownArrowEvent(),scrollTopArrowEvent()}));

View File

@ -1 +0,0 @@
function waitElementVisible(e,t){var n="undefined"!=typeof window,o=n&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro|msn)bot|crawl|spider|yand|duckgo/i.test(navigator.userAgent),i=n&&"IntersectionObserver"in window;!o&&i?new IntersectionObserver((function(e,n){e[0].isIntersecting&&(t&&t(),n.disconnect())}),{threshold:[0],rootMargin:(window.innerHeight||document.documentElement.clientHeight)+"px"}).observe(document.getElementById(e)):t&&t()}function waitElementLoaded(e,t){var n="undefined"!=typeof window,o=n&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro|msn)bot|crawl|spider|yand|duckgo/i.test(navigator.userAgent);if(n&&!o)if("MutationObserver"in window){new MutationObserver((function(n,o){document.getElementById(e)&&(t&&t(),o.disconnect())})).observe(document,{childList:!0,subtree:!0})}else{var i=window.onload;window.onload=function(){i&&i(),t&&t()}}}function addScript(e,t){var n=document.createElement("script");n.setAttribute("src",e),n.setAttribute("type","text/javascript"),n.setAttribute("charset","UTF-8"),n.async=!1,"function"==typeof t&&(window.attachEvent?n.onreadystatechange=function(){var e=n.readyState;"loaded"!==e&&"complete"!==e||(n.onreadystatechange=null,t())}:n.onload=t);var o=document.getElementsByTagName("script")[0]||document.getElementsByTagName("head")[0]||document.head||document.documentElement;o.parentNode.insertBefore(n,o)}function addCssLink(e){var t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("type","text/css"),t.setAttribute("href",e);var n=document.getElementsByTagName("link")[0]||document.getElementsByTagName("head")[0]||document.head||document.documentElement;n.parentNode.insertBefore(t,n)}

View File

@ -1 +0,0 @@
$(document).ready((function(){$("#comments").on("focus",".v[data-class=v] .vwrap .vedit",(function(){$(this).animate({"background-size":"0%"})})),$("#comments").on("blur",".v[data-class=v] .vwrap .vedit",(function(){$(this).animate({"background-size":"20%"})}))}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

18024
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

47
package.json Normal file
View File

@ -0,0 +1,47 @@
{
"name": "hexo-site",
"version": "0.0.2-0",
"private": true,
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"server": "hexo server",
"dev": "hexo cl && hexo g && gulp",
"go": "hexo cl && hexo g && gulp && hexo d",
"cz": "cz",
"cl": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
},
"hexo": {
"version": "5.3.0"
},
"dependencies": {
"babel": "^6.23.0",
"commitizen": "^4.2.2",
"conventional-changelog-cli": "^2.1.1",
"gulp": "^4.0.2",
"gulp-clean-css": "^4.3.0",
"gulp-htmlclean": "^2.7.22",
"gulp-htmlmin": "^5.0.1",
"gulp-uglify": "^3.0.2",
"gulp-uglify-es": "^2.0.0",
"hexo": "^5.3.0",
"hexo-cli": "^4.2.0",
"hexo-deployer-git": "^2.1.0",
"hexo-generator-archive": "^1.0.0",
"hexo-generator-category": "^1.0.0",
"hexo-generator-feed": "^3.0.0",
"hexo-generator-index": "^2.0.0",
"hexo-generator-sitemap": "^2.1.0",
"hexo-generator-tag": "^1.0.0",
"hexo-renderer-ejs": "^1.0.0",
"hexo-renderer-marked": "^3.3.0",
"hexo-renderer-stylus": "^2.0.1",
"hexo-server": "^2.0.0",
"hexo-theme-fluid": "^1.8.7"
},
"devDependencies": {
"@babel/core": "^7.12.10",
"@babel/preset-env": "^7.12.11"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More