mirror of
https://github.com/eiblog/eiblog.git
synced 2026-02-08 15:52:25 +08:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c515e33e2c | ||
|
|
5b12dd625b | ||
|
|
9b918caccd | ||
|
|
2be53379e1 | ||
|
|
944e27c58a | ||
|
|
92baf970bc |
@@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
|
### [2.2.9](https://github.com/eiblog/eiblog/compare/v2.2.8...v2.2.9) (2023-09-25)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* google analytics not work, supported ga4 measurement protocol ([9b918ca](https://github.com/eiblog/eiblog/commit/9b918caccd9fd7faff7d253693e075ccd0150c17))
|
||||||
|
|
||||||
### [2.2.8](https://github.com/eiblog/eiblog/compare/v2.2.7...v2.2.8) (2023-07-12)
|
### [2.2.8](https://github.com/eiblog/eiblog/compare/v2.2.7...v2.2.8) (2023-07-12)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ appname: eiblog
|
|||||||
database:
|
database:
|
||||||
driver: sqlite
|
driver: sqlite
|
||||||
source: ./db.sqlite
|
source: ./db.sqlite
|
||||||
eshost:
|
eshost: # http://elasticsearch:9200
|
||||||
eiblogapp:
|
eiblogapp:
|
||||||
mode:
|
mode:
|
||||||
name: cmd-eiblog
|
name: cmd-eiblog
|
||||||
@@ -28,10 +28,9 @@ eiblogapp:
|
|||||||
publickey: wdSgxRm9rdGAlLKFcFdToBe3GT4SibmV7Y8EjJQ0r4GWXeKtxpopMAeIeoI2dTEg
|
publickey: wdSgxRm9rdGAlLKFcFdToBe3GT4SibmV7Y8EjJQ0r4GWXeKtxpopMAeIeoI2dTEg
|
||||||
accesstoken: 50023908f39f4607957e909b495326af
|
accesstoken: 50023908f39f4607957e909b495326af
|
||||||
google: # 谷歌分析
|
google: # 谷歌分析
|
||||||
url: https://www.google-analytics.com/collect
|
url: https://www.google-analytics.com/g/collect
|
||||||
tid: UA-xxxxxx-1
|
tid: G-xxxxxxxxxx
|
||||||
v: "1"
|
v: "2"
|
||||||
t: pageview
|
|
||||||
adsense: <script data-ad-client="ca-pub-5384494508691406" async src=""></script>
|
adsense: <script data-ad-client="ca-pub-5384494508691406" async src=""></script>
|
||||||
qiniu: # 七牛OSS
|
qiniu: # 七牛OSS
|
||||||
bucket: eiblog
|
bucket: eiblog
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
backup:
|
backup:
|
||||||
image: deepzz0/backup:latest
|
image: deepzz0/backup:latest
|
||||||
|
#command: ./backend --restore true
|
||||||
volumes:
|
volumes:
|
||||||
- ${PWD}/conf:/app/conf
|
- ${PWD}/conf:/app/conf
|
||||||
links:
|
links:
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||

|

|
||||||
|
|
||||||
### 图片懒加载
|
### 图片懒加载
|
||||||
博客系统提供图片懒加载功能(浏览到某个位置,图片才会加载),以此来提高页面加载速度。我们可根据需要是否使用。当然由此带来的坏处就是rss不能够正确加载图片。后续看是否解决这个问题或朋友提PR。
|
博客系统提供图片懒加载功能(浏览到某个位置,图片才会加载),以此来提高页面加载速度。我们可根据需要是否使用。~~当然由此带来的坏处就是rss不能够正确加载图片。后续看是否解决这个问题或朋友提PR。~~,已解决。
|
||||||
|
|
||||||
首先看下图片的`markdown`标准写法:
|
首先看下图片的`markdown`标准写法:
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ type Google struct {
|
|||||||
URL string `yaml:"url"`
|
URL string `yaml:"url"`
|
||||||
Tid string `yaml:"tid"`
|
Tid string `yaml:"tid"`
|
||||||
V string `yaml:"v"`
|
V string `yaml:"v"`
|
||||||
T string `yaml:"t"`
|
|
||||||
AdSense string `yaml:"adsense"`
|
AdSense string `yaml:"adsense"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
htemplate "html/template"
|
htemplate "html/template"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -335,27 +336,34 @@ func handleDisqusCreate(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// handleBeaconPage 服务端推送谷歌统计
|
// handleBeaconPage 服务端推送谷歌统计
|
||||||
|
// https://www.thyngster.com/ga4-measurement-protocol-cheatsheet/
|
||||||
func handleBeaconPage(c *gin.Context) {
|
func handleBeaconPage(c *gin.Context) {
|
||||||
ua := c.Request.UserAgent()
|
ua := c.Request.UserAgent()
|
||||||
|
|
||||||
vals := c.Request.URL.Query()
|
vals := c.Request.URL.Query()
|
||||||
vals.Set("v", config.Conf.EiBlogApp.Google.V)
|
vals.Set("v", config.Conf.EiBlogApp.Google.V)
|
||||||
vals.Set("tid", config.Conf.EiBlogApp.Google.Tid)
|
vals.Set("tid", config.Conf.EiBlogApp.Google.Tid)
|
||||||
vals.Set("t", config.Conf.EiBlogApp.Google.T)
|
|
||||||
cookie, _ := c.Cookie("u")
|
cookie, _ := c.Cookie("u")
|
||||||
vals.Set("cid", cookie)
|
vals.Set("cid", cookie)
|
||||||
|
|
||||||
vals.Set("dl", c.Request.Referer())
|
vals.Set("dl", c.Request.Referer()) // document location
|
||||||
vals.Set("uip", c.ClientIP())
|
vals.Set("en", "page_view") // event name
|
||||||
|
vals.Set("sct", "1") // Session Count
|
||||||
|
vals.Set("seg", "1") // Session Engagment
|
||||||
|
vals.Set("_uip", c.ClientIP()) // user ip
|
||||||
|
vals.Set("_p", fmt.Sprint(201226219+rand.Intn(499999999))) // random page load hash
|
||||||
|
vals.Set("_ee", "1") // external event
|
||||||
go func() {
|
go func() {
|
||||||
req, err := http.NewRequest("POST", config.Conf.EiBlogApp.Google.URL,
|
url := config.Conf.EiBlogApp.Google.URL + "?" + vals.Encode()
|
||||||
strings.NewReader(vals.Encode()))
|
req, err := http.NewRequest("POST", url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Error("HandleBeaconPage.NewRequest: ", err)
|
logrus.Error("HandleBeaconPage.NewRequest: ", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
req.Header.Set("User-Agent", ua)
|
req.Header.Set("User-Agent", ua)
|
||||||
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
req.Header.Set("Sec-Ch-Ua", c.GetHeader("Sec-Ch-Ua"))
|
||||||
|
req.Header.Set("Sec-Ch-Ua-Platform", c.GetHeader("Sec-Ch-Ua-Platform"))
|
||||||
|
req.Header.Set("Sec-Ch-Ua-Mobile", c.GetHeader("Sec-Ch-Ua-Mobile"))
|
||||||
res, err := http.DefaultClient.Do(req)
|
res, err := http.DefaultClient.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Error("HandleBeaconPage.Do: ", err)
|
logrus.Error("HandleBeaconPage.Do: ", err)
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{{define "ana_js"}}
|
{{define "ana_js"}}
|
||||||
!function(e,n,o){var t=e.screen,a=encodeURIComponent,r=["dt="+a(n.title),"dr="+a(n.referrer),"ul="+(o.language||o.browserLanguage),"sd="+t.colorDepth+"-bit","sr="+t.width+"x"+t.height,"_="+ +new Date],i="?"+r.join("&");e.__beacon_img=new Image,e.__beacon_img.src="/beacon.html"+i}(window,document,navigator,location);
|
!function(e,n,o){var t=e.screen,a=encodeURIComponent,r=["dt="+a(n.title),"dr="+a(n.referrer),"ul="+(o.language||o.browserLanguage).toLowerCase(),"sd="+t.colorDepth+"-bit","sr="+t.width+"x"+t.height,"_="+ +new Date],i="?"+r.join("&");e.__beacon_img=new Image,e.__beacon_img.src="/beacon.html"+i}(window,document,navigator,location);
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|||||||
Reference in New Issue
Block a user