📚
handbook
  • Introduction
  • 1.前言
    • 前言
    • 鸣谢
  • 2.环境篇
    • 工具部署和使用
      • 团队协作工具
        • Confluence
      • 开发工具
        • Docker
          • 镜像导入导出
          • 安装
        • Docker Compose
      • 持续集成工具
        • Gerrit
        • Sonarqube
          • 分析参数设定
          • Prerequisite
          • 服务端设置
        • Ubuntu Ci Deploy
          • ubuntu使用docker部署jenkins+sonarqube
        • 持续集成部署
      • 文本编辑工具
        • Gitbook相关注意事项
        • Markdown快速入门
      • 版本控制
        • Git
          • 1.基础
            • Git基础(一)
            • Git基础(二)
            • Git基础(三)
            • Git基础(四)
            • Git基础(五)
          • 2.命令详解
            • 命令速查
          • 3.进阶技巧
            • git技巧
      • 自动化测试工具
        • Appium
          • capability参数配置
          • 安装
          • 简介
      • 项目管理工具
        • Jira
    • 开发环境配置
      • 通用
        • Homebrew安装与使用
        • Git服务器添加SSH Key
        • koroFileHeader使用
        • nodejs与npm的安装
        • npm更换国内源
        • pip使用相关
        • PostgreSQL安装与使用
        • proxychain安装与使用
        • shell配置环境变量
        • snapd安装与使用
        • terminal走代理
    • 快捷键速查
      • shell常用快捷键
  • 3.语言篇
    • C
      • 代码规范
      • 语言技巧
    • Cpp
      • 代码规范
      • 基础知识
        • 理解C++中的左值和右值
      • 语言技巧
        • 并发编程
          • 简单的线程池实现
    • Golang
      • 代码规范
        • 避免使用转义字符串
        • 避免参数语义不明确
        • 嵌套式结构体
        • 函数的分组与顺序
        • 函数命名
        • 声明一致性
        • 导入别名
        • 使用字段名初始化结构体
        • 本地变量声明
        • map初始化
        • nil用法
        • 包命名
        • 命名Printf样式的函数
        • 减少嵌套
        • 缩小变量作用域
        • struct引用初始化
        • 测试表声明
        • 顶层变量声明
        • 不必要的else
      • 环境配置
        • 代码检查格式化工具
          • Go Fmt
          • Goimports
          • Golint
          • Go Vet
        • go mod详解
        • golang安装
        • Golang开发环境
        • Troubleshooting
      • 语言技巧
        • 如何分包
    • Java
      • 代码规范
      • 语言技巧
        • 注解编程
        • 动态代理
    • Js
      • 语言技巧
        • Rollup
    • Kotlin
      • 基础知识
        • 写给开发者Kotlin指引(一)
        • 写给开发者Kotlin指引(二)
    • Python
      • 语言技巧
        • Best Practice Of Python S Project Structure
  • 4.规范篇
    • Git message规范
  • 5.技术篇
    • Android技术
      • Hook
        • EdXposed例子
        • Android 10 上安装Magisk和EdXposed
      • Tinker
        • 1.Tinker及其使用
      • 准备
        • ADB连接设备步骤及注意事项
        • adb连接设备
        • aosp编译
      • 基础
        • Binder接口调用的鉴权方法
        • Make 及 Android 编译系统介绍
        • 使用Content Provider为其他应用提供数据
      • 源码阅读
        • Framework源码分析 Looper Handler
        • Framework源码分析 启动流程 ServiceManager的初始化
        • Framework源码分析 启动流程 Zygote启动SystemServer
    • JS Bridge
      • JSBridge初探
    • Kernel技术
      • kallsyms子系统
    • Test技术
      • 软件测试
        • jnekin+sonar 部署 问题总结
        • 性能测试基础
        • 软件测试的背景
        • 测试基础
        • 测试人员的核心竞争力
    • 操作系统原理
      • 处理器如何实现原子操作
Powered by GitBook
On this page
  • 一、Gitbook文档编写环境搭建
  • 1.1 gitbook环境搭建
  • 1.2 calibre安装
  • 1.3 编辑器选择
  • 二、文档编写格式规定
  • 2.1 标题
  • 2.2 html特性的使用
  • 三、Markdown注意
  • 四、开发准则
  • 五、关于SUMMARY.md的自动生成

Was this helpful?

  1. 2.环境篇
  2. 工具部署和使用
  3. 文本编辑工具

Gitbook相关注意事项

Previous文本编辑工具NextMarkdown快速入门

Last updated 4 years ago

Was this helpful?

一、Gitbook文档编写环境搭建

1.1 gitbook环境搭建

  1. 安装nodejs以及npm,参考;

  2. 安装proxychains-ng用于终端走代理,参考。如果您不想安装proxychains-ng,可以参考进行设置;

  3. npm install gitbook-cli -g安装gitbook-cli用于管理gitbook的版本;

  4. gitbook fetch 3.2.3安装gitbook的3.2.3版本;

如果没有代理,那么可以将npm替换为国内源,参考。

1.2 calibre安装

calibre提供了ebook-converter,用于将gitbook生成pdf。Ubuntu安装命令:sudo aptitude install calibre,Mac OS和Windows直接用安装包安装即可,Mac OS也可以使用brew cask install calibre安装。

1.3 编辑器选择

建议使用VS Code作为gitbook的编辑器,VS Code插件丰富且社区十分活跃,推荐使用。

二、文档编写格式规定

2.1 标题

  1. 以# 一级标题格式作为标题;

  2. 以## 一、xxx格式作为正文一级标题;

  3. 以### 1.x xxx作为正文二级标题;

  4. 以#### 1.1.x xxx作为正文三级标题;

  5. 禁止使用三级以上标题。

2.2 html特性的使用

html代码需要保持良好的缩进,便于日后修改。例如:

<table>
    <thead>
        <tr>
            <th>Bad</th>
            <th>Good</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <code>
                // 应该足以满足任何情况!<br>
                c := make(chan int, 64)
                </code>
            </td>
            <td>
                <code>
                // 大小:1<br>
                c := make(chan int, 1) // 或者<br>
                // 无缓冲 channel,大小为 0<br>
                c := make(chan int)
                </code>
            </td>
        </tr>
    </tbody>
</table>

该段代码在gitbook中效果如下:

Bad

Good

// 应该足以满足任何情况! c := make(chan int, 64)

// 大小:1 c := make(chan int, 1) // 或者 // 无缓冲 channel,大小为 0 c := make(chan int)

三、Markdown注意

  1. 在每一级标题之间要空一行,否则gitbook pdf生成的pdf排版有问题,例如:

    ## 一、这是二级标题
    
    内容要与二级标题空一行。
    
    ## 二、这是第二个二级标题,内容要与上面空一行(not necessary,but recommend 😊 )
  2. 在描述键盘快捷键时,使用<kbd>Ctrl</kbd>标签将快捷键包裹,效果:Ctrl。

  3. 在使用序号表示小节时,要在.后面空一格。当描述的内容属于这一小节时,内容要进行一个<kbd>Tab</kbd>的缩进,否则你所写的内容就会与小节处于同级。节与节之间不需要空一行。例如:

    1. 第一点
       第一点主要说明了。。。
    2. 第二点
  4. 在markdown里面,没有换行的概念。只有通过一行空格来区分段。例如:

    这是一句话。
    尝试换行。

    以上写法会被markdown认为是一行,实际显示效果如下:

    这是一句话。尝试换行。

    如果想要换行,加一个空白行,例如:

    这是一句话。
    
    尝试换行。
  5. front-matter用于表示markdown文件的matadata,格式如下:

    ---
    title: android内核编译
    date: 2020-11-20
    ---

    这个格式很好懂,就不多解释了,类似于ymal(冒号后面注意空一格,要求和yaml一样)。front-matter只能位于文件的最前端,所有注释都不能加在front-matter之前。例如:

    <!--
     * @Author: Rodney Cheung
     * @Date: 2020-04-24 15:16:29
     * @LastEditors: Sphantix Hang
     * @LastEditTime: 2020-11-10 15:00:19
     * @FilePath: /HandBook/environment/tools_deploy/ci/ci_deploy.md
    -->
    🙅 don't add any content before front-matter
    ---
    title: android内核编译
    date: 2020-11-20
    ---
  6. 在标注代码块时,尽量带上代码的语言,这样markdown在渲染时会有高亮,看起来比较美观。例如:

    ```cpp

四、开发准则

  1. 在clone项目后,首先修改项目的配置。

     git config user.name <your name>
     git config user.email <your email>

    名字和邮箱应为github的primary email,如果使用全局的邮箱提交,在github上无法显示本人提交。

  2. 在开发时,为了避免冲突,每次都应在master分支执行git pull,再切换自己的branch,并执行git merge master,合并master分支的修改。

  3. 提交代码是,commit msg应为以下格式:

     Develop | <your commit msg> //添加新的文档
     Maintain | <your commit msg> //修改文档
  4. 在提交之前,请在项目根目录使用gitbook pdf生成pdf文件,并至少检查修改部分是否显示正确。

五、关于SUMMARY.md的自动生成

经过研究,有现成的解决方案。下面简述步骤:

  1. npm install -g gitbook-summary
  2. 在目录中的README.md会作为该目录章节的链接(所以所有目录中介绍该目录内容的文件应该为README.md)

  3. 前文讲述了front-matter,里面的title的值将作为SUMMARY.md中的标题名。(所以每个文件都应该指定front-matter,至少应该包含title字段)

  4. 在Handbook根目录运行以下命令:

    book sm

在clone前,推荐将公钥先添加到Github,避免每次push都需要输入账号密码,添加公钥的方法参考。

安装gitbook-summary(需要)

该解决方案地址在,感兴趣的可以研究一下。

nodejs与npm安装
proxychain安装与使用
terminal走代理
npm替换国内源
koroFileHeader
github添加公钥
nodejs
这里