81 Commits

Author SHA1 Message Date
346a01d6d3 Use categories & redo tags 2022-05-06 22:18:51 -05:00
f3cf22ae33 Update homepage 2022-05-06 15:02:54 -05:00
dde5162907 Replace website, blog, & announcement tags with meta 2022-05-05 19:28:16 -05:00
90d640bd12 Add status page link to navbar 2022-05-05 17:21:07 -05:00
904d8928b7 Do multiple Lighthouse runs 2022-05-04 22:12:03 -05:00
827a049946 Update bobatheme 2022-05-04 22:07:05 -05:00
db65e9fc23 Update privileged ports post footnotes & use <
- Use names for footnotes instead of numbers
- Replace literal `<` with `&lt;`
2022-05-02 01:11:04 -05:00
bd9d294fc1 Update footnote on YouTube URLs post 2022-05-02 01:00:38 -05:00
9de4d26b6a Update footnotes in Caddy blog post 2022-05-02 00:55:36 -05:00
f14c1568f7 Use custom Lighthouse CI server (#25)
* Add custom LHCI server
* Disable Google temporary public storage
2022-05-01 20:05:31 -05:00
1e650ed79b Update Lighthouse test URLs 2022-05-01 18:51:31 -05:00
ba9c62ed4f Add Share event to Plausible 2022-05-01 18:19:45 -05:00
c3632c40ce Merge pull request #24 from BBaoVanC/lighthouse-actions
Add Lighthouse job to `audit` workflow
2022-05-01 00:02:53 -05:00
02201e806f Add Lighthouse job to audit workflow 2022-04-30 23:57:59 -05:00
d27f095c1a Update bobatheme - favicons and share buttons 2022-04-30 21:55:46 -05:00
2b38b143b1 Forgot to unmark as draft 2022-04-30 01:04:15 -05:00
26ccc90cff Add blog post newsletter post 2022-04-30 01:03:08 -05:00
d5ef788e78 Show latest posts on homepage 2022-04-29 20:13:31 -05:00
8e2673b4ff Reference new bobaforum instead of GitHub 2022-04-27 21:51:51 -05:00
c58164f1f2 Remove footer on comment section 2022-04-27 21:46:04 -05:00
4fb9dbaa30 Typo in the word "notifications" on comments partial 2022-04-27 21:41:14 -05:00
359bfbf1b6 Update Isso config to work with my latest pull request 2022-04-26 22:08:00 -05:00
d011efd2a1 Enable reply notifications by default 2022-04-25 18:14:28 -05:00
98ef3386f5 Don't show lastmod date in post metadata anymore 2022-04-24 01:23:53 -05:00
a170885ff8 Automatically fetch Isso author IDs from params 2022-04-24 01:11:14 -05:00
17af722f4d Support highlighting page author comments with Isso 2022-04-23 23:34:59 -05:00
62c62b344c Fix Isso preview styling and some borders on the boxes 2022-04-23 15:20:30 -05:00
f50665786b Update /links/ about Talkyard forum 2022-04-23 12:44:24 -05:00
57fac4d945 Don't require email address to comment 2022-04-23 01:47:16 -05:00
f6602dfff0 Add a note saying that email address can enable comment notifications 2022-04-23 00:43:57 -05:00
db6fc9e977 Make comment section available in development previews
Hopefully this doesn't break anything!!
2022-04-22 23:38:14 -05:00
86a90f907a Return to Isso comment system 2022-04-22 19:59:50 -05:00
3838d2d44a Temporarily disable comments 2022-04-22 18:12:53 -05:00
ac05117647 Remove references to bobaforum -- for now 2022-04-22 18:10:51 -05:00
355d180f6c Update bobatheme archetypes [skip ci] 2022-04-20 09:47:50 -05:00
0bc3f3145e Use explicit lastmod params 2022-04-20 09:46:40 -05:00
cbe6a1e12a Update related posts settings 2022-04-19 17:51:26 -05:00
e1dd193bf1 Use URL format of series in taxonomy 2022-04-19 17:46:19 -05:00
0bb3dce6e9 Update README and CONTRIBUTING and link to bobaforum [skip ci] 2022-04-18 03:04:52 -05:00
6ad002b319 Remove Spanish 2022-04-18 02:52:44 -05:00
1e20d0e943 Set data-category on Talkyard comments 2022-04-14 18:58:19 -05:00
375b90fb07 Didn't mean to commit this change 2022-04-13 11:55:59 -05:00
81fa2f6b41 Add "Comments" header and update bobatheme 2022-04-12 21:59:35 -05:00
fb7b5913c0 Update bobatheme - horizontal scrolling related posts 2022-04-11 21:09:09 -05:00
d8134587e9 Add "website" tag to redesign page 2022-04-11 02:17:41 -05:00
4db3d24349 Update Contact page 2022-04-11 02:15:05 -05:00
4017855c29 Revert "Use content/footer.md for footer instead of config.yaml"
This reverts commit 859537be01.

footer.md was getting rendered. There doesn't seem to be a good way to
solve this.
2022-04-11 02:11:35 -05:00
859537be01 Use content/footer.md for footer instead of config.yaml 2022-04-10 22:33:44 -05:00
164565cecb Update Links and add descriptions to them 2022-04-10 16:45:33 -05:00
5d08b75f71 Remove Matrix address and enable comments on main pages 2022-04-10 16:44:58 -05:00
5782a6a002 Set includeNewer to true for related posts 2022-04-10 16:11:24 -05:00
e21a4b948e Improved related posts section 2022-04-10 15:43:59 -05:00
9de124a586 Disable unused exclusions feature in Plausible 2022-04-09 23:50:19 -05:00
4a4361dcb5 Add additional features to Plausible 2022-04-09 23:46:58 -05:00
a449933ffe Add link to bobaforum and update bobatheme 2022-04-09 23:45:52 -05:00
a57715c4fa Add note to footer about privacy-friendly analytics 2022-04-09 20:23:29 -05:00
3ec98f019c Update bobatheme - preload="metadata" on <video> 2022-04-09 01:19:09 -05:00
fd4a7a7bc2 Reword some stuff in edited-in-middle-of-message-discord 2022-04-08 23:29:41 -05:00
1f263b3a3a Add border to Talkyard comments 2022-04-08 20:34:14 -05:00
c24cdee46c Only do analytics on production 2022-04-08 01:46:02 -05:00
2a79a86fd6 Change plausible analytics link 2022-04-08 01:37:31 -05:00
97bc1980eb Add Plausible analytics 2022-04-08 01:21:20 -05:00
cef1103070 Replace mention of Netlify in CONTRIBUTING.md 2022-04-06 09:47:08 -05:00
1332c16841 Update bobatheme again 2022-04-04 21:55:12 -05:00
b124d89391 Change pagination threshold to 10 2022-04-04 21:48:00 -05:00
0d432e200c Update bobatheme 2022-04-04 21:47:48 -05:00
5286bb029f Switch from remark42 to talkyard (#23) 2022-04-04 19:09:55 -05:00
31e25c2578 Forgot to change --path-warnings as well 2022-04-02 21:20:31 -05:00
1033b84687 Fix compatibility with Hugo v0.93.0 2022-04-02 21:18:07 -05:00
b9a95983b9 Re-indent comments partial 2022-04-02 21:13:38 -05:00
b14a46d48b Rewrite edited-in-middle-of-message-discord post because it's outdated 2022-01-04 20:11:56 -06:00
99b03ea7ba Update bobatheme to v1.0.1 2021-11-29 09:47:02 -06:00
9c6a2a059d Fix audit workflow (#21)
* Remove missing translation check
2021-11-25 18:28:07 -06:00
e10c3a1150 Force audit success 2021-11-25 18:15:36 -06:00
9e0d2a9d8f Fix syntax error in audit 2021-11-25 18:14:30 -06:00
576124d42d Update audit workflow 2021-11-25 18:13:31 -06:00
7b8f47b56b Update SSH and rsync steps in GitHub Actions 2021-11-25 17:58:53 -06:00
cab56bd859 Update demo.sh rsync command [skip ci] 2021-11-25 17:54:53 -06:00
672bfae812 Update bobatheme
- Show page position in series on series taxonomy pages
- Show post count in series metadata
- Don't hide the back to top button if JS is disabled
- Hide back to top button when printing
- Fix ".File.Path on a zero object" when there are drafted series
- Improve accessibility
2021-11-23 19:50:51 -06:00
ca40973701 Add pull request audit workflow (#20)
See https://discourse.gohugo.io/t/audit-your-published-site-for-problems/35184
2021-11-23 19:48:37 -06:00
b2d3bd99f3 Enable missing translation placeholder in demo.sh [skip ci] 2021-11-23 18:44:57 -06:00
50 changed files with 746 additions and 361 deletions

101
.github/workflows/audit.yml vendored Normal file
View File

@ -0,0 +1,101 @@
name: Audit
on:
push:
jobs:
lighthouse:
runs-on: ubuntu-latest
steps:
- name: Checkount
uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Install Caddy
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/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install 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
run: time ./compress.sh
- name: Audit using Lighthouse
uses: treosh/lighthouse-ci-action@v9
with:
uploadArtifacts: true
configPath: ./lighthouserc.yaml
runs: 3
serverBaseUrl: https://lhci.bbaovanc.com/
# this should be safe since it only allows adding (not deleting) data
serverToken: 926a24f2-90e4-48b1-809f-055b9408cf4b
audit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: latest
extended: true
- name: Build
run: |
HUGO_MINIFY_TDEWOLFF_HTML_KEEPCOMMENTS=true HUGO_ENABLEMISSINGTRANSLATIONPLACEHOLDERS=true hugo --printI18nWarnings --printPathWarnings
# For the following steps, see
# https://discourse.gohugo.io/t/audit-your-published-site-for-problems/35184
- name: Audit - raw HTML
if: always()
run: |
! grep -inorE "<\!-- raw HTML omitted -->" public/
- name: Audit - ZgotmplZ (unsafe URL content)
if: always()
run: |
! grep -inorE "ZgotmplZ" public/
#- name: Audit - missing translations
# if: always()
# run: |
# ! grep -inorE "\[i18n\]" public/
- name: Audit - nil values in printf
if: always()
run: |
! grep -inorE "\(<nil>\)" public/
- name: Audit - nil values in printf without safeHTML
if: always()
run: |
! grep -inorE "(&lt;nil&gt;)" public/
- name: Audit - HAHAHUGO
if: always()
run: |
! grep -inorE "hahahugo" public/

View File

@ -19,13 +19,6 @@ jobs:
submodules: recursive
fetch-depth: 0
- name: Setup SSH
uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }}
ssh-host: srv.bbaovanc.com
ssh-port: 2222
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
@ -33,12 +26,19 @@ jobs:
extended: true
- name: Build
run: hugo --i18n-warnings --path-warnings
run: hugo --printI18nWarnings --printPathWarnings
- name: Compress
run: |
time sudo ./compress.sh
- name: Setup SSH
uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }}
ssh-host: srv.bbaovanc.com
ssh-port: 2222
- name: Upload
uses: up9cloud/action-rsync@v1
env:
@ -50,4 +50,4 @@ jobs:
VERBOSE: true
KEY: ${{secrets.DEPLOY_SSH_KEY}}
TARGET: /var/www/bbaovanc.com/public/
ARGS_MORE: --checksum
ARGS: -avPzc --delete-delay --exclude=/.git/ --exclude=/.github/

View File

@ -29,13 +29,6 @@ jobs:
ref: ${{ github.head_ref }}
no_override: false
- name: Setup SSH
uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }}
ssh-host: srv.bbaovanc.com
ssh-port: 2222
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
@ -43,12 +36,19 @@ jobs:
extended: true
- name: Build
run: hugo --i18n-warnings --path-warnings --baseURL "https://demo.bbaovanc.com/pull_request/${{ github.event.number }}"
run: hugo --printI18nWarnings --printPathWarnings --baseURL "https://demo.bbaovanc.com/pull_request/${{ github.event.number }}"
- name: Compress
run: |
time sudo ./compress.sh
- name: Setup SSH
uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }}
ssh-host: srv.bbaovanc.com
ssh-port: 2222
- name: Upload
uses: up9cloud/action-rsync@v1
env:
@ -60,7 +60,7 @@ jobs:
VERBOSE: true
KEY: ${{secrets.DEPLOY_SSH_KEY}}
TARGET: /var/www/demo.bbaovanc.com/pull_request/${{ github.event.number }}/
ARGS_MORE: --checksum
ARGS: -avPzc --delete-delay --exclude=/.git/ --exclude=/.github/
- name: Finish deployment
uses: bobheadxi/deployments@v0.6.0

View File

@ -1,69 +1,28 @@
# Contributing to bobatheme
## Where to put stuff
## Where to put questions/issues/etc
### Discussions
The best place to ask questions or have discussions is the (relatively new)
discussions feature on GitHub, available
[here](https://github.com/BBaoVanC/bbaovanc.com/discussions). It's not too big
of an issue though because discussions and issues can easily be converted
between eachother.
### Issues
Issues should be used only for, well, issues. Ignore all the placeholder ones
prefixed with "Translate:" and tagged with the "translation" tag as they are
placeholders used in the projects tab. I might mark them as closed in the future
to clean it up but I'll worry about that later.
### Translations
Discussion relating to translations should either go as comments or reviews on
the pull request adding the translation, or as a discussion under the
[Translations category](https://github.com/BBaoVanC/bbaovanc.com/discussions/categories/translations).
## Writing translations
Translations should aim to get the meaning as close as possible to original
document. The changes in a translation pull request *should*:
- only update one page (multiple pages should be split into separate pull
requests)
- only contain changes for a single new file (no changes unrelated to
translation)
- thoroughly compared to the original text in order to get the same meaning
across
## Pull requests
### Commit messages
It's not too big of a deal what you put in your commit messages, but try to give
each commit a rough description of what it changes. I'll use squash merges most
of the time anyways.
### Description
If the pull request doesn't require any extra information in addition to the
title, you can probably leave the description blank. Otherwise you can put some
information, just try to keep it concise; it's better to read a couple sentences
than an entire essay with the same amount of information.
Please use the [proper section on
bobaforum](https://forum.bbaovanc.com/t/my-website) for issues, questions, or
discussions.
## Building
## Automatic deploy previews with Netlify
Just in case you need it.
Netlify will automatically build each pull request into a public deploy preview,
and will link it in a comment.
## Automatic deploy previews with GitHub Actions
My GitHub Actions workflows will automatically build each pull request into a
public deploy preview on demo.bbaovanc.com, and will link it in a comment.
## Manual (local) building
You can also build the site yourself using Hugo, including a live local preview.
1. Make sure you install the latest version of Hugo, or at least the
1. Make sure you install the latest version of Hugo, or hopefully at least the
`min_version` listed in
[theme.toml](https://github.com/BBaoVanC/bobatheme/blob/master/theme.toml#L11).
Let me know if that minimum version isn't enough and I'll fix it.
2. Clone the repo
3. Make sure to download and checkout the submodules (use `git submodule update
--init --recursive`). The `--recursive` flag is especially important because

9
Caddyfile Normal file
View File

@ -0,0 +1,9 @@
# vim: ft=caddyfile
https://localhost {
header Cache-Control no-cache
root * public/
file_server {
precompressed br gzip
}
}

View File

@ -1,3 +1,8 @@
# bbaovanc.com
My personal website, generated using [Hugo](https://gohugo.io)
## Discussions
Use [bobaforum](https://forum.bbaovanc.com) for questions, ideas, discussions,
etc. relating to me or my website.

3
assets/js/share-event.js Normal file
View File

@ -0,0 +1,3 @@
function share_event(service) {
plausible("Share", {props: {Network: service}});
}

View File

@ -4,7 +4,7 @@ defaultContentLanguage: en
copyright: '&copy; 2021 bbaovanc <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>'
sectionPagesMenu: main
enableRobotsTXT: true
paginate: 5
paginate: 10
enableGitInfo: true
taxonomies:
@ -16,13 +16,27 @@ author:
markup: # this just keeps the bobatheme markup styling
_merge: deep
related:
includeNewer: true
indices:
#- name: keywords
# weight: 100
#- name: categories
# weight: 80
- name: tags
weight: 80
- name: date
weight: 10
threshold: 80
toLower: true
params:
# these are for the OpenGraph/Twitter embeds in Hugo
description: My personal website
# these are for favicons in bobatheme (unset by default)
faviconICO: favicon.ico
faviconPNG: favicon.png
# these are for favicons in bobatheme (disabled by default)
faviconSVG: favicon.svg
appleTouchPNG: apple-touch-icon.png
# show reading time (enabled by default)
readingtime: true
@ -31,6 +45,26 @@ params:
gitFileURL: https://github.com/BBaoVanC/bbaovanc.com/blob/master
gitFileIcon: code
# display a "Latest Posts" section on the homepage below its content
homepageLatestPosts: true
# social media share icons
shareButtons:
twitter: true
facebook: true
linkedin: true
reddit: true
telegram: true
# show "Latest Posts" section at bottom of content pages
latestPostsOnContent: true
footer: >-
See the [anonymous and privacy-friendly
analytics](https://plausible.bbaovanc.com/bbaovanc.com) for this site,
powered by [Plausible](https://plausible.io).
# see https://gohugo.io/about/hugo-and-gdpr/#all-privacy-settings
# you probably want to keep this default
privacy:
@ -41,10 +75,12 @@ languages:
languageName: English
title: bbaovanc's Website
weight: 1
menu:
main:
- identifier: forum
name: Forum
url: https://forum.bbaovanc.com
es:
languageName: Español
title: sitio web de bbaovanc
weight: 2
params:
description: Mi sitio web personal
- identifier: status-page
name: Status Page
url: https://status.bbaovanc.com

View File

@ -1,24 +0,0 @@
---
title: "Inicio"
description: >-
Esto es mi sitio web, hogar para mi blog y otras páginas personales. Funciona
con mi tema personalizado que se llama bobatheme, disponible en
https://github.com/BBaoVanC/bobatheme.
---
## Mi sitio web
Esto es mi sitio web, por supuesto.
## Una tema fresco y nuevo
Mi sitio web usa mi tema a la medida que se llama
[bobatheme](https://github.com/BBaoVanC/bobatheme). Aunque no es terminado,
el estilo actual se quedará proabablamente.
## Otro sitio web
También tengo otro sitio web: https://boba.best.

View File

@ -3,22 +3,31 @@
title: Home
description: >-
This is my website, home to my blog and other personal pages. It's powered by
my own custom theme named bobatheme, available at
This is my personal website, home to my blog. It's powered by my own custom
theme named bobatheme, which is available at
https://github.com/BBaoVanC/bobatheme.
---
## My Website
This is my website. Pretty self-explanatory.
This is my personal website. I wrote it myself from scratch using [my own
theme][bobatheme-github] and a static site generator named [Hugo][hugo-website].
I occasionally write blog posts under the [blog section][blog-section].
## A fresh new theme
[bobatheme-github]: https://github.com/BBaoVanC/bobatheme
[hugo-website]: https://gohugo.io
[blog-section]: {{< ref "/blog/" >}}
My website uses my own custom theme named
[bobatheme](https://github.com/BBaoVanC/bobatheme). Although it's not quite
finished yet, the current style will probably stay for the forseeable future.
## Topics I write about
## Another website
I write mostly about technology, including:
- Linux
- Open Source Software
- Programming
- Web Development
## My other website
I also run another website: https://boba.best.

View File

@ -1,6 +1,7 @@
---
title: bbaovanc
issoUserID: 284513e38f5c
---

View File

@ -1,8 +0,0 @@
---
title: Blog
description: >-
El hogar de mi blog.
---

View File

@ -2,6 +2,7 @@
title: Allow non root processes to bind to privileged ports in Linux
date: 2021-03-28T21:29:52-05:00
lastmod: 2022-05-02T01:05:44-05:00
toc: true
comments: true
@ -11,20 +12,24 @@ authors:
aliases:
- posts/allow-non-root-processes-to-bind-to-privileged-ports/
tags:
- guide
categories:
- guides
- linux
tags:
- gitea
- systemd
---
In Linux, processes cannot bind to privileged ports (<=1024) unless they are
In Linux, processes cannot bind to privileged ports (&lt;=1024) unless they are
running as root. Here's how to allow any process to bind to privileged ports.
<!--more-->
## Introduction
In Linux, processes cannot bind to privileged ports (<=1024) unless they are
In Linux, processes cannot bind to privileged ports (&lt;=1024) unless they are
running as root. I learned about this when I was trying to add SSH cloning to my
[Gitea](https://gitea.io) instance. This can be bypassed by giving
`CAP_NET_BIND_SERVICE` capabilities to either the systemd service, or the
@ -34,9 +39,9 @@ executable itself.
### Using systemd (preferred)
The best way is to tell systemd to give `CAP_NET_BIND_SERVICE`
capabilities to the service. In fact, the Gitea systemd service has two
lines[^1] that are commented out:
The best way is to tell systemd to give `CAP_NET_BIND_SERVICE` capabilities to
the service. In fact, the Gitea systemd service has two
lines[^systemd-set-capabilities] that are commented out:
```systemd
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
@ -48,7 +53,7 @@ Uncommenting these two lines was all I had to do for Gitea.
### Using `setcap`
You can add `CAP_NET_BIND_SERVICE` to the executable directly using `setcap`,
allowing it to bind to any port. Run the following command[^2]:
allowing it to bind to any port. Run the following command[^setcap-command]:
```bash
setcap 'cap_net_bind_service=+ep' /path/to/program
@ -57,7 +62,7 @@ setcap 'cap_net_bind_service=+ep' /path/to/program
Note that this means that anyone with permission to run this program will be
able to run it and bind to any privileged ports.
Other caveats[^2]:
Other caveats[^caveats-quote]:
> 1. You will need at least a 2.6.24 kernel
> 2. This won't work if your file is a script. (ie, uses a #! line to launch an
@ -70,6 +75,10 @@ Other caveats[^2]:
> privileges like setcap or suid. So if your program uses its own .../lib/,
> you might have to look into another option like port forwarding.
[^1]: https://github.com/go-gitea/gitea/blob/3416e2a82586fca4cd452b93237b979300f55d62/contrib/systemd/gitea.service#L69
and https://stackoverflow.com/a/47065825
[^2]: https://stackoverflow.com/a/414258
[^systemd-set-capabilities]: See [these two lines in the Gitea systemd service
file](https://github.com/go-gitea/gitea/blob/3416e2a82586fca4cd452b93237b979300f55d62/contrib/systemd/gitea.service#L69)
and [this Stack Overflow answer](https://stackoverflow.com/a/47065825).
[^setcap-command]: https://stackoverflow.com/a/414258
[^caveats-quote]: https://stackoverflow.com/a/414258

View File

@ -0,0 +1,97 @@
---
title: Newsletter for my blog posts
date: 2022-04-30T01:00:14-05:00
lastmod: 2022-04-30T01:00:14-05:00
toc: true
comments: true
authors:
- bbaovanc
categories:
- meta
- newsletter
tags:
- bobanews
- listmonk
- mailing-list
- newsletter
# 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: listmonk-bobatheme-template.webp
title: My custom newsletter template based on my website's custom theme.
- name: listmonk-splash
src: listmonk-splash.webp
title: >-
Dashboard on listmonk ---
[source](https://listmonk.app/static/images/splash.png)
---
I created a newsletter for blog posts on my website so you can sign up for email
notifications when I post new ones, so I have more than just an RSS feed.
<!--more-->
**See the ["Signing Up" section]({{< ref "#signing-up" >}}) for instructions on
how to sign up for the newsletter.**
## Choosing the right mailing list manager
For my newsletter manager, I chose [listmonk](https://listmonk.app/). As I was
searching for self-hosted newsletter managers, it caught my eye because of how
modern and beautiful its interface looks. In fact, it was the only self-hosted
newsletter/mailing list manager I looked at that doesn't have an overall old and
ugly interface. Additionally, it has a live demo, so I was able to test it out
and see if it would be able to meet my (relatively low) requirements.
{{< figure src="listmonk-splash" >}}
I also tried out [GNU Mailman 3](https://www.list.org/) about a year ago.
However, I could not get it to integrate cleanly with my email
server[^mailman-mailcow]. listmonk can operate over SMTP, just like any other
program that sends mail. That makes the setup much less complicated, and I was
also able to set up the [official Docker
image](https://listmonk.app/docs/installation/#docker) using Docker Compose
setup just like the other programs I use.
If you're interested, the Docker Compose configuration files I ended up writing
are available at [configs/listmonk on my Gitea
instance](https://git.bbaovanc.com/configs/listmonk).
## Newsletter formatting
I ended up writing my own template for listmonk from scratch, based on the CSS
used in [bobatheme](https://github.com/BBaoVanC/bobatheme), the theme that my
website uses. Here's a screenshot of how it currently looks:
{{< figure src="feature" >}}
## Signing up
You can sign up to get emails about new posts on the [newsletter signup form
here](https://lists.bbaovanc.com/subscription/form). Make sure the box next to
the list labeled `bbaovanc.com Blog Posts` is checked. You'll need to provide an
email address, and optionally a nickname (or your real name if you want).
Right now there's only one list with public signup enabled, but that may change
if you're reading this in the future. In that case, you can sign up for as many
or as few lists as you want.
[^mailman-mailcow]: Mailman requires access to the mail server over
[LMTP](https://en.wikipedia.org/wiki/Local_Mail_Transfer_Protocol). However,
giving it access to my mail server over LMTP is not very easy because of the
setup that [Mailcow](https://mailcow.email) (my email server) uses. There *is*
an existing project called
[dockerized-mailcow-mailman](https://github.com/g4rf/dockerized-mailcow-mailman),
but it uses the Apache web server to serve the frontend. I'm not familiar with
Apache, and also I don't really want to complicate my Mailcow setup switching
to an almost completely different setup just for one little program.

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -2,16 +2,20 @@
title: Caddy is literally the best webserver
date: 2021-11-13T00:43:35-06:00
lastmod: 2022-05-02T00:54:43-05:00
toc: true
comments: true
authors:
- bbaovanc
tags:
categories:
- linux
- webserver
- sysadmin
tags:
- caddy
- webserver
resources:
- name: feature
@ -37,14 +41,14 @@ for general use.
## Built-in automatic HTTPS
Caddy can fetch certificates from Let's Encrypt and ZeroSSL out of the box.
HTTPS is enabled by default for eligible domains[^1], unless you explicitly tell
it not to.
HTTPS is enabled by default for eligible domains[^hostname-requirements], unless
you explicitly tell it not to.
### Incredible cipher security
Caddy has incredible defaults for TLS/SSL ciphers. Any site you host on Caddy
gets a perfect score from [Qualys SSL Labs](https://www.ssllabs.com/ssltest/)
out of the box.[^2]
out of the box.[^caddy-qualys-score]
## Dead simple configuration files: Caddy vs NGINX
@ -194,7 +198,7 @@ templates](https://pkg.go.dev/text/template). This means you can make simple
dynamic content while only using Caddy!
In fact, the [official Caddy website](https://caddyserver.com) is generated
entirely using Caddy's and Go templates![^3]
entirely using Caddy's and Go templates![^caddy-templating]
#### Error pages using HTTP Cats
@ -217,12 +221,14 @@ border around the image.
{{< figure src="caddy-browse" >}}
[^1]: The rules for what domains have automatic HTTPS by default are
[here](https://caddyserver.com/docs/automatic-https#hostname-requirements)
[^hostname-requirements]: For the rules on what domains have automatic HTTPS by
default, see ["Hostname requirements" on the Caddy
documentation](https://caddyserver.com/docs/automatic-https#hostname-requirements).
[^2]: SSL Labs caps the score to an A if HSTS isn't enabled. After enabling it,
then you get a perfect A+ score. See
https://www.ssllabs.com/ssltest/analyze.html?d=bbaovanc.com&latest
[^caddy-qualys-score]: SSL Labs caps the score to an A if HSTS isn't enabled.
After enabling it, then you get a perfect A+ score. See [my website's
score](https://www.ssllabs.com/ssltest/analyze.html?d=bbaovanc.com&latest)
([archived](https://archive.today/4JJDN)) for an example (bbaovanc.com).
[^3]: See more info [on the Caddy docs](https://caddyserver.com/docs/caddyfile/directives/templates#examples)
[^caddy-templating]: See more info about templating [on the Caddy
docs](https://caddyserver.com/docs/caddyfile/directives/templates#examples)

View File

@ -2,6 +2,7 @@
title: Checkra1n GUI on other Linux distros
date: 2021-03-25T21:19:51-05:00
lastmod: 2021-10-16T21:25:38-05:00
toc: true
comments: true
@ -11,11 +12,13 @@ authors:
aliases:
- posts/checkra1n-gui-on-other-distros/
tags:
- guide
- linux
- archlinux
categories:
- guides
- jailbreak
- linux
tags:
- arch-linux
- checkra1n
resources:

View File

@ -3,6 +3,7 @@
# this is the title it generated. not even joking
title: Copilot
date: 2021-11-07T16:17:15-06:00
lastmod: 2021-11-07T16:17:15-06:00
toc: true
comments: true
@ -10,11 +11,15 @@ authors:
- GitHub Copilot
- bbaovanc
tags:
categories:
- github-copilot
tags:
- copilot
- github
series:
- GitHub Copilot Experiments
- github-copilot-experiments
---

View File

@ -1,8 +1,9 @@
---
title: Put `(edited)` in the middle of a message in Discord
title: How to put `(edited)` in the middle of a message in Discord
date: 2021-03-25T18:48:34-05:00
toc: false
lastmod: 2022-04-08T23:29:41-05:00
toc: true
comments: true
authors:
@ -11,10 +12,15 @@ authors:
aliases:
- posts/edited-in-middle-of-message-discord/
tags:
- tutorial
categories:
- discord
- guides
- tips-and-tricks
tags:
- discord-tricks
- right-to-left-embedding
- rle-character
resources:
- name: feature
@ -23,23 +29,46 @@ resources:
---
With a bit of trickery using the RLE character (U+202B), you can get the
`(edited)` text on a message to be somewhere other than at the end of the
message.
You might have seen a trick on Discord where the little `(edited)` caption
appears in the middle of a message instead of at the end. With a small hack
involving the [right-to-left embedding character
(U+202B)](https://unicode-explorer.com/c/202B), the `(edited)` text can be moved
to any location inside the message.
<!--more-->
## Tutorial
1. Copy the "right-to-left embedding" character
([U+202B](https://unicode-explorer.com/c/202B)) to your clipboard.
2. Open editing box of a message
3. Delete all text inside
4. Paste the character
5. Type the text you want on the right of `(edited)`
6. Press space and paste the character
7. Type the text you want on the left of `(edited)`
Before you start, copy the "right-to-left embedding" character
([U+202B](https://unicode-explorer.com/c/202B)) to your clipboard.
*This post was adapted from [gitea:bbaovanc/discord-tricks][1]*
### Method 1
With this method you write a placeholder message, and then replace it completely
with a new message containing the `(edited)` text inside it all at once.
1. Send a message with some random text (this text will be replaced entirely)
2. Start editing the message you just created and delete all the text inside
3. Type the text you want on the left of `(edited)`.
4. Type a space, then paste the character twice, and type another space.
5. Type the text you want on the right of `(edited)`.
6. Save the message.
You can also start at step 3 instead, send the message, and then perform any
edit on the message afterwards to add the `(edited)` text.
### Method 2
This method works by adding `(edited)` to the end of an existing message, and
then extra text to the right.
1. Send a message containing the text you want on the left of `(edited)`.
2. Start editing the message you just created
3. At the end of the message, type a space, then paste the character twice, and
type another space.
4. Type the text you want on the right of `(edited)`.
5. Save the message.
*This post was adapted from [bbaovanc/discord-tricks][1]*
[1]: https://git.bbaovanc.com/bbaovanc/discord-tricks

View File

@ -1,18 +1,24 @@
---
title: GitHub Copilot experiments
title: Experimenting with GitHub Copilot
date: 2021-11-06T23:56:47-05:00
lastmod: 2021-11-08T21:46:39-06:00
toc: true
comments: true
authors:
- bbaovanc
tags:
categories:
- github-copilot
tags:
- copilot
- github
- programming
series:
- GitHub Copilot Experiments
- github-copilot-experiments
resources:
- name: feature

View File

@ -12,10 +12,13 @@ aliases:
- /blog/posts/sed-text-substitution-in-discord/
- /blog/posts/text-substitution-in-discord-using-sed/
tags:
- tutorial
categories:
- discord
- tips-and-tricks
tags:
- discord-tricks
- sed
resources:
- name: feature

View File

@ -2,17 +2,20 @@
title: The redesign of my website
date: 2021-10-18T14:03:05-05:00
lastmod: 2021-10-27T09:51:43-05:00
toc: true
comments: true
authors:
- bbaovanc
tags:
- announcement
- blog
- hugo
categories:
- bobatheme
- meta
tags:
- hugo
- web-design
resources:
- name: feature

View File

@ -2,18 +2,23 @@
title: Using Github Copilot to write a blog post
date: 2021-11-07T16:17:15-06:00
lastmod: 2021-11-08T21:46:39-06:00
toc: true
comments: true
authors:
- bbaovanc
tags:
categories:
- github-copilot
- blog
tags:
- copilot
- github
- markdown
series:
- GitHub Copilot Experiments
- github-copilot-experiments
# 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)

View File

@ -2,16 +2,20 @@
title: Youtube URL structures you should know
date: 2021-10-30T21:20:38-05:00
lastmod: 2022-05-02T00:59:25-05:00
toc: true
comments: true
authors:
- bbaovanc
tags:
- youtube
categories:
- url-structures
tags:
- query-parameters
- youtube
resources:
- name: feature
src: youtube-url.webp
@ -60,7 +64,7 @@ Here's the video I'll be using as an example:
{{< youtube F6va6tg62qg >}}
I embedded that video on my website with this code:[^1]
I embedded that video on my website with this code:[^hugo-shortcode]
```text
{{</* youtube F6va6tg62qg */>}}
@ -121,5 +125,9 @@ As far as I know, it's not possible to link to a playlist using `youtu.be`.
[This Stack Exchange answer](https://webapps.stackexchange.com/a/9881) is a good
reference for some other YouTube parameters.
[^1]: I use a static site generator called [Hugo](https://gohugo.io) for my
website.
[^hugo-shortcode]: I use a static site generator called
[Hugo](https://gohugo.io) for my website. It has a built in "shortcode" which
is a feature that allows me to embed certain code blocks into a page. One of
its shortcodes, named `youtube`, allows me to embed a YouTube video into my
post. You can read more info about [shortcodes on the Hugo
docs](https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes)

View File

@ -0,0 +1,12 @@
---
title: bobatheme
---
Posts about bobatheme, my custom [Hugo][hugo-website] theme which I use on this
website.
[hugo-website]: https://gohugo.io
<!--more-->

View File

@ -0,0 +1,14 @@
---
title: Discord
---
An extremely popular chat platform. You have to live under a rock to not know
what Discord is.
<!--more-->
See also: the [discord-tricks tag][discord-tricks-tag].
[discord-tricks-tag]: {{< ref "/tags/discord-tricks/" >}}

View File

@ -0,0 +1,14 @@
---
title: GitHub Copilot
---
An extension made by GitHub which provides artificial intelligence powered
autocomplete, trained on real open source code. It is intended to give smarter
results than a typical autocomplete solution can, such as automatically
generating [boilerplate code][boilerplate-code].
[boilerplate-code]: https://en.wikipedia.org/wiki/Boilerplate_code
<!--more-->

View File

@ -0,0 +1,9 @@
---
title: Guides
---
Any kind of guide or tutorial.
<!--more-->

View File

@ -0,0 +1,9 @@
---
title: Jailbreak
---
Anything related to jailbreaking (iOS or other Apple devices).
<!--more-->

View File

@ -0,0 +1,9 @@
---
title: Linux
---
Anything relating to Linux (the kernel or operating systems).
<!--more-->

View File

@ -0,0 +1,9 @@
---
title: Meta
---
Posts talking about my website.
<!--more-->

View File

@ -0,0 +1,15 @@
---
title: Newsletter
---
Blog posts related to my newsletter.
<!--more-->
You can sign up for my newsletter [using this signup form][signup-form]. Make
sure that you tick the box labeled `bbaovanc.com Blog Posts`. A nickname (or
your real name if you prefer) is optional.
[signup-form]: https://lists.bbaovanc.com/subscription/form

View File

@ -0,0 +1,10 @@
---
title: Sysadmin
---
Anything relating to managing servers (usually relating to Linux). "Sysadmin" is
short for "system administrator".
<!--more-->

View File

@ -0,0 +1,10 @@
---
title: Tips and Tricks
---
Random little tips and/or tricks that I want to share. Will probably be mostly
short articles (but that's not a bad thing).
<!--more-->

View File

@ -0,0 +1,9 @@
---
title: URL Structures
---
Posts about URL conventions on certain websites or services.
<!--more-->

View File

@ -1,17 +0,0 @@
---
title: Contacto
menu: main
toc: false
comments: false
authors:
- bbaovanc
description: >-
Quieres contactarme? Así es cómo.
---
- Correo electrónico: [contact@bbaovanc.com](mailto:contact@bbaovanc.com)
- Matrix: [@bbaovanc:boba.best](https://matrix.to/#/@bbaovanc:boba.best)

View File

@ -3,7 +3,7 @@
title: Contact
menu: main
toc: false
comments: false
comments: true
authors:
- bbaovanc
@ -13,5 +13,8 @@ description: >-
---
- Email: [contact@bbaovanc.com](mailto:contact@bbaovanc.com)
- Matrix: [@bbaovanc:boba.best](https://matrix.to/#/@bbaovanc:boba.best)
- Email: bbaovanc@bbaovanc.com
- If needed, encrypt your email with [my PGP
key](https://keyserver.ubuntu.com/pks/lookup?search=bbaovanc%40bbaovanc.com&fingerprint=on&op=index)
- bobaforum (ask me questions publicly, I guess like a Q&A):
https://forum.bbaovanc.com/t/ask-me

View File

@ -1,24 +0,0 @@
---
title: Donar
menu: main
toc: false
comments: false
authors:
- bbaovanc
description: >-
Tengo algunos direcciones de criptomonedas que puedes usar si quieres donarme.
---
## Direcciones de criptomoneda
Nano: `nano_1ewtme68x5gia1bjq3jx1ku5pcxzayipdxjmjrc3x8qjjpat4ria8ajhjoxd`
Bitcoin: `bc1qj6h8z2tg9nxcl9ddnv9k798cru6asr6cpmj84m`
Ethereum: `0x80DaED7e2BEF5d894b37fBd79d0609aa17c8Cabc`
Monero: `45gGauNcWLNSobRMzk3rtfEpad7gGcEvegxCbEm6QYENdG4vag3fCVuFoKfdKSESeSEKyUNRGwAJyLaCQ6MC5AQ79DGcaRq`

View File

@ -3,7 +3,7 @@
title: Donate
menu: main
toc: false
comments: false
comments: true
authors:
- bbaovanc

View File

@ -1,55 +0,0 @@
---
title: Hipervínculos
menu: main
toc: true
comments: false
authors:
- bbaovanc
description: >-
Una página de hipervínculos a mis otras proyectos.
---
## Otra
- [GitHub](https://github.com/BBaoVanC/)
- [boba.best](https://boba.best/)
## Mi Sitio Web
- [Inicio](https://bbaovanc.com/) - tema:
[bobatheme](https://github.com/BBaoVanC/bobatheme)
- [Blog](https://bbaovanc.com/blog/)
- [Sitio Estado](https://status.bbaovanc.com/)
- [Searx Ocasión](https://search.bbaovanc.com/) -
[código fuente](https://github.com/BBaoVanC/searx)
- [Gitea Ocasión](https://git.bbaovanc.com/)
## Mi Software
- [smines](https://github.com/BBaoVanC/smines)
- [imgupload.py](https://github.com/imgupload-py/imgupload.py)
- [mojiman](https://github.com/BBaoVanC/mojiman)
- [pynamegen](https://git.bbaovanc.com/bbaovanc/pynamegen)
- [libnamegen](https://git.bbaovanc.com/bbaovanc/libnamegen)
- [liblistloader](https://git.bbaovanc.com/bbaovanc/liblistloader)
- [libprogress](https://git.bbaovanc.com/bbaovanc/libprogress)
- [RokuRemote](https://github.com/BBaoVanC/RokuRemote)
## Mis Configuraciones
- [dotfiles](https://github.com/BBaoVanC/dotfiles)
- [dwm](https://github.com/BBaoVanC/.dwm)
- [dwm-flexipatch](https://github.com/BBaoVanC/dwm-flexipatch)
- [dwmblocks](https://github.com/BBaoVanC/dwmblocks)
- [dmenu](https://github.com/BBaoVanC/dmenu)
### Archivo
- [dwm](https://github.com/BBaoVanC/dwm)
- [st](https://github.com/BBaoVanC/st)
- [slstatus](https://github.com/BBaoVanC/slstatus)
- [xmonad](https://github.com/BBaoVanC/.xmonad)

View File

@ -3,7 +3,7 @@
title: Links
menu: main
toc: true
comments: false
comments: true
authors:
- bbaovanc
@ -18,41 +18,58 @@ description: >-
## Other
- [GitHub](https://github.com/BBaoVanC/)
- [GitHub](https://github.com/BBaoVanC/) - my GitHub profile
- [boba.best](https://boba.best/)
## My Website
- [Homepage](https://bbaovanc.com/) - theme:
[bobatheme](https://github.com/BBaoVanC/bobatheme)
- [Blog](https://bbaovanc.com/blog/)
- [Status Page](https://status.bbaovanc.com/)
- [Searx Instance](https://search.bbaovanc.com/) -
[source code](https://github.com/BBaoVanC/searx)
- [Gitea Instance](https://git.bbaovanc.com/)
- [bbaovanc.com source code](https://github.com/BBaoVanC/bbaovanc.com)
- [bobatheme](https://github.com/BBaoVanC/bobatheme) - theme for this
website
- [bobaforum](https://forum.bbaovanc.com) - my public forum
- [Searx Instance](https://search.bbaovanc.com/) - privacy-respecting search
engine
- [Gitea Instance](https://git.bbaovanc.com/) - mostly just mirrors of my GitHub
repos
## My Software
## My Projects
- [smines](https://github.com/BBaoVanC/smines)
- [imgupload.py](https://github.com/imgupload-py/imgupload.py)
- [mojiman](https://github.com/BBaoVanC/mojiman)
- [pynamegen](https://git.bbaovanc.com/bbaovanc/pynamegen)
- [smines](https://github.com/BBaoVanC/smines) - TUI minesweeper in C, made for
practice
- [imgupload.py](https://github.com/imgupload-py/imgupload.py) - simple image
uploading server written with Python Flask
- [mojiman](https://github.com/BBaoVanC/mojiman) - program I made to learn Rust
- [pynamegen](https://git.bbaovanc.com/bbaovanc/pynamegen) - name generator
written in Python
- [libnamegen](https://git.bbaovanc.com/bbaovanc/libnamegen)
- [liblistloader](https://git.bbaovanc.com/bbaovanc/liblistloader)
- [libprogress](https://git.bbaovanc.com/bbaovanc/libprogress)
- [RokuRemote](https://github.com/BBaoVanC/RokuRemote)
- [RokuRemote](https://github.com/BBaoVanC/RokuRemote) - keyboard-based remote
control for Roku
## My Configurations
- [dotfiles](https://github.com/BBaoVanC/dotfiles)
- [dwm](https://github.com/BBaoVanC/.dwm)
- [dwm-flexipatch](https://github.com/BBaoVanC/dwm-flexipatch)
- [dwmblocks](https://github.com/BBaoVanC/dwmblocks)
- [dmenu](https://github.com/BBaoVanC/dmenu)
- [dotfiles](https://github.com/BBaoVanC/dotfiles) - main repository with my
configs
- [docker-dotfiles](https://github.com/BBaoVanC/docker-dotfiles) - Docker image
that contains my dotfiles
- [onehalf](https://github.com/BBaoVanC/onehalf) - the theme I use on my
terminal
### Archived
- [dwm](https://github.com/BBaoVanC/dwm)
- [st](https://github.com/BBaoVanC/st)
- [slstatus](https://github.com/BBaoVanC/slstatus)
- [xmonad](https://github.com/BBaoVanC/.xmonad)
- [dwm](https://github.com/BBaoVanC/.dwm) - outer repo with submodules for my
various dwm-related configs
- [dwm-flexipatch](https://github.com/BBaoVanC/dwm-flexipatch) - see
https://github.com/bakkeby/dwm-flexipatch
- [dwmblocks](https://github.com/BBaoVanC/dwmblocks) - DWM status bar, see
https://github.com/torrinfail/dwmblocks
- [dmenu](https://github.com/BBaoVanC/dmenu) - dynamic menu, see
https://tools.suckless.org/dmenu/
- [st](https://github.com/BBaoVanC/st) - simple terminal, see
https://st.suckless.org
- [slstatus](https://github.com/BBaoVanC/slstatus) - suckless status, see
https://tools.suckless.org/slstatus/
- [dwm](https://github.com/BBaoVanC/dwm) - dynamic window manager, see
https://dwm.suckless.org/
- [xmonad](https://github.com/BBaoVanC/.xmonad) - see https://xmonad.org

View File

@ -1,4 +1,4 @@
#!/bin/sh -x
rm -rf public/
hugo -D --baseURL "https://demo.bbaovanc.com/test/$1"
rsync -atvPzc --delete public/ bbaosrv:/var/www/demo.bbaovanc.com/test/$1/
HUGO_ENABLEMISSINGTRANSLATIONPLACEHOLDERS=true hugo -D --baseURL "https://demo.bbaovanc.com/test/$1"
rsync -avPzc --delete-delay public/ bbaosrv:/var/www/demo.bbaovanc.com/test/$1/

View File

@ -0,0 +1,4 @@
{{ if eq .Site.BaseURL "https://bbaovanc.com" }}
<script defer data-domain="bbaovanc.com" src="https://plausible.bbaovanc.com/js/bobalytics.outbound-links.js"></script>
<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
{{ end }}

View File

@ -1,63 +1,113 @@
{{ if ne .Site.BaseURL "https://bbaovanc.com" }}
<i>Comment section is not available during development previews.</i>
{{ else }}
<!-- idk why this is even required
vim: ft=html
-->
<style>
#isso-thread > h4 {
color: var(--text-normal);
}
#isso-root .isso-comment:not(:first-of-type),
.isso-follow-up .isso-comment {
border-color: var(--background-4);
}
.isso-comment > .isso-text-wrapper > .isso-comment-header .isso-author,
.isso-comment > .isso-text-wrapper > .isso-comment-footer,
.isso-comment > .isso-text-wrapper > .isso-comment-footer .isso-votes {
color: var(--text-normal);
opacity: 80%;
}
.isso-comment.isso-is-page-author > .isso-text-wrapper {
background-color: var(--background-accent);
}
.isso-comment.isso-is-page-author > .isso-text-wrapper > .isso-comment-header > .isso-author {
color: var(--link-color);
}
.isso-postbox > .isso-form-wrapper .isso-preview {
color: var(--text-normal);
background: var(--background-2);
}
.isso-comment > .isso-text-wrapper > .isso-comment-footer a,
.isso-comment > .isso-text-wrapper > .isso-comment-footer a:hover {
color: var(--link-color) !important;
}
.isso-comment > .isso-text-wrapper > .isso-comment-footer a:hover {
text-decoration: underline;
}
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-input-wrapper input,
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input,
#isso-thread .isso-textarea,
.isso-postbox > .isso-form-wrapper .isso-preview {
color: var(--text-normal);
background-color: var(--background-2);
border-color: var(--background-4) !important;
}
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input:hover {
background-color: var(--background-4);
}
.isso-postbox > .isso-form-wrapper > .isso-auth-section .isso-post-action > input:active {
background-color: var(--background-5);
}
</style>
<h2 style="margin-bottom: 0;">Comments</h2>
<small>
<p style="margin: 0;">
If you provide an email address, you can enable notifications for
replies to your comment. It will not be shown publicly.
</p>
</small>
<noscript>
<style>
#comments-hr {
display: none;
}
</style>
<small>
<i>Enable JavaScript to see the comment section.</i>
</small>
<i>Enable JavaScript to see the comment section.</i>
</noscript>
{{ $url := .Permalink }}
{{ if .IsTranslated }}
{{ with index .AllTranslations 0 }}
{{ $url = .Permalink }}
{{ end }}
{{ with index .AllTranslations 0 }}
{{ $url = .Permalink }}
{{ end }}
{{ end }}
<script>
var remark_config = {
host: "https://remark.bbaovanc.com",
site_id: "bbaovanc.com",
components: [
"embed",
//"last-comments",
//"counter",
],
url: "{{ $url }}", // make this permalink the main language so all languages have the same comments
max_shown_comments: 10,
page_title: "{{ .Title }}",
locale: "{{ .Language.Lang }}",
show_email_subscription: true,
simple_view: false,
};
if (window.matchMedia('(prefers-color-scheme: light)').matches) {
remark_config["theme"] = "light";
} else {
remark_config["theme"] = "dark";
}
</script>
<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script>
<script data-isso-id="{{ $url }}"
data-isso-default-lang="{{ .Language.Lang }}"
data-isso-css="true"
data-isso-max-comments-top="10"
data-isso-max-comments-nested="5"
data-isso-reveal-on-click="5"
{{/*
data-isso-avatar-bg="#111"
data-isso-avatar-fg="#9abf88 #5698c4 #e279a3 #9163b6 ..."
*/}}
data-isso-vote="true"
{{/*
data-isso-vote-levels=""
*/}}
data-isso-feed="false"
data-isso-require-email="false"
data-isso-reply-notifications="true"
data-isso-reply-notifications-default-enabled="true"
<script>
const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: light)');
darkModeMediaQuery.addListener((e) => {
if (e.matches) {
window.REMARK42.changeTheme('light');
} else {
window.REMARK42.changeTheme('dark');
}
});
{{ with (.GetTerms "authors") }}
{{ $authorHashes := slice }}
{{ range . }}
{{ with .Params.issoUserID }}
{{ $authorHashes = $authorHashes | append . }}
{{ end }}
{{ end }}
data-isso-page-author-hashes="{{ delimit $authorHashes "," }}"
{{ end }}
src="https://isso.bbaovanc.com/js/embed.min.js">
</script>
<div id="remark42"></div>
{{ end }}
<section id="isso-thread"></section>

22
lighthouserc.yaml Normal file
View File

@ -0,0 +1,22 @@
ci:
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
settings:
chromeFlags: "--ignore-certificate-errors --throttling.cpuSlowdownMultiplier=2.4"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

BIN
static/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB