我是如何用Go语言搭建自己的博客的

摘要:
现在让我们进入正题:1.你会围棋吗?这是第一步。如果你知道围棋语言,你可以跳过这一步,进入下一步。第二,为什么我要使用Go语言来构建一个小型网站?它详细介绍了如何使用新主题。如果您想编写自己的主题,那么如果您了解Go语言、Css和javascript,应该非常简单。由于时间的原因,今天我们将不具体介绍如何定制您自己的主题。事实上,博客公园非常好。

前言:

话说,已经很久没有在博客园更新博客了,之前写的关于go语言的系列学习文章《让我们一起Go》也由于种种原因一度中断。但是,正如我之前在文章中所写,可以慢慢来,但是对于Go语言的学习却不会停止,当然不只是Go语言,对于.net技术还有其它等等等都不会停止。或许文章题目取得不太好(实在想不好名字了),因为题目中我特意强调了下是Go语言,不过我确实没有想表达XX语言更好的意思哦(或许是我想多了^_^)。因为经常有人会挑起语言或者技术之争,而且为了争论XXX语言更好而争的面红耳赤甚至人生攻击。如果只是单纯的技术讨论当然也是很好的,但是就是有些人会特别可怕,所以为了码农界的和平,这里需要澄清下--这里强调Go语言只是之前博主一直在学,然后确实是用它搞了一个小玩意罢了。对于用起来怎么样,因为虽然学很久,但是都是碎片时间学的,也算是新手,所以我也不说了,谁用谁知道嘛。而且对于像我这样什么都喜欢搞搞的,才不在乎有没有XXX有木有前途呢。正如刚来博客园时候,博主热情的学习silverlight一样,虽然现在它似乎不行了,但是我从来没后悔过(因为当时玩得很开心,也学到了很多),如果你也和我一样,喜欢玩玩这玩玩那,那我们或许是同一类人。很久没写东西,一上来就那么多废话,请谅解啊,太就没说话,太饥渴了。下面进入正题吧:

一 您是否知道Go语言?

这是第一步,如果您知道Go语言(这里的知道指的是可以用Go写点小程序,可以看懂Go写的程序代码),那么您可以跳过这,直接下一环节吧。如果您还不知道或者不了解,那你可以Google下,或者看看这里 。当然实在没有,也可以看看博主写的《让我们一起Go》(不过不建议看了,因为Go更新较快,有些内容可能过时了,而且写的似乎不怎么好)。

二 我为什么要用Go语言自己搞一个小网站?

到这里,我有必要说明下为什么我要自己搞一个网站(博客)呢?因为我瞎折腾,哈哈。其实博客园挺好的,除了博客园还有其它一些博客也挺好。但是呢,我就是喜欢折腾,于是通过jekyll在github上搞了下博客,似乎没什么难度。然后呢,不正学这Go语言嘛,就萌生了用Go试试看的想法,于是打算找个Go实现的类似东西,结果找到了一个叫hugo的项目,一看项目,我去,文件还挺多。但是对于我这样爱钻牛角尖的,用别人的东西,如果只是看下文档使用,似乎满足不了我,我必须得把它源码全搞明白。而且之前计划春节前必须用Go做点小东西实践下,于是乎我就开始纠结了,是重新造个破轮子呢还是用别人的?大概纠结了一天,我终于决定造个破轮子吧(^_^)。于是在接下来长达一个多的星期里,还是利用工作之余的时间完成了gosk 这个简单的Go实现的静态网站生成器(或许可以叫静态博客引擎,但是我觉得目前功能太简单,还是叫生成器比较适合)。相比前面提到的hugo,确实功能简单了很多,当然代码除去模版文件,代码也是非常简单和少的。虽然简单,但是对于我自己来说,目前已经够用了,当然需求总是会变的,以后还会继续修改完善。目前已经使用它部署了自己的一个小站,如果你已经迫不及待想看看效果可以点击这里 。博主最终决定,虽然是个破轮子,但是还是分享出来吧,对开源事业做点贡献呀。如果您是高手或者对这种折腾的事情没兴趣,似乎可以不用往下看了,因为下面我主要会介绍gosk的一些使用方法而不会介绍如何去造一个这样的轮子(因为这样不够一篇文章就能搞定的,或许以后博主学的再深入点会写一些这样的文章),同时非常抱歉浪费您那么多时间,一直从文章开头读到了这里:) 。如果你是新手,或者喜欢折腾,也想试试造轮子,可以随便fork gosk的源码并修改或者参考gosk的源码造自己的轮子,因为gosk是采用MIT License的。接下来,将为新手提供一个简单的使用教程。

三 使用gosk快速生成自己的博客

首先点这里 ,然后下载编译好的可执行文件(这里只介绍直接使用编译好的应用,而且在windows平台下,如果你想自己编译或者要使用其它平台,请点这里查看详细如何通过源码编译)。

我是如何用Go语言搭建自己的博客的第1张

如上图所示,可以下载可执行文件。

下载到本地后。

我是如何用Go语言搭建自己的博客的第2张

可以看到如上图的目录结构, 其中root目录下就是待生成的模版文件和各种资源文件,现在不用去管它。通过windows的命令提示行,进入到gosk.exe所在的目录,然后

1.运行gosk build

该命令是一个编译命令,如果一切顺利,您将看到在当前目录下会生成一个叫publish的目录,里面就是根据root目录中模板生成的html页面。

2.运行gosk run

这个命令将运行gosk的一个本地测试服务器,用来在本地调样式的时候,方便本地预览。运行后,可以打开http://localhost/ 就可以浏览生成的站点了。如果要在其它端口运行静态资源服务器,可以执行gosk run :8080 ,这里将会运行在8080端口。当然在真实环境不建议使用内置服务器(虽然博主的站点在使用),因为性能可能不够高,建议使用nginx等更合适的服务器。

四 如何自定义自己的个性化网站

gosk提供了自定义主题的功能,可以方便的编写自己的模板和主题。gosk默认提供了两个主题(其实是一个,只是语言不同)。如果想使用更多主题可以访问这里,这是一个gosk的辅助项目,主要用来提供主题的。里面有详细介绍如何使用新的主题。如果您想编写自己的主题,如果懂点Go语言和Css还要javascript,应该是很简单的,由于时间原因,今天就不具体介绍如何定制自己的主题了。如果您有好的主题,欢迎提交到这里与大家分享哦。

好吧,你还想问如何可以像博主一样将网站发布到公网,然后有自己的域名。这方法就很多了,可以用vps,可以用虚拟主机,甚至可以用树莓派。对于喜欢折腾的你相信这点应该难不倒你,这里就不详细说了(我怕dudu生气,万一我把用户全搞出去了,博客园不是没人了?其实博客园很好的,嘿嘿)。

五 总结

今天就介绍到这里了,行文仓促啊,可能很写的很多不对的地方,没办法,因为马上要春节了,这也算是完成了今年自己的一个任务,虽然是急急忙忙的,总算赶着春节前搞定了。----谨以此文献给所有喜欢开源和喜欢折腾的小伙伴们,最后祝博客园越来越好,祝所有的园友们新年快乐!

免责声明:文章转载自《我是如何用Go语言搭建自己的博客的》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序 云开发中部分用户获取不到unionIdOpenCL编程基本流程及完整示例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用GO语言开发editplus编辑器插件(附源码)

我要开发的插件功能极为简单,就是对用户选中的内容进行base64编码或解密工作. 其中所涉及的技术部分主要是GO语言程序开发和editplus插件配置的部分,首先我们来看一下GO语言代码的写法,如下: package mainimport ("encoding/base64""fmt""os")const (version string = "1.0")f...

[爬虫]采用Go语言爬取天猫商品页面

最近工作中有一个需求,需要爬取天猫商品的信息,整个需求的过程如下: 修改后端广告交易平台的代码,从阿里上传的素材中解析url,该url格式如下: https://handycam.alicdn.com/slideshow/26/7ef5aed1e3c39843e8feac816a436ecf.mp4?content=%7B%22items%22%3A%5B...

Go并发

  进程、线程、协程     进程:进程是操作系统资源分配的最小单位       进程有自己的虚拟地址空间,这个空间包括了各种资源,例如堆、栈,各种段,它们其实都是虚拟地址空间的一块区域。所以说进程是资源分配的最小单位。     线程:线程是操作系统任务调度和执行的最小单位。       线程包含在进程之中,是进程中实际运作单位     协程:线程中协作式...

go语言基础之工程管理和工作区介绍

1、工程管理         在实际的开发工作中,直接调用编译器进行编译和链接的场景是少而又少,因为在工程中不会简单到只有一个源代码文件,且源文件之间会有相互的依赖关系。如果这样一个文件一个文件逐步编译,那不亚于一场灾难。 Go语言的设计者作为行业老将,自然不会忽略这一点。早期Go语言使用makefile作为临时方案,到了Go 1发布时引入了强大无比的Go...

【Go语言】连接数据库SQLite、MySQL、Oracle

本文目录 1.Go连接SQLite 1_1.SQLite推荐驱动 1_2.SQLite连接示例代码 2.Go连接MySQL 2_1.MySQL推荐驱动 2_2.MySQL连接示例代码 3.Go连接Oracle 3_1.Oracle推荐驱动以及准备事项 3_2.Oracle连接示例代码 说明:go语言连接数据库不像Java那么方便,本文分...

Go优秀开源项目推荐

前言   本文主要是收集Go语言开发的一些优秀项目和框架,个人见识有限肯定还有很多优秀的Go项目没有收录的,假如大家有好的Go项目可以在文末留言(排名不分先后)。 Go优秀项目收集仓库 GolangFamily​github.com/GolangFamily awesome-go 精选的 Go 框架、库和软件的精选列表。 https://github.c...