go的text/template源码解析

go的模板库一直缺少indent的功能,于是我决定自己造个轮子来解决这个问题

为了造出好用,贴近源生态的轮子,所以我决定把text/template的源码熟读一遍

本篇只是粗略的讲解模板的各个模块,不会深入函数细节

首先基本用法开始

基本用法

我们这里用的是text_template中example_test的ExampleTemplate()作为例子

通过一下命令创建一个text模板,其中Must函数表示处理错误并panic,New表示创建一个空模板,解析模板内容的逻辑在Parse函数中

然后通过t.Execute把模板渲染出来

go module无法拉取库的原因排查

有个同事问我go module突然无法拉取他写的某个库了,报了个以下错误,而且他说昨天还能拉,今天突然不行了,并且不久前又刚好重启过gitlab服务器,所以想确认是不是gitlab某些配置改了

package xxx.internel.io/lib/with-lfs: unknown import path "xxx.internel.io/lib/with-lfs": downloaded zip file too large

在多方信息干扰下我先从gitlab查起,当然比较竟然叫 go module无法拉取库的原因排查,问题自然不在这,在我确保gitlab的配置和重启前完全一致后,并且排除了git lfs导致的问题,我把怀疑目标移到了go module上

在一番google我找到了 issue 应该就是对应这个问题的,但一直没有close,看来是没解决

但我不甘心,好歹找到问题了,如果得到的答案是无法解决这半天时间岂不是浪费了,于是乎我开始查看go源码,找到downloaded zip file too large关键字对应的行

kubernetes官方kubeadm部署笔记

老的k8s环境太乱,而且版本太老,但因为历史原因无法更新,于是我觉得在新的测试服部署一台新的k8s集群,并把所有服务慢慢迁移到新集群来

这里做一个k8s部署(踩坑)笔记


归档 下一页