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

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

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

1.近期我是怎么写作的

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

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

  • 加粗快捷键: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 ,太谦善了。

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

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文档增加标题

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

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('---nn')
        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:UserslivingbodyGoworkspacesrcasouldocs-maindocszh-CNeBook"
    globdir = r"C:UserslivingbodyGoworkspacesrcasouldocs-maindocszh-CNeBook*.md"
    # 转写图片地址
    rewrite_dir_imgs(globdir)
    # 增加标题
    rewrite_dir(globdir)
    # 写toc.ini文件
    write_toc(basedir, globdir)

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

.asouldocs.exe web

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

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

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