aboutsummaryrefslogtreecommitdiff
path: root/feed.xml
blob: 19455dab0595c614e2542609c9ffa2b6fff2268c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="rss.xsl" type="text/xsl"?>
<rss version="2.0">
  <channel>
    <title>Shinobi</title>
    <link>https://shinobi.btxx.org</link>
    <description>A text-based, RSS focused blogging system</description>
    <copyright>2022 Bradley Taunt</copyright>
    <ttl>60</ttl>
<item>
  <pubDate>Thu, 21 Apr 2022 12:37:54 EST</pubDate>
  <category>2022/04/21/4</category>
  <title>SIMPLE GUIDE FOR CREATING YOUR OWN SHINOBI.WEBSITE</title>
  <link>https://shinobi.btxx.org/posts/create-your-own-shinobi-website.txt</link>
  <description>
    <![CDATA[
<pre style='border: 0; white-space: pre-wrap; word-break: break-word;'>Learn how to setup your own Shinobi site without the need for any 
technical background.

I&#39;m going to keep this article as streamlined as possible. This post 
assumes you understand _what_ a shinobi website is and will therefore 
skip reiterating that. Instead we will break things down into basic 
step-by-step instructions.


STEP 1
------

Create a new folder (where you think it is best on your system). This 
will contain all the files for our shinobi website. Name it what ever 
you like.


STEP 2
------

Download the following project:

https://git.sr.ht/~tdarb/shinobi-script


STEP 3
------

Edit the following content in the newly created &quot;script.sh&quot; to align 
with your own settings. (ie: YOUR-DOMAIN would be 
&quot;yourcustomdomain.com&quot;) Feel free to use any text editor that works 
best for you.

1. YOUR-DOMAIN
2. YOUR-EMAIL (YOUR-NAME)
3. YOUR-BLOG-TITLE
4. YOUR-BLOG-DESCRIPTION
5. YOUR-COPYRIGHT-INFO

*Important*: You might not have a domain setup currently or plan to use 
the one generated by Netlify Drop below. That&#39;s okay! You can always 
come back to this step after the domain is live, change it and re-run 
everything again to update!


STEP 4
------

Next, look for the folder named &quot;posts&quot;. This will contain all your 
blog posts going forward. (It also contains a couple dummy posts for 
reference)


STEP 5
------

Write your first blog post! Create a new text file inside the &quot;posts&quot; 
sub-folder (ie: my-awesome-post.txt). Be sure to structure the first 4 
lines the same as below: (Pay attention to the blank space between the 
title and post description!)

&gt; Thu, 21 Apr 2022
&gt; YOUR BLOG POST TITLE
&gt; 
&gt; This is my short and sweet blog post description


STEP 6
------

If you are happy with your article then that means it&#39;s time to 
generate your site! Open a terminal app in your system (Windows, Mac, 
Linux - doesn&#39;t matter) and navigate to your new website folder by 
typing the following:

cd path/to/your/blog/folder


STEP 7
------

Now run the bash script to generate the &quot;feed.xml&quot; file automatically:

bash script.sh &gt; feed.xml


STEP 8
------

Now to host your new website! For this tutorial we are going to use 
Netlify Drop for simplicity and ease-of-use. Go to 
https://app.netlify.com/drop and then drag-and-drop your website folder 
directly into the website.

You&#39;ll get a &quot;.netlify.app&quot; based URL, unless you decide to implement a 
custom domain (which is easy to do following Netlify&#39;s instructions).

Now you can share your &quot;subdomain.netlify.app/feed.xml&quot; with the world 
and your readers can subscribe via RSS!


WHAT ABOUT NEW POSTS OR UPDATES?
--------------------------------

By getting a free Netlify account you can continue to re-upload the 
website folder when you make changes or add new articles. Easy, right?

Good luck on your own shinobi websites!


P.S. Feel free to reach out to me if you have any questions via 
shinobi.web@protonmail.com. I&#39;ll try to respond as quick as I can. 
Please be patient!</pre>]]>
  </description>
  <author>bt@btxx.org(Bradley Taunt)</author>
  <guid>https://shinobi.btxx.org/posts/create-your-own-shinobi-website.txt</guid>
  </item>
<item>
  <pubDate>Fri, 06 May 2022 12:37:54 EST</pubDate>
  <category>2022/05/06/5</category>
  <title>FULL POSTS ARE NOW RENDERED INSIDE RSS READERS</title>
  <link>https://shinobi.btxx.org/posts/full-posts-rss-readers.txt</link>
  <description>
    <![CDATA[
<pre style='border: 0; white-space: pre-wrap; word-break: break-word;'>Your subscribers can now read your full articles without leaving the 
comfort of their RSS readers.

I have finally succeeded after fighting with properly rendering full 
post content directly _inside_ RSS readers. I struggled with this 
implementation far longer than I&#39;d like to admit. Although, that&#39;s to 
be expected with my caveman knowledge of RSS feeds and my simple monkey 
brain.

But here we are! We made it.


INSPIRATION
-----------

The thought of rendering all the content within users&#39; RSS readers was 
always something I wanted for the initial launch of Shinobi Website. It 
was taking me a while to understand the layout issues caused by 
articles being pure plain text, so I ended up giving up for version 
&quot;1.0&quot;.

Then fellow web-minimalist Matthew Graybosch kindly reached out and 
showed off his own beautifully crafted shinobi website[0]. Browsing 
through his site and articles I quickly realized a few rendering woes 
of my own:

1. Having set the reading length to 72, I was hurting the reading 
experience for mobile users
2. Matthew was doing a lot more cool things on his site (D&amp;D style 
tables, separating specific feeds into their own directories)

Shortly after this exchange I was contacted by another plain-text web 
enthusiast, Koray Er[1].  They were inspired to start building out 
their own Shinobi Website. This is where the question was brought up 
regarding full post rendering:

&gt; i want the entire content in my rss reader - not just one line. the 
best i could do was put $(tail -n +4 $file) in the description. that 
works, but without line breaks. is it possible to fix that in rss.sh? i 
don&#39;t want to change the txt - it&#39;s so pure.

This was the final straw. I _needed_ to get this working in _some_ 
capacity.


CDATA TO THE RESCUE
-------------------

I played around with converting plain text to HTML and pasting it 
inside the XML at build time. This created more problems than it fixed. 
But finally, after roughly 2 hours of going down multiple rabbit holes 
of failure, I mashed together a few concepts from everyone&#39;s trusty 
copy/paste site: stackoverflow.

Take a look at the newly updated shell script here:

&gt; https://shinobi.website/script.sh

The only change I have made is inside the `description` tag within the 
individual `item` elements. Take a look if you&#39;re interested.

Wait, what the heck that CDATA junk, you might be asking?

&gt; CDATA is defined as blocks of text that are not parsed by the parser, 
but are otherwise recognized as markup.

After that we use `sed` to swap out any newlines with HTML line break 
elements. Nothing crazy there.

NOTE:
As you may have noticed on the main page of this project, the `rss.sh` 
code snippet has been replaced with a direct link to a new `script.sh`. 
Those wishing to implement this new style of formatting will need to 
make the shell changes manually.


CAVEATS
-------

Please note that if you are planning to render your content this way 
there are minor things to look out for.

1. Pasting code examples is a big no-no. The content will be mangled 
and the reader will try to render example snippets as HTML elements. 
Your best bet is to link directly to example files elsewhere in your 
directory.

^ THIS IS NO LONGER TRUE. See details below.[2]

2. This may not work for every single RSS Reader. I can&#39;t test every 
application out there in the wild nor can I double check different 
operating systems. All I know is this renders fine for me on macOS 
using NetNewsWire.


FOOTNOTES
---------
[0]: https://matthewgraybosch.com/
[1]: https://korayer.de/
[2]: This issue has been fixed thanks to Matthew Graybosch&#39;s excellent 
patch. See patch notes here: 
https://git.sr.ht/~tdarb/shinobi-script/log?from=7e2f8bd312d648ff1c8d3cf
dc747d2e5634100d7#log-7e2f8bd312d648ff1c8d3cfdc747d2e5634100d7


Thanks for reading my humble blog (maybe directly in your RSS reader 
this time too!),
-- Brad</pre>]]>
  </description>
  <author>bt@btxx.org(Bradley Taunt)</author>
  <guid>https://shinobi.btxx.org/posts/full-posts-rss-readers.txt</guid>
  </item>
<item>
  <pubDate>Thu, 14 Apr 2022 12:37:54 EST</pubDate>
  <category>2022/04/14/4</category>
  <title>INTRODUCING SHINOBI.WEBSITE</title>
  <link>https://shinobi.btxx.org/posts/introducing-shinobi-website.txt</link>
  <description>
    <![CDATA[
<pre style='border: 0; white-space: pre-wrap; word-break: break-word;'>What is a shinobi website?

I have finally been blessed with enough extra free-time to launch my 
small shinobi.website &quot;system&quot; into the wild! My hope is that others 
take inspiration from it and even start shinobi blogs/sites of their 
own.


SHINOBI.WEBSITE EXPLAINED
-------------------------

Quoting the homepage of https://shinobi.website:

&gt; A shinobi website is a text-based, RSS focused blogging &quot;system&quot;

More details about the naming decision, running the simple bash script 
and properly writing plain text blog posts can be found on the 
homepage. For this specific post I more of less want to focus on the 
initial &quot;launch&quot; of the product and what the future holds for this URL 
as a whole.


WHAT TO EXPECT
--------------

If you&#39;re reading this post, you have shown interest in this project. 
First off, I would like to thank you for taking the time subscribing to 
this feed or sneakily finding the direct link URL to this post. You are 
a true web shinobi.

As for articles posted here; they will cover topics about minimalism, 
open source software, writing prompts, HTML/CSS hacks and video game 
reviews. This place is an ever-evolving project, I&#39;m not going to 
restrict myself too much by hard constraints or limited topics.

For my next set of posts, I plan to cover a more step-by-step tutorial 
on setting up your own shinobi website through Netlify (for free!). 
After that I have a couple other concepts to follow-up with:

1. A clean Sublime Text setup for writing plain text posts
2. Easy steps to de-clutter and minimize your digital life
3. Switching over from a static site generator to a shinobi website


EXCITED TO INSPIRE
------------------

I&#39;m excited to see if this project inspires even *one* person to do the 
same. If it gets enough traction, I&#39;ll need to post a list or &quot;club&quot; 
somewhere for the shinobi community to show-off their work. It will be 
an interesting endeavour to watch grow and I&#39;m looking forward to 
sharing the experience with you, dear reader!


Thanks for reading my humble blog,
-- Brad</pre>]]>
  </description>
  <author>bt@btxx.org(Bradley Taunt)</author>
  <guid>https://shinobi.btxx.org/posts/introducing-shinobi-website.txt</guid>
  </item>
<item>
  <pubDate>Sun, 15 May 2022 12:37:54 EST</pubDate>
  <category>2022/05/15/7</category>
  <title>FIRST MAJOR PATCH AND QOL IMPROVEMENTS</title>
  <link>https://shinobi.btxx.org/posts/patch-1.txt</link>
  <description>
    <![CDATA[
<pre style='border: 0; white-space: pre-wrap; word-break: break-word;'>The main shinobi script has received its first external patch!

It&#39;s getting just past 10PM on this stormy Sunday night, but I have an 
urge to share this post now instead of waiting for next week. 
Afterwards I&#39;ll be going to bed before the start of a new week.

If you&#39;ve been following along, you might have noticed a pretty solid 
patch has been added to the core shinobi script project:

https://git.sr.ht/~tdarb/shinobi-script

Special shout out to Matthew Graybosch[0] for putting together these 
improvements and working towards a more consistent experience across 
all RSS readers.


THE CHANGES AT A GLANCE
-----------------------

In a nutshell:

- text inside the CDATA tag is now wrapped with &lt;pre&gt; tags
- &lt;pre&gt; tag has inline CSS to specify reasonable wrapping
- tail command to retrieve post text now pipes into sed to escape HTML 
tags.
- added test posts
- added makefile for local testing

Please take a look at the changes directly in the official patch 
notes[1]. Take notice of some of the new folders/files included with 
the default project. You&#39;ll also see updated instructions in the README 
to help with testing and local development.


QUALITY OF LIFE
---------------

In addition to the first major patch, I&#39;ve included basic styling to 
properly render the RSS feed directory in supported browsers. To see it 
in action, simply check out:

https://shinobi.website/feed.xml

The styles are included in the new `rss.css` file of the shinobi 
project. The current layout is taken from Len Falken&#39;s main 
directory[2]. Feel free to change this to however you see fit! I&#39;ve 
kept them consistent with the remainder of the project, but there is 
nothing stopping you from including things like XSLT.

To reflect these changes, I&#39;ve updated some of the details found in the 
original &quot;SIMPLE GUIDE FOR CREATING YOUR OWN SHINOBI.WEBSITE&quot;[3]


TESTING, TESTING, TESTING
-------------------------

I&#39;m trying my best to test every RSS reader available to me. My main 
machine is running macOS and my phone iOS, thus making me somewhat 
limited in my access to other OS-specific RSS applications. Even still, 
I&#39;ve added a growing list to the project README documenting readers 
that have been tested, along with their support &quot;grade&quot;. Feel free to 
include your own testing in tickets or patches on your own!

That is really all there is to say. Enjoy your week!


LINKS
-----

[0]: https://matthewgraybosch.com
[1]: 
https://git.sr.ht/~tdarb/shinobi-script/log?from=7e2f8bd312d648ff1c8d3cf
dc747d2e5634100d7#log-7e2f8bd312d648ff1c8d3cfdc747d2e5634100d7
[2]: http://len.falken.directory
[3]: https://shinobi.website/posts/create-your-own-shinobi-website.txt


***

Thanks for reading,
-- Brad</pre>]]>
  </description>
  <author>bt@btxx.org(Bradley Taunt)</author>
  <guid>https://shinobi.btxx.org/posts/patch-1.txt</guid>
  </item>
<item>
  <pubDate>Tue, 31 May 2022 12:37:54 EST</pubDate>
  <category>2022/05/31/2</category>
  <title>CUSTOMIZED RSS FEED WITH XSLT</title>
  <link>https://shinobi.btxx.org/posts/patch-2.txt</link>
  <description>
    <![CDATA[
<pre style='border: 0; white-space: pre-wrap; word-break: break-word;'>I&#39;ve finally merged in the latest changes from the `patch-2` branch 
into `master`. This patch includes a fairly decent update to the 
shinobi structure as a whole:

- Set all configuration options as variables for easier editing and 
updating
- Customized XML feed to match &quot;plain text&quot; style (in supported 
browsers)
- Option to wrap all posts at a 72 character limit for improved 
readability in the browser (commented out by default)


THE NEW RSS FEED &quot;LOOK&quot;
-----------------------

For demo purposes, simply visit the following link in any supported 
browser to see the XSLT in action:

https://shinobi.website/feed.xml


WRAPPING PLAIN TEXT
-------------------

You now have the ability to have shinobi automatically wrap your plain 
text files at a 72 character limit. Since this is _slightly_ more 
advanced, you will need to perform some minor edits to the `script.sh` 
file itself. Don&#39;t worry - I&#39;ve updated the main README file with 
detailed instructions on how to set this up under the section &quot;ADVANCED 
SETTING: WRAPPING PLAIN TEXT&quot;:

https://git.sr.ht/~tdarb/shinobi-script


That&#39;s all for now. Enjoy the rest of your week!
- Brad</pre>]]>
  </description>
  <author>bt@btxx.org(Bradley Taunt)</author>
  <guid>https://shinobi.btxx.org/posts/patch-2.txt</guid>
  </item>
<item>
  <pubDate>Tue, 14 Jun 2022 12:37:54 EST</pubDate>
  <category>2022/06/14/2</category>
  <title>INTERACTIVE LINKS INSIDE XML FEEDS</title>
  <link>https://shinobi.btxx.org/posts/patch-3.txt</link>
  <description>
    <![CDATA[
<pre style='border: 0; white-space: pre-wrap; word-break: break-word;'>Today I pushed out a minor change to include clickable, interactive 
links inside the generated XML feed. This isn&#39;t anything groundbreaking 
but greatly improves the user experience for those visiting the RSS 
file directly in their browser. The full changes can be found in the 
official repo for this project.

You can see a live example on this very website:

https://shinobi.website/feed.xml

and also on my own personal website:

https://tdarb.org/feeds/posts.xml

I plan to do a larger, more detailed write-up on how this is 
accomplished on my personal blog within the coming days. Subscribed to 
that feed if that is something you might be interested in.

Thanks for reading,
- Brad</pre>]]>
  </description>
  <author>bt@btxx.org(Bradley Taunt)</author>
  <guid>https://shinobi.btxx.org/posts/patch-3.txt</guid>
  </item>
<item>
  <pubDate>Mon, 09 May 2022 12:37:54 EST</pubDate>
  <category>2022/05/09/1</category>
  <title>THE SHINOBI SCRIPT IS NOW AVAILABLE ON SOURCEHUT</title>
  <link>https://shinobi.btxx.org/posts/shinobi-sourcehut.txt</link>
  <description>
    <![CDATA[
<pre style='border: 0; white-space: pre-wrap; word-break: break-word;'>The basic shell script that builds shinobi websites is now on sourcehut 
and licensed under MIT.

Like the title of this post says: the shinobi build script is now 
available on sourcehut:

&gt; https://git.sr.ht/~tdarb/shinobi-script

The original downloadable `script.sh` file will now redirect to this 
repo to ensure users are provided the most up-to-date version. The last 
thing I want is conflicting scripts being used out in the wild!


IMPROVEMENTS WELCOME
--------------------

I wanted to have this available to the public from day one but life has 
been busy! Special shout-out to `prx` for suggesting QoL improvements 
to the script[0]. I haven&#39;t tried implementing these suggested changes 
yet, if anyone wants to beat me to it...go for it! This is why the 
shinobi script needs to be more in the open. It can improve over time 
with the help of people _much_ smarter than myself!


WHY SOURCEHUT AND NOT GITHUB?
-----------------------------

I like to support competition and help reduce growing monopolies. 
Github is great for what it is but I have enough projects &quot;stuck&quot; on 
that platform. It&#39;s nice to diversify your git hosting!


LINKS
-----

[0]: https://si3t.ch/Logiciel-libre/atom-awk.xhtml


***

That&#39;s all folks, thanks for reading!
-- Brad</pre>]]>
  </description>
  <author>bt@btxx.org(Bradley Taunt)</author>
  <guid>https://shinobi.btxx.org/posts/shinobi-sourcehut.txt</guid>
  </item>
  </channel>
</rss>