From 64672e303f3836f4e647031880b8875bf5667d0f Mon Sep 17 00:00:00 2001 From: renjianbo <18691577328@qq.com> Date: Mon, 5 Jan 2026 10:31:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 44 +- docs/DevOps平台/Drone CI使用指南.md | 158 +- docs/DevOps平台/Gerrit使用指南.md | 126 +- docs/DevOps平台/Gitea使用指南.md | 114 +- docs/DevOps平台/MinIO使用指南.md | 174 +- docs/DevOps平台/Nexus使用指南.md | 192 +- docs/index.md | 132 +- docs/学习笔记/DevOps学习.md | 136 +- docs/学习笔记/Java学习.md | 170 +- docs/学习笔记/MkDocs 是什么.md | 2516 +++++++++--------- docs/学习笔记/gerrit上传代码详细指南.md | 848 +++--- docs/学习笔记/gerrit分支规范.md | 128 + docs/学习笔记/git同步远程分支总结.md | 276 ++ docs/学习笔记/git设置用户名和邮箱.md | 14 + docs/学习笔记/前端学习.md | 238 +- docs/学习笔记/生成并配置SSH密钥、克隆仓库.md | 133 + docs/开发指南/开发规范.md | 208 +- docs/开发指南/快速开始.md | 112 +- docs/开发指南/项目结构.md | 90 +- docs/技术文档/API文档.md | 156 +- docs/技术文档/架构设计.md | 116 +- docs/技术文档/部署文档.md | 320 +-- mkdocs.yml | 179 +- 使用说明.md | 496 ++-- 部署说明.md | 434 +-- 25 files changed, 4032 insertions(+), 3478 deletions(-) create mode 100644 docs/学习笔记/gerrit分支规范.md create mode 100644 docs/学习笔记/git同步远程分支总结.md create mode 100644 docs/学习笔记/git设置用户名和邮箱.md create mode 100644 docs/学习笔记/生成并配置SSH密钥、克隆仓库.md diff --git a/docker-compose.yml b/docker-compose.yml index 732d2e1..0617300 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,22 +1,22 @@ -version: '3.8' - -services: - mkdocs: - image: squidfunk/mkdocs-material:latest - container_name: mkdocs - restart: unless-stopped - ports: - - "8000:8000" # HTTP 端口映射:主机 8000 -> 容器 8000 - volumes: - - .:/docs # 挂载整个项目目录到 /docs - working_dir: /docs - command: serve --dev-addr=0.0.0.0:8000 - environment: - - MKDOCS_SERVE_ADDR=0.0.0.0:8000 - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8000/"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 10s - +version: '3.8' + +services: + mkdocs: + image: squidfunk/mkdocs-material:latest + container_name: mkdocs + restart: unless-stopped + ports: + - "8000:8000" # HTTP 端口映射:主机 8000 -> 容器 8000 + volumes: + - .:/docs # 挂载整个项目目录到 /docs + working_dir: /docs + command: serve --dev-addr=0.0.0.0:8000 + environment: + - MKDOCS_SERVE_ADDR=0.0.0.0:8000 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + diff --git a/docs/DevOps平台/Drone CI使用指南.md b/docs/DevOps平台/Drone CI使用指南.md index 0f6b417..3bc41ae 100644 --- a/docs/DevOps平台/Drone CI使用指南.md +++ b/docs/DevOps平台/Drone CI使用指南.md @@ -1,79 +1,79 @@ -# Drone CI 使用指南 - -## 简介 - -Drone 是一个基于容器的持续集成/持续部署(CI/CD)平台。 - -## 访问地址 - -- **Web 界面**: http://101.43.95.130:3000 (需配置) - -## 基本概念 - -### Pipeline - -Pipeline 是 CI/CD 的执行流程,定义在 `.drone.yml` 文件中。 - -### Step - -Step 是 Pipeline 中的一个步骤,每个 Step 在一个独立的容器中执行。 - -### Service - -Service 是 Pipeline 中提供的服务,如数据库、缓存等。 - -## 配置文件示例 - -在项目根目录创建 `.drone.yml`: - -```yaml -kind: pipeline -type: docker -name: default - -steps: -- name: build - image: maven:3.8-openjdk-17 - commands: - - mvn clean package - -- name: test - image: maven:3.8-openjdk-17 - commands: - - mvn test - -- name: deploy - image: alpine - commands: - - echo "部署应用..." -``` - -## 常用操作 - -### 触发构建 - -- 推送到仓库会自动触发构建 -- 在 Web 界面手动触发构建 - -### 查看构建日志 - -在 Web 界面查看构建日志,了解构建过程。 - -### 构建状态 - -- **Success**: 构建成功 -- **Failure**: 构建失败 -- **Running**: 构建中 -- **Pending**: 等待执行 - -## 最佳实践 - -1. **缓存依赖**: 使用缓存加速构建 -2. **并行执行**: 将独立的任务并行执行 -3. **环境变量**: 使用密钥管理敏感信息 -4. **通知机制**: 配置构建通知 - -## 相关链接 - -- [Drone 官方文档](https://docs.drone.io/) - +# Drone CI 使用指南 + +## 简介 + +Drone 是一个基于容器的持续集成/持续部署(CI/CD)平台。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:3000 (需配置) + +## 基本概念 + +### Pipeline + +Pipeline 是 CI/CD 的执行流程,定义在 `.drone.yml` 文件中。 + +### Step + +Step 是 Pipeline 中的一个步骤,每个 Step 在一个独立的容器中执行。 + +### Service + +Service 是 Pipeline 中提供的服务,如数据库、缓存等。 + +## 配置文件示例 + +在项目根目录创建 `.drone.yml`: + +```yaml +kind: pipeline +type: docker +name: default + +steps: +- name: build + image: maven:3.8-openjdk-17 + commands: + - mvn clean package + +- name: test + image: maven:3.8-openjdk-17 + commands: + - mvn test + +- name: deploy + image: alpine + commands: + - echo "部署应用..." +``` + +## 常用操作 + +### 触发构建 + +- 推送到仓库会自动触发构建 +- 在 Web 界面手动触发构建 + +### 查看构建日志 + +在 Web 界面查看构建日志,了解构建过程。 + +### 构建状态 + +- **Success**: 构建成功 +- **Failure**: 构建失败 +- **Running**: 构建中 +- **Pending**: 等待执行 + +## 最佳实践 + +1. **缓存依赖**: 使用缓存加速构建 +2. **并行执行**: 将独立的任务并行执行 +3. **环境变量**: 使用密钥管理敏感信息 +4. **通知机制**: 配置构建通知 + +## 相关链接 + +- [Drone 官方文档](https://docs.drone.io/) + diff --git a/docs/DevOps平台/Gerrit使用指南.md b/docs/DevOps平台/Gerrit使用指南.md index ad8de0d..8b59996 100644 --- a/docs/DevOps平台/Gerrit使用指南.md +++ b/docs/DevOps平台/Gerrit使用指南.md @@ -1,63 +1,63 @@ -# Gerrit 使用指南 - -## 简介 - -Gerrit 是一个基于 Git 的代码审查工具,用于团队协作和代码质量控制。 - -## 访问地址 - -- **Web 界面**: http://101.43.95.130:8082 -- **SSH 端口**: 29418 - -## 基本使用 - -### 克隆项目 - -```bash -git clone ssh://admin@101.43.95.130:29418/项目名 -``` - -### 提交代码审查 - -1. 创建分支并提交更改 -2. 推送到 Gerrit 进行审查: - ```bash - git push origin HEAD:refs/for/master - ``` -3. 在 Web 界面查看审查请求 - -### 审查流程 - -1. **创建变更**: 开发者推送代码 -2. **代码审查**: 审查者查看代码并添加评论 -3. **修改代码**: 根据反馈修改代码 -4. **重新提交**: 推送新的补丁集 -5. **通过审查**: 审查者批准代码 -6. **合并代码**: 代码合并到主分支 - -## 常用命令 - -### 查看待审查的变更 - -```bash -ssh -p 29418 admin@101.43.95.130 gerrit query --format=JSON status:open -``` - -### 查看特定变更 - -```bash -ssh -p 29418 admin@101.43.95.130 gerrit query change:12345 -``` - -## 最佳实践 - -1. **小步提交**: 每次提交只包含一个功能或修复 -2. **清晰的提交信息**: 使用清晰的提交信息说明更改内容 -3. **及时响应**: 及时响应审查者的反馈 -4. **代码质量**: 确保代码通过所有测试和检查 - -## 相关链接 - -- [Gerrit 官方文档](https://gerrit-review.googlesource.com/Documentation/) -- [Gerrit 工作流程](https://gerrit-review.googlesource.com/Documentation/intro-user.html) - +# Gerrit 使用指南 + +## 简介 + +Gerrit 是一个基于 Git 的代码审查工具,用于团队协作和代码质量控制。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:8082 +- **SSH 端口**: 29418 + +## 基本使用 + +### 克隆项目 + +```bash +git clone ssh://admin@101.43.95.130:29418/项目名 +``` + +### 提交代码审查 + +1. 创建分支并提交更改 +2. 推送到 Gerrit 进行审查: + ```bash + git push origin HEAD:refs/for/master + ``` +3. 在 Web 界面查看审查请求 + +### 审查流程 + +1. **创建变更**: 开发者推送代码 +2. **代码审查**: 审查者查看代码并添加评论 +3. **修改代码**: 根据反馈修改代码 +4. **重新提交**: 推送新的补丁集 +5. **通过审查**: 审查者批准代码 +6. **合并代码**: 代码合并到主分支 + +## 常用命令 + +### 查看待审查的变更 + +```bash +ssh -p 29418 admin@101.43.95.130 gerrit query --format=JSON status:open +``` + +### 查看特定变更 + +```bash +ssh -p 29418 admin@101.43.95.130 gerrit query change:12345 +``` + +## 最佳实践 + +1. **小步提交**: 每次提交只包含一个功能或修复 +2. **清晰的提交信息**: 使用清晰的提交信息说明更改内容 +3. **及时响应**: 及时响应审查者的反馈 +4. **代码质量**: 确保代码通过所有测试和检查 + +## 相关链接 + +- [Gerrit 官方文档](https://gerrit-review.googlesource.com/Documentation/) +- [Gerrit 工作流程](https://gerrit-review.googlesource.com/Documentation/intro-user.html) + diff --git a/docs/DevOps平台/Gitea使用指南.md b/docs/DevOps平台/Gitea使用指南.md index 70c3cda..58ee37e 100644 --- a/docs/DevOps平台/Gitea使用指南.md +++ b/docs/DevOps平台/Gitea使用指南.md @@ -1,57 +1,57 @@ -# Gitea 使用指南 - -## 简介 - -Gitea 是一个轻量级的 Git 服务,提供 Web 界面和 Git 仓库管理功能。 - -## 访问地址 - -- **Web 界面**: http://101.43.95.130:3000 -- **SSH 端口**: 222 - -## 基本使用 - -### 创建仓库 - -1. 登录 Gitea -2. 点击右上角 "+" 按钮 -3. 选择 "New Repository" -4. 填写仓库信息并创建 - -### 克隆仓库 - -```bash -# HTTPS -git clone http://101.43.95.130:3000/用户名/仓库名.git - -# SSH -git clone ssh://git@101.43.95.130:222/用户名/仓库名.git -``` - -### 推送代码 - -```bash -git add . -git commit -m "提交信息" -git push origin main -``` - -## 功能特性 - -- **代码仓库**: Git 仓库管理 -- **Issue 跟踪**: 问题跟踪和管理 -- **Pull Request**: 代码合并请求 -- **Wiki**: 项目文档 -- **项目管理**: 看板和里程碑 - -## 最佳实践 - -1. **分支管理**: 使用分支进行功能开发 -2. **提交规范**: 遵循提交信息规范 -3. **代码审查**: 使用 Pull Request 进行代码审查 -4. **文档维护**: 使用 Wiki 维护项目文档 - -## 相关链接 - -- [Gitea 官方文档](https://docs.gitea.io/) - +# Gitea 使用指南 + +## 简介 + +Gitea 是一个轻量级的 Git 服务,提供 Web 界面和 Git 仓库管理功能。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:3000 +- **SSH 端口**: 222 + +## 基本使用 + +### 创建仓库 + +1. 登录 Gitea +2. 点击右上角 "+" 按钮 +3. 选择 "New Repository" +4. 填写仓库信息并创建 + +### 克隆仓库 + +```bash +# HTTPS +git clone http://101.43.95.130:3000/用户名/仓库名.git + +# SSH +git clone ssh://git@101.43.95.130:222/用户名/仓库名.git +``` + +### 推送代码 + +```bash +git add . +git commit -m "提交信息" +git push origin main +``` + +## 功能特性 + +- **代码仓库**: Git 仓库管理 +- **Issue 跟踪**: 问题跟踪和管理 +- **Pull Request**: 代码合并请求 +- **Wiki**: 项目文档 +- **项目管理**: 看板和里程碑 + +## 最佳实践 + +1. **分支管理**: 使用分支进行功能开发 +2. **提交规范**: 遵循提交信息规范 +3. **代码审查**: 使用 Pull Request 进行代码审查 +4. **文档维护**: 使用 Wiki 维护项目文档 + +## 相关链接 + +- [Gitea 官方文档](https://docs.gitea.io/) + diff --git a/docs/DevOps平台/MinIO使用指南.md b/docs/DevOps平台/MinIO使用指南.md index c5d0ae9..0ec2e80 100644 --- a/docs/DevOps平台/MinIO使用指南.md +++ b/docs/DevOps平台/MinIO使用指南.md @@ -1,87 +1,87 @@ -# MinIO 使用指南 - -## 简介 - -MinIO 是一个高性能的对象存储服务,兼容 Amazon S3 API。 - -## 访问地址 - -- **API 地址**: http://101.43.95.130:9000 -- **Console 地址**: http://101.43.95.130:9001 -- **默认账号**: minioadmin / minioadmin123 - -## 基本使用 - -### 创建存储桶(Bucket) - -1. 登录 MinIO Console -2. 点击 "Create Bucket" -3. 输入存储桶名称 -4. 配置访问策略 - -### 上传文件 - -1. 选择存储桶 -2. 点击 "Upload" -3. 选择文件上传 - -### 下载文件 - -1. 在存储桶中找到文件 -2. 点击文件下载 - -## API 使用 - -### 使用 Python SDK - -```python -from minio import Minio -from minio.error import S3Error - -# 初始化客户端 -client = Minio( - "101.43.95.130:9000", - access_key="minioadmin", - secret_key="minioadmin123", - secure=False -) - -# 上传文件 -client.fput_object("my-bucket", "object-name", "file-path") -``` - -### 使用 Java SDK - -```java -MinioClient minioClient = MinioClient.builder() - .endpoint("http://101.43.95.130:9000") - .credentials("minioadmin", "minioadmin123") - .build(); - -minioClient.uploadObject( - UploadObjectArgs.builder() - .bucket("my-bucket") - .object("object-name") - .filename("file-path") - .build() -); -``` - -## 使用场景 - -- **构建产物存储**: 存储 CI/CD 构建的产物 -- **APK 仓库**: 存储 Android APK 文件 -- **文件备份**: 备份重要文件 -- **静态资源**: 存储网站静态资源 - -## 最佳实践 - -1. **访问控制**: 配置适当的访问策略 -2. **数据备份**: 定期备份重要数据 -3. **版本控制**: 启用对象版本控制 -4. **监控告警**: 配置监控和告警 - -## 相关链接 - -- [MinIO 官方文档](https://min.io/docs/) - +# MinIO 使用指南 + +## 简介 + +MinIO 是一个高性能的对象存储服务,兼容 Amazon S3 API。 + +## 访问地址 + +- **API 地址**: http://101.43.95.130:9000 +- **Console 地址**: http://101.43.95.130:9001 +- **默认账号**: minioadmin / minioadmin123 + +## 基本使用 + +### 创建存储桶(Bucket) + +1. 登录 MinIO Console +2. 点击 "Create Bucket" +3. 输入存储桶名称 +4. 配置访问策略 + +### 上传文件 + +1. 选择存储桶 +2. 点击 "Upload" +3. 选择文件上传 + +### 下载文件 + +1. 在存储桶中找到文件 +2. 点击文件下载 + +## API 使用 + +### 使用 Python SDK + +```python +from minio import Minio +from minio.error import S3Error + +# 初始化客户端 +client = Minio( + "101.43.95.130:9000", + access_key="minioadmin", + secret_key="minioadmin123", + secure=False +) + +# 上传文件 +client.fput_object("my-bucket", "object-name", "file-path") +``` + +### 使用 Java SDK + +```java +MinioClient minioClient = MinioClient.builder() + .endpoint("http://101.43.95.130:9000") + .credentials("minioadmin", "minioadmin123") + .build(); + +minioClient.uploadObject( + UploadObjectArgs.builder() + .bucket("my-bucket") + .object("object-name") + .filename("file-path") + .build() +); +``` + +## 使用场景 + +- **构建产物存储**: 存储 CI/CD 构建的产物 +- **APK 仓库**: 存储 Android APK 文件 +- **文件备份**: 备份重要文件 +- **静态资源**: 存储网站静态资源 + +## 最佳实践 + +1. **访问控制**: 配置适当的访问策略 +2. **数据备份**: 定期备份重要数据 +3. **版本控制**: 启用对象版本控制 +4. **监控告警**: 配置监控和告警 + +## 相关链接 + +- [MinIO 官方文档](https://min.io/docs/) + diff --git a/docs/DevOps平台/Nexus使用指南.md b/docs/DevOps平台/Nexus使用指南.md index e4cdf61..59161e1 100644 --- a/docs/DevOps平台/Nexus使用指南.md +++ b/docs/DevOps平台/Nexus使用指南.md @@ -1,96 +1,96 @@ -# Nexus 使用指南 - -## 简介 - -Nexus Repository Manager 是一个 Maven 仓库管理器,用于管理构建依赖和发布构件。 - -## 访问地址 - -- **Web 界面**: http://101.43.95.130:8081 -- **默认账号**: admin (首次登录会提示修改密码) - -## 基本使用 - -### 配置 Maven - -在 `~/.m2/settings.xml` 中配置: - -```xml - - - - nexus - * - http://101.43.95.130:8081/repository/maven-public/ - - - -``` - -### 发布构件 - -在项目的 `pom.xml` 中配置: - -```xml - - - nexus-releases - http://101.43.95.130:8081/repository/maven-releases/ - - - nexus-snapshots - http://101.43.95.130:8081/repository/maven-snapshots/ - - -``` - -### 发布命令 - -```bash -mvn clean deploy -``` - -## 仓库类型 - -### Maven Central 代理 - -- **名称**: maven-central -- **类型**: Proxy -- **远程 URL**: https://repo1.maven.org/maven2/ - -### Maven Public 组 - -- **名称**: maven-public -- **类型**: Group -- **包含**: maven-central, maven-releases, maven-snapshots - -### Maven Releases - -- **名称**: maven-releases -- **类型**: Hosted -- **策略**: Release - -### Maven Snapshots - -- **名称**: maven-snapshots -- **类型**: Hosted -- **策略**: Snapshot - -## 使用场景 - -- **依赖加速**: 加速 Gradle/Maven 依赖下载 -- **私有仓库**: 存储私有构件 -- **版本管理**: 管理发布版本和快照版本 -- **安全扫描**: 扫描依赖漏洞 - -## 最佳实践 - -1. **定期清理**: 清理不需要的快照版本 -2. **备份数据**: 定期备份仓库数据 -3. **访问控制**: 配置适当的用户权限 -4. **监控告警**: 监控仓库使用情况 - -## 相关链接 - -- [Nexus 官方文档](https://help.sonatype.com/repomanager3) - +# Nexus 使用指南 + +## 简介 + +Nexus Repository Manager 是一个 Maven 仓库管理器,用于管理构建依赖和发布构件。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:8081 +- **默认账号**: admin (首次登录会提示修改密码) + +## 基本使用 + +### 配置 Maven + +在 `~/.m2/settings.xml` 中配置: + +```xml + + + + nexus + * + http://101.43.95.130:8081/repository/maven-public/ + + + +``` + +### 发布构件 + +在项目的 `pom.xml` 中配置: + +```xml + + + nexus-releases + http://101.43.95.130:8081/repository/maven-releases/ + + + nexus-snapshots + http://101.43.95.130:8081/repository/maven-snapshots/ + + +``` + +### 发布命令 + +```bash +mvn clean deploy +``` + +## 仓库类型 + +### Maven Central 代理 + +- **名称**: maven-central +- **类型**: Proxy +- **远程 URL**: https://repo1.maven.org/maven2/ + +### Maven Public 组 + +- **名称**: maven-public +- **类型**: Group +- **包含**: maven-central, maven-releases, maven-snapshots + +### Maven Releases + +- **名称**: maven-releases +- **类型**: Hosted +- **策略**: Release + +### Maven Snapshots + +- **名称**: maven-snapshots +- **类型**: Hosted +- **策略**: Snapshot + +## 使用场景 + +- **依赖加速**: 加速 Gradle/Maven 依赖下载 +- **私有仓库**: 存储私有构件 +- **版本管理**: 管理发布版本和快照版本 +- **安全扫描**: 扫描依赖漏洞 + +## 最佳实践 + +1. **定期清理**: 清理不需要的快照版本 +2. **备份数据**: 定期备份仓库数据 +3. **访问控制**: 配置适当的用户权限 +4. **监控告警**: 监控仓库使用情况 + +## 相关链接 + +- [Nexus 官方文档](https://help.sonatype.com/repomanager3) + diff --git a/docs/index.md b/docs/index.md index fdc6a19..588d2dc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,66 +1,66 @@ -# 欢迎来到个人知识库 - -这是一个基于 MkDocs Material 的个人技术文档和知识管理平台。 - -## 📚 功能特性 - -- 📝 **Markdown 支持**: 使用 Markdown 编写文档,简单易用 -- 🎨 **Material 主题**: 美观现代的 Material Design 界面 -- 🔍 **全文搜索**: 快速查找所需内容 -- 📱 **响应式设计**: 支持各种设备访问 -- 🌙 **深色模式**: 支持浅色/深色主题切换 -- 📊 **代码高亮**: 支持多种编程语言的语法高亮 -- 🔗 **导航系统**: 清晰的文档导航结构 - -## 🚀 快速开始 - -### 编辑文档 - -1. 在 `docs/` 目录下创建或编辑 Markdown 文件 -2. 在 `mkdocs.yml` 中更新导航配置 -3. 保存后,MkDocs 会自动重新加载(开发模式) - -### 添加新文档 - -1. 在 `docs/` 目录下创建新的 `.md` 文件 -2. 在 `mkdocs.yml` 的 `nav` 部分添加导航项 -3. 重启服务或等待自动重载 - -### 构建静态站点 - -```bash -# 进入容器执行构建 -docker exec -it mkdocs mkdocs build - -# 或使用 docker-compose -docker-compose exec mkdocs mkdocs build -``` - -## 📖 文档结构 - -``` -docs/ -├── index.md # 首页 -├── 开发指南/ # 开发相关文档 -├── DevOps平台/ # DevOps 工具使用指南 -├── 技术文档/ # 技术架构和 API 文档 -└── 学习笔记/ # 学习笔记和总结 -``` - -## 🔗 相关链接 - -- [MkDocs 官方文档](https://www.mkdocs.org/) -- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) -- [Markdown 语法指南](https://www.markdownguide.org/) - -## 💡 使用技巧 - -1. **代码块**: 使用三个反引号包裹代码,并指定语言 -2. **表格**: 使用 Markdown 表格语法 -3. **图片**: 将图片放在 `docs/images/` 目录,使用相对路径引用 -4. **数学公式**: 支持 LaTeX 数学公式(需要启用相应插件) -5. **流程图**: 支持 Mermaid 流程图(已配置) - ---- - -**开始编写你的文档吧!** 📝 +# 欢迎来到个人知识库 + +这是一个基于 MkDocs Material 的个人技术文档和知识管理平台。 + +## 📚 功能特性 + +- 📝 **Markdown 支持**: 使用 Markdown 编写文档,简单易用 +- 🎨 **Material 主题**: 美观现代的 Material Design 界面 +- 🔍 **全文搜索**: 快速查找所需内容 +- 📱 **响应式设计**: 支持各种设备访问 +- 🌙 **深色模式**: 支持浅色/深色主题切换 +- 📊 **代码高亮**: 支持多种编程语言的语法高亮 +- 🔗 **导航系统**: 清晰的文档导航结构 + +## 🚀 快速开始 + +### 编辑文档 + +1. 在 `docs/` 目录下创建或编辑 Markdown 文件 +2. 在 `mkdocs.yml` 中更新导航配置 +3. 保存后,MkDocs 会自动重新加载(开发模式) + +### 添加新文档 + +1. 在 `docs/` 目录下创建新的 `.md` 文件 +2. 在 `mkdocs.yml` 的 `nav` 部分添加导航项 +3. 重启服务或等待自动重载 + +### 构建静态站点 + +```bash +# 进入容器执行构建 +docker exec -it mkdocs mkdocs build + +# 或使用 docker-compose +docker-compose exec mkdocs mkdocs build +``` + +## 📖 文档结构 + +``` +docs/ +├── index.md # 首页 +├── 开发指南/ # 开发相关文档 +├── DevOps平台/ # DevOps 工具使用指南 +├── 技术文档/ # 技术架构和 API 文档 +└── 学习笔记/ # 学习笔记和总结 +``` + +## 🔗 相关链接 + +- [MkDocs 官方文档](https://www.mkdocs.org/) +- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) +- [Markdown 语法指南](https://www.markdownguide.org/) + +## 💡 使用技巧 + +1. **代码块**: 使用三个反引号包裹代码,并指定语言 +2. **表格**: 使用 Markdown 表格语法 +3. **图片**: 将图片放在 `docs/images/` 目录,使用相对路径引用 +4. **数学公式**: 支持 LaTeX 数学公式(需要启用相应插件) +5. **流程图**: 支持 Mermaid 流程图(已配置) + +--- + +**开始编写你的文档吧!** 📝 diff --git a/docs/学习笔记/DevOps学习.md b/docs/学习笔记/DevOps学习.md index 1b276ec..1cb4889 100644 --- a/docs/学习笔记/DevOps学习.md +++ b/docs/学习笔记/DevOps学习.md @@ -1,68 +1,68 @@ -# DevOps 学习笔记 - -## 概念 - -### CI/CD - -- **CI (Continuous Integration)**: 持续集成 - - 自动构建 - - 自动测试 - - 代码质量检查 - -- **CD (Continuous Deployment)**: 持续部署 - - 自动部署 - - 环境管理 - - 回滚机制 - -## 工具链 - -### 版本控制 - -- **Git**: 分布式版本控制系统 -- **Gerrit**: 代码审查工具 -- **Gitea**: Git 服务 - -### CI/CD - -- **Drone**: 基于容器的 CI/CD 平台 -- **Jenkins**: 流行的 CI/CD 工具 -- **GitLab CI**: GitLab 内置 CI/CD - -### 容器化 - -- **Docker**: 容器化平台 -- **Docker Compose**: 多容器编排 -- **Kubernetes**: 容器编排平台 - -### 监控和日志 - -- **Grafana**: 监控可视化 -- **Loki**: 日志聚合 -- **Prometheus**: 监控和告警 - -## 最佳实践 - -### 代码管理 - -1. 使用分支策略(Git Flow) -2. 代码审查(Code Review) -3. 提交信息规范(Conventional Commits) - -### 自动化 - -1. 自动化测试 -2. 自动化构建 -3. 自动化部署 - -### 监控 - -1. 应用监控 -2. 日志收集 -3. 告警机制 - -## 学习资源 - -- [DevOps 实践指南](https://www.devops-handbook.com/) -- [Docker 官方文档](https://docs.docker.com/) -- [Kubernetes 官方文档](https://kubernetes.io/docs/) - +# DevOps 学习笔记 + +## 概念 + +### CI/CD + +- **CI (Continuous Integration)**: 持续集成 + - 自动构建 + - 自动测试 + - 代码质量检查 + +- **CD (Continuous Deployment)**: 持续部署 + - 自动部署 + - 环境管理 + - 回滚机制 + +## 工具链 + +### 版本控制 + +- **Git**: 分布式版本控制系统 +- **Gerrit**: 代码审查工具 +- **Gitea**: Git 服务 + +### CI/CD + +- **Drone**: 基于容器的 CI/CD 平台 +- **Jenkins**: 流行的 CI/CD 工具 +- **GitLab CI**: GitLab 内置 CI/CD + +### 容器化 + +- **Docker**: 容器化平台 +- **Docker Compose**: 多容器编排 +- **Kubernetes**: 容器编排平台 + +### 监控和日志 + +- **Grafana**: 监控可视化 +- **Loki**: 日志聚合 +- **Prometheus**: 监控和告警 + +## 最佳实践 + +### 代码管理 + +1. 使用分支策略(Git Flow) +2. 代码审查(Code Review) +3. 提交信息规范(Conventional Commits) + +### 自动化 + +1. 自动化测试 +2. 自动化构建 +3. 自动化部署 + +### 监控 + +1. 应用监控 +2. 日志收集 +3. 告警机制 + +## 学习资源 + +- [DevOps 实践指南](https://www.devops-handbook.com/) +- [Docker 官方文档](https://docs.docker.com/) +- [Kubernetes 官方文档](https://kubernetes.io/docs/) + diff --git a/docs/学习笔记/Java学习.md b/docs/学习笔记/Java学习.md index c704581..7fe7df2 100644 --- a/docs/学习笔记/Java学习.md +++ b/docs/学习笔记/Java学习.md @@ -1,85 +1,85 @@ -# Java 学习笔记 - -## 基础语法 - -### 变量和数据类型 - -```java -// 基本数据类型 -int age = 25; -double price = 99.99; -boolean isActive = true; -String name = "Java"; -``` - -### 控制结构 - -```java -// if-else -if (age >= 18) { - System.out.println("成年人"); -} else { - System.out.println("未成年人"); -} - -// for 循环 -for (int i = 0; i < 10; i++) { - System.out.println(i); -} -``` - -## 面向对象 - -### 类和对象 - -```java -public class Person { - private String name; - private int age; - - public Person(String name, int age) { - this.name = name; - this.age = age; - } - - public void introduce() { - System.out.println("我是 " + name + ",今年 " + age + " 岁"); - } -} -``` - -## 集合框架 - -### List - -```java -List list = new ArrayList<>(); -list.add("Java"); -list.add("Python"); -list.add("Go"); -``` - -### Map - -```java -Map map = new HashMap<>(); -map.put("Java", 1); -map.put("Python", 2); -``` - -## 常用工具类 - -### String 操作 - -```java -String str = "Hello World"; -str.length(); // 长度 -str.substring(0, 5); // 子串 -str.split(" "); // 分割 -``` - -## 学习资源 - -- [Oracle Java 教程](https://docs.oracle.com/javase/tutorial/) -- [Java 官方文档](https://docs.oracle.com/en/java/) - +# Java 学习笔记 + +## 基础语法 + +### 变量和数据类型 + +```java +// 基本数据类型 +int age = 25; +double price = 99.99; +boolean isActive = true; +String name = "Java"; +``` + +### 控制结构 + +```java +// if-else +if (age >= 18) { + System.out.println("成年人"); +} else { + System.out.println("未成年人"); +} + +// for 循环 +for (int i = 0; i < 10; i++) { + System.out.println(i); +} +``` + +## 面向对象 + +### 类和对象 + +```java +public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + public void introduce() { + System.out.println("我是 " + name + ",今年 " + age + " 岁"); + } +} +``` + +## 集合框架 + +### List + +```java +List list = new ArrayList<>(); +list.add("Java"); +list.add("Python"); +list.add("Go"); +``` + +### Map + +```java +Map map = new HashMap<>(); +map.put("Java", 1); +map.put("Python", 2); +``` + +## 常用工具类 + +### String 操作 + +```java +String str = "Hello World"; +str.length(); // 长度 +str.substring(0, 5); // 子串 +str.split(" "); // 分割 +``` + +## 学习资源 + +- [Oracle Java 教程](https://docs.oracle.com/javase/tutorial/) +- [Java 官方文档](https://docs.oracle.com/en/java/) + diff --git a/docs/学习笔记/MkDocs 是什么.md b/docs/学习笔记/MkDocs 是什么.md index 45156d4..ccc0188 100644 --- a/docs/学习笔记/MkDocs 是什么.md +++ b/docs/学习笔记/MkDocs 是什么.md @@ -1,1258 +1,1258 @@ -# MkDocs 是什么 - -## - -**MkDocs** 是一个**快速、简单、优雅的静态网站生成器**,专门用于从 Markdown 文件构建项目文档。它的设计目标非常明确:让创建美观、实用的文档网站变得尽可能轻松。 - -### 核心特点 - -**1. 极简配置** - -- 只需一个 YAML 配置文件 (`mkdocs.yml`) - -- 几分钟内即可搭建起完整的文档站点 - -**2. Markdown 驱动** - -- 所有内容都使用 Markdown 编写 - -- 对开发者友好,学习成本低 - -**3. 丰富的主题系统** - -- 内置多个主题(如 `material`、`readthedocs`) - -- Material for MkDocs 主题尤为强大,支持: - - - 响应式设计 - - - 深色/浅色模式 - - - 搜索功能 - - - 多级导航 - - - 代码高亮 - -### 在你的 DevOps 平台中的角色 - -在你的“个人超级 DevOps 平台”中,**MkDocs 作为个人知识库**: - -text - -# 典型结构 - -docs/ # 你的知识库 -├── index.md # 首页 -├── devops-platform.md # DevOps平台搭建记录 -├── kubernetes-guide.md # K8s学习笔记 -├── api-references/ # API文档 -└── troubleshooting.md # 排错手册 -mkdocs.yml # 配置文件 - -### 为什么适合你的技术栈? - -**与你的其他组件完美集成:** - -1. **与 Gitea 结合** - - - 将 MkDocs 源码存储在 Gitea 中 - - - 使用 Git Hook 自动构建和部署文档 - - - 用 Gitea 的 Wiki 做协作,MkDocs 做正式知识库 - -2. **与 MinIO 结合** - - - 将构建的静态文档网站托管到 MinIO - - - 使用 MinIO 作为文档附件存储 - -3. **作为知识沉淀中心** - - - 记录你的 DevOps 平台搭建过程 - - - 编写团队技术规范 - - - 整理问题解决方案 - -### 快速示例 - -**安装:** - -bash - -pip install mkdocs mkdocs-material - -**创建新站点:** - -bash - -mkdocs new my-knowledge-base -cd my-knowledge-base - -**简单配置 (`mkdocs.yml`):** - -yaml - -site_name: 我的技术知识库 -theme: - name: material - features: - - navigation.tabs - - navigation.sections - - search.suggest - - search.highlight - -nav: - -- 首页: index.md -- DevOps平台: - - 架构设计: devops/architecture.md - - 部署指南: devops/deployment.md -- 移动开发: - - CI/CD流程: mobile/ci-cd.md - - 发布管理: mobile/release.md - -**编写内容 (`docs/index.md`):** - -markdown - -# 欢迎来到我的知识库 - -这里是个人超级 DevOps 平台的所有技术文档。 - -## 平台组件 - -- **代码管理**: Gitea -- **依赖管理**: Nexus -- **文档管理**: MkDocs -- **监控告警**: Sentry + Grafana - -**本地预览:** - -bash - -mkdocs serve - -# 在 http://localhost:8000 查看 - -### 进阶用法 - -**版本化文档:** - -yaml - -theme: - name: material - features: - - navigation.tabs - - navigation.tabs.sticky - language: zh - -extra: - version: - provider: mike - -plugins: - -- search -- mike: - alias_type: symlink - -**与 CI/CD 集成:** - -yaml - -# GitLab CI 示例 - -pages: - stage: deploy - script: - - pip install mkdocs mkdocs-material - - mkdocs build - - mv site public - artifacts: - paths: - - public - only: - - main - -### 优势总结 - -✅ **简单易用** - Markdown 编写,配置简单 -✅ **维护方便** - 版本控制友好 -✅ **部署灵活** - 生成静态文件,可托管到任何地方 -✅ **搜索强大** - 内置全文搜索 -✅ **移动友好** - 响应式设计 -✅ **社区活跃** - 丰富的插件生态 - -在你的 DevOps 生态中,MkDocs 是**文档即代码**理念的完美实践,它让技术文档的编写、维护和发布变得和写代码一样规范高效。 - -vscode下载 - -我来详细介绍如何下载和安装 Visual Studio Code (VSCode),这是开发者必备的代码编辑器。 - -## 下载 VSCode 的几种方式 - -### 1. **官方网站下载**(最推荐) - -**访问官网:** [https://code.visualstudio.com/](https://code.visualstudio.com/) - -官网会自动检测你的操作系统,推荐合适的版本: - -- **Windows 用户**:下载 `.exe` 安装包 - -- **macOS 用户**:下载 `.dmg` 文件或 `.zip` 压缩包 - -- **Linux 用户**:提供多种包格式(`.deb`, `.rpm`, `.tar.gz`) - -### 2. **各平台具体下载地址** - -**Windows:** - -text - -https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user - -**macOS:** - -- Intel 芯片: - -text - -https://code.visualstudio.com/sha/download?build=stable&os=darwin - -- Apple Silicon (M1/M2/M3): - -text - -https://code.visualstudio.com/sha/download?build=stable&os=darwin-arm64 - -**Linux:** - -text - -https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 - -### 3. **使用包管理器安装** - -**Windows (Winget):** - -bash - -winget install Microsoft.VisualStudioCode - -**macOS (Homebrew):** - -bash - -brew install --cask visual-studio-code - -**Ubuntu/Debian:** - -bash - -sudo apt update -sudo apt install software-properties-common apt-transport-https wget -wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - -sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" -sudo apt update -sudo apt install code - -**CentOS/RHEL/Fedora:** - -bash - -sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc -sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' -sudo dnf install code # 或 sudo yum install code - -### 4. **便携版下载** - -如果你想要免安装版本: - -- **Windows**:下载 `VSCode-win32-x64-XX.X.X.zip` - -- **macOS**:下载 `VSCode-darwin-x64-XX.X.X.zip` - -- **Linux**:下载 `VSCode-linux-x64-XX.X.X.tar.gz` - -## 安装步骤 - -### **Windows 安装** - -1. 下载 `.exe` 安装包 - -2. 双击运行安装程序 - -3. 同意许可协议 - -4. 选择安装选项(推荐勾选): - - - ✅ 将“通过 Code 打开”操作添加到 Windows 资源管理器文件上下文菜单 - - - ✅ 将“通过 Code 打开”操作添加到 Windows 资源管理器目录上下文菜单 - - - ✅ 将 Code 注册为受支持的文件类型的编辑器 - - - ✅ 添加到 PATH(允许从命令行运行 `code`) - -### **macOS 安装** - -1. 下载 `.dmg` 文件 - -2. 双击打开磁盘映像 - -3. 将 VSCode 图标拖到“应用程序”文件夹 - -4. 首次运行时,可能会提示“无法打开”,需要: - - - 右键点击 VSCode → 打开 - - - 或在“系统偏好设置 → 安全性与隐私”中允许打开 - -### **Linux 安装** - -**使用 .deb 包 (Ubuntu/Debian):** - -bash - -sudo dpkg -i code_*.deb -sudo apt-get install -f # 安装依赖 - -## 首次设置建议 - -安装完成后,建议进行以下配置: - -### 1. **安装中文语言包** - -1. 打开 VSCode - -2. 按 `Ctrl+Shift+X` 打开扩展面板 - -3. 搜索 `Chinese (Simplified)` - -4. 点击安装并重启 - -### 2. **推荐扩展**(根据你的 DevOps 需求) - -**通用开发:** - -- `GitLens` - Git 增强 - -- `Git History` - Git 历史查看 - -- `Error Lens` - 错误提示增强 - -- `Path Intellisense` - 路径自动补全 - -**DevOps 相关:** - -- `Docker` - Docker 支持 - -- `Kubernetes` - K8s 支持 - -- `YAML` - YAML 语言支持 - -- `HashiCorp Terraform` - Terraform 支持 - -**文档编写:** - -- `Markdown All in One` - Markdown 增强 - -- `markdownlint` - Markdown 格式检查 - -- `Paste Image` - 粘贴图片到 Markdown - -**你的技术栈扩展:** - -- `Gradle for Java` - Gradle 支持 - -- `MinIO` - MinIO 文件管理 - -- `Gitea` - Gitea 集成 - -### 3. **常用配置** - -json - -// settings.json -{ - "editor.fontSize": 14, - "editor.tabSize": 2, - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.fixAll": "explicit" - }, - "files.autoSave": "afterDelay", - "terminal.integrated.defaultProfile.windows": "Git Bash", - "workbench.colorTheme": "Default Dark Modern", - "workbench.iconTheme": "material-icon-theme" -} - -## 便携版使用(无需安装) - -如果你下载的是便携版: - -**Windows:** - -1. 解压 `VSCode-win32-x64-XX.X.X.zip` 到任意目录 - -2. 运行 `Code.exe` - -**macOS/Linux:** - -1. 解压压缩包 - -2. 进入解压目录,运行 `./Code`(可能需要 `chmod +x`) - -## 验证安装 - -打开终端/命令提示符,输入: - -bash - -code --version - -# 或 - -code --help - -如果正确安装,会显示版本信息: - -text - -1.84.2 -... - -## 小贴士 - -1. **自动更新**:VSCode 默认启用自动更新,可以在设置中调整 - -2. **Insiders 版本**:如果想体验最新功能,可以下载 [VSCode Insiders](https://code.visualstudio.com/insiders/) - -3. **同步设置**:登录 Microsoft/GitHub 账号可同步设置到不同设备 - -4. **命令行使用**:安装时添加到 PATH 后,可以在终端中用 `code .` 打开当前目录 - -## 快速开始 - -安装完成后,你可以: - -1. 按 `F1` 或 `Ctrl+Shift+P` 打开命令面板 - -2. 输入 `>Git: Clone` 克隆你的 Gitea 仓库 - -3. 开始编写你的 DevOps 平台代码和文档 - -VSCode 是搭建和维护你的“个人超级 DevOps 平台”的绝佳工具,配合你提到的 Gitea、MkDocs 等组件,能极大提升开发效率! - -- **Typora**(所见即所得) - 下载 - -# Typora 下载和安装指南 - -## 官方下载渠道 - -### 1. **官方网站** - -**访问:** [https://typora.io/](https://typora.io/) - -点击首页的 "Download" 按钮,会自动推荐适合你系统的版本。 - -### 2. **各平台直接下载链接** - -**Windows:** - -- 64位:https://typora.io/windows/typora-setup-x64.exe - -- 32位:https://typora.io/windows/typora-setup-ia32.exe - -**macOS:** - -- Intel:https://typora.io/mac/Typora.dmg - -- Apple Silicon (M1/M2/M3):https://typora.io/mac/Typora.dmg (通用版本) - -**Linux:** - -bash - -# Debian/Ubuntu - -wget -qO - https://typora.io/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc -sudo add-apt-repository 'deb https://typora.io/linux ./' -sudo apt update -sudo apt install typora - -# 或直接下载 .deb 包 - -https://typora.io/linux/Typora-linux-x64.deb - -### 3. **国内镜像/备用下载** - -由于网络原因,如果官网下载慢,可以尝试: - -**GitHub Releases:** - -text - -https://github.com/typora/typora-issues/releases - -**第三方镜像站:** - -- 腾讯软件中心:https://pc.qq.com/detail/10/detail_22850.html - -- 华为云镜像:https://mirrors.huaweicloud.com/typora/ - -## 安装步骤 - -### **Windows 安装** - -1. 下载 `.exe` 安装包 - -2. 双击运行安装程序 - -3. 选择安装位置(默认 `C:\Program Files\Typora`) - -4. 创建桌面快捷方式和开始菜单项 - -5. 完成安装 - -### **macOS 安装** - -1. 下载 `.dmg` 文件 - -2. 双击打开磁盘映像 - -3. 将 Typora 图标拖到 "应用程序" 文件夹 - -4. 首次运行时,如果提示 "无法打开": - - - 右键点击 Typora → 打开 - - - 或进入 "系统偏好设置 → 安全性与隐私" → 点击 "仍要打开" - -### **Linux 安装** - -bash - -# 使用 .deb 包安装 - -sudo dpkg -i Typora-linux-x64.deb -sudo apt install -f # 修复依赖 - -# 或使用 Snap - -sudo snap install typora - -## 许可证激活 - -**注意:Typora 现在是付费软件**(从 2021.11 开始) - -### 1. **试用版** - -- 提供 15 天免费试用 - -- 试用期满后需要购买许可证 - -### 2. **购买许可证** - -1. 访问:[https://store.typora.io/](https://store.typora.io/) - -2. 选择许可证类型: - - - **个人版**:$14.99(3台设备) - - - **商业版**:$29.99(3台设备) - - - **教育优惠**:有折扣 - -3. 购买后会收到许可证密钥 - -### 3. **激活步骤** - -1. 打开 Typora - -2. 菜单栏选择 `帮助 → 我的许可证...` - -3. 输入邮箱和许可证密钥 - -4. 激活成功 - -## 替代方案(如果你不想付费) - -### **免费开源替代品** - -1. **MarkText** - 类似 Typora 的免费开源编辑器 - - - GitHub:[GitHub - marktext/marktext: 📝A simple and elegant markdown editor, available for Linux, macOS and Windows.](https://github.com/marktext/marktext) - - - 下载:[Releases · marktext/marktext · GitHub](https://github.com/marktext/marktext/releases) - -2. **Obsidian** - 强大的知识库工具,免费个人使用 - - - 官网:[https://obsidian.md/](https://obsidian.md/) - -3. **Zettlr** - 学术写作的 Markdown 编辑器 - - - 官网:[https://www.zettlr.com/](https://www.zettlr.com/) - -4. **VSCode + Markdown 扩展** - - bash - - # 安装以下扩展 - - 1. Markdown All in One - 2. Markdown Preview Enhanced - 3. Markdown Preview Github Styling - -### **旧版本 Typora** - -如果你有旧版本 (v0.11.18 及之前),可以继续使用: - -- GitHub 旧版本下载:https://github.com/typora/typora-issues/issues/8102 - -- **注意**:旧版本可能存在安全漏洞 - -## Typora 基本使用 - -### 1. **界面概览** - -text - -左侧:文件树或大纲视图 -中间:编辑区域(所见即所得) -右侧:大纲导航 - -### 2. **常用快捷键** - -- `Ctrl + /`:切换源代码模式 - -- `Ctrl + B`:加粗 - -- `Ctrl + I`:斜体 - -- `Ctrl + K`:插入链接 - -- `Ctrl + Shift + I`:插入图片 - -- `Ctrl + T`:插入表格 - -- `Ctrl + Shift + M`:数学公式 - -- `Ctrl + 1~6`:标题级别 - -### 3. **与你的 DevOps 平台集成** - -**配合 Gitea:** - -1. 在 Typora 中编写 Markdown 文档 - -2. 保存到 Git 仓库目录 - -3. 使用 Git 命令或 Git 客户端提交到 Gitea - -**配合 MkDocs:** - -yaml - -# mkdocs.yml 配置 Typora 兼容 - -markdown_extensions: - -- admonition -- codehilite -- footnotes -- meta -- toc: - permalink: true -- pymdownx.superfences -- pymdownx.tabbed - -### 4. **图片处理配置** - -yaml - -# Typora 偏好设置 → 图像 - -- 复制图片到 ./${filename}.assets 文件夹 -- 对本地位置的图片应用上述规则 -- 对网络位置的图片应用上述规则 - -## 主题和样式 - -### 内置主题: - -1. **Github** - GitHub 风格 - -2. **Night** - 深色主题 - -3. **Pixyll** - 简洁风格 - -4. **Whitey** - 纯白简洁 - -### 自定义 CSS: - -1. 打开主题文件夹:`文件 → 偏好设置 → 外观 → 打开主题文件夹` - -2. 创建 `user.base.user.css` 文件 - -3. 添加自定义样式: - -css - -/* 自定义样式 */ -body { - font-family: "Microsoft YaHei", sans-serif; - max-width: 900px; - margin: 0 auto; -} - -img { - border-radius: 8px; - box-shadow: 0 2px 8px rgba(0,0,0,0.1); -} - -## 常见问题解决 - -### Q1: 下载速度慢? - -- 使用国内镜像站 - -- 使用下载工具(IDM、迅雷等) - -- 尝试 GitHub Releases - -### Q2: 安装失败? - -**Windows:** - -- 以管理员身份运行 - -- 关闭杀毒软件临时 - -- 检查系统版本(需要 Win7 以上) - -**macOS:** - -bash - -# 如果提示 "已损坏" - -sudo xattr -rd com.apple.quarantine /Applications/Typora.app - -**Linux:** - -bash - -# 依赖问题 - -sudo apt --fix-broken install - -### Q3: 许可证问题? - -- 检查网络连接 - -- 确认邮箱和密钥正确 - -- 访问 https://typora.io/dev_release.html 检查服务状态 - -## 推荐配置(用于 DevOps 文档) - -### 1. **工作流设置** - -text - -1. 在 Typora 中编写 Markdown -2. 保存到 Git 管理的 docs/ 目录 -3. 使用 MkDocs 构建静态网站 -4. 部署到服务器或 GitHub Pages - -### 2. **写作模板** - -创建模板文件 `template.md`: - -markdown - ---- - -title: {{title}} -date: {{date}} -tags: -category: - ---- - -# {{title}} - -## 概述 - -## 详细内容 - -## 参考链接 - -### 3. **自动化脚本** - -bash - -#!/bin/bash - -# auto_build.sh - 自动构建文档 - -cd /path/to/docs -typora --wait-for-signal-to-close document.md -mkdocs build -git add . -git commit -m "Update documentation" -git push - -## 总结 - -Typora 是一款优秀的 Markdown 编辑器,特别适合: - -- 个人知识库管理(配合你的 MkDocs) - -- 技术文档编写 - -- 日常笔记记录 - -如果你需要完全免费的方案,建议考虑 **MarkText** 或 **Obsidian**。对于你的 DevOps 平台,Typora 的所见即所得特性确实能提升 Markdown 文档的编写体验。 - -本回答由 AI 生成,内容仅供参考,请仔细甄别。 - -image.png - -PNG 33.06KB - -下载好了,如何安装 - -根据你提供的信息,你已经下载了 MarkText 的 Windows 安装文件。以下是详细的安装步骤: - -## 方法一:使用安装向导(推荐) - -### 步骤: - -1. **找到下载的文件** - - - 通常在 `Downloads`(下载)文件夹中 - - - 文件名类似:`marktext-setup-x.x.x.exe`(x.x.x 是版本号) - -2. **运行安装程序** - - - 双击 `.exe` 文件 - - - 如果出现安全警告,点击"运行"或"更多信息 → 仍要运行" - -3. **选择安装类型** - - text - - Install for: (选择安装范围) - □ Just me (当前用户) - ☑ All users (requires admin privileges) (所有用户,需要管理员权限) - - - **推荐选择**:`All users`(需要管理员权限) - -4. **选择安装位置** - - - 默认位置:`C:\Program Files\MarkText\` - - - 可以点击"Browse"更改安装路径 - -5. **创建快捷方式** - - - 桌面快捷方式(推荐勾选) - - - 开始菜单文件夹 - -6. **完成安装** - - - 点击"Install"开始安装 - - - 安装完成后点击"Finish" - -## 方法二:使用包管理器安装 - -### 如果已经下载了安装包,直接使用方法一即可。以下是使用包管理器的方法: - -### 1. **使用 Chocolatey**(需要先安装 Chocolatey) - -cmd - -# 以管理员身份打开命令提示符或 PowerShell - -choco install marktext - -### 2. **使用 Winget**(Windows 11 自带,Win10 可能需要安装) - -cmd - -# 以管理员身份打开终端 - -winget install marktext - -## 验证安装 - -### 检查是否安装成功: - -1. **启动程序** - - - 从开始菜单搜索"MarkText" - - - 双击桌面快捷方式(如果创建了) - -2. **命令行验证** - - cmd - - # 打开命令提示符或 PowerShell - - marktext --version - - # 或 - - marktext --help - -3. **文件关联**(可选) - - - 安装后,MarkText 可能会询问是否关联 `.md` 文件 - - - 点击"是"即可用 MarkText 打开所有 Markdown 文件 - -## 首次使用设置 - -### 1. **选择主题** - -打开 MarkText 后,你会看到: - -- **Dark Theme** - 深色主题 - -- **Light Theme** - 浅色主题 - -- **Graphite Theme** - 石墨主题 - -- **Ulysses Theme** - Ulysses 风格 - -- **Material Dark** - Material 深色 - -- **Cadmium Light** - 镉浅色 - -### 2. **基本配置** - -按 `Ctrl+,` 打开设置: - -json - -{ - // 编辑器设置 - "autoSave": true, // 自动保存 - "autoSaveDelay": 1000, // 自动保存延迟(毫秒) - "defaultFontSize": 16, // 默认字体大小 - - // 编辑器行为 - "editorLineWidth": 800, // 编辑器行宽 - "fontFamily": "Arial", // 字体 - - // Markdown 设置 - "preferLooseListItem": true, // 宽松列表 - "bulletListMarker": "-", // 列表标记 - - // 图像设置 - "imageFolderPath": "assets", // 图片保存文件夹 - "setImageFolder": true // 自动创建图片文件夹 -} - -### 3. **设置中文界面** - -1. 按 `Ctrl+,` 打开设置 - -2. 搜索 `locale` - -3. 将 `locale` 改为 `zh-CN` - -4. 重启 MarkText - -## 常见问题解决 - -### Q1:安装时提示"需要管理员权限"? - -- **解决方法**: - - 1. 右键点击安装程序 - - 2. 选择"以管理员身份运行" - - 3. 或者选择"Just me"(仅当前用户)安装选项 - -### Q2:安装后无法启动? - -- **解决方法**: - - 1. 重启电脑 - - 2. 检查防病毒软件是否阻止 - - 3. 重新安装 - - 4. 查看 Windows 事件查看器中的错误信息 - -### Q3:如何卸载? - -cmd - -# 方法1:控制面板卸载 - -# 方法2:使用包管理器 - -winget uninstall marktext - -# 或 - -choco uninstall marktext - -## 快速开始使用 - -### 1. **创建第一篇文档** - -1. 按 `Ctrl+N` 新建文件 - -2. 输入内容: - - markdown - - # 我的第一篇 Markdown - - ## 这是副标题 - - - 列表项1 - - 列表项2 - - **粗体文本** *斜体文本* - - [链接](https://example.com) - -3. 按 `Ctrl+S` 保存 - -### 2. **常用快捷键** - -- `Ctrl+N`:新建文件 - -- `Ctrl+O`:打开文件 - -- `Ctrl+S`:保存 - -- `Ctrl+Shift+S`:另存为 - -- `Ctrl+/`:切换源代码模式 - -- `Ctrl+B`:加粗 - -- `Ctrl+I`:斜体 - -- `Ctrl+K`:插入链接 - -- `Ctrl+Shift+I`:插入图片 - -### 3. **与你的 DevOps 平台集成** - -将 MarkText 作为你的 Markdown 编辑器: - -bash - -# 在 Git 仓库中编辑文档 - -cd /path/to/your/docs - -# 用 MarkText 打开文件 - -marktext README.md - -# 或 - -marktext . - -## 高级功能 - -### 1. **多标签页** - -- 支持同时打开多个文件 - -- 标签页可拖拽重新排列 - -### 2. **多种编辑模式** - -- **源代码模式** - 纯文本编辑 - -- **打字机模式** - 当前行居中 - -- **专注模式** - 淡化其他内容 - -### 3. **导出功能** - -支持导出为: - -- HTML - -- PDF - -- 纯文本 - -### 4. **Git 集成** - -内置简单的 Git 支持: - -- 显示 Git 状态 - -- 提交消息 - -- 差异对比 - -## 配置为默认 Markdown 编辑器 - -### Windows 10/11: - -1. 右键点击 `.md` 文件 - -2. 选择"打开方式" → "选择其他应用" - -3. 找到 MarkText,勾选"始终使用此应用打开 .md 文件" - -4. 点击"确定" - -完成安装后,你就可以用 MarkText 来编写你的 MkDocs 文档、技术笔记等,配合你的 DevOps 平台使用了! - -image.png - -PNG 64.83KB - -点击哪个文件安装呢? - -从你提供的文件列表来看,这是一个 **MarkText 的源代码项目目录**,而不是可以直接安装的安装程序。 - -让我帮你分析一下: - -## 📁 **目录结构分析** - -text - -├── docs/ # 文档文件夹 -├── src/ # 源代码文件夹 -├── static/ # 静态资源 -├── resources/ # 应用资源 -├── package.json # Node.js 项目配置文件 -├── electron-builder.yml # Electron 构建配置 -└── 其他配置文件... - -## 🚨 **重要:这不是安装包!** - -你下载的是 **MarkText 的源代码**,需要**编译构建**后才能得到安装程序。 - -## 🛠️ **如何正确安装 MarkText** - -你有两个选择: - -### **选择一:下载正式安装包(推荐)** - -1. **访问 MarkText 官方发布页**: - [Releases · marktext/marktext · GitHub](https://github.com/marktext/marktext/releases) - -2. **下载正确的安装包**: - - - Windows:`marktext-setup-x.x.x.exe` (x.x.x是版本号) - - - macOS:`marktext-x.x.x.dmg` - - - Linux:`marktext-x.x.x-x86_64.AppImage` - -3. **双击安装包安装** - -### **选择二:从源码构建安装** - -如果你确实想从这个源码构建: - -bash - -# 1. 安装 Node.js (v14+) - -# 从 https://nodejs.org/ 下载安装 - -# 2. 安装 Yarn - -npm install -g yarn - -# 3. 进入项目目录 - -cd "你下载的文件夹路径" - -# 4. 安装依赖 - -yarn install - -# 5. 运行开发版本 - -yarn run dev - -# 6. 构建安装包(可选) - -yarn run build - -## 📦 **快速对比** - -| 类型 | 文件 | 说明 | -| --------- | --------------------------- | ------ | -| **✅ 安装包** | `.exe`, `.dmg`, `.AppImage` | 双击即可安装 | -| **❌ 源代码** | 文件夹 + 配置文件 | 需要编译构建 | - -## 🔍 **检查你下载的文件** - -如果你是通过以下方式下载的: - -- **GitHub 的绿色 "Code" 按钮** → 下载的是源代码 - -- **Git clone 命令** → 下载的是源代码 - -- **Release 页面的 "Source code"** → 下载的是源代码 - -**正确的方式**:在 Release 页面找到 **Assets**(资源)部分,下载那里的文件。 - -## 🎯 **立即获取安装包的步骤** - -1. **访问**:[Releases · marktext/marktext · GitHub](https://github.com/marktext/marktext/releases) - -2. **找到最新版本**(如 v0.17.1) - -3. **展开 "Assets"** 部分 - -4. **下载对应系统的文件**: - - text - - Windows用户下载: - marktext-setup-x.x.x.exe (约 90 MB) - 或 - marktext-setup-x.x-x64.exe - -## 💡 **如果你已经下载了源代码** - -你可以: - -1. **保留源代码**:用于学习或二次开发 - -2. **删除源代码**:如果你只需要使用软件 - -## 📝 **总结建议** - -**普通用户**:直接去 Release 页面下载安装包,简单快捷 -**开发者**:可以保留源代码进行学习和定制 - -**记住这个关键点**: - -- **`.exe` 文件** = 可以直接安装 - -- **文件夹+配置文件** = 需要编译构建 - -现在就去 Release 页面下载真正的安装包吧!这样你就能立即开始使用 MarkText 了。 +# MkDocs 是什么 + +## + +**MkDocs** 是一个**快速、简单、优雅的静态网站生成器**,专门用于从 Markdown 文件构建项目文档。它的设计目标非常明确:让创建美观、实用的文档网站变得尽可能轻松。 + +### 核心特点 + +**1. 极简配置** + +- 只需一个 YAML 配置文件 (`mkdocs.yml`) + +- 几分钟内即可搭建起完整的文档站点 + +**2. Markdown 驱动** + +- 所有内容都使用 Markdown 编写 + +- 对开发者友好,学习成本低 + +**3. 丰富的主题系统** + +- 内置多个主题(如 `material`、`readthedocs`) + +- Material for MkDocs 主题尤为强大,支持: + + - 响应式设计 + + - 深色/浅色模式 + + - 搜索功能 + + - 多级导航 + + - 代码高亮 + +### 在你的 DevOps 平台中的角色 + +在你的“个人超级 DevOps 平台”中,**MkDocs 作为个人知识库**: + +text + +# 典型结构 + +docs/ # 你的知识库 +├── index.md # 首页 +├── devops-platform.md # DevOps平台搭建记录 +├── kubernetes-guide.md # K8s学习笔记 +├── api-references/ # API文档 +└── troubleshooting.md # 排错手册 +mkdocs.yml # 配置文件 + +### 为什么适合你的技术栈? + +**与你的其他组件完美集成:** + +1. **与 Gitea 结合** + + - 将 MkDocs 源码存储在 Gitea 中 + + - 使用 Git Hook 自动构建和部署文档 + + - 用 Gitea 的 Wiki 做协作,MkDocs 做正式知识库 + +2. **与 MinIO 结合** + + - 将构建的静态文档网站托管到 MinIO + + - 使用 MinIO 作为文档附件存储 + +3. **作为知识沉淀中心** + + - 记录你的 DevOps 平台搭建过程 + + - 编写团队技术规范 + + - 整理问题解决方案 + +### 快速示例 + +**安装:** + +bash + +pip install mkdocs mkdocs-material + +**创建新站点:** + +bash + +mkdocs new my-knowledge-base +cd my-knowledge-base + +**简单配置 (`mkdocs.yml`):** + +yaml + +site_name: 我的技术知识库 +theme: + name: material + features: + - navigation.tabs + - navigation.sections + - search.suggest + - search.highlight + +nav: + +- 首页: index.md +- DevOps平台: + - 架构设计: devops/architecture.md + - 部署指南: devops/deployment.md +- 移动开发: + - CI/CD流程: mobile/ci-cd.md + - 发布管理: mobile/release.md + +**编写内容 (`docs/index.md`):** + +markdown + +# 欢迎来到我的知识库 + +这里是个人超级 DevOps 平台的所有技术文档。 + +## 平台组件 + +- **代码管理**: Gitea +- **依赖管理**: Nexus +- **文档管理**: MkDocs +- **监控告警**: Sentry + Grafana + +**本地预览:** + +bash + +mkdocs serve + +# 在 http://localhost:8000 查看 + +### 进阶用法 + +**版本化文档:** + +yaml + +theme: + name: material + features: + - navigation.tabs + - navigation.tabs.sticky + language: zh + +extra: + version: + provider: mike + +plugins: + +- search +- mike: + alias_type: symlink + +**与 CI/CD 集成:** + +yaml + +# GitLab CI 示例 + +pages: + stage: deploy + script: + - pip install mkdocs mkdocs-material + - mkdocs build + - mv site public + artifacts: + paths: + - public + only: + - main + +### 优势总结 + +✅ **简单易用** - Markdown 编写,配置简单 +✅ **维护方便** - 版本控制友好 +✅ **部署灵活** - 生成静态文件,可托管到任何地方 +✅ **搜索强大** - 内置全文搜索 +✅ **移动友好** - 响应式设计 +✅ **社区活跃** - 丰富的插件生态 + +在你的 DevOps 生态中,MkDocs 是**文档即代码**理念的完美实践,它让技术文档的编写、维护和发布变得和写代码一样规范高效。 + +vscode下载 + +我来详细介绍如何下载和安装 Visual Studio Code (VSCode),这是开发者必备的代码编辑器。 + +## 下载 VSCode 的几种方式 + +### 1. **官方网站下载**(最推荐) + +**访问官网:** [https://code.visualstudio.com/](https://code.visualstudio.com/) + +官网会自动检测你的操作系统,推荐合适的版本: + +- **Windows 用户**:下载 `.exe` 安装包 + +- **macOS 用户**:下载 `.dmg` 文件或 `.zip` 压缩包 + +- **Linux 用户**:提供多种包格式(`.deb`, `.rpm`, `.tar.gz`) + +### 2. **各平台具体下载地址** + +**Windows:** + +text + +https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user + +**macOS:** + +- Intel 芯片: + +text + +https://code.visualstudio.com/sha/download?build=stable&os=darwin + +- Apple Silicon (M1/M2/M3): + +text + +https://code.visualstudio.com/sha/download?build=stable&os=darwin-arm64 + +**Linux:** + +text + +https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 + +### 3. **使用包管理器安装** + +**Windows (Winget):** + +bash + +winget install Microsoft.VisualStudioCode + +**macOS (Homebrew):** + +bash + +brew install --cask visual-studio-code + +**Ubuntu/Debian:** + +bash + +sudo apt update +sudo apt install software-properties-common apt-transport-https wget +wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - +sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" +sudo apt update +sudo apt install code + +**CentOS/RHEL/Fedora:** + +bash + +sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc +sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' +sudo dnf install code # 或 sudo yum install code + +### 4. **便携版下载** + +如果你想要免安装版本: + +- **Windows**:下载 `VSCode-win32-x64-XX.X.X.zip` + +- **macOS**:下载 `VSCode-darwin-x64-XX.X.X.zip` + +- **Linux**:下载 `VSCode-linux-x64-XX.X.X.tar.gz` + +## 安装步骤 + +### **Windows 安装** + +1. 下载 `.exe` 安装包 + +2. 双击运行安装程序 + +3. 同意许可协议 + +4. 选择安装选项(推荐勾选): + + - ✅ 将“通过 Code 打开”操作添加到 Windows 资源管理器文件上下文菜单 + + - ✅ 将“通过 Code 打开”操作添加到 Windows 资源管理器目录上下文菜单 + + - ✅ 将 Code 注册为受支持的文件类型的编辑器 + + - ✅ 添加到 PATH(允许从命令行运行 `code`) + +### **macOS 安装** + +1. 下载 `.dmg` 文件 + +2. 双击打开磁盘映像 + +3. 将 VSCode 图标拖到“应用程序”文件夹 + +4. 首次运行时,可能会提示“无法打开”,需要: + + - 右键点击 VSCode → 打开 + + - 或在“系统偏好设置 → 安全性与隐私”中允许打开 + +### **Linux 安装** + +**使用 .deb 包 (Ubuntu/Debian):** + +bash + +sudo dpkg -i code_*.deb +sudo apt-get install -f # 安装依赖 + +## 首次设置建议 + +安装完成后,建议进行以下配置: + +### 1. **安装中文语言包** + +1. 打开 VSCode + +2. 按 `Ctrl+Shift+X` 打开扩展面板 + +3. 搜索 `Chinese (Simplified)` + +4. 点击安装并重启 + +### 2. **推荐扩展**(根据你的 DevOps 需求) + +**通用开发:** + +- `GitLens` - Git 增强 + +- `Git History` - Git 历史查看 + +- `Error Lens` - 错误提示增强 + +- `Path Intellisense` - 路径自动补全 + +**DevOps 相关:** + +- `Docker` - Docker 支持 + +- `Kubernetes` - K8s 支持 + +- `YAML` - YAML 语言支持 + +- `HashiCorp Terraform` - Terraform 支持 + +**文档编写:** + +- `Markdown All in One` - Markdown 增强 + +- `markdownlint` - Markdown 格式检查 + +- `Paste Image` - 粘贴图片到 Markdown + +**你的技术栈扩展:** + +- `Gradle for Java` - Gradle 支持 + +- `MinIO` - MinIO 文件管理 + +- `Gitea` - Gitea 集成 + +### 3. **常用配置** + +json + +// settings.json +{ + "editor.fontSize": 14, + "editor.tabSize": 2, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll": "explicit" + }, + "files.autoSave": "afterDelay", + "terminal.integrated.defaultProfile.windows": "Git Bash", + "workbench.colorTheme": "Default Dark Modern", + "workbench.iconTheme": "material-icon-theme" +} + +## 便携版使用(无需安装) + +如果你下载的是便携版: + +**Windows:** + +1. 解压 `VSCode-win32-x64-XX.X.X.zip` 到任意目录 + +2. 运行 `Code.exe` + +**macOS/Linux:** + +1. 解压压缩包 + +2. 进入解压目录,运行 `./Code`(可能需要 `chmod +x`) + +## 验证安装 + +打开终端/命令提示符,输入: + +bash + +code --version + +# 或 + +code --help + +如果正确安装,会显示版本信息: + +text + +1.84.2 +... + +## 小贴士 + +1. **自动更新**:VSCode 默认启用自动更新,可以在设置中调整 + +2. **Insiders 版本**:如果想体验最新功能,可以下载 [VSCode Insiders](https://code.visualstudio.com/insiders/) + +3. **同步设置**:登录 Microsoft/GitHub 账号可同步设置到不同设备 + +4. **命令行使用**:安装时添加到 PATH 后,可以在终端中用 `code .` 打开当前目录 + +## 快速开始 + +安装完成后,你可以: + +1. 按 `F1` 或 `Ctrl+Shift+P` 打开命令面板 + +2. 输入 `>Git: Clone` 克隆你的 Gitea 仓库 + +3. 开始编写你的 DevOps 平台代码和文档 + +VSCode 是搭建和维护你的“个人超级 DevOps 平台”的绝佳工具,配合你提到的 Gitea、MkDocs 等组件,能极大提升开发效率! + +- **Typora**(所见即所得) + 下载 + +# Typora 下载和安装指南 + +## 官方下载渠道 + +### 1. **官方网站** + +**访问:** [https://typora.io/](https://typora.io/) + +点击首页的 "Download" 按钮,会自动推荐适合你系统的版本。 + +### 2. **各平台直接下载链接** + +**Windows:** + +- 64位:https://typora.io/windows/typora-setup-x64.exe + +- 32位:https://typora.io/windows/typora-setup-ia32.exe + +**macOS:** + +- Intel:https://typora.io/mac/Typora.dmg + +- Apple Silicon (M1/M2/M3):https://typora.io/mac/Typora.dmg (通用版本) + +**Linux:** + +bash + +# Debian/Ubuntu + +wget -qO - https://typora.io/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc +sudo add-apt-repository 'deb https://typora.io/linux ./' +sudo apt update +sudo apt install typora + +# 或直接下载 .deb 包 + +https://typora.io/linux/Typora-linux-x64.deb + +### 3. **国内镜像/备用下载** + +由于网络原因,如果官网下载慢,可以尝试: + +**GitHub Releases:** + +text + +https://github.com/typora/typora-issues/releases + +**第三方镜像站:** + +- 腾讯软件中心:https://pc.qq.com/detail/10/detail_22850.html + +- 华为云镜像:https://mirrors.huaweicloud.com/typora/ + +## 安装步骤 + +### **Windows 安装** + +1. 下载 `.exe` 安装包 + +2. 双击运行安装程序 + +3. 选择安装位置(默认 `C:\Program Files\Typora`) + +4. 创建桌面快捷方式和开始菜单项 + +5. 完成安装 + +### **macOS 安装** + +1. 下载 `.dmg` 文件 + +2. 双击打开磁盘映像 + +3. 将 Typora 图标拖到 "应用程序" 文件夹 + +4. 首次运行时,如果提示 "无法打开": + + - 右键点击 Typora → 打开 + + - 或进入 "系统偏好设置 → 安全性与隐私" → 点击 "仍要打开" + +### **Linux 安装** + +bash + +# 使用 .deb 包安装 + +sudo dpkg -i Typora-linux-x64.deb +sudo apt install -f # 修复依赖 + +# 或使用 Snap + +sudo snap install typora + +## 许可证激活 + +**注意:Typora 现在是付费软件**(从 2021.11 开始) + +### 1. **试用版** + +- 提供 15 天免费试用 + +- 试用期满后需要购买许可证 + +### 2. **购买许可证** + +1. 访问:[https://store.typora.io/](https://store.typora.io/) + +2. 选择许可证类型: + + - **个人版**:$14.99(3台设备) + + - **商业版**:$29.99(3台设备) + + - **教育优惠**:有折扣 + +3. 购买后会收到许可证密钥 + +### 3. **激活步骤** + +1. 打开 Typora + +2. 菜单栏选择 `帮助 → 我的许可证...` + +3. 输入邮箱和许可证密钥 + +4. 激活成功 + +## 替代方案(如果你不想付费) + +### **免费开源替代品** + +1. **MarkText** - 类似 Typora 的免费开源编辑器 + + - GitHub:[GitHub - marktext/marktext: 📝A simple and elegant markdown editor, available for Linux, macOS and Windows.](https://github.com/marktext/marktext) + + - 下载:[Releases · marktext/marktext · GitHub](https://github.com/marktext/marktext/releases) + +2. **Obsidian** - 强大的知识库工具,免费个人使用 + + - 官网:[https://obsidian.md/](https://obsidian.md/) + +3. **Zettlr** - 学术写作的 Markdown 编辑器 + + - 官网:[https://www.zettlr.com/](https://www.zettlr.com/) + +4. **VSCode + Markdown 扩展** + + bash + + # 安装以下扩展 + + 1. Markdown All in One + 2. Markdown Preview Enhanced + 3. Markdown Preview Github Styling + +### **旧版本 Typora** + +如果你有旧版本 (v0.11.18 及之前),可以继续使用: + +- GitHub 旧版本下载:https://github.com/typora/typora-issues/issues/8102 + +- **注意**:旧版本可能存在安全漏洞 + +## Typora 基本使用 + +### 1. **界面概览** + +text + +左侧:文件树或大纲视图 +中间:编辑区域(所见即所得) +右侧:大纲导航 + +### 2. **常用快捷键** + +- `Ctrl + /`:切换源代码模式 + +- `Ctrl + B`:加粗 + +- `Ctrl + I`:斜体 + +- `Ctrl + K`:插入链接 + +- `Ctrl + Shift + I`:插入图片 + +- `Ctrl + T`:插入表格 + +- `Ctrl + Shift + M`:数学公式 + +- `Ctrl + 1~6`:标题级别 + +### 3. **与你的 DevOps 平台集成** + +**配合 Gitea:** + +1. 在 Typora 中编写 Markdown 文档 + +2. 保存到 Git 仓库目录 + +3. 使用 Git 命令或 Git 客户端提交到 Gitea + +**配合 MkDocs:** + +yaml + +# mkdocs.yml 配置 Typora 兼容 + +markdown_extensions: + +- admonition +- codehilite +- footnotes +- meta +- toc: + permalink: true +- pymdownx.superfences +- pymdownx.tabbed + +### 4. **图片处理配置** + +yaml + +# Typora 偏好设置 → 图像 + +- 复制图片到 ./${filename}.assets 文件夹 +- 对本地位置的图片应用上述规则 +- 对网络位置的图片应用上述规则 + +## 主题和样式 + +### 内置主题: + +1. **Github** - GitHub 风格 + +2. **Night** - 深色主题 + +3. **Pixyll** - 简洁风格 + +4. **Whitey** - 纯白简洁 + +### 自定义 CSS: + +1. 打开主题文件夹:`文件 → 偏好设置 → 外观 → 打开主题文件夹` + +2. 创建 `user.base.user.css` 文件 + +3. 添加自定义样式: + +css + +/* 自定义样式 */ +body { + font-family: "Microsoft YaHei", sans-serif; + max-width: 900px; + margin: 0 auto; +} + +img { + border-radius: 8px; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); +} + +## 常见问题解决 + +### Q1: 下载速度慢? + +- 使用国内镜像站 + +- 使用下载工具(IDM、迅雷等) + +- 尝试 GitHub Releases + +### Q2: 安装失败? + +**Windows:** + +- 以管理员身份运行 + +- 关闭杀毒软件临时 + +- 检查系统版本(需要 Win7 以上) + +**macOS:** + +bash + +# 如果提示 "已损坏" + +sudo xattr -rd com.apple.quarantine /Applications/Typora.app + +**Linux:** + +bash + +# 依赖问题 + +sudo apt --fix-broken install + +### Q3: 许可证问题? + +- 检查网络连接 + +- 确认邮箱和密钥正确 + +- 访问 https://typora.io/dev_release.html 检查服务状态 + +## 推荐配置(用于 DevOps 文档) + +### 1. **工作流设置** + +text + +1. 在 Typora 中编写 Markdown +2. 保存到 Git 管理的 docs/ 目录 +3. 使用 MkDocs 构建静态网站 +4. 部署到服务器或 GitHub Pages + +### 2. **写作模板** + +创建模板文件 `template.md`: + +markdown + +--- + +title: {{title}} +date: {{date}} +tags: +category: + +--- + +# {{title}} + +## 概述 + +## 详细内容 + +## 参考链接 + +### 3. **自动化脚本** + +bash + +#!/bin/bash + +# auto_build.sh - 自动构建文档 + +cd /path/to/docs +typora --wait-for-signal-to-close document.md +mkdocs build +git add . +git commit -m "Update documentation" +git push + +## 总结 + +Typora 是一款优秀的 Markdown 编辑器,特别适合: + +- 个人知识库管理(配合你的 MkDocs) + +- 技术文档编写 + +- 日常笔记记录 + +如果你需要完全免费的方案,建议考虑 **MarkText** 或 **Obsidian**。对于你的 DevOps 平台,Typora 的所见即所得特性确实能提升 Markdown 文档的编写体验。 + +本回答由 AI 生成,内容仅供参考,请仔细甄别。 + +image.png + +PNG 33.06KB + +下载好了,如何安装 + +根据你提供的信息,你已经下载了 MarkText 的 Windows 安装文件。以下是详细的安装步骤: + +## 方法一:使用安装向导(推荐) + +### 步骤: + +1. **找到下载的文件** + + - 通常在 `Downloads`(下载)文件夹中 + + - 文件名类似:`marktext-setup-x.x.x.exe`(x.x.x 是版本号) + +2. **运行安装程序** + + - 双击 `.exe` 文件 + + - 如果出现安全警告,点击"运行"或"更多信息 → 仍要运行" + +3. **选择安装类型** + + text + + Install for: (选择安装范围) + □ Just me (当前用户) + ☑ All users (requires admin privileges) (所有用户,需要管理员权限) + + - **推荐选择**:`All users`(需要管理员权限) + +4. **选择安装位置** + + - 默认位置:`C:\Program Files\MarkText\` + + - 可以点击"Browse"更改安装路径 + +5. **创建快捷方式** + + - 桌面快捷方式(推荐勾选) + + - 开始菜单文件夹 + +6. **完成安装** + + - 点击"Install"开始安装 + + - 安装完成后点击"Finish" + +## 方法二:使用包管理器安装 + +### 如果已经下载了安装包,直接使用方法一即可。以下是使用包管理器的方法: + +### 1. **使用 Chocolatey**(需要先安装 Chocolatey) + +cmd + +# 以管理员身份打开命令提示符或 PowerShell + +choco install marktext + +### 2. **使用 Winget**(Windows 11 自带,Win10 可能需要安装) + +cmd + +# 以管理员身份打开终端 + +winget install marktext + +## 验证安装 + +### 检查是否安装成功: + +1. **启动程序** + + - 从开始菜单搜索"MarkText" + + - 双击桌面快捷方式(如果创建了) + +2. **命令行验证** + + cmd + + # 打开命令提示符或 PowerShell + + marktext --version + + # 或 + + marktext --help + +3. **文件关联**(可选) + + - 安装后,MarkText 可能会询问是否关联 `.md` 文件 + + - 点击"是"即可用 MarkText 打开所有 Markdown 文件 + +## 首次使用设置 + +### 1. **选择主题** + +打开 MarkText 后,你会看到: + +- **Dark Theme** - 深色主题 + +- **Light Theme** - 浅色主题 + +- **Graphite Theme** - 石墨主题 + +- **Ulysses Theme** - Ulysses 风格 + +- **Material Dark** - Material 深色 + +- **Cadmium Light** - 镉浅色 + +### 2. **基本配置** + +按 `Ctrl+,` 打开设置: + +json + +{ + // 编辑器设置 + "autoSave": true, // 自动保存 + "autoSaveDelay": 1000, // 自动保存延迟(毫秒) + "defaultFontSize": 16, // 默认字体大小 + + // 编辑器行为 + "editorLineWidth": 800, // 编辑器行宽 + "fontFamily": "Arial", // 字体 + + // Markdown 设置 + "preferLooseListItem": true, // 宽松列表 + "bulletListMarker": "-", // 列表标记 + + // 图像设置 + "imageFolderPath": "assets", // 图片保存文件夹 + "setImageFolder": true // 自动创建图片文件夹 +} + +### 3. **设置中文界面** + +1. 按 `Ctrl+,` 打开设置 + +2. 搜索 `locale` + +3. 将 `locale` 改为 `zh-CN` + +4. 重启 MarkText + +## 常见问题解决 + +### Q1:安装时提示"需要管理员权限"? + +- **解决方法**: + + 1. 右键点击安装程序 + + 2. 选择"以管理员身份运行" + + 3. 或者选择"Just me"(仅当前用户)安装选项 + +### Q2:安装后无法启动? + +- **解决方法**: + + 1. 重启电脑 + + 2. 检查防病毒软件是否阻止 + + 3. 重新安装 + + 4. 查看 Windows 事件查看器中的错误信息 + +### Q3:如何卸载? + +cmd + +# 方法1:控制面板卸载 + +# 方法2:使用包管理器 + +winget uninstall marktext + +# 或 + +choco uninstall marktext + +## 快速开始使用 + +### 1. **创建第一篇文档** + +1. 按 `Ctrl+N` 新建文件 + +2. 输入内容: + + markdown + + # 我的第一篇 Markdown + + ## 这是副标题 + + - 列表项1 + - 列表项2 + + **粗体文本** *斜体文本* + + [链接](https://example.com) + +3. 按 `Ctrl+S` 保存 + +### 2. **常用快捷键** + +- `Ctrl+N`:新建文件 + +- `Ctrl+O`:打开文件 + +- `Ctrl+S`:保存 + +- `Ctrl+Shift+S`:另存为 + +- `Ctrl+/`:切换源代码模式 + +- `Ctrl+B`:加粗 + +- `Ctrl+I`:斜体 + +- `Ctrl+K`:插入链接 + +- `Ctrl+Shift+I`:插入图片 + +### 3. **与你的 DevOps 平台集成** + +将 MarkText 作为你的 Markdown 编辑器: + +bash + +# 在 Git 仓库中编辑文档 + +cd /path/to/your/docs + +# 用 MarkText 打开文件 + +marktext README.md + +# 或 + +marktext . + +## 高级功能 + +### 1. **多标签页** + +- 支持同时打开多个文件 + +- 标签页可拖拽重新排列 + +### 2. **多种编辑模式** + +- **源代码模式** - 纯文本编辑 + +- **打字机模式** - 当前行居中 + +- **专注模式** - 淡化其他内容 + +### 3. **导出功能** + +支持导出为: + +- HTML + +- PDF + +- 纯文本 + +### 4. **Git 集成** + +内置简单的 Git 支持: + +- 显示 Git 状态 + +- 提交消息 + +- 差异对比 + +## 配置为默认 Markdown 编辑器 + +### Windows 10/11: + +1. 右键点击 `.md` 文件 + +2. 选择"打开方式" → "选择其他应用" + +3. 找到 MarkText,勾选"始终使用此应用打开 .md 文件" + +4. 点击"确定" + +完成安装后,你就可以用 MarkText 来编写你的 MkDocs 文档、技术笔记等,配合你的 DevOps 平台使用了! + +image.png + +PNG 64.83KB + +点击哪个文件安装呢? + +从你提供的文件列表来看,这是一个 **MarkText 的源代码项目目录**,而不是可以直接安装的安装程序。 + +让我帮你分析一下: + +## 📁 **目录结构分析** + +text + +├── docs/ # 文档文件夹 +├── src/ # 源代码文件夹 +├── static/ # 静态资源 +├── resources/ # 应用资源 +├── package.json # Node.js 项目配置文件 +├── electron-builder.yml # Electron 构建配置 +└── 其他配置文件... + +## 🚨 **重要:这不是安装包!** + +你下载的是 **MarkText 的源代码**,需要**编译构建**后才能得到安装程序。 + +## 🛠️ **如何正确安装 MarkText** + +你有两个选择: + +### **选择一:下载正式安装包(推荐)** + +1. **访问 MarkText 官方发布页**: + [Releases · marktext/marktext · GitHub](https://github.com/marktext/marktext/releases) + +2. **下载正确的安装包**: + + - Windows:`marktext-setup-x.x.x.exe` (x.x.x是版本号) + + - macOS:`marktext-x.x.x.dmg` + + - Linux:`marktext-x.x.x-x86_64.AppImage` + +3. **双击安装包安装** + +### **选择二:从源码构建安装** + +如果你确实想从这个源码构建: + +bash + +# 1. 安装 Node.js (v14+) + +# 从 https://nodejs.org/ 下载安装 + +# 2. 安装 Yarn + +npm install -g yarn + +# 3. 进入项目目录 + +cd "你下载的文件夹路径" + +# 4. 安装依赖 + +yarn install + +# 5. 运行开发版本 + +yarn run dev + +# 6. 构建安装包(可选) + +yarn run build + +## 📦 **快速对比** + +| 类型 | 文件 | 说明 | +| --------- | --------------------------- | ------ | +| **✅ 安装包** | `.exe`, `.dmg`, `.AppImage` | 双击即可安装 | +| **❌ 源代码** | 文件夹 + 配置文件 | 需要编译构建 | + +## 🔍 **检查你下载的文件** + +如果你是通过以下方式下载的: + +- **GitHub 的绿色 "Code" 按钮** → 下载的是源代码 + +- **Git clone 命令** → 下载的是源代码 + +- **Release 页面的 "Source code"** → 下载的是源代码 + +**正确的方式**:在 Release 页面找到 **Assets**(资源)部分,下载那里的文件。 + +## 🎯 **立即获取安装包的步骤** + +1. **访问**:[Releases · marktext/marktext · GitHub](https://github.com/marktext/marktext/releases) + +2. **找到最新版本**(如 v0.17.1) + +3. **展开 "Assets"** 部分 + +4. **下载对应系统的文件**: + + text + + Windows用户下载: + marktext-setup-x.x.x.exe (约 90 MB) + 或 + marktext-setup-x.x-x64.exe + +## 💡 **如果你已经下载了源代码** + +你可以: + +1. **保留源代码**:用于学习或二次开发 + +2. **删除源代码**:如果你只需要使用软件 + +## 📝 **总结建议** + +**普通用户**:直接去 Release 页面下载安装包,简单快捷 +**开发者**:可以保留源代码进行学习和定制 + +**记住这个关键点**: + +- **`.exe` 文件** = 可以直接安装 + +- **文件夹+配置文件** = 需要编译构建 + +现在就去 Release 页面下载真正的安装包吧!这样你就能立即开始使用 MarkText 了。 diff --git a/docs/学习笔记/gerrit上传代码详细指南.md b/docs/学习笔记/gerrit上传代码详细指南.md index 752f064..ee34892 100644 --- a/docs/学习笔记/gerrit上传代码详细指南.md +++ b/docs/学习笔记/gerrit上传代码详细指南.md @@ -1,424 +1,424 @@ -# gerrit上传代码详细指南 - -# **Gerrit 代码上传详细指南** - -## **一、Gerrit 工作流程概述** - -``` -开发者 → 本地开发 → 推送代码审查 → Gerrit 评审 → 评审通过 → 合并代码 - ↑ ↓ - └─────────────── 需要修改 ← 评审不通过 ←───────────────┘ -``` - -## **二、环境准备** - -### **1. 安装必要的工具** - -```bash -# 安装 Git -sudo apt-get install git # Ubuntu/Debian -brew install git # macOS - -# 安装 commit-msg 钩子(关键步骤) -curl -Lo .git/hooks/commit-msg http://YOUR_GERRIT:8080/tools/hooks/commit-msg -chmod +x .git/hooks/commit-msg -``` - -### **2. 配置 Git 用户信息** - -```bash -git config --global user.name "你的姓名" -git config --global user.email "你的邮箱@company.com" -git config --global core.autocrlf input # Windows 用户重要! -git config --global core.safecrlf warn -``` - -### **3. 配置 SSH 密钥** - -```bash -# 生成 SSH 密钥 -ssh-keygen -t ed25519 -C "your_email@company.com" - -# 查看公钥 -cat ~/.ssh/id_ed25519.pub - -# 将公钥添加到 Gerrit: Settings → SSH Keys -``` - -## **三、日常开发流程** - -### **1. 克隆项目** - -```bash -# 方式1:通过 SSH(推荐) -git clone ssh://username@gerrit-server:29418/project-name - -# 方式2:通过 HTTP -git clone http://gerrit-server:8080/project-name -``` - -### **2. 创建开发分支** - -```bash -# 从 master 创建功能分支 -git checkout master -git pull origin master -git checkout -b feature/your-feature-name - -# 或者从特定版本创建 -git checkout -b feature/xxx release-1.0 -``` - -### **3. 进行开发** - -```bash -# 修改文件 -git add . -git status # 查看状态 - -# 提交代码(commit-msg 钩子会自动添加 Change-Id) -git commit -m "功能描述 - -详细描述: -1. 做了什么修改 -2. 为什么修改 -3. 测试情况 - -Bug: BUG-12345 # 如果有 Bug 编号 -Feature: FEAT-6789 # 如果有需求编号 - -Change-Id: I自动生成" -``` - -### **4. 推送代码审查** - -```bash -# 标准推送方式(创建/更新代码审查) -git push origin HEAD:refs/for/目标分支 - -# 示例: -git push origin HEAD:refs/for/master # 推送到 master 评审 -git push origin HEAD:refs/for/release-1.0 # 推送到 release 分支评审 -git push origin HEAD:refs/for/feature/xxx # 推送到功能分支评审 -``` - -## **四、推送参数详解** - -### **1. 普通推送** - -```bash -# 创建新的代码审查 -git push origin HEAD:refs/for/master - -# 创建草稿代码审查 -git push origin HEAD:refs/drafts/master -``` - -### **2. 推送并设置评审人** - -```bash -# 推送并添加 Reviewer -git push origin HEAD:refs/for/master%r=reviewer1@company.com,r=reviewer2@company.com - -# 推送并添加 CC -git push origin HEAD:refs/for/master%cc=manager@company.com - -# 推送并设置 Topic -git push origin HEAD:refs/for/master%topic=feature/login -``` - -### **3. 推送选项组合** - -```bash -# 完整示例 -git push origin HEAD:refs/for/master%\ -r=alice@company.com,\ -r=bob@company.com,\ -cc=manager@company.com,\ -topic=feature/login,\ -l=Code-Review+2,\ -l=Verified+1 -``` - -## **五、更新已有的代码审查** - -### **1. 修改后更新** - -```bash -# 修改代码后 -git add . -git commit --amend # 重要:必须使用 --amend 保留 Change-Id - -# 重新推送(会自动更新原有代码审查) -git push origin HEAD:refs/for/master -``` - -### **2. 基于评审意见修改** - -```bash -# 查看评审意见后修改 -git fetch origin refs/changes/XX/YYYY/Z && git checkout FETCH_HEAD -# 或者 -git review -d 12345 # 如果安装了 git-review - -# 修改代码 -git add . -git commit --amend - -# 重新推送 -git push origin HEAD:refs/for/master -``` - -### **3. 创建新的 Patch Set** - -```bash -# 每次 git commit --amend 后推送都会创建新的 Patch Set -git log --oneline -1 # 确认 Change-Id 存在 -git push origin HEAD:refs/for/master -``` - -## **六、解决常见问题** - -### **问题1:缺少 Change-Id** - -```bash -# 安装 commit-msg 钩子 -curl -Lo .git/hooks/commit-msg http://gerrit:8080/tools/hooks/commit-msg -chmod +x .git/hooks/commit-msg - -# 为现有提交添加 Change-Id -git commit --amend --no-edit # 重新提交,钩子会自动添加 - -# 或者手动添加 -git commit --amend -m "原提交信息 - -Change-Id: I旧的ChangeId" # 从 Gerrit 界面复制 -``` - -### **问题2:权限拒绝** - -```bash -# 检查 SSH 配置 -ssh -p 29418 username@gerrit-server - -# 检查公钥是否添加 -cat ~/.ssh/id_ed25519.pub - -# 检查项目权限 -# 联系管理员或查看 Gerrit Web 界面 -``` - -### **问题3:冲突无法推送** - -```bash -# 拉取最新代码 -git fetch origin -git rebase origin/master # 或者 git merge origin/master - -# 解决冲突 -git mergetool # 或手动解决 -git add . -git rebase --continue # 如果使用 rebase - -# 重新推送 -git push origin HEAD:refs/for/master -``` - -### **问题4:错误的分支目标** - -```bash -# 查看当前分支 -git branch -a - -# 查看远程分支 -git branch -r - -# 推送到正确的分支 -git push origin HEAD:refs/for/正确的分支名 -``` - -## **七、高级操作** - -### **1. 提交多个相关修改** - -```bash -# 创建多个提交 -git add file1 -git commit -m "修改1: 功能A" -git add file2 -git commit -m "修改2: 功能B" - -# 推送到同一个 Topic -git push origin HEAD~2:refs/for/master%topic=feature/xxx -``` - -### **2. 依赖链提交** - -```bash -# 第一个提交 -git commit -m "基础修改" - -# 第二个提交依赖第一个 -git commit -m "依赖修改" - -# 推送到 Gerrit 时保持依赖关系 -git push origin HEAD~1:refs/for/master -git push origin HEAD:refs/for/master%depends=第一个提交的Change-Id -``` - -### **3. 使用 git-review 工具** - -```bash -# 安装 -pip install git-review - -# 初始化 -git review -s - -# 提交代码审查 -git review - -# 下载代码审查 -git review -d 12345 # Change-Number -``` - -## **八、Gerrit Web 界面操作** - -### **1. 查看代码审查** - -- 访问:`http://gerrit:8080` -- 登录 → Dashboard → 查看你的代码审查 -- 点击 Change-Number 进入详情 - -### **2. 评审操作** - -- **+1 / -1**:代码风格、建议性意见 -- **+2 / -2**:代码评审通过/拒绝(需要权限) -- **Submit**:合并代码(需要权限) -- **Abandon**:放弃代码审查 -- **Rebase**:重新基于最新代码 -- **Cherry Pick**:应用到其他分支 - -### **3. 查看差异** - -- **Side-by-Side**:并排对比 -- **Unified Diff**:统一差异 -- **Patch Set**:切换不同版本 - -## **九、最佳实践** - -### **1. 提交信息规范** - -``` -一句话摘要(50字以内) - -详细描述: -• 做了什么修改 -• 为什么修改 -• 如何测试 -• 可能的影响 - -Bug: BUG-12345 -Feature: FEAT-6789 -Test: 通过单元测试/集成测试 - -Change-Id: I自动生成 -``` - -### **2. 代码审查前自查** - -```bash -# 1. 运行代码检查 -git diff --check # 检查空白字符 - -# 2. 运行测试 -npm test # 或 mvn test, pytest 等 - -# 3. 检查提交信息 -git log --oneline -1 - -# 4. 确保 Change-Id 存在 -git log -1 | grep Change-Id -``` - -### **3. 每日工作流程** - -```bash -# 早上 -git fetch origin -git rebase origin/master # 更新本地代码 - -# 开发中 -git add . -git commit -m "..." - -# 推送前 -git pull --rebase origin master # 再次更新 -解决冲突(如果有) -git push origin HEAD:refs/for/master - -# 查看 Gerrit 反馈 -# 根据评审意见修改 -``` - -## **十、常用命令速查** - -```bash -# 初始化 -git clone ssh://user@gerrit:29418/project -scp -p -P 29418 user@gerrit:hooks/commit-msg .git/hooks/ - -# 日常开发 -git checkout -b feature/xxx -git add . -git commit -m "..." -git push origin HEAD:refs/for/master - -# 更新 -git commit --amend -git push origin HEAD:refs/for/master - -# 查看 -git log --oneline -5 -git status -git diff - -# 解决冲突 -git fetch origin -git rebase origin/master -解决冲突 → git add → git rebase --continue -``` - -## **十一、故障排除** - -| 问题 | 解决方案 | -| ------------- | ----------------- | -| 403 Forbidden | 检查 SSH 密钥/HTTP 密码 | -| 缺少 Change-Id | 安装 commit-msg 钩子 | -| 分支不存在 | 先创建分支或确认分支名 | -| 冲突无法推送 | rebase 解决冲突 | -| 权限不足 | 联系管理员添加权限 | -| 推送被拒绝 | 检查目标分支是否正确 | - -## **十二、快速参考卡片** - -``` -✅ 正确流程: -1. git clone -2. 安装 commit-msg 钩子 -3. git checkout -b feature/xxx -4. 开发并提交 -5. git push origin HEAD:refs/for/目标分支 - -✅ 更新流程: -1. git commit --amend # 必须! -2. git push origin HEAD:refs/for/目标分支 - -✅ 关键要点: -• 每次提交都必须有 Change-Id -• 更新必须用 --amend -• 只能推送到 refs/for/ -• 在 Gerrit Web 界面查看结果 -``` - -需要我详细解释哪个部分吗? +# gerrit上传代码详细指南 + +# **Gerrit 代码上传详细指南** + +## **一、Gerrit 工作流程概述** + +``` +开发者 → 本地开发 → 推送代码审查 → Gerrit 评审 → 评审通过 → 合并代码 + ↑ ↓ + └─────────────── 需要修改 ← 评审不通过 ←───────────────┘ +``` + +## **二、环境准备** + +### **1. 安装必要的工具** + +```bash +# 安装 Git +sudo apt-get install git # Ubuntu/Debian +brew install git # macOS + +# 安装 commit-msg 钩子(关键步骤) +curl -Lo .git/hooks/commit-msg http://YOUR_GERRIT:8080/tools/hooks/commit-msg +chmod +x .git/hooks/commit-msg +``` + +### **2. 配置 Git 用户信息** + +```bash +git config --global user.name "你的姓名" +git config --global user.email "你的邮箱@company.com" +git config --global core.autocrlf input # Windows 用户重要! +git config --global core.safecrlf warn +``` + +### **3. 配置 SSH 密钥** + +```bash +# 生成 SSH 密钥 +ssh-keygen -t ed25519 -C "your_email@company.com" + +# 查看公钥 +cat ~/.ssh/id_ed25519.pub + +# 将公钥添加到 Gerrit: Settings → SSH Keys +``` + +## **三、日常开发流程** + +### **1. 克隆项目** + +```bash +# 方式1:通过 SSH(推荐) +git clone ssh://username@gerrit-server:29418/project-name + +# 方式2:通过 HTTP +git clone http://gerrit-server:8080/project-name +``` + +### **2. 创建开发分支** + +```bash +# 从 master 创建功能分支 +git checkout master +git pull origin master +git checkout -b feature/your-feature-name + +# 或者从特定版本创建 +git checkout -b feature/xxx release-1.0 +``` + +### **3. 进行开发** + +```bash +# 修改文件 +git add . +git status # 查看状态 + +# 提交代码(commit-msg 钩子会自动添加 Change-Id) +git commit -m "功能描述 + +详细描述: +1. 做了什么修改 +2. 为什么修改 +3. 测试情况 + +Bug: BUG-12345 # 如果有 Bug 编号 +Feature: FEAT-6789 # 如果有需求编号 + +Change-Id: I自动生成" +``` + +### **4. 推送代码审查** + +```bash +# 标准推送方式(创建/更新代码审查) +git push origin HEAD:refs/for/目标分支 + +# 示例: +git push origin HEAD:refs/for/master # 推送到 master 评审 +git push origin HEAD:refs/for/release-1.0 # 推送到 release 分支评审 +git push origin HEAD:refs/for/feature/xxx # 推送到功能分支评审 +``` + +## **四、推送参数详解** + +### **1. 普通推送** + +```bash +# 创建新的代码审查 +git push origin HEAD:refs/for/master + +# 创建草稿代码审查 +git push origin HEAD:refs/drafts/master +``` + +### **2. 推送并设置评审人** + +```bash +# 推送并添加 Reviewer +git push origin HEAD:refs/for/master%r=reviewer1@company.com,r=reviewer2@company.com + +# 推送并添加 CC +git push origin HEAD:refs/for/master%cc=manager@company.com + +# 推送并设置 Topic +git push origin HEAD:refs/for/master%topic=feature/login +``` + +### **3. 推送选项组合** + +```bash +# 完整示例 +git push origin HEAD:refs/for/master%\ +r=alice@company.com,\ +r=bob@company.com,\ +cc=manager@company.com,\ +topic=feature/login,\ +l=Code-Review+2,\ +l=Verified+1 +``` + +## **五、更新已有的代码审查** + +### **1. 修改后更新** + +```bash +# 修改代码后 +git add . +git commit --amend # 重要:必须使用 --amend 保留 Change-Id + +# 重新推送(会自动更新原有代码审查) +git push origin HEAD:refs/for/master +``` + +### **2. 基于评审意见修改** + +```bash +# 查看评审意见后修改 +git fetch origin refs/changes/XX/YYYY/Z && git checkout FETCH_HEAD +# 或者 +git review -d 12345 # 如果安装了 git-review + +# 修改代码 +git add . +git commit --amend + +# 重新推送 +git push origin HEAD:refs/for/master +``` + +### **3. 创建新的 Patch Set** + +```bash +# 每次 git commit --amend 后推送都会创建新的 Patch Set +git log --oneline -1 # 确认 Change-Id 存在 +git push origin HEAD:refs/for/master +``` + +## **六、解决常见问题** + +### **问题1:缺少 Change-Id** + +```bash +# 安装 commit-msg 钩子 +curl -Lo .git/hooks/commit-msg http://gerrit:8080/tools/hooks/commit-msg +chmod +x .git/hooks/commit-msg + +# 为现有提交添加 Change-Id +git commit --amend --no-edit # 重新提交,钩子会自动添加 + +# 或者手动添加 +git commit --amend -m "原提交信息 + +Change-Id: I旧的ChangeId" # 从 Gerrit 界面复制 +``` + +### **问题2:权限拒绝** + +```bash +# 检查 SSH 配置 +ssh -p 29418 username@gerrit-server + +# 检查公钥是否添加 +cat ~/.ssh/id_ed25519.pub + +# 检查项目权限 +# 联系管理员或查看 Gerrit Web 界面 +``` + +### **问题3:冲突无法推送** + +```bash +# 拉取最新代码 +git fetch origin +git rebase origin/master # 或者 git merge origin/master + +# 解决冲突 +git mergetool # 或手动解决 +git add . +git rebase --continue # 如果使用 rebase + +# 重新推送 +git push origin HEAD:refs/for/master +``` + +### **问题4:错误的分支目标** + +```bash +# 查看当前分支 +git branch -a + +# 查看远程分支 +git branch -r + +# 推送到正确的分支 +git push origin HEAD:refs/for/正确的分支名 +``` + +## **七、高级操作** + +### **1. 提交多个相关修改** + +```bash +# 创建多个提交 +git add file1 +git commit -m "修改1: 功能A" +git add file2 +git commit -m "修改2: 功能B" + +# 推送到同一个 Topic +git push origin HEAD~2:refs/for/master%topic=feature/xxx +``` + +### **2. 依赖链提交** + +```bash +# 第一个提交 +git commit -m "基础修改" + +# 第二个提交依赖第一个 +git commit -m "依赖修改" + +# 推送到 Gerrit 时保持依赖关系 +git push origin HEAD~1:refs/for/master +git push origin HEAD:refs/for/master%depends=第一个提交的Change-Id +``` + +### **3. 使用 git-review 工具** + +```bash +# 安装 +pip install git-review + +# 初始化 +git review -s + +# 提交代码审查 +git review + +# 下载代码审查 +git review -d 12345 # Change-Number +``` + +## **八、Gerrit Web 界面操作** + +### **1. 查看代码审查** + +- 访问:`http://gerrit:8080` +- 登录 → Dashboard → 查看你的代码审查 +- 点击 Change-Number 进入详情 + +### **2. 评审操作** + +- **+1 / -1**:代码风格、建议性意见 +- **+2 / -2**:代码评审通过/拒绝(需要权限) +- **Submit**:合并代码(需要权限) +- **Abandon**:放弃代码审查 +- **Rebase**:重新基于最新代码 +- **Cherry Pick**:应用到其他分支 + +### **3. 查看差异** + +- **Side-by-Side**:并排对比 +- **Unified Diff**:统一差异 +- **Patch Set**:切换不同版本 + +## **九、最佳实践** + +### **1. 提交信息规范** + +``` +一句话摘要(50字以内) + +详细描述: +• 做了什么修改 +• 为什么修改 +• 如何测试 +• 可能的影响 + +Bug: BUG-12345 +Feature: FEAT-6789 +Test: 通过单元测试/集成测试 + +Change-Id: I自动生成 +``` + +### **2. 代码审查前自查** + +```bash +# 1. 运行代码检查 +git diff --check # 检查空白字符 + +# 2. 运行测试 +npm test # 或 mvn test, pytest 等 + +# 3. 检查提交信息 +git log --oneline -1 + +# 4. 确保 Change-Id 存在 +git log -1 | grep Change-Id +``` + +### **3. 每日工作流程** + +```bash +# 早上 +git fetch origin +git rebase origin/master # 更新本地代码 + +# 开发中 +git add . +git commit -m "..." + +# 推送前 +git pull --rebase origin master # 再次更新 +解决冲突(如果有) +git push origin HEAD:refs/for/master + +# 查看 Gerrit 反馈 +# 根据评审意见修改 +``` + +## **十、常用命令速查** + +```bash +# 初始化 +git clone ssh://user@gerrit:29418/project +scp -p -P 29418 user@gerrit:hooks/commit-msg .git/hooks/ + +# 日常开发 +git checkout -b feature/xxx +git add . +git commit -m "..." +git push origin HEAD:refs/for/master + +# 更新 +git commit --amend +git push origin HEAD:refs/for/master + +# 查看 +git log --oneline -5 +git status +git diff + +# 解决冲突 +git fetch origin +git rebase origin/master +解决冲突 → git add → git rebase --continue +``` + +## **十一、故障排除** + +| 问题 | 解决方案 | +| ------------- | ----------------- | +| 403 Forbidden | 检查 SSH 密钥/HTTP 密码 | +| 缺少 Change-Id | 安装 commit-msg 钩子 | +| 分支不存在 | 先创建分支或确认分支名 | +| 冲突无法推送 | rebase 解决冲突 | +| 权限不足 | 联系管理员添加权限 | +| 推送被拒绝 | 检查目标分支是否正确 | + +## **十二、快速参考卡片** + +``` +✅ 正确流程: +1. git clone +2. 安装 commit-msg 钩子 +3. git checkout -b feature/xxx +4. 开发并提交 +5. git push origin HEAD:refs/for/目标分支 + +✅ 更新流程: +1. git commit --amend # 必须! +2. git push origin HEAD:refs/for/目标分支 + +✅ 关键要点: +• 每次提交都必须有 Change-Id +• 更新必须用 --amend +• 只能推送到 refs/for/ +• 在 Gerrit Web 界面查看结果 +``` + +需要我详细解释哪个部分吗? diff --git a/docs/学习笔记/gerrit分支规范.md b/docs/学习笔记/gerrit分支规范.md new file mode 100644 index 0000000..95cddfe --- /dev/null +++ b/docs/学习笔记/gerrit分支规范.md @@ -0,0 +1,128 @@ +推荐标准分支模型: master/main主干分支 永远保持可编译、可运行 release-* 发布分支 只合并经过验证的Change hotfix-* 紧急修复 + + +您总结的Gerrit分支创建流程非常准确和实用!以下是对您提供内容的梳理和补充,使其更加清晰系统化。 + +## Gerrit 分支管理全流程 + +### 一、权限说明(重要前提) +- **Owner/Maintainer**:有权限创建新分支 +- **Developer**:默认只能推送提交到现有分支,不能创建新分支 +- **权限配置路径**:Project → Access → Reference: refs/heads/* + +### 二、分支创建详细步骤 + +#### 1. master/main分支(主干分支) +```bash +# 如果仓库为空,需要初始化master分支 +git clone ssh://user@gerrit-ip:29418/project-name +cd project-name +git checkout -b master +# 首次推送master分支(不走Review流程) +git push origin master +``` + +#### 2. release-*分支(发布分支) +```bash +# 1. 更新master分支 +git checkout master +git pull + +# 2. 创建本地release分支 +git checkout -b release-1.0 + +# 3. 推送到Gerrit创建远程分支 +git push origin release-1.0 +# 注意:这里直接push,不是refs/for/ +``` + +#### 3. hotfix-*分支(紧急修复分支) +```bash +# 从release分支创建 +git checkout release-1.0 +git pull +git checkout -b hotfix-crash-123 +git push origin hotfix-crash-123 + +# 从master分支创建(如果未建立release分支) +git checkout master +git pull +git checkout -b hotfix-issue-456 +git push origin hotfix-issue-456 +``` + +### 三、不同分支的提交方式差异 + +| 分支类型 | 推送命令 | 是否走Review | 说明 | +|---------|---------|-------------|------| +| 创建新分支 | `git push origin 分支名` | ❌ 否 | 直接创建分支 | +| master分支提交 | `git push origin HEAD:refs/for/master` | ✅ 是 | 常规开发流程 | +| release分支提交 | `git push origin HEAD:refs/for/release-1.0` | ✅ 是 | 修复bug流程 | +| hotfix分支提交 | `git push origin HEAD:refs/for/hotfix-*` | ✅ 是 | 紧急修复流程 | + +### 四、分支合并策略 + +#### hotfix修复后的合并流程: +```bash +# 1. 修复完成后,合并到release分支 +git checkout release-1.0 +git merge --no-ff hotfix-crash-123 +git push origin HEAD:refs/for/release-1.0 + +# 2. cherry-pick到master +git checkout master +git cherry-pick +git push origin HEAD:refs/for/master +``` + +### 五、最佳实践建议 + +1. **分支命名规范**: + - feature/xxx(功能分支,从master创建) + - release/x.y.z(发布分支) + - hotfix/xxx(紧急修复) + - bugfix/xxx(普通bug修复) + +2. **权限管理**: + ```bash + # 为开发者授予特定分支创建权限(Gerrit Web界面) + # Access → Reference: refs/heads/feature/* + # 添加 Push + Create Reference 权限给特定用户组 + ``` + +3. **CI/CD集成**: + - release-* 分支:触发正式环境构建 + - hotfix-* 分支:紧急修复通道,快速验证 + - master分支:每日/持续集成 + +4. **分支保护**: + - 保护master分支:必须通过Code Review + - 保护release分支:限制直接push,需通过Review + - 定期清理过期分支 + +### 六、常见问题排查 + +1. **权限拒绝错误**: + ``` + ! [remote rejected] release-1.0 -> release-1.0 (prohibited by Gerrit) + ``` + 解决方法:联系Owner/Maintainer授予分支创建权限 + +2. **分支已存在错误**: + ```bash + # 先拉取远程分支列表 + git fetch origin + git branch -r # 查看远程分支 + ``` + +3. **使用Gerrit插件创建分支**(可选): + ```bash + # 安装git-review插件 + pip install git-review + + # 创建分支并推送到Gerrit + git review -c -b release-1.0 + ``` + +您的总结已经非常全面,这些补充主要是为了让操作流程更加清晰,便于团队协作和标准化操作。 + diff --git a/docs/学习笔记/git同步远程分支总结.md b/docs/学习笔记/git同步远程分支总结.md new file mode 100644 index 0000000..263753e --- /dev/null +++ b/docs/学习笔记/git同步远程分支总结.md @@ -0,0 +1,276 @@ +非常全面的同步远程分支指南!我来帮你整理几个最实用的方案,并提供更清晰的分类: + +## 📋 **最常用的分支同步方案** + +### **方案一:基础同步(最常用)** +```bash +# 1. 获取所有远程更新并清理已删除分支 +git fetch --all --prune + +# 2. 查看所有分支 +git branch -a + +# 3. 切换到特定分支并同步 +git checkout 分支名 +git pull origin 分支名 +``` + +### **方案二:一键同步所有分支到本地** +```bash +# 推荐的安全版本 +git fetch --all --prune +for branch in $(git branch -r | grep -v '\->' | grep -v 'HEAD'); do + local_branch=${branch#origin/} + if ! git show-ref --quiet refs/heads/"$local_branch"; then + echo "📦 创建分支: $local_branch" + git branch --track "$local_branch" "$branch" + fi +done +``` + +## 🔧 **实用脚本整理** + +### **脚本1:智能同步脚本 (sync-branches.sh)** +```bash +#!/bin/bash +# 智能同步所有远程分支 + +echo "🔄 开始同步分支..." + +# 1. 获取所有远程更新 +git fetch --all --prune + +# 2. 同步主要分支 +main_branch="" +if git show-ref --verify --quiet refs/remotes/origin/main; then + main_branch="main" +elif git show-ref --verify --quiet refs/remotes/origin/master; then + main_branch="master" +fi + +if [ -n "$main_branch" ]; then + echo "📌 更新主分支: $main_branch" + git checkout $main_branch 2>/dev/null || git checkout -b $main_branch origin/$main_branch + git pull origin $main_branch +fi + +# 3. 创建本地不存在的远程分支 +echo "📦 同步其他分支..." +git branch -r | grep -v '\->' | grep -v 'HEAD' | while read remote; do + local_branch=${remote#origin/} + + # 跳过已经存在的分支 + if git show-ref --verify --quiet refs/heads/"$local_branch"; then + echo " ✓ 已存在: $local_branch" + continue + fi + + # 创建跟踪分支 + echo " ➕ 创建: $local_branch" + git branch --track "$local_branch" "$remote" 2>/dev/null +done + +# 4. 检查是否需要更新现有分支 +echo "🔄 检查本地分支更新..." +current_branch=$(git branch --show-current) +git branch --format='%(refname:short)' | while read branch; do + if [ "$branch" != "$current_branch" ]; then + git checkout "$branch" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + git pull origin "$branch" --ff-only >/dev/null 2>&1 + echo " ⬆️ 已更新: $branch" + fi + fi +done + +# 5. 返回原分支 +git checkout "$current_branch" >/dev/null 2>&1 + +echo "✅ 同步完成!" +echo "📊 分支统计:" +git branch -a | grep -c "remotes/origin" | xargs echo "远程分支数: " +git branch | wc -l | xargs echo "本地分支数: " +``` + +### **脚本2:快速切换和同步 (git-sync)** +```bash +#!/bin/bash +# 快速切换到指定分支并同步 +if [ $# -eq 0 ]; then + echo "用法: git-sync 分支名" + exit 1 +fi + +BRANCH=$1 + +echo "🔄 切换到分支: $BRANCH" + +# 检查分支是否存在 +if git show-ref --verify --quiet refs/heads/"$BRANCH"; then + # 本地分支存在 + git checkout "$BRANCH" + git pull origin "$BRANCH" +elif git show-ref --verify --quiet refs/remotes/origin/"$BRANCH"; then + # 远程分支存在,创建本地跟踪分支 + git checkout -b "$BRANCH" origin/"$BRANCH" +else + echo "❌ 错误: 分支 $BRANCH 不存在" + echo "可用的远程分支:" + git branch -r | grep -v '\->' | sed 's/origin\///' | sort | uniq + exit 1 +fi + +echo "✅ 完成!当前分支: $(git branch --show-current)" +``` + +## ⚙️ **Git 配置别名(推荐)** + +添加到 `~/.gitconfig` 的 `[alias]` 部分: + +```ini +[alias] + # 同步所有分支 + sync-all = "!f() { \ + echo '🔄 获取远程更新...'; \ + git fetch --all --prune; \ + echo '📦 创建本地分支...'; \ + git branch -r | grep -v '\\->' | grep -v 'HEAD' | while read remote; do \ + local=${remote#origin/}; \ + if ! git show-ref --quiet refs/heads/\"$local\"; then \ + echo \" ➕ $local\"; \ + git branch --track \"$local\" \"$remote\" 2>/dev/null; \ + fi; \ + done; \ + echo '✅ 同步完成!'; \ + }; f" + + # 更新当前仓库所有分支 + update-all = "!f() { \ + current=$(git branch --show-current); \ + for branch in $(git branch --format='%(refname:short)'); do \ + if [ \"$branch\" != \"$current\" ]; then \ + git checkout \"$branch\" 2>/dev/null && git pull origin \"$branch\" 2>/dev/null; \ + fi; \ + done; \ + git checkout \"$current\"; \ + echo '✅ 所有分支已更新!'; \ + }; f" + + # 查看分支树状图 + tree = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all + + # 清理已合并的分支 + clean-branches = "!f() { \ + git fetch --all --prune; \ + git branch --merged main | grep -v '^\\* main$' | xargs -n 1 git branch -d; \ + echo '🧹 已清理合并到main的分支'; \ + }; f" +``` + +使用别名: +```bash +git sync-all # 同步所有远程分支到本地 +git update-all # 更新所有本地分支 +git tree # 查看分支树状图 +git clean-branches # 清理已合并的分支 +``` + +## 🎯 **针对不同场景的推荐方案** + +### **场景1:新电脑初次同步** +```bash +# 1. 克隆仓库 +git clone ssh://renjianbo@101.43.95.130:29418/zhini_im + +# 2. 进入目录并同步所有分支 +cd zhini_im +git sync-all # 使用上面配置的别名 +``` + +### **场景2:日常更新** +```bash +# 推荐的工作流程 +git status # 1. 查看状态 +git stash # 2. 暂存未提交的修改(可选) +git fetch --all --prune # 3. 获取最新状态 +git checkout main # 4. 切换到主分支 +git pull --rebase origin main # 5. 更新主分支 +git checkout 你的分支 # 6. 切回你的分支 +git rebase main # 7. 基于最新main重定基 +git stash pop # 8. 恢复暂存的修改 +``` + +### **场景3:清理分支** +```bash +# 查看哪些分支已经合并到main +git branch --merged main + +# 删除已合并的分支(除了当前分支和main) +git branch --merged main | grep -v "main" | xargs git branch -d + +# 强制删除未合并的分支 +git branch -D 分支名 + +# 删除远程分支(谨慎操作) +git push origin --delete 分支名 +``` + +## 📊 **分支管理最佳实践** + +### **分支命名规范** +``` +feature/ # 新功能 +bugfix/ # 修复bug +hotfix/ # 紧急修复 +release/ # 发布分支 +``` + +### **常用命令速查** +```bash +# 查看分支关系 +git log --graph --oneline --all + +# 查看远程分支的最后提交 +git for-each-ref --sort=-committerdate refs/remotes/origin/ --format='%(refname:short) - %(committerdate:short)' + +# 查看分支差异 +git diff main..你的分支 # 比较差异 +git log main..你的分支 # 查看提交记录差异 + +# 重命名分支 +git branch -m 旧名字 新名字 # 本地重命名 +git push origin :旧名字 # 删除远程旧分支 +git push origin 新名字 # 推送新分支 +git push origin -u 新名字 # 设置上游分支 +``` + +## 🚨 **注意事项** + +1. **备份重要修改**:同步前先提交或暂存工作 +2. **小心 force push**:避免使用 `--force`,用 `--force-with-lease` 更安全 +3. **定期清理**:删除已合并的本地分支,保持仓库整洁 +4. **沟通协调**:多人协作时,删除远程分支前要确认 + +## 🎪 **一个命令完成所有同步** + +终极简化版: +```bash +# 创建 ~/bin/git-full-sync 文件 +#!/bin/bash +cd /path/to/your/project +git stash +git fetch --all --prune +git checkout main && git pull origin main +git sync-all # 使用别名 +git stash pop +echo "✅ 全量同步完成!" + +# 添加执行权限 +chmod +x ~/bin/git-full-sync + +# 使用 +cd 你的项目 +git-full-sync +``` + +这些方案覆盖了大部分使用场景,根据你的具体需求选择合适的方法即可。最常用的是方案一的基础同步,配合别名可以极大提高效率。 \ No newline at end of file diff --git a/docs/学习笔记/git设置用户名和邮箱.md b/docs/学习笔记/git设置用户名和邮箱.md new file mode 100644 index 0000000..49f9dd1 --- /dev/null +++ b/docs/学习笔记/git设置用户名和邮箱.md @@ -0,0 +1,14 @@ +配置用户名和邮箱(如果还没配置) +git config --global user.name "Your Name" git config --global user.email "your.email@example.com" + +查看用户名 +git config user.name + +查看邮箱 +git config user.email + +查看远程仓库地址 +git config remote.origin.url + +设置远程仓库地址 +git remote set-url origin ssh://renjianbo@101.43.95.130:29419/zhini_im_android \ No newline at end of file diff --git a/docs/学习笔记/前端学习.md b/docs/学习笔记/前端学习.md index 8edaabe..69033ea 100644 --- a/docs/学习笔记/前端学习.md +++ b/docs/学习笔记/前端学习.md @@ -1,119 +1,119 @@ -# 前端学习笔记 - -## HTML - -### 基本结构 - -```html - - - - 页面标题 - - -

标题

-

段落内容

- - -``` - -## CSS - -### 样式定义 - -```css -.container { - width: 100%; - max-width: 1200px; - margin: 0 auto; - padding: 20px; -} - -.button { - background-color: #007bff; - color: white; - padding: 10px 20px; - border: none; - border-radius: 4px; - cursor: pointer; -} -``` - -## JavaScript - -### 基础语法 - -```javascript -// 变量 -let name = "JavaScript"; -const age = 25; - -// 函数 -function greet(name) { - return `Hello, ${name}!`; -} - -// 箭头函数 -const greet = (name) => `Hello, ${name}!`; - -// 异步函数 -async function fetchData() { - const response = await fetch('/api/data'); - const data = await response.json(); - return data; -} -``` - -## 框架和库 - -### React - -```jsx -import React, { useState } from 'react'; - -function App() { - const [count, setCount] = useState(0); - - return ( -
-

计数: {count}

- -
- ); -} -``` - -### Vue - -```vue - - - -``` - -## 学习资源 - -- [MDN Web 文档](https://developer.mozilla.org/) -- [React 官方文档](https://react.dev/) -- [Vue 官方文档](https://cn.vuejs.org/) - +# 前端学习笔记 + +## HTML + +### 基本结构 + +```html + + + + 页面标题 + + +

标题

+

段落内容

+ + +``` + +## CSS + +### 样式定义 + +```css +.container { + width: 100%; + max-width: 1200px; + margin: 0 auto; + padding: 20px; +} + +.button { + background-color: #007bff; + color: white; + padding: 10px 20px; + border: none; + border-radius: 4px; + cursor: pointer; +} +``` + +## JavaScript + +### 基础语法 + +```javascript +// 变量 +let name = "JavaScript"; +const age = 25; + +// 函数 +function greet(name) { + return `Hello, ${name}!`; +} + +// 箭头函数 +const greet = (name) => `Hello, ${name}!`; + +// 异步函数 +async function fetchData() { + const response = await fetch('/api/data'); + const data = await response.json(); + return data; +} +``` + +## 框架和库 + +### React + +```jsx +import React, { useState } from 'react'; + +function App() { + const [count, setCount] = useState(0); + + return ( +
+

计数: {count}

+ +
+ ); +} +``` + +### Vue + +```vue + + + +``` + +## 学习资源 + +- [MDN Web 文档](https://developer.mozilla.org/) +- [React 官方文档](https://react.dev/) +- [Vue 官方文档](https://cn.vuejs.org/) + diff --git a/docs/学习笔记/生成并配置SSH密钥、克隆仓库.md b/docs/学习笔记/生成并配置SSH密钥、克隆仓库.md new file mode 100644 index 0000000..2055050 --- /dev/null +++ b/docs/学习笔记/生成并配置SSH密钥、克隆仓库.md @@ -0,0 +1,133 @@ +你的操作指南非常详细和准确!我帮你重新整理了一个更清晰的流程,并修复了流程图的语法: + +## 完整操作流程 + +### **第一步:生成SSH密钥(在新电脑上)** + +```bash +# 1. 生成SSH密钥(使用ed25519算法,更安全) +ssh-keygen -t ed25519 -C "renjianbo@example.com" + +# 按提示操作: +# - 直接回车使用默认路径 (~/.ssh/id_ed25519) +# - 可以设置密码(可选) +# - 再次确认密码 + +# 2. 查看公钥并复制 +cat ~/.ssh/id_ed25519.pub +``` +**输出示例:** +``` +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJL...你的公钥内容... renjianbo@example.com +``` + +### **第二步:添加公钥到Gerrit账户** + +1. 登录 Gerrit:`http://101.43.95.130:8080/` +2. 点击右上角 **renjianbo** → **Settings** → **SSH Keys** +3. 点击 **Add Key** 按钮 +4. 粘贴复制的公钥内容,保存 + +### **第三步:克隆项目** + +#### **方式A:SSH协议(推荐)** +```bash +# 使用你的用户名 renjianbo +git clone ssh://renjianbo@101.43.95.130:29418/zhini_im +``` + +#### **方式B:HTTP协议(备用)** +```bash +git clone http://101.43.95.130:8080/zhini_im +# 可能需要输入用户名密码 +``` + +### **第四步:验证和配置** + +```bash +# 1. 进入项目目录 +cd zhini_im + +# 2. 查看远程仓库地址 +git remote -v +# 应该显示类似:origin ssh://renjianbo@101.43.95.130:29418/zhini_im + +# 3. 配置用户信息(重要!) +git config user.name "renjianbo" +git config user.email "renjianbo@example.com" # 使用你的Gerrit注册邮箱 + +# 4. 可选:验证SSH连接 +ssh -p 29418 renjianbo@101.43.95.130 +# 如果看到 Gerrit 欢迎信息,说明连接成功 +``` + +## **操作流程图** + +```mermaid +flowchart TD + Start[开始] --> GenKey[生成SSH密钥
ssh-keygen] + GenKey --> CopyKey[复制公钥
cat ~/.ssh/id_ed25519.pub] + CopyKey --> LoginGerrit[登录Gerrit网页] + LoginGerrit --> AddKey[添加公钥到SSH Keys] + + AddKey --> ChooseMethod{选择克隆方式} + ChooseMethod --> SSH[SSH协议
git clone ssh://renjianbo@...] + ChooseMethod --> HTTP[HTTP协议
git clone http://...] + + SSH --> Verify[进入目录验证] + HTTP --> Verify + Verify --> Config[配置用户信息] + Config --> Done[完成] +``` + +## **常见问题解决** + +### **1. SSH连接被拒绝** +```bash +# 测试SSH连接 +ssh -p 29418 -T renjianbo@101.43.95.130 + +# 如果提示"Permission denied",检查: +# - 公钥是否正确添加到Gerrit +# - 用户名是否正确(不是admin,是renjianbo) +# - 是否有仓库访问权限 +``` + +### **2. 首次连接需要确认主机** +``` +The authenticity of host '[101.43.95.130]:29418' can't be established. +ECDSA key fingerprint is SHA256:xxx... +Are you sure you want to continue connecting (yes/no/[fingerprint])? +``` +**输入:** `yes` + +### **3. 端口被阻挡** +- 检查防火墙是否允许29418端口 +- 在公司网络可能需要配置代理 + +### **4. 克隆速度慢** +```bash +# 可以尝试浅克隆(只获取最新版本) +git clone --depth 1 ssh://renjianbo@101.43.95.130:29418/zhini_im +``` + +## **快捷脚本** +创建一键克隆脚本 `clone_zhini_im.sh`: +```bash +#!/bin/bash +# 克隆智拟IM项目 +echo "正在克隆智拟IM项目..." +git clone ssh://renjianbo@101.43.95.130:29418/zhini_im +cd zhini_im +git config user.name "renjianbo" +git config user.email "renjianbo@example.com" +echo "克隆完成!" +``` + +执行: +```bash +chmod +x clone_zhini_im.sh +./clone_zhini_im.sh +``` + +按照这个流程操作,你应该能成功将项目拉到新电脑。如果遇到具体错误,可以把错误信息发给我,我会帮你诊断解决。 \ No newline at end of file diff --git a/docs/开发指南/开发规范.md b/docs/开发指南/开发规范.md index fca2fdd..ccf3f58 100644 --- a/docs/开发指南/开发规范.md +++ b/docs/开发指南/开发规范.md @@ -1,104 +1,104 @@ -# 开发规范 - -## Markdown 编写规范 - -### 标题层级 - -- 使用 `#` 作为文档主标题(H1) -- 使用 `##` 作为章节标题(H2) -- 使用 `###` 作为小节标题(H3) -- 避免跳过标题层级 - -### 代码块 - -使用三个反引号包裹代码,并指定语言: - -```markdown -```python -def hello(): - print("Hello, World!") -``` - -``` -### 链接 - -- 内部链接:使用相对路径 -- 外部链接:使用完整 URL - -```markdown -[内部文档](../其他文档.md) -[外部链接](https://example.com) -``` - -### 图片 - -将图片放在 `docs/images/` 目录,使用相对路径: - -```markdown -![图片描述](images/example.png) -``` - -### 表格 - -使用 Markdown 表格语法: - -```markdown -| 列1 | 列2 | 列3 | -|-----|-----|-----| -| 值1 | 值2 | 值3 | -``` - -## 文档结构规范 - -### 文档头部 - -每个文档应包含: - -- 标题(H1) -- 简要描述 -- 目录(可选,用于长文档) - -### 章节组织 - -- 使用清晰的章节标题 -- 保持逻辑顺序 -- 使用列表和表格增强可读性 - -## 命名规范 - -### 文件名 - -- 使用小写字母和连字符 -- 避免使用空格和特殊字符 -- 示例:`快速开始.md`、`api-文档.md` - -### 目录名 - -- 使用中文或英文 -- 保持简洁明了 -- 示例:`开发指南/`、`dev-guide/` - -## 内容规范 - -### 语言风格 - -- 使用简洁明了的语言 -- 避免冗长的句子 -- 使用列表和表格组织信息 - -### 代码示例 - -- 提供完整可运行的代码示例 -- 添加必要的注释 -- 说明代码的用途和注意事项 - -### 更新记录 - -重要文档建议添加更新记录: - -```markdown -## 更新记录 - -- 2024-01-01: 初始版本 -- 2024-01-15: 添加新功能说明 -``` +# 开发规范 + +## Markdown 编写规范 + +### 标题层级 + +- 使用 `#` 作为文档主标题(H1) +- 使用 `##` 作为章节标题(H2) +- 使用 `###` 作为小节标题(H3) +- 避免跳过标题层级 + +### 代码块 + +使用三个反引号包裹代码,并指定语言: + +```markdown +```python +def hello(): + print("Hello, World!") +``` + +``` +### 链接 + +- 内部链接:使用相对路径 +- 外部链接:使用完整 URL + +```markdown +[内部文档](../其他文档.md) +[外部链接](https://example.com) +``` + +### 图片 + +将图片放在 `docs/images/` 目录,使用相对路径: + +```markdown +![图片描述](images/example.png) +``` + +### 表格 + +使用 Markdown 表格语法: + +```markdown +| 列1 | 列2 | 列3 | +|-----|-----|-----| +| 值1 | 值2 | 值3 | +``` + +## 文档结构规范 + +### 文档头部 + +每个文档应包含: + +- 标题(H1) +- 简要描述 +- 目录(可选,用于长文档) + +### 章节组织 + +- 使用清晰的章节标题 +- 保持逻辑顺序 +- 使用列表和表格增强可读性 + +## 命名规范 + +### 文件名 + +- 使用小写字母和连字符 +- 避免使用空格和特殊字符 +- 示例:`快速开始.md`、`api-文档.md` + +### 目录名 + +- 使用中文或英文 +- 保持简洁明了 +- 示例:`开发指南/`、`dev-guide/` + +## 内容规范 + +### 语言风格 + +- 使用简洁明了的语言 +- 避免冗长的句子 +- 使用列表和表格组织信息 + +### 代码示例 + +- 提供完整可运行的代码示例 +- 添加必要的注释 +- 说明代码的用途和注意事项 + +### 更新记录 + +重要文档建议添加更新记录: + +```markdown +## 更新记录 + +- 2024-01-01: 初始版本 +- 2024-01-15: 添加新功能说明 +``` diff --git a/docs/开发指南/快速开始.md b/docs/开发指南/快速开始.md index 793416b..e088b42 100644 --- a/docs/开发指南/快速开始.md +++ b/docs/开发指南/快速开始.md @@ -1,56 +1,56 @@ -# 快速开始 - -## 环境要求 - -- Docker -- Docker Compose - -## 启动服务 - -```bash -cd /home/renjianbo/devops/mkdocs -docker-compose up -d -``` - -## 访问地址 - -- **本地访问**: http://localhost:8000 -- **服务器访问**: http://101.43.95.130:8000 - -## 编辑文档 - -1. 编辑 `docs/` 目录下的 Markdown 文件 -2. 保存后,页面会自动刷新(开发模式) -3. 在 `mkdocs.yml` 中配置导航结构 - -## 常用命令 - -### 启动服务 - -```bash -docker-compose up -d -``` - -### 停止服务 - -```bash -docker-compose down -``` - -### 查看日志 - -```bash -docker-compose logs -f -``` - -### 构建静态站点 - -```bash -docker-compose exec mkdocs mkdocs build -``` - -### 进入容器 - -```bash -docker exec -it mkdocs sh -``` +# 快速开始 + +## 环境要求 + +- Docker +- Docker Compose + +## 启动服务 + +```bash +cd /home/renjianbo/devops/mkdocs +docker-compose up -d +``` + +## 访问地址 + +- **本地访问**: http://localhost:8000 +- **服务器访问**: http://101.43.95.130:8000 + +## 编辑文档 + +1. 编辑 `docs/` 目录下的 Markdown 文件 +2. 保存后,页面会自动刷新(开发模式) +3. 在 `mkdocs.yml` 中配置导航结构 + +## 常用命令 + +### 启动服务 + +```bash +docker-compose up -d +``` + +### 停止服务 + +```bash +docker-compose down +``` + +### 查看日志 + +```bash +docker-compose logs -f +``` + +### 构建静态站点 + +```bash +docker-compose exec mkdocs mkdocs build +``` + +### 进入容器 + +```bash +docker exec -it mkdocs sh +``` diff --git a/docs/开发指南/项目结构.md b/docs/开发指南/项目结构.md index b126a3f..8e9b1c0 100644 --- a/docs/开发指南/项目结构.md +++ b/docs/开发指南/项目结构.md @@ -1,45 +1,45 @@ -# 项目结构 - -## 目录说明 - -``` -mkdocs/ -├── docker-compose.yml # Docker Compose 配置文件 -├── mkdocs.yml # MkDocs 配置文件 -├── docs/ # 文档源文件目录 -│ ├── index.md # 首页 -│ ├── 开发指南/ # 开发相关文档 -│ ├── DevOps平台/ # DevOps 工具文档 -│ ├── 技术文档/ # 技术文档 -│ └── 学习笔记/ # 学习笔记 -└── site/ # 构建后的静态站点(可选) -``` - -## 配置文件说明 - -### mkdocs.yml - -MkDocs 的主配置文件,包含: - -- 站点信息(名称、描述、作者等) -- 主题配置 -- 插件配置 -- 导航结构 -- Markdown 扩展 - -### docker-compose.yml - -Docker Compose 配置文件,定义: - -- 使用的镜像 -- 端口映射 -- 数据卷挂载 -- 环境变量 -- 健康检查 - -## 文档组织建议 - -1. **按主题分类**: 将相关文档放在同一目录下 -2. **命名规范**: 使用有意义的文件名 -3. **导航清晰**: 在 `mkdocs.yml` 中维护清晰的导航结构 -4. **版本控制**: 建议使用 Git 管理文档 +# 项目结构 + +## 目录说明 + +``` +mkdocs/ +├── docker-compose.yml # Docker Compose 配置文件 +├── mkdocs.yml # MkDocs 配置文件 +├── docs/ # 文档源文件目录 +│ ├── index.md # 首页 +│ ├── 开发指南/ # 开发相关文档 +│ ├── DevOps平台/ # DevOps 工具文档 +│ ├── 技术文档/ # 技术文档 +│ └── 学习笔记/ # 学习笔记 +└── site/ # 构建后的静态站点(可选) +``` + +## 配置文件说明 + +### mkdocs.yml + +MkDocs 的主配置文件,包含: + +- 站点信息(名称、描述、作者等) +- 主题配置 +- 插件配置 +- 导航结构 +- Markdown 扩展 + +### docker-compose.yml + +Docker Compose 配置文件,定义: + +- 使用的镜像 +- 端口映射 +- 数据卷挂载 +- 环境变量 +- 健康检查 + +## 文档组织建议 + +1. **按主题分类**: 将相关文档放在同一目录下 +2. **命名规范**: 使用有意义的文件名 +3. **导航清晰**: 在 `mkdocs.yml` 中维护清晰的导航结构 +4. **版本控制**: 建议使用 Git 管理文档 diff --git a/docs/技术文档/API文档.md b/docs/技术文档/API文档.md index bec83ba..f7c917b 100644 --- a/docs/技术文档/API文档.md +++ b/docs/技术文档/API文档.md @@ -1,78 +1,78 @@ -# API 文档 - -## Gerrit API - -### REST API - -Gerrit 提供 REST API 用于程序化访问。 - -**基础 URL**: `http://101.43.95.130:8082/a/` - -### 获取变更信息 - -```bash -curl http://101.43.95.130:8082/a/changes/12345 -``` - -### 获取项目列表 - -```bash -curl http://101.43.95.130:8082/a/projects/ -``` - -## Gitea API - -### REST API - -Gitea 提供完整的 REST API。 - -**基础 URL**: `http://101.43.95.130:3000/api/v1/` - -### 获取用户信息 - -```bash -curl -H "Authorization: token YOUR_TOKEN" \ - http://101.43.95.130:3000/api/v1/user -``` - -### 创建仓库 - -```bash -curl -X POST \ - -H "Authorization: token YOUR_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{"name":"my-repo"}' \ - http://101.43.95.130:3000/api/v1/user/repos -``` - -## MinIO API - -### S3 兼容 API - -MinIO 完全兼容 Amazon S3 API。 - -**端点**: `http://101.43.95.130:9000` - -### 使用 AWS CLI - -```bash -aws --endpoint-url http://101.43.95.130:9000 \ - s3 ls s3://my-bucket -``` - -## Drone API - -### REST API - -Drone 提供 REST API 用于管理构建和仓库。 - -**基础 URL**: `http://101.43.95.130:3000/api/` - -### 触发构建 - -```bash -curl -X POST \ - -H "Authorization: Bearer YOUR_TOKEN" \ - http://101.43.95.130:3000/api/repos/owner/name/builds -``` - +# API 文档 + +## Gerrit API + +### REST API + +Gerrit 提供 REST API 用于程序化访问。 + +**基础 URL**: `http://101.43.95.130:8082/a/` + +### 获取变更信息 + +```bash +curl http://101.43.95.130:8082/a/changes/12345 +``` + +### 获取项目列表 + +```bash +curl http://101.43.95.130:8082/a/projects/ +``` + +## Gitea API + +### REST API + +Gitea 提供完整的 REST API。 + +**基础 URL**: `http://101.43.95.130:3000/api/v1/` + +### 获取用户信息 + +```bash +curl -H "Authorization: token YOUR_TOKEN" \ + http://101.43.95.130:3000/api/v1/user +``` + +### 创建仓库 + +```bash +curl -X POST \ + -H "Authorization: token YOUR_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"name":"my-repo"}' \ + http://101.43.95.130:3000/api/v1/user/repos +``` + +## MinIO API + +### S3 兼容 API + +MinIO 完全兼容 Amazon S3 API。 + +**端点**: `http://101.43.95.130:9000` + +### 使用 AWS CLI + +```bash +aws --endpoint-url http://101.43.95.130:9000 \ + s3 ls s3://my-bucket +``` + +## Drone API + +### REST API + +Drone 提供 REST API 用于管理构建和仓库。 + +**基础 URL**: `http://101.43.95.130:3000/api/` + +### 触发构建 + +```bash +curl -X POST \ + -H "Authorization: Bearer YOUR_TOKEN" \ + http://101.43.95.130:3000/api/repos/owner/name/builds +``` + diff --git a/docs/技术文档/架构设计.md b/docs/技术文档/架构设计.md index 85d4867..dff8df2 100644 --- a/docs/技术文档/架构设计.md +++ b/docs/技术文档/架构设计.md @@ -1,58 +1,58 @@ -# 架构设计 - -## 系统架构 - -### 整体架构 - -``` -┌─────────────┐ -│ 用户 │ -└──────┬──────┘ - │ - ▼ -┌─────────────────────────────────────┐ -│ DevOps 平台 │ -├─────────────────────────────────────┤ -│ Gerrit │ Gitea │ Drone CI │ -│ (代码审查)│ (Git仓库)│ (CI/CD) │ -├─────────────────────────────────────┤ -│ MinIO │ Nexus │ MkDocs │ -│ (对象存储)│ (Maven) │ (知识库) │ -└─────────────────────────────────────┘ -``` - -## 服务说明 - -### 代码管理 - -- **Gerrit**: 代码审查和协作 -- **Gitea**: Git 仓库管理 - -### CI/CD - -- **Drone CI**: 持续集成和部署 - -### 存储服务 - -- **MinIO**: 对象存储,用于构建产物和文件 -- **Nexus**: Maven 仓库,用于依赖管理 - -### 文档服务 - -- **MkDocs**: 个人知识库和文档管理 - -## 技术栈 - -- **容器化**: Docker + Docker Compose -- **版本控制**: Git -- **CI/CD**: Drone -- **存储**: MinIO -- **文档**: MkDocs Material - -## 部署架构 - -所有服务使用 Docker Compose 部署,便于管理和维护。 - -## 数据持久化 - -所有服务的数据都存储在 Docker 卷中,确保数据持久化。 +# 架构设计 + +## 系统架构 + +### 整体架构 + +``` +┌─────────────┐ +│ 用户 │ +└──────┬──────┘ + │ + ▼ +┌─────────────────────────────────────┐ +│ DevOps 平台 │ +├─────────────────────────────────────┤ +│ Gerrit │ Gitea │ Drone CI │ +│ (代码审查)│ (Git仓库)│ (CI/CD) │ +├─────────────────────────────────────┤ +│ MinIO │ Nexus │ MkDocs │ +│ (对象存储)│ (Maven) │ (知识库) │ +└─────────────────────────────────────┘ +``` + +## 服务说明 + +### 代码管理 + +- **Gerrit**: 代码审查和协作 +- **Gitea**: Git 仓库管理 + +### CI/CD + +- **Drone CI**: 持续集成和部署 + +### 存储服务 + +- **MinIO**: 对象存储,用于构建产物和文件 +- **Nexus**: Maven 仓库,用于依赖管理 + +### 文档服务 + +- **MkDocs**: 个人知识库和文档管理 + +## 技术栈 + +- **容器化**: Docker + Docker Compose +- **版本控制**: Git +- **CI/CD**: Drone +- **存储**: MinIO +- **文档**: MkDocs Material + +## 部署架构 + +所有服务使用 Docker Compose 部署,便于管理和维护。 + +## 数据持久化 + +所有服务的数据都存储在 Docker 卷中,确保数据持久化。 diff --git a/docs/技术文档/部署文档.md b/docs/技术文档/部署文档.md index 17e1e73..0297793 100644 --- a/docs/技术文档/部署文档.md +++ b/docs/技术文档/部署文档.md @@ -1,160 +1,160 @@ -# 部署文档 - -## 环境要求 - -- **操作系统**: Linux (CentOS 7+) -- **Docker**: 20.10+ -- **Docker Compose**: 1.29+ -- **内存**: 建议 4GB+ -- **磁盘**: 建议 50GB+ - -## 部署步骤 - -### 1. 安装 Docker 和 Docker Compose - -```bash -# 安装 Docker -sudo yum install -y docker -sudo systemctl start docker -sudo systemctl enable docker - -# 安装 Docker Compose -sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose -sudo chmod +x /usr/local/bin/docker-compose -``` - -### 2. 克隆或创建项目目录 - -```bash -mkdir -p /home/renjianbo/devops -cd /home/renjianbo/devops -``` - -### 3. 启动各个服务 - -#### Gerrit - -```bash -cd gerrit -docker-compose up -d -``` - -#### Gitea - -```bash -cd gitea -docker-compose up -d -``` - -#### MinIO - -```bash -cd minio -docker-compose up -d -``` - -#### Nexus - -```bash -cd nexus -docker-compose up -d -``` - -#### Drone CI - -```bash -cd drone-ci -docker-compose up -d -``` - -#### MkDocs - -```bash -cd mkdocs -docker-compose up -d -``` - -### 4. 验证部署 - -```bash -# 检查所有容器状态 -docker ps - -# 检查端口监听 -netstat -tlnp | grep -E "8000|8082|3000|9000|8081" -``` - -## 配置说明 - -### 端口映射 - -- **Gerrit**: 8082 (HTTP), 29418 (SSH) -- **Gitea**: 3000 (HTTP), 222 (SSH) -- **MinIO**: 9000 (API), 9001 (Console) -- **Nexus**: 8081 (HTTP) -- **Drone CI**: 3000 (HTTP) -- **MkDocs**: 8000 (HTTP) - -### 数据持久化 - -所有服务的数据存储在 Docker 卷中,确保数据持久化。 - -## 备份和恢复 - -### 备份 - -```bash -# 备份所有数据 -cd /home/renjianbo/devops -./scripts/backup.sh -``` - -### 恢复 - -```bash -# 恢复数据 -cd /home/renjianbo/devops -./scripts/restore.sh -``` - -## 监控和维护 - -### 查看日志 - -```bash -# 查看特定服务日志 -cd /home/renjianbo/devops/<服务名> -docker-compose logs -f -``` - -### 更新服务 - -```bash -# 拉取最新镜像 -docker-compose pull - -# 重启服务 -docker-compose up -d -``` - -## 故障排查 - -### 端口冲突 - -如果端口被占用,修改 `docker-compose.yml` 中的端口映射。 - -### 权限问题 - -确保数据目录有正确的权限: - -```bash -sudo chown -R $USER:$USER /home/renjianbo/devops/*/data -``` - -### 容器无法启动 - -查看容器日志: - -```bash -docker logs <容器名> -``` +# 部署文档 + +## 环境要求 + +- **操作系统**: Linux (CentOS 7+) +- **Docker**: 20.10+ +- **Docker Compose**: 1.29+ +- **内存**: 建议 4GB+ +- **磁盘**: 建议 50GB+ + +## 部署步骤 + +### 1. 安装 Docker 和 Docker Compose + +```bash +# 安装 Docker +sudo yum install -y docker +sudo systemctl start docker +sudo systemctl enable docker + +# 安装 Docker Compose +sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose +``` + +### 2. 克隆或创建项目目录 + +```bash +mkdir -p /home/renjianbo/devops +cd /home/renjianbo/devops +``` + +### 3. 启动各个服务 + +#### Gerrit + +```bash +cd gerrit +docker-compose up -d +``` + +#### Gitea + +```bash +cd gitea +docker-compose up -d +``` + +#### MinIO + +```bash +cd minio +docker-compose up -d +``` + +#### Nexus + +```bash +cd nexus +docker-compose up -d +``` + +#### Drone CI + +```bash +cd drone-ci +docker-compose up -d +``` + +#### MkDocs + +```bash +cd mkdocs +docker-compose up -d +``` + +### 4. 验证部署 + +```bash +# 检查所有容器状态 +docker ps + +# 检查端口监听 +netstat -tlnp | grep -E "8000|8082|3000|9000|8081" +``` + +## 配置说明 + +### 端口映射 + +- **Gerrit**: 8082 (HTTP), 29418 (SSH) +- **Gitea**: 3000 (HTTP), 222 (SSH) +- **MinIO**: 9000 (API), 9001 (Console) +- **Nexus**: 8081 (HTTP) +- **Drone CI**: 3000 (HTTP) +- **MkDocs**: 8000 (HTTP) + +### 数据持久化 + +所有服务的数据存储在 Docker 卷中,确保数据持久化。 + +## 备份和恢复 + +### 备份 + +```bash +# 备份所有数据 +cd /home/renjianbo/devops +./scripts/backup.sh +``` + +### 恢复 + +```bash +# 恢复数据 +cd /home/renjianbo/devops +./scripts/restore.sh +``` + +## 监控和维护 + +### 查看日志 + +```bash +# 查看特定服务日志 +cd /home/renjianbo/devops/<服务名> +docker-compose logs -f +``` + +### 更新服务 + +```bash +# 拉取最新镜像 +docker-compose pull + +# 重启服务 +docker-compose up -d +``` + +## 故障排查 + +### 端口冲突 + +如果端口被占用,修改 `docker-compose.yml` 中的端口映射。 + +### 权限问题 + +确保数据目录有正确的权限: + +```bash +sudo chown -R $USER:$USER /home/renjianbo/devops/*/data +``` + +### 容器无法启动 + +查看容器日志: + +```bash +docker logs <容器名> +``` diff --git a/mkdocs.yml b/mkdocs.yml index 946394d..7c66b87 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,88 +1,91 @@ -site_name: 个人知识库 -site_description: 个人技术文档和知识管理平台 -site_author: renjianbo -site_url: http://101.43.95.130:8000/ - -# 主题配置 -theme: - name: material - palette: - # 浅色模式 - - scheme: default - primary: indigo - accent: indigo - toggle: - icon: material/brightness-7 - name: 切换到深色模式 - # 深色模式 - - scheme: slate - primary: indigo - accent: indigo - toggle: - icon: material/brightness-4 - name: 切换到浅色模式 - features: - - navigation.tabs - - navigation.sections - - navigation.expand - - navigation.top - - search.suggest - - search.highlight - - content.code.annotate - - content.code.copy - icon: - repo: fontawesome/brands/git-alt - -# 插件配置 -plugins: - - search - - minify: - minify_html: true - -# 导航配置 -nav: - - 首页: index.md - - 开发指南: - - 开发指南/快速开始.md - - 开发指南/项目结构.md - - 开发指南/开发规范.md - - DevOps平台: - - DevOps平台/Gerrit使用指南.md - - DevOps平台/Gitea使用指南.md - - DevOps平台/Drone CI使用指南.md - - DevOps平台/MinIO使用指南.md - - DevOps平台/Nexus使用指南.md - - 技术文档: - - 技术文档/架构设计.md - - 技术文档/API文档.md - - 技术文档/部署文档.md - - 学习笔记: - - 学习笔记/Java学习.md - - 学习笔记/前端学习.md - - 学习笔记/DevOps学习.md - - 学习笔记/gerrit上传代码详细指南.md - - 学习笔记/MkDocs 是什么.md - -# Markdown扩展 -markdown_extensions: - - pymdownx.highlight: - anchor_linenums: true - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.superfences: - custom_fences: - - name: mermaid - class: mermaid - format: !!python/name:pymdownx.superfences.fence_code_format - - admonition - - pymdownx.details - - pymdownx.tabbed: - alternate_style: true - - attr_list - - md_in_html - - toc: - permalink: true - -# 版权信息 -copyright: Copyright © 2024 renjianbo - +site_name: 个人知识库 +site_description: 个人技术文档和知识管理平台 +site_author: renjianbo +site_url: http://101.43.95.130:8000/ + +# 主题配置 +theme: + name: material + palette: + # 浅色模式 + - scheme: default + primary: indigo + accent: indigo + toggle: + icon: material/brightness-7 + name: 切换到深色模式 + # 深色模式 + - scheme: slate + primary: indigo + accent: indigo + toggle: + icon: material/brightness-4 + name: 切换到浅色模式 + features: + - navigation.tabs + - navigation.sections + - navigation.expand + - navigation.top + - search.suggest + - search.highlight + - content.code.annotate + - content.code.copy + icon: + repo: fontawesome/brands/git-alt + +# 插件配置 +plugins: + - search + - minify: + minify_html: true + +# 导航配置 +nav: + - 首页: index.md + - 开发指南: + - 开发指南/快速开始.md + - 开发指南/项目结构.md + - 开发指南/开发规范.md + - DevOps平台: + - DevOps平台/Gerrit使用指南.md + - DevOps平台/Gitea使用指南.md + - DevOps平台/Drone CI使用指南.md + - DevOps平台/MinIO使用指南.md + - DevOps平台/Nexus使用指南.md + - 技术文档: + - 技术文档/架构设计.md + - 技术文档/API文档.md + - 技术文档/部署文档.md + - 学习笔记: + - 学习笔记/Java学习.md + - 学习笔记/前端学习.md + - 学习笔记/DevOps学习.md + - 学习笔记/gerrit上传代码详细指南.md + - 学习笔记/gerrit分支规范.md + - 学习笔记/生成并配置SSH密钥、克隆仓库.md + - 学习笔记/git设置用户名和邮箱.md + - 学习笔记/git同步远程分支总结.md + - 学习笔记/MkDocs 是什么.md + +# Markdown扩展 +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - admonition + - pymdownx.details + - pymdownx.tabbed: + alternate_style: true + - attr_list + - md_in_html + - toc: + permalink: true + +# 版权信息 +copyright: Copyright © 2024 renjianbo diff --git a/使用说明.md b/使用说明.md index ae865af..de207dc 100644 --- a/使用说明.md +++ b/使用说明.md @@ -1,248 +1,248 @@ -# MkDocs 使用说明 - -## 📝 编辑方式说明 - -### ❌ 不支持在线编辑 - -**MkDocs 是一个静态文档生成工具,前端网站只能查看,不能在线编辑。** - -### ✅ 正确的使用方式 - -**需要编辑 Markdown 文件并放入对应目录,MkDocs 会自动生成网站。** - -## 🔄 工作流程 - -``` -编辑 Markdown 文件 → 保存文件 → MkDocs 自动检测变化 → 重新生成网站 → 浏览器自动刷新 -``` - -## 📖 详细使用步骤 - -### 方式一:在服务器上直接编辑(推荐用于快速修改) - -1. **SSH 连接到服务器** - - ```bash - ssh renjianbo@101.43.95.130 - ``` - -2. **编辑文档文件** - - ```bash - # 使用 vim 编辑 - vim /home/renjianbo/devops/mkdocs/docs/index.md - - # 或使用 nano - nano /home/renjianbo/devops/mkdocs/docs/index.md - ``` - -3. **保存文件后,MkDocs 会自动重新加载**(开发模式) - - - 无需重启服务 - - 浏览器刷新即可看到更新 - -### 方式二:本地开发后上传(推荐用于大量编辑) - -1. **在本地电脑上编辑** - - - 使用你喜欢的编辑器(VS Code、Typora、MarkText 等) - - 编辑 `docs/` 目录下的 Markdown 文件 - -2. **上传到服务器** - - ```bash - # 使用 scp 上传 - scp -r docs/ renjianbo@101.43.95.130:/home/renjianbo/devops/mkdocs/ - - # 或使用 rsync 同步 - rsync -avz docs/ renjianbo@101.43.95.130:/home/renjianbo/devops/mkdocs/docs/ - ``` - -3. **MkDocs 会自动检测变化并更新** - -### 方式三:使用 Git 管理(推荐用于团队协作) - -1. **在本地编辑并提交到 Git** - - ```bash - cd /home/renjianbo/devops/mkdocs - git add . - git commit -m "更新文档" - git push - ``` - -2. **在服务器上拉取更新** - - ```bash - ssh renjianbo@101.43.95.130 - cd /home/renjianbo/devops/mkdocs - git pull - ``` - -3. **MkDocs 会自动更新** - -## 📁 文件组织 - -### 目录结构 - -``` -docs/ -├── index.md # 首页 -├── 开发指南/ -│ ├── 快速开始.md -│ ├── 项目结构.md -│ └── 开发规范.md -├── DevOps平台/ -│ ├── Gerrit使用指南.md -│ ├── Gitea使用指南.md -│ └── ... -├── 技术文档/ -│ ├── 架构设计.md -│ └── ... -└── 学习笔记/ - ├── Java学习.md - └── ... -``` - -### 添加新文档 - -1. **创建 Markdown 文件** - - ```bash - # 例如:添加新的学习笔记 - touch /home/renjianbo/devops/mkdocs/docs/学习笔记/新主题.md - ``` - -2. **编辑文件内容** - - ```markdown - # 新主题 - - 这是新主题的内容... - ``` - -3. **在 mkdocs.yml 中添加导航** - - ```yaml - nav: - - 学习笔记: - - 学习笔记/Java学习.md - - 学习笔记/前端学习.md - - 学习笔记/新主题.md # 添加这一行 - ``` - -4. **保存后自动生效** - -## 🛠️ 常用编辑命令 - -### 查看现有文档 - -```bash -ls -la /home/renjianbo/devops/mkdocs/docs/ -``` - -### 编辑文档 - -```bash -# 使用 vim -vim /home/renjianbo/devops/mkdocs/docs/index.md - -# 使用 nano(更简单) -nano /home/renjianbo/devops/mkdocs/docs/index.md -``` - -### 创建新文档 - -```bash -# 创建新文件 -touch /home/renjianbo/devops/mkdocs/docs/新文档.md - -# 或直接编辑(如果不存在会自动创建) -nano /home/renjianbo/devops/mkdocs/docs/新文档.md -``` - -### 查看 MkDocs 日志(确认更新) - -```bash -docker logs -f mkdocs -``` - -## 💡 编辑技巧 - -### 1. 使用本地编辑器(推荐) - -在本地使用专业的 Markdown 编辑器: - -- **VS Code** + Markdown 插件 -- **Typora**(所见即所得) -- **MarkText**(开源免费) - -### 2. 实时预览 - -MkDocs 开发模式支持自动刷新: - -- 编辑文件并保存 -- 浏览器会自动刷新显示最新内容 -- 无需手动重启服务 - -### 3. 文件同步 - -如果需要在多台电脑上编辑: - -- 使用 Git 管理文档 -- 或使用 rsync/scp 同步文件 - -## 🔍 验证更新 - -编辑文件后,可以通过以下方式验证: - -1. **查看容器日志** - - ```bash - docker logs mkdocs | tail -20 - ``` - - 应该看到类似信息: - - ``` - INFO - Documentation built in 1.32 seconds - INFO - [时间] Serving on http://0.0.0.0:8000/ - ``` - -2. **刷新浏览器** - - - 访问 http://101.43.95.130:8000 - - 按 F5 或 Ctrl+R 刷新 - - 应该看到最新内容 - -## ❓ 常见问题 - -### Q: 为什么不能在前端网站直接编辑? - -A: MkDocs 是静态文档生成工具,它读取 Markdown 文件并生成静态 HTML 网站。前端只是展示,不提供编辑功能。 - -### Q: 如果我想在线编辑怎么办? - -A: 可以考虑以下方案: - -1. **使用 Wiki 系统**(如 Gitea 的 Wiki 功能) -2. **使用在线 Markdown 编辑器**(如 HackMD、StackEdit) -3. **使用 Git 工作流**(本地编辑 → Git 提交 → 服务器拉取) - -### Q: 编辑后多久能看到更新? - -A: 在开发模式下,保存文件后几秒钟内就会自动更新,刷新浏览器即可看到。 - -### Q: 需要重启服务吗? - -A: 不需要!MkDocs 开发模式会自动检测文件变化并重新生成网站。 - -## 📚 相关资源 - -- [Markdown 语法指南](https://www.markdownguide.org/) -- [MkDocs 官方文档](https://www.mkdocs.org/) -- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) - ---- - -**总结:MkDocs 需要编辑 Markdown 文件,不能在前端网站直接编辑。编辑文件后,MkDocs 会自动生成更新的网站。** +# MkDocs 使用说明 + +## 📝 编辑方式说明 + +### ❌ 不支持在线编辑 + +**MkDocs 是一个静态文档生成工具,前端网站只能查看,不能在线编辑。** + +### ✅ 正确的使用方式 + +**需要编辑 Markdown 文件并放入对应目录,MkDocs 会自动生成网站。** + +## 🔄 工作流程 + +``` +编辑 Markdown 文件 → 保存文件 → MkDocs 自动检测变化 → 重新生成网站 → 浏览器自动刷新 +``` + +## 📖 详细使用步骤 + +### 方式一:在服务器上直接编辑(推荐用于快速修改) + +1. **SSH 连接到服务器** + + ```bash + ssh renjianbo@101.43.95.130 + ``` + +2. **编辑文档文件** + + ```bash + # 使用 vim 编辑 + vim /home/renjianbo/devops/mkdocs/docs/index.md + + # 或使用 nano + nano /home/renjianbo/devops/mkdocs/docs/index.md + ``` + +3. **保存文件后,MkDocs 会自动重新加载**(开发模式) + + - 无需重启服务 + - 浏览器刷新即可看到更新 + +### 方式二:本地开发后上传(推荐用于大量编辑) + +1. **在本地电脑上编辑** + + - 使用你喜欢的编辑器(VS Code、Typora、MarkText 等) + - 编辑 `docs/` 目录下的 Markdown 文件 + +2. **上传到服务器** + + ```bash + # 使用 scp 上传 + scp -r docs/ renjianbo@101.43.95.130:/home/renjianbo/devops/mkdocs/ + + # 或使用 rsync 同步 + rsync -avz docs/ renjianbo@101.43.95.130:/home/renjianbo/devops/mkdocs/docs/ + ``` + +3. **MkDocs 会自动检测变化并更新** + +### 方式三:使用 Git 管理(推荐用于团队协作) + +1. **在本地编辑并提交到 Git** + + ```bash + cd /home/renjianbo/devops/mkdocs + git add . + git commit -m "更新文档" + git push + ``` + +2. **在服务器上拉取更新** + + ```bash + ssh renjianbo@101.43.95.130 + cd /home/renjianbo/devops/mkdocs + git pull + ``` + +3. **MkDocs 会自动更新** + +## 📁 文件组织 + +### 目录结构 + +``` +docs/ +├── index.md # 首页 +├── 开发指南/ +│ ├── 快速开始.md +│ ├── 项目结构.md +│ └── 开发规范.md +├── DevOps平台/ +│ ├── Gerrit使用指南.md +│ ├── Gitea使用指南.md +│ └── ... +├── 技术文档/ +│ ├── 架构设计.md +│ └── ... +└── 学习笔记/ + ├── Java学习.md + └── ... +``` + +### 添加新文档 + +1. **创建 Markdown 文件** + + ```bash + # 例如:添加新的学习笔记 + touch /home/renjianbo/devops/mkdocs/docs/学习笔记/新主题.md + ``` + +2. **编辑文件内容** + + ```markdown + # 新主题 + + 这是新主题的内容... + ``` + +3. **在 mkdocs.yml 中添加导航** + + ```yaml + nav: + - 学习笔记: + - 学习笔记/Java学习.md + - 学习笔记/前端学习.md + - 学习笔记/新主题.md # 添加这一行 + ``` + +4. **保存后自动生效** + +## 🛠️ 常用编辑命令 + +### 查看现有文档 + +```bash +ls -la /home/renjianbo/devops/mkdocs/docs/ +``` + +### 编辑文档 + +```bash +# 使用 vim +vim /home/renjianbo/devops/mkdocs/docs/index.md + +# 使用 nano(更简单) +nano /home/renjianbo/devops/mkdocs/docs/index.md +``` + +### 创建新文档 + +```bash +# 创建新文件 +touch /home/renjianbo/devops/mkdocs/docs/新文档.md + +# 或直接编辑(如果不存在会自动创建) +nano /home/renjianbo/devops/mkdocs/docs/新文档.md +``` + +### 查看 MkDocs 日志(确认更新) + +```bash +docker logs -f mkdocs +``` + +## 💡 编辑技巧 + +### 1. 使用本地编辑器(推荐) + +在本地使用专业的 Markdown 编辑器: + +- **VS Code** + Markdown 插件 +- **Typora**(所见即所得) +- **MarkText**(开源免费) + +### 2. 实时预览 + +MkDocs 开发模式支持自动刷新: + +- 编辑文件并保存 +- 浏览器会自动刷新显示最新内容 +- 无需手动重启服务 + +### 3. 文件同步 + +如果需要在多台电脑上编辑: + +- 使用 Git 管理文档 +- 或使用 rsync/scp 同步文件 + +## 🔍 验证更新 + +编辑文件后,可以通过以下方式验证: + +1. **查看容器日志** + + ```bash + docker logs mkdocs | tail -20 + ``` + + 应该看到类似信息: + + ``` + INFO - Documentation built in 1.32 seconds + INFO - [时间] Serving on http://0.0.0.0:8000/ + ``` + +2. **刷新浏览器** + + - 访问 http://101.43.95.130:8000 + - 按 F5 或 Ctrl+R 刷新 + - 应该看到最新内容 + +## ❓ 常见问题 + +### Q: 为什么不能在前端网站直接编辑? + +A: MkDocs 是静态文档生成工具,它读取 Markdown 文件并生成静态 HTML 网站。前端只是展示,不提供编辑功能。 + +### Q: 如果我想在线编辑怎么办? + +A: 可以考虑以下方案: + +1. **使用 Wiki 系统**(如 Gitea 的 Wiki 功能) +2. **使用在线 Markdown 编辑器**(如 HackMD、StackEdit) +3. **使用 Git 工作流**(本地编辑 → Git 提交 → 服务器拉取) + +### Q: 编辑后多久能看到更新? + +A: 在开发模式下,保存文件后几秒钟内就会自动更新,刷新浏览器即可看到。 + +### Q: 需要重启服务吗? + +A: 不需要!MkDocs 开发模式会自动检测文件变化并重新生成网站。 + +## 📚 相关资源 + +- [Markdown 语法指南](https://www.markdownguide.org/) +- [MkDocs 官方文档](https://www.mkdocs.org/) +- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) + +--- + +**总结:MkDocs 需要编辑 Markdown 文件,不能在前端网站直接编辑。编辑文件后,MkDocs 会自动生成更新的网站。** diff --git a/部署说明.md b/部署说明.md index ce90697..365ebda 100644 --- a/部署说明.md +++ b/部署说明.md @@ -1,217 +1,217 @@ -# MkDocs 个人知识库部署说明 - -## 📋 简介 - -MkDocs 是一个基于 Markdown 的文档生成工具,使用 Material 主题提供美观的文档界面。 - -## 🚀 快速开始 - -### 1. 启动服务 - -```bash -cd /home/renjianbo/devops/mkdocs -docker-compose up -d -``` - -### 2. 访问地址 - -- **本地访问**: http://localhost:8000 -- **服务器访问**: http://101.43.95.130:8000 - -### 3. 查看日志 - -```bash -docker-compose logs -f -``` - -## 📁 目录结构 - -``` -mkdocs/ -├── docker-compose.yml # Docker Compose 配置 -├── mkdocs.yml # MkDocs 配置文件 -├── docs/ # 文档源文件目录 -│ ├── index.md # 首页 -│ ├── 开发指南/ # 开发相关文档 -│ ├── DevOps平台/ # DevOps 工具文档 -│ ├── 技术文档/ # 技术文档 -│ └── 学习笔记/ # 学习笔记 -└── site/ # 构建后的静态站点(可选) -``` - -## ✏️ 编辑文档 - -### 添加新文档 - -1. 在 `docs/` 目录下创建 Markdown 文件 -2. 在 `mkdocs.yml` 的 `nav` 部分添加导航项 -3. 保存后,页面会自动刷新(开发模式) - -### 编辑现有文档 - -直接编辑 `docs/` 目录下的 Markdown 文件,保存后自动刷新。 - -### 示例:添加新章节 - -1. 创建文件 `docs/新章节/内容.md` -2. 在 `mkdocs.yml` 中添加: - -```yaml -nav: - - 新章节: - - 新章节/内容.md -``` - -## 🔧 常用命令 - -### 启动服务 - -```bash -docker-compose up -d -``` - -### 停止服务 - -```bash -docker-compose down -``` - -### 重启服务 - -```bash -docker-compose restart -``` - -### 查看日志 - -```bash -docker-compose logs -f -``` - -### 构建静态站点 - -```bash -docker-compose exec mkdocs mkdocs build -``` - -构建后的静态文件会生成在 `site/` 目录。 - -### 进入容器 - -```bash -docker exec -it mkdocs sh -``` - -## 📝 配置说明 - -### 修改站点信息 - -编辑 `mkdocs.yml` 文件: - -```yaml -site_name: 个人知识库 -site_description: 个人技术文档和知识管理平台 -site_author: renjianbo -site_url: http://101.43.95.130:8000/ -``` - -### 修改主题 - -在 `mkdocs.yml` 的 `theme` 部分修改主题配置。 - -### 添加插件 - -在 `mkdocs.yml` 的 `plugins` 部分添加插件。 - -## 🎨 功能特性 - -- ✅ **Material 主题**: 美观现代的界面 -- ✅ **全文搜索**: 快速查找内容 -- ✅ **响应式设计**: 支持各种设备 -- ✅ **深色模式**: 支持主题切换 -- ✅ **代码高亮**: 支持多种编程语言 -- ✅ **数学公式**: 支持 LaTeX 公式 -- ✅ **流程图**: 支持 Mermaid 流程图 - -## 📚 使用技巧 - -### 代码块 - -使用三个反引号包裹代码,并指定语言: - -```markdown -```python -def hello(): - print("Hello, World!") -``` - -``` -### 表格 - -```markdown -| 列1 | 列2 | 列3 | -|-----|-----|-----| -| 值1 | 值2 | 值3 | -``` - -### 图片 - -将图片放在 `docs/images/` 目录,使用相对路径: - -```markdown -![图片描述](images/example.png) -``` - -### 内部链接 - -```markdown -[链接文本](../其他文档.md) -``` - -### 外部链接 - -```markdown -[链接文本](https://example.com) -``` - -## 🔍 故障排查 - -### 端口被占用 - -如果端口 8000 被占用,修改 `docker-compose.yml` 中的端口映射: - -```yaml -ports: - - "8001:8000" # 改为其他端口 -``` - -### 页面不更新 - -1. 检查文件是否保存 -2. 查看容器日志:`docker-compose logs mkdocs` -3. 重启服务:`docker-compose restart` - -### 权限问题 - -确保文件有正确的权限: - -```bash -chown -R renjianbo:renjianbo /home/renjianbo/devops/mkdocs -``` - -## 📖 相关资源 - -- [MkDocs 官方文档](https://www.mkdocs.org/) -- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) -- [Markdown 语法指南](https://www.markdownguide.org/) - -## 💡 最佳实践 - -1. **定期备份**: 定期备份 `docs/` 目录和 `mkdocs.yml` -2. **版本控制**: 使用 Git 管理文档 -3. **文档组织**: 按主题分类组织文档 -4. **保持更新**: 定期更新文档内容 - ---- - -**开始编写你的文档吧!** 📝 +# MkDocs 个人知识库部署说明 + +## 📋 简介 + +MkDocs 是一个基于 Markdown 的文档生成工具,使用 Material 主题提供美观的文档界面。 + +## 🚀 快速开始 + +### 1. 启动服务 + +```bash +cd /home/renjianbo/devops/mkdocs +docker-compose up -d +``` + +### 2. 访问地址 + +- **本地访问**: http://localhost:8000 +- **服务器访问**: http://101.43.95.130:8000 + +### 3. 查看日志 + +```bash +docker-compose logs -f +``` + +## 📁 目录结构 + +``` +mkdocs/ +├── docker-compose.yml # Docker Compose 配置 +├── mkdocs.yml # MkDocs 配置文件 +├── docs/ # 文档源文件目录 +│ ├── index.md # 首页 +│ ├── 开发指南/ # 开发相关文档 +│ ├── DevOps平台/ # DevOps 工具文档 +│ ├── 技术文档/ # 技术文档 +│ └── 学习笔记/ # 学习笔记 +└── site/ # 构建后的静态站点(可选) +``` + +## ✏️ 编辑文档 + +### 添加新文档 + +1. 在 `docs/` 目录下创建 Markdown 文件 +2. 在 `mkdocs.yml` 的 `nav` 部分添加导航项 +3. 保存后,页面会自动刷新(开发模式) + +### 编辑现有文档 + +直接编辑 `docs/` 目录下的 Markdown 文件,保存后自动刷新。 + +### 示例:添加新章节 + +1. 创建文件 `docs/新章节/内容.md` +2. 在 `mkdocs.yml` 中添加: + +```yaml +nav: + - 新章节: + - 新章节/内容.md +``` + +## 🔧 常用命令 + +### 启动服务 + +```bash +docker-compose up -d +``` + +### 停止服务 + +```bash +docker-compose down +``` + +### 重启服务 + +```bash +docker-compose restart +``` + +### 查看日志 + +```bash +docker-compose logs -f +``` + +### 构建静态站点 + +```bash +docker-compose exec mkdocs mkdocs build +``` + +构建后的静态文件会生成在 `site/` 目录。 + +### 进入容器 + +```bash +docker exec -it mkdocs sh +``` + +## 📝 配置说明 + +### 修改站点信息 + +编辑 `mkdocs.yml` 文件: + +```yaml +site_name: 个人知识库 +site_description: 个人技术文档和知识管理平台 +site_author: renjianbo +site_url: http://101.43.95.130:8000/ +``` + +### 修改主题 + +在 `mkdocs.yml` 的 `theme` 部分修改主题配置。 + +### 添加插件 + +在 `mkdocs.yml` 的 `plugins` 部分添加插件。 + +## 🎨 功能特性 + +- ✅ **Material 主题**: 美观现代的界面 +- ✅ **全文搜索**: 快速查找内容 +- ✅ **响应式设计**: 支持各种设备 +- ✅ **深色模式**: 支持主题切换 +- ✅ **代码高亮**: 支持多种编程语言 +- ✅ **数学公式**: 支持 LaTeX 公式 +- ✅ **流程图**: 支持 Mermaid 流程图 + +## 📚 使用技巧 + +### 代码块 + +使用三个反引号包裹代码,并指定语言: + +```markdown +```python +def hello(): + print("Hello, World!") +``` + +``` +### 表格 + +```markdown +| 列1 | 列2 | 列3 | +|-----|-----|-----| +| 值1 | 值2 | 值3 | +``` + +### 图片 + +将图片放在 `docs/images/` 目录,使用相对路径: + +```markdown +![图片描述](images/example.png) +``` + +### 内部链接 + +```markdown +[链接文本](../其他文档.md) +``` + +### 外部链接 + +```markdown +[链接文本](https://example.com) +``` + +## 🔍 故障排查 + +### 端口被占用 + +如果端口 8000 被占用,修改 `docker-compose.yml` 中的端口映射: + +```yaml +ports: + - "8001:8000" # 改为其他端口 +``` + +### 页面不更新 + +1. 检查文件是否保存 +2. 查看容器日志:`docker-compose logs mkdocs` +3. 重启服务:`docker-compose restart` + +### 权限问题 + +确保文件有正确的权限: + +```bash +chown -R renjianbo:renjianbo /home/renjianbo/devops/mkdocs +``` + +## 📖 相关资源 + +- [MkDocs 官方文档](https://www.mkdocs.org/) +- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) +- [Markdown 语法指南](https://www.markdownguide.org/) + +## 💡 最佳实践 + +1. **定期备份**: 定期备份 `docs/` 目录和 `mkdocs.yml` +2. **版本控制**: 使用 Git 管理文档 +3. **文档组织**: 按主题分类组织文档 +4. **保持更新**: 定期更新文档内容 + +--- + +**开始编写你的文档吧!** 📝