The Return Of Webrings

#Why Use Webrings in 2023?

# Finding adult artists is easy these days, but finding artists with their own websites is actually pretty hard. Most people only use social media or art sites like DeviantArt or FurAffinity. Search engines can’t tell the difference between a hand-crafted personal site and a social media page. It’s all HTML to a computer. I love personal websites. You see so much more of a person’s creativity in them.

#How to Use Webrings in 2023

# But then I remembered something. Back before dinosaurs walked the earth and Google didn’t exist, fan websites used to link to each other using Web-Rings. That way if you found one website about a subject, you could find more.

# webrings-i-joinedSure enough I did a little looking around and found some new webrings people have been creating for adult art. Apparently a lot of adult artists are tired of their stuff getting hidden or deleted off social media all the time. Many of these web-rings revolve around Neocities, which is delightful. So today I added 3 webrings to my page to hopefully make it easier for other people to find me. Neo Creatives Webring, The May December Club, and the RPG Maker Webring (which does allow adult content)

#Doing it the Right Way / Hard Way

# And of course, me being me, I couldn’t simply copy-paste their link code and call it a day. Nope I had to go and look at the code, then recoil in horror at the fragile sequential script tags, global variables, and table tags. So… many… tables… You’re only adding 3 tiny pictures guys, what are you doing??


# I’m not picking on anybody here. They all do this, because they’re all using the same code. A web-ring system called OnionRing.js which is actually the simplest and least-terrible one available at the moment… if you can believe it. The other 3 web-ring systems I looked at all required a GitHub account, a Netlify account, and a PHD in bloated code. Why do you need to sign up to 2 other websites and their dependencies for something this simple!? Suddenly OnionRing.js doesn’t seem so bad in comparison.

# onionring-jsTwo scripts and global variables... not ideal webring-starter-kitTwo accounts depending on two external websites and ALL THESE FILES... all just to link to a simple list of websites??

# You might think I’m over-reacting, but a web-ring is really not that complicated. It’s basically just a list of websites…

# … and a few links.

# Those 5 links can be almost 5 lines of HTML. And navigating a list of text is trivial in JavaScript.

# bug-fixing-codeThat doesn’t mean my re-write was short. Just loading a text file takes quite a lot of lines in JavaScript. And since they were not using JSON I have to use a bunch of indexof commands to scan through the text, find the var sites = line, find the opening bracket, find the closing bracket, remove all the whitespace and automatically correct any syntax mistakes they made while hand-writing these files, and finally feed the list into JSON to turn it into a normal array. That was most of the code I wrote. The rest is just grabbing an HTML tag with a certain ID and injecting the HTML. 


# And then there’s CORS which stands for Cross-Origin Resource Sharing. Which actually means the opposite. Browsers don’t let JavaScript load stuff from other websites, because advertisers abused this feature so badly that now nobody else gets to do it… so I have to download all the files containing the website lists ahead of time, upload them to my own website, and then read them. But I suppose that’s one less external dependency for my website to rely on.

download-webring-listsDownloading stuff just so I can upload it again

# Anyway it works. Now I have clean reliable code with no global variables and much simpler HTML. I could have just pasted their code in 2 minutes and it would have worked fine, tables and all. I just happen to be picky about this stuff.