From 7a88a63b62e9d421c89d1c9a183360e4300cb362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=B5?= <78131932+wonder-light@users.noreply.github.com> Date: Wed, 1 Jan 2025 09:11:27 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E5=92=8C=E5=8F=98=E9=87=8F=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pages-build-and-deploy.yml | 48 ++++ docs/assets/js/main.js | 2 +- docs/zh-cn/docs/theme/struct.md | 65 ++++- docs/zh-cn/docs/theme/var.md | 255 ++++++++++++++++++- 4 files changed, 367 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/pages-build-and-deploy.yml diff --git a/.github/workflows/pages-build-and-deploy.yml b/.github/workflows/pages-build-and-deploy.yml new file mode 100644 index 0000000..4145872 --- /dev/null +++ b/.github/workflows/pages-build-and-deploy.yml @@ -0,0 +1,48 @@ + +# 部署静态页面 +name: pages build and deploy + + +on: + # 针对 main 分支的推送运行 + push: + branches: + - 'main' + paths: + - 'docs/**' + # 针对 main 分支的拉取请求 + pull_request: + branches: + - 'main' + paths: + - 'docs/**' + # 可以手动触发 + workflow_dispatch: + +#设置GITHUB_TOKEN的权限以允许部署到GitHub页面 +permissions: + contents: read + pages: write + id-token: write + +jobs: + # 部署 + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + # 官方action, 将代码拉取到虚拟机 + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + # 上传 docs 目录 + path: './docs' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/assets/js/main.js b/docs/assets/js/main.js index 7c38be5..fabe4df 100644 --- a/docs/assets/js/main.js +++ b/docs/assets/js/main.js @@ -28,7 +28,7 @@ window.$docsify = { homepage: "READEME.md", loadNavbar: true, // 小屏设备下合并导航栏到侧边栏 - mergeNavbar: true, + mergeNavbar: false, loadSidebar: true, hideSidebar: false, subMaxLevel: 3, diff --git a/docs/zh-cn/docs/theme/struct.md b/docs/zh-cn/docs/theme/struct.md index e75f43e..60664bb 100644 --- a/docs/zh-cn/docs/theme/struct.md +++ b/docs/zh-cn/docs/theme/struct.md @@ -1 +1,64 @@ -# struct \ No newline at end of file + +# 文件结构 :id=struct + +> 主题有一些强约定的目录结构和可选的静态资源目录 + + +## ejs 结构 :id=ejs + +``` +fly - 主题文件夹名称 (建议用小写,中划线分隔) +├── assets - 资源文件夹(可选,不可更名) +│ ├── media - 主题静态资源存放目录(可选,不可更名) +│ │ └── fonts - 字体图标文件夹(示例) +│ │ └── images - 主题用图片文件(示例) +│ ├── styles - 样式文件夹(可选,不可更名) +│ │ └── main.less - 主样式文件 (可选,不可更名) +├── static - 静态资源(可选,不可更名) +│ │ └── robots.txt +└── templates - 页面模版文件夹(必须,不可更名) +│ ├── _blocks - 页面模版文件夹(可选,可自定义命名) +│ │ ├── footer.ejs +│ │ ├── head.ejs +│ │ ├── header.ejs +│ ├── index.ejs - 主页,列表页 (必须,不可更名) +│ ├── post.ejs - 文章页 (必须,不可更名) +│ ├── archives.ejs - 归档页 (必须,不可更名) +│ ├── tags.ejs - 标签列表页 (必须,不可更名) +│ ├── tag.ejs - 标签详情页 (必须,不可更名) +│ └── friends.ejs - 自定义模版 (可选,任意命名) +├── config.json - 主题配置文件 (可选,推荐) +└── style-override.js - 主题样式自定义文件 (可选) +``` + + +## dart 结构 :id=dart + +``` +fly - 主题文件夹名称 (建议用小写,中划线分隔) +├── assets - 资源文件夹(可选,不可更名) +│ ├── media - 主题静态资源存放目录(可选,不可更名) +│ │ └── fonts - 字体图标文件夹(示例) +│ │ └── images - 主题用图片文件(示例) +│ ├── styles - 样式文件夹(可选,不可更名) +│ │ └── main.less - 主样式文件 (可选,不可更名) +├── static - 静态资源(可选,不可更名) +│ │ └── robots.txt +└── templates - 页面模版文件夹(必须,不可更名) +│ ├── _blocks - 页面模版文件夹(可选,可自定义命名) +│ │ ├── footer.dart +│ │ ├── head.dart +│ │ ├── header.dart +│ ├── index.dart - 主页,列表页 (必须,不可更名) +│ ├── post.dart - 文章页 (必须,不可更名) +│ ├── archives.dart - 归档页 (必须,不可更名) +│ ├── tags.dart - 标签列表页 (必须,不可更名) +│ ├── tag.dart - 标签详情页 (必须,不可更名) +│ └── friends.dart - 自定义模版 (可选,任意命名) +├── config.json - 主题配置文件 (可选,推荐) +└── style-override.dart - 主题样式自定义文件 (可选) +``` +
+ +如你所见,必须文件只有 6 个,`main.less`, `index.ejs`, `post.ejs`, `archives.ejs`, `tags.ejs`, `tag.ejs` +(需按照对应目录组织) diff --git a/docs/zh-cn/docs/theme/var.md b/docs/zh-cn/docs/theme/var.md index 65d4800..786aaba 100644 --- a/docs/zh-cn/docs/theme/var.md +++ b/docs/zh-cn/docs/theme/var.md @@ -1 +1,254 @@ -# var \ No newline at end of file + +# 页面变量 :id=variables + +> 在创建页面时引入的变量,不同的页面引入的变量也会有所不同 + +## 页面变量示例 :id=page-example + +### index 页面 :id=index-page + +- [posts](#posts) +- [menus](#menus) +- [pagination](#pagination) +- [themeConfig](#themeconfig) +- [site](#site) + +### post 页面 :id=post-page + +- [post](#post) +- [menus](#menus) +- [themeConfig](#themeconfig) +- [commentSetting](#commentsetting) +- [site](#site) + +### archives 页面 :id=archives-page + +- [posts](#posts) +- [menus](#menus) +- [pagination](#pagination) +- [themeConfig](#themeconfig) +- [site](#site) + +### tags 页面 :id=tags-page + +- [tags](#tags) +- [menus](#menus) +- [themeConfig](#themeconfig) +- [site](#site) + +### tag 页面键 :id=tag-page + +- [tag](#tag) +- [posts](#posts) +- [menus](#menus) +- [pagination](#pagination) +- [themeConfig](#themeconfig) +- [site](#site) + +### 自定义模板 :id=custom-template + +可以在 templates 文件夹创建自定义模版,\ +例如 `friends.ejs`, `about.ejs`, `projects.ejs`, `404.ejs` 等等,\ +最终生成的访问路径为\ +`http(s)://域名/friends`,\ +`http(s)://域名/about`,\ +`http(s)://域名/projects`,\ +`http(s)://域名/404` + +可用变量如下: + +- [menus](#menus) +- [themeConfig](#themeconfig) +- [commentSetting](#commentsetting) +- [site](#site) + +?> 注:若主题包含自定义模版,若自定义渲染模板的 URL 与文章 URL 产生冲突,自定义渲染模版优先级高于文章 URL + +## 变量值示例 :id=variable-example + +?> @ 符号为引用其他字段标志,仅作为此文档字段说明使用 + +### menus + +菜单数组,具体 Menu 字段可见 [menu](#menu) + +```js +menus: [ + @menu, + @menu, + @menu +] +``` + +### posts + +文章数组,具体 Post 字段可见 [post](#post) + +```js +posts: [ + @post, + @post, + @post +] +``` + +### tags + +标签数组,具体 Tag 字段可见 [tag](#tag) + +```js +tags: [ + @tag, + @tag, + @tag +] +``` + +### pagination + +文章列表的分页字段 + +```js +pagination: { + prev: '', // 上一页的链接 + next: '', // 下一页的链接 +} +``` + +### menu + +菜单字段 + +```js +menu: { + name: '首页', + link: '/', + openType: 'internal', // 打开类型: 内链或外链 +} +``` + +### post + +文章字段 + +```js +site: { + content: '

Gridea 一个静态博客写作客户端

\n

👏 欢迎使用 Gridea

\n

🌈 Gridea 一个静态博客写作客户端。你可以用它来记录你的生活、心情、知识、笔记、创意... ...

', + fileName: 'hello-gridea', + abstract: '

Gridea 一个静态博客写作客户端

\n', + description: '一个静态博客写作客户端 欢迎使用 Gridea!Gridea 一个静态博客写作客户端。你可以用它来记录你的生...', // 智能截取文章开始内容填充此字段,可用作未设置摘要时备用字段 + title: 'Hello Gridea', + tags: [@tag, @tag, @tag], // 文章 tag 数组,具体可见下面 tag 字段 + date: 'December 12o 2018, am', + dateFormat: '2018-12-12', // 依据 Gridea 应用内日期格式化后字段 + description: '一个静态博客写作客户端 欢迎使用 Gridea!Gridea 一个静态博客写作客户端。你可以用它来记录你的生...', // 智能截取文章开始内容填充此字段,可用作未设置摘要时备用字段 + title: 'Hello Gridea', + tags: [@tag, @tag, @tag], // 文章 tag 数组,具体可见下面 tag 字段 + date: 'December 12o 2018, am', + dateFormat: '2018-12-12', // 依据 Gridea 应用内日期格式化后字段 + feature: 'post-images/hello-gridea.png', // 若无封面图,则为'' + link: 'https://xxx.com/post/hello-gridea', + hideInList: false, // 仅对未设置标签文章生效 + isTop: false, // 是否是置顶文章 + toc: '', // 文章目录字段 + prevPost: @post, // 若是为第一篇文章,则无此字段 + nextPost: @post, // 若是为最后一篇文章,则无此字段 +} +``` + +### tag + +标签字段 + +```js +tag: { + name: 'Gridea', + slug: 'gridea', + link: 'https://xxx.com/tag/gridea', +} +``` + +### themeConfig + +主题配置字段 + +```js +themeConfig: { + archivesPageSize: 50, + archivesPath: "archives", // 归档页路径前缀,应用内可自定义,例如 'blog', 'news' 等 + dateFormat: "YYYY-MM-DD", + feedCount: 10, + feedFullText: true, + footerInfo: "Powered by Gridea", + postPageSize: 12, + postPath: "post", + postUrlFormat: "SLUG", + showFeatureImage: true, + siteDescription: "Every 🐦 has an 🦅's dream.", + siteName: "海岛心hey", + tagPath: "tag", + tagUrlFormat: "SHORT_ID", + themeName: "tech" +} +``` + +### site + +site 字段 + +```js +site: { + posts: @posts, + tags: @tags, + menus: @menus, + themeConfig: @themeConfig, + isHomepage: false, // 是否为首页,使用 index.ejs 渲染,且为第一页的时候为 true + customConfig: {}, // 主题自定义配置字段,若无则为 {} + utils: { + now: "1577006772710", // Date.now() + }, +}; +``` + +### commentSetting + +评论字段 + +```js +commentSetting: { + commentPlatform: 'disqus', + disqusSetting: { + api: '', + apikey: 'Dme6Hy8bOI2xxxxUtdY8V', + shortname: 'gridea', + }, + gitalkSetting: { + clientId: 'd92dxxxxxxxxxx9b4', + clientSecret: '861947exxxx365d33', + owner: 'EryouHao', + repository: 'EryouHao.github.io' + }, + showComment: false // 是否显示评论,可根据此字段进行评论的展示与否 +} +``` + + +## 其它 :id=other + +### 头像 :id=avatar + +```html + +``` + +### 网页图标 :id=favicon + +```html + +``` + +### 样式文件 :id=main.css + +```html + +```