在线电子书创建:MkDocs + Github + ReadTheDocs

news2024/11/29 11:43:12

MkDocs是一个静态站点生成器,可用于构建项目文档。文档文件使用Markdown语法编写,本文记录如何使用MkDocs生成项目文档,并部署到Read the Docs上。

目录

  • 安装mkdocs
  • 搭建文档项目
    • 创建项目
    • 启动项目
    • 编写文档
      • Markdown语法
      • 站内链接
      • 图片
    • 文档结构
  • 配置文档项目
    • 项目信息
    • 更改图标
    • 主题配置
  • 部署文档到readthedocs
    • 准备github项目
    • 注册登录Read the Docs
    • 导入github项目到 Read the Docs

安装mkdocs

先在本地搭建MkDocs站点。

安装Python虚拟环境,我电脑Python环境是使用Anaconda安装的,使用conda命令创建一个虚拟环境:

$ conda create  --prefix=python38 python=3.8
$ conda activate C:\Users\10287\python38

在虚拟环境python38中使用pip命令安装mkdocs:

$ pip install mkdocs
$ mkdocs --version
mkdocs, version 1.4.3 from C:\Users\10287\python38\lib\site-packages\mkdocs (Python 3.8)

搭建文档项目

创建项目

创建博客项目

$ D:\ProgramWorkspace\blog
$ mkdocs new mkdocsProject

创建完成后目录结构如下:

D:\PROGRAMWORKSPACE\BLOG\MKDOCSPROJECT
│  mkdocs.yml
│
└─docs
        index.md

mkdocs.yml 为配置文件

docs目录中存放Markdown文档及文档图片。index.md 文件为博客的索引页。

启动项目

启动服务:

$ cd D:\ProgramWorkspace\blog\mkdocsProject
$ mkdocs serve
INFO     -  Building documentation...
INFO     -  Cleaning site directory
INFO     -  Documentation built in 0.11 seconds
INFO     -  [17:45:25] Watching paths for changes: 'docs', 'mkdocs.yml'
INFO     -  [17:45:25] Serving on http://127.0.0.1:8000/

浏览器打开http://127.0.0.1:8000/,将会显示如下页面:

编写文档

Markdown语法

博客文章使用Markdown语法编写,基本语法介绍可参考markdown基本语法介绍。

MkDocs的文章标题默认使用第一行的一级标题。

站内链接

MkDocs可以通过Markdown链接来实现站内链接文档:

请查看 [关于我](about/about.md) 获取我的联系方式。

图片

使用Markdown图像语法在文档中添加图片:

![Screenshot](about/wechat.png)

文档结构

假设文档目录结构如下:

D:\PROGRAMWORKSPACE\BLOG\MKDOCSPROJECT
│  mkdocs.yml
└─docs
    │  index.md
    ├─about
    │  │  about.md
    │  │
    │  └─about
    │          wechat.png
    ├─img
    │      favicon.ico 
    └─python
        │  python-library-for-json.md
        │
        └─python-library-for-json
                json_dump.png

mkdocs.yml 配置文件的nav中设置文章布局:

nav: 
    - 主页: index.md    
    - python:
        - "Python json文件读写": python/python-library-for-json.md    
    - 关于我: about/about.md

效果如下图:

配置文档项目

项目信息

站点名称:

site_name: My Docs
# site_url: http://127.0.0.1:8000
repo_url: https://github.com/example/repository/  # 仓库地址
repo_name: GitHub # 仓库名称
edit_uri: blob/main/docs/ # 编辑路径
site_description: # 站点描述
site_author: # 作者
copyright: # 版权声明

更改图标

可以修改MkDocs使用的默认图标,在docs目录中创建一个img子目录,然后将自定义favicon.ico文件复制到该目录中。MkDocs将自动检测并使用该文件作为你的图标。

D:\PROGRAMWORKSPACE\BLOG\MKDOCSPROJECT
│  mkdocs.yml
└─docs
    │  index.md    
    └─img
            favicon.ico

主题配置

mkdocs默认有两个主题:

  • mkdocs,默认主题

  • readthedocs

theme: readthedocs
# theme: mkdocs

mkdocs主题配置:

theme: 
    name: mkdocs
    highlightjs: true
    hljs_languages:
        - yaml
    analytics:
        gtag: G-ABC123
    shortcuts:       # 快捷键
        help: 191    # ?
        next: 78     # n
        previous: 80 # p
        search: 83   # s
    navigation_depth: 2 # 侧边栏导航标题最大层级
    nav_style: primary     # 顶部导航栏样式,可设置为 primary、dark 或者 light
    locale: zh_CN # 语言配置,需要安装mkdocs[i18n]:pip install mkdocs[i18n]

readthedocs主题配置:

theme: 
    name: readthedocs
    highlightjs: true
    hljs_languages:
        - yaml
        - rust
    analytics:
        gtag: G-ABC123
    include_homepage_in_sidebar: True  # 在侧边栏菜单中列出主页。
    prev_next_buttons_location: both # 设置 “Next” 和 “Previous” 按钮的位置:bottom, top, both , or none
    navigation_depth: 4 # 侧边栏导航标题最大层级,默认4
    collapse_navigation: True # 只在当前页面的侧边栏中包含页面标题。
    titles_only: False # 只在侧边栏中包括文章标题,不包括所有子标题。默认值:False。
    sticky_navigation: True #侧边栏在滚动页面时随主页内容滚动
    locale: zh_CN # 语言配置,需要安装mkdocs[i18n]:pip install mkdocs[i18n]

第三方主题参考这里:https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes

更多功能配置方法请参考官方文档:https://www.mkdocs.org/

部署文档到readthedocs

前面介绍的只是在本地运行,如果需要让其他人可以访问,需要部署到云服务器上,部署方式有很多,这里介绍如何部署到Read the Docs上。

准备github项目

登录github,创建一个公开项目mkdocsDemo:

在项目根目录打开git bash执行如下命令将博客push到新创建的github仓库:

git init
git add --all
git commit -m "mkdocs demo"
git branch -M main
git remote add origin https://github.com/hiyongz/mkdocsDemo.git
git push -u origin main

注册登录Read the Docs

Read the Docs注册地址:https://readthedocs.org/accounts/signup/

Read the Docs登录成功后的页面:

导入github项目到 Read the Docs

点击“导入一个项目”

点击添加创建的github项目

点击“下一页”

点击【管理】,进入高级设置,设置文档类型为Mkdocs,Python解释器选择CPython 2.x:

点击“Build version”构建版本

等待构建完成…

点击“阅读文档”,会跳转到文档页面

只要本地提交修改到GitHub项目,就会自动构建更新文档。

--THE END--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626324.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚观早报 | 苹果收购AR头显初创公司Mira;抖音将尝试自营电商

今日要闻:苹果收购AR头显初创公司Mira;抖音将尝试自营电商;特斯拉股价实现九连涨;《黑镜》主创曾试用ChatGPT写剧本;携程集团发布2023Q1财报 苹果收购AR头显初创公司Mira 6 月 7 日消息,据 The Verge 报道…

2023免费电脑录视频软件Camtasia

Camtasia 2023是专业又好用的录屏软件,既可以用来录视频、ppt、直播课程等,也能够处理视频,添加各种效果,制作出更加满意的视频作品。Camtasia凭借愈发强大的功能收获了一大批忠实用户和如潮好评,已成为屏幕录制的必备…

6.16 @ 广州丨相约泛娱乐出海论坛,探寻市场突围的核心要义

1979 年,“出国办企业”第一次被有关部门提出,开启了中国企业对外投资的积极探索与尝试。经过 40 多年的耕耘,不少出海品牌已经站稳了脚跟,品牌影响力与日俱增,甚至在部分核心细分赛道上,中国企业凸显出了明…

TiDB 7.1 LTS 发版:为关键业务提供业务稳定性和多租户场景支持

近日,企业级开源分布式数据库厂商 PingCAP 正式发布 TiDB 7.1 版本,这也是 2023 年度发布的首个 LTS(Long Term Support) 版本,汇集了来自 20 个真实场景带来的功能增强,累计优化和修复 140 功能&#xff0…

easyui5

1.1准备工作. 今天我们的主要任务是完成分页功能; 导入数据表 t_book,数据文件在课件; 介绍拼音字段,拼音工具类,拼音jar包; 模糊查询还要实现拼音模糊查询,如:百度输入拼音也可以…

飞凌嵌入式AM62x系列核心板配置新增,单核/双核/四核随心选

新时代,工业、电力、交通、医疗等众多行业纷纷从信息化向着智能化转型,这就对主控的综合性能提出了全新的要求。在这样的背景下 TI AM62x Sitara™处理器应运而生,为AIoT时代带来了新的突破可能。作为TI官方合作伙伴,飞凌嵌入式于…

RabbitMQ - 发布确认高级

RabbitMQ - 发布确认高级 发布确认 springboot 版本回退消息备份交换机 在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始…

Steemit 会颠覆 Quora/知乎 甚至 Facebook 吗?

Steemit是基于区块链技术的社交媒体平台,其独特的激励机制吸引了众多用户。然而,是否能够真正颠覆Quora、知乎甚至Facebook这些已经成为社交巨头的平台,仍然存在着许多未知因素。本文将探讨Steemit的优势和挑战,以及其在社交领域中…

数据分析第15课pandas和matplotlib实战

01实战:911 导入: 读取数据: 转换类型:

java html导出添加空行和空格

情景: 要求导出签批单: 格式如下, 要获取“主办处室负责人”和“相关处室会签”环节的处理意见、处理人员和处理日期进行替换,导出word文档。 处理: 主要是如何拼接内容? 方法一: 导出word&…

爬虫如何发送 HTTP 请求

爬虫可以使用 Python 中的 requests 库来发送 HTTP 请求。requests 库提供了简单易用的 API,可以方便地发送 GET、POST 等请求,并且支持设置请求头、请求参数、代理等功能。 以下是一个使用 requests 库发送 GET 请求的示例代码: import re…

国产触控笔哪个牌子好?第三方电容笔推荐

对于那些把iPad当做学习工具的人来说,这已经成为了他们生活中不可缺少的一部分。但没有人买得起苹果原装电容笔,因为苹果电容笔的售价太贵了。因此,最好还是用一支普通的电容笔。我是个一个苹果粉,同时也是个数字发烧友&#xff0…

十年之约 记账表格(会员专享)

* * * 原创:刘教链 * * * 6号,教链发起了十年之约加密投资实证计划。 很多读者、会员纷纷同行。 有朋友问及教链所用记账表格。可根据文章中的介绍自制。为方便会员,教链已将该表格上传至刘教链的加密投资星球,供下载。 另外&…

喜报 | 小米智能语音通讯技术获“深圳人工智能行业应用奖”

日前,2022年度第二届“深圳人工智能奖”正式揭晓。 “小米智能语音技术在手机实时通信中的应用”项目,凭借丰硕的创新成果、广泛的应用场景,获得“深圳人工智能行业应用奖”! “深圳人工智能行业应用奖”旨在表彰人工智能行业应用…

springcloud使用nacos搭建注册中心

nacos安装这里就不细说了,(Nacos下载以及搭建环境_你非柠檬为何心酸142的博客-CSDN博客) 大家也可以去网上安装好,这里主要讲搭建 ,我们需要手动启动nacos, 输入(.\startup.cmd -m standalone),出现一下图标就代表ok 首先是父工程所需要的依…

Java009——Java数据类型变量的简单认识

一、Java数据类型 围绕以下3点学习: 1、什么是Java数据类型? 2、Java数据类型的作用? 3、Java有哪些数据类型? 4、熟悉Java8大基本数据类型 1.1、什么是Java数据类型? 当我们写Java代码时,需要把数据保存…

react设计模式,jsx

1.修改配置项: eject:暴露配置项!!!一旦暴露了就无法还原回去 会报错。这个错误:我们刚才把代码改了,在暴露之前,先让我们把代码提交到git历史区保留下来—防止暴露后的代码覆盖了我们该的代码 …

02_MySQL的索引结构

1. BTree索引 B-Tree即B树,Balance Tree,平衡树,它的高度远小于平衡二叉树的高度。2-3树是最简单的B树结构。B树的阶:节点的最多子节点个数。比如2-3树的阶是3,2-3-4树的阶是4。 1.1 初始化介绍 一颗b树,浅蓝色的块我们…

什么是AI业务流程质检,如何用它做好销售和服务过程监督

近几年,随着语音转写、语义理解和机器学习等技术的成熟,越来越多的企业开始部署基于AI技术的智能质检系统,来帮助坐席、销售和服务团队提高沟通质量管理能力,同时提升沟通中的客户体验。 不过,不论是最初的人工质检&a…

【Word技巧】打印部分内容或者隐藏不打印的内容,如何操作?

在工作中,我们经常需要打印各种Word文档,但有时候,我们只需要打印文档的其中一部分内容,或者有部分内容并不想打印出来,要如何操作呢? 还不了解的小伙伴,可以看看下面的方法哦。 一、设置打印其…