【详细】使用MkDocs搭建个人博客网站

2023-11-08

使用MkDocs搭建个人博客网站

0. 安装python3.7

注意:可以在个人用户下安装,不要覆盖系统原有python

#下载Python依赖环境
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

#没有wget需要安装
yum install wget -y   

#下载安装包
wget https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz

#解压
tar -zxvf Python-3.7.13.tgz

#编译安装
cd Python-3.7.13
./configure --prefix=/home/mkdocs/python3
make && make install

#配置环境变量
vi ~/.bash_profile 
#添加此配置
PATH=$PATH:/home/mkdocs/python3/bin

source ~/.bash_profile

#软连接
sudo ln -sf /home/mkdocs/python3/bin/python3.7 /usr/bin/python3
sudo ln -sf  /home/mkdocs/python3/bin/pip3.7 /usr/bin/pip3

#验证
python3 --version
pip3 --version


1. 安装mkdocs

1、确保已经安装python3环境,以及Python包管理器pip
2、 安装 MkDocs
pip3 install mkdocs
3、创建文档项目,docs 是自定义文件目录
mkdocs new docs
4、切换到 mysite 目录下,并运行
mkdocs serve -a ip:port

浏览器输入 ip:port就预览到我们建设的文档站点了

2. 安装插件

安装主题插件:
pip3 install mkdocs-material -i https://pypi.tuna.tsinghua.edu.cn/simple

安装版本管理插件:
pip3 install mike
安装生成pdf插件:
pip3 install mkdocs-with-pdf
安装qrcode:
pip3 install qrcode
安装weasyprint,版本需要指定52.5:
pip3 install weasyprint==52.5

3. 配置

配置mkdocs.yml
#站点配置说明
site_name: Docs #站点名称
docs_dir: docs #文档地址
#主题配置
theme:
  name: material #指定主题
  custom_dir: overrides #定制目录,同名覆盖
  palette: #颜色配置
    primary: indigo #主题颜色
    accent: deep orange #强调文字颜色
  language: zh #语言
  features:
    - navigation.top #tab页展示方式 顶部 
    - header.autohide #表头自动隐藏

#版本控制
extra: 
  version:            
    provider: mike

#with-pdf配置说明:
plugins:
  - search #添加搜索框
  - with-pdf: #生成pdf配置
      copyright: copyright @ 2022#设置作者文本
      cover_subtitle: v1.1.0 #子标题
      author: author #作者
      cover: true #封面
      back_cover: true #底面
      output_path: pdf/文件名称.pdf #输出路径
      

4. 开发

1、把创建好的文档项目,提交到git远程仓库
2、在windows端,拉取git文档项目到本地,通过idea打开,选定一个分支,在docs目录下,添加md文档,进行编写文档即可
4、编写完成,提交到git远程,linux端拉取文档
5、linux端拉取到最新文档, 执行命令
mkdocs build
mike deploy [version]
mkdocs serve -a ip:port
6、浏览器访问ip:port,即可看到最新页面

5.项目放到Nginx中

1、复制site文件夹到Nginx
2、进行Nginx相关配置
3、访问网站

附录:

mkdocs中文文档:

https://mkdocs.zimoapps.com/#_14

插件商店可参考:

https://github.com/mkdocs/mkdocs/wiki/MkDocs-Plugins#pdf–site-conversion

mike配置可参考:

https://github.com/jimporter/mike/tree/v1.1.2

theme配置可参考:

https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/

with-pdf配置:

https://github.com/orzih/mkdocs-with-pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【详细】使用MkDocs搭建个人博客网站 的相关文章

  • Java 收集返回顶级项目的映射的嵌套流

    我有以下模型 class Item String name List
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • 使用 NumPy 将非均匀数据从文件读取到数组中

    假设我有一个如下所示的文本文件 33 346 1223 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 如何在 Quartz 调度程序中每 25 秒运行一次?

    我正在使用 Java 的 Quartz Scheduling API 你能帮我使用 cron 表达式每 25 秒运行一次吗 这只是一个延迟 它不必总是从第 0 秒开始 例如 序列如下 0 00 0 25 0 50 1 15 1 40 2 0
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • Keywords Search 【HDU - 2222】【AC自动机模板】

    题目链接 学习AC自动机的第一道题 可能跟广大学友是一样的 让我知道了什么是AC自动机 具体讲一下吧 它就是用来求多串匹配的 而KMP只是求单串匹配的 相当于是在KMP上做了优化 之后 就是怎么构造AC自动机了 知道它就是在一棵字典树上做文
  • 最大连续子数组和

    最大连续子数组和 动态规划 迭代求出以i结尾的最大连续和 i 1结尾的最大连续和时和前一位的状态有关 列出递推式即可求解 class Solution public int FindGreatestSumOfSubArray vector
  • PHP多个三目运算符的坑

    废话不多说直接上代码 source gt item source self 自建 item source erp 精选 item source free 免费 大牌好货 有一天看到项目里面的代码 这样写的 多个三目运算符一起限定 项目一直在
  • ChatGPT将要颠覆的前十个行业

    ChatGPT将要颠覆的前十个行业 内容创作 ChatGPT可以生成高质量的文章 新闻和其他类型的文本内容 改变传统内容创作行业 在线客服 ChatGPT可以提供智能 高效的客户服务 改善用户体验 降低企业成本 教育领域 ChatGPT可作
  • react native 实现拖拽排序

    先上效果图 意思意思 其实原理很简单 没有想的那么难 大家在改造的时候 请注意 this offset 的值 因为它关系到查找目标box的index 原理 手势释放时 所在的坐标值来推算出目标box的Index 本文代码可读性还需要改造 代
  • assert函数_【C语言笔记】assert怎么用?

    一 什么是assert 编写代码时 我们总是会做出一些假设 断言 assert 就是用于在代码中捕捉这些假设 可以将断言看作是异常处理的一种高级形式 断言表示为一些布尔表达式 程序员相信在程序中的某个特定点该表达式值为真 可以在任何时候启用
  • 华为RH2288 V3服务器新加硬盘不识别

    华为服务器RH2288 V3原本6块本地硬盘配置RAID5 后新加入2块本地硬盘配置RAID RAID卡类型LSI SAS3108 时 不能被BIOS Configuration Utility界面VD Mgmt页签识别到处理方法 首先 检
  • 别收藏 Excel 函数大全了!北大硕博生为帮助女朋友,开发了个 ChatExcel,一键处理表格...

    整理 苏宓 出品 CSDN ID CSDNnews 众所周知 Excel 是一款应用广泛的办公软件 也是世界上使用最广泛语言的编程语言 还是一款优秀的低代码工具 然而 想要真正玩转它 不仅需要学会各种各样的 Excel 函数公式 也需要熟练
  • 解决SCP命令需要输入密码的问题

    需求 主机A ipA 文件复制到主机B ipB step1 主机A生成配对秘钥 在root目录下执行 ssh keygen t rsa step 2 将 ssh 目录中的 id rsa pub 文件复制到 主机B 的 ssh 目录中 并改名
  • 【蓝桥杯(51) STC15F2K60S2】之 “独立按键实验“

    相关代码 include STC15F2K60S2 H unsigned char KeyNumber unsigned char value unsigned char code SMG weixu 18 0xc0 0xf9 0xa4 0
  • [AI医学] llm-medical-data:用于大模型微调训练的医疗数据集

    关键词 医疗数据集 大模型微调训练 开源项目 llm medical data 用于大模型微调训练的医疗数据集 项目地址 https github com donote llm medical data 该项目主要参考了几篇关于医学领域大模
  • root用户登录tab有时无法补齐

    ubuntu bash 自动补齐 打开 bashrc把最后的注释 etc bash completion的三行打开 debian下增强bash的自动补全功能 根据zhllg的提示 在debian下增强了自动补齐功能 现在很多命令的参数也可以
  • Scrapy爬虫部署、相关api调用、以及gerapy的作用和使用流程总结

    scrapy部署介绍相关的中文文档地址 https scrapyd readthedocs io en latest 安装相关库 scrapyd 是运行scrapy爬虫的服务程序 它支持以http命令方式发布 删除 启动 停止爬虫程序 而且
  • 函数返回引用

    include
  • QString转Char*字符串

    QString转Char 字符串 在Qt下将QString转char 需要用到QByteArray类 因为char 最后都有一个 0 作为结束符 而采用QString toLatin1 时会在字符串后面加上 0 方法如下 int main
  • Hive聚合运算

    Hive聚合运算 Hive聚合运算 GROUP BY HAVING 基础聚合 高级聚合 Hive聚合运算 GROUP BY group by用于分组 Hive基本内置聚合函数与group by一起使用 如果没有指定group by子句 则默
  • P4047 [JSOI2010]部落划分

    题目链接 这道题一看最小值最大 很容易被误导进二分答案的思路 但实际上并不需要二分答案 其实正解是最小生成树 我们先预处理出原图的最小生成树 因为要分k个部落 所以我们先把最小的n k边先全部选走 因为我们用kruskal的话要用到并查集
  • QA工具开发流程

    前言 在项目上线前期 这边根据需求制作了一套QA测试工具 主要分为以下四个模块的测试 图1 数值测试 主要包括了角色的等级变更 游戏里货币的变更 目前已制作的 游戏道具的数量变更 这些可能归一为一类测试模型 动画测试 包括角色的控制系统的所
  • 直流电机驱动PWM频率(转)

    源 直流电机驱动PWM频率 1 没有统一的标准 其实PWM的频率和你的电机感抗和你需要的速度响应时间有很大的关系 一般的电机用14K就足够了 当然自需要简单的调速可以随便选 如果电机转速比较高 感抗比较小 可以使用比较高的频率 一般最好不要
  • 【详细】使用MkDocs搭建个人博客网站

    使用MkDocs搭建个人博客网站 0 安装python3 7 注意 可以在个人用户下安装 不要覆盖系统原有python 下载Python依赖环境 yum install gcc patch libffi devel python devel