Table of contents
博客在中国的发展简史
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 的付费博客工具。