相信很多小伙伴和我一樣举户,寫博客, 能用markdown就絕不用富文本, markdown有很多好處, 比如: 可以快速遷移
遷移前: 簡(jiǎn)書鏈接
遷移后: 方圓小站鏈接
- 這次教大家如何批量遷移簡(jiǎn)書的markdown到自己的網(wǎng)站
遷移后的效果展示(GIF效果圖)
鏈接地址: https://fangyuanxiaozhan.com (歡迎訪問, 哈哈!)
第一步: 從簡(jiǎn)書后臺(tái)下載文章, 并解壓
第二步: 將文件夾Chrome插件英雄榜
放入項(xiàng)目靜態(tài)文件目錄下, 完成python讀取md文檔的邏輯
- 放入django靜態(tài)目錄
- django 處理函數(shù)
## 文章頁面
def article(request):
# 添加目錄
blog_md_list = []
for relative_file_dir_path, file_dir_name, file_name in os.walk(BASE_DIR+"/webStatic/blog-md"):
# print("當(dāng)前文件夾路徑(字符串)", relative_file_dir_path)
# print("當(dāng)前文件夾目錄下包含的文件夾(數(shù)組)", file_dir_name)
# print("當(dāng)前文件夾目錄下包含的文件名(數(shù)組)", file_name)
for file in file_name:
if(file.startswith('.') == False):
title = file[:-3]
blog_md_list.append({"file_path": relative_file_dir_path+"/"+file, "title": title})
# 正文
md_path = request.path.lstrip('/blog/article/')
# 獲取文章標(biāo)題
md_title = md_path.split('/')[-1][:-3]
md_txt = {"md": ''}
with open("/"+md_path, 'r') as f:
md_txt = {"md": f.read()}
return render(request, "blog/page.html",locals())
第三步: 完成前端頁面的渲染邏輯:
核心代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{md_title}}</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.9.0/showdown.min.js"></script>
</head>
<body>
<style>
img{
width: 80%;
}
</style>
<div id="result"></div>
<script type="text/javascript">
(function convert(md_txt) {
var text = md_txt;
var converter = new showdown.Converter();
var html = converter.makeHtml(text);
document.getElementById("result").innerHTML = html;
})({{ md_txt | safe }}["md"]);
</script>
</body>
</html>
小結(jié):
由于篇幅原因, 上面只是放上了前端和后端的核心處理邏輯, 前端的頁面樣式, 可以訪問https://fangyuanxiaozhan.com
進(jìn)行查看, 前端是開源的, 打開chrome開發(fā)者工具, 什么都有了, 當(dāng)然對(duì)以上步驟有疑問, 可以在下方給我留言, 我會(huì)及時(shí)解答~