基於mkdocs-material搭建個人靜態部落格
基於mkdocs-material搭建個人純靜態部落格,沒有php,沒有mysql
如果你只是想安安靜靜的放一些技術文章,釋出到個人站點或github-pages,mkdocs-material很適合你
小慢哥的原創文章,歡迎轉載
- 本文僅是縮略,筆者已將詳細內容釋出到github上
- 可點選本文最後的"閱讀更多"進行訪問,或者在github上搜"cyent markdown"也可以看到
目錄
- 本文概述
- mkdocs-material介紹
- 安裝
- 初始化專案
- 修改主題
- 執行
- 釋出到GitHub pages
- 釋出到個人HTTP Server
- mkdocs.yml注意事項
- 新增頁面
- 新增擴充套件
- markdown語法
- 其他功能
- 最佳實踐
本文概述
mkdocs-material入門,包括安裝、執行、釋出至github-pages及個人站點
mkdocs-material介紹
符合google material ui規範的靜態文件網站生成器,使用markdown進行文件書寫
mkdocs
- python編寫的markdown直譯器、編譯器,帶有本地cli工具
- 自帶基於Tornado的小型http服務,用於本地除錯
- 內建一鍵式釋出至GitHub Pages
- 內建mkdocs風格、readthedocs風格的主題,並支援自定義主題
- 支援呼叫python模組實現語法及渲染的擴充套件
mkdocs-material
- python模組,符合google material ui規範的mkdocs自定義主題
- 針對特定語法、功能做了渲染優化
- 根據客戶端瀏覽器頁面尺寸自動縮放,對PC、移動裝置都友好
- 豐富的頁面配色,多達19種主體配色和16種懸停連結文字配色
- 支援中文搜尋
- 支援統計功能,如百度統計,谷歌統計
安裝
pip install mkdocs mkdocs-material
若下載慢,可更換安裝源為豆瓣
pip install --trusted-host pypi.douban.com -i http://pypi.douban.com/simple/ mkdocs mkdocs-material
初始化專案
mkdocs new my-project
會生成my-project目錄,進入該目錄裡,可以看到預設放置了一些檔案,包括mkdocs.yml,這是主配置檔案
修改主題
mkdocs.yml裡新增:
theme:
name: material
執行
# 在my-project目錄裡執行
mkdocs serve
通過瀏覽器訪問本地ip的8000埠(比如http://127.0.0.1:8000/) 檢視效果,如圖所示
釋出到GitHub pages
通過mkdocs gh-deploy
自動編譯出html併發布至GitHub pages,步驟如下
初始化repo
1.在github上建立一個repo,名字叫my-project(可以是其他名,這裡先假設叫my-project),建立repo時候選擇初始化帶有README.md
2.將repo同步到本地,使用git clone
匯入專案
1.將mkdocs根目錄(即my-project目錄)下的所有東西移到剛剛git clone下來的git目錄下
2.然後可以將最早建立的mkdocs根目錄(即my-project目錄)刪除了
釋出
在本地git目錄下執行
mkdocs gh-deploy
釋出到個人HTTP Server
通過mkdocs build
編譯出html並手動同步至http server的根目錄
生成站點檔案
在git目錄下執行命令
mkdocs build
命令執行完畢後可以看到site目錄
釋出至http server
將site目錄裡的所有東西拷貝到http server的根目錄下
mkdocs.yml注意事項
由於是yaml格式,因此首先要符合yaml的語法要求
docs下需要一個index.md,作為站點首頁
文件層次結構雖然可以很多層,但最佳實踐是控制在2層內,最多不要超過3層,否則展示會不夠友好
新增頁面
在my-project/docs/裡放置.md檔案,可以自行組織目錄結構
然後在mkdocs.yml裡新增,比如這樣:
nav:
- 介紹: index.md
- 安裝:
- 本地環境搭建: install/local.md
- 釋出至GitHub Pages: install/github-pages.md
- 釋出至自己的HTTP Server: install/http-server.md
- 語法:
- 語法總覽: syntax/main.md
- 標題: syntax/headline.md
- 段落: syntax/paragraph.md
- 上面的index.md就是放置在my-project/docs/index.md
- 上面的local.md就是放置在my-project/docs/install/local.md
新增擴充套件
只有新增了擴充套件,才能完美使用mkdocs-material官方支援的所有markdown語法
mkdocs.yml裡新增:
markdown_extensions:
- admonition
- codehilite:
guess_lang: false
linenums: false
- toc:
permalink: true
- footnotes
- meta
- def_list
- pymdownx.arithmatex
- pymdownx.betterem:
smart_enable: all
- pymdownx.caret
- pymdownx.critic
- pymdownx.details
- pymdownx.emoji:
emoji_generator: !!python/name:pymdownx.emoji.to_png
- pymdownx.inlinehilite
- pymdownx.magiclink
- pymdownx.mark
- pymdownx.smartsymbols
- pymdownx.superfences
- pymdownx.tasklist
- pymdownx.tilde
markdown語法
mkdocs-material支援幾十種markdown語法,有許多很酷炫的功能與效果,由於篇幅有限,無法在這一一展示,因此這裡僅列舉下所支援的主要語法
1.標題
2.段落
3.引用
4.表格
5.程式碼
- 行內
- 區塊
- 高亮
6.字型樣式
- 斜體,粗體,粗斜體
- 上標,下標
- 下劃線
- 橫線
- 下劃線+橫線
7.列表
- 無序列表
- 有序列表
- 任務列表
8.分割線
9.連結
- 普通連結
- 自動連結
- 錨點提示
10.圖片
- 行內式
- 參考式
11.轉義
12.高亮
- 程式碼高亮
- 背景高亮
13.註解
- 介紹
- 完整格式
- 空標題
- 無標題
- 無型別
- 摺疊
- 11種顏色樣式
- 巢狀
14.腳註
15.元資訊
16.數學公式
- 介紹
- 匯入js
- 用法
17.emoji
- 介紹
- 工作原理
- 最佳實踐
18.特殊符號
19.巢狀
- 介紹
- 註解-註解
- 列表-列表
- 引用-引用
- 註解-程式碼塊
- 列表-程式碼塊
- 引用-程式碼塊
- 黃色區塊-程式碼
- 綠色區塊-程式碼
- 紅色區塊-程式碼
- 綠接紅區塊-程式碼
- 註解-列表-引用
- 列表-列表-引用
- 引用-引用-程式碼
其他功能
mkdocs-material本身還支援如下功能:
- 新增js,可用於站點統計(如百度統計,谷歌統計)
- 頁面以及跳轉文字的配色
- 中文搜尋
最佳實踐
如果希望自己所寫的markdown可以相容各個markdown編輯器,那麼只需瞭解markdown的傳統語法即可
如果想讓自己所寫的markdown釋出到web伺服器,例如GitHub Pages、自己搭建的HTTP Server,那麼可以考慮使用本文所介紹的語法,以實現豐富多樣的渲染效果。
筆者建議:儘量使用傳統語法,只在必要時候才使用本文介紹的語法。因為排版簡潔、條理清晰才能帶來最舒服的閱讀感受。
相關文章
- 基於Hexo搭建靜態部落格Hexo
- 個人靜態部落格上線
- 使用 Hexo 搭建靜態部落格Hexo
- Hikari:一個基於php的靜態部落格系統PHP
- Hexo + Github 搭建靜態部落格(一)HexoGithub
- Git+Hexo搭建靜態部落格GitHexo
- 零基礎用GitHub page搭建靜態部落格Github
- 基於 GitBook 搭建個人部落格Git
- 自動部署基於issues的靜態部落格
- hexo+github搭建靜態部落格之初體驗HexoGithub
- 使用vuepress搭建GitHub pages靜態部落格頁面VueGithub
- 創造屬於自己的靜態部落格
- 基於 Hexo + GitHub Pages 搭建個人部落格(三)HexoGithub
- 基於Vue搭建自己的部落格Vue
- 基於ECS搭建雲上部落格
- windos系統下hexo+github搭建簡單靜態個人部落格HexoGithub
- Django搭建個人部落格:基於類的檢視Django
- 使用 Gatsby.js 搭建靜態部落格 7 文章目錄JS
- 從零搭建基於golang的個人部落格網站Golang網站
- 基於ThinkPHP搭建的仿Wordpres個人部落格系統PHP
- 使用 Gatsby.js 搭建靜態部落格 4 標籤系統JS
- Hexo結合Stun靜態部落格搭建從入門到入土Hexo
- 基於 Vuepress 搭建個人部落格,文章詳細,助你快速上手Vue
- hexo搭建個人網站部落格完全教程Hexo網站
- 如何搭建個人獨立部落格網站?網站
- 基於Github Page 搭建部落格(hexo框架)GithubHexo框架
- 如何快速給自己構建一個溫馨的”家”——用Jekyll搭建靜態部落格
- 搭建個人部落格
- 基於windows平臺Git+GitHub+Hexo搭建個人部落格(三)WindowsGithubHexo
- 個人部落格搭建( wordpress )
- 【個人部落格搭建及配置一】基礎配置
- MWeb Pro for Mac 靜態部落格生成軟體WebMac
- 個人搭建部落格的幾種方法和方案
- 【教程向】——基於hexo+github搭建私人部落格HexoGithub
- 基於函式計算快速搭建Django Blog部落格函式Django
- 基於ECS搭建雲上部落格(體驗有禮)
- 想用php做個像hexo那樣的靜態部落格系統PHPHexo
- 個人的小部落格