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'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 "script.sh" to align
with your own settings. (ie: YOUR-DOMAIN would be
"yourcustomdomain.com") 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'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 "posts". 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 "posts"
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!)
> Thu, 21 Apr 2022
> YOUR BLOG POST TITLE
>
> This is my short and sweet blog post description
STEP 6
------
If you are happy with your article then that means it's time to
generate your site! Open a terminal app in your system (Windows, Mac,
Linux - doesn'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 "feed.xml" file automatically:
bash script.sh > 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'll get a ".netlify.app" based URL, unless you decide to implement a
custom domain (which is easy to do following Netlify's instructions).
Now you can share your "subdomain.netlify.app/feed.xml" 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'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'd like to admit. Although, that'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' 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
"1.0".
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&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:
> 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't want to change the txt - it'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's trusty
copy/paste site: stackoverflow.
Take a look at the newly updated shell script here:
> 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're interested.
Wait, what the heck that CDATA junk, you might be asking?
> 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'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'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 "system" 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:
> A shinobi website is a text-based, RSS focused blogging "system"
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 "launch" of the product and what the future holds for this URL
as a whole.
WHAT TO EXPECT
--------------
If you'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'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'm excited to see if this project inspires even *one* person to do the
same. If it gets enough traction, I'll need to post a list or "club"
somewhere for the shinobi community to show-off their work. It will be
an interesting endeavour to watch grow and I'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'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'll be going to bed before the start of a new week.
If you'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 <pre> tags
- <pre> 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'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'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's main
directory[2]. Feel free to change this to however you see fit! I'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've updated some of the details found in the
original "SIMPLE GUIDE FOR CREATING YOUR OWN SHINOBI.WEBSITE"[3]
TESTING, TESTING, TESTING
-------------------------
I'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've added a growing list to the project README documenting readers
that have been tested, along with their support "grade". 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'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 "plain text" 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 "LOOK"
-----------------------
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't worry - I've updated the main README file with
detailed instructions on how to set this up under the section "ADVANCED
SETTING: WRAPPING PLAIN TEXT":
https://git.sr.ht/~tdarb/shinobi-script
That'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'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:
> 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'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 "stuck" on
that platform. It's nice to diversify your git hosting!
LINKS
-----
[0]: https://si3t.ch/Logiciel-libre/atom-awk.xhtml
***
That'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>
|