浏览代码

首次提交

guorui 10 月之前
当前提交
63744de20b

+ 19 - 0
.gitignore

@@ -0,0 +1,19 @@
+.DS_Store
+Thumbs.db
+db.json
+*.log
+public/
+.deploy*/
+_multiconfig.yml
+.vscode/*
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+node_modules/
+package-lock.json
+yarn.lock
+pnpm-lock.yaml

+ 23 - 0
README.md

@@ -0,0 +1,23 @@
+# Hexo Theme Keep Starter
+
+## Get start
+
+### Install dependencies
+
+```bash
+npm install
+```
+
+### Run the project
+
+```bash
+npm run server
+```
+
+### Configuring theme
+
+Please configure the `source/_data/keep.yml` file.
+
+## Documents
+
+https://keep-docs.xpoet.cn/basis/configuration-guide/base_info.html

+ 113 - 0
_config.yml

@@ -0,0 +1,113 @@
+# Hexo Configuration
+## Docs: https://hexo.io/docs/configuration.html
+## Source: https://github.com/hexojs/hexo/
+
+# Site
+title: Keep
+subtitle: Hexo theme keep quick starter
+description: ''
+keywords:
+author: Keep Team
+language: zh-CN  # en | zh-CN | zh-TW
+timezone: ''
+
+# URL
+## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
+url: http://example.com
+permalink: :year/:month/:day/:title/
+permalink_defaults:
+pretty_urls:
+  trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
+  trailing_html: true # Set to false to remove trailing '.html' from permalinks
+
+# Directory
+source_dir: source
+public_dir: public
+tag_dir: tags
+archive_dir: archives
+category_dir: categories
+code_dir: downloads/code
+i18n_dir: :lang
+skip_render:
+
+# Writing
+new_post_name: :title.md # File name of new posts
+default_layout: post
+titlecase: false # Transform title into titlecase
+external_link:
+  enable: true # Open external links in new tab
+  field: site # Apply to the whole site
+  exclude: ''
+filename_case: 0
+render_drafts: false
+post_asset_folder: false
+relative_link: false
+future: true
+
+syntax_highlighter: highlight.js
+highlight:
+  auto_detect: true
+  line_number: true
+  line_threshold: 0
+  tab_replace: ''
+  exclude_languages:
+    - example
+  wrap: true
+  hljs: false
+prismjs:
+  preprocess: true
+  line_number: true
+  line_threshold: 0
+  tab_replace: ''
+# Home page setting
+# path: Root path for your blogs index page. (default = '')
+# per_page: Posts displayed per page. (0 = disable pagination)
+# order_by: Posts order. (Order by date descending by default)
+index_generator:
+  path: ''
+  per_page: 10
+  order_by: -date
+
+# Category & Tag
+default_category: uncategorized
+category_map:
+tag_map:
+
+# Metadata elements
+## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
+meta_generator: true
+
+# Date / Time format
+## Hexo uses Moment.js to parse and display date
+## You can customize the date format as defined in
+## http://momentjs.com/docs/#/displaying/format/
+date_format: YYYY-MM-DD
+time_format: HH:mm:ss
+## updated_option supports 'mtime', 'date', 'empty'
+updated_option: 'mtime'
+
+# Pagination
+## Set per_page to 0 to disable pagination
+per_page: 10
+pagination_dir: page
+
+# Include / Exclude file(s)
+## include:/exclude: options only apply to the 'source/' folder
+include:
+exclude:
+ignore:
+
+# Extensions
+## Plugins: https://hexo.io/plugins/
+## Themes: https://hexo.io/themes/
+theme: keep
+
+# Deployment
+## Docs: https://hexo.io/docs/one-command-deployment
+deploy:
+  type: ''
+
+
+mermaid:    # 流程图
+ enable: false
+ version: 10.5.0

+ 41 - 0
package.json

@@ -0,0 +1,41 @@
+{
+  "name": "hexo-theme-keep-starter",
+  "version": "4.1.1",
+  "private": false,
+  "scripts": {
+    "dev": "hexo clean && hexo server --open",
+    "start": "hexo clean && hexo server --open",
+    "server": "hexo clean && hexo server --open",
+    "build": "hexo clean && hexo generate",
+    "clean": "hexo clean",
+    "deploy": "hexo deploy"
+  },
+  "author": "XPoet",
+  "license": "MIT",
+  "repository": {
+    "type": "git",
+    "url": "git+ssh://git@github.com:theme-keep/hexo-theme-keep-starter.git"
+  },
+  "bugs": {
+    "url": "https://github.com/theme-keep/hexo-theme-keep-starter/issues"
+  },
+  "homepage": "https://github.com/theme-keep/hexo-theme-keep-starter#readme",
+  "hexo": {
+    "version": "7.2.0"
+  },
+  "dependencies": {
+    "hexo": "^7.0.0",
+    "hexo-filter-mermaid-diagrams": "^1.0.5",
+    "hexo-generator-archive": "^2.0.0",
+    "hexo-generator-category": "^2.0.0",
+    "hexo-generator-index": "^3.0.0",
+    "hexo-generator-searchdb": "^1.4.1",
+    "hexo-generator-tag": "^2.0.0",
+    "hexo-renderer-ejs": "^2.0.0",
+    "hexo-renderer-marked": "^6.0.0",
+    "hexo-renderer-stylus": "^3.0.0",
+    "hexo-server": "^3.0.0",
+    "hexo-theme-keep": "^4.1.1",
+    "hexo-wordcount": "^6.0.1"
+  }
+}

+ 4 - 0
scaffolds/draft.md

@@ -0,0 +1,4 @@
+---
+title: {{ title }}
+tags:
+---

+ 4 - 0
scaffolds/page.md

@@ -0,0 +1,4 @@
+---
+title: {{ title }}
+date: {{ date }}
+---

+ 5 - 0
scaffolds/post.md

@@ -0,0 +1,5 @@
+---
+title: {{ title }}
+date: {{ date }}
+tags:
+---

文件差异内容过多而无法显示
+ 5 - 0
source/_data/icons.yml


+ 367 - 0
source/_data/keep.yml

@@ -0,0 +1,367 @@
+## ======================================================================================
+## Hexo Theme Keep
+## Documents: https://keep-docs.xpoet.cn
+## Repository: https://github.com/XPoet/hexo-theme-keep
+## ======================================================================================
+
+# ---------------------------------------------------------------------------------------
+# Docs: https://keep-docs.xpoet.cn/basis/configuration-guide/base_info.html
+# ---------------------------------------------------------------------------------------
+base_info:
+  # 主题原色
+  primary_color: "#0066cc"
+
+  # 博客网站标题
+  title: G.R.D的keep主题博客
+
+  # 博客网站作者姓名
+  author: Naruto
+
+  # 作者头像,可以使用本地图片路径或图片链接
+  # avatar: /images/avatar.svg
+  avatar: https://29455906.s21i.faiusr.com/4/ABUIABAEGAAg9_TSrAYoxvHpgAcwgAI4gAI.png
+
+  # 网站LOGO,可以使用本地图片路径或图片链接
+  #  logo: /images/logo.svg
+  logo: https://29455906.s21i.faiusr.com/4/ABUIABAEGAAg9_TSrAYoxvHpgAcwgAI4gAI.png
+
+  # 网站图标,可以使用本地图片路径或图片链接
+  #  favicon: /images/logo.svg
+  favicon: https://29455906.s21i.faiusr.com/4/ABUIABAEGAAg9_TSrAYoxvHpgAcwgAI4gAI.png
+
+
+# ---------------------------------------------------------------------------------------
+# Docs: https://keep-docs.xpoet.cn/basis/configuration-guide/menu.html
+# ---------------------------------------------------------------------------------------
+# 如果要开启新的导航菜单,需要创建对应的页面
+# 例如,要启用类别,您需要执行 'Hexo 新页面类别'
+# 使用 '||“设置导航菜单的图标,例如”主页:/ ||FA-坚实的FA-Home'
+menu:
+  home: /                       # || fa-solid fa-home
+  archives: /archives || fa-solid fa-box-archive          # || fa-solid fa-box-archive
+  tags: /tags                   # || fa-solid fa-tags
+  categories: /categories       # || fa-solid fa-layer-group
+  # links: /links               # || fa-solid fa-link
+  # photos: /photos             # || fa-solid fa-image
+  # tools: /tools               # || fa-solid fa-tools
+  about: /about || fa-solid fa-image               # || fa-solid fa-user-graduate
+  # hexo new page about
+  # ......
+
+
+# ---------------------------------------------------------------------------------------
+# 启用后将显示在博客网站首页(Home)的第一视屏(故称首屏)
+# ---------------------------------------------------------------------------------------
+first_screen:
+  enable: true  # Option values: true | false
+
+  # 浅色模式下的第一屏背景图像,可以使用本地图像路径或图像链接
+  background_img: /images/bg.svg
+
+  # 深色模式下的第一屏背景图像,可以使用本地图像路径或图像链接
+  background_img_dark: /images/bg.svg
+
+  # 第一个屏幕说明
+  # You can use the "||" to begin a newline, maximum is two lines.
+  description: Keep writing and Keep loving.
+
+  # 如果启用 hitokoto,则每次进入网站时的第一屏幕描述都不同
+  hitokoto: true      # Option values: true | false
+
+
+# ---------------------------------------------------------------------------------------
+# Docs: https://keep-docs.xpoet.cn/basis/configuration-guide/social_contact.html
+# ---------------------------------------------------------------------------------------
+social_contact:
+  enable: true      # Option values: true | false
+  links:
+    # 在此处填写您的社交平台链接,例如 'github: https://github.com/XPoet'
+    # 如果要点击打开图片,需要添加前缀 'img |`,
+    # 同时将你的链接改为图片链接。
+    # 例如 'weixin: img | ./images/qrcode.png'
+    github: https://github.com/grdnet         # GitHub
+    weixin: img | https://29455906.s21i.faiusr.com/4/ABUIABAEGAAg9_TSrAYoxvHpgAcwgAI4gAI.png         # WeChat
+    apple: https://apple.com
+    square-steam: https://github.com/grdnet
+    # 自定义图标(\source\_data\icons.yml)
+    qq:              # QQ
+    weibo:           # WeiBo
+    zhihu:           # ZhiHu
+    twitter:         # Twitter
+    x:               # X
+    facebook:        # Facebook
+    email:           # Email
+
+
+# ---------------------------------------------------------------------------------------
+# scroll 设置博客网站页面在滚动时的样式
+# ---------------------------------------------------------------------------------------
+scroll:
+  # 页面滚动时在顶部显示进度条
+  progress_bar: true  # Option values: true | false
+
+  # 页面滚动时显示百分比
+  percent: true       # Option values: true | false
+
+  # 页面滚动时将标题隐藏在顶部
+  hide_header: true    # Option values: true | false
+
+
+# ---------------------------------------------------------------------------------------
+# home 用于设置首页(Home)的文章块底部的更新日期、创建日期、分类和标签等信息显示,以及在首页配置网站公告。
+# ---------------------------------------------------------------------------------------
+home:
+  # 网站主页公告
+  announcement: 这是一个公告
+
+
+  # 是否开启 | 在主页帖子块中显示类别
+  category: true           # Option values: true | false
+
+  # 在主页帖子块中显示标签
+  tag: true                # Option values: true | false
+
+  # Set the datetime type of home page post block
+  post_datetime: updated    # Option values: updated | created
+  post_datetime_format: YYYY年MM月DD日 HH:mm
+
+
+# ---------------------------------------------------------------------------------------
+# post 用于设置文章内容页的文章字数统计、阅读时长、作者标识、版权信息、分享功能 和 打赏功能 等。
+# ---------------------------------------------------------------------------------------
+post:
+  # 帖子中的作者徽章
+  author_badge:
+    # 设置文章内容页的作者标识(徽标/称号)Lv1, Lv2, Lv3 ...
+    enable: true         # Option values: true | false
+
+    # 如果 true,显示 Lv1、Lv2、Lv3 ...
+    # 如果为 false,则显示自定义custom_badge: ["One", "Two", "Three"]
+    level_badge: false    # Option values: true | false
+
+    # 自定义徽章数组,可以填充一个或多个项目
+    custom_badge: ["One", "Two", "Three"]
+
+  # 帖子字数统计
+  # 依赖 Hexo 插件: hexo-wordcount ('npm install hexo-wordcount')
+  # See: https://github.com/willin/hexo-wordcount
+  word_count:
+    wordcount: true     # 字数,一个帖子。选项值:true |false
+    min2read: true      # 显示阅读时间,一篇文章。选项值: true | false
+
+  # 发布日期时间
+  datetime_format: "YYYY-MM-DD HH:mm:ss"  # Datetime format. e.g. "YYYY-MM-DD HH:mm:ss"——————datetime_format: "YYYY 年 MM 月 DD 日 HH:mm"
+
+  # 发布版权信息
+  copyright_info: true  # Option values: true | false
+
+    # 如果需要自定义版权地址,请将上面冒号的内容去掉将下面的注释去掉
+    #custom_license: Custom License
+    #custom_link: https://xpoet.cn/license/
+
+  # share 是 Keep 主题 v3.8.0 新增的配置项,用于在文章末尾开启 文章分享 功能,可选值:true 或 false。目前仅支持将文章快捷分享到 QQ、微信、微博,后续版本支持分享到 X-推特、Facebook 等。
+  share: true           # Option values: true | false
+
+  # reward 是 Keep 主题 v3.8.0 新增的 打赏作者 功能。
+  reward:
+    enable: true        # Option values: true | false
+    img_link: https://29455906.s21i.faiusr.com/4/ABUIABAEGAAg9_TSrAYoxvHpgAcwgAI4gAI.png           # Image link for the payment QR code
+    text:  这是打赏              # Custom reward text, Can be null
+
+
+# ---------------------------------------------------------------------------------------
+# code_block 用于开启 代码块工具 和 设置代码高亮主题。
+# ---------------------------------------------------------------------------------------
+code_block:
+  # 工具栏包括:“代码复制”、“代码块折叠”和“代码语言”
+
+  tools:
+    enable: false             # Option values: true | false
+    style: default            # Option values: default | mac
+  highlight_theme: default    # Option values: default | obsidian
+
+
+# ---------------------------------------------------------------------------------------
+# toc 用于设置文章的 TOC,非常实用的功能,启用后可以快速查看文章整体的目录结构和点击目录跳转对应位置。(建议开启)
+# ---------------------------------------------------------------------------------------
+toc:
+  enable: true      # Option values: true | false
+
+  # 自动将列表编号添加到目录
+  number: true      # Option values: true | false
+
+  # 如果为 true,则将显示帖子中所有级别的 TOC,而不是其中的激活部分。
+  expand_all: true  # Option values: true | false
+
+  # 如果为 true,则每次进入发布页面时自动打开 TOC
+  init_open: true    # Option values: true | false
+
+  # 帖子页面上的目录布局layout 用于设置 TOC 目录结构模块的布局位置,默认为 right (右侧),可选值:left 或 right。
+  layout: right      # Option values: left | right
+
+
+# ---------------------------------------------------------------------------------------
+# website_count 用于配置网站的计数功能,Keep 主题内置不蒜子计数,无需额外配置,开箱即用。
+# ---------------------------------------------------------------------------------------
+website_count:
+  # busuanzi
+  # See: http://ibruce.info/2015/04/04/busuanzi/
+  busuanzi_count:
+    enable: true     # Option values: true | false
+    site_uv: true    # Option values: true | false开启网站访问人数(UV)的计数功能
+    site_pv: true    # Option values: true | false开启网站总访问量(PV)的计数功能,显示在底部
+    page_pv: true    # Option values: true | false开启文章阅读次数的计数功能,显示在文章内容页
+
+
+# ---------------------------------------------------------------------------------------
+# local_search 用于配置博客网站的站内搜索功能,非常实用的功能,建议开启。开启后,头部 Header 导航栏右侧将出现搜索按钮。
+#点击搜索🔍按钮,打开搜索框,通过输入关键字,可完成对博客网站内所有文章进行关键字匹配。
+# ---------------------------------------------------------------------------------------
+local_search:
+  enable: true   # Option values: true | false
+  preload: true  # 在页面加载时预加载搜索数据。选项值: true | false
+
+
+# ---------------------------------------------------------------------------------------
+# comment 用于开启和配置 Keep 主题内置的评论系统。
+# ---------------------------------------------------------------------------------------
+comment:
+  enable: false   # Option values: true | false
+  use: valine     # Option values: valine | gitalk | twikoo | waline | giscus | artalk | disqus
+
+  # Valine
+  # See: https://github.com/xCss/Valine
+  #      https://valine.js.org
+  valine:
+    appid:           # Your leancloud application appid
+    appkey:          # Your leancloud application appkey
+    server_urls:     # Your Server URL
+    placeholder:     # Input box placeholder
+
+  # Gitalk
+  # See: https://github.com/gitalk/gitalk
+  #      https://gitalk.github.io
+  gitalk:
+    github_id:        # GitHub repo owner
+    github_admins:    # GitHub Admins (in Array type), optional
+    repository:       # Repository name to store issues
+    client_id:        # GitHub Application Client ID
+    client_secret:    # GitHub Application Client Secret
+    proxy:            # GitHub oauth request reverse proxy for CORS
+
+  # Twikoo
+  # See: https://github.com/imaegoo/twikoo
+  #      https://twikoo.js.org
+  twikoo:
+    env_id:          # Environment ID
+    region:          # Environment region, Can be null
+    version: 1.6.21  # Twikoo version, default use 1.6.21
+
+  # Waline
+  # See: https://github.com/walinejs/waline
+  #      https://waline.js.org/guide/get-started.html
+  waline:
+    server_url:     # Server URL
+    reaction: false # Post reactions, Option values: true | false
+    version: 2      # Waline version, default use v2
+
+  # Giscus
+  # See: https://github.com/giscus/giscus
+  #      https://giscus.app
+  # Please generate your configuration items in https://giscus.app
+  giscus:
+    repo:
+    repo_id:
+    category: Announcements    # Recommend use Announcements
+    category_id:
+    reactions_enabled: false   # Option values: true | false
+
+  # Artalk
+  # See: https://github.com/ArtalkJS/Artalk
+  #      https://artalk.js.org
+  artalk:
+    server:                    # Server URL
+
+  # Disqus
+  # See: https://disqus.com/
+  disqus:
+    shortname:                 # Disqus Shortname
+
+
+# ---------------------------------------------------------------------------------------
+#rss 用于开启 RSS 订阅功能。
+# ---------------------------------------------------------------------------------------
+rss:
+  enable: false  # Option values: true | false
+
+
+# ---------------------------------------------------------------------------------------
+# lazyload 用于开启图片的懒加载功能,可选值:true 或 false。
+# ---------------------------------------------------------------------------------------
+lazyload:
+  enable: true  # Option values: true | false
+
+
+# ---------------------------------------------------------------------------------------
+# cdn 用于开启 Keep 主题源文件资源(JS 文件、CSS 文件和字体文件)的 CDN 加速功能。
+# ---------------------------------------------------------------------------------------
+cdn:
+  enable: false       # Option values: true | false
+  provider: cdnjs     # Option values: cdnjs | jsdelivr | unpkg
+
+
+# ---------------------------------------------------------------------------------------
+# pjax 用于开启 Keep 主题的 PJAX 功能,带来单页应用的体验,可选值:true 或 false。PJAX 启用后,点击链接页面跳转时,网页顶部会出现彩虹色进度条。
+# ---------------------------------------------------------------------------------------
+pjax:
+  enable: true  # Option values: true | false
+
+
+# ---------------------------------------------------------------------------------------
+# Docs: https://keep-docs.xpoet.cn/basis/configuration-guide/footer.html
+# ---------------------------------------------------------------------------------------
+footer:
+  since: 2017           # 您网站的起始年份,可以为空
+  word_count: false     # 启用全站字数统计Option values: true | false
+
+  icp:
+    enable: true                    # 是否开启显示网站 ICP 备案编号,可选值Option values: true | false
+    record_code: 蒙ICP备2023000369号-2    # 您网站的ICP备案代码
+    url: https://beian.miit.gov.cn   # Your ICP link url, Can be null
+
+  site_deploy:        #site_deploy 是 v3.6.0 新增功能,用于配置显示你的 Keep 主题静态网站部署服务器提供商。
+    enable: false        # Option values: true | false
+    provider: github     # Option values: github | vercel | netlify | cloudflare | gitee | aliyun | tencent_cloud | upyun
+    url:                 # Your deployment provider url, Can be null
+
+  # 当页脚样式为盾牌时,您可以自定义盾牌配置
+  # See: https://shields.io
+  shields_style:
+    enable: false        # Option values: true | false
+    custom:
+      - link_url:        # Your link url, Can be null
+        img_url:         # Shields image url
+      # e.g.
+      # - link_url: https://github.com/XPoet/hexo-theme-keep
+      #   img_url: https://img.shields.io/badge/Hexo-Keep%20v3.7.3-blue?style=flat-square&logo=hexo
+      # - ...
+
+
+# ---------------------------------------------------------------------------------------
+# inject 是 Keep 主题 v3.7.0 新增的配置项,用于在 Keep 主题中注入自定义的 CSS 和 JS 文件,该功能非常强大,具备高度定制化 Keep 主题的能力。
+# 自定义css、js样式
+# ---------------------------------------------------------------------------------------
+inject:
+  enable: true  # Option values: true | false
+  css:
+    -
+      # e.g.
+      # - /css/custom-1.css
+      # - /css/custom-2.css
+    # - ...
+  js:
+    - js/custom-1.js  # 正本站已安全运行 1588 天 15 小时 34 分 46 秒
+      # e.g.
+      # - /js/custom-1.js
+      # - /js/custom-2.js
+    # - ...

+ 39 - 0
source/_posts/01.md

@@ -0,0 +1,39 @@
+---
+title: 一个测试blog
+date: 2022-10-25 11:40:36
+tags: [Hexo, Keep]
+categories: [Hexo]
+---
+# 生成文件
+
+
+
+使用 Hexo 生成静态文件快速而且简单。
+
+```
+$ hexo generate
+```
+
+### 监视文件变动
+
+Hexo 能够监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入。
+
+```
+$ hexo generate --watch
+```
+
+### 完成后部署
+
+您可执行下列的其中一个命令,让 Hexo 在生成完毕后自动部署网站,两个命令的作用是相同的。
+
+```
+$ hexo generate --deploy
+$ hexo deploy --generate
+```
+
+> 简写
+>
+> 上面两个命令可以简写为
+> $ hexo g -d
+> $ hexo d -g
+

+ 110 - 0
source/_posts/README_zh-CN.md

@@ -0,0 +1,110 @@
+---
+title: 官方介绍
+date: 2024-5-7 15:40:36
+tags: [new,关于]
+categories: [新的分类]
+---
+
+
+<div align="right">
+  语言:
+  简体中文 | 
+  <a title="English" href="../README.md">English</a> | 
+  <a title="繁體中文" href="README_zh-TW.md">繁體中文</a>
+</div>
+<a href="https://xpoet.cn"><img align="center" alt="Keep" src="https://keep-docs.xpoet.cn/images/keep-slogan.svg"></a>
+
+# hexo-theme-keep
+
+**Keep** 是一款简约轻快的 [Hexo](https://hexo.io) 主题。它能让你更专注于写作。
+
+[![Github License](https://img.shields.io/github/license/XPoet/hexo-theme-keep?style=flat-square&logo=github&color=3366cc)](https://github.com/XPoet/hexo-theme-keep/blob/master/LICENSE)
+[![Github Release](https://img.shields.io/github/release/XPoet/hexo-theme-keep?style=flat-square&logo=github&color=mediumpurple)](https://github.com/XPoet/hexo-theme-ils/releases)
+[![NPM Version](https://img.shields.io/npm/v/hexo-theme-keep?style=flat-square&logo=npm&color=indianred)](https://www.npmjs.com/package/hexo-theme-keep)
+[![NPM Downloads](https://img.shields.io/npm/dw/hexo-theme-keep?style=flat-square&logo=npm&color=darkorange)](https://www.npmjs.com/package/hexo-theme-keep)
+[![Node.js Version](https://img.shields.io/badge/node-%3E=14.0.0-forestgreen?style=flat-square&logo=Node.js)](https://nodejs.org)
+[![Required Hexo version](https://img.shields.io/badge/hexo-%3E=5.0.0-steelblue?style=flat-square&logo=hexo)](https://hexo.io)
+
+## :star2: 在线预览
+
+- **[XPoet's Blog](https://xpoet.cn/)**
+- **[keep 演示](https://keep.xpoet.cn/)**
+
+> 如果你想把自己的博客链接放置在线预览列表里,可以给作者提 PR。
+
+## :books: 文档
+
+请查看 **Keep** 官方文档:
+
+- **[Keep 官方文档](https://keep-docs.xpoet.cn/)**
+- **[Keep 主题配置指南](https://keep-docs.xpoet.cn/basis/configuration-guide/base_info.html)**
+- **[Keep 主题进阶使用](https://keep-docs.xpoet.cn/advanced/set-language.html)**
+
+## :rocket: 安装
+
+如果你使用 Hexo 5.0 或更高版本,最简单的安装方式是通过 NPM:
+
+```sh
+# 推荐
+
+cd your-hexo
+npm install hexo-theme-keep
+```
+
+你也可以直接克隆整个仓库:
+
+```sh
+cd your-hexo
+git clone https://github.com/XPoet/hexo-theme-keep --depth=1 themes/keep
+```
+
+安装完成后,在 Hexo 配置文件中将 `theme` 设置为 `keep`。
+
+```yml
+theme: keep
+```
+
+## :tada: 更新
+
+**Keep** 不定期发布新版本,你可以通过如下命令更新 **Keep**。
+
+通过 NPM 安装最新版本:
+
+```sh
+# 推荐
+
+$ cd your-hexo
+$ npm install hexo-theme-keep@latest
+```
+
+或者通过 git 更新到最新的 master 分支:
+
+```sh
+$ cd themes/keep
+$ git pull
+```
+
+不推荐直接修改 **Keep** 主题的源文件。因为这可能导致错误(例如 git merge 冲突),并且在升级主题时修改的文件可能丢失。
+
+## :art: 贡献者
+
+这个项目的存在多亏了所有的贡献者。
+
+<a href="https://github.com/XPoet/hexo-theme-keep/graphs/contributors">
+  <img src="https://contrib.rocks/image?repo=XPoet/hexo-theme-keep" />
+</a>
+
+我们欢迎你加入 **Keep** 的开发,贡献出你的一份力量。请看 [Keep 代码贡献指南](https://keep-docs.xpoet.cn/user-notice/contribution-guide.html)。
+
+## :sparkling_heart: 鸣谢
+
+**Keep** 特别感谢这些支持我们核心基础设施的优质服务:
+
+- [GitHub](https://github.com) 容许我们托管 Git 仓库及运行测试。
+- [cdnjs](https://cdnjs.com)、[jsDelivr](https://www.jsdelivr.com) 和 [UNPKG](https://www.unpkg.com) 提供了 CDN 服务。
+
+## :memo: 许可
+
+[AGPL-3.0](https://github.com/XPoet/hexo-theme-keep/blob/master/LICENSE)  
+
+Copyright © 2020-present XPoet

+ 65 - 0
source/_posts/assets.md

@@ -0,0 +1,65 @@
+---
+title: 一个测试blog1
+date: 2024-10-25 11:40:36
+tags: [Hexo, Keep]
+categories: [Hexo]
+---
+
+
+
+# Asset Handling
+
+## Relative URLs
+
+All Markdown files are compiled into Vue components and processed by [webpack](http://webpack.js.org/). You can, **and should**, reference any assets using relative URLs:
+
+``` md
+![An image](./image.png)
+```
+
+This would work the same way as in `*.vue` file templates. The image will be processed with `url-loader` and `file-loader`, and copied to appropriate locations in the generated static build.
+
+You can also use the `~` prefix to explicitly specify this is a webpack module request, allowing you to reference files with webpack aliases or from npm dependencies:
+
+``` md
+![Image from alias](~@alias/image.png)
+![Image from dependency](~some-dependency/image.png)
+```
+
+One alias that is added by default is `@source`, if you follow the recommended [Directory Structure](directory-structure.md) this is the `docs` folder. 
+
+``` md
+![Image from images folder](~@source/images/image.png)
+```
+
+Webpack aliases can be configured via [configureWebpack](../../../vuepress02/packages/docs/docs/config/README.md#configurewebpack) in `.vuepress/config.js`. Example:
+
+``` js
+module.exports = {
+  configureWebpack: {
+    resolve: {
+      alias: {
+        '@alias': 'path/to/some/dir'
+      }
+    }
+  }
+}
+```
+
+## Public Files
+
+Sometimes you may need to provide static assets that are not directly referenced in any of your Markdown or theme components (for example, favicons and PWA icons). In such cases, you can put them inside `.vuepress/public` and they will be copied to the root of the generated directory.
+
+## Base URL
+
+If your site is deployed to a non-root URL, you will need to set the `base` option in `.vuepress/config.js`. For example, if you plan to deploy your site to `https://foo.github.io/bar/`, then `base` should be set to `"/bar/"` (it should always start and end with a slash).
+
+With a base URL, to reference an image in `.vuepress/public`, you’d have to use URLs like `/bar/image.png`. But this is brittle if you ever decide to change the `base`. To help with that, VuePress provides a built-in helper `$withBase` (injected onto Vue’s prototype) that generates the correct path:
+
+``` vue
+<img :src="$withBase('/foo.png')" alt="foo">
+```
+
+Note you can use the above syntax not only in theme components, but in your Markdown files as well.
+
+Also, if a `base` is set, it’s automatically prepended to all asset URLs in `.vuepress/config.js` options.

+ 66 - 0
source/_posts/basic-config.md

@@ -0,0 +1,66 @@
+---
+title: 一个测试blog2
+date: 2023-10-25 11:40:36
+tags: [Hexo, Keep]
+categories: [Hexo]
+---
+
+
+# Configuration
+
+## Config File
+
+Without any configuration, the page is pretty minimal, and the user has no way to navigate around the site. To customize your site, let’s first create a `.vuepress` directory inside your docs directory. This is where all VuePress-specific files will be placed. Your project structure is probably like this:
+
+```
+.
+├─ docs
+│  ├─ README.md
+│  └─ .vuepress
+│     └─ config.js
+└─ package.json
+```
+
+The essential file for configuring a VuePress site is `.vuepress/config.js`, which should export a JavaScript object:
+
+``` js
+module.exports = {
+  title: 'Hello VuePress',
+  description: 'Just playing around'
+}
+```
+
+If you’ve got the dev server running, you should see the page now has a header with the title and a search box. VuePress comes with built-in headers-based search: it automatically builds a simple search index from the title, `h2`, and `h3` headers on all pages.
+
+Check out the [Config Reference](../../../vuepress02/packages/docs/docs/config/README.md) for a full list of options.
+
+::: tip Alternative Config Formats
+You can also use TS(`.vuepress/config.ts`), YAML (`.vuepress/config.yml`) or TOML (`.vuepress/config.toml`) formats for the configuration file, for detail of TS support, you can move [TypeScript as Config](typescript-as-config.md).
+:::
+
+## Theme Configuration
+
+A VuePress theme owns all the layout and interactivity details of your site. VuePress ships with a default theme (you are looking at it right now), designed for technical documentation. It exposes many options that allow you to customize the navbar, sidebar and homepage, etc. For details, check out the [Default Theme Config](../../../vuepress02/packages/docs/docs/theme/default-theme-config.md) page.
+
+To develop a custom theme, see [Writing a theme](../../../vuepress02/packages/docs/docs/theme/writing-a-theme.md).
+
+## App Level Enhancements
+
+Since the VuePress app is a standard Vue app, you can apply app-level enhancements by creating a file `.vuepress/enhanceApp.js`, which will be imported into the app if present. The file should `export default` a hook function which will receive an object containing some app-level values. You can use this hook to install extra Vue plugins, register global components, or add extra router hooks:
+
+``` js
+// async function is also supported, too
+export default ({
+  Vue, // the version of Vue being used in the VuePress app
+  options, // the options for the root Vue instance
+  router, // the router instance for the app
+  siteData, // site metadata
+  isServer // is this enhancement applied in server-rendering or client
+}) => {
+  // ...apply enhancements to the app
+}
+```
+
+**Related:**
+
+- [App Level Enhancements in Plugin API](../../../vuepress02/packages/docs/docs/plugin/option-api.md#enhanceappfiles)

+ 81 - 0
source/about/index.md

@@ -0,0 +1,81 @@
+---
+title: about
+date: 2024-05-07 10:51:54
+---
+### About me | 关于我
+
+
+``` html
+# 方法一
+keys = ['name', 'gender', 'age']
+dic = {}
+for key in keys:
+    dic[key] = None
+print(dic)
+# >>>{'name': None, 'gender': None, 'age': None}
+
+# 方法二
+dic1 = {}.fromkeys(keys, None)
+print(dic1)
+# >>>{'name': None, 'gender': None, 'age': None}
+
+```
+
+```mermaid
+gantt
+dateFormat  YYYY-MM-DD
+title Adding GANTT diagram to mermaid
+excludes weekdays 2014-01-10
+
+section A section
+Completed task            :done,    des1, 2014-01-06,2014-01-08
+Active task               :active,  des2, 2014-01-09, 3d
+Future task               :         des3, after des2, 5d
+Future task2               :         des4, after des3, 5d
+```
+
+
+
+
+
+- Software Development Engineer 软件开发工程师
+
+  > If you need someone to develop Website, Mini Program, Mobile APP and Desktop APP, then I hope we can work together.
+  > 如果你需要找人开发网站、小程序、手机 APP 和桌面 APP,那么希望我们能达成合作。
+  >
+  > You can find my contact information in below.
+  > 你可以在下方找到我的联系方式。
+
+- 《自由程序猿》公众号作者
+
+  > 如果你有 IT 领域原创好文,欢迎投稿,一经采用,将支付稿费酬谢。
+
+### Contact me | 联系我
+
+- GitHub | [XPoet](https://github.com/XPoet)
+
+- WeChat | 关注公众号@自由程序猿,添加博主微信,我们就是好朋友啦~
+
+  ![image]()
+
+### Open source projects | 开源项目
+
+- **hexo-theme-keep**
+
+  一款简约轻快的 [Hexo](https://hexo.io/) 主题,不管以后如何变化,Keep 主题始终围绕「简约、轻快、专注内容」来维护和升级,欢迎感兴趣的同学们贡献 PR。
+
+  关于 Keep 主题更多介绍以及图文教程,请移步 [Keep 官方使用手册](https://keep-docs.xpoet.cn/)。
+
+  - 仓库:https://github.com/XPoet/hexo-theme-keep
+  - 演示:[https://keep.xpoet.cn](https://keep.xpoet.cn/)
+  - 文档:[https://keep-docs.xpoet.cn](https://keep-docs.xpoet.cn/)
+
+- **PicX**
+
+  一款基于 GitHub API 开发的图床工具,提供图片上传托管、生成图片链接和常用图片工具箱服务。
+
+  - 仓库:https://github.com/XPoet/picx
+  - 官网:[https://picx.xpoet.cn](https://picx.xpoet.cn/)
+  - 文档:[https://picx-docs.xpoet.cn](https://picx-docs.xpoet.cn/)
+
+ Comments

+ 3 - 0
source/categories/index.md

@@ -0,0 +1,3 @@
+---
+title: categories
+---

+ 24 - 0
source/js/custom-1.js

@@ -0,0 +1,24 @@
+if (!window.runningTime) {
+    window.runningTime = () => {
+        const infoBox = document.querySelector('.footer .website-info-box')
+        const tempDiv = document.createElement('div');
+        tempDiv.setAttribute('class', 'info-item default')
+        infoBox.appendChild(tempDiv)
+
+        const since = '2020-01-01 00:00:00'
+        const formatTimestamp = (timestamp) => {
+            const now = Date.now()
+            const timeDiff = Math.abs(now - timestamp)
+            const days = Math.floor(timeDiff / (1000 * 60 * 60 * 24))
+            const hours = Math.floor((timeDiff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
+            const minutes = Math.floor((timeDiff % (1000 * 60 * 60)) / (1000 * 60))
+            const seconds = Math.floor((timeDiff % (1000 * 60)) / 1000)
+            return `${days} 天 ${hours} 小时 ${minutes} 分 ${seconds} 秒`
+        }
+
+        setInterval(() => {
+            tempDiv.innerHTML = '本站已安全运行 ' + formatTimestamp(new Date(since).getTime())
+        }, 1000)
+    }
+}
+window.runningTime()

+ 3 - 0
source/tags/index.md

@@ -0,0 +1,3 @@
+---
+title: tags
+---

+ 0 - 0
themes/.gitkeep


部分文件因为文件数量过多而无法显示