前言:

话说,已经很久没有在博客园更新博客了,之前写的关于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生气,万一我把用户全搞出去了,博客园不是没人了?其实博客园很好的,嘿嘿)。

五 总结

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

我是如何用Go语言搭建自己的博客的的更多相关文章

  1. Go语言搭建自己的博客

    我是如何用Go语言搭建自己的博客的   前言: 话说,已经很久没有在博客园更新博客了,之前写的关于go语言的系列学习文章<让我们一起Go>也由于种种原因一度中断.但是,正如我之前在文章中所 ...

  2. 使用Hexo 搭建自己的博客

    使用Hexo 搭建自己的博客 最近一直都想着如何去搭建属于自己的博客,有空的时候就写写文章什么的. 本人对该博客系统的要求是: 博文的编写要采用现在流行的MarkDown来进行编写. 本人还不想去注册 ...

  3. 基于hexo+github搭建一个独立博客

    一直听说用hexo搭建一个拥有自己域名的博客是很酷炫的事情~,在这十一花上半个小时整个hexo博客岂不美哉. 使用Hexo吸引我的是,其简单优雅, 而且风格多变, 适合程序员搭建个人博客,而且支持多平 ...

  4. 2015年12月12 Node.js实战(一)使用Express+MongoDB搭建多人博客

    序,Node是基于V8引擎的服务器端脚本语言. 基础准备 Node.js: Express:本文用的是3.21.2版本,目前最新版本为4.13.3,Express4和Express3还是有较大区别,可 ...

  5. 第1章 Express MongoDB 搭建多人博客

    学习环境 Node.js : 0.10.22 + Express : 3.4.4 + MongoDB : 2.4.8 + 快速开始 安装 Express express 是 Node.js 上最流行的 ...

  6. 如何搭建一个独立博客——简明Github Pages与Hexo教程

    摘要:这是一篇很详尽的独立博客搭建教程,里面介绍了域名注册.DNS设置.github和Hexo设置等过程,这是我写得最长的一篇教程.我想将我搭建独立博客的过程在一篇文章中尽可能详细地写出来,希望能给后 ...

  7. WordPress 建站教程:新手搭建 WordPress个人博客图文教程(完全版)

    前言 WordPress 作为动态博客的代表,至今已经有十几年历史,而且一直在更新发展中,功能强大,插件和主题丰富,WordPress搭建使用也很方便.作为个人站长和博主,很多都是从 WordPres ...

  8. Hexo + Github Pages搭建的个人博客

    这个不算是新手的搭建流程,如果你恰巧看见这篇文章,希望你已经安装好node.git等软件,因为第一步的环境搭建准备并没有详写,默认都会了.希望能解决你的问题. 步骤: 一. 搭建环境准备 二.安装he ...

  9. 怎么在阿里云搭建一个WordPress博客(超详细教程)

    想以正确的方式启动一个 WordPress 博客吗?我知道,这可能是一个令人恐惧的想法 -- 其实你并不孤单.但是,在帮助很多用户创建博客之后,我决定编写一份详细的指南,让任何没有技术知识的人都能拥有 ...

随机推荐

  1. 深入理解 CSS 的 :before 和 :after 选择器(制作select下拉列表美化插件)

    原文链接:http://www.cnblogs.com/LY-leo/p/5765598.html 对于 :before 和 :after 选择器,大家并不陌生,但是很少有人会主动去用它们.先解释下它 ...

  2. paip. 混合编程的实现resin4 (自带Quercus ) 配置 php 环境

    paip. 混合编程的实现resin4 (自带Quercus ) 配置 php 环境 #---混合编程的类型 1.代码inline 方式 2.使用库/api  解析方式. #----配置resin 支 ...

  3. paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较

    paip.php 5.0 5.3 5.4  5.5 -6.0的新特性总结与比较 PHP5的新特性 2 · 对象的参照过渡是默认的(default) 3 · 引入访问属性的限制 3 · 引入访问方法的限 ...

  4. paip.java OutOfMemoryError 解决方法o33

    paip.java OutOfMemoryError 解决方法o33 java.lang.OutOfMemoryError: Requested # java.lang.OutOfMemoryErro ...

  5. Leetcode 283 Move Zeroes 字符串

    class Solution { public: void moveZeroes(vector<int>& nums) { ; ; i< nums.size(); ++i){ ...

  6. 还有人在用SQL Server 2000或2005吗? 2014来了!

    你的项目,还在用SQL Server 2000或2005吗? 很多人甚至还没有来得及用过SQL Server 2008,SQL Server 2012,现在SQL Server 2014已经出来了! ...

  7. 使用Excel制作万年历(可打印)

    先来看看A4纸打印效果,其他功能后续继续完善中. 年份数据字典(农历节日) 农历节日表 年度 春节 元宵节 龙抬头 端午节 六月六 七月七 七月十五 仲秋节 除夕 2010年02月14日 2010年0 ...

  8. GET请求中URL的最大长度限制总结

    由于jsonp跨域请求只能通过get请求,url长度根据浏览器及服务器的不同而有不同限制. 若要支持IE的话,最大的长度为2083字符,若是中文字符的话只有2083/9=231个字符. 若是Chrom ...

  9. Jquery EasyUI封装简化操作

    //confirm function Confirm(msg, control) { $.messager.confirm('确认', msg, function (r) { if (r) { eva ...

  10. Lucene 4.X 倒排索引原理与实现: (2) 倒排表的格式设计

    1. 定长编码 最容易想到的方式就是常用的普通二进制编码,每个数值占用的长度相同,都占用最大的数值所占用的位数,如图所示. 这里有一个文档ID列表,254,507,756,1007,如果按照二进制定长 ...