当前位置: 首页 > Web前端 > HTML

技术人如何使用github+Jekyll搭建一个独立自由的技术博客

时间:2023-04-02 23:20:17 HTML

上次有人留言说技术博客是程序员的标配,但据我所知,大部分技术同学还是没有自己的自己的技术博客。原因有很多,有的懒得写,有的怕写不好,还有的一直想憋一个大招,幻想完美后再发出,结果还是胎死腹中。但实际上,更多的程序员并不知道如何搭建博客。其实现在搭建个人技术博客非常简单。构建它的最简单方法是使用GitHubPages+Jekyll。我的博客使用了这项技术。GitHubPagesGithubPages是一个面向用户、组织和项目开放的公共静态页面构建托管服务。网站可以免费托管在Github上。您可以选择使用GithubPages提供的默认域名github.io或自定义域名发布站点。GithubPages支持自动使用Jekyll生成站点,也支持纯HTML文档。在GithubPages上托管你的Jekyll站点是一个不错的选择。使用GithubPages搭建博客有以下优势:完全免费,包括服务器、流量、域名。建立技术博客是完全免费的。写博客就是提交代码,让写作和编程的体验保持一致。支持自己绑定域名提供流行的网页主题模板,缺点是:不支持动态内容,博客必须是静态网页,一般使用Jekyll构建内容。博客不能被百度收录,因为Github和百度有宿怨,所以Github屏蔽了百度。仓库空间不超过1G月流量不超过100G每小时更新不超过10次GithubPages使用Jekyll构建内容,那么Jekyll是什么?Jekyll简介Jekyll是一个简单的博客式静态站点制作机器。它有一个模板目录,其中包含原始文本格式的文档,通过转换器(例如Markdown)和我们的Liquid渲染器将其转换为一个成熟的可发布静态网站,您可以在任何您喜欢的服务器上发布该网站。Jekyll也可以在GitHubPage上运行,即你可以使用GitHub的服务来构建你的项目页面、博客或网站,而且它是完全免费的。脚本内容如下:cd/usr/local/ityouknow.github.iogitpullhttp://github.com/ityouknow/ityouknow.github.io.gitjekyllbuild--destination=/usr/share/nginx/html执行这个脚本的前提是安装好gitjekyll环境。网上有很多案例,这里就不一一赘述了。Jekyll环境的搭建和使用可以参考这里:https://jekyllcn.com/docs/home/automateddeployment这两天看到方志鹏在搞自动化部署,就按照他的步骤做了练习一下,非常好用,所以填写自动部署部分。在开发过程中配置WebhookWebhook是一种通过通常的回调来添加或更改网页或Web应用程序行为的方法。这些回调可以由与站点或应用程序的原始开发无关的第三方用户和开发人员维护、修改和管理。Webhook一词最早由JeffLindsay于2007年在计算机科学Hooks项目中创造。说白了,代码仓库收到代码提交后,会自动触发一个url类型的通知,你可以根据这个通知做一些事情,比如提交代码后自动部署项目。我们的自动部署博客也是采用了这种机制。Github自带Webhook功能,我们直接配置即可。在Github仓库的项目界面,比如这个博客项目https://github.com/ityouknow/ityouknow.github.io,点击Setting->Webhooks->AddWebhook,添加Webhooks的配置信息。我的配置信息如下:PayloadURL:http://www.ityouknow.com/deployContenttype:application/jsonSecret:123456如下图:服务端接受推送我们需要在服务端建立一个服务Github提交代码后接收推送的博客,从而触发Deployed脚本。Github上有一个开源项目可以做这个github-webhook-handler。){console.log(text)});//成功后执行的脚本})脚本的作用是开启一个监听端口接收请求,接收到请求后执行部署脚本。脚本内容的要点已用注释标出。部署博客的脚本如下:depoly.shecho`date`cd/usr/local/ityouknow.github.ioechostartpullfromgithubgitpullhttp://github.com/ityouknow/ityouknow.github.io.gitecho开始构建..jekyllbuild--destination=/usr/share/nginx/html只是为了拉取代码并部署它。这个脚本的启动需要借助Node中的一个forever管理器。forever可以看作是一个nodejs守护进程,可以启动、停止和重启我们的应用程序。