我的Go学习文库(菜鸟入门Go语言必看必看必看)

9,039 阅读4分钟

我的Go学习文库(菜鸟入门Go语言必看必看必看)

  • 菜鸟入门Go语言必看必看必看
  • 菜鸟入门Go语言必看必看必看
  • 菜鸟入门Go语言必看必看必看

开始学习Go语言不是一天两天了,而是三四天了,在掘金大大的鼓励下,不断将学习推向一个又一个高潮。在零散学习的同时碰到一个新问题就是身居山中没宽带,只能网络流量上网,而且不稳定,这就急需一个离线文档,下面向各位看官详细介绍我的解决方案。

1.近期我是怎么写作的

谈起近期写作,不得不大谈特谈了。之前用typora,奈何收费了,收费是好事情,支持作者,如果用的话一定付费。目前学习Go语言,用的是vscode,当然优先支持vscode了,话不多说,直接插件搜索markdown,下载markdown插件(别的不说,就挑第一个好了,插件全名:Markdown All in One),选了一个人气爆款的插件开始写作,想预览的时候可以预览,效果杠杠的,支持快捷键,很方便。下面将常用操作记录如下:

markdown.jpg

  • 加粗快捷键:Ctrl/Cmd + B Toggle bold
  • Ctrl/Cmd + I Toggle italic
  • Alt+S (on Windows) Toggle strikethrough1
  • Ctrl + Shift + ] Toggle heading (uplevel)
  • Ctrl + Shift + [ Toggle heading (downlevel)
  • Ctrl/Cmd + M Toggle math environment
  • Alt + C Check/Uncheck task list item
  • Ctrl/Cmd + Shift + V Toggle preview
  • Ctrl/Cmd + K V Toggle preview to side

学到哪儿写道哪儿了,学习就是这样子了,特别是自学了。上面是一些常用快捷键,用快捷键会方便很多。

2.近期我的学习资料是什么?

近期学习,我首选的是开源的学习书籍**《The Way to Go》,《Go入门指南》,中文正式名《Go 入门指南》**

书籍地址:github.com/unknwon/the…

作者是Go语言的狂热爱好者,录制视频教程《Go编程基础》。作者太谦虚了,特别厉害的一个人,我在跟他的github学习。同时据作者讲,该翻译版本已获得原作者(Ivo Balbaert)本人授权,并表示支持开源事业的发展!

特别要说明的是作者的githu id叫做 unknown ,太谦虚了。

way-to-go.jpg

3.搭建本地学习文库

这本开源书用markdown写的,特别好,但是用起来很麻烦,就是文件名全是编号,读起来,特别是跳转起来很麻烦,怎么办呢,我想离线本地阅读啊。

说到这里,我打开作者的github,发现了一个宝藏开源仓库 github.com/asoul-sig/a… ,这是用Go语言写的一个web多文档系统,主打markdown,正好满足我的需要。

下面请大家看看我是怎么将电子书转成web本地小说阅读模式的。

  • 1.下载书籍仓库(看2的介绍)
  • 2.下载asoul文档仓库
  • 3.编译asoul文档软件
  • 4.在asoul下新建docs目录
  • 5.新建toc.ini文档
  • 6.批量为markdown文档添加标题

asoul.jpg

4.代码部分

涉及到toc.ini文档建立以及为markdown文档添加标题,手工党当然是不可以的了(太累),用python几行代码搞定,下面放出来大家学习下。

import os
from pathlib import Path
import glob


def getname(filename):
    return Path(filename).stem.strip('.md')


def gettitle(filename):
    with open(filename, 'r', encoding='utf-8') as f:
        title = f.readline()
        title = title.strip("#").strip(' ').strip("\n")
    return title


# ---
# title: 配置反向代理
# ---
def rewrite(filename):
    title = gettitle(filename)
    with open(filename, "r+", encoding='utf-8') as f:
        old = f.read()
        f.seek(0)
        f.write('---\n')
        f.write("title: " + title + '\n')
        f.write('---\n\n')
        f.write(old)


def replace_img(filename):
    title = gettitle(filename)
    with open(filename, "r+", encoding='utf-8') as f:
        old = f.read()
        old = old.replace(r'![](images/', r'![](../../assets/')
        print(type(old))
        print(old)
        f.seek(0)
        f.write(old)


def rewrite_dir_imgs(basedir):
    for file in glob.glob(basedir):
        replace_img(file)


def rewrite_dir(basedir):
    for file in glob.glob(basedir):
        rewrite(file)


def write_toc(basedir, globdir):
    with open(os.path.join(basedir, 'toc.ini'), 'w', encoding='utf-8') as f:
        for file in glob.glob(globdir):
            f.write('-: ' + getname(file) + '\n')
    print("toc.ini written finished.")


if __name__ == "__main__":
    basedir = r"C:\Users\livingbody\Goworkspace\src\asouldocs-main\docs\zh-CN\eBook"
    globdir = r"C:\Users\livingbody\Goworkspace\src\asouldocs-main\docs\zh-CN\eBook\*.md"
    # 转写图片地址
    rewrite_dir_imgs(globdir)
    # 添加标题
    rewrite_dir(globdir)
    # 写toc.ini文件
    write_toc(basedir, globdir)

代码部分就这么多,很简单吧。 再在命令行下执行

.\asouldocs.exe web

启动Go电子书,就可以美美的如同看小说一样看书啦。

ebook.jpg

本文正在参加技术专题18期-聊聊Go语言框架