vuepress初始模板

This commit is contained in:
罗佳鸿 2024-08-13 09:27:52 +08:00
commit f2b259b599
5443 changed files with 1152000 additions and 0 deletions

47
.github/workflows/deploy-docs.yml vendored Normal file
View File

@ -0,0 +1,47 @@
name: 部署文档
on:
push:
branches:
# 确保这是你正在使用的分支名称
- main
permissions:
contents: write
jobs:
deploy-gh-pages:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# 如果你文档需要 Git 子模块,取消注释下一行
# submodules: true
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: npm
- name: 安装依赖
run: npm ci
- name: 构建文档
env:
NODE_OPTIONS: --max_old_space_size=8192
run: |-
npm run docs:build
> docs/.vuepress/dist/.nojekyll
- name: 部署文档
uses: JamesIves/github-pages-deploy-action@v4
with:
# 这是文档部署到的分支名称
branch: gh-pages
folder: docs/.vuepress/dist

View File

@ -0,0 +1,11 @@
import {
isPerformanceSupported,
now,
setupDevtoolsPlugin
} from "./chunk-UKCZNIRO.js";
export {
isPerformanceSupported,
now,
setupDevtoolsPlugin
};
//# sourceMappingURL=@vue_devtools-api.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@ -0,0 +1,136 @@
// node_modules/@vuepress/shared/dist/index.js
var isLinkWithProtocol = (link) => /^[a-z][a-z0-9+.-]*:/.test(link) || link.startsWith("//");
var markdownLinkRegexp = /.md((\?|#).*)?$/;
var isLinkExternal = (link, base = "/") => isLinkWithProtocol(link) || // absolute link that does not start with `base` and does not end with `.md`
link.startsWith("/") && !link.startsWith(base) && !markdownLinkRegexp.test(link);
var isLinkHttp = (link) => /^(https?:)?\/\//.test(link);
var inferRoutePath = (path) => {
if (!path || path.endsWith("/")) return path;
let routePath = path.replace(/(^|\/)README.md$/i, "$1index.html");
if (routePath.endsWith(".md")) {
routePath = routePath.substring(0, routePath.length - 3) + ".html";
} else if (!routePath.endsWith(".html")) {
routePath = routePath + ".html";
}
if (routePath.endsWith("/index.html")) {
routePath = routePath.substring(0, routePath.length - 10);
}
return routePath;
};
var FAKE_HOST = "http://.";
var normalizeRoutePath = (pathname, current) => {
if (!pathname.startsWith("/") && current) {
const loc = current.slice(0, current.lastIndexOf("/"));
return inferRoutePath(new URL(`${loc}/${pathname}`, FAKE_HOST).pathname);
}
return inferRoutePath(pathname);
};
var resolveLocalePath = (locales, routePath) => {
const localePaths = Object.keys(locales).sort((a, b) => {
const levelDelta = b.split("/").length - a.split("/").length;
if (levelDelta !== 0) {
return levelDelta;
}
return b.length - a.length;
});
for (const localePath of localePaths) {
if (routePath.startsWith(localePath)) {
return localePath;
}
}
return "/";
};
var resolveRoutePathFromUrl = (url, base = "/") => {
const pathname = url.replace(/^(?:https?:)?\/\/[^/]*/, "");
return pathname.startsWith(base) ? `/${pathname.slice(base.length)}` : pathname;
};
var SPLIT_CHAR_REGEXP = /(#|\?)/;
var splitPath = (path) => {
const [pathname, ...hashAndQueries] = path.split(SPLIT_CHAR_REGEXP);
return {
pathname,
hashAndQueries: hashAndQueries.join("")
};
};
var TAGS_ALLOWED = ["link", "meta", "script", "style", "noscript", "template"];
var TAGS_UNIQUE = ["title", "base"];
var resolveHeadIdentifier = ([tag, attrs, content]) => {
if (TAGS_UNIQUE.includes(tag)) {
return tag;
}
if (!TAGS_ALLOWED.includes(tag)) {
return null;
}
if (tag === "meta" && attrs.name) {
return `${tag}.${attrs.name}`;
}
if (tag === "template" && attrs.id) {
return `${tag}.${attrs.id}`;
}
return JSON.stringify([
tag,
Object.entries(attrs).map(([key, value]) => {
if (typeof value === "boolean") {
return value ? [key, ""] : null;
}
return [key, value];
}).filter((item) => item != null).sort(([keyA], [keyB]) => keyA.localeCompare(keyB)),
content
]);
};
var dedupeHead = (head) => {
const identifierSet = /* @__PURE__ */ new Set();
const result = [];
head.forEach((item) => {
const identifier = resolveHeadIdentifier(item);
if (identifier && !identifierSet.has(identifier)) {
identifierSet.add(identifier);
result.push(item);
}
});
return result;
};
var ensureLeadingSlash = (str) => str[0] === "/" ? str : `/${str}`;
var ensureEndingSlash = (str) => str[str.length - 1] === "/" || str.endsWith(".html") ? str : `${str}/`;
var formatDateString = (str, defaultDateString = "") => {
const dateMatch = str.match(/\b(\d{4})-(\d{1,2})-(\d{1,2})\b/);
if (dateMatch === null) {
return defaultDateString;
}
const [, yearStr, monthStr, dayStr] = dateMatch;
return [yearStr, monthStr.padStart(2, "0"), dayStr.padStart(2, "0")].join("-");
};
var omit = (obj, ...keys) => {
const result = { ...obj };
for (const key of keys) {
delete result[key];
}
return result;
};
var removeEndingSlash = (str) => str[str.length - 1] === "/" ? str.slice(0, -1) : str;
var removeLeadingSlash = (str) => str[0] === "/" ? str.slice(1) : str;
var isFunction = (val) => typeof val === "function";
var isPlainObject = (val) => Object.prototype.toString.call(val) === "[object Object]";
var isString = (val) => typeof val === "string";
export {
dedupeHead,
ensureEndingSlash,
ensureLeadingSlash,
formatDateString,
inferRoutePath,
isFunction,
isLinkExternal,
isLinkHttp,
isLinkWithProtocol,
isPlainObject,
isString,
normalizeRoutePath,
omit,
removeEndingSlash,
removeLeadingSlash,
resolveHeadIdentifier,
resolveLocalePath,
resolveRoutePathFromUrl,
splitPath
};
//# sourceMappingURL=@vuepress_shared.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,40 @@
{
"hash": "78a82a1c",
"configHash": "ef6a287c",
"lockfileHash": "b781e717",
"browserHash": "e62197b4",
"optimized": {
"@vue/devtools-api": {
"src": "../../../../node_modules/@vue/devtools-api/lib/esm/index.js",
"file": "@vue_devtools-api.js",
"fileHash": "e8b02faa",
"needsInterop": false
},
"@vuepress/shared": {
"src": "../../../../node_modules/@vuepress/shared/dist/index.js",
"file": "@vuepress_shared.js",
"fileHash": "e10ff55e",
"needsInterop": false
},
"vue": {
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "410a45c2",
"needsInterop": false
},
"vue-router": {
"src": "../../../../node_modules/vue-router/dist/vue-router.esm-bundler.js",
"file": "vue-router.js",
"fileHash": "6fe1e35d",
"needsInterop": false
}
},
"chunks": {
"chunk-UKCZNIRO": {
"file": "chunk-UKCZNIRO.js"
},
"chunk-CNGU7YNB": {
"file": "chunk-CNGU7YNB.js"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,164 @@
// node_modules/@vue/devtools-api/lib/esm/env.js
function getDevtoolsGlobalHook() {
return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;
}
function getTarget() {
return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : {};
}
var isProxyAvailable = typeof Proxy === "function";
// node_modules/@vue/devtools-api/lib/esm/const.js
var HOOK_SETUP = "devtools-plugin:setup";
var HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set";
// node_modules/@vue/devtools-api/lib/esm/time.js
var supported;
var perf;
function isPerformanceSupported() {
var _a;
if (supported !== void 0) {
return supported;
}
if (typeof window !== "undefined" && window.performance) {
supported = true;
perf = window.performance;
} else if (typeof globalThis !== "undefined" && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {
supported = true;
perf = globalThis.perf_hooks.performance;
} else {
supported = false;
}
return supported;
}
function now() {
return isPerformanceSupported() ? perf.now() : Date.now();
}
// node_modules/@vue/devtools-api/lib/esm/proxy.js
var ApiProxy = class {
constructor(plugin, hook) {
this.target = null;
this.targetQueue = [];
this.onQueue = [];
this.plugin = plugin;
this.hook = hook;
const defaultSettings = {};
if (plugin.settings) {
for (const id in plugin.settings) {
const item = plugin.settings[id];
defaultSettings[id] = item.defaultValue;
}
}
const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;
let currentSettings = Object.assign({}, defaultSettings);
try {
const raw = localStorage.getItem(localSettingsSaveId);
const data = JSON.parse(raw);
Object.assign(currentSettings, data);
} catch (e) {
}
this.fallbacks = {
getSettings() {
return currentSettings;
},
setSettings(value) {
try {
localStorage.setItem(localSettingsSaveId, JSON.stringify(value));
} catch (e) {
}
currentSettings = value;
},
now() {
return now();
}
};
if (hook) {
hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {
if (pluginId === this.plugin.id) {
this.fallbacks.setSettings(value);
}
});
}
this.proxiedOn = new Proxy({}, {
get: (_target, prop) => {
if (this.target) {
return this.target.on[prop];
} else {
return (...args) => {
this.onQueue.push({
method: prop,
args
});
};
}
}
});
this.proxiedTarget = new Proxy({}, {
get: (_target, prop) => {
if (this.target) {
return this.target[prop];
} else if (prop === "on") {
return this.proxiedOn;
} else if (Object.keys(this.fallbacks).includes(prop)) {
return (...args) => {
this.targetQueue.push({
method: prop,
args,
resolve: () => {
}
});
return this.fallbacks[prop](...args);
};
} else {
return (...args) => {
return new Promise((resolve) => {
this.targetQueue.push({
method: prop,
args,
resolve
});
});
};
}
}
});
}
async setRealTarget(target) {
this.target = target;
for (const item of this.onQueue) {
this.target.on[item.method](...item.args);
}
for (const item of this.targetQueue) {
item.resolve(await this.target[item.method](...item.args));
}
}
};
// node_modules/@vue/devtools-api/lib/esm/index.js
function setupDevtoolsPlugin(pluginDescriptor, setupFn) {
const descriptor = pluginDescriptor;
const target = getTarget();
const hook = getDevtoolsGlobalHook();
const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;
if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {
hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);
} else {
const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;
const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];
list.push({
pluginDescriptor: descriptor,
setupFn,
proxy
});
if (proxy) {
setupFn(proxy.proxiedTarget);
}
}
}
export {
isPerformanceSupported,
now,
setupDevtoolsPlugin
};
//# sourceMappingURL=chunk-UKCZNIRO.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
{
"type": "module"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,323 @@
import {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
compile,
computed,
createApp,
createBaseVNode,
createBlock,
createCommentVNode,
createElementBlock,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useModel,
useSSRContext,
useSlots,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
} from "./chunk-CNGU7YNB.js";
export {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
compile,
computed,
createApp,
createBlock,
createCommentVNode,
createElementBlock,
createBaseVNode as createElementVNode,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useModel,
useSSRContext,
useSlots,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
};
//# sourceMappingURL=vue.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@ -0,0 +1,13 @@
export const categoriesMap = {"category":{"/":{"path":"/category/","map":{"History":{"path":"/category/history/","indexes":[0,1]},"CategoryA":{"path":"/category/categorya/","indexes":[2,3,4,5,6,7,8,9,10,11,12,13]},"CategoryB":{"path":"/category/categoryb/","indexes":[2,3,4,5,6,7,8,10,11,12]},"CategoryC":{"path":"/category/categoryc/","indexes":[14,15]}}}},"tag":{"/":{"path":"/tag/","map":{"WWI":{"path":"/tag/wwi/","indexes":[1]},"WWII":{"path":"/tag/wwii/","indexes":[0]},"tag A":{"path":"/tag/tag-a/","indexes":[5,6,7,8,9,13]},"tag B":{"path":"/tag/tag-b/","indexes":[5,6,7,8,9,13]},"tag C":{"path":"/tag/tag-c/","indexes":[2,3,4,10,11,12]},"tag D":{"path":"/tag/tag-d/","indexes":[2,3,4,10,11,12]},"tag E":{"path":"/tag/tag-e/","indexes":[14,15]}}}}};
if (import.meta.webpackHot) {
import.meta.webpackHot.accept();
if (__VUE_HMR_RUNTIME__.updateBlogCategory)
__VUE_HMR_RUNTIME__.updateBlogCategory(categoriesMap);
}
if (import.meta.hot)
import.meta.hot.accept(({ categoriesMap }) => {
__VUE_HMR_RUNTIME__.updateBlogCategory(categoriesMap);
});

View File

@ -0,0 +1 @@
export const store = ["/posts/archive2.html","/posts/archive1.html","/posts/article9.html","/posts/article8.html","/posts/article7.html","/posts/article6.html","/posts/article5.html","/posts/article4.html","/posts/article3.html","/posts/article2.html","/posts/article12.html","/posts/article11.html","/posts/article10.html","/posts/article1.html","/posts/sticky2.html","/posts/sticky.html"];

View File

@ -0,0 +1,14 @@
export const typesMap = {"article":{"/":{"path":"/article/","indexes":[14,15,10,11,12,2,3,4,5,6,7,8,9,13]}},"timeline":{"/":{"path":"/timeline/","indexes":[10,11,12,2,3,4,5,6,7,8,9,13,15,14,0,1]}}};
if (import.meta.webpackHot) {
import.meta.webpackHot.accept();
if (__VUE_HMR_RUNTIME__.updateBlogType)
__VUE_HMR_RUNTIME__.updateBlogType(typesMap);
}
if (import.meta.hot)
import.meta.hot.accept(({ typesMap }) => {
__VUE_HMR_RUNTIME__.updateBlogType(typesMap);
});

View File

@ -0,0 +1,21 @@
import * as clientConfig0 from 'D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/plugin-active-header-links/lib/client/config.js'
import * as clientConfig1 from 'D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/plugin-back-to-top/lib/client/config.js'
import * as clientConfig2 from 'D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/plugin-copy-code/lib/client/config.js'
import * as clientConfig3 from 'D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/plugin-medium-zoom/lib/client/config.js'
import * as clientConfig4 from 'D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/plugin-nprogress/lib/client/config.js'
import * as clientConfig5 from 'D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/prismjs/config.js'
import * as clientConfig6 from 'D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/plugin-theme-data/lib/client/config.js'
import * as clientConfig7 from 'D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/theme-default/lib/client/config.js'
import * as clientConfig8 from 'D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/client.js'
export const clientConfigs = [
clientConfig0,
clientConfig1,
clientConfig2,
clientConfig3,
clientConfig4,
clientConfig5,
clientConfig6,
clientConfig7,
clientConfig8,
].map((m) => m.default).filter(Boolean)

View File

@ -0,0 +1,55 @@
export const redirects = JSON.parse("{}")
export const routes = Object.fromEntries([
["/get-started.html", { loader: () => import(/* webpackChunkName: "get-started.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/get-started.html.js"), meta: {"title":"Get Started"} }],
["/", { loader: () => import(/* webpackChunkName: "index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/index.html.js"), meta: {"title":"Home"} }],
["/posts/archive1.html", { loader: () => import(/* webpackChunkName: "posts_archive1.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/archive1.html.js"), meta: {"_blog":{"title":"Archive Article1","author":"","date":"1998-01-01T00:00:00.000Z","category":["History"],"tag":["WWI"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Archive Article1"} }],
["/posts/archive2.html", { loader: () => import(/* webpackChunkName: "posts_archive2.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/archive2.html.js"), meta: {"_blog":{"title":"Archive Article2","author":"","date":"1998-01-02T00:00:00.000Z","category":["History"],"tag":["WWII"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Archive Article2"} }],
["/posts/article1.html", { loader: () => import(/* webpackChunkName: "posts_article1.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article1.html.js"), meta: {"_blog":{"title":"Article 1","author":"","date":"2022-01-01T00:00:00.000Z","category":["CategoryA"],"tag":["tag A","tag B"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 1"} }],
["/posts/article10.html", { loader: () => import(/* webpackChunkName: "posts_article10.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article10.html.js"), meta: {"_blog":{"title":"Article 10","author":"","date":"2022-01-10T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag C","tag D"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 10"} }],
["/posts/article11.html", { loader: () => import(/* webpackChunkName: "posts_article11.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article11.html.js"), meta: {"_blog":{"title":"Article 11","author":"","date":"2022-01-11T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag C","tag D"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 11"} }],
["/posts/article12.html", { loader: () => import(/* webpackChunkName: "posts_article12.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article12.html.js"), meta: {"_blog":{"title":"Article 12","author":"","date":"2022-01-12T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag C","tag D"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 12"} }],
["/posts/article2.html", { loader: () => import(/* webpackChunkName: "posts_article2.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article2.html.js"), meta: {"_blog":{"title":"Article 2","author":"","date":"2022-01-02T00:00:00.000Z","category":["CategoryA"],"tag":["tag A","tag B"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 2"} }],
["/posts/article3.html", { loader: () => import(/* webpackChunkName: "posts_article3.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article3.html.js"), meta: {"_blog":{"title":"Article 3","author":"","date":"2022-01-03T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag A","tag B"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 3"} }],
["/posts/article4.html", { loader: () => import(/* webpackChunkName: "posts_article4.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article4.html.js"), meta: {"_blog":{"title":"Article 4","author":"","date":"2022-01-04T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag A","tag B"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 4"} }],
["/posts/article5.html", { loader: () => import(/* webpackChunkName: "posts_article5.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article5.html.js"), meta: {"_blog":{"title":"Article 5","author":"","date":"2022-01-05T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag A","tag B"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 5"} }],
["/posts/article6.html", { loader: () => import(/* webpackChunkName: "posts_article6.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article6.html.js"), meta: {"_blog":{"title":"Article 6","author":"","date":"2022-01-06T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag A","tag B"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 6"} }],
["/posts/article7.html", { loader: () => import(/* webpackChunkName: "posts_article7.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article7.html.js"), meta: {"_blog":{"title":"Article 7","author":"","date":"2022-01-07T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag C","tag D"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 7"} }],
["/posts/article8.html", { loader: () => import(/* webpackChunkName: "posts_article8.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article8.html.js"), meta: {"_blog":{"title":"Article 8","author":"","date":"2022-01-08T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag C","tag D"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 8"} }],
["/posts/article9.html", { loader: () => import(/* webpackChunkName: "posts_article9.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article9.html.js"), meta: {"_blog":{"title":"Article 9","author":"","date":"2022-01-09T00:00:00.000Z","category":["CategoryA","CategoryB"],"tag":["tag C","tag D"],"excerpt":"\n<h2>Heading 2</h2>\n<p>Here is the content.</p>\n<h3>Heading 3</h3>\n<p>Here is the content.</p>\n"},"title":"Article 9"} }],
["/posts/sticky.html", { loader: () => import(/* webpackChunkName: "posts_sticky.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/sticky.html.js"), meta: {"_blog":{"title":"Sticky Article","author":"","date":"2021-01-01T00:00:00.000Z","category":["CategoryC"],"tag":["tag E"],"excerpt":"<p>A sticky article demo.</p>"},"title":"Sticky Article"} }],
["/posts/sticky2.html", { loader: () => import(/* webpackChunkName: "posts_sticky2.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/sticky2.html.js"), meta: {"_blog":{"title":"Sticky Article with Higher Priority","author":"","date":"2020-01-01T00:00:00.000Z","category":["CategoryC"],"tag":["tag E"],"excerpt":"\n<p>Excerpt information which is added manually.</p>\n"},"title":"Sticky Article with Higher Priority"} }],
["/404.html", { loader: () => import(/* webpackChunkName: "404.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/404.html.js"), meta: {"title":""} }],
["/category/", { loader: () => import(/* webpackChunkName: "category_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/index.html.js"), meta: {"title":"Categories"} }],
["/category/history/", { loader: () => import(/* webpackChunkName: "category_history_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/history/index.html.js"), meta: {"title":"Category History"} }],
["/category/categorya/", { loader: () => import(/* webpackChunkName: "category_categorya_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/categorya/index.html.js"), meta: {"title":"Category CategoryA"} }],
["/category/categoryb/", { loader: () => import(/* webpackChunkName: "category_categoryb_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/categoryb/index.html.js"), meta: {"title":"Category CategoryB"} }],
["/category/categoryc/", { loader: () => import(/* webpackChunkName: "category_categoryc_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/categoryc/index.html.js"), meta: {"title":"Category CategoryC"} }],
["/tag/", { loader: () => import(/* webpackChunkName: "tag_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/index.html.js"), meta: {"title":"Tags"} }],
["/tag/wwi/", { loader: () => import(/* webpackChunkName: "tag_wwi_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/wwi/index.html.js"), meta: {"title":"Tag WWI"} }],
["/tag/wwii/", { loader: () => import(/* webpackChunkName: "tag_wwii_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/wwii/index.html.js"), meta: {"title":"Tag WWII"} }],
["/tag/tag-a/", { loader: () => import(/* webpackChunkName: "tag_tag-a_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-a/index.html.js"), meta: {"title":"Tag tag A"} }],
["/tag/tag-b/", { loader: () => import(/* webpackChunkName: "tag_tag-b_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-b/index.html.js"), meta: {"title":"Tag tag B"} }],
["/tag/tag-c/", { loader: () => import(/* webpackChunkName: "tag_tag-c_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-c/index.html.js"), meta: {"title":"Tag tag C"} }],
["/tag/tag-d/", { loader: () => import(/* webpackChunkName: "tag_tag-d_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-d/index.html.js"), meta: {"title":"Tag tag D"} }],
["/tag/tag-e/", { loader: () => import(/* webpackChunkName: "tag_tag-e_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-e/index.html.js"), meta: {"title":"Tag tag E"} }],
["/article/", { loader: () => import(/* webpackChunkName: "article_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/article/index.html.js"), meta: {"title":"Articles"} }],
["/timeline/", { loader: () => import(/* webpackChunkName: "timeline_index.html" */"D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/timeline/index.html.js"), meta: {"title":"Timeline"} }],
]);
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updateRoutes) {
__VUE_HMR_RUNTIME__.updateRoutes(routes)
}
if (__VUE_HMR_RUNTIME__.updateRedirects) {
__VUE_HMR_RUNTIME__.updateRedirects(redirects)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ routes, redirects }) => {
__VUE_HMR_RUNTIME__.updateRoutes(routes)
__VUE_HMR_RUNTIME__.updateRedirects(redirects)
})
}

View File

@ -0,0 +1,14 @@
export const siteData = JSON.parse("{\"base\":\"/\",\"lang\":\"en-US\",\"title\":\"VuePress\",\"description\":\"My first VuePress Site\",\"head\":[],\"locales\":{}}")
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updateSiteData) {
__VUE_HMR_RUNTIME__.updateSiteData(siteData)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ siteData }) => {
__VUE_HMR_RUNTIME__.updateSiteData(siteData)
})
}

View File

@ -0,0 +1,14 @@
export const themeData = JSON.parse("{\"logo\":\"https://vuejs.press/images/hero.png\",\"navbar\":[\"/\",{\"text\":\"Article\",\"link\":\"/article/\"},{\"text\":\"Category\",\"link\":\"/category/\"},{\"text\":\"Tag\",\"link\":\"/tag/\"},{\"text\":\"Timeline\",\"link\":\"/timeline/\"}],\"locales\":{\"/\":{\"selectLanguageName\":\"English\"}},\"colorMode\":\"auto\",\"colorModeSwitch\":true,\"repo\":null,\"selectLanguageText\":\"Languages\",\"selectLanguageAriaLabel\":\"Select language\",\"sidebar\":\"heading\",\"sidebarDepth\":2,\"editLink\":true,\"editLinkText\":\"Edit this page\",\"lastUpdated\":true,\"lastUpdatedText\":\"Last Updated\",\"contributors\":true,\"contributorsText\":\"Contributors\",\"notFound\":[\"There's nothing here.\",\"How did we get here?\",\"That's a Four-Oh-Four.\",\"Looks like we've got some broken links.\"],\"backToHome\":\"Take me home\",\"openInNewWindow\":\"open in new window\",\"toggleColorMode\":\"toggle color mode\",\"toggleSidebar\":\"toggle sidebar\"}")
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updateThemeData) {
__VUE_HMR_RUNTIME__.updateThemeData(themeData)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ themeData }) => {
__VUE_HMR_RUNTIME__.updateThemeData(themeData)
})
}

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/404.html.vue"
const data = JSON.parse("{\"path\":\"/404.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{\"layout\":\"NotFound\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"<p>404 Not Found</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,4 @@
<template><div><p>404 Not Found</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/article/index.html.vue"
const data = JSON.parse("{\"path\":\"/article/\",\"title\":\"Articles\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Articles\",\"sidebar\":false,\"blog\":{\"type\":\"type\",\"key\":\"article\"},\"layout\":\"Article\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/categorya/index.html.vue"
const data = JSON.parse("{\"path\":\"/category/categorya/\",\"title\":\"Category CategoryA\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Category CategoryA\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"CategoryA\",\"key\":\"category\"},\"layout\":\"Category\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/categoryb/index.html.vue"
const data = JSON.parse("{\"path\":\"/category/categoryb/\",\"title\":\"Category CategoryB\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Category CategoryB\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"CategoryB\",\"key\":\"category\"},\"layout\":\"Category\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/categoryc/index.html.vue"
const data = JSON.parse("{\"path\":\"/category/categoryc/\",\"title\":\"Category CategoryC\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Category CategoryC\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"CategoryC\",\"key\":\"category\"},\"layout\":\"Category\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/history/index.html.vue"
const data = JSON.parse("{\"path\":\"/category/history/\",\"title\":\"Category History\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Category History\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"History\",\"key\":\"category\"},\"layout\":\"Category\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/category/index.html.vue"
const data = JSON.parse("{\"path\":\"/category/\",\"title\":\"Categories\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Categories\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"key\":\"category\"},\"layout\":\"Category\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/get-started.html.vue"
const data = JSON.parse("{\"path\":\"/get-started.html\",\"title\":\"Get Started\",\"lang\":\"en-US\",\"frontmatter\":{},\"headers\":[{\"level\":2,\"title\":\"Pages\",\"slug\":\"pages\",\"link\":\"#pages\",\"children\":[]},{\"level\":2,\"title\":\"Content\",\"slug\":\"content\",\"link\":\"#content\",\"children\":[]},{\"level\":2,\"title\":\"Configuration\",\"slug\":\"configuration\",\"link\":\"#configuration\",\"children\":[]},{\"level\":2,\"title\":\"Layouts and customization\",\"slug\":\"layouts-and-customization\",\"link\":\"#layouts-and-customization\",\"children\":[]}],\"git\":{},\"filePathRelative\":\"get-started.md\",\"excerpt\":\"\\n<p>This is a normal page, which contains VuePress basics.</p>\\n<h2>Pages</h2>\\n<p>You can add markdown files in your vuepress directory, every markdown file will be converted to a page in your site.</p>\\n<p>See <a href=\\\"https://vuejs.press/guide/page.html#routing\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">routing</a> for more details.</p>\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,23 @@
<template><div><h1 id="get-started" tabindex="-1"><a class="header-anchor" href="#get-started"><span>Get Started</span></a></h1>
<p>This is a normal page, which contains VuePress basics.</p>
<h2 id="pages" tabindex="-1"><a class="header-anchor" href="#pages"><span>Pages</span></a></h2>
<p>You can add markdown files in your vuepress directory, every markdown file will be converted to a page in your site.</p>
<p>See <a href="https://vuejs.press/guide/page.html#routing" target="_blank" rel="noopener noreferrer">routing</a> for more details.</p>
<h2 id="content" tabindex="-1"><a class="header-anchor" href="#content"><span>Content</span></a></h2>
<p>Every markdown file <a href="https://vuejs.press/guide/page.html#content" target="_blank" rel="noopener noreferrer">will be rendered to HTML, then converted to a Vue SFC</a>.</p>
<p>VuePress support basic markdown syntax and <a href="https://vuejs.press/guide/markdown.html#syntax-extensions" target="_blank" rel="noopener noreferrer">some extensions</a>, you can also <a href="https://vuejs.press/guide/markdown.html#using-vue-in-markdown" target="_blank" rel="noopener noreferrer">use Vue features</a> in it.</p>
<h2 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration"><span>Configuration</span></a></h2>
<p>VuePress use a <code v-pre>.vuepress/config.js</code>(or .ts) file as <a href="https://vuejs.press/guide/configuration.html#client-config-file" target="_blank" rel="noopener noreferrer">site configuration</a>, you can use it to config your site.</p>
<p>For <a href="https://vuejs.press/guide/configuration.html#client-config-file" target="_blank" rel="noopener noreferrer">client side configuration</a>, you can create <code v-pre>.vuepress/client.js</code>(or .ts).</p>
<p>Meanwhile, you can also add configuration per page with <a href="https://vuejs.press/guide/page.html#frontmatter" target="_blank" rel="noopener noreferrer">frontmatter</a>.</p>
<h2 id="layouts-and-customization" tabindex="-1"><a class="header-anchor" href="#layouts-and-customization"><span>Layouts and customization</span></a></h2>
<p>Here are common configuration controlling layout of <code v-pre>@vuepress/theme-default</code>:</p>
<ul>
<li><a href="https://vuejs.press/reference/default-theme/config.html#navbar" target="_blank" rel="noopener noreferrer">navbar</a></li>
<li><a href="https://vuejs.press/reference/default-theme/config.html#sidebar" target="_blank" rel="noopener noreferrer">sidebar</a></li>
</ul>
<p>Check <a href="https://vuejs.press/reference/default-theme/" target="_blank" rel="noopener noreferrer">default theme docs</a> for full reference.</p>
<p>You can <a href="https://vuejs.press/reference/default-theme/styles.html#style-file" target="_blank" rel="noopener noreferrer">add extra style</a> with <code v-pre>.vuepress/styles/index.scss</code> file.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/index.html.vue"
const data = JSON.parse("{\"path\":\"/\",\"title\":\"Home\",\"lang\":\"en-US\",\"frontmatter\":{\"home\":true,\"title\":\"Home\",\"heroImage\":\"https://vuejs.press/images/hero.png\",\"actions\":[{\"text\":\"Get Started\",\"link\":\"/getting-started.html\",\"type\":\"primary\"},{\"text\":\"Introduction\",\"link\":\"https://vuejs.press/guide/introduction.html\",\"type\":\"secondary\"}],\"features\":[{\"title\":\"Simplicity First\",\"details\":\"Minimal setup with markdown-centered project structure helps you focus on writing.\"},{\"title\":\"Vue-Powered\",\"details\":\"Enjoy the dev experience of Vue, use Vue components in markdown, and develop custom themes with Vue.\"},{\"title\":\"Performant\",\"details\":\"VuePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded.\"},{\"title\":\"Themes\",\"details\":\"Providing a default theme out of the box. You can also choose a community theme or create your own one.\"},{\"title\":\"Plugins\",\"details\":\"Flexible plugin API, allowing plugins to provide lots of plug-and-play features for your site.\"},{\"title\":\"Bundlers\",\"details\":\"Default bundler is Vite, while Webpack is also supported. Choose the one you like!\"}],\"footer\":\"MIT Licensed | Copyright © 2018-present VuePress Community\"},\"headers\":[],\"git\":{},\"filePathRelative\":\"README.md\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,4 @@
<template><div><p>This is the content of home page. Check <a href="https://vuejs.press/reference/default-theme/frontmatter.html#home-page" target="_blank" rel="noopener noreferrer">Home Page Docs</a> for more details.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/archive1.html.vue"
const data = JSON.parse("{\"path\":\"/posts/archive1.html\",\"title\":\"Archive Article1\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"1998-01-01T00:00:00.000Z\",\"category\":[\"History\"],\"tag\":[\"WWI\"],\"archive\":true},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/archive1.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="archive-article1" tabindex="-1"><a class="header-anchor" href="#archive-article1"><span>Archive Article1</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/archive2.html.vue"
const data = JSON.parse("{\"path\":\"/posts/archive2.html\",\"title\":\"Archive Article2\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"1998-01-02T00:00:00.000Z\",\"category\":[\"History\"],\"tag\":[\"WWII\"],\"archive\":true},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/archive2.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="archive-article2" tabindex="-1"><a class="header-anchor" href="#archive-article2"><span>Archive Article2</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article1.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article1.html\",\"title\":\"Article 1\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-01T00:00:00.000Z\",\"category\":[\"CategoryA\"],\"tag\":[\"tag A\",\"tag B\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article1.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-1" tabindex="-1"><a class="header-anchor" href="#article-1"><span>Article 1</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article10.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article10.html\",\"title\":\"Article 10\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-10T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag C\",\"tag D\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article10.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-10" tabindex="-1"><a class="header-anchor" href="#article-10"><span>Article 10</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article11.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article11.html\",\"title\":\"Article 11\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-11T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag C\",\"tag D\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article11.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-11" tabindex="-1"><a class="header-anchor" href="#article-11"><span>Article 11</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article12.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article12.html\",\"title\":\"Article 12\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-12T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag C\",\"tag D\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article12.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-12" tabindex="-1"><a class="header-anchor" href="#article-12"><span>Article 12</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article2.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article2.html\",\"title\":\"Article 2\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-02T00:00:00.000Z\",\"category\":[\"CategoryA\"],\"tag\":[\"tag A\",\"tag B\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article2.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-2" tabindex="-1"><a class="header-anchor" href="#article-2"><span>Article 2</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article3.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article3.html\",\"title\":\"Article 3\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-03T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag A\",\"tag B\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article3.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-3" tabindex="-1"><a class="header-anchor" href="#article-3"><span>Article 3</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article4.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article4.html\",\"title\":\"Article 4\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-04T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag A\",\"tag B\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article4.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-4" tabindex="-1"><a class="header-anchor" href="#article-4"><span>Article 4</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article5.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article5.html\",\"title\":\"Article 5\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-05T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag A\",\"tag B\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article5.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-5" tabindex="-1"><a class="header-anchor" href="#article-5"><span>Article 5</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article6.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article6.html\",\"title\":\"Article 6\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-06T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag A\",\"tag B\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article6.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-6" tabindex="-1"><a class="header-anchor" href="#article-6"><span>Article 6</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article7.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article7.html\",\"title\":\"Article 7\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-07T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag C\",\"tag D\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article7.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-7" tabindex="-1"><a class="header-anchor" href="#article-7"><span>Article 7</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article8.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article8.html\",\"title\":\"Article 8\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-08T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag C\",\"tag D\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article8.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-8" tabindex="-1"><a class="header-anchor" href="#article-8"><span>Article 8</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/article9.html.vue"
const data = JSON.parse("{\"path\":\"/posts/article9.html\",\"title\":\"Article 9\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2022-01-09T00:00:00.000Z\",\"category\":[\"CategoryA\",\"CategoryB\"],\"tag\":[\"tag C\",\"tag D\"]},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/article9.md\",\"excerpt\":\"\\n<h2>Heading 2</h2>\\n<p>Here is the content.</p>\\n<h3>Heading 3</h3>\\n<p>Here is the content.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="article-9" tabindex="-1"><a class="header-anchor" href="#article-9"><span>Article 9</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/sticky.html.vue"
const data = JSON.parse("{\"path\":\"/posts/sticky.html\",\"title\":\"Sticky Article\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2021-01-01T00:00:00.000Z\",\"category\":[\"CategoryC\"],\"tag\":[\"tag E\"],\"sticky\":true,\"excerpt\":\"<p>A sticky article demo.</p>\"},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/sticky.md\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,8 @@
<template><div><h1 id="sticky-article" tabindex="-1"><a class="header-anchor" href="#sticky-article"><span>Sticky Article</span></a></h1>
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/posts/sticky2.html.vue"
const data = JSON.parse("{\"path\":\"/posts/sticky2.html\",\"title\":\"Sticky Article with Higher Priority\",\"lang\":\"en-US\",\"frontmatter\":{\"date\":\"2020-01-01T00:00:00.000Z\",\"category\":[\"CategoryC\"],\"tag\":[\"tag E\"],\"sticky\":10},\"headers\":[{\"level\":2,\"title\":\"Heading 2\",\"slug\":\"heading-2\",\"link\":\"#heading-2\",\"children\":[{\"level\":3,\"title\":\"Heading 3\",\"slug\":\"heading-3\",\"link\":\"#heading-3\",\"children\":[]}]}],\"git\":{},\"filePathRelative\":\"posts/sticky2.md\",\"excerpt\":\"\\n<p>Excerpt information which is added manually.</p>\\n\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,10 @@
<template><div><h1 id="sticky-article-with-higher-priority" tabindex="-1"><a class="header-anchor" href="#sticky-article-with-higher-priority"><span>Sticky Article with Higher Priority</span></a></h1>
<p>Excerpt information which is added manually.</p>
<!-- more -->
<h2 id="heading-2" tabindex="-1"><a class="header-anchor" href="#heading-2"><span>Heading 2</span></a></h2>
<p>Here is the content.</p>
<h3 id="heading-3" tabindex="-1"><a class="header-anchor" href="#heading-3"><span>Heading 3</span></a></h3>
<p>Here is the content.</p>
</div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/\",\"title\":\"Tags\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tags\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-a/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/tag-a/\",\"title\":\"Tag tag A\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tag tag A\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"tag A\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-b/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/tag-b/\",\"title\":\"Tag tag B\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tag tag B\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"tag B\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-c/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/tag-c/\",\"title\":\"Tag tag C\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tag tag C\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"tag C\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-d/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/tag-d/\",\"title\":\"Tag tag D\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tag tag D\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"tag D\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/tag-e/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/tag-e/\",\"title\":\"Tag tag E\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tag tag E\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"tag E\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/wwi/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/wwi/\",\"title\":\"Tag WWI\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tag WWI\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"WWI\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/tag/wwii/index.html.vue"
const data = JSON.parse("{\"path\":\"/tag/wwii/\",\"title\":\"Tag WWII\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Tag WWII\",\"sidebar\":false,\"blog\":{\"type\":\"category\",\"name\":\"WWII\",\"key\":\"tag\"},\"layout\":\"Tag\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,16 @@
import comp from "D:/vuePressWorkSpace/vuepress-starter/docs/.vuepress/.temp/pages/timeline/index.html.vue"
const data = JSON.parse("{\"path\":\"/timeline/\",\"title\":\"Timeline\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Timeline\",\"sidebar\":false,\"blog\":{\"type\":\"type\",\"key\":\"timeline\"},\"layout\":\"Timeline\"},\"headers\":[],\"git\":{},\"filePathRelative\":null,\"excerpt\":\"\"}")
export { comp, data }
if (import.meta.webpackHot) {
import.meta.webpackHot.accept()
if (__VUE_HMR_RUNTIME__.updatePageData) {
__VUE_HMR_RUNTIME__.updatePageData(data)
}
}
if (import.meta.hot) {
import.meta.hot.accept(({ data }) => {
__VUE_HMR_RUNTIME__.updatePageData(data)
})
}

View File

@ -0,0 +1,3 @@
<template><div></div></template>

View File

@ -0,0 +1,3 @@
import "D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/highlighter-helper/lib/client/styles/base.css"
import "D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/plugin-prismjs/lib/client/styles/nord.css"
import "D:/vuePressWorkSpace/vuepress-starter/node_modules/@vuepress/highlighter-helper/lib/client/styles/line-numbers.css"

View File

View File

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<body>
<div id="app"></div>
<script type="module">
import 'vuepress/client-app'
</script>
</body>
</html>

15
docs/.vuepress/client.js Normal file
View File

@ -0,0 +1,15 @@
import { defineClientConfig } from 'vuepress/client'
import Article from './layouts/Article.vue'
import Category from './layouts/Category.vue'
import Tag from './layouts/Tag.vue'
import Timeline from './layouts/Timeline.vue'
export default defineClientConfig({
// we provide some blog layouts
layouts: {
Article,
Category,
Tag,
Timeline,
},
})

View File

@ -0,0 +1,143 @@
<script setup>
defineProps({
/** Article items */
items: {
type: Array,
required: true,
},
/** Whether is timeline or not */
isTimeline: Boolean,
})
</script>
<template>
<div class="article-wrapper">
<div v-if="!items.length">Nothing in here.</div>
<article
v-for="{ info, path } in items"
:key="path"
class="article"
@click="$router.push(path)"
>
<header class="title">
{{
(isTimeline ? `${new Date(info.date).toLocaleDateString()}: ` : '') +
info.title
}}
</header>
<hr />
<div class="article-info">
<span v-if="info.author" class="author">Author: {{ info.author }}</span>
<span v-if="info.date && !isTimeline" class="date"
>Date: {{ new Date(info.date).toLocaleDateString() }}</span
>
<span v-if="info.category" class="category"
>Category: {{ info.category.join(', ') }}</span
>
<span v-if="info.tag" class="tag">Tag: {{ info.tag.join(', ') }}</span>
</div>
<div v-if="info.excerpt" class="excerpt" v-html="info.excerpt" />
</article>
</div>
</template>
<style lang="scss">
@use '@vuepress/theme-default/styles/mixins';
.article-wrapper {
@include mixins.content_wrapper;
text-align: center;
}
.article {
position: relative;
box-sizing: border-box;
width: 100%;
margin: 0 auto 1.25rem;
padding: 1rem 1.25rem;
border: 1px solid var(--c-border);
border-radius: 0.4rem;
color: var(--c-text);
text-align: start;
@media (max-width: 419px) {
border-radius: 0;
}
&:hover {
cursor: pointer;
}
.title {
position: relative;
display: inline-block;
font-size: 1.28rem;
line-height: 2rem;
&::after {
content: '';
position: absolute;
bottom: 0;
inset-inline-start: 0;
width: 100%;
height: 2px;
background: var(--c-brand);
visibility: hidden;
transition: transform 0.3s ease-in-out;
transform: scaleX(0);
}
&:hover {
&::after {
visibility: visible;
transform: scaleX(1);
}
}
a {
color: inherit;
}
}
.article-info {
display: flex;
flex-shrink: 0;
> span {
margin-inline-end: 0.5em;
line-height: 1.8;
}
}
.excerpt {
h1 {
display: none;
}
h2 {
font-size: 1.2em;
}
h3 {
font-size: 1.15em;
}
}
}
</style>

141
docs/.vuepress/config.js Normal file
View File

@ -0,0 +1,141 @@
import { blogPlugin } from '@vuepress/plugin-blog'
import { defaultTheme } from '@vuepress/theme-default'
import { defineUserConfig } from 'vuepress'
import { viteBundler } from '@vuepress/bundler-vite'
export default defineUserConfig({
lang: 'en-US',
title: 'VuePress',
description: 'My first VuePress Site',
theme: defaultTheme({
logo: 'https://vuejs.press/images/hero.png',
navbar: [
'/',
{
text: 'Article',
link: '/article/',
},
{
text: 'Category',
link: '/category/',
},
{
text: 'Tag',
link: '/tag/',
},
{
text: 'Timeline',
link: '/timeline/',
},
],
}),
plugins: [
blogPlugin({
// Only files under posts are articles
filter: ({ filePathRelative }) =>
filePathRelative ? filePathRelative.startsWith('posts/') : false,
// Getting article info
getInfo: ({ frontmatter, title, data }) => ({
title,
author: frontmatter.author || '',
date: frontmatter.date || null,
category: frontmatter.category || [],
tag: frontmatter.tag || [],
excerpt:
// Support manually set excerpt through frontmatter
typeof frontmatter.excerpt === 'string'
? frontmatter.excerpt
: data?.excerpt || '',
}),
// Generate excerpt for all pages excerpt those users choose to disable
excerptFilter: ({ frontmatter }) =>
!frontmatter.home &&
frontmatter.excerpt !== false &&
typeof frontmatter.excerpt !== 'string',
category: [
{
key: 'category',
getter: (page) => page.frontmatter.category || [],
layout: 'Category',
itemLayout: 'Category',
frontmatter: () => ({
title: 'Categories',
sidebar: false,
}),
itemFrontmatter: (name) => ({
title: `Category ${name}`,
sidebar: false,
}),
},
{
key: 'tag',
getter: (page) => page.frontmatter.tag || [],
layout: 'Tag',
itemLayout: 'Tag',
frontmatter: () => ({
title: 'Tags',
sidebar: false,
}),
itemFrontmatter: (name) => ({
title: `Tag ${name}`,
sidebar: false,
}),
},
],
type: [
{
key: 'article',
// Remove archive articles
filter: (page) => !page.frontmatter.archive,
layout: 'Article',
frontmatter: () => ({
title: 'Articles',
sidebar: false,
}),
// Sort pages with time and sticky
sorter: (pageA, pageB) => {
if (pageA.frontmatter.sticky && pageB.frontmatter.sticky)
return pageB.frontmatter.sticky - pageA.frontmatter.sticky
if (pageA.frontmatter.sticky && !pageB.frontmatter.sticky) return -1
if (!pageA.frontmatter.sticky && pageB.frontmatter.sticky) return 1
if (!pageB.frontmatter.date) return 1
if (!pageA.frontmatter.date) return -1
return (
new Date(pageB.frontmatter.date).getTime() -
new Date(pageA.frontmatter.date).getTime()
)
},
},
{
key: 'timeline',
// Only article with date should be added to timeline
filter: (page) => page.frontmatter.date instanceof Date,
// Sort pages with time
sorter: (pageA, pageB) =>
new Date(pageB.frontmatter.date).getTime() -
new Date(pageA.frontmatter.date).getTime(),
layout: 'Timeline',
frontmatter: () => ({
title: 'Timeline',
sidebar: false,
}),
},
],
hotReload: true,
}),
],
bundler: viteBundler(),
})

View File

@ -0,0 +1,17 @@
<script setup>
import { useBlogType } from '@vuepress/plugin-blog/client'
import ParentLayout from '@vuepress/theme-default/layouts/Layout.vue'
import ArticleList from '../components/ArticleList.vue'
const articles = useBlogType('article')
</script>
<template>
<ParentLayout>
<template #page>
<main class="page">
<ArticleList :items="articles.items" />
</main>
</template>
</ParentLayout>
</template>

View File

@ -0,0 +1,95 @@
<script setup>
import { useBlogCategory } from '@vuepress/plugin-blog/client'
import ParentLayout from '@vuepress/theme-default/layouts/Layout.vue'
import { RouteLink, useRoute } from 'vuepress/client'
import ArticleList from '../components/ArticleList.vue'
const route = useRoute()
const categoryMap = useBlogCategory('category')
</script>
<template>
<ParentLayout>
<template #page>
<main class="page">
<div class="category-wrapper">
<RouteLink
v-for="({ items, path }, name) in categoryMap.map"
:key="name"
:to="path"
:active="route.path === path"
class="category"
>
{{ name }}
<span class="category-num">
{{ items.length }}
</span>
</RouteLink>
</div>
<ArticleList :items="categoryMap.currentItems ?? []" />
</main>
</template>
</ParentLayout>
</template>
<style lang="scss">
@use '@vuepress/theme-default/styles/mixins';
.category-wrapper {
@include mixins.content_wrapper;
padding-top: 1rem !important;
padding-bottom: 0 !important;
font-size: 14px;
a {
color: inherit;
}
.category {
display: inline-block;
vertical-align: middle;
overflow: hidden;
margin: 0.3rem 0.6rem 0.8rem;
padding: 0.4rem 0.8rem;
border-radius: 0.25rem;
cursor: pointer;
transition:
background 0.3s,
color 0.3s;
@media (max-width: 419px) {
font-size: 0.9rem;
}
.category-num {
display: inline-block;
min-width: 1rem;
height: 1.2rem;
margin-inline-start: 0.2em;
padding: 0 0.1rem;
border-radius: 0.6rem;
font-size: 0.7rem;
line-height: 1.2rem;
text-align: center;
}
&.route-link-active {
background: var(--c-brand);
color: var(--c-bg);
.category-num {
color: var(--c-bg);
}
}
}
}
</style>

View File

@ -0,0 +1,95 @@
<script setup>
import { useBlogCategory } from '@vuepress/plugin-blog/client'
import ParentLayout from '@vuepress/theme-default/layouts/Layout.vue'
import { RouteLink, useRoute } from 'vuepress/client'
import ArticleList from '../components/ArticleList.vue'
const route = useRoute()
const tagMap = useBlogCategory('tag')
</script>
<template>
<ParentLayout>
<template #page>
<main class="page">
<div class="tag-wrapper">
<RouteLink
v-for="({ items, path }, name) in tagMap.map"
:key="name"
:to="path"
:active="route.path === path"
class="tag"
>
{{ name }}
<span class="tag-num">
{{ items.length }}
</span>
</RouteLink>
</div>
<ArticleList :items="tagMap.currentItems ?? []" />
</main>
</template>
</ParentLayout>
</template>
<style lang="scss">
@use '@vuepress/theme-default/styles/mixins';
.tag-wrapper {
@include mixins.content_wrapper;
padding-top: 1rem !important;
padding-bottom: 0 !important;
font-size: 14px;
a {
color: inherit;
}
.tag {
display: inline-block;
vertical-align: middle;
overflow: hidden;
margin: 0.3rem 0.6rem 0.8rem;
padding: 0.4rem 0.8rem;
border-radius: 0.25rem;
cursor: pointer;
transition:
background 0.3s,
color 0.3s;
@media (max-width: 419px) {
font-size: 0.9rem;
}
.tag-num {
display: inline-block;
min-width: 1rem;
height: 1.2rem;
margin-inline-start: 0.2em;
padding: 0 0.1rem;
border-radius: 0.6rem;
font-size: 0.7rem;
line-height: 1.2rem;
text-align: center;
}
&.route-link-active {
background: var(--c-brand);
color: var(--c-bg);
.tag-num {
color: var(--c-bg);
}
}
}
}
</style>

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