paritybit.ca

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 523a27cb24ff2b0b442d4c66027a398bc5eca01f
parent d186ed6e2b0885859d7d530f8601a527dee3e686
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Mon, 10 Jan 2022 15:19:17 -0500

Update blogroll

Diffstat:
Dgenerate-blogroll.sh | 84-------------------------------------------------------------------------------
Mpages/links.md | 84+++++++++++++++++++++++++++-----------------------------------------------------
2 files changed, 28 insertions(+), 140 deletions(-)

diff --git a/generate-blogroll.sh b/generate-blogroll.sh @@ -1,84 +0,0 @@ -#!/bin/sh - -# generate-blogroll -# A POSIX shell script to generate the blogroll list for paritybit.ca. -# NOTE: See the README for the expected format of md files. -# -# Copyright (C) 2020 Jake Bauer -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <https://www.gnu.org/licenses/>. - -# POSIX Shell "Strict Mode" -set -o errexit -set -o nounset -IFS=$(printf '\n\t') - -# Check if we have the programs we need -if [ ! -x "$(command -v newsboat)" ]; then - echo "The program 'newsboat' is needed but was not found." - exit 1 -fi -if [ -x "$(command -v nvim)" ]; then - vim_ver="nvim" -elif [ -x "$(command -v vim)" ]; then - vim_ver="vim" -else - echo "Either vim or nvim is needed but was not found." - exit 1 -fi - -feed_list=$(newsboat -e | grep outline) - -> blogroll-unsorted.md - -echo "Generating new blogroll..." -for item in $feed_list; do - xml_url=$(echo "$item" | awk '{$1=$2=""; print $3}' \ - | cut -d'=' -f2- | tr -d \") - http_url=$(echo "$item" | awk '{$1=$2=$3=""; print $4}' \ - | cut -d'=' -f2- | tr -d \") - title=$(echo "$item" | awk '{$1=$2=$3=$4=""; print $0}' \ - | cut -d'=' -f2- | tr -d \" | sed -E 's/\/>$//') - echo "* [$title]($http_url) ([feed]($xml_url))" >> blogroll-unsorted.md -done - -sort blogroll-unsorted.md > blogroll.md -rm blogroll-unsorted.md - -# Replace existing content in blogroll.md with new list of feeds -echo "Updating pages/links.md..." -echo ":%y -:e pages/links.md -/BLOGROLL_BEGIN -j -V -/BLOGROLL_END -2k -p -:wq" > script.vim -"$vim_ver" -s script.vim blogroll.md -rm script.vim -rm blogroll.md - -./compile pages/links.md - -# Generate OPML file -echo "Generating OPML..." -newsboat -e > public/blogroll.opml - -# Send the new OPML file to the site -echo "Uploading blogroll.opml..." -cd public && rsync -rR blogroll.opml paritybit.ca:/var/www/paritybit.ca/ && cd .. - -exit 0 diff --git a/pages/links.md b/pages/links.md @@ -343,66 +343,38 @@ Below are a bunch of feeds (blogs/podcasts/YouTube channels) which I follow, listed in alphabetical order. The content of any site below does not necessarily represent my views or opinions. -[Click here for an OPML file of all of the feeds I follow](/blogroll.opml). +[Click here for an OPML file of all of the feeds I follow](https://git.sr.ht/~jbauer/dotfiles/blob/master/urls.opml). -<!--BLOGROLL_BEGIN--> +* [Roundcube Webmail Project News](https://roundcube.net) ([feed](https://roundcube.net/feeds/atom.xml)) +* [OpenBSD Errata](https://www.undeadly.org/) ([feed](https://www.undeadly.org/errata/errata.rss)) +* [Release notes from jitsi-videobridge](https://github.com/jitsi/jitsi-videobridge) ([feed](https://github.com/jitsi/jitsi-videobridge/releases.atom)) +* [Release notes from lagrange](https://github.com/skyjake/lagrange) ([feed](https://github.com/skyjake/lagrange/releases.atom)) +* [Debian Security](http://security.debian.org/) ([feed](https://www.debian.org/security/dsa)) +* [Undeadly.org](https://www.undeadly.org) ([feed](https://www.undeadly.org/cgi?action)) +* [OpenBSD Webzine](https://webzine.puffy.cafe) ([feed](https://webzine.puffy.cafe/atom.xml)) +* [Linux Mint Blog](https://blog.linuxmint.com) ([feed](https://blog.linuxmint.com/?feed)) * [13brane](https://13brane.net/) ([feed](https://13brane.net/rss.xml)) -* [Arch Cloud Labs](https://www.archcloudlabs.com/) ([feed](https://www.archcloudlabs.com/index.xml)) -* [BSD Now](https://www.bsdnow.tv/) ([feed](https://feeds.fireside.fm/bsdnow/rss)) +* [tonsky.me](https://tonsky.me) ([feed](https://tonsky.me/blog/atom.xml)) * [captainepoch's log](https://adol.pw/) ([feed](https://adol.pw/index.xml)) -* [Cavelab blog](https://blog.cavelab.dev/) ([feed](https://blog.cavelab.dev/index.xml)) -* [Daemonic Dispatches](https://www.daemonology.net/blog/) ([feed](https://www.daemonology.net/blog/index.rss)) -* [Dan Luu](https://danluu.com/atom/index.xml) ([feed](https://danluu.com/atom.xml)) -* [Debian Security](http://security.debian.org/) ([feed](https://www.debian.org/security/dsa)) -* [Drew DeVault's blog](https://drewdevault.com/) ([feed](https://drewdevault.com/feed.xml)) +* [Xe's Blog](https://christine.website/blog) ([feed](https://christine.website/blog.rss)) +* [Solene'%](https://dataswamp.org/~solene/) ([feed](https://dataswamp.org/~solene/rss.xml)) +* [Drew DeVault's blog](https://drewdevault.com) ([feed](https://drewdevault.com/feed.xml)) * [Dusty Phillips Codes](https://dusty.phillips.codes/) ([feed](https://dusty.phillips.codes/index.xml)) * [flak](https://flak.tedunangst.com/) ([feed](https://flak.tedunangst.com/rss)) -* [Hundred Rabbits](https://100r.co/) ([feed](https://100r.co/links/rss.xml)) -* [icyphox's blog](https://icyphox.sh/blog/feed.xml) ([feed](https://icyphox.sh/blog/feed.xml)) -* [In a stream of Random Thoughts ..](https://randomthoughts.dk/) ([feed](https://randomthoughts.dk/index.xml)) -* [JankScale DataMemes](https://blog.jankscale.com/) ([feed](https://blog.jankscale.com/rss/)) -* [Jeff Geerling's Blog](http://www.jeffgeerling.com/) ([feed](http://www.jeffgeerling.com/blog.xml)) -* [joshua stein](https://jcs.org/) ([feed](https://jcs.org/rss)) -* [Mastering the Web - Roman Zolotarev](https://www.romanzolotarev.com/) ([feed](https://www.romanzolotarev.com/rss.xml)) -* [NetworkProfile.org](https://blog.networkprofile.org/) ([feed](https://blog.networkprofile.org/rss/)) -* [null program](https://nullprogram.com/) ([feed](https://nullprogram.com/feed/)) -* [OpenBSD Errata](https://www.undeadly.org/) ([feed](https://www.undeadly.org/errata/errata.rss)) -* [OpenBSD Journal](https://www.undeadly.org/) ([feed](https://www.undeadly.org/cgi?action=rss)) -* [OpenBSD Webzine](https://webzine.puffy.cafe/) ([feed](https://webzine.puffy.cafe/atom.xml)) -* [paritybit.ca - What's New](https://www.paritybit.ca/) ([feed](https://www.paritybit.ca/feeds/sitewide-feed.xml)) -* [Pierre Neidhardt's homepage](https://ambrevar.xyz/atom.xml) ([feed](https://ambrevar.xyz/atom.xml)) -* [Pleroma News](https://pleroma.social/announcements/feed.xml) ([feed](https://pleroma.social/announcements/feed.xml)) * [Posts on fribbledom's Journal](https://fribbledom.com/posts/) ([feed](https://fribbledom.com/posts/index.xml)) -* [Release notes from jitsi-videobridge](https://github.com/jitsi/jitsi-videobridge/releases) ([feed](https://github.com/jitsi/jitsi-videobridge/releases.atom)) -* [Release notes from lagrange](https://github.com/skyjake/lagrange/releases) ([feed](https://github.com/skyjake/lagrange/releases.atom)) -* [Release notes from mirage](https://github.com/mirukana/mirage/releases) ([feed](https://github.com/mirukana/mirage/releases.atom)) -* [Roundcube Webmail Project News](https://roundcube.net/feeds/atom.xml) ([feed](https://roundcube.net/feeds/atom.xml)) -* [Secluded.Site](https://secluded.site/posts/) ([feed](https://secluded.site/posts/index.xml)) +* [icyphox's blog](https://icyphox.sh) ([feed](https://icyphox.sh/blog/feed.xml)) +* [joshua stein](https://jcs.org) ([feed](https://jcs.org/rss)) * [Signs of Triviality](http://www.netmeister.org/blog/) ([feed](https://www.netmeister.org/blog/rss.xml)) -* [Solene'%](https://dataswamp.org/~solene/) ([feed](https://dataswamp.org/~solene/rss.xml)) -* [Sol Fisher Romanoff](https://solfisher.com/) ([feed](https://solfisher.com/blog/index.xml)) -* [That grumpy BSD guy](https://bsdly.blogspot.com/) ([feed](https://bsdly.blogspot.com/feeds/posts/default)) -* [tonsky.me](https://tonsky.me/) ([feed](http://tonsky.me/blog/atom.xml)) -* [unixsheikh.com](https://unixsheikh.com/) ([feed](https://unixsheikh.com/feed.rss)) -* [&#xDC;bermotive](https://www.ubermotive.com/) ([feed](https://www.ubermotive.com/?feed=rss2)) -* [Xe's Blog](https://christine.website/blog) ([feed](https://christine.website/blog.rss)) -* [YOUTUBE: Atomic Shrimp](https://www.youtube.com/channel/UCSl5Uxu2LyaoAoMMGp6oTJA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCSl5Uxu2LyaoAoMMGp6oTJA)) -* [YOUTUBE: Back to Reality](https://www.youtube.com/channel/UCVQCQJyZQcIioTDQ4SACvZQ) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCVQCQJyZQcIioTDQ4SACvZQ)) -* [YOUTUBE: Ben Eater](https://www.youtube.com/channel/UCS0N5baNlQWJCUrhCEo8WlA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCS0N5baNlQWJCUrhCEo8WlA)) -* [YOUTUBE: Created Tech](https://www.youtube.com/channel/UCUq3Rn72jfQ-86CaCxj7XzA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCUq3Rn72jfQ-86CaCxj7XzA)) -* [YOUTUBE: Gamer's Nexus](https://www.youtube.com/channel/UChIs72whgZI9w6d6FhwGGHA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UChIs72whgZI9w6d6FhwGGHA)) -* [YOUTUBE: Hugh Jeffreys](https://www.youtube.com/channel/UCQDhxkSxZA6lxdeXE19aoRA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCQDhxkSxZA6lxdeXE19aoRA)) -* [YOUTUBE: James Hoffmann](https://www.youtube.com/channel/UCMb0O2CdPBNi-QqPk5T3gsQ) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCMb0O2CdPBNi-QqPk5T3gsQ)) -* [YOUTUBE: Luke Miani](https://www.youtube.com/channel/UC3c8H4Tlnm5M6pXsVMGnmNg) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UC3c8H4Tlnm5M6pXsVMGnmNg)) -* [YOUTUBE: Mark Furneaux](https://www.youtube.com/channel/UCRDQEDxAVuxcsyeEoOpSoRA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCRDQEDxAVuxcsyeEoOpSoRA)) -* [YOUTUBE: Nile Red](https://www.youtube.com/channel/UCFhXFikryT4aFcLkLw2LBLA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCFhXFikryT4aFcLkLw2LBLA)) -* [YOUTUBE: Practical Engineering](https://www.youtube.com/channel/UCMOqf8ab-42UUQIdVoKwjlQ) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCMOqf8ab-42UUQIdVoKwjlQ)) -* [YOUTUBE: Sebastian Lague](https://www.youtube.com/channel/UCmtyQOKKmrMVaKuRXz02jbQ) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCmtyQOKKmrMVaKuRXz02jbQ)) -* [YOUTUBE: SmarterEveryDay](https://www.youtube.com/channel/UC6107grRI4m0o2-emgoDnAA) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UC6107grRI4m0o2-emgoDnAA)) -* [YOUTUBE: Snazzy Labs](https://www.youtube.com/channel/UCO2x-p9gg9TLKneXlibGR7w) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCO2x-p9gg9TLKneXlibGR7w)) -* [YOUTUBE: Technology Connections](https://www.youtube.com/channel/UCy0tKL1T7wFoYcxCe0xjN6Q) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCy0tKL1T7wFoYcxCe0xjN6Q)) -* [YOUTUBE: Tech Tangents](https://www.youtube.com/channel/UCerEIdrEW-IqwvlH8lTQUJQ) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCerEIdrEW-IqwvlH8lTQUJQ)) -* [YOUTUBE: Tom Scott](https://www.youtube.com/channel/UCBa659QWEk1AI4Tg--mrJ2A) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCBa659QWEk1AI4Tg--mrJ2A)) -* [YOUTUBE: Under Dunn](https://www.youtube.com/channel/UCMABHak-OpZbC7k3HT2P5yQ) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCMABHak-OpZbC7k3HT2P5yQ)) -* [YOUTUBE: WriterlyWitterings](https://www.youtube.com/channel/UCtD9U9jSDEjaJsfz7meEK9Q) ([feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCtD9U9jSDEjaJsfz7meEK9Q)) -<!--BLOGROLL_END--> +* [In a stream of Random Thoughts ..](https://randomthoughts.dk/) ([feed](https://randomthoughts.dk/index.xml)) +* [Secluded.Site](https://secluded.site/posts/) ([feed](https://secluded.site/posts/index.xml)) +* [Daemonic Dispatches](https://www.daemonology.net/blog/) ([feed](https://www.daemonology.net/blog/index.rss)) +* [Mastering the Web - Roman Zolotarev](https://www.romanzolotarev.com/) ([feed](https://www.romanzolotarev.com/rss.xml)) +* [unixsheikh.com](https://unixsheikh.com) ([feed](https://unixsheikh.com/feed.rss)) +* [Cavelab blog](https://blog.cavelab.dev/) ([feed](https://blog.cavelab.dev/index.xml)) +* [Ubermotive](https://www.ubermotive.com) ([feed](https://www.ubermotive.com/?feed)) +* [Jeff Geerling's Blog](http://www.jeffgeerling.com/) ([feed](https://www.jeffgeerling.com/blog.xml)) +* [Arch Cloud Labs](https://www.archcloudlabs.com) ([feed](https://www.archcloudlabs.com/index.xml)) +* [That grumpy BSD guy](https://bsdly.blogspot.com) ([feed](https://bsdly.blogspot.com/feeds/posts/default)) +* [null program](https://nullprogram.com) ([feed](https://nullprogram.com/feed/)) +* [paritybit.ca - What's New](https://www.paritybit.ca) ([feed](https://www.paritybit.ca/feeds/sitewide-feed.xml)) +* [jwz](https://www.jwz.org/blog/) ([feed](https://cdn.jwz.org/blog/feed/))