Go语言搭建自己的博客
我是如何用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生气,万一我把用户全搞出去了,博客园不是没人了?其实博客园很好的,嘿嘿)。
五 总结
今天就介绍到这里了,行文仓促啊,可能很写的很多不对的地方,没办法,因为马上要春节了,这也算是完成了今年自己的一个任务,虽然是急急忙忙的,总算赶着春节前搞定了。----谨以此文献给所有喜欢开源和喜欢折腾的小伙伴们,最后祝博客园越来越好,祝所有的园友们新年快乐!
|
作者:Sirk
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
|
Go语言搭建自己的博客的更多相关文章
- 我是如何用Go语言搭建自己的博客的
前言: 话说,已经很久没有在博客园更新博客了,之前写的关于go语言的系列学习文章<让我们一起Go>也由于种种原因一度中断.但是,正如我之前在文章中所写,可以慢慢来,但是对于Go语言的学习却 ...
- 2015年12月12 Node.js实战(一)使用Express+MongoDB搭建多人博客
序,Node是基于V8引擎的服务器端脚本语言. 基础准备 Node.js: Express:本文用的是3.21.2版本,目前最新版本为4.13.3,Express4和Express3还是有较大区别,可 ...
- 第1章 Express MongoDB 搭建多人博客
学习环境 Node.js : 0.10.22 + Express : 3.4.4 + MongoDB : 2.4.8 + 快速开始 安装 Express express 是 Node.js 上最流行的 ...
- 如何搭建一个独立博客——简明Github Pages与Hexo教程
摘要:这是一篇很详尽的独立博客搭建教程,里面介绍了域名注册.DNS设置.github和Hexo设置等过程,这是我写得最长的一篇教程.我想将我搭建独立博客的过程在一篇文章中尽可能详细地写出来,希望能给后 ...
- Hexo + Github Pages搭建的个人博客
这个不算是新手的搭建流程,如果你恰巧看见这篇文章,希望你已经安装好node.git等软件,因为第一步的环境搭建准备并没有详写,默认都会了.希望能解决你的问题. 步骤: 一. 搭建环境准备 二.安装he ...
- 使用Hexo 搭建自己的博客
使用Hexo 搭建自己的博客 最近一直都想着如何去搭建属于自己的博客,有空的时候就写写文章什么的. 本人对该博客系统的要求是: 博文的编写要采用现在流行的MarkDown来进行编写. 本人还不想去注册 ...
- 怎么在阿里云搭建一个WordPress博客(超详细教程)
想以正确的方式启动一个 WordPress 博客吗?我知道,这可能是一个令人恐惧的想法 -- 其实你并不孤单.但是,在帮助很多用户创建博客之后,我决定编写一份详细的指南,让任何没有技术知识的人都能拥有 ...
- 基于ECS搭建云上博客
场景介绍 本文为您介绍如何基于ECS搭建云上博客. 背景知识 本场景主要涉及以下云产品和服务: 云服务器ECS 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能 ...
- 基于ECS搭建云上博客(云小宝码上送祝福,免费抽iphone13任务详解)
码上送祝福,带云小宝回家 做任务免费抽iphone13,还可得阿里云新春限量手办 日期:2021.12.27-2022.1.16 云小宝地址:https://developer.aliyun.com/ ...
随机推荐
- XStream 用法汇总
XStream是一家Java对象和XML转换工具,很好很强大.它提供了所有的基本型.排列.收集和其他类型的支持,直接转换.因此XML在数据交换经常使用.对象序列化(和Java对象的序列 ...
- BestCoder-Round#33
写在前面 这是我第一次做BestCoder, 熟悉的外观BestCoder模式. BC上不仅能看到英文, 背部Chinese view是中文题目 交的次数是会影响得分的. 所以有了把握再交. 至少例子 ...
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
原文:如何解决FormView中实现DropDownList连动选择时出现 "Eval().XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的 ...
- HDU4828 Grids 2014百度之星预赛问题解决
看看Catalan数的公式:为 Catalan(n) = C(2n, n) / n+1 = C(2n, n) - C(2n, n-1); (公式0) 然后利用全排序表达:Catalan(n) = (2 ...
- kobject_create_and_add
本文来源于源linux 3.14.3版本号/lib/kobject.c文件 /** * kobject_create_and_add - 动态地创建kobject结构和寄存器sysfs * * ...
- 经典弹出层Colorbox - a jQuery lightbox
Colorbox - a jQuery lightbox A lightweight customizable lightbox plugin for jQuery Fork me on GitHub ...
- POJ 2586 Y2K Accounting Bug(枚举洪水问题)
Y2K Accounting Bug Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10674 Accepted: 53 ...
- Redhat Linux挂载NTFS格式的移动硬盘
Redhat Linux挂载NTFS格式的移动硬盘 1. 选择下载ntfs-3g的源码包或rpm包 http://www.tuxera.com/community/open-source-ntfs-3 ...
- 《java系统性能调优》--1.发现瓶颈
性能啊!性能! 之所以想写写性能调优,也是有感于我们的项目,我们採用一些手段使得系统性能上升了一个台阶,总是须要把这点经验沉淀一下.随着工作的深入,关于系统性能的事肯定还有非常多,也算是通过这个系列文 ...
- 屏蔽webbrowser控件右键的一种方法
原文:屏蔽webbrowser控件右键的一种方法 Option ExplicitPrivate Declare Sub ZeroMemory Lib "KERNEL32" Alia ...