博客在中國的發展簡史#
1997 年 12 月:美國人 Jorn Barger 第一次使用 「Weblog」 這個名字,標誌著博客的誕生。
1999 年:Peter Merholz 首次使用縮略詞「blog」。
2001 年:年初,國內發行的《數字財富》雜誌上翻譯了一篇來自《行業標準》雜誌的文章,這篇尼古拉斯・卡爾撰寫的《可塑媒體》充當了博客在中國的基本啟蒙。同年 9 月 11 日,美國世貿大樓遭遇恐怖襲擊,博客成為重要信息和災難親身體驗的重要來源。從此,博客也正式進入美國主流社會的視野。
2002 年 7 月:「blog」的中文名稱由方興東、王俊秀正式翻譯為「博客」。同年 8 月,「博客中國」網站開通,開始了博客在中國的全面啟蒙和推動。
2003 年:3 月,南開大學百合博客系統開通,中國科技大學博客系統進入測試階段,博客在高校開始迅速發展。6 月 19 日起,中國博客網用戶「木子美」發表的網絡日記,給中文博客網站帶來巨大訪問量。同年,「博客」成了網絡搜索引擎的熱門關鍵詞。
2004 年:博客商業化元年,博客開始成為互聯網上的一種普遍現象。
2005 年:新浪博客上線。同年,中國的博客用戶數量達到了 100 萬人。
2006 年:中國的博客用戶數量達到了 500 萬人。
2007 年:以「海內」、「飯否」、「叽歪」、「做啥」為代表微博客出現,並隨之興起。
2009 年至今:9 月新浪微博上線,博客開始進入獨立博客時代。
為什麼要寫博客#
用博客的形式來記錄下你有價值的思考,會帶來很多好處,卻沒有任何明顯的壞處。
關於「為什麼要寫博客」這個話題,有許多人聊過,我就不贅言了。
比較有代表的是劉未鵬先生的《為什麼你應該(從現在開始)寫博客》,介紹了寫博客的好處,包括分享自己的思考和總結,以及通過交流和反思來改進自己的想法。文中還提到,長時間停留在潛意識中的問題能夠帶來更深入的思考和更多的視角,因此寫博客是一種很好的思考和學習的方式。
博客框架選擇#
在開始博客寫作之前,一個重要的決定就是選擇合適的博客框架進行獨立部署。博客框架主要分為兩種:動態博客和靜態博客。除此之外,如果不願意獨立部署,還有一些一站式的博客平台可以選擇。
動態博客#
動態博客是最常見的博客形式。WordPress、Typecho、Ghost 等動態博客系統在伺服器上動態生成網頁,這意味著每當用戶訪問博客時,內容都會動態生成,然後發送到瀏覽器。
優點:
- 易於使用:動態博客系統通常提供用戶友好的界面,讓你無需編程知識就可以方便地發布和編輯內容。
- 功能豐富:動態博客系統提供了豐富的插件和擴展,可以很方便地添加新功能,比如社交媒體分享、評論系統、分析工具等。
- 靈活性:動態博客系統可以方便地進行定制和修改,滿足不同的需求。
缺點:
- 運行速度:由於每個頁面都是實時生成的,因此加載速度可能會稍慢。
- 需要數據庫:動態博客系統需要數據庫來存儲和檢索內容,這可能增加了配置和管理的複雜性。
- 安全性問題:動態博客系統由於其複雜性,可能更容易受到安全攻擊。
WordPress 是一個開源的網站內容管理系統(CMS),使用 PHP 開發。它最初是一款用於創建博客的工具,但現在已經發展為可以創建各種各樣的網站的功能強大的平台。
- 其主要特性是:
- 易用性:WordPress 提供了一個用戶友好的界面,讓你可以輕鬆地發布和管理你的內容,無需掌握任何編碼技能。
- 高度可定制:WordPress 具有高度可定制的特性,它有成千上萬的免費和付費主題供你選擇,你也可以自己編寫或修改主題。
- 插件生態系統:WordPress 有一個龐大的插件生態系統,有超過 50,000 個可用的插件可以用於擴展功能,如 SEO、社交媒體共享、電子商務等。
- 社區支持:WordPress 有一個龐大且活躍的社區,用戶可以在社區中獲取插件、主題以及任何關於 WordPress 使用的幫助。
- SEO 友好:WordPress 提供了許多內置的 SEO 工具,以及豐富的 SEO 插件,幫助你的网站在搜索引擎中排名更高。
- 示例博客:hyuanverse
Typecho 是一個開源的輕量級博客系統,使用 PHP 編寫,並依賴於 Mysql 數據庫。它的目標是讓用戶能夠以簡單的方式發布自己的言論,功能簡潔但是擴展性強。
- 其主要特性是:
- 簡單易用:Typecho 似乎是為了 “簡單” 而生,安裝簡單快速,界面清晰,使用直觀。
- 極致性能:Typecho 輕巧迅速,系統在 PHP 5.1+ 環境中幾乎可達到秒殺一切的速度。
- 高度可擴展性:Typecho 具有非常高的可擴展性,你可以通過編寫插件和定制主題來添加新的功能。
- Markdown 支持:Typecho 支持 Markdown 語法,讓你能用更簡單的方式來編寫文章。
- 多用戶系統:Typecho 支持創建多個用戶,滿足團隊協作需要。
- 方便備份:你可以導出為 xml 文件來備份你的文章和評論,方便網站遷移。
- 示例博客:友人 C
Ghost 是一個開源的博客平台,使用 Node.js 編寫,在設計上追求簡潔,致力於乾淨的寫作和閱讀體驗,同時也提供定制化,如主題設計、插件擴展等。
- 其主要特性是:
- Markdown 支持:Ghost 支持 Markdown 語法,允許使用更簡潔的方式進行寫作。
- 簡潔設計:Ghost 界面簡潔,注重內容,給作者和讀者提供了一種無干擾的閱讀和寫作體驗。
- 高性能:Ghost 采用 Node.js 編寫,因此具有出色的性能。
- 主題自定義:Ghost 支持自定義主題,用戶可以根據自己的需求來創建全新的主題,也可以使用別人開發的主題。
- 內建 SEO:Ghost 在內部集成了一些 SEO 工具,以優化其 SEO 性能。
- 集成發布工具:Ghost 允許你從 Ghost 的博客中直接發布到各種平台,如 Email, AMP, Facebook Instant Articles 等。
- 示例博客:Dailyio
靜態博客#
靜態博客,如 Jekyll、Hexo 或 Hugo 等,它們直接生成靜態 HTML 文件,這些文件可以直接部署到任何 Web 伺服器上。
優點:
- 速度快:由於頁面是預生成的,所以頁面加載速度快,用戶體驗更好。
- 更安全:靜態博客不依賴數據庫,也不需要伺服器端動態處理,因此安全性更高。
- 低維護成本:靜態博客生成的是靜態文件,可以部署在任何支持 HTTP 的服務上,無需複雜的維護和更新。
缺點:
- 功能限制:靜態博客的功能相對簡單,如果需要更多的動態功能(如用戶評論),需要額外的工具和服務。
- 更新複雜:每次更新內容時,都需要重新生成和部署網站,對於頻繁更新的網站來說可能不太方便。
- 需要一定的技術知識:創建和管理靜態博客通常需要一些編程和命令行知識。
JekyII 是一款開源的靜態網站生成器,它采用 Ruby 語言開發,與 GitHub Pages 無縫整合,十分適合建設博客和個人頁面。
- 其主要特性是:
- 簡單:Jekyll 允許你使用 Markdown 或 Textile 和模板引擎 Liquid 編寫內容,然後生成一個完整的靜態網站,可以輕鬆托管在任何伺服器上。
- 靜態:Jekyll 把 Markdown(或者其他格式)的文本文件轉換為靜態 HTML 文件。這意味著你可以使用 GitHub Pages 免費托管你的項目頁面、博客、或者網站。
- 博客感知:Jekyll 是為博客創建的,因此它可以方便地創建和管理文章。例如它能自動將你的文章按照日期進行排序。
- 免費托管:如果你使用 GitHub Pages,那麼可以免費托管你的 Jekyll 博客。
- 示例博客:歐雷流
Hexo 是一個快速、簡單且強大的博客框架,使用 Node.js 編寫。它使用 Markdown(或其他渲染引擎)解析文章,並在生成階段生成靜態網頁。
- 其主要特性是:
- 快速生成:Hexo 能夠快速地處理文件,並且生成靜態網頁,這使得整個網站的生成速度很快。
- Markdown 支持:Hexo 支持 GitHub Flavored Markdown 的所有特性,可以更加便捷地編寫文章。
- 一鍵部署:Hexo 有強大的一鍵部署功能,支持 GitHub Pages,Heroku 等。
- 豐富的插件:Hexo 的生態系統中有大量的插件,可以提供 RSS,搜索,評論等功能。
- 主題多樣:Hexo 有許多可選的主題,可以根據自己的口味和風格進行選擇。
- 示例博客:Macin’s Blog
Hugo 是一個使用 Go 語言編寫的靜態網站生成器。它專為速度和靈活性而設計,使得創建網站變得更加快速和簡單。
- 其主要特性是:
- 速度快:由於 Hugo 是用 Go 語言編寫的,所以它生成網頁的速度極快。
- 易於安裝:Hugo 是一個單一的二進制文件,可以在各種平台上運行,安裝簡單,無需第三方依賴。
- 靜態站點:Hugo 會將 Markdown(或其他格式)的文檔轉換成靜態 HTML 文件,這樣你可以輕鬆地在任何伺服器上部署它。
- 實時預覽:Hugo 內建有一個可以快速預覽網站更改的伺服器,可以在你編寫內容的時候快速看到結果。
- 主題豐富:你可以從 Hugo 的豐富主題庫中選擇,快速改變網站的外觀和感覺。
- 強大和靈活:Hugo 支持自定義的 URL,博客內容,路徑,整站數據等,對使用者極其友好。
- 示例博客:pseudoyu
Zola 是一個使用 Rust 編寫的靜態網站生成器,力求簡單且快速,是一個保持簡單並專注於提供高速生成的工具。
- 其主要特性是:
- 速度快:Zola 是用 Rust 編寫的,Rust 是為了性能和並發而設計的語言,因此 Zola 生成網頁的速度很快。
- 單一二進制:Zola 發布為一個單一的二進制文件,這意味著沒有複雜的環境設置或依賴關係。
- Markdown 支持:Zola 利用 markdown 快速創建內容,並支持自定義鏈接和內聯 HTML。
- 模板引擎:Zola 提供了一套全套的模板引擎,支持條件、循環、包括、繼承等等。
- Sass & SCSS 支持:Zola 內建對 Sass/SCSS 的支持。
- 內置 Tera:Zola 使用的是 Tera 模板系統,Tera 是用 Rust 編寫的模板引擎。
- 自動熱重載 / 實時預覽:Zola 內置了一套伺服器系統,可以查看實時的網站構建效果。
- 示例博客:Pin 起来
Astro 是一個前端框架,用於構建快速、優化的網站和應用。Astro 允許你編寫現代的 JavaScript 或 TypeScript,同時通過只在顧客端發送最小靜態 js 腳本,確保了更優的性能。
- 其主要特性是:
- 零運行時 JavaScript 壓縮: Astro 框架的主要目標是使你能夠構建網站,並且盡可能地減少客戶端 JavaScript,因為減少客戶端 JS 在於改善站點性能。
- 框架兼容: Astro 支持在同一項目中,根據需要使用 React、Vue、Svelte、Preact 或 Vanilla.js 的組件。這意味著你可以在單個項目中混合和匹配最喜歡的 UI 組件。
- Markdown 支持: Astro 有優秀的 Markdown 支持,可以將 Markdown 文檔直接轉換為頁面。
- 部分渲染: Astro 具有部分渲染功能,可以按需加載 js,這使得 Astro 在構建性能的同時也可提供豐富的交互體驗。
- SEO 友好:由於 Astro 生成的是靜態 HTML 文件,因此對 SEO 友好。
- 無需打包: Astro 在開發過程中沒有使用打包,這意味著更快的開發體驗。
- 示例博客:四零二曜日
Next.js 是一個基於 React 的開源 JavaScript 框架,它是為伺服器渲染和靜態網站生成提供的服務端渲染 (SSR) 和靜態站點生成 (SSG) 解決方案。
- 其主要特性是:
- 混合渲染:Next.js 允許用戶在同一應用程序中選擇預渲染 (SSG) 和伺服器渲染 (SSR) 頁面,可以根據每個頁面的需求靈活選擇。
- 文件系統路由:Next.js 唯一的約束是文件系統必須作為主要路由,你可以在 pages 目錄下創建文件,自動轉換為一個對應的路由。
- 內置 CSS 和 SCSS 支持:Next.js 提供對 CSS 和 SCSS 的內置支持,並且你可以引入其他樣式庫和 CSS-in-JS 解決方案。
- 熱重載:Next.js 在開發環境中提供熱模塊替換功能,你修改代碼後,它自動更新和渲染在瀏覽器上。
- API Routes:Next.js 支持 API 路由,允許你構建你的 API 端點,這些 API 對應的路由會被框架自動處理和響應。
- 完全兼容 React:Next.js 完全兼容 React 生態系統,你可以在項目中應用大部分 React 相關的庫工具。
- 示例博客:佐玩
Gatsby 是一個基於 React 的免費和開源的框架,特別適合複雜的網站和 web 應用,可以輕鬆地從各種數據源獲取數據。
- 其主要特性是:
- 性能優化:Gatsby 為你的項目產生靜態文件,結果是一個高性能的站點。此外,它還內置許多性能優化特性,如預加載、代碼拆分等。
- 數據集成:Gatsby 使用 GraphQL 拉取數據,並預先生成靜態 HTML,不只是 Markdown,數據還可以來自 CMS、API、數據庫等。
- 強大的插件生態:Gatsby 有一個豐富的插件生態系統,使得添加更多功能變得十分輕鬆。
- 熱重載:Gatsby 在開發伺服器上使用熱重載,當你修改你的 JavaScript、CSS、或數據時,頁面會自動更新。
- 基於 React:由於 Gatsby 是基於 React 構建的,所以你可以在開發中使用 React 的全部特性和生態系統。
11ty 是一個簡單易用的、基於 JavaScript 的靜態網站生成器。它旨在成為一個 JavaScript 的替代版本的 Jekyll, 使用戶可以不必安裝 Ruby 環境就可以在 Node.js 環境中使用。
- 其主要特性是:
- 數據靈活:11ty 非常靈活,允許你使用 JavaScript 數據文件、全局數據文件和以數據為導向的內容創建(比如博客文章)。
- 模板支持多樣:11ty 支持多種模板語言,包括 Nunjucks、Liquid、Pug、Markdown、HTML、JavaScript 等。
- 無侵入性:11ty 不會對你的項目施加任何構建步驟,允許你自由地組織和處理靜態文件。
- 性能出色:11ty 生成網站的速度足夠快,使其在人們在選擇靜態網站生成器時被視為一個好的選擇。
- 插件系統:11ty 支持使用插件來擴展功能,比如添加圖片優化或 RSS 支持。
- 優秀的文檔:11ty 的官方文檔詳盡且易於理解,使它容易上手。
VuePress 是由 Vue.js 團隊開發的一個簡潔至上的靜態網站生成器,特別適合文檔類網站。
- 其主要特性是:
- 基於 Vue: VuePress 生成的每一個頁面都是一個由 Vue、Vue Router 和 webpack 動態渲染的單頁應用 (SPA)。這為你提供了一個 Vue 開發的環境。
- Markdown 支持: VuePress 支持 GFM (GitHub Flavored Markdown ),並為其擴展了一些默認的插件,如表格,滾動目錄等。這也意味著在 Markdown 中你可以直接使用 Vue 的組件。
- 主題豐富: VuePress 提供了一個默認的主題,旨在創建技術文檔,但也支持使用或創建自定義主題。
- 內置搜索: VuePress 的內置搜索引擎通過標題、頁面內容以及默認子標題等創建搜索索引,無需額外配置。
- 性能優化: VuePress 為每個頁面預渲染生成靜態的 HTML,同時在加載頁面時會變為一個完全的 SPA,這可以優化初次加載需要的時間。
Pelican 是一個使用 Python 編寫的靜態網站生成器。它可以將 Markdown、reStructuredText、或 AsciiDoc 文檔轉換為 HTML、PDF 等。
- 其主要特性是:
- 寫作方便:Pelican 支持用 Markdown、reStructuredText 和 AsciiDoc 格式編寫內容,使你的寫作變得輕鬆自由。
- 主題豐富:Pelican 社區提供了一些主題,你可以根據個人的需求和風格來進行選擇,或者自定義自己的主題。
- 插件強大:Pelican 的插件生態系統很豐富,從 SEO 優化到社交媒體集成,你基本上可以找到所有你需要的功能。
- 部署簡便:Pelican 通過 FTP、SFTP、Rsync、GitHub Pages 或 Amazon S3 等途徑來發布你的內容。
- 動態內容生成:雖然 Pelican 是一個靜態網站生成器,但它支持生成一些看起來像動態的內容,例如生成評論和文章分享。
基於 Notion#
- Nobelium 是一個使用 NextJS + Notion API 實現的,部署在 Vercel 上的靜態博客系統。為 Notion 和所有創作者設計。
- 示例博客:Wonder Space
- Osmium 是一個免費、開源的無後端靜態博客建站工具,基於 Notion 實現數據存儲,使用 Next.js 開發。它衍生自備受 Notion 博客用戶好評的 Nobelium,並融入了很多開發者對「Notion 博客」的個人理解。
- NotionNext 是一個使用 NextJS + Notion API 實現的,支持多種部署方案的靜態博客,無需伺服器、零門檻搭建網站,為 Notion 和所有創作者設計。
- 示例博客:Tangly Blog
- Notablog 是一個免費、開源的,基於 Notion 的靜態博客建站工具。
- 示例博客:Alexander’s Garden
- Next.js Notion Starter Kit 是一個基於 Next.js 和 Notion 的免費、開源建站工具。
- 示例博客:transitvebullsh
- Super 是基於 Notion 的付費建站工具。
- Feather 是基於 Notion 的付費博客工具。