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


    前言:

    话说,已经很久没有在博客园更新博客了,之前写的关于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平台下,如果你想自己编译或者要使用其它平台,请点这里查看详细如何通过源码编译)。

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

    下载到本地后。

    可以看到如上图的目录结构, 其中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生气,万一我把用户全搞出去了,博客园不是没人了?其实博客园很好的,嘿嘿)。

    五 总结

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

  • 相关阅读:
    Python3网络学习案例三:编写web server
    struct.pack()和struct.unpack() 详解(转载)
    Python3网络学习案例二:traceroute详解
    Redis 配置
    vue之this.$route.params和this.$route.query的区别
    解决bugs: mybatisPlus 分页不能生效
    解决bug :"status":400,"error":"Bad Request","message":"Required request body is missing:
    vue,ElementUI中Switch 开关,switch 打开时的值为数字,该如何设置
    解决bug:vue项目中点击修改按钮,不能显示要修改的分类名字
    The 'Access-Control-Allow-Origin' header contains multiple values'*, *', but only one is allowed.
  • 原文地址:https://www.cnblogs.com/vimsk/p/3536217.html
Copyright © 2020-2023  润新知