md 生成目录 码云_搭建简易博客方案

现在大家都喜欢用markdown来写技术博客,这篇文章将阐述搭建支持markdown的简易博客方法。

我的写作需求

通过阅读本文,您将学会搭建满足以下条件的博客:

博客只用书写markdown文件

能支持版本控制

免费,不需要租服务器或主机

编写、部署博客不依赖复杂的环境

技术选型

markdown是一种简单文本格式的书写语法,写好md文件后,要展示在浏览器有三种思路:

通过php、Java、ruby等解析后展示,这种方式需要服务器支持。如gitblog、gollum

解析成静态文件后放在托管空间上,看起来很完美,但本地必须安装环境,个人认为还是不方便。如jekyll、hexo

直接将md文件托管到托管空间,由前端直接解析后展示。如mdwiki

比较下来,我还是选择了最后一种方式,因为它使用起来太简单了,不用搭建任何环境。虽然搭建的博客比较简单,但对于个人博客来说够用了。

mdwiki

mdwiki其实就是用js分析md文件,在前端转换成dom显示在浏览器。使用方法非常简单,直接将mdwiki.html文件下载下来,重命名为index.html放在md文件夹根目录即可,浏览器访问的格式为..../index.html#!xx.md,默认访问index.md。

配置

mdwiki可以用json配置一些属性,直接在根目录配置config.json文件即可,具体的配置可以参靠官网文档:

{

"useSideMenu": true,

"title":"非专业Java程序员博客",

"lineBreaks": "gfm",

"additionalFooterText": "All content and images © by xi.yang | ",

"anchorCharacter": "#"

}

博客目录

mdwiki的目录本身也是用md文件定义的,直接在根目录创建navigation.md就行,只能支持2级目录,具体的语法可以参考博客最后的源码分享。

主题

mdwiki也支持主题更换,可以去bootswatch下载喜欢的主题css文件,放到根目录,并在navigation.md配置对应的主题名称即可:

[gimmick:theme](cerulean)

注意名称要小写,如果是默认的bootswatch样式是不用下载css文件的,直接配置名称即可,高阶玩家可以参考语法自己定义漂亮的样式。

自动生成目录

完成以上步骤简单而漂亮的的博客就搭好了,现在要做的就是写md格式博客,并更新目录配置,就可以在博客上看到更新了。但是文章写多了就会感觉很麻烦,每次都要花时间去维护navigation.md,如果是已经有很多现成的md文档,初始化会更嫌麻烦!

为了简化这个过程,笔者写了个简单的python脚本,根据文件夹和文档直接生成目录配置文件,这样每次无论改动多少内容,直接执行一下python脚本就可以了,具体代码可以直接看源码分享。

码云pages配置

接下来就是发布了,可以发布到github或者码云上,推荐使用码云,毕竟国内速度要快点,随便在码云上创建一个项目,将根目录的所有文件push上去,然后在服务-pages中开启服务即可访问,如:我的博客。

无论用码云还是用github,这时候都是用的他们的二级域名,我们也可以使用自己的域名。首先在根目录创建CNAME文件,写入自己的域名,如果是github,可以配置自己的域名,然而码云是没有这个功能的,但是可以去域名提供商配置Url转发(由于笔者在万维网买的域名说开通这个功能还要单独收费,没有测试,理论上是可行的)。

一键部署

完成上面的所有配置后,我们写博客的步骤就简化为:

在对应文件夹写md文本博客。

执行python脚本。

git命令add、commit、push。

这里git操作很烦,每次我们都要执行好几个命令才能完成部署,细想我们的个人博客其实不需要记录什么提交说明。于是笔者又写了个shell脚本,将执行python脚本和一系列git命令一起执行。

这样每次改完博客后直接执行这个脚本就完了,非常方便!windows用户装了git直接在git bash界面就可以执行脚本。脚本在源码中也有,执念于提交说明的也可以修改脚本,传入提交说明即可。

源码分享

以上博客集成代码的源码地址为:md_blog,将所有的文件都集成好了,大家fork下来就可以直接用,参考项目的readme几分钟就能完成博客搭建。

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

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

相关文章

mix2s android p功能,已升安卓P!网友:MIX2S才是亲儿子

原标题:已升安卓P!网友:MIX2S才是亲儿子一直以来,小米在手机系统更新上都有着非常明显的优势,MIUI经过了多年的更新迭代,如今已经达到了非常不错的易用性,而且流畅度方面的表现更是优秀。如今小…

python爬取图片的步骤_Python爬取图片的过程分析

一、获取网页源码二、数据解析,得到图片的地址、部分文字作为文件名三、返回图片的二进制字节码四、保存图片文件到本地import requestsfrom lxml import etreeimport osheaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36…

堆栈总结

堆栈什么是堆栈堆栈的抽象数据类型描述栈的顺序存储实现 堆栈 什么是堆栈 计算机如何进行表达式求值? 算术表达式56/2-3*4。 正确理解: 56/2-3*4 53-3*4 8-3*4 8-12 -4 由两类对象构成的: 运算数,如2、3、4 运算符号…

nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)

from: http://wszf.net/archives/2012/11/07/80510.html一般来说,给予MifareClassic的射频卡,一般内存大小有3种:1K: 16个分区(sector),每个分区4个块(block),每个块(block) 16个byte数据2K: 32个分区,每个…

android8 通知呼吸灯_Android8.0及以上的Notification

这篇文章上次修改于 702 天前,可能其部分内容已经发生变化,如有疑问可询问作者。在新版本上(Android8.0及以上)开发时,会遇到一些问题,比如,不显示通知,Notification 声音不可控,删除 channel 删…

harmonyos公测招募,nova为主 HarmonyOS 2.0开发者Beta公测再招募

原标题:nova为主 HarmonyOS 2.0开发者Beta公测再招募HarmonyOS 2.0开发者Beta公测招募将开启第二期,本次公测活动主要针对的机型是华为nova系列。活动报名时间为5月9日-5月17日。【PChome手机频道资讯报道】华为方面在4月份开启了HarmonyOS 2.0开发者Bet…

队列总结

什么是队列 队列(Queue):具有一定操作约束的线性表 插入和删除操作:只能在一端插入,而在另一端删除 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先来先服务 先…

python连接mongodb进行查询_Python中的MongoDB基本操作:连接、查询实例

这篇文章主要介绍了Python中的MongoDB基本操作:连接、查询实例,本文直接给出操作示例代码,需要的朋友可以参考下MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用&#…

D P- 免费馅饼

题目 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以ga…

android+录像中截图软件下载,录屏截图大师app

录屏截图大师app是一款专业录屏软件,不少用户可能会有使用手机录屏的需求,尤其是在手机内置没有录屏功能的时候,这款软件就非常值得大家考虑,支持自定义设置录屏的大小和画质,还没有水印,还支持后期的简单编…

python随机函数笔记_Python笔记__random

random模块提供了随机数相关的一些函数,所有函数都绑定在一个random.Random类的实例上,所以,你可以直接用模块级的函数random.xxx(),也可以random.Random().xxx()。random.random(): 随机生成一个[0.0, 1.0)范围内的浮点数。是下面…

一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...

制作者:moonlight-roms基于版本:remix最新安卓8.1.0代码适合机型:一加手机X双网版/全网通版/E1001/E1003等/onyx注意事项:1.开机后语言设置:Settings-system-languageandinput-添加一个中文需要并拖动到第一行设置为默…

震惊!Fibonacci Again

题目 There are another kind of Fibonacci numbers: F(0) 7, F(1) 11, F(n) F(n-1) F(n-2) (n>2). Input Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000). Output Print the word “yes” if 3 divide evenly into …

jumpserver 使用教程_Jumpserver之快速入门

一&#xff0c;系统设置1.1基本设置修改 url 的"localhost"为你的实际 url 地址, 否则邮件收到的地址将为"localhost" 也无法创建新用户1.2邮件设置1.3终端设置保持默认设置即可1.4安全设置根据需要设置二.用户管理2.1创建jumpserver用户#点击页面左侧&quo…

华为鸿蒙手机和电视通话,鸿蒙智慧屏首秀:逾10万人预定,电视视频通话功能强大...

原标题&#xff1a;鸿蒙智慧屏首秀&#xff1a;逾10万人预定&#xff0c;电视视频通话功能强大上周五&#xff0c;大家期待已经的华为开发者大会正式召开&#xff0c;华为鸿蒙系统在这一天对外发布。历时数年&#xff0c;经过几千人的研发&#xff0c;终于正式落地。曾经&#…

震惊! Leftmost Digit

题目 Given a positive integer N, you should output the leftmost digit of N^N. Input The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contain…

ladp3 获取属性_Ldap3库使用方法(四)

#!/usr/bin/env python# -*- coding: utf-8 -*-import jsonfrom ldap3 import ALL_ATTRIBUTES# 注意&#xff1a;ldap3库如果要使用tls(安全连接)&#xff0c;需要ad服务先安装并配置好证书服务&#xff0c;才能通过tls连接&#xff0c;否则连接测试时会报LDAPSocketOpenError(…

两文本一图片android,Android富文本编辑器(二):图文混排以及图片上传处理

对于一个富文本编辑器来说&#xff0c;图文混排是最基本的功能。而从上一篇文章中我们知道图文混排需要使用ImageSpan。下面这段代码摘自我的RichEditText源码&#xff1a;/*** 添加图片* param filePath 图片文件路径*/public void addImage(String filePath) {SpannableStrin…

qt添加菜单纯代码_Qt Creator 插件开发(3):添加菜单项

本章我们将学习如何向 Qt Creator 的菜单栏添加内容。在上一章插件的基础之上&#xff0c;我们将尝试开发一个比较正式的插件——在菜单栏中可以看到&#xff0c;并且可以相应用户动作等。在我们开始之前&#xff0c;我们先来看看 Qt Creator 已有的菜单&#xff1a;Qt Creator…

android添加hidl,android hidl

1、定义.hal接口文件&#xff0c;如&#xff1a;在vendor/sprd/interface中新建目录hello&#xff0c;其中定义好hidl接口&#xff0c;如&#xff1a;1 package [email protected]1.0;23 interfaceIHello {45 helloWorld(string name) generates (stringresult);67 };2、利用hi…