,---.               ,--.         ,--.          
'   .-'  ,---.,--.--.`--' ,---. ,-'  '-. ,---.  

.-' |\ --.| | | || '-' ' | | .-' )

                         `--'                   

I use some things to that when I enter "gemlog" in the terminal, I am able to title my log, tag it (with limited tags), and have a link to the new log populate in various places - the gemlog digest, the atom feed, and, if I have tagged it with something (e.g. 'cfa'), then it will be linked on that page too.

There are 4 things that make this work for me. First, a 'blank' atom feed, second a preformatted header .txt for the log, third a preformatted digest page and fourth a bash script.

I'll paste all of these below. The bash script could do with some optimisations. I learned more about sed so I reckon there's a good few lines and at least one variable that could be removed! It's all a learning process :D

=> This is the atom feed of all my Gemlogs.

These are handy for feed-readers etc - the Gemini browser Amphora has a feed-reader baked in that works really well. I have a link to Amphora in "links".

The 'blank' atom feed

Below is the 'blank' feed I started with:



  gemini://gemini.ctrl-c.club/~semaphore/gemlog/digest.gmi
  Semaphore's Gemlog
2021-03-15T00:00:00+00:00
  
    gemini.ctrl-c.club/~semaphore
    semaphore@ctrl-c.club
  
  
  
  World's Shittest Script, by Semaphore

gemlogheader.txt

This is the header which is inserted to the top of gemlog we've just created:

=> The header file [.txt]

Preformatted digest.gmi

This is the gemlog digest, which will have a link to the new entry inserted to the top of the list.

=> The digest file, again with entries added.

The bash script gemlog.sh

This is a copy of the bash script I run, obviously it has my filepaths etc.

=> The gemlog.sh file

An explanation of how the script works

Firstly, $backslashheaven was me ragequitting on a problem, but I've since learn more about sed so I'll get around to cleaning it up one day and update it here too. But not today! Basically, the script;

  1. Asks for the title of the post (e.g. 'I Sent Morse For The First Time' or 'Martial Arts Grading Soon!"'), then asks for a filename (e.g. 'sendmorse' or 'grading'), then asks for if there's any tags (e.g. 'radio' or 'ma').

  1. The script then creates a .gmi of the filename I specified, then adds the preformatted header, the date, the title and at the end it adds a link to go back to the digest page. Because this is is done with echo >>, it's formatted for gemini already.

  1. It updates the atom feed, by;

a) removing the </feed> at the end of the .xml, and removing the line timestamping when the feed was last updated;

b) adding an entry at the bottom of the .xml with all the necessary stuff - the title, actual location in the internet of the log, the date and other things;

c) re-adding the </feed> to the end of the .xml now that the new entry is in, and reinserting a new timestamp showing when the atom feed was updated (i.e. just now);

  1. Adding a link for the new gemlog post to the digest page, which includes the date & title of the log, with the most recent gemlog post on top.

  1. If a tag was specified, then the new post will also be linked at the bottom of the relevant page (for instance, if it's a tag about firefighting then it well be added to the main CFA page). This should hopefully allow pages that would otherwise be a bit static to be more dynamic, having some usual or generic stuff, but then with any new developments also added added at the bottom, by way of a link to a gemlog.

  1. Last, but certainly not least, Gedit opens to actually write the post. Once I'm done writing I save the file. When I learn vim I'll use that instead of gedit. Until then I'll use gedit. Get off my back, you're not my real mum/dad!

  1. When I'm all done and happy I rsync the whole pod to both tilde.pink and ctrl-c.club (which will include any new gemlogs, new firecalls, or any other changes).

  1. The rsync is acheived with a different bash script that was fun to write and does probably too many things ;) But it updates all servers and timestamps the changes on both, as well as updates the timestamp on the landing page I have up at https://ctrl-c.club/~semaphore

=> The digest page | Back to the main page

Proxy Information
Original URL
gemini://tilde.pink/~semaphore/gemlog/scripts.gmi
Status Code
Success (20)
Meta
text/gemini;
Capsule Response Time
11.657192 milliseconds
Gemini-to-HTML Time
0.81094 milliseconds

This content has been proxied by September (ba2dc).