├── .babelrc
├── .eslintrc.js
├── .gitignore
├── LICENSE
├── README-V0.x.md
├── README.md
├── README_en.md
├── docs
├── .vuepress
│ ├── .cache
│ │ ├── @vuepress_shared.js
│ │ ├── @vuepress_shared.js.map
│ │ ├── @vueuse_core.js
│ │ ├── @vueuse_core.js.map
│ │ ├── _metadata.json
│ │ ├── nprogress.js
│ │ ├── nprogress.js.map
│ │ ├── package.json
│ │ ├── vue-router.js
│ │ ├── vue-router.js.map
│ │ ├── vue.js
│ │ └── vue.js.map
│ ├── config.js
│ ├── enhanceApp.js
│ ├── mixin.js
│ ├── nav
│ │ └── index.js
│ ├── public
│ │ ├── hero.png
│ │ ├── icons
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-512x512.png
│ │ │ ├── apple-touch-icon-152x152.png
│ │ │ ├── apple-touch-icon-60x60.png
│ │ │ ├── apple-touch-icon-76x76.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── msapplication-icon-144x144.png
│ │ │ ├── mstile-150x150.png
│ │ │ └── safari-pinned-tab.svg
│ │ ├── logo.png
│ │ └── manifest.json
│ └── theme
│ │ ├── README.md
│ │ ├── components
│ │ ├── AlgoliaSearchBox.vue
│ │ ├── DropdownLink.vue
│ │ ├── DropdownTransition.vue
│ │ ├── Home.vue
│ │ ├── NavLink.vue
│ │ ├── NavLinks.vue
│ │ ├── Navbar.vue
│ │ ├── Page.vue
│ │ ├── PageEdit.vue
│ │ ├── PageNav.vue
│ │ ├── Sidebar.vue
│ │ ├── SidebarButton.vue
│ │ ├── SidebarGroup.vue
│ │ ├── SidebarLink.vue
│ │ └── SidebarLinks.vue
│ │ ├── enhanceApp.js
│ │ ├── font-awesome-4.7.0
│ │ ├── HELP-US-OUT.txt
│ │ ├── css
│ │ │ ├── font-awesome.css
│ │ │ └── font-awesome.min.css
│ │ └── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── global-components
│ │ ├── Archives.vue
│ │ ├── Badge.vue
│ │ ├── Comments.vue
│ │ ├── HomeLayout.vue
│ │ ├── Post.vue
│ │ ├── Tags.vue
│ │ └── TitleContent.vue
│ │ ├── index.js
│ │ ├── layouts
│ │ ├── 404.vue
│ │ └── Layout.vue
│ │ ├── noopModule.js
│ │ ├── package.json
│ │ ├── styles
│ │ ├── arrow.styl
│ │ ├── code.styl
│ │ ├── config.styl
│ │ ├── custom-blocks.styl
│ │ ├── index.styl
│ │ ├── mobile.styl
│ │ ├── toc.styl
│ │ └── wrapper.styl
│ │ └── util
│ │ └── index.js
├── README.md
├── about
│ └── README.md
├── archives
│ └── README.md
├── blog
│ └── Java
│ │ └── README.md
├── friends
│ └── README.md
├── project
│ ├── README.md
│ └── qduoj-add-problem.md
├── share
│ ├── book
│ │ └── README.md
│ └── software
│ │ ├── README.md
│ │ └── index2.md
└── tags
│ └── README.md
├── package.json
├── packages
├── vuepress-plugin-valine-comment
│ ├── lib
│ │ ├── client
│ │ │ ├── index.d.ts
│ │ │ └── index.js
│ │ ├── node
│ │ │ ├── index..d.ts
│ │ │ ├── index..js
│ │ │ ├── valineComment.d.ts
│ │ │ └── valineComment.js
│ │ └── shared
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ ├── valineOptions.d.ts
│ │ │ └── valineOptions.js
│ ├── package.json
│ ├── src
│ │ ├── client
│ │ │ ├── component
│ │ │ │ └── Comment.vue
│ │ │ └── index.ts
│ │ ├── node
│ │ │ ├── index..ts
│ │ │ └── valineComment.ts
│ │ └── shared
│ │ │ ├── index.ts
│ │ │ └── valineOptions.ts
│ ├── tsconfig.build.json
│ ├── tsconfig.cjs.json
│ ├── tsconfig.cjs.tsbuildinfo
│ ├── tsconfig.esm.json
│ ├── tsconfig.esm.tsbuildinfo
│ └── yarn.lock
└── vuepress-theme-tassel
│ ├── lib
│ ├── global
│ │ ├── Comments.vue
│ │ └── HomeLayout.vue
│ ├── layouts
│ │ └── Layout.vue
│ └── node
│ │ └── index.js
│ ├── package.json
│ └── yarn.lock
├── requirements.txt
├── scripts
├── deploy-cos.sh
├── deploy-gh.sh
└── release.sh
├── tsconfig.base.json
├── tsconfig.build.json
├── tsconfig.json
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "test": {
4 | "presets": [
5 | ["@babel/preset-env", { "targets": { "node": 8 }}]
6 | ]
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // module.exports = {
2 | // root: true,
3 | // extends: [
4 | // 'plugin:vue-libs/recommended',
5 | // 'plugin:jest/recommended'
6 | // ],
7 | // rules: {
8 | // indent: ['error', 2, { MemberExpression: 'off' }]
9 | // }
10 | // }
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | *.log
4 | .temp
5 | vuepress
6 | TODOs.md
7 | .idea
8 | /venv/
9 | docs/blog/
10 | .cache
11 | .temp
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 HiCodd
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README-V0.x.md:
--------------------------------------------------------------------------------
1 | ## vuepress版本为0.14.x
2 | ## 运行项目
3 |
4 | yarn install //安装依赖
5 | yarn dev //运行
6 |
7 | ## 本地演示
8 | > 如果看到下面这行即说明开发运行正常
9 |
10 | VuePress dev server listening at http://localhost:8080/
11 |
12 | > 打开浏览器,输入localhost:8080即可访问
13 |
14 | ## demo
15 | [demo](https://www.finen.tech/)
16 |
17 | ## 广告?
18 | > 因为使用了vuepress-theme-vue主题,所以需要删除一部分代码即可正常。在node_modules下搜索vuepress-theme-vue在Layout.vue中删除以下代码即可
19 |
20 |
21 |
22 |
23 | ## 开发
24 |
25 | > 如果您想用该项目部署您自己的blog,请fork本项目,然后clone到您本地即可更改。如果您懂vue.js,那您可以自己开发一部分插件。
26 |
27 | ## 评论功能
28 |
29 | ### 评论工具1 Valine.js
30 | [Valine.js使用方法](https://valine.js.org/)
31 |
32 | ### 评论工具2 gittalk
33 | [Gittalk](https://gitalk.github.io/)
34 |
35 | ### 评论工具3 gitment
36 | [Gitment](https://imsun.github.io/gitment/)
37 |
38 |
39 |
40 | 代码已经写好,在.vuepress目录下的enhanceApp.js中,依照网上配置可以很轻松使用Gitment或者Gittalk。
41 | Valine.js的某些bug确实有点烦恼,目前还在修缮中!
42 |
43 |
44 |
45 | ## 禁止评论
46 | > 很多情况的页面都不想被评论,所以在每篇文档开头设置即可!如下:
47 |
48 | ---
49 | title: git 进阶操作命令
50 | comments: true or false
51 | ---
52 | true: 可以评论,false: 禁止评论
53 |
54 | ## 官网文档
55 |
56 | [Vuepress文档](https://vuepress.docschina.org/)
57 |
58 | ## Valine.js食用方法
59 | [Valine.js文档](https://valine.js.org/)
60 |
61 | ## 浏览器支持
62 | Most browsers(Firefox,Chrome等)
63 |
64 | ## Bug
65 | 页面变动没有自动刷新路由。
66 |
67 | ## TODO
68 |
69 | 1. 使用其他方法更新评论组件 或者使用其他较为好用的评论组件
70 | 2. 添加categories and tag
71 | 3. 跟换其他主题
72 |
73 | ## LiCENSE
74 | MIT
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://v1.vuepress.vuejs.org/)
2 | [](https://valine.js.org/)
3 | [](http://element-cn.eleme.io/)
4 |
5 | [中文文档](https://github.com/hirCodd/vuepress-blog/blob/master/README.md)|[English](https://github.com/hirCodd/vuepress-blog/blob/master/README_en.md)
6 |
7 | ## vuepress版本为1.3.1
8 |
9 | ## 欢迎使用主题[vuepress-theme-tassel](https://github.com/hirCodd/vuepress-theme-tassel)
10 | ## 快速开始
11 | ```bash
12 | git clone https://github.com/hirCodd/vuepress-blog.git
13 | ```
14 | ## 运行项目
15 |
16 | yarn install //安装依赖
17 | yarn dev //运行
18 |
19 | ## 本地演示
20 | > 如果看到下面这行即说明开发运行正常
21 |
22 | VuePress dev server listening at http://localhost:8080/
23 |
24 | > 打开浏览器,输入localhost:8080即可访问
25 |
26 | ## demo
27 | [demo](https://www.finen.top/)
28 |
29 | ## 开发
30 |
31 | > 如果您想用该项目部署您自己的blog,请fork本项目,然后clone到您本地即可更改。如果您懂vue.js,那您可以自己开发一部分插件。
32 |
33 | ## 已完成功能
34 | - [x] Archives
35 | - [x] Tags Cloud
36 | - [x] Simple Categories
37 |
38 | ## 评论功能
39 |
40 | ### 评论工具1 Valine.js
41 | [Valine.js使用方法](https://valine.js.org/)
42 |
43 | ### 评论工具2 gittalk
44 | [Gittalk](https://gitalk.github.io/)
45 |
46 | ### 评论工具3 gitment
47 | [Gitment](https://imsun.github.io/gitment/)
48 |
49 |
50 | 代码已经写好,在`.vuepress/theme/components/Comments.vue`中,依照网上配置可以很轻松使用Gitment或者Gittalk。
51 |
52 |
53 |
54 | ## 禁止评论
55 | > 很多情况的页面都不想被评论,所以在每篇文档开头设置即可!如下:
56 | ```js
57 | ---
58 | title: git 进阶操作命令
59 | comments: true or false // true: 可以评论,false: 禁止评论
60 | post: true //是否作为archives或者tags的列表,true: 作为 false:禁止
61 | tags:
62 | - xxx
63 | date: 2019/03/21 11:24:30
64 | ---
65 |
66 | if (element.frontmatter.post == true) {} // archives
67 | if (element.frontmatter.post == true && element.frontmatter.tags.includes(tag)) {} // tags
68 | ```
69 |
70 | ## vuePress官网文档
71 |
72 | [Vuepress文档](https://vuepress.docschina.org/)
73 |
74 | ## Valine.js食用方法
75 | [Valine.js文档](https://valine.js.org/)
76 |
77 | ## 浏览器支持
78 | Most browsers(Firefox,Chrome等)
79 |
80 | ## LiCENSE
81 | [MIT](https://github.com/hirCodd/vuepress-blog/blob/master/LICENSE)
82 |
--------------------------------------------------------------------------------
/README_en.md:
--------------------------------------------------------------------------------
1 | [](https://v1.vuepress.vuejs.org/)
2 | [](https://valine.js.org/)
3 | [](http://element-cn.eleme.io/)
4 |
5 | [中文文档](https://github.com/hirCodd/vuepress-blog/blob/master/README.md)|[English](https://github.com/hirCodd/vuepress-blog/blob/master/README_en.md)
6 |
7 | ## vuepress: 1.3.1
8 |
9 | ## Quick Start
10 | ```bash
11 | git clone https://github.com/hirCodd/vuepress-blog.git
12 | ```
13 | ## Local Development
14 |
15 | yarn install // install lib
16 | yarn dev // run dev
17 |
18 | ## Local Demo
19 | > If you see next code:
20 |
21 | VuePress dev server listening at http://localhost:8080/
22 |
23 | > Open Browser, get this addrss: localhost:8080
24 |
25 | ## Remote Demo
26 | [demo](https://www.finen.top/)
27 |
28 | ## Develop
29 |
30 | > If you want to develop this blog, you can fork or clone this project.
31 |
32 | ## Function
33 | - [x] Archives
34 | - [x] Tags Cloud
35 | - [x] Simple Categories
36 |
37 | ## Comments
38 |
39 | ### Comment1: Valine.js
40 | [Valine.js](https://valine.js.org/)
41 |
42 | ### Comment2: gittalk
43 | [Gittalk](https://gitalk.github.io/)
44 |
45 | ### Comment3 gitment
46 | [Gitment](https://imsun.github.io/gitment/)
47 |
48 |
49 | this code on the directory: `.vuepress/theme/components/Comments.vue`,yan can use gittalk or gitment easily.
50 |
51 |
52 |
53 | ## Forbid Comment
54 | > on the xx.md, you can config these properties
55 | ```js
56 | ---
57 | title: git
58 | comments: true or false
59 | post: true //archives or tags: true
60 | tags:
61 | - xxx
62 | date: 2019/03/21 11:24:30
63 | ---
64 |
65 | if (element.frontmatter.post == true) {} // archives
66 | if (element.frontmatter.post == true && element.frontmatter.tags.includes(tag)) {} // tags
67 | ```
68 |
69 | ## vuePress-Document
70 |
71 | [Vuepress](https://vuepress.docschina.org/)
72 |
73 | ## Valine.js-Document
74 | [Valine.js](https://valine.js.org/)
75 |
76 | ## Browser Support
77 | Most browsers(Firefox,Chrome...)
78 |
79 | ## LiCENSE
80 | [MIT](https://github.com/hirCodd/vuepress-blog/blob/master/LICENSE)
--------------------------------------------------------------------------------
/docs/.vuepress/.cache/@vuepress_shared.js:
--------------------------------------------------------------------------------
1 | import {
2 | isArray,
3 | isFunction,
4 | isPromise,
5 | isString
6 | } from "./chunk-YV7C26G7.js";
7 | import {
8 | init_define_MZ_ZOOM_OPTIONS
9 | } from "./chunk-FCVWRIDD.js";
10 |
11 | // dep:@vuepress_shared
12 | init_define_MZ_ZOOM_OPTIONS();
13 |
14 | // node_modules/@vuepress/shared/lib/esm/index.js
15 | init_define_MZ_ZOOM_OPTIONS();
16 |
17 | // node_modules/@vuepress/shared/lib/esm/types/index.js
18 | init_define_MZ_ZOOM_OPTIONS();
19 |
20 | // node_modules/@vuepress/shared/lib/esm/types/head.js
21 | init_define_MZ_ZOOM_OPTIONS();
22 |
23 | // node_modules/@vuepress/shared/lib/esm/types/locale.js
24 | init_define_MZ_ZOOM_OPTIONS();
25 |
26 | // node_modules/@vuepress/shared/lib/esm/types/page.js
27 | init_define_MZ_ZOOM_OPTIONS();
28 |
29 | // node_modules/@vuepress/shared/lib/esm/types/site.js
30 | init_define_MZ_ZOOM_OPTIONS();
31 |
32 | // node_modules/@vuepress/shared/lib/esm/types/ssr.js
33 | init_define_MZ_ZOOM_OPTIONS();
34 |
35 | // node_modules/@vuepress/shared/lib/esm/utils/index.js
36 | init_define_MZ_ZOOM_OPTIONS();
37 |
38 | // node_modules/@vuepress/shared/lib/esm/utils/dedupeHead.js
39 | init_define_MZ_ZOOM_OPTIONS();
40 |
41 | // node_modules/@vuepress/shared/lib/esm/utils/resolveHeadIdentifier.js
42 | init_define_MZ_ZOOM_OPTIONS();
43 | var resolveHeadIdentifier = ([tag, attrs, content]) => {
44 | if (tag === "meta" && attrs.name) {
45 | return `${tag}.${attrs.name}`;
46 | }
47 | if (["title", "base"].includes(tag)) {
48 | return tag;
49 | }
50 | if (tag === "template" && attrs.id) {
51 | return `${tag}.${attrs.id}`;
52 | }
53 | return JSON.stringify([tag, attrs, content]);
54 | };
55 |
56 | // node_modules/@vuepress/shared/lib/esm/utils/dedupeHead.js
57 | var dedupeHead = (head) => {
58 | const identifierSet = new Set();
59 | const result = [];
60 | head.forEach((item) => {
61 | const identifier = resolveHeadIdentifier(item);
62 | if (!identifierSet.has(identifier)) {
63 | identifierSet.add(identifier);
64 | result.push(item);
65 | }
66 | });
67 | return result;
68 | };
69 |
70 | // node_modules/@vuepress/shared/lib/esm/utils/ensureLeadingSlash.js
71 | init_define_MZ_ZOOM_OPTIONS();
72 | var ensureLeadingSlash = (str) => str.replace(/^\/?/, "/");
73 |
74 | // node_modules/@vuepress/shared/lib/esm/utils/ensureEndingSlash.js
75 | init_define_MZ_ZOOM_OPTIONS();
76 | var ensureEndingSlash = (str) => /(\.html|\/)$/.test(str) ? str : str + "/";
77 |
78 | // node_modules/@vuepress/shared/lib/esm/utils/formatDateString.js
79 | init_define_MZ_ZOOM_OPTIONS();
80 | var formatDateString = (str, defaultDateString = "") => {
81 | const dateMatch = str.match(/\b(\d{4})-(\d{1,2})-(\d{1,2})\b/);
82 | if (dateMatch === null) {
83 | return defaultDateString;
84 | }
85 | const [, yearStr, monthStr, dayStr] = dateMatch;
86 | return [yearStr, monthStr.padStart(2, "0"), dayStr.padStart(2, "0")].join("-");
87 | };
88 |
89 | // node_modules/@vuepress/shared/lib/esm/utils/htmlEscape.js
90 | init_define_MZ_ZOOM_OPTIONS();
91 | var htmlEscapeMap = {
92 | "&": "&",
93 | "<": "<",
94 | ">": ">",
95 | "'": "'",
96 | '"': """
97 | };
98 | var htmlEscapeRegexp = /[&<>'"]/g;
99 | var htmlEscape = (str) => str.replace(htmlEscapeRegexp, (char) => htmlEscapeMap[char]);
100 |
101 | // node_modules/@vuepress/shared/lib/esm/utils/htmlUnescape.js
102 | init_define_MZ_ZOOM_OPTIONS();
103 | var htmlUnescapeMap = {
104 | "&": "&",
105 | "&": "&",
106 | "<": "<",
107 | "<": "<",
108 | ">": ">",
109 | ">": ">",
110 | "'": "'",
111 | "'": "'",
112 | """: '"',
113 | """: '"'
114 | };
115 | var htmlUnescapeRegexp = /&(amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
116 | var htmlUnescape = (str) => str.replace(htmlUnescapeRegexp, (char) => htmlUnescapeMap[char]);
117 |
118 | // node_modules/@vuepress/shared/lib/esm/utils/isLinkExternal.js
119 | init_define_MZ_ZOOM_OPTIONS();
120 |
121 | // node_modules/@vuepress/shared/lib/esm/utils/isLinkFtp.js
122 | init_define_MZ_ZOOM_OPTIONS();
123 | var isLinkFtp = (link) => link.startsWith("ftp://");
124 |
125 | // node_modules/@vuepress/shared/lib/esm/utils/isLinkHttp.js
126 | init_define_MZ_ZOOM_OPTIONS();
127 | var isLinkHttp = (link) => /^(https?:)?\/\//.test(link);
128 |
129 | // node_modules/@vuepress/shared/lib/esm/utils/isLinkExternal.js
130 | var isLinkExternal = (link, base = "/") => {
131 | if (isLinkHttp(link) || isLinkFtp(link)) {
132 | return true;
133 | }
134 | if (link.startsWith("/") && !link.startsWith(base)) {
135 | return true;
136 | }
137 | return false;
138 | };
139 |
140 | // node_modules/@vuepress/shared/lib/esm/utils/isLinkMailto.js
141 | init_define_MZ_ZOOM_OPTIONS();
142 | var isLinkMailto = (link) => /^mailto:/.test(link);
143 |
144 | // node_modules/@vuepress/shared/lib/esm/utils/isLinkTel.js
145 | init_define_MZ_ZOOM_OPTIONS();
146 | var isLinkTel = (link) => /^tel:/.test(link);
147 |
148 | // node_modules/@vuepress/shared/lib/esm/utils/isPlainObject.js
149 | init_define_MZ_ZOOM_OPTIONS();
150 | var isPlainObject = (val) => Object.prototype.toString.call(val) === "[object Object]";
151 |
152 | // node_modules/@vuepress/shared/lib/esm/utils/normalizePackageName.js
153 | init_define_MZ_ZOOM_OPTIONS();
154 | var normalizePackageName = (request, org, type = null) => {
155 | const orgPrefix = `${org}-`;
156 | const typePrefix = type === null ? "" : `${type}-`;
157 | const scopedMatch = request.match(/^@(.*)\/(.*)$/);
158 | if (scopedMatch === null) {
159 | if (request.startsWith(`${orgPrefix}${typePrefix}`)) {
160 | return request;
161 | }
162 | return `${orgPrefix}${typePrefix}${request}`;
163 | }
164 | const [, reqOrg, reqName] = scopedMatch;
165 | if (reqOrg === org) {
166 | if (reqName.startsWith(typePrefix)) {
167 | return request;
168 | }
169 | return `@${reqOrg}/${typePrefix}${reqName}`;
170 | }
171 | if (reqName.startsWith(`${orgPrefix}${typePrefix}`)) {
172 | return request;
173 | }
174 | return `@${reqOrg}/${orgPrefix}${typePrefix}${reqName}`;
175 | };
176 |
177 | // node_modules/@vuepress/shared/lib/esm/utils/removeEndingSlash.js
178 | init_define_MZ_ZOOM_OPTIONS();
179 | var removeEndingSlash = (str) => str.replace(/\/$/, "");
180 |
181 | // node_modules/@vuepress/shared/lib/esm/utils/removeLeadingSlash.js
182 | init_define_MZ_ZOOM_OPTIONS();
183 | var removeLeadingSlash = (str) => str.replace(/^\//, "");
184 |
185 | // node_modules/@vuepress/shared/lib/esm/utils/resolveLocalePath.js
186 | init_define_MZ_ZOOM_OPTIONS();
187 | var resolveLocalePath = (locales, routePath) => {
188 | const localePaths = Object.keys(locales).sort((a, b) => {
189 | const levelDelta = b.split("/").length - a.split("/").length;
190 | if (levelDelta !== 0) {
191 | return levelDelta;
192 | }
193 | return b.length - a.length;
194 | });
195 | for (const localePath of localePaths) {
196 | if (routePath.startsWith(localePath)) {
197 | return localePath;
198 | }
199 | }
200 | return "/";
201 | };
202 |
203 | // node_modules/@vuepress/shared/lib/esm/utils/resolveRoutePathFromUrl.js
204 | init_define_MZ_ZOOM_OPTIONS();
205 | var resolveRoutePathFromUrl = (url, base = "/") => url.replace(/^(https?:)?\/\/[^/]*/, "").replace(new RegExp(`^${base}`), "/");
206 | export {
207 | dedupeHead,
208 | ensureEndingSlash,
209 | ensureLeadingSlash,
210 | formatDateString,
211 | htmlEscape,
212 | htmlUnescape,
213 | isArray,
214 | isFunction,
215 | isLinkExternal,
216 | isLinkFtp,
217 | isLinkHttp,
218 | isLinkMailto,
219 | isLinkTel,
220 | isPlainObject,
221 | isPromise,
222 | isString,
223 | normalizePackageName,
224 | removeEndingSlash,
225 | removeLeadingSlash,
226 | resolveHeadIdentifier,
227 | resolveLocalePath,
228 | resolveRoutePathFromUrl
229 | };
230 | //# sourceMappingURL=@vuepress_shared.js.map
231 |
--------------------------------------------------------------------------------
/docs/.vuepress/.cache/_metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "0662b4f3",
3 | "browserHash": "8f631e4d",
4 | "optimized": {
5 | "vue": {
6 | "file": "E:/MyBlog/vuepress-blog/docs/.vuepress/.cache/vue.js",
7 | "src": "E:/MyBlog/vuepress-blog/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js",
8 | "needsInterop": false
9 | },
10 | "vue-router": {
11 | "file": "E:/MyBlog/vuepress-blog/docs/.vuepress/.cache/vue-router.js",
12 | "src": "E:/MyBlog/vuepress-blog/node_modules/vue-router/dist/vue-router.esm-bundler.js",
13 | "needsInterop": false
14 | },
15 | "@vueuse/core": {
16 | "file": "E:/MyBlog/vuepress-blog/docs/.vuepress/.cache/@vueuse_core.js",
17 | "src": "E:/MyBlog/vuepress-blog/node_modules/@vueuse/core/index.mjs",
18 | "needsInterop": false
19 | },
20 | "nprogress": {
21 | "file": "E:/MyBlog/vuepress-blog/docs/.vuepress/.cache/nprogress.js",
22 | "src": "E:/MyBlog/vuepress-blog/node_modules/nprogress/nprogress.js",
23 | "needsInterop": true
24 | },
25 | "@vuepress/shared": {
26 | "file": "E:/MyBlog/vuepress-blog/docs/.vuepress/.cache/@vuepress_shared.js",
27 | "src": "E:/MyBlog/vuepress-blog/node_modules/@vuepress/shared/lib/esm/index.js",
28 | "needsInterop": false
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/docs/.vuepress/.cache/nprogress.js:
--------------------------------------------------------------------------------
1 | import {
2 | __commonJS,
3 | init_define_MZ_ZOOM_OPTIONS
4 | } from "./chunk-FCVWRIDD.js";
5 |
6 | // node_modules/nprogress/nprogress.js
7 | var require_nprogress = __commonJS({
8 | "node_modules/nprogress/nprogress.js"(exports, module) {
9 | init_define_MZ_ZOOM_OPTIONS();
10 | (function(root, factory) {
11 | if (typeof define === "function" && define.amd) {
12 | define(factory);
13 | } else if (typeof exports === "object") {
14 | module.exports = factory();
15 | } else {
16 | root.NProgress = factory();
17 | }
18 | })(exports, function() {
19 | var NProgress = {};
20 | NProgress.version = "0.2.0";
21 | var Settings = NProgress.settings = {
22 | minimum: 0.08,
23 | easing: "ease",
24 | positionUsing: "",
25 | speed: 200,
26 | trickle: true,
27 | trickleRate: 0.02,
28 | trickleSpeed: 800,
29 | showSpinner: true,
30 | barSelector: '[role="bar"]',
31 | spinnerSelector: '[role="spinner"]',
32 | parent: "body",
33 | template: '
'
34 | };
35 | NProgress.configure = function(options) {
36 | var key, value;
37 | for (key in options) {
38 | value = options[key];
39 | if (value !== void 0 && options.hasOwnProperty(key))
40 | Settings[key] = value;
41 | }
42 | return this;
43 | };
44 | NProgress.status = null;
45 | NProgress.set = function(n) {
46 | var started = NProgress.isStarted();
47 | n = clamp(n, Settings.minimum, 1);
48 | NProgress.status = n === 1 ? null : n;
49 | var progress = NProgress.render(!started), bar = progress.querySelector(Settings.barSelector), speed = Settings.speed, ease = Settings.easing;
50 | progress.offsetWidth;
51 | queue(function(next) {
52 | if (Settings.positionUsing === "")
53 | Settings.positionUsing = NProgress.getPositioningCSS();
54 | css(bar, barPositionCSS(n, speed, ease));
55 | if (n === 1) {
56 | css(progress, {
57 | transition: "none",
58 | opacity: 1
59 | });
60 | progress.offsetWidth;
61 | setTimeout(function() {
62 | css(progress, {
63 | transition: "all " + speed + "ms linear",
64 | opacity: 0
65 | });
66 | setTimeout(function() {
67 | NProgress.remove();
68 | next();
69 | }, speed);
70 | }, speed);
71 | } else {
72 | setTimeout(next, speed);
73 | }
74 | });
75 | return this;
76 | };
77 | NProgress.isStarted = function() {
78 | return typeof NProgress.status === "number";
79 | };
80 | NProgress.start = function() {
81 | if (!NProgress.status)
82 | NProgress.set(0);
83 | var work = function() {
84 | setTimeout(function() {
85 | if (!NProgress.status)
86 | return;
87 | NProgress.trickle();
88 | work();
89 | }, Settings.trickleSpeed);
90 | };
91 | if (Settings.trickle)
92 | work();
93 | return this;
94 | };
95 | NProgress.done = function(force) {
96 | if (!force && !NProgress.status)
97 | return this;
98 | return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);
99 | };
100 | NProgress.inc = function(amount) {
101 | var n = NProgress.status;
102 | if (!n) {
103 | return NProgress.start();
104 | } else {
105 | if (typeof amount !== "number") {
106 | amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);
107 | }
108 | n = clamp(n + amount, 0, 0.994);
109 | return NProgress.set(n);
110 | }
111 | };
112 | NProgress.trickle = function() {
113 | return NProgress.inc(Math.random() * Settings.trickleRate);
114 | };
115 | (function() {
116 | var initial = 0, current = 0;
117 | NProgress.promise = function($promise) {
118 | if (!$promise || $promise.state() === "resolved") {
119 | return this;
120 | }
121 | if (current === 0) {
122 | NProgress.start();
123 | }
124 | initial++;
125 | current++;
126 | $promise.always(function() {
127 | current--;
128 | if (current === 0) {
129 | initial = 0;
130 | NProgress.done();
131 | } else {
132 | NProgress.set((initial - current) / initial);
133 | }
134 | });
135 | return this;
136 | };
137 | })();
138 | NProgress.render = function(fromStart) {
139 | if (NProgress.isRendered())
140 | return document.getElementById("nprogress");
141 | addClass(document.documentElement, "nprogress-busy");
142 | var progress = document.createElement("div");
143 | progress.id = "nprogress";
144 | progress.innerHTML = Settings.template;
145 | var bar = progress.querySelector(Settings.barSelector), perc = fromStart ? "-100" : toBarPerc(NProgress.status || 0), parent = document.querySelector(Settings.parent), spinner;
146 | css(bar, {
147 | transition: "all 0 linear",
148 | transform: "translate3d(" + perc + "%,0,0)"
149 | });
150 | if (!Settings.showSpinner) {
151 | spinner = progress.querySelector(Settings.spinnerSelector);
152 | spinner && removeElement(spinner);
153 | }
154 | if (parent != document.body) {
155 | addClass(parent, "nprogress-custom-parent");
156 | }
157 | parent.appendChild(progress);
158 | return progress;
159 | };
160 | NProgress.remove = function() {
161 | removeClass(document.documentElement, "nprogress-busy");
162 | removeClass(document.querySelector(Settings.parent), "nprogress-custom-parent");
163 | var progress = document.getElementById("nprogress");
164 | progress && removeElement(progress);
165 | };
166 | NProgress.isRendered = function() {
167 | return !!document.getElementById("nprogress");
168 | };
169 | NProgress.getPositioningCSS = function() {
170 | var bodyStyle = document.body.style;
171 | var vendorPrefix = "WebkitTransform" in bodyStyle ? "Webkit" : "MozTransform" in bodyStyle ? "Moz" : "msTransform" in bodyStyle ? "ms" : "OTransform" in bodyStyle ? "O" : "";
172 | if (vendorPrefix + "Perspective" in bodyStyle) {
173 | return "translate3d";
174 | } else if (vendorPrefix + "Transform" in bodyStyle) {
175 | return "translate";
176 | } else {
177 | return "margin";
178 | }
179 | };
180 | function clamp(n, min, max) {
181 | if (n < min)
182 | return min;
183 | if (n > max)
184 | return max;
185 | return n;
186 | }
187 | function toBarPerc(n) {
188 | return (-1 + n) * 100;
189 | }
190 | function barPositionCSS(n, speed, ease) {
191 | var barCSS;
192 | if (Settings.positionUsing === "translate3d") {
193 | barCSS = { transform: "translate3d(" + toBarPerc(n) + "%,0,0)" };
194 | } else if (Settings.positionUsing === "translate") {
195 | barCSS = { transform: "translate(" + toBarPerc(n) + "%,0)" };
196 | } else {
197 | barCSS = { "margin-left": toBarPerc(n) + "%" };
198 | }
199 | barCSS.transition = "all " + speed + "ms " + ease;
200 | return barCSS;
201 | }
202 | var queue = function() {
203 | var pending = [];
204 | function next() {
205 | var fn = pending.shift();
206 | if (fn) {
207 | fn(next);
208 | }
209 | }
210 | return function(fn) {
211 | pending.push(fn);
212 | if (pending.length == 1)
213 | next();
214 | };
215 | }();
216 | var css = function() {
217 | var cssPrefixes = ["Webkit", "O", "Moz", "ms"], cssProps = {};
218 | function camelCase(string) {
219 | return string.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function(match, letter) {
220 | return letter.toUpperCase();
221 | });
222 | }
223 | function getVendorProp(name) {
224 | var style = document.body.style;
225 | if (name in style)
226 | return name;
227 | var i = cssPrefixes.length, capName = name.charAt(0).toUpperCase() + name.slice(1), vendorName;
228 | while (i--) {
229 | vendorName = cssPrefixes[i] + capName;
230 | if (vendorName in style)
231 | return vendorName;
232 | }
233 | return name;
234 | }
235 | function getStyleProp(name) {
236 | name = camelCase(name);
237 | return cssProps[name] || (cssProps[name] = getVendorProp(name));
238 | }
239 | function applyCss(element, prop, value) {
240 | prop = getStyleProp(prop);
241 | element.style[prop] = value;
242 | }
243 | return function(element, properties) {
244 | var args = arguments, prop, value;
245 | if (args.length == 2) {
246 | for (prop in properties) {
247 | value = properties[prop];
248 | if (value !== void 0 && properties.hasOwnProperty(prop))
249 | applyCss(element, prop, value);
250 | }
251 | } else {
252 | applyCss(element, args[1], args[2]);
253 | }
254 | };
255 | }();
256 | function hasClass(element, name) {
257 | var list = typeof element == "string" ? element : classList(element);
258 | return list.indexOf(" " + name + " ") >= 0;
259 | }
260 | function addClass(element, name) {
261 | var oldList = classList(element), newList = oldList + name;
262 | if (hasClass(oldList, name))
263 | return;
264 | element.className = newList.substring(1);
265 | }
266 | function removeClass(element, name) {
267 | var oldList = classList(element), newList;
268 | if (!hasClass(element, name))
269 | return;
270 | newList = oldList.replace(" " + name + " ", " ");
271 | element.className = newList.substring(1, newList.length - 1);
272 | }
273 | function classList(element) {
274 | return (" " + (element.className || "") + " ").replace(/\s+/gi, " ");
275 | }
276 | function removeElement(element) {
277 | element && element.parentNode && element.parentNode.removeChild(element);
278 | }
279 | return NProgress;
280 | });
281 | }
282 | });
283 |
284 | // dep:nprogress
285 | init_define_MZ_ZOOM_OPTIONS();
286 | var nprogress_default = require_nprogress();
287 | export {
288 | nprogress_default as default
289 | };
290 | /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
291 | * @license MIT */
292 | //# sourceMappingURL=nprogress.js.map
293 |
--------------------------------------------------------------------------------
/docs/.vuepress/.cache/package.json:
--------------------------------------------------------------------------------
1 | {"type":"module"}
--------------------------------------------------------------------------------
/docs/.vuepress/.cache/vue.js:
--------------------------------------------------------------------------------
1 | import {
2 | BaseTransition,
3 | Comment,
4 | EffectScope,
5 | Fragment,
6 | KeepAlive,
7 | ReactiveEffect,
8 | Static,
9 | Suspense,
10 | Teleport,
11 | Text,
12 | Transition,
13 | TransitionGroup,
14 | VueElement,
15 | callWithAsyncErrorHandling,
16 | callWithErrorHandling,
17 | cloneVNode,
18 | compatUtils,
19 | computed,
20 | createApp,
21 | createBaseVNode,
22 | createBlock,
23 | createCommentVNode,
24 | createElementBlock,
25 | createHydrationRenderer,
26 | createPropsRestProxy,
27 | createRenderer,
28 | createSSRApp,
29 | createSlots,
30 | createStaticVNode,
31 | createTextVNode,
32 | createVNode,
33 | customRef,
34 | defineAsyncComponent,
35 | defineComponent,
36 | defineCustomElement,
37 | defineEmits,
38 | defineExpose,
39 | defineProps,
40 | defineSSRCustomElement,
41 | devtools,
42 | effect,
43 | effectScope,
44 | getCurrentInstance,
45 | getCurrentScope,
46 | getTransitionRawChildren,
47 | guardReactiveProps,
48 | h,
49 | handleError,
50 | hydrate,
51 | initCustomFormatter,
52 | initDirectivesForSSR,
53 | inject,
54 | isMemoSame,
55 | isProxy,
56 | isReactive,
57 | isReadonly,
58 | isRef,
59 | isRuntimeOnly,
60 | isVNode,
61 | markRaw,
62 | mergeDefaults,
63 | mergeProps,
64 | nextTick,
65 | onActivated,
66 | onBeforeMount,
67 | onBeforeUnmount,
68 | onBeforeUpdate,
69 | onDeactivated,
70 | onErrorCaptured,
71 | onMounted,
72 | onRenderTracked,
73 | onRenderTriggered,
74 | onScopeDispose,
75 | onServerPrefetch,
76 | onUnmounted,
77 | onUpdated,
78 | openBlock,
79 | popScopeId,
80 | provide,
81 | proxyRefs,
82 | pushScopeId,
83 | queuePostFlushCb,
84 | reactive,
85 | readonly,
86 | ref,
87 | registerRuntimeCompiler,
88 | render,
89 | renderList,
90 | renderSlot,
91 | resolveComponent,
92 | resolveDirective,
93 | resolveDynamicComponent,
94 | resolveFilter,
95 | resolveTransitionHooks,
96 | setBlockTracking,
97 | setDevtoolsHook,
98 | setTransitionHooks,
99 | shallowReactive,
100 | shallowReadonly,
101 | shallowRef,
102 | ssrContextKey,
103 | ssrUtils,
104 | stop,
105 | toHandlers,
106 | toRaw,
107 | toRef,
108 | toRefs,
109 | transformVNodeArgs,
110 | triggerRef,
111 | unref,
112 | useAttrs,
113 | useCssModule,
114 | useCssVars,
115 | useSSRContext,
116 | useSlots,
117 | useTransitionState,
118 | vModelCheckbox,
119 | vModelDynamic,
120 | vModelRadio,
121 | vModelSelect,
122 | vModelText,
123 | vShow,
124 | version,
125 | warn,
126 | watch,
127 | watchEffect,
128 | watchPostEffect,
129 | watchSyncEffect,
130 | withAsyncContext,
131 | withCtx,
132 | withDefaults,
133 | withDirectives,
134 | withKeys,
135 | withMemo,
136 | withModifiers,
137 | withScopeId
138 | } from "./chunk-K4UNDIP3.js";
139 | import {
140 | camelize,
141 | capitalize,
142 | normalizeClass,
143 | normalizeProps,
144 | normalizeStyle,
145 | toDisplayString,
146 | toHandlerKey
147 | } from "./chunk-YV7C26G7.js";
148 | import {
149 | init_define_MZ_ZOOM_OPTIONS
150 | } from "./chunk-FCVWRIDD.js";
151 |
152 | // dep:vue
153 | init_define_MZ_ZOOM_OPTIONS();
154 | export {
155 | BaseTransition,
156 | Comment,
157 | EffectScope,
158 | Fragment,
159 | KeepAlive,
160 | ReactiveEffect,
161 | Static,
162 | Suspense,
163 | Teleport,
164 | Text,
165 | Transition,
166 | TransitionGroup,
167 | VueElement,
168 | callWithAsyncErrorHandling,
169 | callWithErrorHandling,
170 | camelize,
171 | capitalize,
172 | cloneVNode,
173 | compatUtils,
174 | computed,
175 | createApp,
176 | createBlock,
177 | createCommentVNode,
178 | createElementBlock,
179 | createBaseVNode as createElementVNode,
180 | createHydrationRenderer,
181 | createPropsRestProxy,
182 | createRenderer,
183 | createSSRApp,
184 | createSlots,
185 | createStaticVNode,
186 | createTextVNode,
187 | createVNode,
188 | customRef,
189 | defineAsyncComponent,
190 | defineComponent,
191 | defineCustomElement,
192 | defineEmits,
193 | defineExpose,
194 | defineProps,
195 | defineSSRCustomElement,
196 | devtools,
197 | effect,
198 | effectScope,
199 | getCurrentInstance,
200 | getCurrentScope,
201 | getTransitionRawChildren,
202 | guardReactiveProps,
203 | h,
204 | handleError,
205 | hydrate,
206 | initCustomFormatter,
207 | initDirectivesForSSR,
208 | inject,
209 | isMemoSame,
210 | isProxy,
211 | isReactive,
212 | isReadonly,
213 | isRef,
214 | isRuntimeOnly,
215 | isVNode,
216 | markRaw,
217 | mergeDefaults,
218 | mergeProps,
219 | nextTick,
220 | normalizeClass,
221 | normalizeProps,
222 | normalizeStyle,
223 | onActivated,
224 | onBeforeMount,
225 | onBeforeUnmount,
226 | onBeforeUpdate,
227 | onDeactivated,
228 | onErrorCaptured,
229 | onMounted,
230 | onRenderTracked,
231 | onRenderTriggered,
232 | onScopeDispose,
233 | onServerPrefetch,
234 | onUnmounted,
235 | onUpdated,
236 | openBlock,
237 | popScopeId,
238 | provide,
239 | proxyRefs,
240 | pushScopeId,
241 | queuePostFlushCb,
242 | reactive,
243 | readonly,
244 | ref,
245 | registerRuntimeCompiler,
246 | render,
247 | renderList,
248 | renderSlot,
249 | resolveComponent,
250 | resolveDirective,
251 | resolveDynamicComponent,
252 | resolveFilter,
253 | resolveTransitionHooks,
254 | setBlockTracking,
255 | setDevtoolsHook,
256 | setTransitionHooks,
257 | shallowReactive,
258 | shallowReadonly,
259 | shallowRef,
260 | ssrContextKey,
261 | ssrUtils,
262 | stop,
263 | toDisplayString,
264 | toHandlerKey,
265 | toHandlers,
266 | toRaw,
267 | toRef,
268 | toRefs,
269 | transformVNodeArgs,
270 | triggerRef,
271 | unref,
272 | useAttrs,
273 | useCssModule,
274 | useCssVars,
275 | useSSRContext,
276 | useSlots,
277 | useTransitionState,
278 | vModelCheckbox,
279 | vModelDynamic,
280 | vModelRadio,
281 | vModelSelect,
282 | vModelText,
283 | vShow,
284 | version,
285 | warn,
286 | watch,
287 | watchEffect,
288 | watchPostEffect,
289 | watchSyncEffect,
290 | withAsyncContext,
291 | withCtx,
292 | withDefaults,
293 | withDirectives,
294 | withKeys,
295 | withMemo,
296 | withModifiers,
297 | withScopeId
298 | };
299 | //# sourceMappingURL=vue.js.map
300 |
--------------------------------------------------------------------------------
/docs/.vuepress/.cache/vue.js.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "sources": ["dep:vue"],
4 | "sourcesContent": ["\nexport * from \"../../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js\""],
5 | "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;",
6 | "names": []
7 | }
8 |
--------------------------------------------------------------------------------
/docs/.vuepress/config.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 |
3 | module.exports = {
4 | dest: 'vuepress',
5 | locales: {
6 | '/': {
7 | lang: 'en-US',
8 | title: "SimpleThinking's Blog",
9 | description: 'Stay Hungry! Stay Foolish!',
10 | },
11 | },
12 | head: [
13 | ['link', { rel: 'icon', href: `/logo.png` }],
14 | ['link', { rel: 'manifest', href: '/manifest.json' }],
15 | ['meta', { name: 'theme-color', content: '#3eaf7c' }],
16 | ['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
17 | ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }],
18 | ['link', { rel: 'apple-touch-icon', href: `/icons/apple-touch-icon-152x152.png` }],
19 | ['link', { rel: 'mask-icon', href: '/icons/safari-pinned-tab.svg', color: '#3eaf7c' }],
20 | ['meta', { name: 'msapplication-TileImage', content: '/icons/msapplication-icon-144x144.png' }],
21 | ['meta', { name: 'msapplication-TileColor', content: '#000000' }]
22 | ],
23 | markdown: {
24 | lineNumbers: true
25 | },
26 | evergreen: true,
27 | activeHeaderLinks: true,
28 | // algolia: {
29 | // apiKey: 'f417527242ae53d1f9d2913eb1ef07d4',
30 | // indexName: 'FinenBlog'
31 | // },
32 | plugins: [
33 | ['@vuepress/container', {
34 | type: 'tip',
35 | locales: {
36 | '/': {
37 | defaultInfo: 'TIP',
38 | },
39 | '/zh/': {
40 | defaultInfo: '提示',
41 | },
42 | },
43 | },{
44 | type: 'warning',
45 | locales: {
46 | '/': {
47 | defaultInfo: 'WARNING',
48 | },
49 | '/zh/': {
50 | defaultInfo: '警告',
51 | },
52 | },
53 | },{
54 | type: 'danger',
55 | locales: {
56 | '/': {
57 | defaultInfo: 'DANGER',
58 | },
59 | '/zh/': {
60 | defaultInfo: '危险',
61 | },
62 | },
63 | }],
64 | ["vuepress-plugin-valine-comment", {
65 | "COMMENT_OPTIONS": {
66 | appId: 'piM1Wm7mzq4fsj7RfCCJ7slE-gzGzoHsz',
67 | appKey: 'vdSq43byXijVSfd0Y5qY0vf8',
68 | }
69 | }]
70 | ],
71 |
72 | // plugins: [
73 | // ['@vuepress/active-header-links', {
74 | // sidebarLinkSelector: '.sidebar-link',
75 | // headerAnchorSelector: '.header-anchor'
76 | // }],
77 | // ['@vuepress/medium-zoom', {
78 | // selector: 'img.zoom-custom-imgs',
79 | // // medium-zoom options here
80 | // // See: https://github.com/francoischalifour/medium-zoom#options
81 | // options: {
82 | // margin: 16
83 | // }
84 | // }],
85 | // ['@vuepress/pwa', {
86 | // serviceWorker: true,
87 | // updatePopup: true
88 | // }],
89 | // ['@vuepress/search', {
90 | // searchMaxSuggestions: 10
91 | // }],
92 | // ['@vuepress/back-to-top', true],
93 | // ['@vuepress/container', true],
94 | // ['@vuepress/nprogress', true],
95 | // ['@vuepress/register-components', true],
96 | // ['@vuepress/google-analytics', {
97 | // ga: 'UA-131334453-1'
98 | // }]
99 | // ],
100 | theme: path.resolve(__dirname, '../../packages/vuepress-theme-tassel/lib/node/index'),
101 | // theme: path.resolve(__dirname, './packages/theme-tassel2/lib/node/index'),
102 | themeConfig: {
103 | repo: 'moremind',
104 | label: '简体中文',
105 | selectText: '选择语言',
106 | logo: null,
107 | navbar: require('./nav/index'),
108 | sidebar: [],
109 | editLink: false,
110 | editLinkText: 'Edit this page',
111 | editLinkPattern: ':repo/blob/:branch/:path',
112 | docsRepo: 'https://github.com/moremind/vuepress-blog',
113 | docsBranch: 'master',
114 | docsDir: 'docs',
115 | lastUpdated: false,
116 | lastUpdatedText: 'Last Updated',
117 | contributors: false,
118 | contributorsText: 'Contributors',
119 | backToHome: 'Back to home',
120 | toggleDarkMode: 'toggle dark mode',
121 | // navbar: require('./nav/index'),
122 | // homePage: 'HomeLayout', // Post or HomeLayout
123 | valineConfig: {
124 | appId: 'piM1Wm7mzq4fsj7RfCCJ7slE-gzGzoHsz',
125 | appKey: 'vdSq43byXijVSfd0Y5qY0vf8',
126 | notify: false,
127 | verify: false,
128 | avatar: 'mm',
129 | placeholder: 'just go go...😁😁',
130 | pageSize: 15,
131 | visitor: true,
132 | highlight: true,
133 | recordIP: true
134 | },
135 | // homeConfig: {
136 | // homeSrc: 'https://finen-1251602255.cos.ap-shanghai.myqcloud.com/blog/home/hero.png',
137 | // nickname: 'Finen',
138 | // signature: 'Stay Hungry, Stay Foolish!',
139 | // urllink1: 'https://github.com/hirCodd',
140 | // urllink1_text: 'Github',
141 | // urllink2: 'https://blog.csdn.net/HookJony',
142 | // urllink2_text: 'CSDN',
143 | // copyright: '2017-present Finen',
144 | // beian: '',
145 | // github_url: 'https://github.com/hirCodd',
146 | // github: 'hirCodd'
147 | // },
148 | // author: 'Finen',
149 | // locales: {
150 | // '/': {
151 |
152 | // // sidebar: {
153 | // // '/blog/others/git/': genGitSidebarConfig('git学习'),
154 | // //
155 | // // // linux
156 | // // '/blog/linux/': genLinuxSidebarConfig('Linux学习'),
157 | // //
158 | // // // wheel
159 | // // '/blog/others/wheel/': genWheelSidebarConfig('轮子'),
160 | // //
161 | // // '/blog/frontend/': genFrontendConfig('前端开发'),
162 | // //
163 | // // // record
164 | // // '/blog/others/life-record/': genRecordSidebarConfig('生活随笔'),
165 | // //
166 | // // // '/project/': genPorjectSidebarConfig('项目记录'),
167 | // // '/blog/others/server/': genServerSidebarConfig('服务端'),
168 | // //
169 | // // // java栏目
170 | // // '/blog/java/': genJavaArticle(),
171 | // //
172 | // // // python栏目
173 | // // '/blog/python/': genPythonArticle()
174 | // // }
175 | // }
176 | // }
177 | // },
178 | }
179 | }
180 |
181 | function genGitSidebarConfig (title) {
182 | return [
183 | {
184 | title,
185 | collapsable: false,
186 | children: [
187 | '',
188 | 'git-advanced-command',
189 | 'git-remote-command',
190 | 'git-branch-command',
191 | 'git-cooperate-develop-command'
192 | ]
193 | }
194 | ]
195 | }
196 |
197 | function genLinuxSidebarConfig (title) {
198 | return [
199 | {
200 | title,
201 | collapsable: false,
202 | children: [
203 | '',
204 | 'linux-use-root-accout-login',
205 | 'linux-ubuntu-pip-ssl-module-not-setup',
206 | 'linux-setup-usual-software',
207 | 'linux-nginx-basic-command',
208 | 'linux-python2-python3-setup-use',
209 | 'linux-manjaro'
210 | ]
211 | }
212 | ]
213 | }
214 |
215 | function genWheelSidebarConfig(title){
216 | return [
217 | {
218 | title,
219 | collapsable: false,
220 | children: [
221 | '',
222 | 'qduoj-development-record',
223 | 'vuepress'
224 | ]
225 | }
226 | ]
227 | }
228 |
229 | function genOthersSidebarConfig (title) {
230 | return [
231 | {
232 | title,
233 | collapsable: false,
234 | children: [
235 | '',
236 |
237 | ]
238 | }
239 | ]
240 | }
241 |
242 | function genRecordSidebarConfig (title) {
243 | return [
244 | {
245 | title,
246 | collapsable: false,
247 | children: [
248 | '',
249 | '2018',
250 | '2019'
251 | ]
252 | }
253 | ]
254 | }
255 |
256 | function genPorjectSidebarConfig(title){
257 | return [
258 | {
259 | title,
260 | collapsable: false,
261 | children: [
262 | '',
263 | 'qduoj-add-problem',
264 | ]
265 | }
266 | ]
267 | }
268 |
269 | function genFrontendConfig (title){
270 | return [
271 | {
272 | title,
273 | collapsable: false,
274 | children: [
275 | '',
276 | 'wxapp'
277 | ]
278 | }
279 | ]
280 | }
281 |
282 | function genJavaArticle() {
283 | return [
284 | {
285 | title: 'Java基础进阶',
286 | collapsable: true,
287 | children: [
288 | '',
289 | ]
290 | },
291 | {
292 | title: 'Spring',
293 | children: [
294 |
295 | ]
296 | },
297 | {
298 | title: 'SpringMVC',
299 | children: [
300 |
301 | ]
302 | },
303 | {
304 | title: 'SpringBoot',
305 | children: [
306 | 'springboot/spring-boot',
307 | 'springboot/principle',
308 | 'springboot/conf-file',
309 | 'springboot/profile-file',
310 | 'springboot/conf-file-loading',
311 | 'springboot/auto-configuration'
312 | ]
313 | },
314 | {
315 | title: 'Mybatis',
316 | children: [
317 | 'mybatis/mybatis-param-process',
318 | 'mybatis/mybatis-select',
319 | 'mybatis/mybatis-dynamicSQL',
320 | 'mybatis/mybatis-cache'
321 | ]
322 | },
323 | ]
324 | }
325 |
326 | function genPythonArticle(){
327 | return [
328 | {
329 | title: 'Python基础',
330 | collapsable: true,
331 | children: [
332 | '',
333 | ]
334 | },
335 | {
336 | title: 'Python爬虫',
337 | children: [
338 | 'selenium-api-docs',
339 | 'python-crawling-toutiao-picture'
340 | ]
341 | },
342 | {
343 | title: 'Python后端',
344 | children: [ /* ... */ ]
345 | },
346 | {
347 | title: 'Other',
348 | children: [ /* ... */ ]
349 | }]
350 | }
351 |
352 | function genServerSidebarConfig(title) {
353 | return [
354 | {
355 | title,
356 | collapsable: false,
357 | children: [
358 | '',
359 | 'nginx'
360 | ]
361 | }
362 | ]
363 | }
364 |
--------------------------------------------------------------------------------
/docs/.vuepress/enhanceApp.js:
--------------------------------------------------------------------------------
1 | import {Timeline, Card, Tag, Icon, Badge, Button, TimelineItem, Pagination, Row} from 'element-ui';
2 | import 'element-ui/lib/theme-chalk/index.css'
3 |
4 |
5 | export default ({
6 | Vue, // VuePress 正在使用的 Vue 构造函数
7 | options, // 附加到根实例的一些选项
8 | router, // 当前应用的路由实例
9 | siteData // 站点元数据
10 | }) => {
11 | Vue.use(Timeline);
12 | Vue.use(Card);
13 | Vue.use(Tag);
14 | Vue.use(Icon);
15 | Vue.use(Badge);
16 | Vue.use(Button);
17 | Vue.use(TimelineItem);
18 | Vue.use(Pagination);
19 | Vue.use(Row);
20 | }
21 |
--------------------------------------------------------------------------------
/docs/.vuepress/mixin.js:
--------------------------------------------------------------------------------
1 | const notification = {
2 | '/': `
3 |
4 |
Note that this is the document of 1.x , since it's still in alpha stage and things may change or break until we reach beta phase, for now we recommend that you use the 0.x in the production environment.
5 |
6 |
7 | 0.x docs: v0.vuepress.vuejs.org
8 |
9 | Install 0.x: yarn add vuepress
10 | Install 1.x alpha: yarn add vuepress@next
11 |
12 |
13 | `,
14 | '/zh/': `
15 |
16 |
请注意这是 1.x 的文档,由于目前 1.x 仍处于 alpha 阶段,在我们到达 beta 阶段之前,有些 API 可能会变化、应用也可能不够稳定,所以目前我们推荐你在生产环境中使用 0.x .
17 |
18 |
19 | 0.x 的文档: v0.vuepress.vuejs.org
20 |
21 | 安装 0.x: yarn add vuepress
22 | 安装 1.x alpha: yarn add vuepress@next
23 |
24 |
25 | `
26 | }
27 |
28 | const gotIt = {
29 | '/': 'Got it',
30 | '/zh/': '知道了'
31 | }
32 |
33 | export default {
34 | methods: {
35 | notice () {
36 | setTimeout(() => {
37 | this.$notification = this.$toasted.show(notification[this.$localePath], {
38 | containerClass: 'compatibility-notification',
39 | closeOnSwipe: false,
40 | // you can pass a single action as below
41 | action: {
42 | text: gotIt[this.$localePath],
43 | onClick: (e, toastObject) => {
44 | toastObject.goAway(0)
45 | }
46 | }
47 | })
48 | }, 500)
49 | }
50 | },
51 | watch: {
52 | '$page' () {
53 | this.$notification && this.$notification.goAway(0)
54 | },
55 | '$localePath' () {
56 | this.$notification && this.$notification.goAway(0)
57 | this.notice()
58 | }
59 | },
60 | mounted () {
61 | this.notice()
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/docs/.vuepress/nav/index.js:
--------------------------------------------------------------------------------
1 | module.exports = [
2 | {
3 | text: '文章',
4 | link: '/post/',
5 | },
6 | // {
7 | // text: "Category",
8 | // items: [
9 | // {
10 | // text: 'BackEnd',
11 | // items: [
12 | // {
13 | // text: 'Java',
14 | // link: '/blog/java/'
15 | // },
16 | // {
17 | // text: 'Python',
18 | // link: '/blog/python/'
19 | // }
20 | // ]
21 | // },
22 | // {
23 | // text: 'FrontEnd',
24 | // items: [
25 | // {
26 | // text: 'Frontend',
27 | // link: '/blog/frontend/'
28 | // }
29 | // ]
30 | // },
31 | // {
32 | // text: 'Linux',
33 | // items: [
34 | // {
35 | // text: 'Linux',
36 | // link: '/blog/linux/'
37 | // }
38 | // ]
39 | // },
40 | // {
41 | // text: 'Other',
42 | // items: [
43 | // { text: 'Git', link: '/blog/others/git/' },
44 | // { text: 'Wheel', link: '/blog/others/wheel/' },
45 | // { text: 'Server', link: '/blog/others/server/' },
46 | // { text: 'LifeRecord', link: '/blog/others/life-record/'}
47 | // ]
48 | // },
49 | // ]
50 | // },
51 | // {
52 | // text: 'Another',
53 | // items: [
54 | // {
55 | // text: 'Project',
56 | // items: [
57 | // { text: 'Project', link: '/project/'},
58 | // ]
59 | // },
60 | // {
61 | // text: 'Tools Sharing',
62 | // items: [
63 | // { text: 'Book Sharing', link: '/share/book/' },
64 | // { text: 'Software Sharing', link: '/share/software/' }
65 | // ]
66 | // },
67 | // ],
68 | // },
69 | // {
70 | // text: 'Resume',
71 | // link: '/about/'
72 | // },
73 | {
74 | text: '归档',
75 | link: '/archives/'
76 | },
77 | {
78 | text: '标签云',
79 | link: '/tags/'
80 | },
81 | {
82 | text: '友人帐',
83 | link: '/friends/'
84 | }
85 | ];
86 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/hero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/hero.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/android-chrome-512x512.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/apple-touch-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/apple-touch-icon-60x60.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/apple-touch-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/apple-touch-icon-76x76.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/apple-touch-icon.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/msapplication-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/msapplication-icon-144x144.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/icons/mstile-150x150.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/icons/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 | Created by potrace 1.11, written by Peter Selinger 2001-2013
9 |
10 |
12 |
148 |
149 |
150 |
--------------------------------------------------------------------------------
/docs/.vuepress/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/public/logo.png
--------------------------------------------------------------------------------
/docs/.vuepress/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Finen's Blog",
3 | "short_name": "Finen's Blog",
4 | "icons": [
5 | {
6 | "src": "/icons/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/icons/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "start_url": "/index.html",
17 | "display": "standalone",
18 | "background_color": "#fff",
19 | "theme_color": "#3eaf7c"
20 | }
21 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/README.md:
--------------------------------------------------------------------------------
1 | # @vuepress/theme-default
2 |
3 | > theme-default for VuePress
4 |
5 | ## Plugins
6 |
7 | The default theme has the following plugin built in:
8 |
9 | - [@vuepress/plugin-active-header-links](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-active-header-links)
10 | - [@vuepress/plugin-google-analytics](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/plugin-google-analytics)
11 | - [@vuepress/plugin-search](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/plugin-search)
12 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/AlgoliaSearchBox.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
76 |
77 |
171 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/DropdownLink.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 | {{ item.text }}
13 |
17 |
18 |
19 |
20 |
24 |
29 |
30 | {{ subItem.text }}
31 |
32 |
33 |
52 |
53 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
112 |
113 |
231 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/DropdownTransition.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
28 |
29 |
34 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
47 |
48 |
52 |
57 |
{{ feature.title }}
58 |
{{ feature.details }}
59 |
60 |
61 |
62 |
63 |
64 |
70 |
71 |
72 |
73 |
94 |
95 |
185 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/NavLink.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 | {{ item.text }}
10 |
11 |
19 | {{ item.text }}
20 |
21 |
22 |
23 |
24 |
88 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/NavLinks.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
16 |
20 |
21 |
22 |
23 |
30 | {{ repoLabel }}
31 |
32 |
33 |
34 |
35 |
36 |
124 |
125 |
158 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/Navbar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
15 | {{ $siteTitle }}
21 |
22 |
23 |
36 |
37 |
38 |
39 |
94 |
95 |
142 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/Page.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
30 |
31 |
39 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/PageEdit.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
15 |
19 | {{ lastUpdatedText }}:
20 | {{ lastUpdated }}
21 |
22 |
23 |
24 |
25 |
109 |
110 |
144 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/PageNav.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 | ←
12 |
19 | {{ prev.title || prev.path }}
20 |
21 |
22 |
23 |
24 |
29 | {{ prev.title || prev.path }}
30 |
31 |
32 |
33 |
37 |
43 | {{ next.title || next.path }}
44 |
45 |
46 |
47 |
48 |
52 | {{ next.title || next.path }}
53 |
54 | →
55 |
56 |
57 |
58 |
59 |
60 |
147 |
148 |
164 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/Sidebar.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
27 |
28 |
65 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/SidebarButton.vue:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
41 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/SidebarGroup.vue:
--------------------------------------------------------------------------------
1 |
2 |
54 |
55 |
56 |
82 |
83 |
141 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/SidebarLink.vue:
--------------------------------------------------------------------------------
1 |
103 |
104 |
134 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/components/SidebarLinks.vue:
--------------------------------------------------------------------------------
1 |
2 |
25 |
26 |
27 |
103 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/enhanceApp.js:
--------------------------------------------------------------------------------
1 | // 应用级
2 | import {Timeline, Card, Tag, Icon, Badge, Button, TimelineItem, Pagination, Row} from 'element-ui';
3 | import 'element-ui/lib/theme-chalk/index.css'
4 | import './font-awesome-4.7.0/css/font-awesome.css'
5 |
6 | export default ({
7 | Vue, // VuePress 正在使用的 Vue 构造函数
8 | options, // 附加到根实例的一些选项
9 | router, // 当前应用的路由实例
10 | siteData // 站点元数据
11 | }) => {
12 | // 应用级别的路由配置
13 | // router.addRoutes([
14 | // {
15 | // path: '/archives/',
16 | // component: () => import('@theme/components/Archives.vue')
17 | // },
18 | // {
19 | // path: '/tags/',
20 | // component: () => import('@theme/components/Tags.vue')
21 | // },
22 | // {
23 | // path: '/posts/',
24 | // component: () => import('@theme/components/Post.vue')
25 | // }
26 | // ])
27 | Vue.use(Timeline);
28 | Vue.use(Card);
29 | Vue.use(Tag);
30 | Vue.use(Icon);
31 | Vue.use(Badge);
32 | Vue.use(Button);
33 | Vue.use(TimelineItem);
34 | Vue.use(Pagination);
35 | Vue.use(Row);
36 | }
37 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/font-awesome-4.7.0/HELP-US-OUT.txt:
--------------------------------------------------------------------------------
1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
3 | comprehensive icon sets or copy and paste your own.
4 |
5 | Please. Check it out.
6 |
7 | -Dave Gandy
8 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/font-awesome-4.7.0/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/theme/font-awesome-4.7.0/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/docs/.vuepress/theme/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/docs/.vuepress/theme/global-components/Archives.vue:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
嗯..! 目前共计 {{ArchivesArrayLength}} 篇日志!继续努力。
14 |
15 |
16 |
21 |
22 | {{ item.frontmatter.title }}
23 |
24 | {{tag}}
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
105 |
132 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/global-components/Badge.vue:
--------------------------------------------------------------------------------
1 |
25 |
26 |
45 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/global-components/Comments.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
56 |
57 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/global-components/HomeLayout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 | {{config.nickname}}
11 |
12 |
13 | {{config.signature}}
14 |
15 |
16 |
17 |
18 | Get Started →
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
46 |
47 |
48 |
49 |
68 |
69 |
210 |
215 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/global-components/Post.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Posts
6 |
7 |
8 |
9 |
10 | {{ item.frontmatter.title }}
11 |
12 | {{item.excerpt}}
13 |
14 |
15 |
16 | {{ tag }}
17 |
18 |
19 | {{ item.frontmatter.date }}
20 |
21 |
22 |
23 |
24 |
30 |
31 |
32 |
33 |
53 |
54 |
55 |
56 |
128 |
164 |
195 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/global-components/Tags.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Tags Cloud
5 |
6 |
7 |
8 |
9 | {{item.tagName}} [{{item.number}}]
10 |
11 |
12 |
13 |
14 |
15 |
16 |
21 |
22 |
23 | {{ items.frontmatter.title }}
24 |
25 |
26 |
27 | {{tag}}
28 |
29 | {{ items.frontmatter.date }}
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
120 |
121 |
157 |
158 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/global-components/TitleContent.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{pages.frontmatter.title}}
5 |
6 |
7 |
8 | {{ pages.author || $site.themeConfig.author }}
9 |
10 | {{ tag }}
11 |
12 |
13 | {{ formatDate(pages.frontmatter.date) }}
14 |
15 |
16 | 1000000
17 |
18 |
19 |
20 |
21 |
22 |
23 |
46 |
47 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/index.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 |
3 | // Theme API.
4 | module.exports = (options, ctx) => {
5 | const { themeConfig, siteConfig } = ctx
6 |
7 | // resolve algolia
8 | const isAlgoliaSearch = (
9 | themeConfig.algolia
10 | || Object
11 | .keys(siteConfig.locales && themeConfig.locales || {})
12 | .some(base => themeConfig.locales[base].algolia)
13 | )
14 |
15 | const enableSmoothScroll = themeConfig.smoothScroll === true
16 |
17 | return {
18 | alias () {
19 | return {
20 | '@AlgoliaSearchBox': isAlgoliaSearch
21 | ? path.resolve(__dirname, 'components/AlgoliaSearchBox.vue')
22 | : path.resolve(__dirname, 'noopModule.js')
23 | }
24 | },
25 |
26 | plugins: [
27 | ['@vuepress/active-header-links', options.activeHeaderLinks],
28 | '@vuepress/search',
29 | '@vuepress/plugin-nprogress',
30 | ['container', {
31 | type: 'tip',
32 | defaultTitle: {
33 | '/': 'TIP',
34 | '/zh/': '提示'
35 | }
36 | }],
37 | ['container', {
38 | type: 'warning',
39 | defaultTitle: {
40 | '/': 'WARNING',
41 | '/zh/': '注意'
42 | }
43 | }],
44 | ['container', {
45 | type: 'danger',
46 | defaultTitle: {
47 | '/': 'WARNING',
48 | '/zh/': '警告'
49 | }
50 | }],
51 | ['container', {
52 | type: 'details',
53 | before: info => `${info ? `${info} ` : ''}\n`,
54 | after: () => ' \n'
55 | }],
56 | ['smooth-scroll', enableSmoothScroll]
57 | ]
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/layouts/404.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
404
5 |
6 |
{{ getMsg() }}
7 |
8 |
9 | Take me home.
10 |
11 |
12 |
13 |
14 |
15 |
31 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/layouts/Layout.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
13 |
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
152 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/noopModule.js:
--------------------------------------------------------------------------------
1 | export default {}
2 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@vuepress/theme-default",
3 | "version": "1.3.1",
4 | "description": "Default theme for VuePress",
5 | "keywords": [
6 | "documentation",
7 | "generator",
8 | "vue",
9 | "vuepress"
10 | ],
11 | "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme",
12 | "bugs": {
13 | "url": "https://github.com/vuejs/vuepress/issues"
14 | },
15 | "repository": {
16 | "type": "git",
17 | "url": "git+https://github.com/vuejs/vuepress.git",
18 | "directory": "packages/@vuepress/theme-default"
19 | },
20 | "license": "MIT",
21 | "author": "Evan You",
22 | "main": "index.js",
23 | "dependencies": {
24 | "@vuepress/plugin-active-header-links": "^1.3.1",
25 | "@vuepress/plugin-nprogress": "^1.3.1",
26 | "@vuepress/plugin-search": "^1.3.1",
27 | "docsearch.js": "^2.5.2",
28 | "lodash": "^4.17.15",
29 | "stylus": "^0.54.5",
30 | "stylus-loader": "^3.0.2",
31 | "vuepress-plugin-container": "^2.0.2",
32 | "vuepress-plugin-smooth-scroll": "^0.0.3"
33 | },
34 | "publishConfig": {
35 | "access": "public"
36 | },
37 | "maintainers": [
38 | {
39 | "name": "ULIVZ",
40 | "email": "chl814@foxmail.com"
41 | }
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/arrow.styl:
--------------------------------------------------------------------------------
1 | @require './config'
2 |
3 | .arrow
4 | display inline-block
5 | width 0
6 | height 0
7 | &.up
8 | border-left 4px solid transparent
9 | border-right 4px solid transparent
10 | border-bottom 6px solid $arrowBgColor
11 | &.down
12 | border-left 4px solid transparent
13 | border-right 4px solid transparent
14 | border-top 6px solid $arrowBgColor
15 | &.right
16 | border-top 4px solid transparent
17 | border-bottom 4px solid transparent
18 | border-left 6px solid $arrowBgColor
19 | &.left
20 | border-top 4px solid transparent
21 | border-bottom 4px solid transparent
22 | border-right 6px solid $arrowBgColor
23 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/code.styl:
--------------------------------------------------------------------------------
1 | {$contentClass}
2 | code
3 | color lighten($textColor, 20%)
4 | padding 0.25rem 0.5rem
5 | margin 0
6 | font-size 0.85em
7 | background-color rgba(27,31,35,0.05)
8 | border-radius 3px
9 | .token
10 | &.deleted
11 | color #EC5975
12 | &.inserted
13 | color $accentColor
14 |
15 | {$contentClass}
16 | pre, pre[class*="language-"]
17 | line-height 1.4
18 | padding 1.25rem 1.5rem
19 | margin 0.85rem 0
20 | background-color $codeBgColor
21 | border-radius 6px
22 | overflow auto
23 | code
24 | color #fff
25 | padding 0
26 | background-color transparent
27 | border-radius 0
28 |
29 | div[class*="language-"]
30 | position relative
31 | background-color $codeBgColor
32 | border-radius 6px
33 | .highlight-lines
34 | user-select none
35 | padding-top 1.3rem
36 | position absolute
37 | top 0
38 | left 0
39 | width 100%
40 | line-height 1.4
41 | .highlighted
42 | background-color rgba(0, 0, 0, 66%)
43 | pre, pre[class*="language-"]
44 | background transparent
45 | position relative
46 | z-index 1
47 | &::before
48 | position absolute
49 | z-index 3
50 | top 0.8em
51 | right 1em
52 | font-size 0.75rem
53 | color rgba(255, 255, 255, 0.4)
54 | &:not(.line-numbers-mode)
55 | .line-numbers-wrapper
56 | display none
57 | &.line-numbers-mode
58 | .highlight-lines .highlighted
59 | position relative
60 | &:before
61 | content ' '
62 | position absolute
63 | z-index 3
64 | left 0
65 | top 0
66 | display block
67 | width $lineNumbersWrapperWidth
68 | height 100%
69 | background-color rgba(0, 0, 0, 66%)
70 | pre
71 | padding-left $lineNumbersWrapperWidth + 1 rem
72 | vertical-align middle
73 | .line-numbers-wrapper
74 | position absolute
75 | top 0
76 | width $lineNumbersWrapperWidth
77 | text-align center
78 | color rgba(255, 255, 255, 0.3)
79 | padding 1.25rem 0
80 | line-height 1.4
81 | br
82 | user-select none
83 | .line-number
84 | position relative
85 | z-index 4
86 | user-select none
87 | font-size 0.85em
88 | &::after
89 | content ''
90 | position absolute
91 | z-index 2
92 | top 0
93 | left 0
94 | width $lineNumbersWrapperWidth
95 | height 100%
96 | border-radius 6px 0 0 6px
97 | border-right 1px solid rgba(0, 0, 0, 66%)
98 | background-color $codeBgColor
99 |
100 |
101 | for lang in $codeLang
102 | div{'[class~="language-' + lang + '"]'}
103 | &:before
104 | content ('' + lang)
105 |
106 | div[class~="language-javascript"]
107 | &:before
108 | content "js"
109 |
110 | div[class~="language-typescript"]
111 | &:before
112 | content "ts"
113 |
114 | div[class~="language-markup"]
115 | &:before
116 | content "html"
117 |
118 | div[class~="language-markdown"]
119 | &:before
120 | content "md"
121 |
122 | div[class~="language-json"]:before
123 | content "json"
124 |
125 | div[class~="language-ruby"]:before
126 | content "rb"
127 |
128 | div[class~="language-python"]:before
129 | content "py"
130 |
131 | div[class~="language-bash"]:before
132 | content "sh"
133 |
134 | div[class~="language-php"]:before
135 | content "php"
136 |
137 | @import '~prismjs/themes/prism-tomorrow.css'
138 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/config.styl:
--------------------------------------------------------------------------------
1 | $contentClass = '.theme-default-content'
2 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/custom-blocks.styl:
--------------------------------------------------------------------------------
1 | .custom-block
2 | .custom-block-title
3 | font-weight 600
4 | margin-bottom -0.4rem
5 | &.tip, &.warning, &.danger
6 | padding .1rem 1.5rem
7 | border-left-width .5rem
8 | border-left-style solid
9 | margin 1rem 0
10 | &.tip
11 | background-color #f3f5f7
12 | border-color #42b983
13 | &.warning
14 | background-color rgba(255,229,100,.3)
15 | border-color darken(#ffe564, 35%)
16 | color darken(#ffe564, 70%)
17 | .custom-block-title
18 | color darken(#ffe564, 50%)
19 | a
20 | color $textColor
21 | &.danger
22 | background-color #ffe6e6
23 | border-color darken(red, 20%)
24 | color darken(red, 70%)
25 | .custom-block-title
26 | color darken(red, 40%)
27 | a
28 | color $textColor
29 | &.details
30 | display block
31 | position relative
32 | border-radius 2px
33 | margin 1.6em 0
34 | padding 1.6em
35 | background-color #eee
36 | h4
37 | margin-top 0
38 | figure, p
39 | &:last-child
40 | margin-bottom 0
41 | padding-bottom 0
42 | summary
43 | outline none
44 | cursor pointer
45 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/index.styl:
--------------------------------------------------------------------------------
1 | @require './config'
2 | @require './code'
3 | @require './custom-blocks'
4 | @require './arrow'
5 | @require './wrapper'
6 | @require './toc'
7 |
8 | html, body
9 | padding 0
10 | margin 0
11 | background-color #fff
12 |
13 | body
14 | font-family -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif
15 | -webkit-font-smoothing antialiased
16 | -moz-osx-font-smoothing grayscale
17 | font-size 16px
18 | color $textColor
19 |
20 | .page
21 | padding-left $sidebarWidth
22 |
23 | .navbar
24 | position fixed
25 | z-index 20
26 | top 0
27 | left 0
28 | right 0
29 | height $navbarHeight
30 | background-color #fff
31 | box-sizing border-box
32 | border-bottom 1px solid $borderColor
33 |
34 | .sidebar-mask
35 | position fixed
36 | z-index 9
37 | top 0
38 | left 0
39 | width 100vw
40 | height 100vh
41 | display none
42 |
43 | .sidebar
44 | font-size 16px
45 | background-color #fff
46 | width $sidebarWidth
47 | position fixed
48 | z-index 10
49 | margin 0
50 | top $navbarHeight
51 | left 0
52 | bottom 0
53 | box-sizing border-box
54 | border-right 1px solid $borderColor
55 | overflow-y auto
56 |
57 | {$contentClass}:not(.custom)
58 | @extend $wrapper
59 | > *:first-child
60 | margin-top $navbarHeight
61 |
62 | a:hover
63 | text-decoration underline
64 |
65 | p.demo
66 | padding 1rem 1.5rem
67 | border 1px solid #ddd
68 | border-radius 4px
69 |
70 | img
71 | max-width 100%
72 |
73 | {$contentClass}.custom
74 | padding 0
75 | margin 0
76 |
77 | img
78 | max-width 100%
79 |
80 | a
81 | font-weight 500
82 | color $accentColor
83 | text-decoration none
84 |
85 | p a code
86 | font-weight 400
87 | color $accentColor
88 |
89 | kbd
90 | background #eee
91 | border solid 0.15rem #ddd
92 | border-bottom solid 0.25rem #ddd
93 | border-radius 0.15rem
94 | padding 0 0.15em
95 |
96 | blockquote
97 | font-size 1rem
98 | color #999;
99 | border-left .2rem solid #dfe2e5
100 | margin 1rem 0
101 | padding .25rem 0 .25rem 1rem
102 |
103 | & > p
104 | margin 0
105 |
106 | ul, ol
107 | padding-left 1.2em
108 |
109 | strong
110 | font-weight 600
111 |
112 | h1, h2, h3, h4, h5, h6
113 | font-weight 600
114 | line-height 1.25
115 |
116 | {$contentClass}:not(.custom) > &
117 | margin-top (0.5rem - $navbarHeight)
118 | padding-top ($navbarHeight + 1rem)
119 | margin-bottom 0
120 |
121 | &:first-child
122 | margin-top -1.5rem
123 | margin-bottom 1rem
124 |
125 | + p, + pre, + .custom-block
126 | margin-top 2rem
127 |
128 | &:hover .header-anchor
129 | opacity: 1
130 |
131 | h1
132 | font-size 2.2rem
133 |
134 | h2
135 | font-size 1.65rem
136 | padding-bottom .3rem
137 | border-bottom 1px solid $borderColor
138 |
139 | h3
140 | font-size 1.35rem
141 |
142 | a.header-anchor
143 | font-size 0.85em
144 | float left
145 | margin-left -0.87em
146 | padding-right 0.23em
147 | margin-top 0.125em
148 | opacity 0
149 |
150 | &:hover
151 | text-decoration none
152 |
153 | code, kbd, .line-number
154 | font-family source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace
155 |
156 | p, ul, ol
157 | line-height 1.7
158 |
159 | hr
160 | border 0
161 | border-top 1px solid $borderColor
162 |
163 | table
164 | border-collapse collapse
165 | margin 1rem 0
166 | display: block
167 | overflow-x: auto
168 |
169 | tr
170 | border-top 1px solid #dfe2e5
171 |
172 | &:nth-child(2n)
173 | background-color #f6f8fa
174 |
175 | th, td
176 | border 1px solid #dfe2e5
177 | padding .6em 1em
178 |
179 | .theme-container
180 | &.sidebar-open
181 | .sidebar-mask
182 | display: block
183 |
184 | &.no-navbar
185 | {$contentClass}:not(.custom) > h1, h2, h3, h4, h5, h6
186 | margin-top 1.5rem
187 | padding-top 0
188 |
189 | .sidebar
190 | top 0
191 |
192 |
193 | @media (min-width: ($MQMobile + 1px))
194 | .theme-container.no-sidebar
195 | .sidebar
196 | display none
197 |
198 | .page
199 | padding-left 0
200 |
201 | @require 'mobile.styl'
202 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/mobile.styl:
--------------------------------------------------------------------------------
1 | @require './config'
2 |
3 | $mobileSidebarWidth = $sidebarWidth * 0.82
4 |
5 | // narrow desktop / iPad
6 | @media (max-width: $MQNarrow)
7 | .sidebar
8 | font-size 15px
9 | width $mobileSidebarWidth
10 | .page
11 | padding-left $mobileSidebarWidth
12 |
13 | // wide mobile
14 | @media (max-width: $MQMobile)
15 | .sidebar
16 | top 0
17 | padding-top $navbarHeight
18 | transform translateX(-100%)
19 | transition transform .2s ease
20 | .page
21 | padding-left 0
22 | .theme-container
23 | &.sidebar-open
24 | .sidebar
25 | transform translateX(0)
26 | &.no-navbar
27 | .sidebar
28 | padding-top: 0
29 |
30 | // narrow mobile
31 | @media (max-width: $MQMobileNarrow)
32 | h1
33 | font-size 1.9rem
34 | {$contentClass}
35 | div[class*="language-"]
36 | margin 0.85rem -1.5rem
37 | border-radius 0
38 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/toc.styl:
--------------------------------------------------------------------------------
1 | .table-of-contents
2 | .badge
3 | vertical-align middle
4 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/styles/wrapper.styl:
--------------------------------------------------------------------------------
1 | $wrapper
2 | max-width $contentWidth
3 | margin 0 auto
4 | padding 2rem 2.5rem
5 | @media (max-width: $MQNarrow)
6 | padding 2rem
7 | @media (max-width: $MQMobileNarrow)
8 | padding 1.5rem
9 |
10 |
--------------------------------------------------------------------------------
/docs/.vuepress/theme/util/index.js:
--------------------------------------------------------------------------------
1 | export const hashRE = /#.*$/
2 | export const extRE = /\.(md|html)$/
3 | export const endingSlashRE = /\/$/
4 | export const outboundRE = /^[a-z]+:/i
5 |
6 | export function normalize (path) {
7 | return decodeURI(path)
8 | .replace(hashRE, '')
9 | .replace(extRE, '')
10 | }
11 |
12 | export function getHash (path) {
13 | const match = path.match(hashRE)
14 | if (match) {
15 | return match[0]
16 | }
17 | }
18 |
19 | export function isExternal (path) {
20 | return outboundRE.test(path)
21 | }
22 |
23 | export function isMailto (path) {
24 | return /^mailto:/.test(path)
25 | }
26 |
27 | export function isTel (path) {
28 | return /^tel:/.test(path)
29 | }
30 |
31 | export function ensureExt (path) {
32 | if (isExternal(path)) {
33 | return path
34 | }
35 | const hashMatch = path.match(hashRE)
36 | const hash = hashMatch ? hashMatch[0] : ''
37 | const normalized = normalize(path)
38 |
39 | if (endingSlashRE.test(normalized)) {
40 | return path
41 | }
42 | return normalized + '.html' + hash
43 | }
44 |
45 | export function isActive (route, path) {
46 | const routeHash = decodeURIComponent(route.hash)
47 | const linkHash = getHash(path)
48 | if (linkHash && routeHash !== linkHash) {
49 | return false
50 | }
51 | const routePath = normalize(route.path)
52 | const pagePath = normalize(path)
53 | return routePath === pagePath
54 | }
55 |
56 | export function resolvePage (pages, rawPath, base) {
57 | if (isExternal(rawPath)) {
58 | return {
59 | type: 'external',
60 | path: rawPath
61 | }
62 | }
63 | if (base) {
64 | rawPath = resolvePath(rawPath, base)
65 | }
66 | const path = normalize(rawPath)
67 | for (let i = 0; i < pages.length; i++) {
68 | if (normalize(pages[i].regularPath) === path) {
69 | return Object.assign({}, pages[i], {
70 | type: 'page',
71 | path: ensureExt(pages[i].path)
72 | })
73 | }
74 | }
75 | console.error(`[vuepress] No matching page found for sidebar item "${rawPath}"`)
76 | return {}
77 | }
78 |
79 | function resolvePath (relative, base, append) {
80 | const firstChar = relative.charAt(0)
81 | if (firstChar === '/') {
82 | return relative
83 | }
84 |
85 | if (firstChar === '?' || firstChar === '#') {
86 | return base + relative
87 | }
88 |
89 | const stack = base.split('/')
90 |
91 | // remove trailing segment if:
92 | // - not appending
93 | // - appending to trailing slash (last segment is empty)
94 | if (!append || !stack[stack.length - 1]) {
95 | stack.pop()
96 | }
97 |
98 | // resolve relative path
99 | const segments = relative.replace(/^\//, '').split('/')
100 | for (let i = 0; i < segments.length; i++) {
101 | const segment = segments[i]
102 | if (segment === '..') {
103 | stack.pop()
104 | } else if (segment !== '.') {
105 | stack.push(segment)
106 | }
107 | }
108 |
109 | // ensure leading slash
110 | if (stack[0] !== '') {
111 | stack.unshift('')
112 | }
113 |
114 | return stack.join('/')
115 | }
116 |
117 | /**
118 | * @param { Page } page
119 | * @param { string } regularPath
120 | * @param { SiteData } site
121 | * @param { string } localePath
122 | * @returns { SidebarGroup }
123 | */
124 | export function resolveSidebarItems (page, regularPath, site, localePath) {
125 | const { pages, themeConfig } = site
126 |
127 | const localeConfig = localePath && themeConfig.locales
128 | ? themeConfig.locales[localePath] || themeConfig
129 | : themeConfig
130 |
131 | const pageSidebarConfig = page.frontmatter.sidebar || localeConfig.sidebar || themeConfig.sidebar
132 | if (pageSidebarConfig === 'auto') {
133 | return resolveHeaders(page)
134 | }
135 |
136 | const sidebarConfig = localeConfig.sidebar || themeConfig.sidebar
137 | if (!sidebarConfig) {
138 | return []
139 | } else {
140 | const { base, config } = resolveMatchingConfig(regularPath, sidebarConfig)
141 | return config
142 | ? config.map(item => resolveItem(item, pages, base))
143 | : []
144 | }
145 | }
146 |
147 | /**
148 | * @param { Page } page
149 | * @returns { SidebarGroup }
150 | */
151 | function resolveHeaders (page) {
152 | const headers = groupHeaders(page.headers || [])
153 | return [{
154 | type: 'group',
155 | collapsable: false,
156 | title: page.title,
157 | path: null,
158 | children: headers.map(h => ({
159 | type: 'auto',
160 | title: h.title,
161 | basePath: page.path,
162 | path: page.path + '#' + h.slug,
163 | children: h.children || []
164 | }))
165 | }]
166 | }
167 |
168 | export function groupHeaders (headers) {
169 | // group h3s under h2
170 | headers = headers.map(h => Object.assign({}, h))
171 | let lastH2
172 | headers.forEach(h => {
173 | if (h.level === 2) {
174 | lastH2 = h
175 | } else if (lastH2) {
176 | (lastH2.children || (lastH2.children = [])).push(h)
177 | }
178 | })
179 | return headers.filter(h => h.level === 2)
180 | }
181 |
182 | export function resolveNavLinkItem (linkItem) {
183 | return Object.assign(linkItem, {
184 | type: linkItem.items && linkItem.items.length ? 'links' : 'link'
185 | })
186 | }
187 |
188 | /**
189 | * @param { Route } route
190 | * @param { Array | Array | [link: string]: SidebarConfig } config
191 | * @returns { base: string, config: SidebarConfig }
192 | */
193 | export function resolveMatchingConfig (regularPath, config) {
194 | if (Array.isArray(config)) {
195 | return {
196 | base: '/',
197 | config: config
198 | }
199 | }
200 | for (const base in config) {
201 | if (ensureEndingSlash(regularPath).indexOf(encodeURI(base)) === 0) {
202 | return {
203 | base,
204 | config: config[base]
205 | }
206 | }
207 | }
208 | return {}
209 | }
210 |
211 | function ensureEndingSlash (path) {
212 | return /(\.html|\/)$/.test(path)
213 | ? path
214 | : path + '/'
215 | }
216 |
217 | function resolveItem (item, pages, base, groupDepth = 1) {
218 | if (typeof item === 'string') {
219 | return resolvePage(pages, item, base)
220 | } else if (Array.isArray(item)) {
221 | return Object.assign(resolvePage(pages, item[0], base), {
222 | title: item[1]
223 | })
224 | } else {
225 | if (groupDepth > 3) {
226 | console.error(
227 | '[vuepress] detected a too deep nested sidebar group.'
228 | )
229 | }
230 | const children = item.children || []
231 | if (children.length === 0 && item.path) {
232 | return Object.assign(resolvePage(pages, item.path, base), {
233 | title: item.title
234 | })
235 | }
236 | return {
237 | type: 'group',
238 | path: item.path,
239 | title: item.title,
240 | sidebarDepth: item.sidebarDepth,
241 | children: children.map(child => resolveItem(child, pages, base, groupDepth + 1)),
242 | collapsable: item.collapsable !== false
243 | }
244 | }
245 | }
246 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | home:true
3 | ---
4 |
--------------------------------------------------------------------------------
/docs/about/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AboutMe
3 | comments: true
4 | ---
5 |
6 | ## 个人信息
7 |
8 |
9 | - Nickname:Finen(菜鸟)
10 | - 邮箱:[hefengen@hotmail.com](mailto:hefengen@hotmail.com)
11 | - 技术博客:[https://www.finen.top/](https://www.finen.top/)
12 | - Github:[https://github.com/hirCodd](https://github.com/hirCodd)
13 | - CSDN:[CSDN](https://blog.csdn.net/HookJony)
14 | - 思否:[思否](https://segmentfault.com/u/hircodd/articles)
15 |
16 | ## 联系方式
17 |
18 | - 手机:18487232698
19 | - Email:hefengen@hotmail.com
20 |
21 | ## 开发技能
22 |
23 | * C语言
24 | * 学的很扎实,但是实际开发并没有太多用,C目前做嵌入式、系统底层设计开发很好,但是并没有考虑过继续学下去。当时把C Prime Plus那本书的代码全部敲完(包括习题),把谭浩强的C语言的书的代码错误全部改完。
25 | * 个人认为C乃至后面的所有语言,如果能够熟练分析内存,就能掌握程序运行时的规则,这对学习一门语言是极其重要的。
26 | * Java(断层了一整年,没有继续写,不过当时学的时候,用Java语言程序设计(上下册的代码全部敲完,把习题也搞完))
27 | * 开发框架:SpringBoot、MyBatis、SpringMVC、Spring。
28 | * Java中最重要的也是分析内存,Jvm如何处理内存中的垃圾,gc机制,以及jvm的优化问题等等。
29 | * Python
30 | * web开发框架:Django,Flask
31 | * Flask项目:[书籍分享小程序后端](https://github.com/hirCodd/BookSharingBackend)
32 | * Django项目:[OJ二次开发](https://github.com/hirCodd/OnlineJudge)
33 | * 爬虫框架:Scrapy、PySpider
34 | * Scrapy:[爬虫及自动化加题程序](https://github.com/hirCodd/AutoAddProblem)
35 | * 其他爬虫:[other](https://github.com/hirCodd/PythonSpider)
36 |
37 | * PHP
38 | * web开发框架:Laravel、ThinkPHP
39 |
40 | * Web前端开发
41 |
42 | * 桌面端
43 |
44 | * 前端框架
45 | * vue.js(个人认为掌握vue.js的生命周期是最重要的一点!)
46 | * vue.js的ui框架:iview、vant、element(基本都是用过)
47 |
48 | * 移动端
49 |
50 | * 前端框架
51 | * mpvue(更改vue.js的runtime-core而改写的)
52 | * mpvue的ui框架:iview-weapp、vant-weapp
53 |
54 | * 移动端微信小程序项目:
55 |
56 | [微信小程序-书籍分享](https://github.com/hirCodd/BookSharing)
57 |
58 |
59 | ## 我的网站简历
60 | [简历](https://hircodd.github.io/animating-resume/public/)
61 |
62 |
--------------------------------------------------------------------------------
/docs/archives/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/docs/blog/Java/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Java百度翻译API
3 | copyright: true
4 | date: 2018-03-28 22:57:32
5 | comments: true
6 | post: true
7 | categories:
8 | - Java
9 | tags:
10 | - Java API
11 | ---
12 |
13 | ## 百度翻译工具包的下载
14 |
15 | > **以下是提供两个百度翻译翻译的工具包下载地址:**
16 |
17 | > 1.百度翻译开发者平台:
18 |
19 | [百度开发者平台](http://appcdn.fanyi.baidu.com/api/demo/java.zip)
20 |
21 | > 2.csdn的百度翻译工具包:
22 |
23 |
24 | [百度翻译工具包](http://download.csdn.net/download/hookjony/9957737)
25 |
26 |
27 | > 备注:经过本人测试,百度翻译官网下载下来的可能有问题——MD5 类有错误,所以大家可以到本人上传的第2个资源链接中下载需要使用的工具类。因为CSDN不在具有免费的资源下载,所以大家还是需要给我贡献小小的1积分,再此谢谢大家。
28 |
29 | ----------
30 |
31 | ## 百度翻译API——新建项目以及各个包文件的导入
32 | ### gson 包的下载
33 |
34 | > gson 包的下载:
35 |
36 | [gson下载](https://download.csdn.net/download/hookjony/9957777)
37 |
38 | ## 新建项目并且导入百度翻译工具包
39 |
40 | 
41 |
42 | > 新建完成之后可以直接下载下来的百度翻译工具包下的com文件夹导入到项目中(或者将com文件夹拖入到src目录下),本文导入项目再次不在一一赘述,因为更加方便打方式是可以拖入。
43 |
44 |
45 | ----------
46 |
47 |
48 | ### 导入gson包以及json包
49 | > 在项目下新建文件夹libs,并且将gson包以及json包导入libs目录下,如果需要看源码,请导入各自的源码即可。(笔者建议大家导入源码,方便大家学习)
50 |
51 | >导入后的目录结构如下
52 | 
53 |
54 |
55 | ----------
56 |
57 |
58 | ### 编写Main函数
59 | ```java
60 | package com.baidu.translate.test;
61 |
62 | import java.util.Scanner;
63 | import com.baidu.translate.demo.TransApi;
64 | import com.google.gson.Gson;
65 |
66 | public class Main {
67 |
68 | private static final String APP_ID = ""; // your ID
69 | private static final String SECURITY_KEY = ""; //your key
70 |
71 | public static void main(String[] args) {
72 | // TODO Auto-generated method stub
73 | TransApi api = new TransApi(APP_ID, SECURITY_KEY);
74 |
75 | String query = "";
76 |
77 | //通过Scanner工具类完成用户输入
78 | System.out.println("请输入需要翻译的语句(all->English):");
79 | Scanner scanner = new Scanner(System.in);
80 | query = scanner.nextLine();
81 |
82 | //通过api将语句转化为json 数据
83 | String json = api.getTransResult(query, "auto", "en");
84 |
85 | //通过gson解析
86 | Gson gson = new Gson();
87 | TranslateData data = gson.fromJson(json,TranslateData.class);
88 | String dst = data.getTrans_result().get(0).getDst();
89 |
90 | System.out.println(dst);
91 | }
92 | }
93 | ```
94 | > **上述函数的APP_ID 以及SECURITY_KEY 需要到百度开发者平台申请**
95 |
96 | > **百度翻译开发者平台:http://api.fanyi.baidu.com/api/trans/product/index**
97 |
98 |
99 | ----------
100 |
101 |
102 | ## 解析Json数据的类
103 | ### TranslateData 类
104 | ```java
105 | package com.baidu.translate.test;
106 |
107 | import java.util.List;
108 |
109 | public class TranslateData {
110 | String from;
111 | String to;
112 | List trans_result;
113 |
114 | public String getFrom() {
115 | return from;
116 | }
117 | public void setFrom(String from) {
118 | this.from = from;
119 | }
120 | public String getTo() {
121 | return to;
122 | }
123 | public void setTo(String to) {
124 | this.to = to;
125 | }
126 | public List getTrans_result() {
127 | return trans_result;
128 | }
129 | public void setTrans_result(List trans_result) {
130 | this.trans_result = trans_result;
131 | }
132 |
133 | @Override
134 | public String toString() {
135 | return "TranslateData [from=" + from + ", to=" + to + ", trans_result=" + trans_result + "]";
136 | }
137 |
138 | }
139 |
140 | ```
141 | ### TranslateResult类
142 |
143 | ```java
144 | package com.baidu.translate.test;
145 |
146 | public class TranslateResult {
147 | String src;
148 | String dst;
149 |
150 | public String getSrc() {
151 | return src;
152 | }
153 | public void setSrc(String src) {
154 | this.src = src;
155 | }
156 | public String getDst() {
157 | return dst;
158 | }
159 | public void setDst(String dst) {
160 | this.dst = dst;
161 | }
162 | @Override
163 | public String toString() {
164 | return "TransalateResult [src=" + src + ", dst=" + dst + "]";
165 | }
166 | }
167 |
168 | ```
169 |
--------------------------------------------------------------------------------
/docs/friends/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 友链
3 | date: 2018-04-27 21:13:11
4 | comments: true
5 | ---
6 |
7 | |✌️✌️名称|👍👍链接|简介:tada: :100:|
8 | | --------| :----- | :----: |
9 | |赵俊|[赵俊的博客](http://www.zhaojun.im/)|一个 Java 学习者的博客|
10 | |R'Blog|[R'Blog](http://bolg.rvich.com/)|分享资源|
11 | |Yorushika Shi|[Yorushika Shi](https://sh.yorushika.live/)|杂谈与技术|
12 | |董沅鑫|[董沅鑫的个人网站](https://godbmw.com/)|有干货 有态度 亦有你|
13 | |随遇而安|[随遇而安](https://www.iszy.cc/)|技术分享&生活吐槽|
14 | |GongJS|[GongJS](https://gongjs.github.io/)|Talk is cheap,show me the code.|
15 | |嘉美伯爵|[嘉美伯爵](https://blog.gaozhe.top)|Like author,like book.|
16 | |隔壁老王的随笔|[隔壁老王的随笔](https://dojay.cn/)|一个喜欢撸猫的前端码农的YY天地|
17 | |谭升的博客|[谭升的博客](https://face2ai.com)|人工智能算法,数学基础类原创博客|
18 | |冰水鉴心的博客|[冰水鉴心的博客](https://xq773939719.github.io/)|.软工渣.编程痴.开发宅.系统迷.强迫症|
19 | |Mulander|[Mulander](https://mulander-j.github.io/Wiki1001Pro/)|Meet 1000 Books & Unit Them Into 1 Wiki|
20 | |LmCjl在线工具|[LmCjl在线工具](https://www.lmcjl.com)||
21 | |YuYe|[YuYe](https://chenyeah.com/)|专注于前端技术|
22 | |笨小孩杂谈|[笨小孩杂谈](https://rocky-191.github.io/)|专注前端技术|
23 |
24 | ::: tip
25 |
26 | 欢迎留言提交互加友链!最好提供你网站的简介哟
27 | 如果您需要更改您的链接或者链接有错误,请联系我: [hefengen@hotmail.com](mailto:hefengen@hotmail.com)
28 | :::
29 |
30 | ::: tip 我的个人链接
31 | 昵称:Finen
32 | 链接:https://www.finen.top/
33 | 头像链接:https://finen-1251602255.cos.ap-shanghai.myqcloud.com/file/pic/finen.png
34 | 介绍:Stay Hungry! Stay Foolish!
35 | :::
--------------------------------------------------------------------------------
/docs/project/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: project
3 | ---
4 |
5 | ## project
6 | 1. [QDUOJ自动化加题程序](https://github.com/hirCodd/AutoAddProblem)
7 |
--------------------------------------------------------------------------------
/docs/project/qduoj-add-problem.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: qduoj自动化加题程序
3 | comments: true
4 | tags:
5 | - qduoj
6 | - python
7 | ---
8 |
9 | ## 缘由
10 | QDUOJ的开发以及众多OJ的题库,使得我们自动化添加题目更加轻松。前提是您需要获得各OJ的测试数据。请注意本方法只用在您的机器上运行即可,不用再OJ服务器运行!
11 |
12 | ## 概况
13 | 目前主要模块分为
14 |
15 | 爬虫部分-WebSpider
16 | * 自动化加题部分-AddProblem
17 | * 用了爬虫scrapy,并且爬虫获取到的数据相对而言文档更容易解析与添加。如果您能够通过pandoc转文件后,将文本提取出来也可以。
--------------------------------------------------------------------------------
/docs/share/book/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Books Sharing
3 | comments: true
4 | ---
5 |
6 | |ID|书名|链接|分类|说明|
7 | |:----|:----|:----|----|----|
8 | |1|Pro Git|[Pro Git](https://pan.baidu.com/s/1rKpbjEWE6weOOV0INiqVsg)|git|Pro Git是一本讲授git操作的书籍,通过此书基本能够掌握git基本操作。|
--------------------------------------------------------------------------------
/docs/share/software/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Software Sharing
3 | date: 2018-8-20 22:00:00
4 | comments: true
5 | ---
6 |
7 | |ID|名称|链接|说明|
8 | |:----|:----:|:----|----|
9 | |1|MobaXterm|[MobaXterm](https://mobaxterm.mobatek.net/download.html)|MobaXterm是一款非常好用的ssh工具|
10 | |2|Vnote|[Vnote](https://github.com/tamlok/vnote)|Vnote是一款很好用的Markdown文档编辑器,可使用于做md笔记|
11 | |3|Robo 3T|[Robo 3T](https://robomongo.org/)|Robo是一款异常好用且免费的MongoDB桌面可视化管理工具|
12 |
13 | :::tip
14 | 如果您有好用的软件欢迎留言分享!
15 | :::
--------------------------------------------------------------------------------
/docs/share/software/index2.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: vue
3 | comments: true
4 | ---
5 | ## Vuepress网站
6 | [vuepress](https://vuepress.vuejs.org/zh/)
7 |
8 | ## 开始搭建vuepress-blog
9 |
10 | ```sh
11 | # 安装
12 | yarn global add vuepress # 或者:npm install -g vuepress
13 |
14 | # 新建一个 markdown 文件
15 | echo '# Hello VuePress!' > README.md
16 |
17 | # 开始写作
18 | vuepress dev .
19 |
20 | # 构建静态文件
21 | vuepress build .
22 | ```
23 | 接着,在 `package.json` 里加一些脚本:
24 |
25 | ```json
26 | {
27 | "scripts": {
28 | "docs:dev": "vuepress dev docs",
29 | "docs:build": "vuepress build docs"
30 | }
31 | }
32 | ```
33 |
34 | yarn docs:dev # 或者:npm run docs:dev
35 |
36 |
37 | 当然这对于大多数人来说都是很简单的问题,自vuepress公开以后,有太多筒子想要vuepress添加评论系统,可是目测大佬们并没有这个想法,不过对于vue.js生态环境而言,给我们很多自己动手的可能。下面请食用我的开发方法。
38 | ## 选择一个第三方评论系统
39 | 1. gitment
40 | 2. 来必立
41 | 3. Valine
42 | 前两者都是有厚实的长城,所以我建议各位就别想了,虽然有搭建过的blog。如果有想了解的请看[VuePress 集成第三方评论模块](https://hughfenghen.github.io/fe/vuepress-gitment.html)。
43 |
44 | 我选择了Valine,请大家看。
45 | ![comment.png][1]
46 |
47 | > 看到上面是不是觉得挺好看...接下来开发
48 | ## Valine食用方法
49 | [Valine.js食用方法](https://valine.js.org/)
50 |
51 | ## 开发代码
52 | > 在Page.vue中写入以下代码:
53 |
54 | ```js
55 | mounted: function(){
56 | // require window
57 | const Valine = require('valine');
58 | if (typeof window !== 'undefined') {
59 | this.window = window
60 | window.AV = require('leancloud-storage')
61 | }
62 |
63 | new Valine({
64 | el: '#vcomments' ,
65 | appId: '',// your appId
66 | appKey: '', // your appKey
67 | notify:false,
68 | verify:false,
69 | avatar:'mm',
70 | placeholder: 'just go go'
71 | });
72 | },
73 | ```
74 | > 加入以上代码即可完成真个评论系统,然后 `yarn dev`即可看到效果!
75 |
76 | ## 我的开源项目地址
77 | [vuepress-blog](https://github.com/hirCodd/vuepress-blog) 欢迎star!mmm
78 |
79 | [我的blog](https://www.finen.tech/)
80 |
81 | [1]: https://finen-1251602255.cos.ap-shanghai.myqcloud.com/images/images/comment.png
--------------------------------------------------------------------------------
/docs/tags/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 | ## Tags Cloud
4 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "docs:dev": "vuepress dev docs",
4 | "docs:build": "vuepress build docs"
5 | },
6 | "dependencies": {
7 | "vuepress": "^2.0.0-beta.32"
8 | },
9 | "devDependencies": {
10 | "@vuepress/plugin-back-to-top": "^2.0.0-beta.32",
11 | "@vuepress/plugin-container": "^2.0.0-beta.32",
12 | "@vuepress/plugin-git": "^2.0.0-beta.32",
13 | "@vuepress/plugin-google-analytics": "^2.0.0-beta.32",
14 | "@vuepress/plugin-medium-zoom": "^2.0.0-beta.32",
15 | "@vuepress/plugin-nprogress": "^2.0.0-beta.32",
16 | "@vuepress/plugin-pwa": "^2.0.0-beta.32",
17 | "@vuepress/plugin-pwa-popup": "^2.0.0-beta.32",
18 | "@vuepress/plugin-search": "^2.0.0-beta.32",
19 | "@vuepress/plugin-toc": "^2.0.0-beta.32",
20 | "typescript": "^4.5.2",
21 | "vuepress-plugin-valine-comment": "file:E:\\MyBlog\\vuepress-blog\\packages\\vuepress-plugin-valine-comment"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/client/index.d.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/packages/vuepress-plugin-valine-comment/lib/client/index.d.ts
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/client/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/node/index..d.ts:
--------------------------------------------------------------------------------
1 | import { valineCommentPlugin } from './valineComment';
2 | export * from "./valineComment";
3 | export default valineCommentPlugin;
4 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/node/index..js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 | if (k2 === undefined) k2 = k;
4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5 | }) : (function(o, m, k, k2) {
6 | if (k2 === undefined) k2 = k;
7 | o[k2] = m[k];
8 | }));
9 | var __exportStar = (this && this.__exportStar) || function(m, exports) {
10 | for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11 | };
12 | Object.defineProperty(exports, "__esModule", { value: true });
13 | const valineComment_1 = require("./valineComment");
14 | __exportStar(require("./valineComment"), exports);
15 | exports.default = valineComment_1.valineCommentPlugin;
16 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/node/valineComment.d.ts:
--------------------------------------------------------------------------------
1 | import type { ValineOptions } from "../shared";
2 | import type { Plugin } from "@vuepress/core";
3 | export * from '../shared';
4 | export declare const valineCommentPlugin: Plugin;
5 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/node/valineComment.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 | if (k2 === undefined) k2 = k;
4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5 | }) : (function(o, m, k, k2) {
6 | if (k2 === undefined) k2 = k;
7 | o[k2] = m[k];
8 | }));
9 | var __exportStar = (this && this.__exportStar) || function(m, exports) {
10 | for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11 | };
12 | Object.defineProperty(exports, "__esModule", { value: true });
13 | exports.valineCommentPlugin = void 0;
14 | __exportStar(require("../shared"), exports);
15 | console.log("load---");
16 | const valineCommentPlugin = (options, app) => ({
17 | name: "vuepress-plugin-valine-comment"
18 | // const valeneOptions: ValineOptions = (options as ValineOptions)
19 | //
20 | // const config: PluginObject = {
21 | // name: "vuepress-plugin-valine-comment"
22 | // };
23 | //
24 | // return config;
25 | });
26 | exports.valineCommentPlugin = valineCommentPlugin;
27 | // import { addViteOptimizeDeps, getLocales } from "@mr-hope/vuepress-shared";
28 | // import { path } from "@vuepress/utils";
29 | // import { useReadingTimePlugin } from "vuepress-plugin-reading-time2";
30 | // import { usePalettePlugin } from "vuepress-plugin-sass-palette";
31 | // import { pageInfoI18n, walineI18n } from "./i18n";
32 | //
33 | // import type { CommentOptions } from "../shared";
34 | // import type { Plugin, PluginObject } from "@vuepress/core";
35 | //
36 | // export * from "../shared";
37 | //
38 | // const commentPlugin: Plugin = (options, app) => {
39 | // const { themeConfig } = app.options;
40 | // // @ts-ignore
41 | // const commentOptions: CommentOptions =
42 | // Object.keys(options).length > 0
43 | // ? (options as CommentOptions)
44 | // : (themeConfig.comment as CommentOptions) || { type: "disable" };
45 | //
46 | // addViteOptimizeDeps(app, "@waline/client");
47 | //
48 | // useReadingTimePlugin(app, { wordPerminute: options.wordPerminute });
49 | // usePalettePlugin(app, { id: "hope" });
50 | //
51 | // const config: PluginObject = {
52 | // name: "vuepress-plugin-comment2",
53 | //
54 | // alias: {
55 | // "@Waline":
56 | // commentOptions.type === "waline"
57 | // ? path.resolve(__dirname, "../client/components/Waline.js")
58 | // : "@mr-hope/vuepress-shared/client/noopModule.js",
59 | // },
60 | //
61 | // define: () => ({
62 | // COMMENT_OPTIONS: {
63 | // hint: !themeConfig.pure,
64 | // ...commentOptions,
65 | // },
66 | // PAGE_INFO_I18N: getLocales(app, pageInfoI18n, options.pageInfoLocale),
67 | // WALINE_I18N: getLocales(app, walineI18n, options.walineLocale),
68 | // }),
69 | //
70 | // clientAppEnhanceFiles: path.resolve(__dirname, "../client/appEnhance.js"),
71 | // };
72 | //
73 | // // if (commentOptions.type === "vssue")
74 | // // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
75 | // // config.plugins!.push(["@vssue/vuepress-plugin-vssue", commentOptions]);
76 | //
77 | // return config;
78 | // };
79 | //
80 | // export default commentPlugin;
81 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/shared/index.d.ts:
--------------------------------------------------------------------------------
1 | export * from './valineOptions';
2 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/shared/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 | if (k2 === undefined) k2 = k;
4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5 | }) : (function(o, m, k, k2) {
6 | if (k2 === undefined) k2 = k;
7 | o[k2] = m[k];
8 | }));
9 | var __exportStar = (this && this.__exportStar) || function(m, exports) {
10 | for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11 | };
12 | Object.defineProperty(exports, "__esModule", { value: true });
13 | __exportStar(require("./valineOptions"), exports);
14 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/shared/valineOptions.d.ts:
--------------------------------------------------------------------------------
1 | export interface ValineOptions {
2 | /**
3 | * leancloud appId
4 | */
5 | appId: string;
6 | /**
7 | * leanCloud appKey
8 | */
9 | appKey: string;
10 | /**
11 | * 评论框占位提示符
12 | */
13 | placeholder: string;
14 | /**
15 | * 类型:String
16 | * 默认值:window.location.pathname
17 | * 必要性:false
18 | */
19 | path: string;
20 | /**
21 | * 类型:String
22 | * 默认值:mp
23 | * 必要性:false
24 | */
25 | avatar: string;
26 | /**
27 | * 类型:Number
28 | * 默认值:10
29 | * 必要性:false
30 | */
31 | pageSize: number;
32 | /**
33 | * 文章访问量统计。
34 | * 类型:Boolean
35 | * 默认值:false
36 | * 必要性:false
37 | */
38 | visitor: boolean;
39 | /**
40 | * 类型:Boolean
41 | * 默认值: true
42 | * 必要性: false
43 | */
44 | highlight: boolean;
45 | /**
46 | * 类型: Boolean
47 | * 默认值: false
48 | * 必要性: false
49 | */
50 | avatarForce: boolean;
51 | /**
52 | * 类型: Boolean
53 | * 默认值: false
54 | * 必要性: false
55 | */
56 | recordIP: boolean;
57 | /**
58 | * 类型: String
59 | * 默认值: http[s]://[tab/us].avoscloud.com
60 | * 必要性: false
61 | */
62 | serverURLs: string;
63 | /**
64 | * 类型: String
65 | * 默认值:
66 | * 必要性: false
67 | */
68 | emojiCDN: string;
69 | /**
70 | * 类型: Object
71 | * 默认值: null
72 | * 必要性: false
73 | */
74 | emojiMaps: object;
75 | /**
76 | * 类型: Boolean
77 | * 默认值: false
78 | * 必要性: false
79 | */
80 | enableQQ: boolean;
81 | }
82 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/lib/shared/valineOptions.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuepress-plugin-valine-comment",
3 | "version": "1.0.0",
4 | "main": "lib/node/index.js",
5 | "types": "lib/node/index.d.ts",
6 | "license": "MIT",
7 | "files": [
8 | "lib"
9 | ],
10 | "scripts": {
11 | "build": "tsc -b tsconfig.build.json",
12 | "clean": "rimraf lib *.tsbuildinfo",
13 | "copy": "cpx \"src/**/*.{css,svg}\" lib"
14 | },
15 | "dependencies": {
16 | "@vuepress/core": "2.0.0-beta.32",
17 | "@vuepress/utils": "2.0.0-beta.32",
18 | "ts-debounce": "^4.0.0",
19 | "vue": "^3.2.24"
20 | },
21 | "devDependencies": {
22 | "valine": "^1.4.16"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/src/client/component/Comment.vue:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 | heelo
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/src/client/index.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moremind/vuepress-blog/f113f75b59c0cb0797cb679eba76182bf86985b4/packages/vuepress-plugin-valine-comment/src/client/index.ts
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/src/node/index..ts:
--------------------------------------------------------------------------------
1 | import { valineCommentPlugin } from './valineComment'
2 |
3 | export * from "./valineComment"
4 |
5 | export default valineCommentPlugin
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/src/node/valineComment.ts:
--------------------------------------------------------------------------------
1 | import { logger, path } from '@vuepress/utils';
2 |
3 | import type { ValineOptions } from "../shared";
4 |
5 | import type { Plugin, PluginObject } from "@vuepress/core";
6 |
7 |
8 | export * from '../shared';
9 | console.log("load---")
10 | export const valineCommentPlugin: Plugin = (options, app) => ({
11 |
12 | name: "vuepress-plugin-valine-comment"
13 |
14 | // const valeneOptions: ValineOptions = (options as ValineOptions)
15 | //
16 | // const config: PluginObject = {
17 | // name: "vuepress-plugin-valine-comment"
18 | // };
19 | //
20 | // return config;
21 |
22 | });
23 |
24 |
25 |
26 |
27 |
28 | // import { addViteOptimizeDeps, getLocales } from "@mr-hope/vuepress-shared";
29 | // import { path } from "@vuepress/utils";
30 | // import { useReadingTimePlugin } from "vuepress-plugin-reading-time2";
31 | // import { usePalettePlugin } from "vuepress-plugin-sass-palette";
32 | // import { pageInfoI18n, walineI18n } from "./i18n";
33 | //
34 | // import type { CommentOptions } from "../shared";
35 | // import type { Plugin, PluginObject } from "@vuepress/core";
36 | //
37 | // export * from "../shared";
38 | //
39 | // const commentPlugin: Plugin = (options, app) => {
40 | // const { themeConfig } = app.options;
41 | // // @ts-ignore
42 | // const commentOptions: CommentOptions =
43 | // Object.keys(options).length > 0
44 | // ? (options as CommentOptions)
45 | // : (themeConfig.comment as CommentOptions) || { type: "disable" };
46 | //
47 | // addViteOptimizeDeps(app, "@waline/client");
48 | //
49 | // useReadingTimePlugin(app, { wordPerminute: options.wordPerminute });
50 | // usePalettePlugin(app, { id: "hope" });
51 | //
52 | // const config: PluginObject = {
53 | // name: "vuepress-plugin-comment2",
54 | //
55 | // alias: {
56 | // "@Waline":
57 | // commentOptions.type === "waline"
58 | // ? path.resolve(__dirname, "../client/components/Waline.js")
59 | // : "@mr-hope/vuepress-shared/client/noopModule.js",
60 | // },
61 | //
62 | // define: () => ({
63 | // COMMENT_OPTIONS: {
64 | // hint: !themeConfig.pure,
65 | // ...commentOptions,
66 | // },
67 | // PAGE_INFO_I18N: getLocales(app, pageInfoI18n, options.pageInfoLocale),
68 | // WALINE_I18N: getLocales(app, walineI18n, options.walineLocale),
69 | // }),
70 | //
71 | // clientAppEnhanceFiles: path.resolve(__dirname, "../client/appEnhance.js"),
72 | // };
73 | //
74 | // // if (commentOptions.type === "vssue")
75 | // // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
76 | // // config.plugins!.push(["@vssue/vuepress-plugin-vssue", commentOptions]);
77 | //
78 | // return config;
79 | // };
80 | //
81 | // export default commentPlugin;
82 |
83 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/src/shared/index.ts:
--------------------------------------------------------------------------------
1 | export * from './valineOptions'
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/src/shared/valineOptions.ts:
--------------------------------------------------------------------------------
1 | export interface ValineOptions {
2 |
3 | /**
4 | * leancloud appId
5 | */
6 | appId: string;
7 |
8 | /**
9 | * leanCloud appKey
10 | */
11 | appKey: string;
12 |
13 | /**
14 | * 评论框占位提示符
15 | */
16 | placeholder: string;
17 |
18 | /**
19 | * 类型:String
20 | * 默认值:window.location.pathname
21 | * 必要性:false
22 | */
23 | path: string;
24 |
25 | /**
26 | * 类型:String
27 | * 默认值:mp
28 | * 必要性:false
29 | */
30 | avatar: string;
31 |
32 | /**
33 | * 类型:Number
34 | * 默认值:10
35 | * 必要性:false
36 | */
37 | pageSize: number;
38 |
39 | /**
40 | * 文章访问量统计。
41 | * 类型:Boolean
42 | * 默认值:false
43 | * 必要性:false
44 | */
45 | visitor: boolean;
46 |
47 | /**
48 | * 类型:Boolean
49 | * 默认值: true
50 | * 必要性: false
51 | */
52 | highlight: boolean;
53 |
54 | /**
55 | * 类型: Boolean
56 | * 默认值: false
57 | * 必要性: false
58 | */
59 | avatarForce: boolean;
60 |
61 | /**
62 | * 类型: Boolean
63 | * 默认值: false
64 | * 必要性: false
65 | */
66 | recordIP: boolean;
67 |
68 | /**
69 | * 类型: String
70 | * 默认值: http[s]://[tab/us].avoscloud.com
71 | * 必要性: false
72 | */
73 | serverURLs: string;
74 |
75 | /**
76 | * 类型: String
77 | * 默认值:
78 | * 必要性: false
79 | */
80 | emojiCDN: string;
81 |
82 | /**
83 | * 类型: Object
84 | * 默认值: null
85 | * 必要性: false
86 | */
87 | emojiMaps: object;
88 |
89 | /**
90 | * 类型: Boolean
91 | * 默认值: false
92 | * 必要性: false
93 | */
94 | enableQQ: boolean;
95 |
96 |
97 |
98 |
99 | }
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.base.json",
3 | "references": [
4 | // { "path": "./core/tsconfig.build.json" },
5 | // { "path": "../utils/tsconfig.build.json" },
6 | { "path": "./tsconfig.esm.json" },
7 | { "path": "./tsconfig.cjs.json" }
8 | ],
9 | "files": []
10 | }
11 |
12 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.base.json",
3 | "compilerOptions": {
4 | "module": "CommonJS",
5 | "rootDir": "./src",
6 | "outDir": "./lib"
7 | },
8 | "include": ["src/**/*.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/vuepress-plugin-valine-comment/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.base.json",
3 | "compilerOptions": {
4 | "module": "ES2020",
5 | "rootDir": "./src",
6 | "outDir": "./lib"
7 | },
8 | "include": ["src/**/*.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/vuepress-theme-tassel/lib/global/Comments.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
22 |
23 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/packages/vuepress-theme-tassel/lib/global/HomeLayout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 | {{config.nickname}}
11 |
12 |
13 | {{config.signature}}
14 |
15 |
16 |
17 |
18 | Get Started →
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
46 |
47 |
48 |
49 |
68 |
69 |
210 |
215 |
--------------------------------------------------------------------------------
/packages/vuepress-theme-tassel/lib/layouts/Layout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
21 |
22 |
--------------------------------------------------------------------------------
/packages/vuepress-theme-tassel/lib/node/index.js:
--------------------------------------------------------------------------------
1 | const { path } = require('@vuepress/utils')
2 |
3 | module.exports = {
4 | // 你的主题
5 | name: 'vuepress-theme-tassel',
6 | // 要继承的父主题
7 | extends: '@vuepress/theme-default',
8 | // 覆盖父主题的布局
9 | layouts: {
10 | Layout: path.resolve(__dirname, '../layouts/Layout.vue'),
11 | },
12 | }
--------------------------------------------------------------------------------
/packages/vuepress-theme-tassel/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuepress-theme-tassel",
3 | "version": "1.0.0",
4 | "main": "lib/node/index.js",
5 | "license": "MIT",
6 | "files": [
7 | "lib"
8 | ],
9 | "devDependencies": {
10 | "valine": "^1.4.16"
11 | },
12 | "dependencies": {
13 | "vuepress-plugin-valine-comment": "1.0.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | certifi==2019.3.9
2 | chardet==3.0.4
3 | cos-python-sdk-v5==1.6.6
4 | coscmd==1.8.5.32
5 | DateTime==4.3
6 | dicttoxml==1.7.4
7 | idna==2.8
8 | prettytable==0.7.2
9 | pytz==2018.9
10 | PyYAML==5.4
11 | requests==2.21.0
12 | six==1.12.0
13 | tqdm==4.31.1
14 | urllib3==1.26.5
15 | zope.interface==4.6.0
16 |
--------------------------------------------------------------------------------
/scripts/deploy-cos.sh:
--------------------------------------------------------------------------------
1 | # 部署到腾讯云cos
2 | coscmd upload -r /blog/vuepress/ /
--------------------------------------------------------------------------------
/scripts/deploy-gh.sh:
--------------------------------------------------------------------------------
1 | # cd vuepress
2 | # git init
3 | # git add -A
4 | # git commit -m 'deploy'
5 | # git push -f git@github.com:docschina/vuepress.git master:gh-pages
6 |
7 |
8 | # 确保脚本抛出遇到的错误
9 | # set -e
10 |
11 | # # 生成静态文件
12 | # npm run docs:build
13 |
14 | # 进入生成的文件夹
15 | cd ..
16 | cd vuepress
17 |
18 | # 如果是发布到自定义域名
19 | # echo 'www.finen.top' > CNAME
20 | # 初始化git仓库
21 | git init
22 | git add -A
23 | git commit -m 'update'
24 |
25 | # 如果发布到 https://.github.io
26 | # git push -f git@github.com:/.github.io.git master
27 |
28 | # 如果发布到 https://.github.io/
29 | #git push -f git@git.coding.net:aqazzz/Finen.git master
30 | git push -f git@github.com:hirCodd/Finen.git master
31 |
32 | cd -
33 |
--------------------------------------------------------------------------------
/scripts/release.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo "Select a option to release (input a serial number):"
4 | echo
5 |
6 | select VERSION in patch minor major "Specific Version"
7 | do
8 | echo
9 | if [[ $REPLY =~ ^[1-4]$ ]]; then
10 | if [[ $REPLY == 4 ]]; then
11 | read -p "Enter a specific version: " -r VERSION
12 | echo
13 | if [[ -z $REPLY ]]; then
14 | VERSION=$REPLY
15 | fi
16 | fi
17 |
18 | read -p "Release $VERSION - are you sure? (y/n) " -n 1 -r
19 | echo
20 |
21 | if [[ $REPLY =~ ^[Yy]$ || -z $REPLY ]]; then
22 | # pre release task
23 | npm run lint
24 | npm run test
25 |
26 | # bump version
27 | npm version $VERSION
28 | NEW_VERSION=$(node -p "require('./package.json').version")
29 | echo Releasing ${NEW_VERSION} ...
30 |
31 | # npm release
32 | npm whoami
33 | npm publish
34 | echo "✅ Released to npm."
35 |
36 | # github release
37 | git add CHANGELOG.md
38 | git commit -m "chore: changelog"
39 | git push
40 | git push origin refs/tags/v${NEW_VERSION}
41 | echo "✅ Released to Github."
42 | else
43 | echo Cancelled
44 | fi
45 | break
46 | else
47 | echo Invalid \"${REPLY}\"
48 | echo "To continue, please input a serial number(1-4) of an option."
49 | echo
50 | fi
51 | done
52 |
53 |
--------------------------------------------------------------------------------
/tsconfig.base.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "declaration": true,
5 | "declarationMap": false,
6 | "lib": ["DOM", "ES2020"],
7 | "moduleResolution": "node",
8 | "newLine": "lf",
9 | "noEmitOnError": true,
10 | "noImplicitAny": false,
11 | "resolveJsonModule": true,
12 | "skipLibCheck": true,
13 | "sourceMap": false,
14 | "strict": true,
15 | "strictNullChecks": true,
16 | "target": "ES2018"
17 | }
18 | }
--------------------------------------------------------------------------------
/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.base.json",
3 | "references": [
4 | { "path": "./packages/vupress-plugin-valine-comment/tsconfig.build.json" },
5 | // { "path": "./packages/@vuepress/bundler-vite/tsconfig.build.json" },
6 | // { "path": "./packages/@vuepress/bundler-webpack/tsconfig.build.json" },
7 | // { "path": "./packages/@vuepress/cli/tsconfig.build.json" },
8 | // { "path": "./packages/@vuepress/client/tsconfig.build.json" },
9 | // { "path": "./packages/@vuepress/core/tsconfig.build.json" },
10 | // { "path": "./packages/@vuepress/markdown/tsconfig.build.json" },
11 | // {
12 | // "path": "./packages/@vuepress/plugin-active-header-links/tsconfig.build.json"
13 | // },
14 | // { "path": "./packages/@vuepress/plugin-back-to-top/tsconfig.build.json" },
15 | // { "path": "./packages/@vuepress/plugin-container/tsconfig.build.json" },
16 | // { "path": "./packages/@vuepress/plugin-debug/tsconfig.build.json" },
17 | // { "path": "./packages/@vuepress/plugin-docsearch/tsconfig.build.json" },
18 | // {
19 | // "path": "./packages/@vuepress/plugin-external-link-icon/tsconfig.build.json"
20 | // },
21 | // { "path": "./packages/@vuepress/plugin-git/tsconfig.build.json" },
22 | // {
23 | // "path": "./packages/@vuepress/plugin-google-analytics/tsconfig.build.json"
24 | // },
25 | // { "path": "./packages/@vuepress/plugin-medium-zoom/tsconfig.build.json" },
26 | // { "path": "./packages/@vuepress/plugin-nprogress/tsconfig.build.json" },
27 | // {
28 | // "path": "./packages/@vuepress/plugin-palette/tsconfig.build.json"
29 | // },
30 | // {
31 | // "path": "./packages/@vuepress/plugin-prismjs/tsconfig.build.json"
32 | // },
33 | // { "path": "./packages/@vuepress/plugin-pwa/tsconfig.build.json" },
34 | // { "path": "./packages/@vuepress/plugin-pwa-popup/tsconfig.build.json" },
35 | // {
36 | // "path": "./packages/@vuepress/plugin-register-components/tsconfig.build.json"
37 | // },
38 | // { "path": "./packages/@vuepress/plugin-search/tsconfig.build.json" },
39 | // { "path": "./packages/@vuepress/plugin-shiki/tsconfig.build.json" },
40 | // { "path": "./packages/@vuepress/plugin-theme-data/tsconfig.build.json" },
41 | // { "path": "./packages/@vuepress/plugin-toc/tsconfig.build.json" },
42 | // { "path": "./packages/@vuepress/shared/tsconfig.build.json" },
43 | // { "path": "./packages/@vuepress/theme-default/tsconfig.build.json" },
44 | // { "path": "./packages/@vuepress/utils/tsconfig.build.json" },
45 | // { "path": "./packages/vuepress/tsconfig.build.json" },
46 | // { "path": "./packages/vuepress-vite/tsconfig.build.json" },
47 | // { "path": "./packages/vuepress-webpack/tsconfig.build.json" }
48 | ],
49 | "files": []
50 | }
51 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.base.json",
3 | "compilerOptions": {
4 | "baseUrl": "./",
5 | "module": "ES2020",
6 | "paths": {
7 | "@internal/searchIndex": [
8 | "./packages/@vuepress/plugin-search/src/client/searchIndex"
9 | ],
10 | "@internal/themeData": [
11 | "./packages/@vuepress/plugin-theme-data/src/client/themeData"
12 | ],
13 | "@internal/*": ["./packages/@vuepress/client/src/types/internal/*"],
14 | "@vuepress/*": ["./packages/@vuepress/*/src"],
15 | "vuepress": ["./packages/vuepress/src"],
16 | "vuepress-vite": ["./packages/vuepress-vite/src"],
17 | "vuepress-webpack": ["./packages/vuepress-webpack/src"]
18 | },
19 | "types": ["webpack-env", "vite/client", "@types/jest"]
20 | },
21 | "include": ["**/.vuepress/**/*", "packages/**/*"],
22 | "exclude": ["node_modules", ".temp", "lib", "dist"]
23 | }
24 |
--------------------------------------------------------------------------------