欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 自動化將markdown文件轉(zhuǎn)成html文件的方法

 更新時間:2016年09月23日 10:07:00   作者:Ron Ngai  
這篇文章主要介紹了python 自動化將markdown文件轉(zhuǎn)成html文件的方法的相關(guān)資料,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下

一、背景

我們項目開發(fā)人員寫的文檔都是markdown文件。對于其它組的同學要進行閱讀不是很方便。每次編輯完markdown文件,我都是用軟件將md文件轉(zhuǎn)成html文件。剛開始轉(zhuǎn)的時候,還沒啥,轉(zhuǎn)得次數(shù)多了,就覺得不能繼續(xù)這樣下去了。作為一名開發(fā)人員,還是讓機器去做這些瑣碎的事情吧。故寫了兩個腳本將md文件轉(zhuǎn)成html文件,并將其放置在web服務(wù)器下,方便其他人員閱讀。

主要有兩個腳本和一個定時任務(wù):

•一個python腳本,主要將md文件轉(zhuǎn)成html文件;

•一個shell腳本,主要用于管理邏輯;

•一個linux定時任務(wù),主要是定時執(zhí)行shell腳本。

二、用python將markdown轉(zhuǎn)成html

2.1 python依賴庫

使用python的markdown庫來轉(zhuǎn)換md文件到html依賴兩個庫:

•pip install markdown

•pip install importlib

2.2 核心代碼

核心代碼其實只有一句,執(zhí)行 markdown.markdown(text)就可以獲得生成的html的原文。

input_file = codecs.open(in_file, mode="r", encoding="utf-8")
text = input_file.read()
html = markdown.markdown(text)

2.3 html編碼和html樣式

直接markdown.markdown(text)生成的html文本,非常粗略,只是單純的html內(nèi)容。而且在瀏覽器內(nèi)查看的時候中文亂碼(在chrome中),沒有好看的css樣式,太丑了。

解決辦法也很簡單,在保存文件的時候,將<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />和css樣式添加上。就這么簡單解決了。

2.4 完整python內(nèi)容

•讀取md文件;

•將md文件轉(zhuǎn)成html文本;

•添加css樣式和保存html文本。

python代碼內(nèi)容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 使用方法 python markdown_convert.py filename
import sys
import markdown
import codecs
css = '''
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!-- 此處省略掉markdown的css樣式,因為太長了 -->
</style>
'''
def main(argv):
name = argv[0]
in_file = '%s.md' % (name)
out_file = '%s.html' % (name)
input_file = codecs.open(in_file, mode="r", encoding="utf-8")
text = input_file.read()
html = markdown.markdown(text)
output_file = codecs.open(out_file, "w",encoding="utf-8",errors="xmlcharrefreplace")
output_file.write(css+html)
if __name__ == "__main__":
main(sys.argv[1:])

三、shell邏輯

3.1 邏輯說明

建立一個shell文件,用于進行邏輯處理,主要操作如下:

•更新svn文件,將最新的md文件更新下來(此處假設(shè)md文件是測試文檔.md);

•執(zhí)行python markdown_convert.py $NAME將md文件轉(zhuǎn)成html文件(生成測試文檔.html);

•將轉(zhuǎn)好的html遷移到web路徑下(移動到html/測試文檔.html);

•啟動一個web服務(wù)(此處用的是python的SimpleHTTPServer的web服務(wù)器).

3.2 完整shell邏輯

#!/bin/bash
NAME='測試文檔'
## 更新代碼
svn update
## 刪除html文件
if [ -f "$NAME.html" ];then
rm "$NAME.html"
fi
## 生成html
if [ -f "$NAME.md" ];then
python markdown_convert.py $NAME
fi
## 生成html目錄
if [ ! -d "html" ];then
mkdir "html"
fi
## 拷貝html文件
if [ -f "$NAME.html" ];then
mv -f "$NAME.html" "html/"
fi
## 開啟web服務(wù)器
PID=`ps aux | grep 'python -m SimpleHTTPServer 8080' | grep -v 'grep' | awk '{print $2}'`
if [ "$PID" = "" ];then
cd html
nohup python -m SimpleHTTPServer 8080 &
echo 'start web server'
else
echo 'already start'
fi

四、linux定時任務(wù)

在shell命令下輸入crontab -e進入linux定時任務(wù)編輯界面。在里面設(shè)置markdown2web.sh腳本的定時任務(wù):

## 更新文檔
*/10 * * * * cd /home/xxx/doc; sh markdown2web.sh > /dev/null 2>&1

以上所述是小編給大家介紹的python 自動化將markdown文件轉(zhuǎn)成html文件的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Laravel+Dingo/Api 自定義響應(yīng)的實現(xiàn)

    Laravel+Dingo/Api 自定義響應(yīng)的實現(xiàn)

    這篇文章主要介紹了Laravel+Dingo/Api 自定義響應(yīng)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • Python OpenCV學習之圖形繪制總結(jié)

    Python OpenCV學習之圖形繪制總結(jié)

    在圖像的任務(wù)中,不管是圖像檢測還是圖像識別,我們都需要通過繪制圖形和繪制文字對處理的結(jié)果進行說明,本篇就詳細介紹下OpenCV中的圖形的繪制,感興趣的可以了解一下
    2022-01-01
  • 跟老齊學Python之畫圈還不簡單嗎?

    跟老齊學Python之畫圈還不簡單嗎?

    畫圈?換一個說法就是循環(huán)。循環(huán),是高級語言編程中重要的工作?,F(xiàn)實生活中,很多事情都是在循環(huán),日月更迭,斗轉(zhuǎn)星移,無不是循環(huán);王朝更迭,尋常百姓,也都是循環(huán)。
    2014-09-09
  • Django中的settings.py文件使用全解析

    Django中的settings.py文件使用全解析

    這篇文章主要介紹了Django中的settings.py文件使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 詳解Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù)及示例代碼數(shù)

    詳解Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù)及示例代碼數(shù)

    本文通過示例代碼給大家詳細介紹了Python3 中hasattr()、getattr()、setattr()、delattr()函數(shù),非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-04-04
  • 解決Pytorch 加載訓練好的模型 遇到的error問題

    解決Pytorch 加載訓練好的模型 遇到的error問題

    今天小編就為大家分享一篇解決Pytorch 加載訓練好的模型 遇到的error問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù)

    基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù)

    這篇文章主要介紹了基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python裝飾器用法實例分析

    Python裝飾器用法實例分析

    這篇文章主要介紹了Python裝飾器用法,結(jié)合實例形式分析了帶參數(shù)裝飾器、無參數(shù)裝飾器等相關(guān)實現(xiàn)與使用技巧,需要的朋友可以參考下
    2019-01-01
  • Python腳本開發(fā)中的命令行參數(shù)及傳參示例詳解

    Python腳本開發(fā)中的命令行參數(shù)及傳參示例詳解

    這篇文章主要為大家介紹了Python腳本開發(fā)中的命令行參數(shù)及傳參示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • python制作抖音代碼舞

    python制作抖音代碼舞

    這篇文章主要為大家詳細介紹了python制作抖音代碼舞的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04

最新評論