点击上方蓝字关注“汪宇杰博客”
导语
在咱们生活的年代,博客并不稀奇,乃至能够说是随处可见。从最早的外链论坛: http://www.fok120.com、外链博客,再到每一个人都曾记录青春的 QQ 空间,再到此刻的 Vlog 与 Plog,似乎持有一个自己的博客并不是什么难事。然而想要自己从零起始搭建一个出色的博客系统,则并非那样简单。可能有些懂技术的小伙伴会说,看上去只是简单的对文案 CRUD 就行了,亦无那样繁杂啊。然而,真的是这般吗,这背面可能隐匿着更加多玄机等待着咱们去挖掘。掐指一算,我建设自己的博客已有11年,亦见过许多程序员自己编写博客系统,但真正按规范和标准设计的功能完备的博客少之又少。本文我将分享自己在博客系统设计中累积的经验,介绍有些鲜为人知的博客技术,帮忙想要搭建博客的小伙伴们进一步认识怎样设计一个优秀的博客系统。
目录
因为文案篇幅较长,本文将分为4篇推送,目录如下:
1.“博客”的前世今生
2.我的博客故事
3.谁是博客的受众?
4. 博客基本功能设计要点
4.1 文案(Post)
4.2 评论(Comment)
4.3 归类(Category)
4.4 标签(Tag)
4.5 归档(Archive)
4.6 页面(Page)
4.7 订阅
4.8 版本掌控
4.9 主题及个性化
4.10 用户及权限
4.11 插件
4.12 照片及附件的处理
4.13 脏词过滤及评论审查
4.14 静态化
4.15 通告系统
5. 博客协议或标准
5.1 RSS
5.2 ATOM
5.3 OPML
5.4 APML
5.5 FOAF
5.6 BlogML
5.7 Open Search
5.8 Pingback
5.9 Trackback
5.10 MetaWeblog
5.11 RSD
5.12 阅读器视图
6. 设计博客系统有那些知识点
6.1 时区真的全用UTC?
6.2 HTML还是Markdown
6.3 MVC还是SPA
6.4 安全
7. 结束语
“博客”的前世今生
博客一起始不叫 Blog,而叫 Weblog,可能让非常多人诧异的是,它并不诞生于Web 2.0时代,而是早在1997年已然面世。博客从最早的单用户(单独作者),逐步发展为多用户(一个团队),即博客平台。而 Web 2.0 时代赋予了博客社交属性,能够让读者进行评论、订阅(RSS/ATOM),博客作者之间能够互相抱团(FOAF)、引用文案(Pingback),才让博客逐步热门了起来。
博客系统亦是各有千秋,PHP 有 WordPress,.NET 有BlogEngine。而最后,WordPress 几乎作为了事实上的博客系统的标准,它同期具备有些 CMS 的功能,微软官方 .NET 团队的博客亦是采用 WordPress 搭建。
图 | 网络
阅读博客的用户除了运用浏览器,还会运用 RSS/Atom 阅读器。在 iPad 刚出来的年代,阅读器应用曾经风靡一时。订阅的博客一旦有新文案,阅读器就会自动收入,读者无需每日人肉检测是不是有新文案发布。Microsoft 365 的 Outlook 迄今保存着 RSS 阅读器的功能。
博客迄今依然是表达自我、传播信息并与社区互动的最佳途径之一,就算博客(microblogging)显现,亦没能使博客变得再也不流行。因此说,博客之于互联网,就如同电子邮件同样,“姜还是老的辣”,博客做为一种文化载体,历久弥新,持久散发着光芒。
我的博客故事
我的博客项目最早可追溯到2003年,那时候我正在上初中,课余时间自学了 ASP 及 Access,构建了我的第1个个人网站,主题居然是黑客技术(年少无知,以为非常酷炫)。除了原创及转载技术文案,亦供给常用软件工具下载等服务,有时候还假装大学生帮人完成ASP的毕业设计(毕竟说自己是初中生没人会相信)以换取Q币、QQ秀等(太有年代感…)。这个系统始终守护到2007年我上高二,它长这般:
(图:2003-2007年的个人网站)
高考之后,我最终有海量的时间学习自己想认识的技术,且不消担心被家长抱怨欠好好学习。那会我自学了ASP.NET(VB),构建了我的第二代个人网站,主题再也不是黑客技术,而是常规的计算机技术分享,主打原创技术文案(日志),同期亦研发了相册、播客等 SNS 功能,并于2009年上线,它长这般,始终守护到2011年。
(图:2009-2011年的个人网站)
2012年毕业以后,我当了一名工程师(程序猿),无精力守护软件下载、相册和播客等栏目,于是决定只做技术文案,大刀阔斧地改版了我的网站,博客的雏形就出来了。为了构建博客,我参考了一样是 .NET 的 BlogEngine 项目。其实国内某著名的 .NET 博客平台,最早就运用了 BlogEngine 项目,乃至它当年还有个中文版,叫博易。不外与其直接魔改他人的项目,我选择看懂代码以后,自己用区别的方式去实现。本文之后要介绍的许多内容亦源自于这段时间的学习。
毕业7年后,发掘各项技术发展迅猛,.NET 技术与其他主流技术的竞争非常激烈,而长时间在外企的我重点运用的还是 .NET 的技术。此时我下定决心,在业余时间里,用 .NET Core 重写我的博客系统,命名为 Moonglade,并开源到GitHub(https://github.com/EdiWang/Moonglade)日前博客位置是https://edi.wang。内容面向国外社区,安排在微软Azure的海外服务器上(国内拜访可能较慢)。
刨除初中时代牛刀小试的 ASP 不说,从2009年到2020年这11年间,我的博客代码横跨十几年 .NET 发展历程,从ASP.NET WebForm 2.0 VB.NET + Access 到此刻的ASP.NET MVC Core, C# 8 及 Azure SQL Database,亦整合了 Azure App Service、Azure DNS、Azure DevOps、Azure Active Directory、Azure Blob、Azure AD、Azure CDN 和 Application Insights 等技术。
(图:Moonglade博客系统运用的Azure服务)
谁是博客的受众?
在谈设计博客之前,咱们首要要知道,你的读者从何而来?搞清楚这一点后,才可够联想出用户将怎样运用你的制品。这亦正是本文所要介绍的博客的设计办法和要点。
研发和运营博客11年的经验累积和数据统计告诉我,针对一个常规技术博客,95%以上的流量来自于搜索引擎,并且都数状况下读者只查看这一篇她们所需要的文案,固定读者或订阅用户占总流量的比例相当少。这是因为技术博客分享的内容都数为处理一个详细的技术问题。而技术人员遇到技术问题的第1反应便是去搜索引擎查询有无人曾经遇到过并已然处理,有可能复制粘贴文案里的代码去处理自己项目里的问题后,就忘记了博主的存在。仅有真正觉得博主的文案有必定水平,才会起始浏览博客里的其他内容。
不难发掘,咱们的用户入口几乎便是搜索引擎,因此一个优秀的博客系统,并不是只做好文字功夫,需要海量思虑seo及其他针对设备和系统之间交互的博客协议,时刻思虑SEO亦是贯穿本文的重点。
本文并不教大众代码的设计、技术实现,而是教大众博客系统的设计思路和要点。至于技术方面,大名鼎鼎的WordPress、先辈们的 BlogEngine.NET,以及我的Moonglade,日前都已开源的,可供大众随时科研。
下篇我将介绍【博客基本功能设计要点】
敬请关注
汪宇杰博客
.NET | Azure | 微软MVP
长按扫码关注咱们
|