updates; still not finished...

main
Dominic Reich 2 years ago
parent 4c06e374ed
commit dda892ccab
Signed by: dominic
GPG Key ID: BC9D6AE1A3BE169A

@ -16,5 +16,17 @@ summaryLength = 0
# # categories = "/:section/:slug/" # # categories = "/:section/:slug/"
# categories = "/:slug/" # categories = "/:slug/"
#[outputs]
# home = ["HTML", "RSS", "JSON"]
[mediaTypes]
[mediaTypes."application/atom"]
suffixes = ["xml"]
[outputFormats.Atom]
mediaType = "application/atom"
baseName = "index"
isPlainText = false
[outputs] [outputs]
home = ["HTML", "RSS", "JSON"] home = [ "HTML", "Atom", "JSON" ]

@ -8,14 +8,13 @@ rtl = false
title = "OE7DRT" title = "OE7DRT"
# logo = "img/logo.jpg" # logo = "img/logo.jpg"
# description = "My awesome website" # description = "My awesome website"
# copyright = "Copy, _right?_ :thinking_face:" #copyright = "Copy, _right?_ :thinking_face:"
copyright = """Content © by Dominic OE7DRT. copyright = "Copyright by Dominic Reich “OE7DRT”."
Licensed as [CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/)"""
dateFormat = "2 January 2006" dateFormat = "2 January 2006"
[author] [author]
name = "Dominic “OE7DRT”" name = "Dominic Reich “OE7DRT”"
image = "img/author.jpg" image = "img/author.jpg"
headline = "Austrian Amateur Radio Station" headline = "Austrian Amateur Radio Station"
bio = """Quickndirty facts: mid-30s, construction worker since 2016, bio = """Quickndirty facts: mid-30s, construction worker since 2016,

@ -35,8 +35,6 @@
pageRef = "tags" pageRef = "tags"
weight = 50 weight = 50
# -- Footer Menu -- # -- Footer Menu --
# The footer menu is displayed at the bottom of the page, just before # The footer menu is displayed at the bottom of the page, just before
# the copyright notice. Configure as per the main menu above. # the copyright notice. Configure as per the main menu above.
@ -60,3 +58,8 @@
name = "Links" name = "Links"
pageRef = "links" pageRef = "links"
weight = 20 weight = 20
[[footer]]
name = "LICENSE"
pageRef = "license"
weight = 30

@ -7,7 +7,7 @@
colorScheme = "congo" colorScheme = "congo"
defaultAppearance = "dark" # valid options: light or dark defaultAppearance = "dark" # valid options: light or dark
autoSwitchAppearance = true autoSwitchAppearance = false
enableSearch = true enableSearch = true
enableCodeCopy = true enableCodeCopy = true
@ -15,6 +15,8 @@ enableCodeCopy = true
# mainSections = ["section1", "section2"] # mainSections = ["section1", "section2"]
# robots = "" # robots = ""
#rssFullContent = true
[header] [header]
layout = "hybrid" # valid options: basic, hamburger, hybrid, custom layout = "hybrid" # valid options: basic, hamburger, hybrid, custom
# logo = "img/logo.jpg" # logo = "img/logo.jpg"
@ -23,7 +25,7 @@ enableCodeCopy = true
[footer] [footer]
showCopyright = true showCopyright = true
showThemeAttribution = true showThemeAttribution = true
showAppearanceSwitcher = false showAppearanceSwitcher = true
showScrollToTop = true showScrollToTop = true
[homepage] [homepage]
@ -60,6 +62,9 @@ enableCodeCopy = true
[sitemap] [sitemap]
excludedKinds = ["taxonomy", "term"] excludedKinds = ["taxonomy", "term"]
changefreq = "weekly"
priority = 0.5
filename = "sitemap.xml"
[taxonomy] [taxonomy]
showTermCount = true showTermCount = true

@ -1,12 +1,5 @@
--- +++
title: "Welcome to my personal website! :tada:" title = "OE7DRT"
description: "This is a demo of the Congo theme for Hugo." description = "my personal website"
---
{{< lead >}} +++
amateur radio station OE7DRT, dominic
{{< /lead >}}
welcome all!
good to be herea gain...

@ -6,6 +6,8 @@ comment = false
showReadingTime = false showReadingTime = false
showWordCount = false showWordCount = false
feed_exclude = true
+++ +++
Hello, my name is **Dominic** and I maintain this website. Hello, my name is **Dominic** and I maintain this website.

@ -6,4 +6,6 @@ showDateUpdated = false
showReadingTime = false showReadingTime = false
showWordCount = false showWordCount = false
feed_exclude = true
+++ +++

@ -1,7 +1,9 @@
+++ +++
title = "Accessories" title = "Accessories"
summary = """like tuners, bags, masts, coax cables etc...""" # summary = """like tuners, bags, masts, coax cables etc..."""
date = 2019-11-01 summary = """Additional equipment like antenna tuners, bags, masts, coax
cables..."""
#date = 2019-11-01
tags = ["accessory", "portable", "tuner"] tags = ["accessory", "portable", "tuner"]
showDate = false showDate = false
@ -11,8 +13,7 @@ showBreadcrumbs = true
showPagination = false showPagination = false
showWordCount = false showWordCount = false
feed_exclude = true
weight = 40 weight = 40
+++ +++
test

@ -1,7 +1,8 @@
+++ +++
title = "Antennas" title = "Antennas"
summary = """Antenna""" summary = """I have no idea what antenna you should use. These are the
date = 2019-11-01 antennas that I use (or used)."""
#date = 2019-11-01
tags = ["antenna", "portable", "chameleon", "sotabeams", "", "",] tags = ["antenna", "portable", "chameleon", "sotabeams", "", "",]
showDate = false showDate = false
showDateUpdated = false showDateUpdated = false
@ -10,8 +11,7 @@ showBreadcrumbs = true
showPagination = false showPagination = false
showWordCount = false showWordCount = false
feed_exclude = true
weight = 30 weight = 30
+++ +++
test

@ -1,7 +1,8 @@
+++ +++
title = "Handhelds" title = "Handhelds"
summary = """Handheld radios""" summary = """The ultra-lightweight transceivers. Mostly for 2m and/or 70cm.
date = 2019-11-01 Some are digital-ready."""
#date = 2019-11-01
tags = ["handheld", "portable", "icom", "yaesu", "radioddity", "wouxon", tags = ["handheld", "portable", "icom", "yaesu", "radioddity", "wouxon",
"anytone", "hytera"] "anytone", "hytera"]
showDate = false showDate = false
@ -11,8 +12,7 @@ showBreadcrumbs = true
showPagination = false showPagination = false
showWordCount = false showWordCount = false
feed_exclude = true
weight = 20 weight = 20
+++ +++
test

@ -4,16 +4,18 @@ summary: >
Consider the OpenGD77 firmware and you're all set with a very user friendly Consider the OpenGD77 firmware and you're all set with a very user friendly
and customizable handheld radio. and customizable handheld radio.
date: 2020-10-22T23:19:14+02:00 date: 2020-10-22T23:19:14+02:00
lastmod: 2022-11-25T21:33:02+01:00
showBreadcrumbs: true showBreadcrumbs: true
showReadingTime: false showReadingTime: false
showWordCount: false showWordCount: false
--- ---
[Product page][1] — [OpenGD77 website][2] [Product page][1] — [OpenGD77 Firmware][2] — [Latest CPS][3]
[1]: https://www.radioddity.com/products/radioddity-gd-77-dmr-two-way-radio [1]: https://www.radioddity.com/products/radioddity-gd-77-dmr-two-way-radio
[2]: https://www.opengd77.com/downloads/ [2]: https://www.opengd77.com/downloads/releases/
[3]: https://www.opengd77.com/downloads/CPS/Latest/
This is probably the first DMR capable radio that is made for amateur radio. This is probably the first DMR capable radio that is made for amateur radio.
Obviosly not per default, but thanks to OpenGD77 it is now suited for amateur Obviosly not per default, but thanks to OpenGD77 it is now suited for amateur
@ -88,9 +90,9 @@ these regions: `232, 262, 263, 264, 222, 228`.
Or: download your own set of DMR-IDs with the regions you want. You can also Or: download your own set of DMR-IDs with the regions you want. You can also
download only some federal states (like `2327,2328`) if you don't want all download only some federal states (like `2327,2328`) if you don't want all
entries from `232`. [Read along here][3] for some instructions about this. entries from `232`. [Read along here][dmrid] for some instructions about this.
[3]: {{< ref 2020-11-16-create-your-own-dmrid-database-file >}} [dmrid]: {{< ref 2020-11-16-create-your-own-dmrid-database-file >}}
## Band scope (Spectrum sweep scan) ## Band scope (Spectrum sweep scan)

@ -1,7 +1,7 @@
+++ +++
title = "Software" title = "Software"
summary = """Software I use or tested""" summary = """Software I use or tested."""
date = 2019-11-01 #date = 2019-11-01
tags = ["software", "cqrlog", "n1mm", "log4om", "qlog", "klog"] tags = ["software", "cqrlog", "n1mm", "log4om", "qlog", "klog"]
showDate = false showDate = false
showDateUpdated = false showDateUpdated = false
@ -10,8 +10,7 @@ showBreadcrumbs = true
showPagination = false showPagination = false
showWordCount = false showWordCount = false
feed_exclude = true
weight = 50 weight = 50
+++ +++
test

@ -1,7 +1,7 @@
+++ +++
title = "Transceivers" title = "Transceivers"
summary = """trans ceivers""" summary = """The big ones. May include QRP transceivers."""
date = 2022-11-16T22:19:11+01:00 #date = 2022-11-16T22:19:11+01:00
tags = ["transceiver", "portable", "icom", "yaesu", "lab599"] tags = ["transceiver", "portable", "icom", "yaesu", "lab599"]
showDate = false showDate = false
@ -11,6 +11,7 @@ showBreadcrumbs = true
showPagination = false showPagination = false
showWordCount = false showWordCount = false
feed_exclude = true
weight = 10 weight = 10
+++ +++

@ -5,24 +5,26 @@ showBreadcrumbs: true
--- ---
The first shortwave transceiver that I bought. I got told this has one of the best The first shortwave transceiver that I bought. I got told this has
receivers and filter techniques on the beginner segment. Unfortunately this one of the best receivers and filter techniques on the beginner segment.
radio is a bit chunky and heavy to transport in a rucksack so I haven't really Unfortunately this radio is a bit chunky and heavy to transport in a
used it that much so far---I do not have a station set up at my QTH yet. rucksack so I haven't really used it that much so far---I do not have
a station set up at my QTH yet.
## Built-in soundcard and CAT control ## Built-in soundcard and CAT control
The radio can be connected to a computer with one single USB cable which The radio can be connected to a computer with one single USB cable
provides a virtual soundcard aswell as a CAT control interface. This makes which provides a virtual soundcard aswell as a CAT control interface.
operating digital modes dead easy. This makes operating digital modes dead easy.
## Big touch screen ## Big touch screen
Maybe the first thing that you might see on that radio is the big screen. It is Maybe the first thing that you might see on that radio is the big
clear and very easy to read; you can interact with your finger aswell. screen. It is clear and very easy to read; you can interact with your
finger aswell.
## Twin filters ## Twin filters
To separate a signal is also a very easy thing to do. Use the twin filters to To separate a signal is also a very easy thing to do. Use the twin
narrow down the used bandwith. Long press the filter button to clear and reset filters to narrow down the used bandwith. Long press the filter
those filters. button to clear and reset those filters.

@ -0,0 +1,10 @@
---
title: Lab599 Discovery TX-500
date: 2022-11-04 15:13:43
#lastmod: 2022-11-12T19:51:31+01:00
showBreadcrumbs: true
# showReadingTime: false
# showWordCount: false
---

@ -8,59 +8,63 @@ showBreadcrumbs: true
--- ---
I got this because the IC-7300 was too chunky to be effectively transported I got this because the IC-7300 was too chunky to be effectively
within a rucksack. Also I feared scratches in its big display or even a broken transported within a rucksack. Also I feared scratches in its big
display: so here is the Yaesu FT-891. display or even a broken display: so here is the Yaesu FT-891.
I bought the 891 back in 2020, so this is not usable on 60 meters (like the I bought the 891 back in 2020, so this is not usable on 60 meters
IC-7300). (like the IC-7300).
## Excellent receiver ## Excellent receiver
I think this radio is quite similar to the IC-7300 in its receiving quality. I think this radio is quite similar to the IC-7300 in its receiving
Lots of options in the function menues help you to concentrate on the actual quality. Lots of options in the function menues help you to concentrate
voice you receive. on the actual voice you receive.
## Good filter capabilities ## Good filter capabilities
The filters are good enough to filter for a specific signal, mainly using The filters are good enough to filter for a specific signal, mainly
_WIDTH_ and _SHIFT_ and sometimes _CONTOUR_ filters is mostly effective using _WIDTH_ and _SHIFT_ and sometimes _CONTOUR_ filters is mostly
enough. The _<abbr title="Digital Noise Reduction">DNR</abbr>_ is also quite effective enough. The _<abbr title="Digital Noise Reduction">DNR</abbr>_
nice and works well, although I don't like the resulting voice that much. Way is also quite nice and works well, although I don't like the resulting
better works the autonotch filter (_<abbr title="Digital Noise Filter">DNF</abbr>_), voice that much. Way better works the autonotch filter
which is an awesome feature to have. (_<abbr title="Digital Noise Filter">DNF</abbr>_), which is an awesome
feature to have.
## Record and transmit CQ calls ## Record and transmit CQ calls
The FT-891 lets you record up to 5(??) or 3? different clips that you can later The FT-891 lets you record up to 5(??) or 3? different clips that you
transmit by a button press. That might come in handy when you are contesting--- can later transmit by a button press. That might come in handy when
can't refer to this much because I'm not contesting nor do I use this function you are contesting---can't refer to this much because I'm not
so far. contesting nor do I use this function so far.
## Good size ## Good size
I like it's size when it's beeing still a 100 W transceiver. Nonetheless it I like it's size when it's beeing still a 100 W transceiver.
drains the battery with 1 A when listening. Nonetheless it drains the battery with 1 A when listening.
## Digital modes ## Digital modes
I use the radio with a SignalinkUSB interface and I have to extend the bandwith I use the radio with a SignalinkUSB interface and I have to extend
manually with the _WIDTH_ setting from the function menue to have this set the bandwith manually with the _WIDTH_ setting from the function
correctly. The setting from the main settings is **not applied** on digital menue to have this set correctly. The setting from the main settings
modes. _Apparently Yaesu doesn't care about that bug._ is **not applied** on digital modes.
_Apparently Yaesu doesn't care about that bug._
## Tactical carrying system: 891escort ™ ## Tactical carrying system: 891escort ™
Made from aluminium the [891escort](https://portablezero.com/yaesu857D.html) Made from aluminium the
adds a little weight but also protection to the radio, especially for the knobs [891escort](https://portablezero.com/yaesu857D.html)
on the front panel. The addidional strap mounts can be used to attach a sling adds a little weight but also protection to the radio, especially
to the radio, it could be easily carried now---not that I used that once, but for the knobs on the front panel. The addidional strap mounts can be
it is there as a feature. My focus was the additional protection when I bought used to attach a sling to the radio, it could be easily carried now---
them. Now, a year later, I carry the radio inside a cloth bag without the escort not that I used that once, but it is there as a feature. My focus was
just to save some more grams when hiking through the mountains and I can remove the additional protection when I bought them. Now, a year later, I
the detachable head of the unit to change different microphones/headsets. When carry the radio inside a cloth bag without the escort just to save
using the carrying system I would need to remove the right frame before I could some more grams when hiking through the mountains and I can remove
detach the units head. the detachable head of the unit to change different microphones/headsets.
When using the carrying system I would need to remove the right frame
Some people recommend using a short LAN cable to get the socket outside, but I before I could detach the units head.
haven't found a good one yet (and a short one).
Some people recommend using a short LAN cable to get the socket
outside, but I haven't found a good one yet (and a short one).

@ -0,0 +1,10 @@
+++
title = "LICENSE"
date = "2022-12-04T18:15:03+01:00"
feed_exclude = true
draft = true
+++
Licensed as [CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/).

@ -8,6 +8,8 @@ date = "2022-11-20T15:56:36+01:00"
showReadingTime = false showReadingTime = false
showWordCount = false showWordCount = false
feed_exclude = true
+++ +++
cool links here cool links here

@ -103,7 +103,7 @@ else
fi fi
~~~ ~~~
{{< alert note >}} {{< alert circle-info >}}
If someone has two DMRIDS, the most recent registered callsign will appear on If someone has two DMRIDS, the most recent registered callsign will appear on
the top. Feel free to modify the script to your needs if you also want to display the top. Feel free to modify the script to your needs if you also want to display
the date of registration. Or modify the url if you want to only display last the date of registration. Or modify the url if you want to only display last
@ -183,7 +183,7 @@ $ for i in oe7d{a..z}{a..z}; do call $i; done
And this ran for 3 minutes and 17 seconds on my computer. And this ran for 3 minutes and 17 seconds on my computer.
{{< alert note >}} {{< alert circle-info >}}
The output above was made with an older version of the script. The output now The output above was made with an older version of the script. The output now
contains also the registration date as seen in previous examples. contains also the registration date as seen in previous examples.
{{< /alert >}} {{< /alert >}}

@ -1,5 +1,5 @@
--- ---
title: My Nextion 2.4\" DMR Last Heard Dashboard title: My Nextion 2.4" DMR Last Heard Dashboard
summary: > summary: >
I created a simple last-heard-dashboard for my small Nextion screen. I created a simple last-heard-dashboard for my small Nextion screen.
It currently shows the used slot, its origin (like Network or RF) , the It currently shows the used slot, its origin (like Network or RF) , the

@ -34,7 +34,7 @@ the buttons. Read more about the system screen on the chapter
{{< figure src="nxt07_01.png" alt="Screen Debug Preview" caption="" >}} {{< figure src="nxt07_01.png" alt="Screen Debug Preview" caption="" >}}
{{< alert warning >}} {{< alert >}}
You will need NextionDriver installed to use **all the buttons** on the You will need NextionDriver installed to use **all the buttons** on the
SYSTEM page. SYSTEM page.
{{< /alert >}} {{< /alert >}}
@ -43,7 +43,8 @@ SYSTEM page.
runs as root user.~~ Otherwise you should download the HMI files and modify it runs as root user.~~ Otherwise you should download the HMI files and modify it
in your NextionEditor LTS. in your NextionEditor LTS.
{{< alert note "Update on March 31, 2020" >}} {{< alert circle-info >}}
**Update on March 31, 2020**
The screen works fine on Pi-Star v4, but without NextionDrivers you won't be The screen works fine on Pi-Star v4, but without NextionDrivers you won't be
able to use the start/stop buttons on the system page. In fact, you won't be able to use the start/stop buttons on the system page. In fact, you won't be
able to use any buttons that execute code on the linux box. Also the version and able to use any buttons that execute code on the linux box. Also the version and

@ -10,11 +10,11 @@ This article is a summary of
[reasoniamhere.com/.../outrageously-useful-tips-to-master-your-z-shell/][1]. [reasoniamhere.com/.../outrageously-useful-tips-to-master-your-z-shell/][1].
The original article is from 2014 and the pages last entry is from 2015. In case The original article is from 2014 and the pages last entry is from 2015. In case
the website goes down I want the important bits saved for my reading and learning the website goes down I want the important bits saved for my reading and learning
pleasure ;-) pleasure :wink:
<!--more--> <!--more-->
{{< alert note >}} {{< alert circle-info >}}
*None of the following commands on this page are my own.* *None of the following commands on this page are my own.*
{{< /alert >}} {{< /alert >}}

@ -12,7 +12,8 @@ date: 2020-11-16T23:23:51+01:00
Let's start with the website [ham-digital.org](https://ham-digital.org/). It Let's start with the website [ham-digital.org](https://ham-digital.org/). It
contains the user database of registered DMR-IDs worldwide. contains the user database of registered DMR-IDs worldwide.
{{< alert note "Update" >}} {{< alert circle-info >}}
**Update**
While these scripts still work, the website `ham-digital.org` is dead and the While these scripts still work, the website `ham-digital.org` is dead and the
european database has been put together on [radioid.net](https://radioid.net). european database has been put together on [radioid.net](https://radioid.net).
{{< /alert >}} {{< /alert >}}
@ -24,16 +25,18 @@ registrations or the list of local administrators.~~
[reg]: https://register.ham-digital.org/ [reg]: https://register.ham-digital.org/
Okay, I try to keep this simple. These scripts are made to download an actual Okay, I try to keep this simple. These scripts are made to download an actual
snapshot of the DMR-ID database from *ham-digital.org*. They create a comma-separated snapshot of the DMR-ID database from *ham-digital.org*. They create a
list of DMR-IDs and callsigns to import into an amateur radio device. Actually comma-separated list of DMR-IDs and callsigns to import into an amateur radio
I use them only on my [Radioddity GD-77]({{< ref "equipment" >}}). device. Actually I use them only on my
[Radioddity GD-77]({{< ref "equipment/handhelds/radioddity-gd77" >}}).
`ref "equipment/handheld/radioddity-gd77" `
## Download the full database ## Download the full database
That fetches the whole database, which are something around 180.000 entries at That fetches the whole database, which are something around 180.000 entries at
the moment (2020-Nov-15). The script uses about 8MB of RAM. Something like that. the moment (2020-Nov-15). The script uses about 8MB of RAM. Something like
that.
~~~php ~~~php
#!/usr/bin/env php #!/usr/bin/env php

@ -22,11 +22,12 @@ into one single commit on the top of the commit history in my github repository.
Time will tell, if this is a good approach... Time will tell, if this is a good approach...
{{< alert >}}
**I am no expert** and this article helps me remembering this scenario with **I am no expert** and this article helps me remembering this scenario with
multiple repositories and their commit history. The logic behind this might multiple repositories and their commit history. The logic behind this might
not be correct, so if you have a better solution for this specific scenario, not be correct, so if you have a better solution for this specific scenario,
please let me know. I'm all up to learn this stuff the right way. please let me know. I'm all up to learn this stuff the right way.
{:.note} {{< /alert >}}
## If you have commits in your history ## If you have commits in your history

@ -12,7 +12,7 @@ tags: [linux,windows,n1mm,emulation,wine]
## We need to talk again (an Update) ## We need to talk again (an Update)
{{< alert note "Update" >}} {{< alert >}}
This is an update, the post was originally published on August 12<up>th</up>, This is an update, the post was originally published on August 12<up>th</up>,
2021. Most of the content has changed. 2021. Most of the content has changed.
{{< /alert >}} {{< /alert >}}
@ -113,7 +113,7 @@ $ env WINEPREFIX=/home/dominic/.wine-n1mm wine N1MM-Logger-Update-1.0.9243.exe
Unselect `Run N1MM Logger+...` and close the installer. Unselect `Run N1MM Logger+...` and close the installer.
{{< alert note >}} {{< alert circle-info >}}
Please not that those are examples, you need to start the files that **you** Please not that those are examples, you need to start the files that **you**
downloaded---they might differ in their version numbers. Also the declaration downloaded---they might differ in their version numbers. Also the declaration
of the environment variable is used with the **fish shell**, for bash (maybe the of the environment variable is used with the **fish shell**, for bash (maybe the
@ -160,7 +160,7 @@ You can click the big error message away, afterwards you get informed that AutoH
is not installed. Click that away too and you're done for now. Setup your station is not installed. Click that away too and you're done for now. Setup your station
details and move on with using N1MM Logger+ on linux. details and move on with using N1MM Logger+ on linux.
{{< alert info >}} {{< alert circle-info >}}
There might be still bugs as those error messages at the installation of the There might be still bugs as those error messages at the installation of the
.NET Framework didn't came from nothing---for what I've seen so far the menues .NET Framework didn't came from nothing---for what I've seen so far the menues
are a bit tricky to handle as they tend to disappear when hovering with the mouse. are a bit tricky to handle as they tend to disappear when hovering with the mouse.
@ -174,7 +174,7 @@ Finally, there is a good result I think:
Hopefully this article was helpful to somebody, as I have been sitting here now Hopefully this article was helpful to somebody, as I have been sitting here now
for a while doing all the exact steps from above to verify its validity---the for a while doing all the exact steps from above to verify its validity---the
reason for that was actually because I've seen that this specific article got reason for that was actually because I've seen that this specific article got
read quite a few times and I personally found it a bit confusing myself ;-) read quite a few times and I personally found it a bit confusing myself :wink:
vy 73 de Dominic, OE7DRT (going to bed now) vy 73 de Dominic, OE7DRT (going to bed now)

@ -58,7 +58,7 @@ The following files have been re-uploaded on my website to create a duplicate
resource for download, but primarily to prevent them from going offline in the resource for download, but primarily to prevent them from going offline in the
case the resource goes down for whatever reason. case the resource goes down for whatever reason.
{{< alert note >}} {{< alert circle-info >}}
I do not claim them to be my creation, I just want them to be online on a place I do not claim them to be my creation, I just want them to be online on a place
that I find again. that I find again.
{{< /alert >}} {{< /alert >}}

@ -6,13 +6,13 @@ summary: >
data to the [APRS-IS network](http://www.aprs-is.net/). data to the [APRS-IS network](http://www.aprs-is.net/).
date: 2022-01-08T14:34:54+01:00 date: 2022-01-08T14:34:54+01:00
categories: [amateur-radio] categories: [amateur-radio]
tags: [wx] tags: ["wx","linux"]
--- ---
## Preparation ## Preparation
{{< alert note "PLEASE TAKE NOTICE" >}} {{< alert >}}
As I'm using a redhat based distribution I installed WeeWX with some help of As I'm using a redhat based distribution I installed WeeWX with some help of
<https://weewx.com/docs/redhat.htm>. You may also need an account on <https://weewx.com/docs/redhat.htm>. You may also need an account on
<https://dev.netatmo.com/> for this to work. There you get your _client ID_ and <https://dev.netatmo.com/> for this to work. There you get your _client ID_ and
@ -133,10 +133,11 @@ your weather data into <https://apsr.fi/>.
## Going further ## Going further
{{< alert >}}
**Advanced computer skills may be required for this**. You may end up editing **Advanced computer skills may be required for this**. You may end up editing
some python scripts to finally get what you want. But if you want to learn some python scripts to finally get what you want. But if you want to learn
something new, your weather page may benefit from that. something new, your weather page may benefit from that.
{:.note} {{< /alert >}}
You may also want to inspect the installed skins (templates) which reside in You may also want to inspect the installed skins (templates) which reside in
`/etc/weewx/skins`---adopt them to your needs and enable some more reports in `/etc/weewx/skins`---adopt them to your needs and enable some more reports in

@ -88,9 +88,10 @@ configuration so this recovery process works quite well.
Okay, that's it all for now. Please note that I do not use the UFS filesystem Okay, that's it all for now. Please note that I do not use the UFS filesystem
any more, so I won't add this to my little instruction set. any more, so I won't add this to my little instruction set.
{{< alert circle-info >}}
This post was actually older, I've saved the instructions in a textfile until I This post was actually older, I've saved the instructions in a textfile until I
found the time to format it and publish it on my website. found the time to format it and publish it on my website.
{:.note title="For your information"} {{< /alert >}}
## Sources ## Sources

@ -30,7 +30,7 @@ $ systemd-resolve --statistics
~~~ ~~~
I usually do not need to flush my computers DNS caches, but fiddling with my I usually do not need to flush my computers DNS caches, but fiddling with my
firewall at home made me use this very often last weeks. firewall at home made me use this very often over the last few weeks.
## Sources ## Sources

@ -16,7 +16,7 @@ a Raspberry Pi 4 using the 64 bit operating system “Raspberry Pi OS”.
## Preparation ## Preparation
{{< alert warning >}} {{< alert >}}
Do not use a cheap SD-card for your hotspot. We do not mount the filesystem Do not use a cheap SD-card for your hotspot. We do not mount the filesystem
read-only like on Pi-Star. read-only like on Pi-Star.
{{< /alert >}} {{< /alert >}}
@ -211,9 +211,11 @@ const uint32_t STARTUP_COUNT = 2U;
I'll leave you with this, if you have no idea what you are doing here: you should I'll leave you with this, if you have no idea what you are doing here: you should
probably leave those files just as they are... probably leave those files just as they are...
{{< alert circle-info >}}
_Those values were determined by Volker (DL2SDG) and I found them on one of the _Those values were determined by Volker (DL2SDG) and I found them on one of the
links below. Those values may not suit your configuratoin or board, so take them links below. Those values may not suit your configuratoin or board, so take them
as a starting point and try the best values for you and your board._ as a starting point and try the best values for you and your board._
{{< /alert >}}
### Compile and upload to the board ### Compile and upload to the board
@ -231,9 +233,10 @@ Finish this with a reboot of the Raspberry Pi.
$ sudo reboot $ sudo reboot
~~~ ~~~
{{< alert circle-info >}}
Note, that we used `-j4` as an argument of `make` because the Raspberry Pi 4 has Note, that we used `-j4` as an argument of `make` because the Raspberry Pi 4 has
4 virtual cores and we use them to speed up the compilation process. 4 virtual cores and we use them to speed up the compilation process.
{:.note title="sidenote"} {{< /alert >}}
### Finally ### Finally
@ -1080,22 +1083,22 @@ back in school...
And so I found some information in `Common/Defs.h`: And so I found some information in `Common/Defs.h`:
~~~cpp {linenostart=64} {{< highlight cpp "linenos=table,hl_lines=2,linenostart=64">}}
enum HW_TYPE { enum HW_TYPE {
HW_HOMEBREW, HW_HOMEBREW,
HW_ICOM, HW_ICOM,
HW_DUMMY HW_DUMMY
}; };
~~~ {{< /highlight >}}
~~~cpp {linenostart=130} {{< highlight cpp "linenos=table,hl_lines=3,linenostart=130">}}
enum GATEWAY_TYPE { enum GATEWAY_TYPE {
GT_REPEATER, GT_REPEATER,
GT_HOTSPOT, GT_HOTSPOT,
GT_DONGLE, GT_DONGLE,
GT_STARNET GT_STARNET
}; };
~~~ {{< /highlight >}}
View those two online on github: [HW_TYPE], [GATEWAY_TYPE] View those two online on github: [HW_TYPE], [GATEWAY_TYPE]
@ -1190,7 +1193,8 @@ $ sudo systemctl enable --now timeserver.service
This is the end of the procedure if you want a working hotspot. If you want This is the end of the procedure if you want a working hotspot. If you want
visualisation on a dashboard continue reading: we will install nginx as our visualisation on a dashboard continue reading: we will install nginx as our
webserver and host the [dashboard made by Kim, DG9VH](https://github.com/dg9vh/MMDVMHost-Websocketboard). webserver and host the
[dashboard made by Kim, DG9VH](https://github.com/dg9vh/MMDVMHost-Websocketboard).
## Dashboard ## Dashboard

@ -37,9 +37,10 @@ We have to export our directories in the file `/etc/exports` on our Raspberry Pi
So we allow `192.168.1.123` read- and write-access to the directories above. So we allow `192.168.1.123` read- and write-access to the directories above.
{{< alert circle-info >}}
For the record: my user on my laptop (192.168.1.123) has the same UID (1000) For the record: my user on my laptop (192.168.1.123) has the same UID (1000)
as my user on the Raspberry Pi (192.168.1.124). as my user on the Raspberry Pi (192.168.1.124).
{:.note title="Note this"} {{< /alert >}}
Also edit `/etc/hosts.allow` to grant access for your network or host. Also edit `/etc/hosts.allow` to grant access for your network or host.
@ -78,7 +79,7 @@ see a new line looking like:
raspi4 rpc.mountd[30223]: authenticated mount request from 192.168.1.123:894 for /opt/MMDVMDash/html (/opt/MMDVMDash/html) raspi4 rpc.mountd[30223]: authenticated mount request from 192.168.1.123:894 for /opt/MMDVMDash/html (/opt/MMDVMDash/html)
~~~ ~~~
{{< alert note >}} {{< alert circle-info >}}
**To eliminate the confusion:** I've mounted `/var/www/html` but the log shows **To eliminate the confusion:** I've mounted `/var/www/html` but the log shows
`/opt/MMDVMDash/html`. This is because `/var/www/html` is currently a symbolic `/opt/MMDVMDash/html`. This is because `/var/www/html` is currently a symbolic
link to `/opt/MMDVMDash/html`. But if I remove the symlink and replace it with link to `/opt/MMDVMDash/html`. But if I remove the symlink and replace it with

@ -6,6 +6,7 @@ date = "2022-09-24T10:39:57+02:00"
#lastmod = "" #lastmod = ""
categories = ["amateur-radio"] categories = ["amateur-radio"]
tags = ["emulation","wine","mono", "linux", "windows"] tags = ["emulation","wine","mono", "linux", "windows"]
draft = true
+++ +++

@ -1,45 +0,0 @@
+++
title = "Using VARA with pat"
summary = """**pat** is known as Winlink replacement for Linux. Now it also
supports connections via VARA"""
date = "2022-09-25T09:49:24+02:00"
#lastmod = ""
categories = ["amateur-radio"]
tags = []
+++
I'm using zsh (not bash).
~~~console
$ env WINEPREFIX=/home/dominic/.wine WINEARCH=win32 wine wineboot
$ env WINEPREFIX=/home/dominic/.wine WINEARCH=win32 wine winecfg
$ env WINEPREFIX=/home/dominic/.wine WINEARCH=win32 winetricks sound=alsa
$ env WINEPREFIX=/home/dominic/.wine WINEARCH=win32 winetricks allfonts
$ tar -cJf wine-backup-$(date +%Y-%m-%d-%H%M%S).tar.xz .wine/
$ #copy files to %WINDIR%/system32 -> create self-extracting archive...
~~~
run my self-extracting archive after installing vb6run
- <a href="/files/VARA_files_drt.exe" onclick="window.fathom.trackGoal('HU5DDDJF', 0);">VARA_files_drt.exe</a>
when running winecfg check if Win7 is selected.
Using WINEARCH=win32 makes the windows 32bit -- most verbs from winetricks only
install 32bit versions, so this is reason for 32bit windows...
run wine Download/VARA_Setup
run wine .wine/drive_c/VARA/VARA.exe
should work...
nt4 pdh files taken from: http://download.microsoft.com/download/winntsrv40/update/5.0.2195.2668/nt4/en-us/nt4pdhdll.exe
sources: https://groups.io/g/VARA-MODEM/topic/installing_winlink_express/80678030
-- 73's de ON4AIN - Jan

@ -43,7 +43,7 @@ you got your login data). I got mine from [RWTH Aachen in Germany][1].
caption="I'm not using IPv6 at home..." >}} caption="I'm not using IPv6 at home..." >}}
{{< figure src="hamnetvpn04.png" alt="IPSec settings" {{< figure src="hamnetvpn04.png" alt="IPSec settings"
caption="Somehow that setup only worked when I removed this setting?#*!" >}} caption="Somehow that setup only worked when I removed this setting?" >}}
{{< figure src="hamnetvpn05.png" alt="PPP settings" {{< figure src="hamnetvpn05.png" alt="PPP settings"
caption="And I ended up using those settings for PPP" >}} caption="And I ended up using those settings for PPP" >}}

@ -2,12 +2,16 @@
title = "Network-metrics on Fedora 36" title = "Network-metrics on Fedora 36"
summary = """quick n dirty...""" summary = """quick n dirty..."""
date = "2022-10-23T20:15:44+02:00" date = "2022-10-23T20:15:44+02:00"
#lastmod = "" lastmod = "2022-12-04T22:30:18+01:00"
categories = ["computerstuff"] categories = ["computerstuff"]
tags = ["fedora","linux","networking"] tags = ["fedora","linux","networking"]
draft = true
+++ +++
## first
If you are using NetworkManager, the proper way to change the metric for the default route is to modify the connection associated with interface enp0s3 in this way: If you are using NetworkManager, the proper way to change the metric for the default route is to modify the connection associated with interface enp0s3 in this way:
~~~console ~~~console
@ -21,3 +25,42 @@ $ nmcli connection up <connection-name>
~~~ ~~~
You can find the value for <connection-name> in the output of nmcli connection. You can find the value for <connection-name> in the output of nmcli connection.
## second
~~~console
$ nmcli connection
NAME UUID TYPE DEVICE >
Magneto_5G 923ab10b-be81-4668-9aab-9602f11db2e5 wifi wlx00259ce03>
Alfodr b2bcc61c-19df-41f0-9790-ad1f7f8113f1 wifi wlo1 >
Kabelgebundene Verbindung 1 c75abc26-19eb-3fec-81b1-c4716b39a8f1 ethernet --
~~~
~~~console
$ nmcli connection edit Alfodr
===| nmcli interaktive Verbindungsbearbeitung |===
Bestehende Verbindung »802-11-wireless« wird bearbeitet: »Alfodr«
Tippen Sie »help« oder »?«, um verfügbare Befehle anzuzeigen.
Geben Sie »print« ein, um alle Verbindungseigenschaften anzuzeigen.
Tippen Sie »describe [<Einstellung>.<Eigenschaft>]« für eine detaillierte Eigenschaftenbeschreibung.
Sie können die folgenden Einstellungen bearbeiten: connection, 802-11-wireless (wifi), 802-11-wireless-security (wifi-sec), 802-1x, ethtool, match, ipv4, ipv6, hostname, tc, proxy
nmcli> set ipv4.route-metric 599
nmcli> save
nmcli> quit
~~~
~~~console
$ sudo systemctl restart NetworkManager
~~~
Check routing table with
~~~console
$ ip route
~~~
(which can also be written as `ip r`)

@ -100,4 +100,4 @@ on your linux computer that usually opens `.log` files. That is
## The end ## The end
Have you ever clicked on the Log menu in VARA or VARA FM? Well, that works Have you ever clicked on the Log menu in VARA or VARA FM? Well, that works
without those registry tweaks... I'm just saying :) without those registry tweaks... I'm just saying :smile:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 151 KiB

@ -6,7 +6,6 @@ date = "2022-11-21T20:13:08+01:00"
#lastmod = "" #lastmod = ""
categories = ["amateur-radio"] categories = ["amateur-radio"]
tags = ["hamnet","pfSense","networking","linux"] tags = ["hamnet","pfSense","networking","linux"]
draft = true
+++ +++
@ -21,8 +20,8 @@ In my recent
[post about HAMNET]({{< ref "2022-10-16-vpn-tunnel-into-hamnet-on-fedora-36" >}}) [post about HAMNET]({{< ref "2022-10-16-vpn-tunnel-into-hamnet-on-fedora-36" >}})
I created an <abbr title="Layer 2 Tunneling Protocol">L2TP</abbr> tunnel to the I created an <abbr title="Layer 2 Tunneling Protocol">L2TP</abbr> tunnel to the
german VPN Server at the RWTH Aachen University on my laptop. Routes have been german VPN Server at the RWTH Aachen University on my laptop. Routes have been
added manually---the network was only available on my laptop. No other device added manually---the network was only available on this particular computer.
was able to connect to the HAMNET. No other device was able to connect to the HAMNET.
Now I made some changes to my home network where I finally was able to create Now I made some changes to my home network where I finally was able to create
the tunnel on my main router/firewall. the tunnel on my main router/firewall.
@ -45,9 +44,9 @@ new PPP interface with the following specs:
| Local IP | (leave empty) | | Local IP | (leave empty) |
| Gateway IP or hostname | **vpn.afu.rwth-aachen.de** | | Gateway IP or hostname | **vpn.afu.rwth-aachen.de** |
You can change `vpn.afu.rwth-aachen.de` with the IP address of the server if you <!-- You can change `vpn.afu.rwth-aachen.de` with the IP address of the server if you
like. That may help if you don't have a working DNS setup in your network. At the like. That may help if you don't have a working DNS setup in your network. At the
moment the DNS entry points to `137.226.79.99`. moment the DNS entry points to `137.226.79.99`. -->
![screenshot showing the PPP configuration](02_create-l2tp-interface.png) ![screenshot showing the PPP configuration](02_create-l2tp-interface.png)

@ -0,0 +1,22 @@
+++
title = "Change git submodule URL"
summary = """Another thing I forget constantly when using git:
Changing the remote URL of a submodule"""
date = "2022-12-01T20:08:17+01:00"
#lastmod = ""
categories = ["computerstuff"]
tags = ["til-git","reminders"]
+++
If the location (URL) of the submodule has changed, then you can simply:
1. Modify the <kbd>.gitmodules</kbd> file in the repo root to use the new URL.
2. Delete the submodule folder in the repo `rm -rf .git/modules/<submodule>`.
3. Delete the submodule folder in the working directory `rm -rf <submodule>`.
4. Run `git submodule sync`.
5. Run `git submodule update`.
More complete info can be found elsewhere:
<https://stackoverflow.com/questions/913701/changing-remote-repository-for-a-git-submodule>

@ -0,0 +1,112 @@
+++
title = "Installing hugo on Linux"
summary = """This is how I install hugo nowadays. Although that routine might
change anytime."""
date = "2022-12-04T18:04:34+01:00"
lastmod = "2022-12-04T23:29:01+01:00"
categories = ["computerstuff"]
tags = ["linux","gohugo"]
draft = true
[sitemap]
priority = 1.0
+++
## Build from source
To build Hugo from source you must:
- Install Git
- Install Go version 1.18 or later
- Update your PATH environment variable as described in the Go documentation
The install directory is controlled by the GOPATH and GOBIN environment variables. If GOBIN is set, binaries are installed to that directory. If GOPATH is set, binaries are installed to the bin subdirectory of the first directory in the GOPATH list. Otherwise, binaries are installed to the bin subdirectory of the default GOPATH ($HOME/go or %USERPROFILE%\go).
Then build and test:
~~~console
$ go install -tags extended github.com/gohugoio/hugo@latest
$ hugo version
~~~
## Using hugo theme as module...
### Quick start using Hugo
Note: Ensure you have Go and Hugo installed, and that you have created a new Hugo project before proceeding.
From your project directory, initialise Hugo Modules:
~~~console
$ hugo mod init github.com/<username>/<repo-name>
~~~
Create config/_default/module.toml and add the following:
~~~toml
[[imports]]
path = "github.com/jpanther/congo/v2"
~~~
Start your server using hugo server and the theme will be downloaded automatically.
In the root folder of your website, delete the config.toml file that was generated by Hugo. Copy the *.toml config files from the theme into your config/_default/ folder.
{{< alert >}}
Note: Do not overwrite the module.toml file you created above!
{{< /alert >}}
You will find these theme config files in the Hugo cache directory, or download a copy from GitHub.
Follow the Getting Started instructions to configure your website.
## use Atom feeds
Define an appropriate media type and corresponding output format in config.toml:
```toml
[mediaTypes]
[mediaTypes."application/atom"]
suffix = "xml"
[outputFormats.Atom]
mediaType = "application/atom"
baseName = "index"
isPlainText = false
```
Tell Hugo to produce the home page in Atom and HTML formats, also in config.toml:
```toml
[outputs]
home = [ "HTML", "Atom" ]
```
Put an index.atom.xml template file in your layouts directory. You can use the attached one as a starting point, don't forget to edit the author element appropriately or make it take the values from your config.
```xml
<feed xmlns="http://www.w3.org/2005/Atom">
<title>{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}</title>
<link rel="self" href="{{ .Permalink }}"/>
<updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
<author>
<name>YOUR NAME HERE</name>
<email>YOUR EMAIL ADDRESS</email>
<uri>DEFINITIVE URI OF YOUR WEB SITE</uri>
</author>
<id>{{ .Permalink }}</id>
{{ range first 15 .Data.Pages }}
<entry>
<title>{{ .Title }}</title>
<link rel="alternate" href="{{ .Permalink }}"/>
<id>{{ .Permalink }}</id>
<published>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</published>
<updated>{{ .Lastmod.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
<summary>{{ .Summary | html }}</summary>
</entry>
{{ end }}
</feed>
```
source: <https://gist.github.com/lpar/7ded35d8f52fef7490a5be92e6cd6937>

@ -2,4 +2,4 @@ module github.com/oe7drt/oe7drt-website
go 1.18 go 1.18
require github.com/jpanther/congo/v2 v2.4.1 // indirect require github.com/jpanther/congo/v2 v2.4.2 // indirect

@ -2,3 +2,5 @@ github.com/jpanther/congo/v2 v2.4.0 h1:0fswnbuH8t0xHdeyLGeMCsTToZF+26btjvEVsAXTi
github.com/jpanther/congo/v2 v2.4.0/go.mod h1:1S7DRoO1ZYS4YUdFd1LjTkdyjQwsjFWd8TqSfz3Jd+M= github.com/jpanther/congo/v2 v2.4.0/go.mod h1:1S7DRoO1ZYS4YUdFd1LjTkdyjQwsjFWd8TqSfz3Jd+M=
github.com/jpanther/congo/v2 v2.4.1 h1:F9Nqi08otWCB0fi+ImnHuCnB053S9HullPtF4DsvQVk= github.com/jpanther/congo/v2 v2.4.1 h1:F9Nqi08otWCB0fi+ImnHuCnB053S9HullPtF4DsvQVk=
github.com/jpanther/congo/v2 v2.4.1/go.mod h1:1S7DRoO1ZYS4YUdFd1LjTkdyjQwsjFWd8TqSfz3Jd+M= github.com/jpanther/congo/v2 v2.4.1/go.mod h1:1S7DRoO1ZYS4YUdFd1LjTkdyjQwsjFWd8TqSfz3Jd+M=
github.com/jpanther/congo/v2 v2.4.2 h1:c+WSf/9Mr+a/bR4w3YteHwnsS5eTWgkU0QC2Mqx9pjc=
github.com/jpanther/congo/v2 v2.4.2/go.mod h1:1S7DRoO1ZYS4YUdFd1LjTkdyjQwsjFWd8TqSfz3Jd+M=

@ -0,0 +1,38 @@
{{- $pctx := . -}}
{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
{{- $pages := $pctx.RegularPages -}}
{{- $limit := .Site.Config.Services.RSS.Limit -}}
{{- if ge $limit 1 -}}
{{- $pages = $pages | first $limit -}}
{{- end -}}
{{- printf "<feed xmlns=\"http://www.w3.org/2005/Atom\">" | safeHTML }}
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link rel="self" href="{{ .Permalink }}"/>
<updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
<author>
<name>Dominic Reich “OE7DRT”</name>
<email>dominic@oe7drt.com</email>
<uri>https://oe7drt.com</uri>
</author>
<id>{{ .Permalink }}</id>
{{ range $pages }}{{ if ne .Params.feed_exclude true }}
<entry>
<title>{{ .Title }}</title>
<author>
<name>Dominic Reich “OE7DRT”</name>
<email>dominic@oe7drt.com</email>
<uri>https://oe7drt.com</uri>
</author>
<link rel="alternate" href="{{ .Permalink }}"/>
<id>{{ .Permalink }}</id>
<published>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</published>
<updated>{{ .Lastmod.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
{{ if .Site.Params.rssFullContent }}
<summary>{{ .Content | html }}</summary>
{{ else }}
<summary>{{ .Summary | htmlUnescape | markdownify }}</summary>
{{ end }}
</entry>
{{ end }}{{ end }}
</feed>

@ -0,0 +1,6 @@
User-agent: *
Sitemap: {{ "sitemap.xml" | absLangURL }}
Disallow: /cgi-bin/
Disallow: /tags/
{{ range where .Data.Pages "Params.robotsdisallow" true }}Disallow: {{ .RelPermalink }}{{ end }}

@ -0,0 +1,11 @@
{{ "<?" | safeHTML }}xml-stylesheet type="text/xsl" href="{{ "/sitemap.xsl" | absURL }}"{{ "?>" | safeHTML }}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{{ range .Data.Pages }}
<url>
<loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
<changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
<priority>{{ .Sitemap.Priority }}</priority>{{ end }}
</url>
{{ end }}
</urlset>

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XML Sitemap</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body {
font-family: sans-serif;
font-size: 16px;
color: #242628;
}
a {
color: #000;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
table {
border: none;
border-collapse: collapse;
width: 100%
}
th {
text-align: left;
padding-right: 30px;
font-size: 11px;
}
thead th {
border-bottom: 1px solid #7d878a;
cursor: pointer;
}
td {
font-size:11px;
padding: 5px;
}
tr:nth-child(odd) td {
background-color: rgba(0,0,0,0.04);
}
tr:hover td {
background-color: #e2edf2;
}
#content {
margin: 0 auto;
padding: 2% 5%;
max-width: 800px;
}
.desc {
margin: 18px 3px;
line-height: 1.2em;
}
.desc a {
color: #5ba4e5;
}
</style>
</head>
<body>
<div id="content">
<h1>XML Sitemap</h1>
<p class="desc">
This is a sitemap generated by <a href="https://gohugo.io">Hugo</a> to allow search engines to discover this blog's content.
</p>
<p class="desc">
The xsl style is based on <a href="https://ghost.org">Ghost</a>.
</p>
<table id="sitemap" cellpadding="3">
<thead>
<tr>
<th width="75%">URL (<xsl:value-of select="count(sitemap:urlset/sitemap:url)"/> total)</th>
<th title="Priority" width="5%">Prio</th>
<th title="Change Frequency" width="5%">Ch. Freq.</th>
<th title="Last Modification Time" width="15%">Last Modified</th>
</tr>
</thead>
<tbody>
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
<xsl:for-each select="sitemap:urlset/sitemap:url">
<tr>
<td>
<xsl:variable name="itemURL">
<xsl:value-of select="sitemap:loc"/>
</xsl:variable>
<a href="{$itemURL}">
<xsl:value-of select="sitemap:loc"/>
</a>
</td>
<td>
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
</td>
<td>
<xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
</td>
<td>
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Loading…
Cancel
Save