[TOC]
创建一个 和自己github id同名的 repositories,修改你想展示的文字到README.md,然后回到你的首页就有了。然后有大佬已经有写一些插件直接用,可以展示github的一些汇总信息,start数、commit数、issues数等
效果图
可以上我的github查看一下.
编写自动更新源码
采用golang
进行自动发布. blog采用的是hugo生成。 采用gorequest
获取blog生成的index.json
. 然后进行截取所需信息即可.
package main
import (
"bytes"
"crypto/tls"
"fmt"
"github.com/parnurzeal/gorequest"
"io/ioutil"
"log"
"net/http"
"time"
)
type blog struct {
Categories []string `json:"categories"`
Tags []string `json:"tags"`
Permalink string `json:"permalink"`
Title string `json:"title"`
Contents string `json:"contents"`
}
type Blogs []struct {
collet []blog
}
var (
githubUserName = "oldthreefeng"
// 取最新的6篇文章
max = 5
)
func main() {
res := make([]blog, 0)
response, data, errs := gorequest.New().TLSClientConfig(&tls.Config{InsecureSkipVerify: true}).
Get("https://www.fenghong.tech/index.json").EndStruct(&res)
if errs != nil || http.StatusOK != response.StatusCode {
log.Fatal(errs, data)
}
buf := &bytes.Buffer{}
buf.WriteString("\n\n")
cstSh, _ := time.LoadLocation("Asia/Shanghai")
updated := time.Now().In(cstSh).Format("2006-01-02 15:04:05")
buf.WriteString("### 我的近期动态\n\n⭐️ Star [个人主页](https://github.com/" + githubUserName + "/" + githubUserName + ") 后会自动更新,最近更新时间:`" + updated + "`\n\n")
for k, v := range res {
if k > max {
break
}
url := v.Permalink
title := v.Title
buf.WriteString("📝 * " + " [" + title + "](" + url + ")\n\n" + " \n")
}
buf.WriteString("\n\n")
fmt.Println(buf.String())
readme, err := ioutil.ReadFile("README.md")
if nil != err {
log.Fatalf("read README.md failed: %s", data)
}
startFlag := []byte("<!--events start -->")
beforeStart := readme[:bytes.Index(readme, startFlag)+len(startFlag)]
newBeforeStart := make([]byte, len(beforeStart))
copy(newBeforeStart, beforeStart)
endFlag := []byte("<!--events end -->")
afterEnd := readme[bytes.Index(readme, endFlag):]
newAfterEnd := make([]byte, len(afterEnd))
copy(newAfterEnd, afterEnd)
newReadme := append(newBeforeStart, buf.Bytes()...)
newReadme = append(newReadme, newAfterEnd...)
if err := ioutil.WriteFile("README.md", newReadme, 0644); nil != err {
log.Fatalf("write README.md failed: %s", data)
}
}
写完之后. 执行即可.
$ go run main.go
我的README模板如下. <!--events start --> , <!--events end -->
之间的都是go生成文章链接的.
Currently working on [JUNHSUE](https://www.junhsue.com/) Read [my blog](https://www.fenghong.tech/) or add my WeChat account:
<div align="center">
<p>
<img src="https://www.fenghong.tech/images/images/wechat-qrcode.png" width="300" alt="接引道人" />
</p>
</div>
### 我在 GitHub 上的统计

<!--events start -->
<!--events end -->
💗🌙💗🌙- [www.fenghong.tech](https://www.fenghong.tech)