mirror of
https://github.com/BBaoVanC/bbaovanc.com.git
synced 2025-07-05 19:47:30 -05:00
Compare commits
1 Commits
test1
...
categories
Author | SHA1 | Date | |
---|---|---|---|
346a01d6d3
|
73
.github/workflows/audit.yml
vendored
73
.github/workflows/audit.yml
vendored
@ -2,75 +2,20 @@ name: Audit
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
|
||||||
- test1
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lighthouse:
|
lighthouse:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Setup Hugo
|
- name: Checkount
|
||||||
uses: peaceiris/actions-hugo@v2
|
|
||||||
with:
|
|
||||||
hugo-version: latest
|
|
||||||
extended: true
|
|
||||||
|
|
||||||
- name: Checkout (pull_request)
|
|
||||||
if: github.event.pull_request
|
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: ${{ github.event.pull_request.base.ref }}
|
ref: ${{github.event.pull_request.head.ref}}
|
||||||
|
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||||
- name: Checkout (push)
|
|
||||||
if: github.event_name == 'push'
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
fetch-depth: 0
|
|
||||||
ref: ${{ github.event.before }}
|
|
||||||
|
|
||||||
- name: Build previous commit
|
|
||||||
run: |
|
|
||||||
hugo --printI18nWarnings --printPathWarnings --baseURL https://localhost -d old/
|
|
||||||
|
|
||||||
- name: Checkout current commit
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
fetch-depth: 0
|
|
||||||
clean: false
|
|
||||||
|
|
||||||
- name: Build current commit
|
|
||||||
run: |
|
|
||||||
hugo --printI18nWarnings --printPathWarnings --baseURL https://localhost
|
|
||||||
cp -r public/ new/
|
|
||||||
# copy, so that public/ stays, it will be needed for Caddy to serve
|
|
||||||
|
|
||||||
- name: Save full diff
|
|
||||||
run: diff -r old/ new/ | tee changes.diff || true
|
|
||||||
|
|
||||||
- name: Upload full diff
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: diff
|
|
||||||
path: changes.diff
|
|
||||||
|
|
||||||
- name: Find changed URLs
|
|
||||||
id: changed_urls
|
|
||||||
env:
|
|
||||||
SCHEME: https
|
|
||||||
DOMAIN: localhost
|
|
||||||
run: |
|
|
||||||
urls="$(./changed-urls.sh)"
|
|
||||||
urls="${urls//'%'/'%25'}"
|
|
||||||
urls="${urls//$'\n'/'%0A'}"
|
|
||||||
urls="${urls//$'\r'/'%0D'}"
|
|
||||||
echo "::set-output name=urls::$urls"
|
|
||||||
|
|
||||||
- name: Install Caddy
|
- name: Install Caddy
|
||||||
if: "${{ steps.changed_urls.outputs.urls != '' }}"
|
|
||||||
run: |
|
run: |
|
||||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
|
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
|
||||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
||||||
@ -78,12 +23,19 @@ jobs:
|
|||||||
sudo apt install caddy
|
sudo apt install caddy
|
||||||
sudo systemctl disable --now caddy
|
sudo systemctl disable --now caddy
|
||||||
|
|
||||||
|
- name: Setup Hugo
|
||||||
|
uses: peaceiris/actions-hugo@v2
|
||||||
|
with:
|
||||||
|
hugo-version: latest
|
||||||
|
extended: true
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: hugo --printI18nWarnings --printPathWarnings --baseURL https://localhost
|
||||||
|
|
||||||
- name: Compress
|
- name: Compress
|
||||||
if: "${{ steps.changed_urls.outputs.urls != '' }}"
|
|
||||||
run: time ./compress.sh
|
run: time ./compress.sh
|
||||||
|
|
||||||
- name: Audit using Lighthouse
|
- name: Audit using Lighthouse
|
||||||
if: "${{ steps.changed_urls.outputs.urls != '' }}"
|
|
||||||
uses: treosh/lighthouse-ci-action@v9
|
uses: treosh/lighthouse-ci-action@v9
|
||||||
with:
|
with:
|
||||||
uploadArtifacts: true
|
uploadArtifacts: true
|
||||||
@ -92,7 +44,6 @@ jobs:
|
|||||||
serverBaseUrl: https://lhci.bbaovanc.com/
|
serverBaseUrl: https://lhci.bbaovanc.com/
|
||||||
# this should be safe since it only allows adding (not deleting) data
|
# this should be safe since it only allows adding (not deleting) data
|
||||||
serverToken: 926a24f2-90e4-48b1-809f-055b9408cf4b
|
serverToken: 926a24f2-90e4-48b1-809f-055b9408cf4b
|
||||||
urls: ${{ steps.changed_urls.outputs.urls }}
|
|
||||||
|
|
||||||
|
|
||||||
audit:
|
audit:
|
||||||
|
2
.github/workflows/pull_request_cleanup.yml
vendored
2
.github/workflows/pull_request_cleanup.yml
vendored
@ -1,7 +1,7 @@
|
|||||||
name: Pull Request Cleanup
|
name: Pull Request Cleanup
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request_target:
|
pull_request:
|
||||||
types:
|
types:
|
||||||
- closed
|
- closed
|
||||||
|
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
diff -qrN old/ new/ |
|
|
||||||
grep -oP '(?<=\s)new\/\S*' |
|
|
||||||
xargs -d '\n' ls -1d 2>/dev/null |
|
|
||||||
grep 'index.html$' |
|
|
||||||
sed 's/index.html$//' |
|
|
||||||
sed "s/^new/${SCHEME:=http}:\/\/${DOMAIN:=example.com}/"
|
|
@ -21,8 +21,8 @@ related:
|
|||||||
indices:
|
indices:
|
||||||
#- name: keywords
|
#- name: keywords
|
||||||
# weight: 100
|
# weight: 100
|
||||||
- name: categories
|
#- name: categories
|
||||||
weight: 80
|
# weight: 80
|
||||||
- name: tags
|
- name: tags
|
||||||
weight: 80
|
weight: 80
|
||||||
- name: date
|
- name: date
|
||||||
@ -44,7 +44,6 @@ params:
|
|||||||
# used for "View source" (unset by default)
|
# used for "View source" (unset by default)
|
||||||
gitFileURL: https://github.com/BBaoVanC/bbaovanc.com/blob/master
|
gitFileURL: https://github.com/BBaoVanC/bbaovanc.com/blob/master
|
||||||
gitFileIcon: code
|
gitFileIcon: code
|
||||||
gitHistoryURL: https://github.com/BBaoVanC/bbaovanc.com/commits/master
|
|
||||||
|
|
||||||
# display a "Latest Posts" section on the homepage below its content
|
# display a "Latest Posts" section on the homepage below its content
|
||||||
homepageLatestPosts: true
|
homepageLatestPosts: true
|
||||||
@ -56,7 +55,6 @@ params:
|
|||||||
linkedin: true
|
linkedin: true
|
||||||
reddit: true
|
reddit: true
|
||||||
telegram: true
|
telegram: true
|
||||||
print: true
|
|
||||||
|
|
||||||
# show "Latest Posts" section at bottom of content pages
|
# show "Latest Posts" section at bottom of content pages
|
||||||
latestPostsOnContent: true
|
latestPostsOnContent: true
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 14 KiB |
@ -1,144 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Using GitHub Actions to audit my website with Google Chrome Lighthouse
|
|
||||||
date: 2022-05-07T00:54:11-05:00
|
|
||||||
lastmod: 2022-05-07T00:54:11-05:00
|
|
||||||
toc: true
|
|
||||||
comments: true
|
|
||||||
|
|
||||||
authors:
|
|
||||||
- bbaovanc
|
|
||||||
|
|
||||||
categories:
|
|
||||||
- devops
|
|
||||||
- meta
|
|
||||||
|
|
||||||
tags:
|
|
||||||
- caddy
|
|
||||||
- github-actions
|
|
||||||
- google-lighthouse
|
|
||||||
|
|
||||||
# this will be shown for the article in list pages and in the page metadata
|
|
||||||
# it can be either an image or video (this might change in the future, however)
|
|
||||||
resources:
|
|
||||||
- name: feature
|
|
||||||
src: dashboard-performance-graph.webp
|
|
||||||
title: Picture of the `Performance` section on the Lighthouse CI dashboard
|
|
||||||
|
|
||||||
- name: youtube-embed-performance-comparison
|
|
||||||
src: youtube-embed-performance-comparison.webp
|
|
||||||
title: >-
|
|
||||||
Performance hit caused by adding a YouTube embed. You can see the
|
|
||||||
comparison itself [on this comparison
|
|
||||||
page](https://lhci.bbaovanc.com/app/projects/bbaovanc.com/compare/01d2064b6fac?baseUrl=https%3A%2F%2Flocalhost%2Fblog%2Fthe-redesign-of-my-website%2F&compareUrl=https%3A%2F%2Flocalhost%2Fblog%2Fyoutube-url-structures-you-should-know%2F&baseBuild=01d2064b-6fac-40df-b4e6-373037ae1f9e).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
The other day I set up automatic testing of my website using [Google Chrome
|
|
||||||
Lighthouse][google-lighthouse]. I'm also running my own Lighthouse CI server to
|
|
||||||
store test result history and show trends. Here's an outline of what this means,
|
|
||||||
some of the results I've obtained so far, and my thoughts on the usefulness of
|
|
||||||
Lighthouse.
|
|
||||||
|
|
||||||
[google-lighthouse]: https://developers.google.com/web/tools/lighthouse
|
|
||||||
|
|
||||||
<!--more-->
|
|
||||||
|
|
||||||
## What is Lighthouse?
|
|
||||||
|
|
||||||
Lighthouse is a tool developed by Google which audits websites and gives them a
|
|
||||||
score in four categories: *Performance*, *Accessibility*, *Best Practices*, and
|
|
||||||
*SEO (search engine optimization)*. It's also built into the developer console
|
|
||||||
in Chrome, so you can run it manually on any website you want directly inside
|
|
||||||
your browser.
|
|
||||||
|
|
||||||
I have already been using Lighthouse manually to do occasional tests on my
|
|
||||||
website and its theme, [bobatheme][bobatheme]. However, I recently came across
|
|
||||||
[this GitHub Action][lhci-action]. It caught my eye because I was [already using
|
|
||||||
GitHub Actions][old-audit-workflow] to perform a few basic Hugo[^hugo]-related
|
|
||||||
audits found [in a thread on the Hugo forum][hugo-audits-thread].
|
|
||||||
|
|
||||||
[^hugo]: [Hugo](https://gohugo.io) is the framework that my website is built on. It's
|
|
||||||
a static site generator which generates my site according to my own custom
|
|
||||||
templates that make up my theme.
|
|
||||||
|
|
||||||
[bobatheme]: https://github.com/BBaoVanC/bobatheme
|
|
||||||
[lhci-action]: https://github.com/marketplace/actions/lighthouse-ci-action
|
|
||||||
[old-audit-workflow]: https://github.com/BBaoVanC/bbaovanc.com/blob/31e25c2578a789afe71ce90352747eb427ca3c0e/.github/workflows/audit.yml#L31-L59
|
|
||||||
[hugo-audits-thread]: https://discourse.gohugo.io/t/audit-your-published-site-for-problems/35184
|
|
||||||
|
|
||||||
## Setting it all up
|
|
||||||
|
|
||||||
My goal is to run Lighthouse's audits on an environment as similar to my real
|
|
||||||
website's deployment as possible.
|
|
||||||
|
|
||||||
First, I [created a separate `lighthouse` job on my audit
|
|
||||||
workflow][lighthouse-actions-job] on GitHub Actions. This job will do all of the
|
|
||||||
testing. Since it's a separate job, it runs in parallel with my existing audit
|
|
||||||
task.
|
|
||||||
|
|
||||||
[lighthouse-actions-job]: https://github.com/BBaoVanC/bbaovanc.com/blob/3668b6cfb11d09149b5da347219cdc75d0ce0985/.github/workflows/audit.yml#L7
|
|
||||||
|
|
||||||
Next, I copied [my existing build steps verbatim][production-build-steps]. This
|
|
||||||
makes the site effectively identical to my real deployment on bbaovanc.com. One
|
|
||||||
of the crucial steps is to pre-compress all the files so their compressed
|
|
||||||
versions can be served without the server having to compress them on-the-fly,
|
|
||||||
saving valuable processing power.
|
|
||||||
|
|
||||||
[production-build-steps]: https://github.com/BBaoVanC/bbaovanc.com/blob/db65e9fc23b840429f5c9ad2b43d7dd01a024f36/.github/workflows/deploy.yml#L22-L33
|
|
||||||
|
|
||||||
Serving the compressed files is crucial because it simulates the real world
|
|
||||||
transfer size of the files. In addition, Lighthouse will recommend that you
|
|
||||||
serve the files compressed.
|
|
||||||
|
|
||||||
Inside the audit environment I use the same webserver (Caddy) and a [similar
|
|
||||||
configuration][audit-caddy-config] (compared to the [one running on
|
|
||||||
bbaovanc.com][production-caddy-config]) to what I have running on bbaovanc.com.
|
|
||||||
Caddy also is able to easily run the demo site with HTTPS, even on localhost.
|
|
||||||
That allows it to test certain elements (such as the comment section) that
|
|
||||||
wouldn't be allowed to load if it were plain, unsecured HTTP.
|
|
||||||
|
|
||||||
[audit-caddy-config]: https://github.com/BBaoVanC/bbaovanc.com/blob/3668b6cfb11d09149b5da347219cdc75d0ce0985/Caddyfile
|
|
||||||
[production-caddy-config]: https://git.bbaovanc.com/configs/caddy/src/commit/e3227eb2a2679e27545c2417c2565941f03fb744/conf.d/bbaovanc.com
|
|
||||||
|
|
||||||
{{< see-also "/blog/caddy-is-the-best-webserver" >}}
|
|
||||||
|
|
||||||
I selected [a few significant pages on my website][lighthouse-urls] so
|
|
||||||
Lighthouse can test a wide range of the features in my website's theme. The
|
|
||||||
results of these tests are then uploaded to [my Lighthouse CI
|
|
||||||
server][lhci-dashboard]. There you can view the audit history and see
|
|
||||||
differences in results between builds.
|
|
||||||
|
|
||||||
[lighthouse-urls]: https://github.com/BBaoVanC/bbaovanc.com/blob/3668b6cfb11d09149b5da347219cdc75d0ce0985/lighthouserc.yaml#L4-L19
|
|
||||||
[lhci-dashboard]: https://lhci.bbaovanc.com/app/projects/bbaovanc.com/dashboard
|
|
||||||
|
|
||||||
## What I found from the tests
|
|
||||||
|
|
||||||
### Performance impact of a YouTube video
|
|
||||||
|
|
||||||
I found that embedding a YouTube video using the built-in shortcode in Hugo
|
|
||||||
made the website drastically slower. It's a lot clearer in the audit environment
|
|
||||||
where everything is throttled down a bunch, so the performance impact is more
|
|
||||||
clear. Below is a screenshot of the difference in score between my blog post
|
|
||||||
with a YouTube embed and a similarly sized blog post which has no video.
|
|
||||||
|
|
||||||
{{< figure src="youtube-embed-performance-comparison" >}}
|
|
||||||
|
|
||||||
I can probably optimize this a little by making a copy of the built-in Hugo
|
|
||||||
YouTube shortcode, and modifying it to defer the loading of the remote scripts.
|
|
||||||
That will have to be a future project, and I'll probably write a post if I ever
|
|
||||||
end up testing it.
|
|
||||||
|
|
||||||
## My thoughts on Lighthouse
|
|
||||||
|
|
||||||
You can make the argument that the results from Lighthouse don't really mean
|
|
||||||
much in the real world. On modern devices and a decent internet speed most
|
|
||||||
websites will load just fine.
|
|
||||||
|
|
||||||
Although most pages on my site have a perfect score from Lighthouse, I'm not
|
|
||||||
going to go way out of my way in order to keep it that way. After all,
|
|
||||||
Lighthouse is just a tool intended for "improving the quality of web
|
|
||||||
pages."[^improve-quality-quote] That doesn't mean it needs to be perfect.
|
|
||||||
|
|
||||||
[^improve-quality-quote]: Source: [Google
|
|
||||||
Developers](https://developers.google.com/web/tools/lighthouse)
|
|
Binary file not shown.
Before Width: | Height: | Size: 33 KiB |
@ -11,6 +11,7 @@ authors:
|
|||||||
|
|
||||||
categories:
|
categories:
|
||||||
- meta
|
- meta
|
||||||
|
- newsletter
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- bobanews
|
- bobanews
|
||||||
|
@ -12,7 +12,6 @@ authors:
|
|||||||
categories:
|
categories:
|
||||||
- linux
|
- linux
|
||||||
- sysadmin
|
- sysadmin
|
||||||
- software
|
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- caddy
|
- caddy
|
||||||
|
@ -12,9 +12,11 @@ authors:
|
|||||||
- bbaovanc
|
- bbaovanc
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
|
- github-copilot
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- github-copilot
|
- copilot
|
||||||
|
- github
|
||||||
|
|
||||||
series:
|
series:
|
||||||
- github-copilot-experiments
|
- github-copilot-experiments
|
||||||
|
@ -13,12 +13,14 @@ aliases:
|
|||||||
- posts/edited-in-middle-of-message-discord/
|
- posts/edited-in-middle-of-message-discord/
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
|
- discord
|
||||||
- guides
|
- guides
|
||||||
- tips-and-tricks
|
- tips-and-tricks
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- discord
|
|
||||||
- discord-tricks
|
- discord-tricks
|
||||||
|
- right-to-left-embedding
|
||||||
|
- rle-character
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- name: feature
|
- name: feature
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Four
|
|
||||||
date: 2022-05-09T17:20:17-05:00
|
|
||||||
lastmod: 2022-05-09T17:20:17-05:00
|
|
||||||
toc: true
|
|
||||||
comments: true
|
|
||||||
draft: true
|
|
||||||
|
|
||||||
authors:
|
|
||||||
- bbaovanc
|
|
||||||
|
|
||||||
categories:
|
|
||||||
- archetype-stuff
|
|
||||||
|
|
||||||
tags:
|
|
||||||
- awesome
|
|
||||||
|
|
||||||
series:
|
|
||||||
- archetype
|
|
||||||
|
|
||||||
# this will be shown for the article in list pages and in the page metadata
|
|
||||||
# it can be either an image or video (this might change in the future, however)
|
|
||||||
resources:
|
|
||||||
- name: feature
|
|
||||||
src: something.webp
|
|
||||||
title: Some image (image format can be anything; webp is just an example)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
This page is about something. All the content before the "more" HTML comment
|
|
||||||
below will become the summary, which will be used in list pages and in the meta
|
|
||||||
tags on the article.
|
|
||||||
|
|
||||||
Or, if you don't want your description to be at the top of the article, you can
|
|
||||||
set your own `description` in the front matter and it will override this. See
|
|
||||||
the [Content Summaries](https://gohugo.io/content-management/summaries/) page on
|
|
||||||
the Hugo docs for more information.
|
|
||||||
|
|
||||||
<!--more-->
|
|
||||||
|
|
||||||
## Something
|
|
||||||
|
|
||||||
All the content below the "more" HTML comment above is part of the article
|
|
||||||
itself.
|
|
@ -10,11 +10,12 @@ authors:
|
|||||||
- bbaovanc
|
- bbaovanc
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
- programming
|
- github-copilot
|
||||||
- tinkering
|
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- github-copilot
|
- copilot
|
||||||
|
- github
|
||||||
|
- programming
|
||||||
|
|
||||||
series:
|
series:
|
||||||
- github-copilot-experiments
|
- github-copilot-experiments
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: One
|
|
||||||
date: 2022-05-09T16:15:55-05:00
|
|
||||||
lastmod: 2022-05-09T16:15:55-05:00
|
|
||||||
toc: true
|
|
||||||
comments: true
|
|
||||||
|
|
||||||
authors:
|
|
||||||
- bbaovanc
|
|
||||||
|
|
||||||
categories:
|
|
||||||
- archetype-stuff
|
|
||||||
|
|
||||||
tags:
|
|
||||||
- awesome
|
|
||||||
|
|
||||||
series:
|
|
||||||
- archetype
|
|
||||||
|
|
||||||
# this will be shown for the article in list pages and in the page metadata
|
|
||||||
# it can be either an image or video (this might change in the future, however)
|
|
||||||
resources:
|
|
||||||
- name: feature
|
|
||||||
src: something.webp
|
|
||||||
title: Some image (image format can be anything; webp is just an example)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
This page is about something. All the content before the "more" HTML comment
|
|
||||||
below will become the summary, which will be used in list pages and in the meta
|
|
||||||
tags on the article.
|
|
||||||
|
|
||||||
Or, if you don't want your description to be at the top of the article, you can
|
|
||||||
set your own `description` in the front matter and it will override this. See
|
|
||||||
the [Content Summaries](https://gohugo.io/content-management/summaries/) page on
|
|
||||||
the Hugo docs for more information.
|
|
||||||
|
|
||||||
<!--more-->
|
|
||||||
|
|
||||||
## Something
|
|
||||||
|
|
||||||
All the content below the "more" HTML comment above is part of the article
|
|
||||||
itself.
|
|
@ -13,10 +13,10 @@ aliases:
|
|||||||
- /blog/posts/text-substitution-in-discord-using-sed/
|
- /blog/posts/text-substitution-in-discord-using-sed/
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
|
- discord
|
||||||
- tips-and-tricks
|
- tips-and-tricks
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- discord
|
|
||||||
- discord-tricks
|
- discord-tricks
|
||||||
- sed
|
- sed
|
||||||
|
|
||||||
|
@ -10,12 +10,12 @@ authors:
|
|||||||
- bbaovanc
|
- bbaovanc
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
|
- bobatheme
|
||||||
- meta
|
- meta
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- bobatheme
|
|
||||||
- hugo
|
- hugo
|
||||||
- web-development
|
- web-design
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- name: feature
|
- name: feature
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Three
|
|
||||||
date: 2022-05-09T17:20:16-05:00
|
|
||||||
lastmod: 2022-05-09T17:20:16-05:00
|
|
||||||
toc: true
|
|
||||||
comments: true
|
|
||||||
draft: true
|
|
||||||
|
|
||||||
authors:
|
|
||||||
- bbaovanc
|
|
||||||
|
|
||||||
categories:
|
|
||||||
- archetype-stuff
|
|
||||||
|
|
||||||
tags:
|
|
||||||
- awesome
|
|
||||||
|
|
||||||
series:
|
|
||||||
- archetype
|
|
||||||
|
|
||||||
# this will be shown for the article in list pages and in the page metadata
|
|
||||||
# it can be either an image or video (this might change in the future, however)
|
|
||||||
resources:
|
|
||||||
- name: feature
|
|
||||||
src: something.webp
|
|
||||||
title: Some image (image format can be anything; webp is just an example)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
This page is about something. All the content before the "more" HTML comment
|
|
||||||
below will become the summary, which will be used in list pages and in the meta
|
|
||||||
tags on the article.
|
|
||||||
|
|
||||||
Or, if you don't want your description to be at the top of the article, you can
|
|
||||||
set your own `description` in the front matter and it will override this. See
|
|
||||||
the [Content Summaries](https://gohugo.io/content-management/summaries/) page on
|
|
||||||
the Hugo docs for more information.
|
|
||||||
|
|
||||||
<!--more-->
|
|
||||||
|
|
||||||
## Something
|
|
||||||
|
|
||||||
All the content below the "more" HTML comment above is part of the article
|
|
||||||
itself.
|
|
@ -1,45 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Two
|
|
||||||
date: 2022-05-09T17:20:15-05:00
|
|
||||||
lastmod: 2022-05-09T17:20:15-05:00
|
|
||||||
toc: true
|
|
||||||
comments: true
|
|
||||||
draft: true
|
|
||||||
|
|
||||||
authors:
|
|
||||||
- bbaovanc
|
|
||||||
|
|
||||||
categories:
|
|
||||||
- archetype-stuff
|
|
||||||
|
|
||||||
tags:
|
|
||||||
- awesome
|
|
||||||
|
|
||||||
series:
|
|
||||||
- archetype
|
|
||||||
|
|
||||||
# this will be shown for the article in list pages and in the page metadata
|
|
||||||
# it can be either an image or video (this might change in the future, however)
|
|
||||||
resources:
|
|
||||||
- name: feature
|
|
||||||
src: something.webp
|
|
||||||
title: Some image (image format can be anything; webp is just an example)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
This page is about something. All the content before the "more" HTML comment
|
|
||||||
below will become the summary, which will be used in list pages and in the meta
|
|
||||||
tags on the article.
|
|
||||||
|
|
||||||
Or, if you don't want your description to be at the top of the article, you can
|
|
||||||
set your own `description` in the front matter and it will override this. See
|
|
||||||
the [Content Summaries](https://gohugo.io/content-management/summaries/) page on
|
|
||||||
the Hugo docs for more information.
|
|
||||||
|
|
||||||
<!--more-->
|
|
||||||
|
|
||||||
## Something
|
|
||||||
|
|
||||||
All the content below the "more" HTML comment above is part of the article
|
|
||||||
itself.
|
|
@ -10,9 +10,11 @@ authors:
|
|||||||
- bbaovanc
|
- bbaovanc
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
|
- github-copilot
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- github-copilot
|
- copilot
|
||||||
|
- github
|
||||||
- markdown
|
- markdown
|
||||||
|
|
||||||
series:
|
series:
|
||||||
|
@ -10,11 +10,10 @@ authors:
|
|||||||
- bbaovanc
|
- bbaovanc
|
||||||
|
|
||||||
categories:
|
categories:
|
||||||
- tips-and-tricks
|
- url-structures
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
- query-parameters
|
- query-parameters
|
||||||
- url-structures
|
|
||||||
- youtube
|
- youtube
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: DevOps
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Posts about toolchain and software pipeline stuff. The abbreviation means
|
|
||||||
software development (Dev) plus IT operations (Ops). Includes things such as
|
|
||||||
CI/CD (GitHub Actions).
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Programming
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Any posts relating to programming and/or software development.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Software
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Posts that discuss/review various programs.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Tinkering
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Posts where I experiment with things.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
title: Github Copilot Experiments
|
title: Github Copilot Experiments
|
||||||
|
|
||||||
---
|
description: >-
|
||||||
|
|
||||||
Make sure to read the last two posts where I made GitHub Copilot write a blog
|
Make sure to read the last two posts where I made GitHub Copilot write a blog
|
||||||
post itself.
|
post itself.
|
||||||
|
|
||||||
<!--more-->
|
---
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Arch Linux
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
A Linux distribution which aims to be lightweight, flexible, and simple. See
|
|
||||||
https://archlinux.org for more information.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,12 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: bobanews
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
The main name for my newsletter. I recommend you read the [blog post I wrote
|
|
||||||
about it][newsletter-post].
|
|
||||||
|
|
||||||
[newsletter-post]: {{< ref "/blog/blog-post-newsletter" >}}
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Caddy
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Caddy is a powerful and open source webserver written in [Golang][golang] which
|
|
||||||
includes some fancy features such as built-in automatic HTTPS. It's by far my
|
|
||||||
favorite webserver. See my [blog post about Caddy][caddy-blog-post] for why.
|
|
||||||
|
|
||||||
[golang]: https://go.dev/
|
|
||||||
[caddy-blog-post]: {{< ref "/blog/caddy-is-the-best-webserver" >}}
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: checkra1n
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
An [iOS jailbreak][ios-jailbreaking] which supports the iPhone 4s to the iPhone
|
|
||||||
X. See the [official checkra1n website][checkra1n-website] for more information.
|
|
||||||
|
|
||||||
[ios-jailbreaking]: https://en.wikipedia.org/wiki/IOS_jailbreaking
|
|
||||||
[checkra1n-website]: https://checkra.in/
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Discord Tricks
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Tips and tricks I have learned about Discord.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Gitea
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Gitea is a lightweight self-hosted Git service similar to GitHub. I use it on
|
|
||||||
[bbaovanc's Gitea][bbaovanc-gitea] and [bobatea][bobatea].
|
|
||||||
|
|
||||||
[bbaovanc-gitea]: https://git.bbaovanc.com
|
|
||||||
[bobatea]: https://git.boba.best
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Github Actions
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Any posts that talk about GitHub's CI/CD platform. This is what I use for
|
|
||||||
automatic tasks on my website, such as automatic audits, and automatic building
|
|
||||||
and deploying.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Google Lighthouse
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Lighthouse is a tool that can audit websites based on performance,
|
|
||||||
accessibility, SEO, and more. It also provides useful suggestions on how a
|
|
||||||
website can be improved.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Hugo
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Hugo is a static site generator which I use to generate this website.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,12 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: listmonk
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
A self-hosted newsletter manager which I use to handle my blog post newsletter.
|
|
||||||
Read [this blog post][newsletter-blog-post] for more information.
|
|
||||||
|
|
||||||
[newsletter-blog-post]: {{< ref "/blog/blog-post-newsletter" >}}
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Markdown
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Markdown is a simple and easy to use markup language which is actually used to
|
|
||||||
write the content on this website. Writing it only requires learning a very
|
|
||||||
basis syntax, and using a plain-text editor.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: sed
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Short for "stream editor", `sed` is a utility used to edit text on Unix systems.
|
|
||||||
It is usually used with regular expressions (regex for short). If you're
|
|
||||||
interested, look up "regex basics" and "sed basics", or something similar.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: systemd
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
`systemd` is by far the most popular service manager (known as an "init system")
|
|
||||||
used on Linux.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Web Development
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Posts about developing for the internet.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: Webserver
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Blog posts about webservers (software that runs websites).
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
title: YouTube
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
One of the most popular video and social media platforms. If you don't know what
|
|
||||||
YouTube is, I don't know what to tell you.
|
|
||||||
|
|
||||||
<!--more-->
|
|
@ -3,20 +3,18 @@
|
|||||||
-->
|
-->
|
||||||
<style>
|
<style>
|
||||||
#isso-thread > h4 {
|
#isso-thread > h4 {
|
||||||
color: var(--text-1);
|
color: var(--text-normal);
|
||||||
margin-bottom: 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#isso-root .isso-comment:not(:first-of-type),
|
#isso-root .isso-comment:not(:first-of-type),
|
||||||
.isso-follow-up .isso-comment {
|
.isso-follow-up .isso-comment {
|
||||||
border-color: var(--background-highlight);
|
border-color: var(--background-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.isso-comment > .isso-text-wrapper > .isso-comment-header .isso-author,
|
.isso-comment > .isso-text-wrapper > .isso-comment-header .isso-author,
|
||||||
.isso-comment > .isso-text-wrapper > .isso-comment-header .isso-page-author-suffix,
|
|
||||||
.isso-comment > .isso-text-wrapper > .isso-comment-footer,
|
.isso-comment > .isso-text-wrapper > .isso-comment-footer,
|
||||||
.isso-comment > .isso-text-wrapper > .isso-comment-footer .isso-votes {
|
.isso-comment > .isso-text-wrapper > .isso-comment-footer .isso-votes {
|
||||||
color: var(--text-1);
|
color: var(--text-normal);
|
||||||
opacity: 80%;
|
opacity: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,8 +26,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.isso-postbox > .isso-form-wrapper .isso-preview {
|
.isso-postbox > .isso-form-wrapper .isso-preview {
|
||||||
color: var(--text-1);
|
color: var(--text-normal);
|
||||||
background: var(--background-1);
|
background: var(--background-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.isso-comment > .isso-text-wrapper > .isso-comment-footer a,
|
.isso-comment > .isso-text-wrapper > .isso-comment-footer a,
|
||||||
@ -45,56 +43,16 @@
|
|||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input,
|
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input,
|
||||||
#isso-thread .isso-textarea,
|
#isso-thread .isso-textarea,
|
||||||
.isso-postbox > .isso-form-wrapper .isso-preview {
|
.isso-postbox > .isso-form-wrapper .isso-preview {
|
||||||
color: var(--text-1);
|
color: var(--text-normal);
|
||||||
background-color: var(--background-1);
|
background-color: var(--background-2);
|
||||||
border-color: var(--background-2) !important;
|
border-color: var(--background-4) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input:hover {
|
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input:hover {
|
||||||
background-color: var(--background-2);
|
background-color: var(--background-4);
|
||||||
}
|
}
|
||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input:active {
|
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input:active {
|
||||||
background-color: var(--background-highlight);
|
background-color: var(--background-5);
|
||||||
}
|
|
||||||
|
|
||||||
#isso-thread .isso-textarea {
|
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
|
||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-input-wrapper {
|
|
||||||
display: inline-flex;
|
|
||||||
flex-direction: column;
|
|
||||||
margin-right: 4px;
|
|
||||||
}
|
|
||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-input-wrapper input {
|
|
||||||
order: 1;
|
|
||||||
}
|
|
||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-input-wrapper label {
|
|
||||||
order: 2;
|
|
||||||
font-size: small;
|
|
||||||
}
|
|
||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action {
|
|
||||||
margin-left: 4px;
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
@media screen and (max-width: 600px) {
|
|
||||||
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-input-wrapper {
|
|
||||||
display: block;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media print {
|
|
||||||
.comments {
|
|
||||||
break-before: always;
|
|
||||||
}
|
|
||||||
.isso-comment > .isso-text-wrapper {
|
|
||||||
break-inside: avoid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.isso-postbox,
|
|
||||||
.isso-feedlink {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
@ -133,7 +91,7 @@
|
|||||||
{{/*
|
{{/*
|
||||||
data-isso-vote-levels=""
|
data-isso-vote-levels=""
|
||||||
*/}}
|
*/}}
|
||||||
data-isso-feed="true"
|
data-isso-feed="false"
|
||||||
data-isso-require-email="false"
|
data-isso-require-email="false"
|
||||||
data-isso-reply-notifications="true"
|
data-isso-reply-notifications="true"
|
||||||
data-isso-reply-notifications-default-enabled="true"
|
data-isso-reply-notifications-default-enabled="true"
|
||||||
|
@ -1,5 +1,22 @@
|
|||||||
ci:
|
ci:
|
||||||
collect:
|
collect:
|
||||||
|
url:
|
||||||
|
- https://localhost/ # homepage
|
||||||
|
- https://localhost/links/ # very simple page
|
||||||
|
|
||||||
|
- https://localhost/blog/ # list page
|
||||||
|
- https://localhost/blog/the-redesign-of-my-website/ # average post, but no footnotes
|
||||||
|
- https://localhost/blog/blog-post-newsletter/ # average post, but WITH footnotes
|
||||||
|
- https://localhost/blog/caddy-is-the-best-webserver/ # another average post with footnotes, WITH code blocks
|
||||||
|
- https://localhost/blog/youtube-url-structures-you-should-know/ # youtube embed
|
||||||
|
- https://localhost/blog/copilot-post/ # lots of code blocks & text
|
||||||
|
- https://localhost/blog/github-copilot-experiments/ # heavy use of images
|
||||||
|
|
||||||
|
- https://localhost/categories/
|
||||||
|
- https://localhost/categories/github-copilot/
|
||||||
|
|
||||||
|
- https://localhost/tags/
|
||||||
|
- https://localhost/tags/discord-tricks/
|
||||||
startServerCommand: sudo caddy run
|
startServerCommand: sudo caddy run
|
||||||
settings:
|
settings:
|
||||||
chromeFlags: "--ignore-certificate-errors --throttling.cpuSlowdownMultiplier=2.4"
|
chromeFlags: "--ignore-certificate-errors --throttling.cpuSlowdownMultiplier=2.4"
|
||||||
|
Submodule themes/bobatheme updated: 8d81f5e37c...684769df5a
Reference in New Issue
Block a user