前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mdbook一套环境发布多本书

mdbook一套环境发布多本书

原创
作者头像
用户4923333
发布2023-05-31 16:28:34
3610
发布2023-05-31 16:28:34
举报
文章被收录于专栏:后段开发后段开发

用轻量云服务器做一个简单的博客,或者说明手册还是非常好的。

现在流行的写博客或者说明手册的语言基本上就算是markdown了。编写规则简单,并且大体上满足基本的写作要求。

目前使用比较火的自己发布博客框架,可能是 mdbook 吧。

本例子主要是使用这个编写了一些使用手册,由于mdbook一般来说需要接入一些统计分析之类的,为了避免重复工作,最好还是在一个模版上来完成这个事情,然后把多本书嵌入进来完成这个需求。

mdbook 的使用手册地址 https://rust-lang.github.io/mdBook/

具体的使用问题比在细说,主要关注于如何在一个主题下编译发布多本书,涉及到使用 python 脚本,很多问题使用 python 脚本还是能够轻松解决的。

新建项目,multibooks

代码语言:shell
复制
mdbook init --theme multibooks

文件结构如下:

代码语言:shell
复制
book # 编译好的手册内容
book.toml # 配置文件
src # 书的markdown
theme # 主题,一般来说需要改一下这个东西

接下来修改一下目录结构,想把书都放在books这个文件夹下,对应的 src下也有相应的书的目录,以one、two两本书为例,修改后的文件结构如下:

代码语言:shell
复制
books # 编译好的书
  | - one
  | - two
src # 书的markdown
  | - one
  | - two
book.toml # 配置文件
theme # 主题

接下来新建一个 book_template.toml

内容如下:

代码语言:txt
复制
[book]
authors = ["xx"]
language = "en"
multilingual = false
src = "src/__book__"
title = "__title__"

[build]
build-dir = "books/__book__"

之后需要做的就是写个脚本替换相应的内容,并且把编译好的结果推送到服务器上去了。

脚本 genBook.py 内容如下:

代码语言:python
复制
# coding=utf8

import argparse
import os

books = {
    'one': 'One',
    'two': 'Two'
}

def makeBook(book, title):
    with open('book_template.toml', 'r') as f, open('book.toml','w+') as tf:
        doc = f.read()
        doc = doc.replace('__book__', book)
        doc = doc.replace('__title__', title)
        tf.write(doc)
    
    os.system('mdbook build')
    os.system('scp -r books/{book}/* root@8.8.8.8:/usr/share/nginx/html/books/{book}'.format(book=book))


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('-b', type=str)
    args = parser.parse_args()

    if args.b in books:
        makeBook(args.b, books[args.b])
        makeBook('{}_en'.format(args.b), books[args.b])
        exit(0)

    for book in books:
        makeBook(book, books[book])
        makeBook('{}_en'.format(book), books[book])

使用上来说如下:

代码语言:shell
复制
python genBook.py -b one # 可以单独编译其中一个并推送
python genBook.py # 全部编译并全部推送

直接把books整体推送到一个轻量服务器的静态代理地址下,就能愉快的发布多本书了。

可以直接拷贝 仓库地址

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档