共计 2929 个字符,预计需要花费 8 分钟才能阅读完成。
在咱们生存的年代,博客并不稀奇,甚至能够说是随处可见。从最早的搜狐、新浪博客,再到每个人都曾记录青春的 QQ 空间,再到当初的 Vlog 与 Plog,仿佛领有一个本人的博客并不是什么难事。然而想要本人从零开始搭建一个杰出的博客零碎,则并非那么简略。可能有些懂技术的小伙伴会说,看上去只是简略的对文章 CRUD 就行了,也没有那么简单啊。然而,真的是这样吗,这背地可能暗藏着更多玄机期待着咱们去开掘。掐指一算,我建设本人的博客已有 11 年,也见过许多程序员本人编写博客零碎,但真正按标准和规范设计的性能齐备的博客少之又少。本文我将分享本人在博客零碎设计中积攒的教训,介绍一些鲜为人知的博客技术,帮忙想要搭建博客的小伙伴们进一步理解如何设计一个优良的博客零碎。
因为文章篇幅较长,本文将分为 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.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.1 时区真的全用 UTC?
6.2 HTML 还是 Markdown
6.3 MVC 还是 SPA
6.4 平安 - 结束语
“博客”的前世今生
博客一开始不叫 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,构建了我的第一个集体网站,主题竟然是黑客技术(年少无知,认为十分酷炫)。除了原创及转载技术文章,也提供罕用软件工具下载等服务,有时候还伪装大学生帮人实现 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/Mo…)目前博客地址是 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% 以上的流量来自于搜索引擎,并且少数状况下读者只查看这一篇他们所须要的文章,固定读者或订阅用户占总流量的比例相当少。这是因为技术博客分享的内容少数为解决一个具体的技术问题。而技术人员遇到技术问题的第一反馈就是去搜索引擎查找有没有人已经遇到过并曾经解决,有可能复制粘贴文章里的代码去解决本人我的项目里的问题后,就遗记了博主的存在。只有真正感觉博主的文章有肯定程度,才会开始浏览博客里的其余内容。
不难发现,咱们的用户入口简直就是搜索引擎,所以一个优良的博客零碎,并不是只做好文字功夫,须要大量思考 SEO 及其他针对机器和零碎之间交互的博客协定,时刻思考 SEO 也是贯通本文的重点 。
本文并不教大家代码的设计、技术实现,而是教大家博客零碎的设计思路和要点。至于技术方面,赫赫有名的 WordPress、前辈们的 BlogEngine.NET,以及我的 Moonglade,目前都已开源的,可供大家随时钻研。
今天我将介绍【博客根本功能设计要点】敬请关注!
扫码关注微软 MSDN,获取更多微软一手技术信息和官网学习材料!