-
-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(analytics)!: add post pageviews for GoatCounter #1543
feat(analytics)!: add post pageviews for GoatCounter #1543
Conversation
da96992
to
44ec7d3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you so much! While I didn't actually use a GoatCounter ID to test the code, I'm sure it's available. Also, I have a couple ideas to share with you:
-
For the UI design, I think the location of the view count would be more appropriate to the right of the reading time.
-
The reference to the JS of GoatCounter pageviews should be placed in
_includes/js-selector.html
, which will bring better web page rendering performance. -
The number to initialize the view count could be set to
1
instead of0
. -
i18n's
pageview_measure
was once used for Google Analaytics pageviews reporting, this feature was removed in refactor(core): remove GA page views report #1071 as UA was deprecated. i18n keeps it for future pageviews services (like goatcounter now).
44ec7d3
to
b503ba2
Compare
Thank you for taking the time to review the suggested changes and for sharing great ideas. I've made suggested changes for UI and JS injection location. Please take a quick look. Thank you very much. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we now have multiple web analytics options, wouldn't it be a good idea to improve the configured options to make it more compact similar to the comment system.
_config.yml
:
# Web Analytics Settings
analytics:
provider: # [google | goatcounter]
google:
id: # fill in your Google Analytics ID
goatcounter:
id: # fill in your GoatCounter ID
pv:
enabled: # boolean, the option for the post views counter, keep empty means disable
_includes/
folder:
_includes/
└── analytics
├── goatcounter.html
└── google.html
But doing so would require refactoring the existing google analytics code, what do you think?
Sure, I like the idea of merging configuration settings to have everything in a single configuration section. The only thing I would suggest changing is to allow using both analytics platforms at the same time. However, I wonder how breaking configuration changes will be released? Will it be part of a major release or will changes need to be back-compatible? Maybe not so big deal if you can mention that configuration should be adjusted accordingly in release notes. |
I favor the idea of using multiple analytics platforms at the same time, in which case the settings would have to be designed as: ## _config.yml
# Web Analytics Settings
analytics:
google:
id: # fill in your Google Analytics ID
goatcounter:
id: # fill in your GoatCounter ID Since pageviews can only display data from a single platform, the config options would be: ## _config.yml
# Pageviews settings
pageviews:
provider: # [google | goatcounter] Generally speaking, breaking changes should be released in the MAJOR version, and strictly enforcing this guideline would result in too many major releases. So for this feature, I prefer to release it on the MINOR version, and remind users of the changes in the release note. |
2c46a20
to
0baa0bb
Compare
Sounds good. Thanks. Configuration changes have been implemented and seems to work as expected. Please have a look. |
I've done a lot of refactoring, so if there are any thoughts on this, please let me know. |
The only thought is: It's nicely done 👍 I have enjoyed the solution with the spinner 🤩 and learnt something new. Thank you. |
4bc507e
to
7a31828
Compare
7a31828
to
46fa350
Compare
## [7.0.0](v6.5.5...v7.0.0) (2024-05-11) ### ⚠ BREAKING CHANGES * optimize the resource hints (#1717) * rename media-url file and related parameters (#1651) * rename comment setting parameter (#1563) * **analytics:** add post pageviews for GoatCounter (#1543) ### Features * add cloudflare web analytics ([#1723](#1723)) ([c17fba4](c17fba4)) * add support for embed video files ([#1558](#1558)) ([9592146](9592146)) * add support for giscus strict title matching ([#1614](#1614)) ([700fd5b](700fd5b)) * **analytics:** add post pageviews for GoatCounter ([#1543](#1543)) ([b641b3f](b641b3f)) * **analytics:** add Umami and Matomo tracking codes ([#1658](#1658)) ([61bdca2](61bdca2)) * change site verification settings ([#1561](#1561)) ([e436387](e436387)) * **deps:** move `MathJax` configuration to a separate file ([#1670](#1670)) ([44f552c](44f552c)) * display theme version in footer ([#1611](#1611)) ([8349314](8349314)) * **i18n:** allow `page.lang` to override `site.lang` ([#1586](#1586)) ([547b95c](547b95c)) * make post description customizable ([#1602](#1602)) ([f865336](f865336)) * **media:** support audio and video tag with multi sources ([#1618](#1618)) ([23be416](23be416)) ### Bug Fixes * make TOC title and entries visible at the same time ([#1711](#1711)) ([e0950fc](e0950fc)) * mode toggle not outlined when receiving keyboard focus ([#1690](#1690)) ([cd37f63](cd37f63)) * prevent footnote back arrow from becoming an emoji ([#1716](#1716)) ([8608147](8608147)) * **pwa:** skip range requests in service worker ([#1672](#1672)) ([76d58fe](76d58fe)) * search result prompt is empty ([#1583](#1583)) ([8a2afae](8a2afae)) * use `https` for Weibo sharing URL ([#1612](#1612)) ([8e5fbb7](8e5fbb7)) ### Improvements * improve <hr> visibility in dark mode ([#1565](#1565)) ([4ddd5c4](4ddd5c4)) * lean bootstrap javascript ([#1734](#1734)) ([ddb48ed](ddb48ed)) * rename comment setting parameter ([#1563](#1563)) ([f8390d4](f8390d4)) * replace jQuery with Vanilla JS ([#1681](#1681)) ([fe7afa3](fe7afa3)) * simplify mode toggle script ([#1692](#1692)) ([d4a6d64](d4a6d64)) * tree shaking Bootstrap CSS ([#1736](#1736)) ([363a3d9](363a3d9)) ### Changes * optimize the resource hints ([#1717](#1717)) ([dcb0add](dcb0add)) * rename media-url file and related parameters ([#1651](#1651)) ([9f8aeaa](9f8aeaa))
🎉 This PR is included in version 7.0.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
--------- Co-authored-by: Cotes Chung <11371340+cotes2020@users.noreply.github.com>
## [7.0.0](cotes2020/jekyll-theme-chirpy@v6.5.5...v7.0.0) (2024-05-11) ### ⚠ BREAKING CHANGES * optimize the resource hints (cotes2020#1717) * rename media-url file and related parameters (cotes2020#1651) * rename comment setting parameter (cotes2020#1563) * **analytics:** add post pageviews for GoatCounter (cotes2020#1543) ### Features * add cloudflare web analytics ([cotes2020#1723](cotes2020#1723)) ([c17fba4](cotes2020@c17fba4)) * add support for embed video files ([cotes2020#1558](cotes2020#1558)) ([9592146](cotes2020@9592146)) * add support for giscus strict title matching ([cotes2020#1614](cotes2020#1614)) ([700fd5b](cotes2020@700fd5b)) * **analytics:** add post pageviews for GoatCounter ([cotes2020#1543](cotes2020#1543)) ([b641b3f](cotes2020@b641b3f)) * **analytics:** add Umami and Matomo tracking codes ([cotes2020#1658](cotes2020#1658)) ([61bdca2](cotes2020@61bdca2)) * change site verification settings ([cotes2020#1561](cotes2020#1561)) ([e436387](cotes2020@e436387)) * **deps:** move `MathJax` configuration to a separate file ([cotes2020#1670](cotes2020#1670)) ([44f552c](cotes2020@44f552c)) * display theme version in footer ([cotes2020#1611](cotes2020#1611)) ([8349314](cotes2020@8349314)) * **i18n:** allow `page.lang` to override `site.lang` ([cotes2020#1586](cotes2020#1586)) ([547b95c](cotes2020@547b95c)) * make post description customizable ([cotes2020#1602](cotes2020#1602)) ([f865336](cotes2020@f865336)) * **media:** support audio and video tag with multi sources ([cotes2020#1618](cotes2020#1618)) ([23be416](cotes2020@23be416)) ### Bug Fixes * make TOC title and entries visible at the same time ([cotes2020#1711](cotes2020#1711)) ([e0950fc](cotes2020@e0950fc)) * mode toggle not outlined when receiving keyboard focus ([cotes2020#1690](cotes2020#1690)) ([cd37f63](cotes2020@cd37f63)) * prevent footnote back arrow from becoming an emoji ([cotes2020#1716](cotes2020#1716)) ([8608147](cotes2020@8608147)) * **pwa:** skip range requests in service worker ([cotes2020#1672](cotes2020#1672)) ([76d58fe](cotes2020@76d58fe)) * search result prompt is empty ([cotes2020#1583](cotes2020#1583)) ([8a2afae](cotes2020@8a2afae)) * use `https` for Weibo sharing URL ([cotes2020#1612](cotes2020#1612)) ([8e5fbb7](cotes2020@8e5fbb7)) ### Improvements * improve <hr> visibility in dark mode ([cotes2020#1565](cotes2020#1565)) ([4ddd5c4](cotes2020@4ddd5c4)) * lean bootstrap javascript ([cotes2020#1734](cotes2020#1734)) ([ddb48ed](cotes2020@ddb48ed)) * rename comment setting parameter ([cotes2020#1563](cotes2020#1563)) ([f8390d4](cotes2020@f8390d4)) * replace jQuery with Vanilla JS ([cotes2020#1681](cotes2020#1681)) ([fe7afa3](cotes2020@fe7afa3)) * simplify mode toggle script ([cotes2020#1692](cotes2020#1692)) ([d4a6d64](cotes2020@d4a6d64)) * tree shaking Bootstrap CSS ([cotes2020#1736](cotes2020#1736)) ([363a3d9](cotes2020@363a3d9)) ### Changes * optimize the resource hints ([cotes2020#1717](cotes2020#1717)) ([dcb0add](cotes2020@dcb0add)) * rename media-url file and related parameters ([cotes2020#1651](cotes2020#1651)) ([9f8aeaa](cotes2020@9f8aeaa))
--------- Co-authored-by: Cotes Chung <11371340+cotes2020@users.noreply.github.com>
## [7.0.0](cotes2020/jekyll-theme-chirpy@v6.5.5...v7.0.0) (2024-05-11) ### ⚠ BREAKING CHANGES * optimize the resource hints (cotes2020#1717) * rename media-url file and related parameters (cotes2020#1651) * rename comment setting parameter (cotes2020#1563) * **analytics:** add post pageviews for GoatCounter (cotes2020#1543) ### Features * add cloudflare web analytics ([cotes2020#1723](cotes2020#1723)) ([c17fba4](cotes2020@c17fba4)) * add support for embed video files ([cotes2020#1558](cotes2020#1558)) ([9592146](cotes2020@9592146)) * add support for giscus strict title matching ([cotes2020#1614](cotes2020#1614)) ([700fd5b](cotes2020@700fd5b)) * **analytics:** add post pageviews for GoatCounter ([cotes2020#1543](cotes2020#1543)) ([b641b3f](cotes2020@b641b3f)) * **analytics:** add Umami and Matomo tracking codes ([cotes2020#1658](cotes2020#1658)) ([61bdca2](cotes2020@61bdca2)) * change site verification settings ([cotes2020#1561](cotes2020#1561)) ([e436387](cotes2020@e436387)) * **deps:** move `MathJax` configuration to a separate file ([cotes2020#1670](cotes2020#1670)) ([44f552c](cotes2020@44f552c)) * display theme version in footer ([cotes2020#1611](cotes2020#1611)) ([8349314](cotes2020@8349314)) * **i18n:** allow `page.lang` to override `site.lang` ([cotes2020#1586](cotes2020#1586)) ([547b95c](cotes2020@547b95c)) * make post description customizable ([cotes2020#1602](cotes2020#1602)) ([f865336](cotes2020@f865336)) * **media:** support audio and video tag with multi sources ([cotes2020#1618](cotes2020#1618)) ([23be416](cotes2020@23be416)) ### Bug Fixes * make TOC title and entries visible at the same time ([cotes2020#1711](cotes2020#1711)) ([e0950fc](cotes2020@e0950fc)) * mode toggle not outlined when receiving keyboard focus ([cotes2020#1690](cotes2020#1690)) ([cd37f63](cotes2020@cd37f63)) * prevent footnote back arrow from becoming an emoji ([cotes2020#1716](cotes2020#1716)) ([8608147](cotes2020@8608147)) * **pwa:** skip range requests in service worker ([cotes2020#1672](cotes2020#1672)) ([76d58fe](cotes2020@76d58fe)) * search result prompt is empty ([cotes2020#1583](cotes2020#1583)) ([8a2afae](cotes2020@8a2afae)) * use `https` for Weibo sharing URL ([cotes2020#1612](cotes2020#1612)) ([8e5fbb7](cotes2020@8e5fbb7)) ### Improvements * improve <hr> visibility in dark mode ([cotes2020#1565](cotes2020#1565)) ([4ddd5c4](cotes2020@4ddd5c4)) * lean bootstrap javascript ([cotes2020#1734](cotes2020#1734)) ([ddb48ed](cotes2020@ddb48ed)) * rename comment setting parameter ([cotes2020#1563](cotes2020#1563)) ([f8390d4](cotes2020@f8390d4)) * replace jQuery with Vanilla JS ([cotes2020#1681](cotes2020#1681)) ([fe7afa3](cotes2020@fe7afa3)) * simplify mode toggle script ([cotes2020#1692](cotes2020#1692)) ([d4a6d64](cotes2020@d4a6d64)) * tree shaking Bootstrap CSS ([cotes2020#1736](cotes2020#1736)) ([363a3d9](cotes2020@363a3d9)) ### Changes * optimize the resource hints ([cotes2020#1717](cotes2020#1717)) ([dcb0add](cotes2020@dcb0add)) * rename media-url file and related parameters ([cotes2020#1651](cotes2020#1651)) ([9f8aeaa](cotes2020@9f8aeaa))
## [7.0.0](cotes2020/jekyll-theme-chirpy@v6.5.5...v7.0.0) (2024-05-11) ### ⚠ BREAKING CHANGES * optimize the resource hints (#1717) * rename media-url file and related parameters (#1651) * rename comment setting parameter (#1563) * **analytics:** add post pageviews for GoatCounter (#1543) ### Features * add cloudflare web analytics ([#1723](cotes2020/jekyll-theme-chirpy#1723)) ([ce53717](cotes2020/jekyll-theme-chirpy@ce53717)) * add support for embed video files ([#1558](cotes2020/jekyll-theme-chirpy#1558)) ([ec6fbc8](cotes2020/jekyll-theme-chirpy@ec6fbc8)) * add support for giscus strict title matching ([#1614](cotes2020/jekyll-theme-chirpy#1614)) ([49fc3a7](cotes2020/jekyll-theme-chirpy@49fc3a7)) * **analytics:** add post pageviews for GoatCounter ([#1543](cotes2020/jekyll-theme-chirpy#1543)) ([a19a00d](cotes2020/jekyll-theme-chirpy@a19a00d)) * **analytics:** add Umami and Matomo tracking codes ([#1658](cotes2020/jekyll-theme-chirpy#1658)) ([795f477](cotes2020/jekyll-theme-chirpy@795f477)) * change site verification settings ([#1561](cotes2020/jekyll-theme-chirpy#1561)) ([2240821](cotes2020/jekyll-theme-chirpy@2240821)) * **deps:** move `MathJax` configuration to a separate file ([#1670](cotes2020/jekyll-theme-chirpy#1670)) ([f13cfb3](cotes2020/jekyll-theme-chirpy@f13cfb3)) * display theme version in footer ([#1611](cotes2020/jekyll-theme-chirpy#1611)) ([9b30364](cotes2020/jekyll-theme-chirpy@9b30364)) * **i18n:** allow `page.lang` to override `site.lang` ([#1586](cotes2020/jekyll-theme-chirpy#1586)) ([615af0a](cotes2020/jekyll-theme-chirpy@615af0a)) * make post description customizable ([#1602](cotes2020/jekyll-theme-chirpy#1602)) ([8fc6757](cotes2020/jekyll-theme-chirpy@8fc6757)) * **media:** support audio and video tag with multi sources ([#1618](cotes2020/jekyll-theme-chirpy#1618)) ([30a6617](cotes2020/jekyll-theme-chirpy@30a6617)) ### Bug Fixes * make TOC title and entries visible at the same time ([#1711](cotes2020/jekyll-theme-chirpy#1711)) ([d6461d0](cotes2020/jekyll-theme-chirpy@d6461d0)) * mode toggle not outlined when receiving keyboard focus ([#1690](cotes2020/jekyll-theme-chirpy#1690)) ([b480ce2](cotes2020/jekyll-theme-chirpy@b480ce2)) * prevent footnote back arrow from becoming an emoji ([#1716](cotes2020/jekyll-theme-chirpy#1716)) ([68b9caa](cotes2020/jekyll-theme-chirpy@68b9caa)) * **pwa:** skip range requests in service worker ([#1672](cotes2020/jekyll-theme-chirpy#1672)) ([94a1401](cotes2020/jekyll-theme-chirpy@94a1401)) * search result prompt is empty ([#1583](cotes2020/jekyll-theme-chirpy#1583)) ([24eaef4](cotes2020/jekyll-theme-chirpy@24eaef4)) * use `https` for Weibo sharing URL ([#1612](cotes2020/jekyll-theme-chirpy#1612)) ([8ed2bb7](cotes2020/jekyll-theme-chirpy@8ed2bb7)) ### Improvements * improve <hr> visibility in dark mode ([#1565](cotes2020/jekyll-theme-chirpy#1565)) ([ece9ae0](cotes2020/jekyll-theme-chirpy@ece9ae0)) * lean bootstrap javascript ([#1734](cotes2020/jekyll-theme-chirpy#1734)) ([05341c8](cotes2020/jekyll-theme-chirpy@05341c8)) * rename comment setting parameter ([#1563](cotes2020/jekyll-theme-chirpy#1563)) ([30b3972](cotes2020/jekyll-theme-chirpy@30b3972)) * replace jQuery with Vanilla JS ([#1681](cotes2020/jekyll-theme-chirpy#1681)) ([99efa1e](cotes2020/jekyll-theme-chirpy@99efa1e)) * simplify mode toggle script ([#1692](cotes2020/jekyll-theme-chirpy#1692)) ([90ce15f](cotes2020/jekyll-theme-chirpy@90ce15f)) * tree shaking Bootstrap CSS ([#1736](cotes2020/jekyll-theme-chirpy#1736)) ([3892198](cotes2020/jekyll-theme-chirpy@3892198)) ### Changes * optimize the resource hints ([#1717](cotes2020/jekyll-theme-chirpy#1717)) ([ac3eb35](cotes2020/jekyll-theme-chirpy@ac3eb35)) * rename media-url file and related parameters ([#1651](cotes2020/jekyll-theme-chirpy#1651)) ([787cbeb](cotes2020/jekyll-theme-chirpy@787cbeb))
Type of change
Description
I've integrated and use GoatCounter for a while in my own codebase and since GoatCounter have been integrated into Chirpy, I'd like to incorporate changes for the post views counter. Other people also want this feature according to ref #1532.
Implementation
First, we need to connect GoatCounter in the config, and then enable views counter by specifying the source provider for it like it is done for comments. This is how it looks like in the UI currently.
Ideas
visibility: hidden
andvisibility: visible
styles to a parentspan
element. Here is an example.Additional context
Since I was surprised to find localized string
pageview_measure
, I suspect you may have other plans for the same feature in mind, or have passed similar way in the past that you can share. Anyways, let me know what do you think once you have a time. Thanks.