Compare commits
42 Commits
example-po
...
bearblog-f
Author | SHA1 | Date | |
---|---|---|---|
867cf499ef
|
|||
12576834c2
|
|||
9cb27e684d
|
|||
decd2209f7
|
|||
adf52c8498
|
|||
3d14a589fc
|
|||
478e152183
|
|||
3eb95b7f16
|
|||
6bb94c50c2
|
|||
1ed6fd7bf8
|
|||
896cf1eb27
|
|||
b0704a1e1d
|
|||
f1407d7984
|
|||
6fbf46a270 | |||
6ca71e0ff7
|
|||
ae59d03f81
|
|||
83f780a8b4
|
|||
a235ec2151
|
|||
054a2258f5
|
|||
66833ca13d
|
|||
9378412a09
|
|||
ef2274521e
|
|||
fef9c0895e
|
|||
aa1c520d55
|
|||
8a2a77bba3
|
|||
fff1bdd0de
|
|||
6878e125e1
|
|||
3a8b1c6a8d
|
|||
afcaa99cf5
|
|||
cb44bb4b87
|
|||
e3fc548034
|
|||
fbde75e8c6
|
|||
e84980adcb
|
|||
46c1660d52
|
|||
9094e37b08
|
|||
e7637b186e
|
|||
edd7f8b030
|
|||
febefb8c67
|
|||
28b2a2eff8
|
|||
e68c00a4e2
|
|||
42eed53cef
|
|||
7c568ef4d5
|
41
.drone.yml
Normal file
41
.drone.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: Deploy to bbaovanc.com
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: submodules
|
||||||
|
image: alpine/git
|
||||||
|
commands:
|
||||||
|
- git submodule update --init --recursive
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: bbaovanc/hugo
|
||||||
|
commands:
|
||||||
|
- hugo version
|
||||||
|
- hugo --minify
|
||||||
|
|
||||||
|
- name: list files
|
||||||
|
image: alpine:latest
|
||||||
|
commands:
|
||||||
|
- find public/
|
||||||
|
|
||||||
|
- name: upload
|
||||||
|
image: appleboy/drone-scp
|
||||||
|
settings:
|
||||||
|
host: bbaovanc.com
|
||||||
|
port: 2222
|
||||||
|
username: droneci
|
||||||
|
key:
|
||||||
|
from_secret: SSH_KEY
|
||||||
|
target: /var/www/bbaovanc/blog/
|
||||||
|
rm: true
|
||||||
|
source: public/
|
||||||
|
strip_components: 1
|
11
.editorconfig
Normal file
11
.editorconfig
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*.{md,toml}]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
max_line_length = 80
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -1,3 +1,3 @@
|
|||||||
[submodule "themes/terminal"]
|
[submodule "themes/hugo-bearblog"]
|
||||||
path = themes/terminal
|
path = themes/hugo-bearblog
|
||||||
url = https://github.com/panr/hugo-theme-terminal.git
|
url = https://github.com/janraasch/hugo-bearblog.git
|
||||||
|
12
Makefile
Normal file
12
Makefile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
all: public
|
||||||
|
|
||||||
|
public:
|
||||||
|
hugo
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf public
|
||||||
|
|
||||||
|
push: clean public
|
||||||
|
rsync -arvz -e 'ssh -p 2222' --progress --delete public/ bbaovanc.com:/var/www/bbaovanc/blog/
|
||||||
|
|
||||||
|
.PHONY: all clean push
|
13
archetypes/blog.md
Normal file
13
archetypes/blog.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
+++
|
||||||
|
title = "{{ replace .Name "-" " " | title }}"
|
||||||
|
date = "{{ .Date }}"
|
||||||
|
# Format date like 2006-01-02 (it gives an error if I use .Format)
|
||||||
|
|
||||||
|
description = """
|
||||||
|
Lorem ipsum
|
||||||
|
"""
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"",
|
||||||
|
]
|
||||||
|
+++
|
@ -1,6 +1,8 @@
|
|||||||
---
|
+++
|
||||||
title: "{{ replace .Name "-" " " | title }}"
|
title = "{{ replace .Name "-" " " | title }}"
|
||||||
date: {{ .Date }}
|
menu = "main"
|
||||||
draft: true
|
|
||||||
---
|
|
||||||
|
|
||||||
|
description = """
|
||||||
|
Lorem ipsum
|
||||||
|
"""
|
||||||
|
+++
|
||||||
|
115
config.toml
115
config.toml
@ -1,73 +1,62 @@
|
|||||||
baseURL = "https://bbaovanc.com/blog/"
|
|
||||||
languageCode = "en-us"
|
|
||||||
theme = "terminal"
|
|
||||||
paginate = 5
|
|
||||||
|
|
||||||
# [permalinks]
|
baseURL = "https://bbaovanc.com"
|
||||||
# posts = "/:year/:month/:title/"
|
|
||||||
|
# The name of this wonderful theme ;-).
|
||||||
|
theme = 'hugo-bearblog'
|
||||||
|
|
||||||
|
# Basic metadata configuration for your blog.
|
||||||
|
title = "bbaovanc's blog"
|
||||||
|
author = "bbaovanc"
|
||||||
|
copyright = "Copyright © 2021, bbaovanc."
|
||||||
|
languageCode = "en-US"
|
||||||
|
|
||||||
|
# Generate a nice robots.txt for SEO
|
||||||
|
enableRobotsTXT = true
|
||||||
|
|
||||||
|
# Generate "Bearblog"-like URLs !only!, see https://bearblog.dev/.
|
||||||
|
disableKinds = ["taxonomy"]
|
||||||
|
ignoreErrors = ["error-disable-taxonomy"]
|
||||||
|
[permalinks]
|
||||||
|
#blog = "/:slug/"
|
||||||
|
tags = "/blog/:slug"
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
# dir name of your main content (default is `content/posts`).
|
# The "description" of your website. This is used in the meta data of your generated html.
|
||||||
# the list of set content will show up on your index page (baseurl).
|
description = "My personal blog site"
|
||||||
contentTypeName = "posts"
|
|
||||||
|
|
||||||
# ["orange", "blue", "red", "green", "pink"]
|
# The path to your "favicon". This should be a square (at least 32px x 32px) png-file.
|
||||||
themeColor = "blue"
|
# Hint: It's good practise to also put a "favicon.ico"-file into your "static"-folder.
|
||||||
|
|
||||||
# if you set this to 0, only submenu trigger will be visible
|
|
||||||
showMenuItems = 2
|
|
||||||
|
|
||||||
# show selector to switch language
|
|
||||||
showLanguageSelector = false
|
|
||||||
|
|
||||||
# set theme to full screen width
|
|
||||||
fullWidthTheme = false
|
|
||||||
|
|
||||||
# center theme with default width
|
|
||||||
centerTheme = true
|
|
||||||
|
|
||||||
# set a custom favicon (default is a `themeColor` square)
|
|
||||||
favicon = "img/favicon.ico"
|
favicon = "img/favicon.ico"
|
||||||
|
|
||||||
# set post to show the last updated
|
# These "images" are used for the structured data templates. This will show up, when
|
||||||
# If you use git, you can set `enableGitInfo` to `true` and then post will automatically get the last updated
|
# services like Twitter or Slack want to generate a preview of a link to your site.
|
||||||
showLastUpdated = false
|
# See https://gohugo.io/templates/internal#twitter-cards and
|
||||||
# Provide a string as a prefix for the last update date. By default, it looks like this: 2020-xx-xx [Updated: 2020-xx-xx] :: Author
|
# https://gohugo.io/templates/internal#open-graph.
|
||||||
# updatedDatePrefix = "Updated"
|
images = ["img/favicon.png"]
|
||||||
|
|
||||||
# set all headings to their default size (depending on browser settings)
|
# Another "title" :-). This one is used as the site_name on the Hugo's internal
|
||||||
# it's set to `true` by default
|
# opengraph structured data template.
|
||||||
# oneHeadingSize = false
|
# See https://ogp.me/ and https://gohugo.io/templates/internal#open-graph.
|
||||||
|
|
||||||
[params.twitter]
|
|
||||||
# set Twitter handles for Twitter cards
|
|
||||||
# see https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started#card-and-content-attribution
|
|
||||||
# do not include @
|
|
||||||
creator = ""
|
|
||||||
site = ""
|
|
||||||
|
|
||||||
[languages]
|
|
||||||
[languages.en]
|
|
||||||
languageName = "English"
|
|
||||||
title = "bbaovanc's blog"
|
title = "bbaovanc's blog"
|
||||||
subtitle = "My personal blog site"
|
|
||||||
owner = "bbaovanc"
|
|
||||||
keywords = ""
|
|
||||||
copyright = ""
|
|
||||||
menuMore = "Show more"
|
|
||||||
readMore = "Read more"
|
|
||||||
readOtherPosts = "Read other posts"
|
|
||||||
newerPosts = "Newer posts"
|
|
||||||
olderPosts = "Older posts"
|
|
||||||
missingContentMessage = "Page not found..."
|
|
||||||
missingBackButtonLabel = "Back to home page"
|
|
||||||
|
|
||||||
[languages.en.params.logo]
|
# This theme will, by default, inject a made-with-line at the bottom of the page.
|
||||||
logoText = "bbaovanc's blog"
|
# You can turn it off, but we would really appreciate if you don’t :-).
|
||||||
logoHomeLink = "/blog/"
|
# hideMadeWithLine = true
|
||||||
|
|
||||||
[languages.en.menu]
|
# By default, this theme displays dates with a format like "02 Jan, 2006", but
|
||||||
[[languages.en.menu.main]]
|
# you can customize it by setting the `dateFormat` param in your site's config
|
||||||
identifier = "other-sites"
|
# file. See [Hugo's Format function docs](https://gohugo.io/functions/format/)
|
||||||
name = "Other Sites"
|
# for details. An example TOML config that uses [ISO
|
||||||
url = "/other-sites"
|
# 8601](https://en.wikipedia.org/wiki/ISO_8601) format:
|
||||||
|
# dateFormat = "2006-01-02"
|
||||||
|
|
||||||
|
[menu]
|
||||||
|
[[menu.main]]
|
||||||
|
identifier = "rss"
|
||||||
|
name = "RSS Feed"
|
||||||
|
url = "/blog/index.xml"
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
identifier = "git-repo"
|
||||||
|
name = "Source Code"
|
||||||
|
url = "https://git.bbaovanc.com/bbaovanc.com/blog"
|
||||||
|
3
content/_index.md
Normal file
3
content/_index.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
This is my website.
|
||||||
|
|
||||||
|
https://boba.best is also my website.
|
@ -0,0 +1,69 @@
|
|||||||
|
+++
|
||||||
|
title = "Allow Non Root Processes to Bind to Privileged Ports"
|
||||||
|
date = "2021-03-28"
|
||||||
|
aliases = [
|
||||||
|
"posts/allow-non-root-processes-to-bind-to-privileged-ports/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
In Linux, processes cannot bind to privileged ports (<=1024) unless they are
|
||||||
|
running as root. Here's how to allow any process to bind to privileged ports.
|
||||||
|
"""
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"guide",
|
||||||
|
"linux",
|
||||||
|
]
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
In Linux, processes cannot bind to privileged ports (<=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
|
||||||
|
executable itself.
|
||||||
|
|
||||||
|
## Giving `CAP_NET_BIND_SERVICE` capabilities
|
||||||
|
|
||||||
|
### 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:
|
||||||
|
|
||||||
|
```systemd
|
||||||
|
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||||
|
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||||
|
```
|
||||||
|
|
||||||
|
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]:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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]:
|
||||||
|
|
||||||
|
> 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
|
||||||
|
> interpreter). In this case, as far I as understand, you'd have to apply the
|
||||||
|
> capability to the interpreter executable itself, which of course is a
|
||||||
|
> security nightmare, since any program using that interpreter will have the
|
||||||
|
> capability. I wasn't able to find any clean, easy way to work around this
|
||||||
|
> problem.
|
||||||
|
> 3. Linux will disable LD\_LIBRARY\_PATH on any program that has elevated
|
||||||
|
> 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
|
55
content/blog/checkra1n-gui-on-other-distros.md
Normal file
55
content/blog/checkra1n-gui-on-other-distros.md
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
+++
|
||||||
|
title = "Checkra1n GUI on Other Distros"
|
||||||
|
date = "2021-03-25"
|
||||||
|
aliases = [
|
||||||
|
"posts/checkra1n-gui-on-other-distros/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
You can run the GUI version of checkra1n on non Debian-based distributions.
|
||||||
|
"""
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"guide",
|
||||||
|
"linux",
|
||||||
|
"archlinux",
|
||||||
|
"jailbreak",
|
||||||
|
"checkra1n",
|
||||||
|
]
|
||||||
|
+++
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
The official cross-distribution build of checkra1n only contains a CLI and TUI.
|
||||||
|
However, the version available in the
|
||||||
|
[checkra1n APT repository](https://checkra.in/linux) also contains a GTK-based
|
||||||
|
GUI which can be accessed using the `--gui` flag, or the included
|
||||||
|
`checkra1n.desktop` file.
|
||||||
|
|
||||||
|
## Other Distributions
|
||||||
|
|
||||||
|
First, download the Debian package available at
|
||||||
|
`https://assets.checkra.in/debian/checkra1n_VERSION_amd64.deb` (as of writing,
|
||||||
|
`VERSION` is currently `0.12.2`). Then, extract the `checkra1n` executable from
|
||||||
|
the package, and install the correct shared libraries. Here are the most
|
||||||
|
important ones, and their corresponding package names on Arch Linux:
|
||||||
|
|
||||||
|
- libimobiledevice-1.0.so.6 (`libimobiledevice`)
|
||||||
|
- libirecovery-1.0.so.3 (`libirecovery`)
|
||||||
|
- libtvcontrol.so (`libtvcontrol`)
|
||||||
|
- libplist-2.0.so.3 (`libplist`)
|
||||||
|
- libncurses.so.5 (`ncurses5-compat-libs`)
|
||||||
|
|
||||||
|
I found these by running the binary and then finding and installing the package
|
||||||
|
that contained the shared object I was missing.
|
||||||
|
|
||||||
|
I also made an AUR package named
|
||||||
|
[`checkra1n-gui`](https://aur.archlinux.org/packages/checkra1n-gui),
|
||||||
|
which does all this automatically.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
As I expected, there is nothing preventing the checkra1n GUI from working on non
|
||||||
|
Debian-based distributions (as far as I can tell).
|
34
content/blog/edited-in-middle-of-message-discord.md
Normal file
34
content/blog/edited-in-middle-of-message-discord.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
+++
|
||||||
|
title = "Put (edited) in the middle of a message in Discord"
|
||||||
|
date = "2021-03-25"
|
||||||
|
aliases = [
|
||||||
|
"posts/edited-in-middle-of-message-discord/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
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.
|
||||||
|
"""
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"tutorial",
|
||||||
|
"discord",
|
||||||
|
"discord-tricks",
|
||||||
|
]
|
||||||
|
+++
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Tutorial
|
||||||
|
|
||||||
|
1. Copy the "right-to-left embedding" character (U+202A) 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)`
|
||||||
|
|
||||||
|
*This post was adapted from [gitea:bbaovanc/discord-tricks][1]*
|
||||||
|
|
||||||
|
[1]: https://git.bbaovanc.com/bbaovanc/discord-tricks
|
40
content/blog/new-comment-system-again.md
Normal file
40
content/blog/new-comment-system-again.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
+++
|
||||||
|
title = "New Comment System (again)"
|
||||||
|
date = "2021-04-17"
|
||||||
|
aliases = [
|
||||||
|
"posts/new-comment-system-again/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
I decided to switch my comment system from Isso to
|
||||||
|
[Commento](https://www.commento.io/)
|
||||||
|
"""
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"announcement",
|
||||||
|
"hugo",
|
||||||
|
"blog",
|
||||||
|
]
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Isso vs Commento
|
||||||
|
|
||||||
|
I know it's only been six days since I added Isso, but I decided to switch to a
|
||||||
|
better comment system. Isso is meant to be simple, which means that it's missing
|
||||||
|
a lot of features. Commento has a lot of features such as sticky (pinned)
|
||||||
|
comments, spam detection, thread locking, email notifications (I couldn't get
|
||||||
|
this working on Isso), and a nicer design. I also was able to write some
|
||||||
|
[custom CSS rules][1] which make it look alright on my blog's theme. It also
|
||||||
|
supports SSO, so I might add support for signing up with GitHub, and possibly
|
||||||
|
GitLab.
|
||||||
|
|
||||||
|
## Summary of the [first post]({{< ref "/blog/new-comment-system" >}})
|
||||||
|
|
||||||
|
If you haven't read the
|
||||||
|
[New Comment System]({{< ref "/blog/new-comment-system" >}}) post, here's the
|
||||||
|
most important information. There's a comment section at the bottom of each post
|
||||||
|
where you can view and post comments. You can post anonymously, or create an
|
||||||
|
account so you can show your username and get email notifications. You can also
|
||||||
|
upvote, downvote, and reply to other comments.
|
||||||
|
|
||||||
|
[1]: https://git.bbaovanc.com/bbaovanc.com/blog/src/commit/478e15218313a33216d361de387b3bd878cd0ba6/assets/css/comments.css
|
42
content/blog/new-comment-system.md
Normal file
42
content/blog/new-comment-system.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
+++
|
||||||
|
title = "New Comment System"
|
||||||
|
date = "2021-04-11"
|
||||||
|
aliases = [
|
||||||
|
"posts/new-comment-system/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
I added a comment system to my blog, using [Isso](https://posativ.org/isso/).
|
||||||
|
"""
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"announcement",
|
||||||
|
"hugo",
|
||||||
|
"blog",
|
||||||
|
]
|
||||||
|
+++
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
I set up a comment system named [Isso](https://posativ.org/isso/) on my blog
|
||||||
|
today. At the bottom of each blog post, there's a comment section. You don't
|
||||||
|
need to sign up with an account or sign in with Google, Facebook, none of that
|
||||||
|
junk. You can comment anonymously, or provide any of the following three fields:
|
||||||
|
name, email address, and website, which will be shown to other people viewing
|
||||||
|
your comment. I'm going off of the assumption that no one cares/is malicious
|
||||||
|
enough to spam my comment sections.
|
||||||
|
|
||||||
|
## Known Issues
|
||||||
|
|
||||||
|
### Editing and deleting not working
|
||||||
|
|
||||||
|
You're supposed to be able to edit and delete comments up to 15 minutes after
|
||||||
|
posting them. As of now, that doesn't seem to be working; the request just
|
||||||
|
returns 403 (forbidden).
|
||||||
|
|
||||||
|
### White text on white background when previewing comment
|
||||||
|
|
||||||
|
This is a CSS related issue. This was also happening when editing/writing a
|
||||||
|
comment, but I edited it so the edit box has black text. I think a better fix is
|
||||||
|
to make the new comment form have a dark background, but I'll deal with that
|
||||||
|
later.
|
33
content/blog/text-substitution-in-discord-using-sed.md
Normal file
33
content/blog/text-substitution-in-discord-using-sed.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
+++
|
||||||
|
title = "Text Substitution in Discord using `sed`"
|
||||||
|
date = "2021-03-25"
|
||||||
|
aliases = [
|
||||||
|
"posts/text-substitution-in-discord-using-sed/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
Discord has (very primitive) support for text replacement using `sed` syntax.
|
||||||
|
"""
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"tutorial",
|
||||||
|
"discord",
|
||||||
|
"discord-tricks",
|
||||||
|
]
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Tutorial
|
||||||
|
|
||||||
|
[Example Video](/blog/media/discord-tricks/sed-text-replacement.mov)
|
||||||
|
|
||||||
|
If you send a message using `sed` substitution format (`s/old text/new text`),
|
||||||
|
Discord will execute it on the message you've last sent.
|
||||||
|
|
||||||
|
## Caveats
|
||||||
|
|
||||||
|
- Regex is not supported
|
||||||
|
- Global substitution is not supported
|
||||||
|
|
||||||
|
*This post was adapted from [gitea:bbaovanc/discord-tricks][1]*
|
||||||
|
|
||||||
|
[1]: https://git.bbaovanc.com/bbaovanc/discord-tricks
|
10
content/contact.md
Normal file
10
content/contact.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
+++
|
||||||
|
title = "Contact"
|
||||||
|
menu = "main"
|
||||||
|
|
||||||
|
description = """
|
||||||
|
List of ways to contact me
|
||||||
|
"""
|
||||||
|
+++
|
||||||
|
|
||||||
|
- [Email me](mailto:contact@bbaovanc.com)
|
18
content/donate.md
Normal file
18
content/donate.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
+++
|
||||||
|
title = "Donate"
|
||||||
|
menu = "main"
|
||||||
|
|
||||||
|
description = """
|
||||||
|
How to donate to me
|
||||||
|
"""
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Cryptocurrency Links
|
||||||
|
|
||||||
|
Nano: `nano_1ewtme68x5gia1bjq3jx1ku5pcxzayipdxjmjrc3x8qjjpat4ria8ajhjoxd`
|
||||||
|
|
||||||
|
Bitcoin: `bc1qj6h8z2tg9nxcl9ddnv9k798cru6asr6cpmj84m`
|
||||||
|
|
||||||
|
Ethereum: `0x80DaED7e2BEF5d894b37fBd79d0609aa17c8Cabc`
|
||||||
|
|
||||||
|
Monero: `45gGauNcWLNSobRMzk3rtfEpad7gGcEvegxCbEm6QYENdG4vag3fCVuFoKfdKSESeSEKyUNRGwAJyLaCQ6MC5AQ79DGcaRq`
|
17
content/gpg-fingerprints.md
Normal file
17
content/gpg-fingerprints.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
+++
|
||||||
|
title = "GPG Fingerprints"
|
||||||
|
menu = "main"
|
||||||
|
|
||||||
|
description = """
|
||||||
|
Fingerprint of my GPG key
|
||||||
|
"""
|
||||||
|
+++
|
||||||
|
|
||||||
|
```
|
||||||
|
sec rsa4096 2020-08-31 [SC]
|
||||||
|
CB7CCED9209E47B9B99B8E1D18089E4E3CCF1D3A
|
||||||
|
uid [ultimate] BBaoVanC <bbaovanc@bbaovanc.com>
|
||||||
|
uid [ultimate] BBaoVanC <github@bbaovanc.com>
|
||||||
|
uid [ultimate] BBaoVanC <bbaovanc@boba.best>
|
||||||
|
ssb rsa4096 2020-08-31 [E]
|
||||||
|
```
|
46
content/links.md
Normal file
46
content/links.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
+++
|
||||||
|
title = "Links"
|
||||||
|
menu = "main"
|
||||||
|
aliases = [
|
||||||
|
"/blog/links/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
Various links to my stuff
|
||||||
|
"""
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- [GitHub](https://github.com/BBaoVanC/)
|
||||||
|
|
||||||
|
## My Website
|
||||||
|
|
||||||
|
- [Main Site](https://bbaovanc.com/)
|
||||||
|
- [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/)
|
||||||
|
|
||||||
|
## My Software
|
||||||
|
|
||||||
|
- [imgupload.py](https://github.com/imgupload-py/imgupload.py)
|
||||||
|
- [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)
|
||||||
|
|
||||||
|
## My Configurations
|
||||||
|
|
||||||
|
- [dotfiles](https://github.com/BBaoVanC/dotfiles)
|
||||||
|
- [dwm](https://github.com/BBaoVanC/.dwm)
|
||||||
|
- [st](https://github.com/BBaoVanC/st)
|
||||||
|
- [dwm-flexipatch](https://github.com/BBaoVanC/dwm-flexipatch)
|
||||||
|
- [dwmblocks](https://github.com/BBaoVanC/dwmblocks)
|
||||||
|
- [dmenu](https://github.com/BBaoVanC/dmenu)
|
||||||
|
|
||||||
|
### Old Configurations
|
||||||
|
|
||||||
|
- [dwm](https://github.com/BBaoVanC/dwm)
|
||||||
|
- [xmonad](https://github.com/BBaoVanC/.xmonad)
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Other Sites"
|
|
||||||
draft: false
|
|
||||||
---
|
|
||||||
|
|
||||||
- [GitHub](https://github.com/BBaoVanC)
|
|
||||||
- [Gitea](https://git.bbaovanc.com)
|
|
15
content/referral-codes.md
Normal file
15
content/referral-codes.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
+++
|
||||||
|
title = "Referral Codes"
|
||||||
|
menu = "main"
|
||||||
|
aliases = [
|
||||||
|
"/referrals/",
|
||||||
|
]
|
||||||
|
|
||||||
|
description = """
|
||||||
|
Referral codes for various services that I use/have used
|
||||||
|
"""
|
||||||
|
+++
|
||||||
|
|
||||||
|
- [Vultr](https://www.vultr.com/?ref=8643438-6G)
|
||||||
|
- You get $100 to try out the service for a month
|
||||||
|
- I get $25 if you stay.
|
20
layouts/_default/single.html
Normal file
20
layouts/_default/single.html
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{ define "main" }}
|
||||||
|
<h1>{{ .Title }}</h1>
|
||||||
|
{{ if eq .Type "blog" }}{{ if not .Params.menu }}
|
||||||
|
<p>
|
||||||
|
<i>
|
||||||
|
<time datetime='{{ .Date.Format "2006-01-02" }}' pubdate>
|
||||||
|
{{ .Date.Format (default "02 Jan, 2006" .Site.Params.dateFormat) }}
|
||||||
|
</time>
|
||||||
|
</i>
|
||||||
|
</p>
|
||||||
|
{{ end }}{{ end }}
|
||||||
|
<content>
|
||||||
|
{{ .Content }}
|
||||||
|
</content>
|
||||||
|
<p>
|
||||||
|
{{ range (.GetTerms "tags") }}
|
||||||
|
<a href="{{ .Permalink }}">#{{ .LinkTitle }}</a>
|
||||||
|
{{ end }}
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
BIN
static/img/apple-touch-icon-192x192.png
Normal file
BIN
static/img/apple-touch-icon-192x192.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 KiB |
BIN
static/img/favicon.png
Normal file
BIN
static/img/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
BIN
static/media/checkra1n-gui-on-arch-linux.webp
Normal file
BIN
static/media/checkra1n-gui-on-arch-linux.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
static/media/discord-tricks/edited-in-middle-of-message.webp
Normal file
BIN
static/media/discord-tricks/edited-in-middle-of-message.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
static/media/discord-tricks/sed-text-replacement.mov
Normal file
BIN
static/media/discord-tricks/sed-text-replacement.mov
Normal file
Binary file not shown.
1
themes/hugo-bearblog
Submodule
1
themes/hugo-bearblog
Submodule
Submodule themes/hugo-bearblog added at 4304479210
Submodule themes/terminal deleted from aaaadafec9
Reference in New Issue
Block a user