<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <atom:link href="https://stupied.net/blog/feed.xml" rel="self" type="application/rss+xml"/> <title>Stupied Blog RSS Feed</title> <link>https://stupied.net</link> <description>RSS feed for all of my blog posts</description> <ttl>60</ttl> <item> <title>100 Questions for Artist</title> <link>https://stupied.net/blog/2025-Artist-Questionnaire</link> <pubDate>Thu, 27 Nov 2025 00:00:00 +0800</pubDate> <guid>2025-11-27</guid> <description> &lt;img src=&quot;https://stupied.net/art/img/25/doodle/Earthquake-Drill.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;Created a questionnaire for the funsies, you can get the blank &lt;a href=&quot;/chez/txt/artist.txt&quot;&gt;here&lt;/a&gt;. I tried my best to keep the questions art related and not drawing related, if you catch my drift.&lt;/p&gt; &lt;dl&gt; &lt;dt&gt;&lt;span&gt;1.&lt;/span&gt; Introduce yourself! What kind of art do you make?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt;Henlo I&#39;m Stupied! I make quite a lot of art but I&#39;m generally know for my cartoons with an artstyle that is vaguely reminiscent of 2018 animation memes. You can find the rest of my art &lt;a href=&quot;/art/&quot;&gt;here!&lt;/a&gt;&lt;/p&gt; &lt;div class=&quot;justified-gallery&quot; style=&quot;--min-height: 140px;&quot;&gt; &lt;img src=&quot;/art/img/25/drawin/08.jpg&quot; alt=&quot;&quot; style=&quot;--width: 800; --height: 690;&quot; /&gt; &lt;img src=&quot;/art/img/24/Introspection.jpg&quot; style=&quot;--width: 922; --height: 1149;&quot; /&gt; &lt;/div&gt; &lt;div class=&quot;justified-gallery&quot; style=&quot;--min-height: 140px;&quot;&gt; &lt;img src=&quot;/art/img/25/drawin/10.jpg&quot; alt=&quot;&quot; style=&quot;--width: 800; --height: 1000;&quot; /&gt; &lt;img src=&quot;/art/img/22/Scott.jpg&quot; style=&quot;--width: 922; --height: 890;&quot; /&gt; &lt;/div&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;2.&lt;/span&gt; How long have you been making art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Since forever. I honestly cannot recall a time I was never not been drawing. Art has always played an important role in my life and I genuinely don&#39;t know what I&#39;d be doing without it. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;3.&lt;/span&gt; How many hours do you spend for each piece?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; As a chronic doodler, I am always sketching about something within 5-10 minuets. But polished illustrations take me about a 3-5 hours to finish. Depending on how annoyed I am with the drawing. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;4.&lt;/span&gt; Do you prefer taking your time or do you like to quickly move on to the next thing?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I try not to dwell on a piece for too long so that things can get done and over with. Disliking a piece usually means there is something fundamentally wrong with it and it&#39;s better for my sanity to finish it and move on to the next thing. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;5.&lt;/span&gt; When do you decide a piece is finished?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; When I get tired of looking at it. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;6.&lt;/span&gt; What part of the creation process do you enjoy the most?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Sketching! It&#39;s a fundamental aspect that is often overlooked. I&#39;ve always been envious of people who can sketch with so much confidence. Wether it be freehand perspective or gestural studies. One day I&#39;ll be the sketcher of all time..! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;7.&lt;/span&gt; What part of the creation process do you dislike the most?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; This may come to a surprise to some, but coloring. It&#39;s an aspect that really makes or breaks and illustration and I dread it every time. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;8.&lt;/span&gt; Do you have a designated workstation or do you just work wherever?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; My laptop and drawing tablet is always docked on my desk but I usually end up coding when I&#39;m home. Most of my art is made when I&#39;m outside, looking for some time to kill. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;9.&lt;/span&gt; Do you monetize you work or is it purely a hobby?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt;Getting money from what you love is sounds awesome! But the pressure to improve and market yourself is just to heavy of price to pay. I am contented with it staying as a hobby.&lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;10.&lt;/span&gt; Where do you share your work? On social media or a personal websites? Do you keep to yourself and close friends?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt;This website is the first place my work gets uploaded on. On days I don&#39;t feel lazy, I would upload it to my Instagram, Reddit, and selected Discord Servers.&lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;11.&lt;/span&gt; What&#39;s an aspect of your art you enjoy?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Being able look back at them and use them as a medium to ramble about my OCs. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;12.&lt;/span&gt; What are things you would like to improve on?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Want my art be less stiff and more flowy, you know? Yeah, you know. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;13.&lt;/span&gt; Are you self-taught or had formal education?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Do MAPEH classes count? &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;14.&lt;/span&gt; Do you research about old techniques or stick to newer ones?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Love learning about older techniques but never actually apply them. Dislike how most modern art tutorials are &quot;do this one visual trick to get good quickly&quot; than actually learning the fundaments. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;15.&lt;/span&gt; What do you value more, experimentation or mastery?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Experimentation is only really interesting when there was prior mastery. Which is why I strongly believe people should learn to draw from life before caring about stylization. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;16.&lt;/span&gt; Do you practice drawing from the wrist? What other art techniques to you practice?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Only recently has it been something I actively try to do. Used to sketch on tiny A6 notebooks (like half of a half short bondpaper) and bad habits die hard. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;17.&lt;/span&gt; How frequently do you do studies?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Only when I&#39;m outside and bored. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;18.&lt;/span&gt; Do you understand color theory? How&#39;d you learn or do you want to?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; No. Recently been enthralled by Mary Blair&#39;s work though. Would love to achieve the boldest of work one day. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;19.&lt;/span&gt; Favorite color(s)?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Red, yellow, and light blue. The absolute classics :] &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;20.&lt;/span&gt; Are there colors you avoid? Do you think ugly colors exists?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Generally avoid obnoxious shades of purple. Can only tolerate darker shades of it. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;21.&lt;/span&gt; Can you do perspective?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Gaslit myself into believing that I can. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;22.&lt;/span&gt; Do you like doing lineart? How do you go about it?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; At the moment, I only enjoy doing lineart traditionally. Yet to find a digital brush that has the same charm of working with a cheap ass ball point pens. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;23.&lt;/span&gt; Do you have multiple unfinished projects? Will you ever get to finishing them?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Haha.. ha... ha.. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;24.&lt;/span&gt; How do you start a new piece? Do you have a plan or just figure it along the way?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Usually do a few thumbnails to nail down some decent framing. Annoyingly, I sometimes end up liking the thumbnail more than the actual sketch. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;25.&lt;/span&gt; How do you handle art block?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I suffer the opposite actually. Having too many ideas and not being able to execute them in one sitting. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;26.&lt;/span&gt; Do you listen to music or watch something while working?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Only when I color. While sketching, I need my full focus and having something play in the background is far too distracting. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;27.&lt;/span&gt; When are you most motivated to create? In the morning or evening? Rainy or sunny?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Apparently when I have lots of school work. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;28.&lt;/span&gt; Are your sketchbooks messy or aesthetically pleasing?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Sketchbooks have always been really important to me. Not for their bragging potential but because how it gives me an excuse to let my mind drift. Allowing me to take everything around me and enjoy them as is. Looking back on an old pieces, I can remember what circumstances I was and who I was with. So being &#39;aesthetically&#39; pleasing really isn&#39;t as big as a priority as putting down what I see. &lt;/p&gt; &lt;div class=&quot;justified-gallery&quot; style=&quot;--min-height: 140px;&quot;&gt; &lt;img src=&quot;/art/img/24/doodle/Bunni.jpg&quot; alt=&quot;&quot; style=&quot;--width: 1520; --height: 1136;&quot; /&gt; &lt;img src=&quot;/art/img/25/doodle/Meirl.jpg&quot; alt=&quot;&quot; style=&quot;--width: 472; --height: 700;&quot; /&gt; &lt;/div&gt; &lt;div class=&quot;justified-gallery&quot; style=&quot;--min-height: 90px;&quot;&gt; &lt;img src=&quot;/art/img/24/doodle/Vacation.jpg&quot; alt=&quot;&quot; style=&quot;--width: 1520; --height: 1137;&quot; /&gt; &lt;img src=&quot;/art/img/23/doodle/Instruments.jpg&quot; alt=&quot;&quot; style=&quot;--width: 1520; --height: 1063;&quot; /&gt; &lt;/div&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;29.&lt;/span&gt; Do you like showing sketchbooks to others?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; There this old comic I made back then, that I cannot find anymore. It was basically one of my OCs ree-ing at someone asking to see her sketchbook. That feeling has never quite left me. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;30.&lt;/span&gt; Do you have any art friends? IRL or online?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Despite my social ineptitude, yes. I am forever grateful for them. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;31.&lt;/span&gt; Do you collaborate frequently with your friends? Is there something you&#39;d like to work on together?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; On the rare occasions we meet up, we&#39;ll doodle something in each other sketchbooks. You&#39;ve probably encountered some of them. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;32.&lt;/span&gt; Have you created art to gift to others? How do feel about parting away from your work?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; The only things that come to mind are sketchbooks I bounded for my friends and that one crochet cat I made for my younger sister. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;33.&lt;/span&gt; Have you drawn for someone else? Like commissions or requests? Did you enjoy it?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I&#39;ve done a handful of commissions in the past. In retrospect they weren&#39;t that good but thank you to the people who did anyways. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;34.&lt;/span&gt; How&#39;s your posture?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; &lt;i&gt;*bends back by 1 degree*&lt;/i&gt;&lt;br /&gt; &lt;i&gt;&lt;b&gt;*the loudest crack*&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt; It&#39;s alright. Could be worst. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;35.&lt;/span&gt; Have you ever been injured making art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Once made a really deep cut on my finger. It is probably the worst place to get a cut because you need your hand for literally everything. My dad offer me his paper cutter once but I felt really uncomfortable about owning what is essentially a mini guillotine. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;36.&lt;/span&gt; What&#39;s a medium of art you&#39;ve wanted to try / currently attempting?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I absolutely adore animation but just don&#39;t have the patience for it. I want things to look good now! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;37.&lt;/span&gt; Do you prefer stylized or realistic art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I have a strong preference for stylized art. Especially ones that flow nicely in arcs. Probably why I&#39;m so fascinated with animated dance numbers. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;38.&lt;/span&gt; Do you like hyper-realistic art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; No. Although there is skill required to achieve it, it&#39;s just something I can&#39;t bring myself to care enough for. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;39.&lt;/span&gt; Do you like abstract art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; They&#39;re good background noise. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;40.&lt;/span&gt; How do you feel about fine art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; The backstories artist will make up for the sake of selling their work is really funny to me. Like no fucking way you were thinking all that when you made this. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;41.&lt;/span&gt; How do you feel about outsider art? Do you think you fall in that category?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; They&#39;re art made purely for the sake of making art and I find them incredibly endearing. My art definitely does not fall under it - I&#39;ve seen too much. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;42.&lt;/span&gt; Do you follow art trends?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; No. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;43.&lt;/span&gt; Do you think you art is influenced by what&#39;s currently popular?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Not consciously. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;44.&lt;/span&gt; Do you compare yourself with others? Does it affect you negatively?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Seeing others art always motivates me to make more of my own!! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;45.&lt;/span&gt; Your controversial art take?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Anime is weird looking and it isn&#39;t normies fault for thinking they&#39;re for kids. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;46.&lt;/span&gt; Art related pet peeves?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Adding too much artificial static and noise. There is something wrong going on if you art needs a hundred filters to look interesting. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;47.&lt;/span&gt; Who or what are your inspirations?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Lavendertowne and Scott Pilgrim definitely effect me artstyle wise. Also no I will not shut up about &lt;a href=&quot;https://literalhat.com/&quot;&gt;LiteralHat&lt;/a&gt; because I really admire the versatility of their work. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;48.&lt;/span&gt; What&#39;s an art piece / artist you wished got more attention?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I know it was a difficult time for them but late 1940s-1950s Disney animation is so pretty. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;49.&lt;/span&gt; Have you touch grass recently? Do you go out frequently or do you spend most of your time indoors?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Due to the amount of natural disasters and bad timing, been spending a lot of time indoors lately. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;50.&lt;/span&gt; Do you create art daily?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I try my absolute darndest to. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;51.&lt;/span&gt; Do you take breaks from creating? How frequently?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Too many. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;52.&lt;/span&gt; Do you set deadline for your work?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; No, because they&#39;re never achieved and just make me sad. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;53.&lt;/span&gt; Do you archive your work? Do you keep old pieces?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Yes!! I have a keep all my old notebooks and my current art gallery archives works from all the back as 2018! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;54.&lt;/span&gt; Are you embarrassed of your old work? Or are you indifferent by it?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Not as much as before. Grown to love their wonkiness. It&#39;s also fun to ruminate about the times I made them. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;55.&lt;/span&gt; Do you seek out for criticism? How do you handle feedback?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Used to, but realize majority of the people that critic art in the internet aren&#39;t that knowledgable. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;56.&lt;/span&gt; Are you harsh on your own work? Or do you love your work despite all it&#39;s flaws?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Stopped putting down my own work because it literally benefits no one. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;57.&lt;/span&gt; Do you get compliments frequently? How do feel about them?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Responding to compliments makes me really anxious for [ Insert lengthy psychological reasons ] but know that I appreciate them! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;58.&lt;/span&gt; How do feel about the rise of generative AI? Do you use it for getting ideas or references?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Despise how intrusive it is. It&#39;s why I&#39;ve minimize my social media usage. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;59.&lt;/span&gt; How do feel about tracing? What about tracing 3d models to streamline art process?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Personally, I don&#39;t think it&#39;s that big of a deal. It&#39;s just the end results are always really stif really unimpressive. Having geometrical accurate art does not equate to appealing art. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;60.&lt;/span&gt; Drop you art resources!&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Literally have none I can think of right now &amp;lt;/3 &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;61.&lt;/span&gt; Do you prefer making fanart or original content?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Prefer making OC art but I&#39;m not above making fanart here and there! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;62.&lt;/span&gt; Do you think original content are more creative than fanart?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; No. Fanart still requires some kind of deconstruction and creativity to get right. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;63.&lt;/span&gt; Do you strive for originality?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; It&#39;s a waste of time to. There isn&#39;t a single art concept that hasn&#39;t been conceived and executed by someone else. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;64.&lt;/span&gt; Do you draw from imagination or heavily rely on references?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Since I mostly draw cartoons, I can get away with really questionable abstraction. But I try to look up references when I have the time. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;65.&lt;/span&gt; Do you think using references is a crutch?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; It&#39;s really a matter of balance. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;66.&lt;/span&gt; Do you like to make mood boards or scroll through Pinterest?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Sometimes I make a collection of ultra-specific things but I think it&#39;s just me procrastinating. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;67.&lt;/span&gt; Does your work have a story behind them or do you just make things that you think look neat?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; They always do, but I can&#39;t be bothered with elaborating them. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;68.&lt;/span&gt; Do you think art should have a purpose?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I think it just does. It just in it&#39;s nature. Sometimes that purpose is just to bring joy to whoever makes it. Or pain. Maybe both simultaneously. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;69.&lt;/span&gt; Favorite aesthetic?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Whatever the hell you call this thing &lt;/p&gt; &lt;img src=&quot;/blog/img/25/clarence-nash.jpg&quot; alt=&quot;&quot; /&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;70.&lt;/span&gt; Do you have a muse or a theme you fall back to?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; When all else fails, I just doodle Psyche. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;71.&lt;/span&gt; If you could eat you art, what would it taste like?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Sweet and sour pork. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;72.&lt;/span&gt; If your work suddenly became sentient, would it adore or hate you?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; All of them are angry and spiteful. So yeah, they&#39;d most likely hate my guts. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;73.&lt;/span&gt; Based on previous question, can you win in a fist fight against it?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; No. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;74.&lt;/span&gt; Is your art style consistent? Do you prefer making a wide variety of art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Just use whatever artstyle my whims takes me but my resistance to change often brings me back to the same shit I&#39;ve been drawing a decade ago. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;75.&lt;/span&gt; Do you revisit old concepts or sketches? Do you touch em up or leave them as is?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Sometimes I consider redoing certain pieces, but my laziness get the best of me. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;76.&lt;/span&gt; Do you believe in talent or is it all skill?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I strongly believe there are just people who are innately better in certain aspects. But I also believe there isn&#39;t anything a talented person can do a that a properly skilled artist can&#39;t do. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;77.&lt;/span&gt; What&#39;s your favorite thing to draw / make? Do you prefer making living things or still life?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; People&#39;s backs and people on their phones. There&#39;s a lower probability of eye contact. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;78.&lt;/span&gt; Do you create your art with a specific audience in mind? Who?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Me..!! Genuinely cannot imagine much of my work appealing to anyone else and I&#39;d rather not waste timing trying to. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;79.&lt;/span&gt; How do you feel about people taking inspiration from work? Do you think art style theft is real?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Art style theft is so dumb that I can&#39;t help but find it really funny. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;80.&lt;/span&gt; Do you participate in art conventions? Do you sell your work or support everyone else?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; No, because most of the art conventions here are anime related. The only anime related things I care about is pokemon and puyo. They never have the latter nor do they make art of my favorite mons :( &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;81.&lt;/span&gt; Are you art materials expensive? Do you hoard any tools?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; The most expensive thing I own is my laptop and drawing tablet! All my traditional art materials are usually the cheapest thing you could find and I make my own sketchbooks. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;82.&lt;/span&gt; Do you organize you supplies and tools systematically?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; The paint and pin maker is behind my rooms door, the pin shells and miscellaneous objects is inside the broken cabinet, and all my papers and yarn underneath the bed. So, no. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;83.&lt;/span&gt; Do you clean up after a project? Or do you just leave everything lying around till you need the space?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; My desk is too small for anything so I have to clean up almost immediately. Also having a messy room fucks over my already awful attention span. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;84.&lt;/span&gt; Do you have a ritual before you start creating? Do you have a drink or some snacks?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Sigh. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;85.&lt;/span&gt; How do feel about censorship in art? Where do you draw the line for inappropriate art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; I don&#39;t think there&#39;s truly inappropriate art. Just really inappropriate places to put it. The problem is the internet has made it really difficult to define those boundaries. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;86.&lt;/span&gt; Do you censor your own art? Do you feel like you leave out details for it be socially accepted?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Listen buddy, you&#39;re in MY website looking at MY art! If you find something offensive and in poor taste, do yourself a favor and look at something else! It really isn&#39;t that difficult. I do not feel obligated to bend my artistic visions to please some strangers who probably didn&#39;t know about my existence until a few minuets ago. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;87.&lt;/span&gt; Do you feel intimated with starting a new projects?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Yeah. Usually do it bit by bit instead. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;88.&lt;/span&gt; Are you scared of your art regressing? Do you think it&#39;s even possible to get worst at art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Although a pessimistic view, I believe art regression is real. It is literally why I didn&#39;t pursue it professionally. At least if my art gets worst, I don&#39;t have to financially pay the price for it. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;89.&lt;/span&gt; Do you frequently make compromises for your work? Does your art come out the way you envision them?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Literally nothing comes out what I want it to. Learned to accept my incompetence and just draw for fun. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;90.&lt;/span&gt; How well do you manage your mistakes? Do you stress about them?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt;Just quietly tuck it away and move to the next project. Life is too short to worry about things people won&#39;t bother to look at for any more than a minuet.&lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;91.&lt;/span&gt; Do you make lists of things you&#39;d like to make? Do you actual commit to them?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Sometimes my siblings come up with a silly concept or something weird happens in my life. I have multiple lists taking note of these, but rarely do they become anything. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;92.&lt;/span&gt; What is your ultimate goal of your work? Like, is to tell a story, connect with others, or just to enjoy the process?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; To bring the lil guys in my head into something tangible. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;93.&lt;/span&gt; What&#39;s something you&#39;ve recently worked on that you&#39;re really proud of?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt;Probably this painting. I really ought to do traditional painting more often.&lt;/p&gt; &lt;img src=&quot;/art/img/24/Dear-Diary.jpg&quot; alt=&quot;&quot; /&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;94.&lt;/span&gt; Do you have any dream projects? Have you started on them?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Literally everything featured in the &lt;a href=&quot;https://stupied-ocs.neocities.org/&quot;&gt;OCs Website&lt;/a&gt;. Comics are technically the &quot;cheaper&quot; medium to create but the perfectionist in me makes it really difficult to just get started. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;95.&lt;/span&gt; Would you prefer unlimited money or unlimited time to make your projects?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Unlimited money. This way I don&#39;t have to worry finding work and fully focus on my projects. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;96.&lt;/span&gt; Why do you create art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Because what else is there going on with my life, lol? &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;97.&lt;/span&gt; Are you happy with what you create?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Suppose as about happy as I can be. &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;98.&lt;/span&gt; Do you think everyone should make art?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Yes. I think just about anyone and everyone should make something at least once in their life. Make more than you consume!!!! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;99.&lt;/span&gt; What&#39;s advice you&#39;d give to newer artist?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; Art doesn&#39;t have to be technically impressive to be worthwhile making. Have fun with it! &lt;/p&gt; &lt;/dd&gt; &lt;dt&gt;&lt;span&gt;100.&lt;/span&gt; When did you finish this? How&#39;d you feel?&lt;/dt&gt; &lt;dd&gt; &lt;p&gt; &lt;b&gt;November 28, 2025 »&lt;/b&gt; Probably should of done something more productive haha. Writing a 100 questions then answering them was a lot more difficult than anticipated. Hoping there isn&#39;t too many grammatical mistakes..! &lt;/p&gt; &lt;/dd&gt; &lt;/dl&gt; &lt;p&gt;If you ever get around to answering it, please drop your website below! Honestly really curious and would love to read everyone else’s answers! :D&lt;/p&gt; &lt;h2 id=&quot;read-other-peoples-responses&quot;&gt;Read Other People’s Responses!&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://pinkbasement.nekoweb.org/pages/blog/21_011225.html&quot;&gt;pinkbasement.nekoweb.org&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://myblace.one/pages/index/blacklead/100questions.html&quot;&gt;myblace.one&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://blog.chunkofwax.com/blog/2025/100question&quot;&gt;chunkofwax.com&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://bekianee.art/blog/Blog_posts/2025-12-31-100-Questions.html&quot;&gt;bekianee.art&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://loreleice.net/notebook/100-artist-questions.html&quot;&gt;loreleice.net&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://azachi.nekoweb.org/blog/posts/004-100q&quot;&gt;azachi.nekoweb.org&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://mouseling.net/100artist&quot;&gt;mouseling.net&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://nomnomnami.com/ask/100q-art&quot;&gt;nomnomnami.com&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://tofutush.github.io/posts/2026-01-29.html&quot;&gt;tofutush.github.io&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://mintywyvern.neocities.org/posts/2026-03-06-100-Artist-Questions&quot;&gt;mintywyvern.neocities.org&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://oleracea.neocities.org/artists-questionnaire/&quot;&gt;oleracea.neocities.org&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; </description> </item> <item> <title>Improving My OC Website</title> <link>https://stupied.net/blog/2025-OCs</link> <pubDate>Tue, 25 Nov 2025 00:00:00 +0800</pubDate> <guid>2025-11-25</guid> <description> &lt;img src=&quot;https://stupied.net/blog/img/25/oc-website.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;Despite it being the original motivation for picking up a Static Site Generator, my &lt;a href=&quot;https://stupied-ocs.neocities.org&quot;&gt;OC Website&lt;/a&gt; has been severely neglected. This was mainly because my lack of understanding of how &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; worked made me hesitant to make anything complicated. Quite some time has passed since then I’ve gotten a better idea of how I wanted to go about the website. With overcomplicated file structures and a bit of &lt;a href=&quot;https://obsidian.md/&quot;&gt;Obsidian&lt;/a&gt; shenanigans, join me as I develop the workflow for the ultimate oc repository!!&lt;/p&gt; &lt;h2 id=&quot;heads-up&quot;&gt;Heads Up&lt;/h2&gt; &lt;p&gt;As per usual, this is not a tutorial. This blog is particularly experimental with me messing around with stuff that’s still kinda new to me. There’s a lot I would like to improve on but this is my current workflow and I felt like sharing it.&lt;/p&gt; &lt;h2 id=&quot;the-goal&quot;&gt;The Goal&lt;/h2&gt; &lt;p&gt;Normally you’d write all your character information in a single linear file. Unfortunately I am not normal person. So for each item I’d like there to be an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index.md&lt;/code&gt; file with each section separated in it’s own file. So if I wanted a page for Psyche, the folder would look like this:&lt;/p&gt; &lt;div class=&quot;language-console highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;go&quot;&gt;└───psyche index.md _appearance.md _gallery.md _history.md _personality.md _relationships.md &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;I’d also like to be able to sort the items into separate categories. Like whether or not something is a character or a location. Additionally, it be neat to have subdirectories in each category. For things like segregating characters based in the order of their importance.&lt;/p&gt; &lt;div class=&quot;language-console highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;go&quot;&gt;└───char ├───1st │ ├───psyche │ ├───evan │ └───jay ├───2nd │ ├───mary │ ├───lily │ └───august └───3rd ├───athena ├───charmaine └───benedict &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;To make all of this easier to manage we will be utilizing Jekyll’s &lt;a href=&quot;https://jekyllrb.com/docs/collections/&quot;&gt;Collections&lt;/a&gt; again. So with all of this in mind, a file’s path will probably look a bit like this.&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# src/collection/category/subdirectory/item-name/filename&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;public/psych/char/1st/psyche/index.md&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;You may think that all of this is a lot of trouble for what can easily be put into one file - and you’d absolutely right! But writing everything in separate files lets me know what content is in what and makes moving the order of sections around a lot easier. There also the added bonus of adding visual difference in each section by putting them in separate elements. Besides, can’t go around calling it the &lt;em&gt;Ultimate&lt;/em&gt; OC Repository if I don’t put in an extra bit of work.&lt;/p&gt; &lt;h2 id=&quot;configuration&quot;&gt;Configuration&lt;/h2&gt; &lt;p&gt;Before anything else we need to mess around with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt;. Since each universe is put into its’ own collection, we should put all the collections inside of it’s own folder to keep it tidy. We achieve this using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;collections_dir&lt;/code&gt; with all future collection folders placed into it.&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;collections_dir&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;_files&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Then we list out all the collections we’d like and set the output to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;true&lt;/code&gt;. This way, everything inside the collection will render as it’s own page.&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;psych&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;output&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;pmd&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;output&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;misc&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;output&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# so on, so forth&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;We can target everything inside a collection to set default values, such as what layout the file should be rendered in.&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;defaults&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;scope&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;_files/*/&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;values&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/:collection/:folder_below/:folder_first&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;view&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;And that should be about everything in the config file!&lt;/p&gt; &lt;h3 id=&quot;custom-placeholders&quot;&gt;Custom Placeholders&lt;/h3&gt; &lt;p&gt;You may have notice that in the default values from the previous section included something called the &lt;a href=&quot;https://jekyllrb.com/docs/permalinks/&quot;&gt;Permalink&lt;/a&gt;. It basically just sets the files path. If we leave it empty it will just defaults to files original path, which is &lt;em&gt;really&lt;/em&gt; long. It be better to keep the urls short and constant. We don’t want links to be broken because of arbitrary folders getting renamed to another. Using the permalink typically looks like this:&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;/:collection/:filename&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Everything starting with a colon (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:&lt;/code&gt;) is a placeholder that refers to the file’s own property. There’s a handful to choose from but because my files are setup weirdly, most of them are not that helpful. Since all the files are named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index.md&lt;/code&gt; they will all have the same permalink. In order for this to work, we need to get the name of the folder above the file. This way the file &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/psyche/index.md&lt;/code&gt; will become &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;psyche.html&lt;/code&gt; instead. You know last blog post when I said I’d figure out how to make custom ruby plugins? Yeah, was being super cereal about.&lt;/p&gt; &lt;p&gt;In the Drop module there’s UrlDrop. You can the find code &lt;a href=&quot;https://github.com/jekyll/jekyll/blob/master/lib/jekyll/drops/url_drop.rb&quot;&gt;here&lt;/a&gt; but basically you just define a function that you can use as the placeholder for the permalink. So we create a function called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;folder_above&lt;/code&gt; which can be access in the permalink with the same name. The function just splits the file’s path then grabs the second to the last item on the array - which is the filename we want.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Jekyll&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Drops&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;UrlDrop&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Drop&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;folder_above&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# obj.path returns » D:/path/to/_collection/folder-name/index.md&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@obj&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# returns &#39;folder-name&#39;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Additionally I want to be able to grab the first folder the file is in, relative to the root of the collection folder. So we grab the collection the file is in and search for its’ index in the files path. We increment that index to grab the folder!&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;folder_first&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@obj&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;_&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@obj&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;index&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;find_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Just as long as you know what properties to get and how to manipulate the string, you can make as many custom placeholders to your heart’s content. This isn’t all that impressive but it technically marks my first ever ruby script so that probably constitutes for something. One day I’ll fully wrap my head around object oriented programming then I can rule the world…!&lt;/p&gt; &lt;h3 id=&quot;adding-in-the-sections&quot;&gt;Adding in the Sections&lt;/h3&gt; &lt;p&gt;In Jekyll, anything starting with an underscore (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_&lt;/code&gt;) will be ignore and not process during the building process. So each &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index.md&lt;/code&gt; file should have a list of the additional files we’d like to include in the page. They’re capitalize because we’ll be using it as the title of the section.&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Personality&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Relationships&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Appearance&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Gallery&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;History&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Using this list we grab the content using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;include_relative&lt;/code&gt; which does exactly what it does. For example, it would look for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_personality&lt;/code&gt; file inside of the folder it is currently in. Also we need to wrap the content inside a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;capture&lt;/code&gt; variable to get the markdown to actually render.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;!-- Start of the page --&amp;gt; &amp;lt;article&amp;gt; &amp;lt;h1&amp;gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&amp;lt;/h1&amp;gt; &lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt; &amp;lt;/article&amp;gt; &amp;lt;!-- Looping through everything in files --&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;article id=&quot;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot; class=&quot;view-item&quot;&amp;gt; &amp;lt;!-- Title of Section --&amp;gt; &amp;lt;h2&amp;gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&amp;lt;/h2&amp;gt; &amp;lt;!-- Section Content --&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;capture&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;include_relative&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;prepend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;_&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;.md&#39;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endcapture&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;markdownify&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt; &amp;lt;!-- Converts the markdown --&amp;gt; &amp;lt;/article&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;h2 id=&quot;obsidian-vault&quot;&gt;Obsidian Vault&lt;/h2&gt; &lt;p&gt;Alrighty now that we’ve got the website configured, we gotta set up an easier way to go through and edit the files. The way it’s set up right now means we’d have to go through several nested folders which isn’t all that fun. This is where we’ll be using Obsidian and the fairly recently added in &lt;a href=&quot;https://help.obsidian.md/bases&quot;&gt;Bases&lt;/a&gt; Feature. Obsidian is a personal knowledge database which is just the nerd equivalent saying it’s a kickass fucking note taking app.&lt;/p&gt; &lt;p&gt;We filter for items that only had the filename &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index&lt;/code&gt;. The rest of the columns will be custom properties made with Obsidian’s &lt;a href=&quot;https://help.obsidian.md/bases/functions&quot;&gt;functions&lt;/a&gt;. For example we could make a column that links to the index file like so.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nf&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;note&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;For the thumbnails we just use grab the folder the file is in and link to the right path.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nf&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;img/thumb/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;folder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.jpg&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;We could also have a column that lists outs all the other files listed in the index&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nx&quot;&gt;note&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;index.md&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.md&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;We just toggle on the properties and arrange the table, then boom! Instead of having to sift through multiple folders, we could just take a gander of this nifty list of all the index and their related files. &lt;img src=&quot;/blog/img/25/oc-obsidian.png&quot; alt=&quot;Screenshot of Obsidian Base&quot; /&gt;&lt;/p&gt; &lt;hr /&gt; &lt;h2 id=&quot;wiki-links&quot;&gt;Wiki-Links&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;2025/12/15 »&lt;/strong&gt; Wohoo an update because I am indecisive! I like wikilinks using obsidian to work but as it current stands, whenever I want to link another article, I have to settle for writing the whole absolute path. Soooo we’re gonna use a custom filter instead. We need to rename the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index.md&lt;/code&gt; files to the actual names. Which means the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;folder_above&lt;/code&gt; function we made previously is useless now. Moving on, we have to add ‘wikilinks’ to the layouts content tag.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;wikilinks&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Then we jump into ruby, make a function in our module (?); In case it isn’t painfully obvious, I have no idea what I’m doing. But hey if it works, it works! Then in that function we look for anything that matches the expression below. It basically gets everything enclosed in double square brackets.&lt;/p&gt; &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/\[\[(.*?)\]\]/ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;We grab the current collection based on the url. This is because I keep each of the collections in their own Obsidian Vault so there really isn’t much of a reason to look through everything else.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;collection_label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;registers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;url&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;registers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;collection_label&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Then loop through the affirmation collection and search for the file!&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;each&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;found&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;break&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Once we find the file we can use that information to return a link.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&amp;lt;a href=&#39;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&#39;&amp;gt;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;found&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;lt;/a&amp;gt;&quot;&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;The entire script looks like this.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Jekyll&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;RegexFilter&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;wikilinks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# Gets everything inside an open and closed double square brackets&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;gsub&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sr&quot;&gt;/\[\[(.*?)\]\]/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;found&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Regexp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;last_match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;found&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;gsub&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;-&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# This slugifies&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# grabs the current collection&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection_label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;registers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;url&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;registers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;collection_label&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# loops through collection to find file&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;docs&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;each&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;found&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;break&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&amp;lt;a href=&#39;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&#39;&amp;gt;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;found&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;lt;/a&amp;gt;&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Liquid&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Template&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;register_filter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Jekyll&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;RegexFilter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;There’s definitely room for improvement. Like how I could take in account for alt text and white spaces. Either way, I am too lazy to improve it right not. As per usual, I am making this future me’s problem&lt;/p&gt; &lt;hr /&gt; &lt;h2 id=&quot;fetching-document-data&quot;&gt;Fetching Document Data&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;2026/02/12 »&lt;/strong&gt; Sometimes I need to be able to fetch the properties of another document. For example if I’d list all the characters relationships, I would like to be able to automatically add the url and title. Originally I did this purely with liquid, which in retrospect wasn’t that fun. I wanted it be as simple as typing down:&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;psyche&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;fetchDoc&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;So yeah. Making another custom filter!! The script just looks like this.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fetchDoc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getCollLabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getCollItem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;This is what &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;getCollLabel()&lt;/code&gt; does. It basically gets the first folder in the url.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getCollLabel&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;registers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;registers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;url&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Then using that label we can scan through the collection’s docs and look for a match.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getCollItem&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;registers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# it&#39;s done like this just in case input is an empty sting!&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;each&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;basename&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;.&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doc&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;That’s basically it. If you haven’t figured out already. Everything above is just an improved version of the wikilinks implementation above. So we could just replace the old script with this new one.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;wikilinks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;gsub&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sr&quot;&gt;/\[\[(.*?)\]\]/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;goal&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Regexp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;last_match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getCollLabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getCollItem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;goal&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;goal&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&amp;lt;a href=&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;goal&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;lt;/a&amp;gt;&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&amp;lt;a href=&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;url&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; title=&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;title&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;title&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;lt;/a&amp;gt;&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Feeling more confident in my ruby coding mwhaha &amp;gt;:D&lt;/p&gt; &lt;hr /&gt; &lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt; &lt;p&gt;Welp, that’s about wraps everything up! Quite happy with the way it is at the moment. It’s now just a matter of actually writing all the information down haha. If you have any suggestions to improve this workflow or feel like rambling about your own, pretty &lt;em&gt;pretty&lt;/em&gt; please comment it below because I’d love learn!! Till then, listen to the snail in your ear and get your self a little treat ♥&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/sign-off.png&quot; alt=&quot;Stupied was Here&quot; class=&quot;sign-off&quot; /&gt;&lt;/p&gt; </description> </item> <item> <title>Automating My Tier Lists</title> <link>https://stupied.net/blog/2025-Tier-Lists</link> <pubDate>Mon, 10 Nov 2025 00:00:00 +0800</pubDate> <guid>2025-11-10</guid> <description> &lt;img src=&quot;https://stupied.net/blog/img/25/tier-list.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;It all began in when youtube started recommending me the channel &lt;a href=&quot;https://www.youtube.com/@WestofNeverland/&quot;&gt;West of Neverland&lt;/a&gt;. The videos led me to remember the existence of Ducktales (2017). After re-watching the show I began developing a fascination of Donald Duck. On thing led to another which eventually snowballed into me wanting to watch every single Animated Disney Film and Short. It felt wrong immediately consuming one media after another so I thought it be neat to write my feelings of each piece - maybe even research and learn some obscure Disney history.&lt;/p&gt; &lt;p&gt;A single page with nothing but paragraphs of text didn’t feel all that fulfilling to me. There needed to be a visual representation of the films I had watched and how I felt about it. Then the solution came to me in a form of a &lt;a href=&quot;https://en.wikipedia.org/wiki/Tier_list&quot;&gt;Tier List&lt;/a&gt;. For the uninitiated, a tier list is basically a categorical rating system. So S Tier would be the bestest of the best and F Tier will the opposite of that. Prior to this, I’ve always thought tier lists were dumb and too ambiguous (they are) but that simplicity is what makes it a really good shorthand to show hierarchy. So welcome back to another blog post where I explain random stuff no one asked about. Today we will be going about how I went about making my tier list.&lt;/p&gt; &lt;h2 id=&quot;heads-up&quot;&gt;Heads Up!&lt;/h2&gt; &lt;p&gt;Once again, this blog post is by no means a tutorial. The code is oversimplified and a lot of information is omitted for the sake of brevity. I apologize in advance because this blog is kinda all over the place. Alrighty, let’s just begin!&lt;/p&gt; &lt;h2 id=&quot;using-jekyll-collections&quot;&gt;Using Jekyll Collections&lt;/h2&gt; &lt;p&gt;The static site generator I use, &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt;, allows you to group files into &lt;a href=&quot;https://jekyllrb.com/docs/collections/&quot;&gt;Collections&lt;/a&gt;. This organizes the files and let’s you access them for loops. All we gotta do is make a folder called like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_reviews&lt;/code&gt; then list it to my &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config.yml&lt;/code&gt; file like so:&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;reviews&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;In the aforementioned folder we can add markdown files which then lists them as an item in that collection. At the beginning of each file we can set the &lt;a href=&quot;https://jekyllrb.com/docs/front-matter/&quot;&gt;Front Matter&lt;/a&gt;. They’re basically the files properties we can use to sort with.&lt;/p&gt; &lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Blame It on the Samba&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;reviewed&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;2030-01-01&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;1948&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;tier&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;S&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Most of it should be self explanatory but here’s what each property.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;title&lt;/code&gt; - Set Title&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reviewed&lt;/code&gt; - The Date I wrote the review&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;release&lt;/code&gt; - Year film was released&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tier&lt;/code&gt; - The ranking&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If you’re wondering why the review date is written before the release date, it’s only because I have this weird thing about lists widths and how they’re arranged. Either way, it doesn’t really matter in what order you declare these variables. Also they are all completely optional. We can access all the files in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_reviews&lt;/code&gt; folder by typing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;site.reviews&lt;/code&gt;. It returns an array that we can get the front matter from. Now let’s get to actually using those properties!&lt;/p&gt; &lt;h2 id=&quot;getting-the-title-n-image-links&quot;&gt;Getting the Title n Image Links&lt;/h2&gt; &lt;p&gt;Just like in my &lt;a href=&quot;/blog/2025-Art-Archive&quot;&gt;Art Archive&lt;/a&gt; I can’t be bothered to manually typing every title. So when the titled isn’t specified we just default to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;filename&lt;/code&gt;. Additionally I’d like to be able to put the movie’s release date by the side. This is particularly helpful considering Disney’s track record of making remakes. Everything is stored in a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;capture&lt;/code&gt; variable that basically saves everything inside it as a string.&lt;/p&gt; &lt;p&gt;The code below would output something like: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Blame It on the Samba (1948)&lt;/code&gt;. We can use it by simply typing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ title }}&lt;/code&gt;&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;capture&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt; &amp;lt;!-- Adds the year it was released in --&amp;gt; (&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;) &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endif&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endcapture&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Because I don’t want to manually assign a thumbnail for each item, the image is just the slugify-ied title with a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.jpg&lt;/code&gt; extension.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;./img/&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;slug&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;.jpg&quot; alt=&quot;thumbnail for &lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot;&amp;gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;h2 id=&quot;filtering-n-sorting-files&quot;&gt;Filtering n Sorting Files&lt;/h2&gt; &lt;p&gt;Before we can make out tier list, we need to get a filtered array of items in a specific category and tier. We achieve this by grouping stuff inside folders. So if we want to make a tier list of only Disney media, We’ll make a new folder in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_reviews&lt;/code&gt; called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;disney&lt;/code&gt; where we’ll put all my markdown files in. Then we use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;where_exp&lt;/code&gt; to filter out items that aren’t inside that folder. Then we sort it by the movies release date, just because why not!&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;REVIEWS&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;reviews&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;where_exp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;item&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;item.path contains include.selected&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;release&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;What’s neat about this is we can sorta nest things. Let say we want to separate feature length films from shorts. We also want to keep track of anything Donald Duck, so we add a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;donald&lt;/code&gt; folder to each separate folders like so:&lt;/p&gt; &lt;div class=&quot;language-console highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;go&quot;&gt;disney ├───films │ └───donald └───shorts └───donald &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Not sure how to explain this in paragraph form so I hope the thing below does it for me. Basically, for a narrower result I just have to specify more folders.&lt;/p&gt; &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;contains &#39;disney/&#39; → returns everything in disney folder contains &#39;donald/&#39; → returns anything inside a donald folder contains &#39;films/donald/&#39; → returns files from donald folder only when inside films folder &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;If we want to get only items of a specific tier, we just use newly filtered array and filter them with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;where&lt;/code&gt;.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;filtered&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;REVIEWS&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;S&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;h2 id=&quot;actually-making-the-tier-list&quot;&gt;Actually Making the Tier List&lt;/h2&gt; &lt;p&gt;With all the files filtered and sorted, we can now start actually making the thing! We basically have to loop through every item in the filtered array like so:&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;tier-items&quot;&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;filtered&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;REVIEWS&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;S&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;filtered&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;img src=&quot;./img/&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;slug&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;.jpg&quot; alt=&quot;thumbnail for &lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot;&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;/div&amp;gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;We just have to do that for the 6 other tiers. Because I am lazy, instead of manually copy and pasting the code above, we will be utilizing a script that will automatically do it for me. First we have a string of all the tiers needed and split it up into an array. Then we loop through the tiers and once again filter our list for that specific tier.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;TIERS&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;S,A,B,C,D,E,F&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;article class=&quot;tier_list&quot;&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tier&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;TIERS&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;section class=&quot;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tier&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt; tier&quot;&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;filtered&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;REVIEWS&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tier&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;div class=&quot;tier-label&quot;&amp;gt;&amp;lt;span&amp;gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tier&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div class=&quot;tier-items&quot;&amp;gt; &amp;lt;!-- This is referencing the code above --&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;tier-item.html&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;/div&amp;gt; &amp;lt;/section&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;/article&amp;gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Then just like that we now have a the tier list! You can do other stuff as well such as wrapping the images in buttons that opens up a modal or even allow for custom tiers by changing the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;TIER&lt;/code&gt; variable’s values. Those are pretty simple to implement. I trust you all to be smart enough to do a better job than me haha,,,&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/25/tier-list.jpg&quot; alt=&quot;Preview of the Result&quot; /&gt;&lt;/p&gt; &lt;h2 id=&quot;list-most-recently-reviewed&quot;&gt;List Most Recently Reviewed&lt;/h2&gt; &lt;p&gt;Not everything ranked will have a review written. So I thought it be nice to have a small feed in the bottom that shows most recently uploaded reviews. This can be achieved by chucking the unfinished reviews into a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;todo&lt;/code&gt; folder then filtering them out.&lt;/p&gt; &lt;p&gt;The problem is that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;where_exp&lt;/code&gt; can’t do &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;item contains &#39;/todo&#39; == false&lt;/code&gt; for some reason. So instead I’ll have to loop through the array to filter out anything that’s in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;todo&lt;/code&gt; folder.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;REVIEWS_RAW&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;reviews&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;where_exp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;item&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;item.path contains include.selected&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;reviewed&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;reverse&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;!-- This initializes the array --&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;reviews_recent&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;REVIEWS&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;unless&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;ow&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;todo/&#39;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;reviews_recent&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;reviews_recent&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endunless&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;h2 id=&quot;random-things&quot;&gt;Random Things&lt;/h2&gt; &lt;p&gt;If you’ve been keeping track of my &lt;a href=&quot;/about/listography&quot;&gt;Listography&lt;/a&gt; page, you may notice there is a Disney watchlist. The list data is stored in a json file. It’s a multidimensional array, with the first string marking whether or not I finished it and the other with the name of the film. It kinda looks like this:&lt;/p&gt; &lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;X&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Saludos Amigos&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;X&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;The Three Caballeros&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;A Goofy Movie&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;For it to display as a checklist, I just loop through that array and format it like so.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;movie&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;lists&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;watchlist&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt; - [&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;movie&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;] &lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;movie&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/25/watchlist-button.png&quot; alt=&quot;Watchlist Button&quot; style=&quot;max-width:280px;&quot; class=&quot;float-left&quot; /&gt;&lt;/p&gt; &lt;p&gt;You may wonder, why bother going through all this trouble? Well it’s because I can use this data to see which films I haven’t watch and have a button to randomize what I should watch next. Just made a js array that lists all unwatched films then coded a button that displays a random item from that array!&lt;/p&gt; &lt;hr class=&quot;clear&quot; /&gt; &lt;h2 id=&quot;editing-with-obsidian&quot;&gt;Editing With Obsidian&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;2025/11/22 »&lt;/strong&gt; Henlo, small update! Recently been messing around with &lt;a href=&quot;https://obsidian.md/&quot;&gt;Obsidian’s&lt;/a&gt; and it’s feature to sort files with &lt;a href=&quot;https://help.obsidian.md/bases&quot;&gt;Bases&lt;/a&gt;. With it we can make a catalog of the of all my files. To do so we first head over to the collections folder, which in this case is the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_reviews&lt;/code&gt;, then turn it to an obsidian vault. Also add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.obsidian&lt;/code&gt; to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gitignore&lt;/code&gt; while you’re at it. Here we can start a new base with the card view.&lt;/p&gt; &lt;p&gt;To set a thumbnail we make a new property with the formula below. It just grabs the filename and append the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.jpg&lt;/code&gt; extension.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nf&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;img/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.jpg&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Then just like that we’re done! This is just a really neat feature and it’s nice to have a visual preview of the stuff I’ve review, juxtapose manually building the website every time I need to see new changes. Technology is so awesome you guys, like seriously.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/25/tier-list-obsidian.jpg&quot; alt=&quot;Obsidian Base of Tier List Items&quot; /&gt;&lt;/p&gt; &lt;h2 id=&quot;the-end&quot;&gt;The End&lt;/h2&gt; &lt;p&gt;Okay that’s all!! Sorry if this post structure weirdly. I highly doubt anyone will find any of this useful but it was fun to write. It only been like 3 months since I started using Jekyll and it feels like there’s a lot more I can do. Join us next time when I figure out how to use actually use Ruby and make custom plugins!!&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/sign-off.png&quot; alt=&quot;Stupied was Here&quot; class=&quot;sign-off&quot; /&gt;&lt;/p&gt; </description> </item> <item> <title>Making an Art Archive</title> <link>https://stupied.net/blog/2025-Art-Archive</link> <pubDate>Sat, 11 Oct 2025 00:00:00 +0800</pubDate> <guid>2025-10-11</guid> <description> &lt;img src=&quot;https://stupied.net/blog/img/25/Art-Archive.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;My website is practically like it’s own living breathing thing at this point. It’s constantly updating to whatever new knowledge I obtain. I thought it be neat to also break down how stuff in my website works. Will not go through everything though because most of it is your typical CSS shenanigans. For this blog post, we’ll be focusing on the &lt;a href=&quot;/art/archive&quot;&gt;Art Archive&lt;/a&gt;. It serve as a catalogue for all my art with a simple tag filtering system to boot.&lt;/p&gt; &lt;h2 id=&quot;heads-up&quot;&gt;Heads Up!&lt;/h2&gt; &lt;p&gt;This blog post is by no means a tutorial. The code is oversimplified and a lot of information is omitted for the sake of brevity. Instead of using this as instructions on what &lt;em&gt;to&lt;/em&gt; do, you should use this as reference of what you &lt;em&gt;can&lt;/em&gt; do. With that disclaimer out of the way, let’s begin!&lt;/p&gt; &lt;h2 id=&quot;listing-the-files&quot;&gt;Listing the Files&lt;/h2&gt; &lt;p&gt;Above all else we need a list of all files in the art folder. To save us the time from manually typing the filenames, we can just use the command prompt to do it for us. Open up cmd, and head to the path of the art folder. I am technologically illiterate so use I Windows.&lt;/p&gt; &lt;div class=&quot;language-console highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;go&quot;&gt;cd path\to\folder &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Once there, we can use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dir&lt;/code&gt; command to list out the files. We need to specify the following switches:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/b&lt;/code&gt; - only shows the filenames&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/s&lt;/code&gt; - shows files subdirectories&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Type this bad boy into the command line!&lt;/p&gt; &lt;div class=&quot;language-console highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;go&quot;&gt;dir /b /s &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Then the output should be a list that looks something like this:&lt;/p&gt; &lt;div class=&quot;language-console highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;go&quot;&gt;D:\path\to\folder\filename.jpg D:\path\to\folder\another-folder\filename.jpg &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Copy and paste the output to a separate text editor and just find and replace the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;D:\path\to\folder\&lt;/code&gt; to an empty string. From there, just convert the output to your chosen text-based data format. I’ll be using json, which I will be calling &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data&lt;/code&gt; from now on. All of the data is stored as an object within an array. Each item should have the bare minimum of a filename.&lt;/p&gt; &lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;img&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;filename.jpg&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;img&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;another-folder/2025-filename.jpg&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;I also wanted there to be other information as well. Such as a special title, descriptions, other drawings related to it, then tags for a filtering system. So an actual example would look a bit like this.&lt;/p&gt; &lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;img&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;2025-Psych-Doodles.jpg&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Doodles of My Silly Lil Guys!!&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;desc&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;I made these drawings way back and only decided to color them recently.&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;extra&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;doodle/2024-Stfu.jpg&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;2025-Psych-Cast.jpg&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;tags&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ocs psyche evan jay mary daphne charmaine jian lily august psych&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Here’s a breakdown of what each property does&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;img&lt;/code&gt; - the filename&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;title&lt;/code&gt; - specific title&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;desc&lt;/code&gt; - caption for the art&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;extra&lt;/code&gt; - additional images&lt;/li&gt; &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tags&lt;/code&gt; - keywords to categorize art&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;actually-using-the-data&quot;&gt;Actually Using the Data&lt;/h2&gt; &lt;p&gt;If you take a look of the example I gave a while back you may notice that all my filenames start with a date.&lt;/p&gt; &lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;img&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;2025-Psych-Doodles.jpg&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;This is because I want to know what year a drawing was made without having to create a separate property for it. This means that if I want to get the date I have to splice the filename and get the first four characters. I’ll be using javascript to demonstrate all of this.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getDate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;selected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Now the code above works fine, under the assumption that the filename always begins with the date. But what happens when the file is inside a folder? So if my &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;img&lt;/code&gt; is set to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;doodle/2024-Stfu.jpg&quot;&lt;/code&gt; the code above will return &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;dool&quot;&lt;/code&gt; as the date. To circumvent this we must get the index of the first instance of the number 2 then slice the string relative to that.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getDate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;selected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;index&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;index&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Because I am lazy, I don’t want to individually type a title for each art item. Especially since most of it is just going to be the word in the filename anyways. So I wrote a script that will derive a title from the filename when a title isn’t specified.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getTitle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// checks if file is inside a folder&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// removes the date and file extension&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// replaces all dashed with a whitespace&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;replaceAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;desc&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;extra&lt;/code&gt; aren’t necessary so anytime any of those properties are called, there’s a script that checks whether or not they’re defined and only return something if true.&lt;/p&gt; &lt;p&gt;The tags are written as strings because I find writing arrays bothersome. If I want to make that string usable, I will have to split it up into an array using the whitespaces as a separator.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Additionally I want to be able to automatically add the date and the folder the drawing is in as a tag. So I have to have to obtain that data then merge them all to one big ol array.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// assume this is in a loop&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;date&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)){&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;split&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;selected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;h2 id=&quot;putting-everything-together&quot;&gt;Putting Everything Together&lt;/h2&gt; &lt;p&gt;Last July, I made a switch to using Static Site Generators (SSGs) - specifically &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt;. Instead of using javascript to initialize the archive content, I just used Jekyll to process everything beforehand. It loops through the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data&lt;/code&gt; and adds in the necessary info.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;!-- PS this isn&#39;t the actual code --&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;art&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;div class=&quot;art-archive-item hidden&quot; data-tags=&quot;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tags_list&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot;&amp;gt; &amp;lt;img src=&quot;#&quot; data-src=&quot;./img/&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot; alt=&quot;&quot;&amp;gt; &amp;lt;div&amp;gt; &amp;lt;a href=&quot;./~?&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot; class=&quot;art-archive-comment&quot;&amp;gt;&amp;lt;/a&amp;gt; &amp;lt;div class=&quot;art-archive-title&quot;&amp;gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&amp;lt;/div&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;div class=&quot;art-archive-desc&quot;&amp;gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&amp;lt;/div&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endif&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;div class=&quot;art-archive-tags&quot;&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tag_split&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tags_list&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tag&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tag_split&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;button onclick=&quot;getChecked(&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tag&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;)&quot;&amp;gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tag&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&amp;lt;/button&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;If you have a keen eye, you may notice that the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;src&lt;/code&gt; of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;img&lt;/code&gt; tag is set to a hashtag (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#&lt;/code&gt;) this is because we don’t want all images to load the moment the archive is opened. Forcing a user to load hundreds of images in one go is probably not a very wise idea. We instead store the image link inside of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data-src&lt;/code&gt;. This way we replace the images &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;src&lt;/code&gt; with javascript &lt;em&gt;only&lt;/em&gt; when an image needs to be loaded in. We can set up a button that user will click to load more items.&lt;/p&gt; &lt;p&gt;For this to work we need a global counter and the maximum amount of items in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data&lt;/code&gt;. Whenever the page loads in or when a user clicks the button, it will update the global counter and loop through a number of items.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;.art-archive &amp;gt; *&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;max&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;showEm&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;increment&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;next&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;increment&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;prev&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Checks if next value is less than the max&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Otherwise set counter to the max&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;next&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;max&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;next&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// loops through every item&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Removes the hidden tag and sets image src&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;prev&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;thumb&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;classList&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;thumb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;src&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;thumb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;h2 id=&quot;filtering-system&quot;&gt;Filtering System&lt;/h2&gt; &lt;p&gt;For the tags, I have a separate yml file that lists out all the available tags.&lt;/p&gt; &lt;div class=&quot;language-yml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;2025&#39;&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;2024&#39;&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;2023&#39;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;oc&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;psyche&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;evan&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;jay&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;fanart&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;literalhat&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;southpark&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;insaniquarium&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Using that data I write the checkboxes with Jekyll.&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;art-archive-options&quot;&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;art-tags&lt;/span&gt;.[include.selected]&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;label for=&quot;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot;&amp;gt; &amp;lt;input type=&quot;checkbox&quot; name=&quot;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;selected&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot; id=&quot;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot; value=&quot;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;downcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&quot;&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;first&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;upcase&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;span&amp;gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;prepend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;-&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt;&amp;lt;/span&amp;gt; &amp;lt;/label&amp;gt; &lt;span class=&quot;cp&quot;&gt;{%-&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;-%}&lt;/span&gt; &amp;lt;/div&amp;gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;We then have a button that will get all the inputs a user checked off. We loop through the selected checkboxes and use the values to add a query to the url.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getChecked&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(){&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;checked&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;input:checked&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;checked&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;checked&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;checked&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;location&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;href&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;If the archive is open with a query on the url, then we break that string into an array.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;location&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;search&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;When we loop through all the elements, we get their &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data-tags&lt;/code&gt; then turn it into an array as well&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Now we have to check whether these two arrays have any similar tags. We could loop through each array item to see if they match, but that process will exponentially get longer with each tag we need to compare. Instead we are going to utilize javascript’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Set&lt;/code&gt; object. This is because the values in sets can only occur once. We can use this to identify whether there are any matching tags.&lt;/p&gt; &lt;p&gt;First we merge the two arrays using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;concat()&lt;/code&gt;. Then we use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Set&lt;/code&gt; constructor to remove all duplicate tags. Using the size of newly formed set we can compare it to the length of the previous array. If the array had any repeated values, then the set size should be less than the array length.&lt;/p&gt; &lt;p&gt;Additionally we can tell whether or not it fulfills all the tags if the set’s size is equals to the minimum value. To find out the minimum value we must subtract the arrays length to the number of tags in the query.&lt;/p&gt; &lt;p&gt;So in summary, the logic is as follows:&lt;/p&gt; &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;set.size == array.length → no tags matching set.size &amp;lt; array.length → some tags matching set.size == array.length - queries.length → all tags matching &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;My actual implementation for this looks sorta like this:&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;.art-archive &amp;gt; *&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;max&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;location&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;search&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;showEm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// refer to the script in previous section&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;filterEm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;filterEm&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// local counter&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;mixed&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;goal&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;mixed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;mixed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;goal&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;classList&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;all-tags&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;mixed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;classList&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;not-all-tags&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;max&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;items&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;.art-archive &amp;gt; *&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// bc handling dom elements r weird&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;showEm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Basically, this loops through all the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;items&lt;/code&gt; then compare the tags in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data-tags&lt;/code&gt; to the tags in the query. It checks whether or not it has all the tags then it gives it a class according to that (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.all-tags&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;not-all-tags&lt;/code&gt;). This is done so that I can implement a “strict mode” that only shows results that fulfills all selected tags.&lt;/p&gt; &lt;p&gt;If none of the tags are fulfilled, the item is removed. After everything is done it changes the global max number, initializes the all the items and fires the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;showEm()&lt;/code&gt; function.&lt;/p&gt; &lt;p&gt;Just like that, the art archive now has a filtering system!! :D&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/25/Art-Archive.jpg&quot; alt=&quot;Screenshot of the Result&quot; /&gt;&lt;/p&gt; &lt;h3 id=&quot;the-cons-of-this-method&quot;&gt;The Cons of this Method&lt;/h3&gt; &lt;p&gt;The problem with my filtering system is it’s destructive and inefficient. For example, if a user decides to remove a tag from their initial selection, the page will loop through everything again instead of just looping through the already filtered results.&lt;/p&gt; &lt;p&gt;Despite that, I’ve decided I do not care enough right now and this should be future me’s problem lol. I’m just glad to even have filtering system! If future me is bothered by this inefficiency, then she can put in the work herself!!&lt;/p&gt; &lt;h2 id=&quot;view-as-individual-post&quot;&gt;View as Individual Post&lt;/h2&gt; &lt;p&gt;One last thing before I end this blog post. I wanted there to be a way for people to comment on individual art pieces. With the help of &lt;a href=&quot;https://en.wikipedia.org/wiki/Query_string&quot;&gt;Query Strings&lt;/a&gt; and &lt;a href=&quot;https://virtualobserver.moe/ayano/comment-widget&quot;&gt;Ayano’s Comment Widget&lt;/a&gt;, we can make it seem like we’re opening up a post.&lt;/p&gt; &lt;p&gt;I have an &lt;a href=&quot;/art/~&quot;&gt;html file&lt;/a&gt; that first checks the url if there is any queries available. The query is usually the file name (example: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/~?2025-Psych-Doodles.jpg&lt;/code&gt;) and if available it will look for the index of that file by looping through the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data&lt;/code&gt;.&lt;/p&gt; &lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getIndex&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;current&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;current&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;You may wonder, Why not just use the index on the query? It’s because I put the most recent drawing on the top the my json file, which means the indexes are constantly changing. Besides, It be a shame if links to a specific art piece get messed up because I moved around the order of the items in the array.&lt;/p&gt; &lt;p&gt;Using the index found, we can basically access all the other properties with the scripts I mentioned above. We can also put a navigation to the images after and before the current index.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/25/Art-Post.jpg&quot; alt=&quot;Screenshot of the Result&quot; /&gt;&lt;/p&gt; &lt;hr /&gt; &lt;h2 id=&quot;using-ruby&quot;&gt;Using ruby!&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;2026/02/25 »&lt;/strong&gt; Future me to say that, a handful of things changed lol. Most of the logic is still the same! Just writing it in ruby instead of that god forsaken liquid tags… What the hell was wrong with me.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getTitle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;title&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;title&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;img&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;/&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;.&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;gsub&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;-&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39; &#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;So if I want to use this I just have to write it like this:&lt;/p&gt; &lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;{{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;art_item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;getTitle&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;}}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Also had to rework the tagging system because I wanted it to work well with the &lt;a href=&quot;/chez/album/&quot;&gt;albums&lt;/a&gt;. The date is no long derived from the file name and have it’s own property. This because not every album needs a date. Also, folders in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;img&lt;/code&gt; property are taken and added as tags buutttt had to add an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;offset&lt;/code&gt; property to exclude stuff. So &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;26/drawin/02.jpg&lt;/code&gt; will only return &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;drawin&lt;/code&gt; as a tag.&lt;/p&gt; &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getTags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;date&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;offset&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;date&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;-&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;date&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;date&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;img&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;pop&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;shift&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;offset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;to_i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;offset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;tags&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;tags&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;multi&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;extra&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;with-commentary&quot;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;desc&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tags&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Really crazy to think this blog post is already four months old… Time passes too quickly.&lt;/p&gt; &lt;hr /&gt; &lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt; &lt;p&gt;Welp, that’s about all of it! As I’ve stated at the start, what I put here isn’t an exact representation of my code. If you want to see what it looks like, feel free to snoop through my actual code. Though, I strongly advise not doing so, since it’s quite a mess. I’d imagine there are more efficient ways off going about all of this, but as it stands this is the method I’ve chosen to go with and I’m pretty contented with it.&lt;/p&gt; &lt;p&gt;&lt;em style=&quot;color:lightgray;&quot;&gt;[Insert a note from future me cursing past me for this mess of a system]&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;/blog/img/sign-off.png&quot; alt=&quot;Stupied was Here&quot; class=&quot;sign-off&quot; /&gt;&lt;/p&gt; </description> </item> <item> <title>Add Images to Ayano&#39;s Comment Widget</title> <link>https://stupied.net/blog/2025-Comments</link> <pubDate>Sun, 20 Jul 2025 00:00:00 +0800</pubDate> <guid>2025-07-20</guid> <description> &lt;img src=&quot;https://stupied.net/blog/img/25/ayano-mod.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;I&#39;ve recently made a switch to &lt;a href=&quot;https://virtualobserver.moe/ayano/comment-widget&quot; target=&quot;_blank&quot;&gt;Ayano&#39;s Comment Widget&lt;/a&gt; and, as much as I adore it, I missed having the option to attach images. Luckily, the code is incredibly customizable so with a bit of tweaking, it is possible!&lt;/p&gt; &lt;p&gt;This mod allows users to submit a link of an image that will be attached to their comments. If this is something you&#39;d like to have, follow the steps below.&lt;/p&gt; &lt;h2&gt;[1] Add to Google Form&lt;/h2&gt; &lt;p&gt;Assuming you&#39;ve already set everything prior to this, Go to your google form and create a new short text question with the title &#39;Image&#39;. Remember that it is case sensitive!&lt;/p&gt; &lt;p&gt;Open the three dotted icon to the right side and click &#39;Get pre-filled link&#39;. Fill up every field with the question&#39;s title, including the new one you just made. Once you have finished and click &#39;Get link&#39;, you should get a newly generated link where you will be able to find something that looks like this:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;123456789&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Image&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;In your js file, look for the section of variables of the form ids. You can add the script after &lt;code&gt;const s_replyId = &#39;ID HERE&#39;;&lt;/code&gt; and encode the numbers from your form link.&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;s_imageId&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;1234567890&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h2&gt;[2] Add Element Wrappers&lt;/h2&gt; &lt;p&gt;To create the input the user will add their image links to, look for the &lt;code&gt;v_formHtml&lt;/code&gt; variable. Inside it, there should be a div with &lt;code&gt;id=&quot;c_textWrapper&quot;&lt;/code&gt; and add the following script below that element:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;c_imageWrapper&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;c-inputWrapper&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;c-label c-imageLabel&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;for=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;entry.${s_imageId}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Image Link (Optional)&lt;span class=&quot;nt&quot;&gt;&amp;lt;/label&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;c-input c-imageInput&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;entry.${s_imageId}&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;entry.${s_imageId}&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;url&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;pattern=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;https://.*&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;placeholder=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;onchange=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;previewImg()&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;We need to create a preview so that the users are able to see what image they have linked and whether or not it will load in. Still inside the &lt;code&gt;v_formHtml&lt;/code&gt; variable, look for the input with &lt;code&gt;id=&quot;c_submitButton&quot;&lt;/code&gt; and then add the following script after it. &lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;c_previewWrapper&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;c_previewOutput&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;c-label c-previewLabel&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Image Preview&lt;span class=&quot;nt&quot;&gt;&amp;lt;/label&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;If the image does not load, please make sure the website you are linking to allows &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;https://simple.wikipedia.org/wiki/Hotlinking&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;target=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;_blank&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;hotlinking&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;!&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h2&gt;[3] Add the Functions&lt;/h2&gt; &lt;p&gt;Now that we&#39;ve set up all the variables, it&#39;s time to make them actually functional.&lt;/p&gt; &lt;p&gt;Look for &lt;code&gt;if (s_commentsOpen)&lt;/code&gt; inside of &lt;code&gt;function getComments()&lt;/code&gt; - there should be a comment above it that reads &#39;Clear input fields too&#39;. You should add the following script below inside of that if statement:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`entry.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;s_imageId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;In order to check and append the comment&#39;s image, look for &lt;code&gt;function createComment(data)&lt;/code&gt;. Inside should be &lt;code&gt;comment.appendChild(text);&lt;/code&gt;. Below that you should put the following script:&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;c1&quot;&gt;// Image link&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Image&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;src&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Image&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;className&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;c-img&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&#39;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;comment&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;p&gt;It won&#39;t matter too much where you choose to put this last script. It is a function that is triggered every time the user changes the image field. I personally put it at the bottom before &lt;code&gt;getComments();&lt;/code&gt;.&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;previewImg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;previewWrapper&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;c_previewWrapper&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;previewLink&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`entry.&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;s_imageId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;previewLink&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;previewWrapper&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;previewLink&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;previewWrapper&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;c_previewOutput&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;src&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;previewLink&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h2&gt;[4] Add CSS Styling&lt;/h2&gt; &lt;p&gt;This part isn&#39;t necessary but it makes the preview look a bit nicer.&lt;/p&gt; &lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span class=&quot;nf&quot;&gt;#c_previewWrapper&lt;/span&gt;&lt;span class=&quot;nd&quot;&gt;:has&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&#39;#&#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;none&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;#c_previewWrapper&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0.5rem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;gray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;max-width&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;350px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0.5rem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;#c_previewOutput&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;max-width&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;#c_previewWrapper&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0.8rem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;opacity&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.c-img&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt; &lt;h2&gt;And You&#39;re Done!&lt;/h2&gt; &lt;p&gt;I highly recommend using this mod alongside &lt;a href=&quot;https://frills.dev/blog/231023-add-moderation-to-comment-widget/&quot; target=&quot;_blank&quot;&gt;Frills&#39; Guide to Adding Moderation&lt;/a&gt; so you can check and ensure that the comments being submitted don&#39;t contain disturbing images.&lt;/p&gt; &lt;p&gt;If you get around to using to using this, let me know down below. I&#39;d love to check out all of your websites!&lt;/p&gt; &lt;img src=&quot;/blog/img/sign-off.png&quot; alt=&quot;Stupied was Here&quot; class=&quot;sign-off&quot;&gt; </description> </item> <item> <title>Stupied Coloring Guide</title> <link>https://stupied.net/blog/2025-Coloring</link> <pubDate>Wed, 02 Jul 2025 00:00:00 +0800</pubDate> <guid>2025-07-02</guid> <description> &lt;img src=&quot;https://stupied.net/blog/img/demo-1.png&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;Occasionally I get messages from people asking me how I go about my coloring. Well you&#39;re in luck because this blog post is dedicated to all of you! To be quite frank, I have no idea what I&#39;m doing. Art is and will always be a hobby for me. It is something I do to pass the time and I don&#39;t take it all that seriously. Regardless, I will try my best to articulate my thought process - if even existent.&lt;/p&gt; &lt;div id=&quot;table&quot; style=&quot;margin-bottom: 1rem;&quot;/&gt; &lt;h2&gt;Table of Contents&lt;/h2&gt; &lt;div class=&quot;db-list&quot;&gt; &lt;div&gt; &lt;h4&gt;In Theory&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#relativity&quot;&gt;Color Relativity&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#shifts&quot;&gt;Hue Shifts&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#saturation&quot;&gt;Saturation&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#contrast&quot;&gt;Contrast&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;div&gt; &lt;h4&gt;In Practice&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#examples&quot;&gt;Examples in my Art&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#techniques&quot;&gt;Digital Art Techniques&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#process&quot;&gt;My Process&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;I strongly advise against using any sort of simplified content viewer for this post since I will be heavily utilizing css and js for the demonstrations.&lt;/p&gt; &lt;h2&gt;In Theory&lt;/h2&gt; &lt;p&gt;Although it is mostly subconscious, there are a few ideas that float around my head as I try to approach a piece. This is a general outline of those ideas.&lt;/p&gt; &lt;figure class=&quot;float-right&quot; style=&quot;width:40%;min-width: 200px;&quot;/&gt; &lt;img src=&quot;/blog/img/shadow-illusion.png&quot; alt=&quot;&quot;&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/Checker_shadow_illusion&quot; target=&quot;_blank&quot;&gt;Checker Shadow Illusion by Edward H. Adelson 🢅&lt;/a&gt; &lt;/figure&gt; &lt;h3 id=&quot;relativity&quot;&gt;Color Relativity&lt;/h3&gt; &lt;p&gt;Abandon everything you know about colors because it is a LIE! What surrounds a color can effect how we perceive it. The same color can look like they have a different hue, saturation or brightness.&lt;/p&gt; &lt;p&gt;Believe it or not tile A and tile B is the same shade of gray! One is perceived lighter than the other due to the tiles surrounding them&lt;/p&gt; &lt;p&gt;Below is a linear demonstration of this phenomenon. The gray line appears darker against a white background and lighter in a black background.&lt;/p&gt; &lt;div id=&quot;grayscale&quot;&gt;&lt;/div&gt; &lt;p&gt;It becomes more complex when the hue is taken into consideration. Grays may look more warm against cold colors and vice versa.&lt;/p&gt; &lt;div id=&quot;relativity-demo&quot; class=&quot;db-list demo&quot;&gt; &lt;div id=&quot;relativity-output&quot;&gt; &lt;div id=&quot;color1&quot; class=&quot;colorswatch&quot; style=&quot;--color: #0344a6;&quot;/&gt; &lt;div class=&quot;color3 colorswatch&quot; style=&quot;--color: #8b8680;&quot;/&gt;&lt;/div&gt; &lt;/div&gt; &lt;div id=&quot;color2&quot; class=&quot;colorswatch&quot; style=&quot;--color: #FF4F0F;&quot;/&gt; &lt;div class=&quot;color3 colorswatch&quot; style=&quot;--color: #8b8680;&quot;/&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id=&quot;relativity-intput&quot;&gt; &lt;h4&gt;Pick Out Colors&lt;/h4&gt; &lt;input data-jscolor=&quot;{value:&#39;#0344a6&#39;}&quot; onInput=&quot;updateColor(this.jscolor,&#39;#color1&#39;)&quot;&gt;&lt;/input&gt; &lt;input data-jscolor=&quot;{value:&#39;#FF4F0F&#39;}&quot; onInput=&quot;updateColor(this.jscolor,&#39;#color2&#39;)&quot;&gt;&lt;/input&gt; &lt;input data-jscolor=&quot;{value:&#39;#8b8680&#39;}&quot; onInput=&quot;updateColor(this.jscolor,&#39;.color3&#39;)&quot;&gt;&lt;/input&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;The main thing to take away from this is that colors don&#39;t mean anything on its own. The things you surround it with will dictate how our eyes interpret them.&lt;/p&gt; &lt;h3 id=&quot;shifts&quot;&gt;Hue Shifting&lt;/h3&gt; &lt;p&gt;Hue shifting is a common technique, especially for pixel art. Instead of just choosing a darker version of the base color, you slightly change the hue. This makes the pallette a little more interesting.&lt;/p&gt; &lt;div id=&quot;shifts-demo&quot; class=&quot;demo&quot;&gt; &lt;div id=&quot;shifts-output&quot;&gt; &lt;h4&gt;Without Hue Shifting&lt;/h4&gt; &lt;div class=&quot;color4 colorswatch&quot; style=&quot;--color: #38a376;&quot;/&gt; &lt;div class=&quot;colorswatch&quot; style=&quot;--color: black; right: 0;&quot;/&gt;&lt;/div&gt; &lt;div class=&quot;colorswatch&quot; style=&quot;--color: white;&quot;/&gt;&lt;/div&gt; &lt;/div&gt; &lt;h4 style=&quot;margin-top: 0.5rem;&quot;/&gt;With Hue Shifting&lt;/h4&gt; &lt;div class=&quot;color4 colorswatch&quot; style=&quot;--color: #38a376;&quot;/&gt; &lt;div id=&quot;color-shadow&quot; class=&quot;colorswatch&quot; style=&quot;--color: #06134b; right: 0;&quot;/&gt;&lt;/div&gt; &lt;div id=&quot;color-highlight&quot; class=&quot;colorswatch&quot; style=&quot;--color: #faf44e;&quot;/&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id=&quot;shifts-input&quot;&gt; &lt;h4&gt;Pick Out Colors&lt;/h4&gt; &lt;input data-jscolor=&quot;{value:&#39;#faf44e;&#39;}&quot; onInput=&quot;updateColor(this.jscolor,&#39;#color-highlight&#39;)&quot;&gt;&lt;/input&gt; &lt;input data-jscolor=&quot;{value:&#39;#38a376&#39;}&quot; onInput=&quot;updateColor(this.jscolor,&#39;.color4&#39;)&quot;&gt;&lt;/input&gt; &lt;input data-jscolor=&quot;{value:&#39;#06134b&#39;}&quot; onInput=&quot;updateColor(this.jscolor,&#39;#color-shadow&#39;)&quot;&gt;&lt;/input&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;For clarification, the pallette without hue shift isn&#39;t automatically bad. It&#39;s just something you can keep in mind when you want your colors to have a bit more variation.&lt;/p&gt; &lt;h3 id=&quot;saturation&quot;&gt;Saturation&lt;/h3&gt; &lt;p&gt;Saturation refers to the vibrance or intensity of color. Although the hue shifting helps, using it to much makes your art look kind of rubbery. Your eyes typically can&#39;t perceive colors in the dark, so try making the shaded area a bit more desaturated.&lt;/p&gt; &lt;h3 id=&quot;contrast&quot;&gt;Contrast&lt;/h3&gt; &lt;p&gt;Contrast refers to the perceived brightness/darkness of a color and is often overlooked part of coloring. You can pretty much make any color look good with each other if you get the contrast right. Try checking your artwork in grayscale and see if your art is still discernible. Colors of different hues and saturation can still have the same kind of contrast.&lt;/p&gt; &lt;img src=&quot;/blog/img/theory-vs-practice.jpg&quot; alt=&quot;&quot; class=&quot;float-right&quot; style=&quot;width: 200px;&quot;/&gt; &lt;h2&gt;In Practice&lt;/h2&gt; &lt;p&gt;Of course there is always a disparity between theory in practice. A lot of stuff I talked above isn&#39;t something I&#39;m always been conscious of. I find actually taking the time to color is far more effective for learning.&lt;/p&gt; &lt;hr class=&quot;clear&quot;&gt; &lt;h3 id=&quot;examples&quot;&gt;Examples in my Art&lt;/h3&gt; &lt;div class=&quot;justified-gallery&quot;&gt; &lt;img src=&quot;/art/img/25/Fursonas.jpg&quot; alt=&quot;&quot; style=&quot;--width: 620; --height: 640;&quot;/&gt; &lt;img class=&quot;gray&quot; src=&quot;/art/img/25/Fursonas.jpg&quot; alt=&quot;&quot; style=&quot;--width: 620; --height: 640;&quot;/&gt; &lt;/div&gt; &lt;p&gt;Upon first inspection the yellow base might seem weird but, when you put it into grayscale, you can see that it is the same contrast as the white. The yellow gives the drawing an overall warm and energetic feel. Every other color in the drawing has to be adjusted to fit this bold base, which is why the dark blue is more of a desaturated purple and the light blue is actually a greyish green.&lt;/p&gt; &lt;img src=&quot;/art/img/23/Forest.jpg&quot; alt=&quot;&quot; style=&quot;--width: 922; --height: 692;&quot;/&gt; &lt;p&gt;I had this strange phase where I would use a lot of black to shade. I think it&#39;s pretty neat since it could be used emphasize the differences of something. In this case all the foreground elements is contrasts strongly with the bright blue background. &lt;/p&gt; &lt;div id=&quot;example&quot; class=&quot;justified-gallery&quot;&gt; &lt;img src=&quot;/art/img/24/Looming.jpg&quot; alt=&quot;&quot; style=&quot;--width: 922; --height: 896;&quot;/&gt; &lt;img class=&quot;gray&quot; src=&quot;/art/img/24/Looming.jpg&quot; alt=&quot;&quot; style=&quot;--width: 922; --height: 896;&quot;/&gt; &lt;/div&gt; &lt;p&gt;This is a simple drawing of two shadowy figures. Although I could of easily colored both the figures and the aura around them the same shade with white colored line art, I opted to instead make the figures a lighter shade of blue. I also added a few hue shifts of a bright warm shade of pink to give subtle hints of shape.&lt;/p&gt; &lt;p&gt;If you have a stylized artstyle, you can get away with nonsensical lighting. I am a big fan of choosing the more visually appealing choices over the realistic ones.&lt;/p&gt; &lt;h3 id=&quot;techniques&quot;&gt;Digital Art Techniques&lt;/h3&gt; &lt;p&gt;Although I am not fond of the teaching method of giving out exact step by step process, someone out there will undoubtedly inquire about it. Might as well highlight some specific techniques I apply for digital art, the medium I use the most.&lt;/p&gt; &lt;h4&gt;Blurring Line art&lt;/h4&gt; &lt;p&gt;If you want to give you art a softer look, you can clone your line art and blur it with a lower opacity. Alternatively, you can clone the entire image instead - following the same steps of blurring and lowering the opacity. It gives it a dreamier feel.&lt;/p&gt; &lt;h4&gt;Overlaying Colors&lt;/h4&gt; &lt;p&gt;Krita comes with a bunch of blending modes, but I mostly use the overlay and multiply. You can use it to cover the whole drawing to unify the colors or just use it in small portions to give subtle hue shifts.&lt;/p&gt; &lt;p&gt;I wouldn&#39;t use these techniques as harshly as shown below. It&#39;s just exaggerated for the sake of demonstration.&lt;/p&gt; &lt;img src=&quot;/blog/img/demo-0.png&quot; alt=&quot;&quot;&gt; &lt;h4&gt;Adding Textures&lt;/h4&gt; &lt;p&gt;If you want to give your art a little more grit, you can overlay a textured image with the blending mode set to multiply or overlay. If you want to replicate that paper look, gently sketch over random parts of the drawing to give the texture more depth. You can also try cloning the ink with magenta and cyan copies that are slightly offset in opposite directions - creating a subtle anaglyph like effect. This gives out an illusion of a scanned imaged edited to have sharper edges.&lt;/p&gt; &lt;img src=&quot;/blog/img/demo-1.png&quot; alt=&quot;&quot;&gt; &lt;h3 id=&quot;process&quot;&gt;My Process :3&lt;/h3&gt; &lt;p&gt;I typically like to start of with a single color to figure out what kind of vibe I want to give. Sometimes it takes a few tries before I find something I like. After that I messily add more colors relative to whatever I choose as a base. Once I&#39;m contented with the rough idea, I polish it out and experiment with some overlays.&lt;/p&gt; &lt;p&gt;I really am not that good at explaining so I hope the media I&#39;ve attached below will make more sense.&lt;/p&gt; &lt;img src=&quot;/blog/img/process-0.jpg&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;/blog/img/process-1.jpg&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;/blog/img/process-2.jpg&quot; alt=&quot;&quot;&gt; &lt;div class=&quot;yt-embed custom&quot; style=&quot;--embed-thumbnail: url(&#39;/art/img/25/Pedant.jpg&#39;);--embed-title:&#39;Pedant | Speedpaint&#39;;&quot;/&gt; &lt;iframe src=&quot;https://drive.google.com/file/d/1ndfJG9S5nlN1gVATyueP0ZqubPjRml32/preview&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt; &lt;/div&gt; &lt;h4&gt;Krita Files&lt;/h4&gt; &lt;p&gt;&lt;b&gt;2026/01/01 »&lt;/b&gt; Henlooo decided to share some of my Krita (.kra) files from last year! You can find them &lt;a href=&quot;https://ko-fi.com/s/bdcc78d83d&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;h2&gt;Conclusion&lt;/h2&gt; &lt;p&gt;As I&#39;ve stated in the beginning of this post, I am no means an expert. A lot of what I&#39;ve learned is from years of throwing stuff at a wall and hoping it will stick. The things written here shouldn&#39;t treated as some sort of ultimate rule. Instead it should be used as stepping stones to whatever you&#39;re trying to achieve. You should do whatever the hell you want! The world isn&#39;t gonna explode if you mix random colors, so do as much as you can! Experiment, analyze other&#39;s works, fail and succeed. Art is a lot of fun and you should let yourself enjoy the process.&lt;/p&gt; &lt;p&gt;Anyways, that&#39;s all I have for today. I wish all of you the bestest of luck with your art endevours!!! (/≧▽≦)/ ･:*:･ﾟ☆｡&lt;/p&gt; &lt;img src=&quot;/blog/img/sign-off.png&quot; alt=&quot;Stupied was Here&quot; class=&quot;sign-off&quot;&gt; </description> </item> <item> <title>Anbernic Rg35xxsp</title> <link>https://stupied.net/blog/2025-Anbernic-RG35XXSP</link> <pubDate>Fri, 28 Feb 2025 00:00:00 +0800</pubDate> <guid>2025-02-28</guid> <description> &lt;img src=&quot;https://stupied.net/blog/img/anbernic-folders.gif&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;Last January I impulsive ordered an &lt;a href=&quot;https://anbernic.com/products/rg35xxsp&quot; target=&quot;_blank&quot;&gt;Anbernic&lt;/a&gt;, specifically the SP in the RG35XX family. I was initially very hesitant since I already emulate most of my games through my phone, but the charm of carrying around a clamshell was too tempting. I know that this thing is considered to be on the cheaper side of handhelds, but 2.8k pesos is a big commitment for me!! So I am glad to report that the lil guy arrived perfectly fine :3&lt;/p&gt; &lt;p&gt;As advise by the community I bought a new micro sd card to replace the stock one. It&#39;s a 64gb SanDisk Ultra, which is probably overkill for retro games. I&#39;m using &lt;a href=&quot;https://muos.dev/&quot; target=&quot;_blank&quot;&gt;MuOS&lt;/a&gt; because yeah,, The setup was really simple and I dumped all my totally legally obtained nintendo roms into folders I&#39;ve decorated with pixel art of my ocs. I wish there was a way to animate the box art. I want them to bounce around when they&#39;re selected. Aside from that I had a lot of fun messing around with the settings.&lt;/p&gt; &lt;img src=&quot;/blog/img/anbernic-folders.gif&quot;/&gt; &lt;p&gt;Downloaded &lt;a href=&quot;https://en.wikipedia.org/wiki/Stardew_Valley&quot; target=&quot;_blank&quot;&gt;Stardew Valley&lt;/a&gt; through &lt;a href=&quot;https://portmaster.games/&quot; target=&quot;_blank&quot;&gt;Portmaster&lt;/a&gt;, which is where I&#39;ll been spending most of my time with. I love the game but, when I&#39;m at home using my computer, it&#39;s practically the last thing on my mind. The irony of playing a game about community and comradery alone at the corner of the classroom is not lost on me.&lt;/p&gt; &lt;p&gt;Another game I&#39;ve been fixating on would be &lt;a href=&quot;https://en.wikipedia.org/wiki/Puzzle_League&quot; target=&quot;_blank&quot;&gt;Panel De Pon&lt;/a&gt;. Currently using the an english patch of the SNES game from 2007. I remember wanting to try it a few years ago but never quite getting around it. After sinking a few hours in, I&#39;ve become absolutely obsessed. It has a nice balance between strategy and speed. Getting continuous chains of combos is such a satisfying feeling. It reminds me a lot of &lt;a href=&quot;https://en.wikipedia.org/wiki/AstroPop&quot; target=&quot;_blank&quot;&gt;AstroPop&lt;/a&gt;. Speaking of block falling games, I have some puyo and tetris games downloaded. Yes, as in plural.&lt;/p&gt; &lt;p&gt;I&#39;m also planning to replay through all the &lt;a href=&quot;https://en.wikipedia.org/wiki/Ace_Attorney&quot; target=&quot;_blank&quot;&gt;Ace Attorney&lt;/a&gt; games on nds. I forgot how charming the characters are. If you have recommendations for interesting Pokemon rom hacks or games made with RPG Maker 2003, feel free to let me know! Been wanting to get into the two but don&#39;t really know where to start.&lt;/p&gt; &lt;p&gt;Personally not in the position to provide deep insight of how good the device is; I am technologically illiterate. All I can say is I&#39;ve had this lil guy for about a week or so and I love him to absolute death.&lt;/p&gt; &lt;img src=&quot;/blog/img/sign-off.png&quot; alt=&quot;Stupied was Here&quot; class=&quot;sign-off&quot;&gt; </description> </item> <item> <title>Hourly Comic 2025</title> <link>https://stupied.net/blog/2025-Hourly-Comic</link> <pubDate>Sat, 01 Feb 2025 00:00:00 +0800</pubDate> <guid>2025-02-01</guid> <description> &lt;img src=&quot;https://stupied.net/art/img/25/comic/Hourly-01.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;div&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-01.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-00.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-02.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-03.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-04.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-05.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-06.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-07.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-08.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-09.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-10.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-11.jpg&quot;/&gt; &lt;img src=&quot;/art/img/25/comic/Hourly-12.jpg&quot;/&gt; &lt;/div&gt; </description> </item> <item> <title>Banana Overlord</title> <link>https://stupied.net/blog/2024-Banana-Overlord</link> <pubDate>Sat, 15 Jun 2024 00:00:00 +0800</pubDate> <guid>2024-06-15</guid> <description> &lt;img src=&quot;https://stupied.net/art/img/24/comic/Banana.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;img src=&quot;/art/img/24/comic/Banana.jpg&quot;/&gt; &lt;p&gt;Another comic me and my friend took turns writing for.&lt;/p&gt; </description> </item> <item> <title>Pakka Pets</title> <link>https://stupied.net/blog/2023-Pakka-Pets</link> <pubDate>Tue, 29 Aug 2023 00:00:00 +0800</pubDate> <guid>2023-08-29</guid> <description> &lt;img src=&quot;https://stupied.net/blog/img/23/pakkapets-5.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;p&gt;Today I remembered Pakka Pets exsisted.&lt;/span&gt; I made so much progress I made before my phone died. To lazy to download it again but I do have images from before.&lt;/p&gt; &lt;div class=&quot;justified-gallery&quot;&gt; &lt;img src=&quot;/blog/img/23/pakkapets-2.jpg&quot; style=&quot;--width: 900; --height: 893;&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-3.jpg&quot; style=&quot;--width: 900; --height: 896;&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-4.jpg&quot; style=&quot;--width: 900; --height: 827;&quot;/&gt; &lt;/div&gt; &lt;p&gt;She was my favorite one. What a silly guy.&lt;/p&gt; &lt;img src=&quot;/blog/img/23/pakkapets-5.jpg&quot;/&gt; &lt;p&gt;Kids playing in a park (gone wrong)&lt;/p&gt; &lt;div class=&quot;justified-gallery&quot;&gt; &lt;img src=&quot;/blog/img/23/pakkapets-6.jpg&quot; style=&quot;--width: 900; --height: 900;&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-7.jpg&quot; style=&quot;--width: 900; --height: 1042;&quot;/&gt; &lt;/div&gt; &lt;p&gt;Bullying people in annymous gossip forms, are we? Naughty-naughty clown!&lt;/p&gt; &lt;div class=&quot;justified-gallery&quot; style=&quot;margin-bottom:var(--space);&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-8.jpg&quot; style=&quot;--width: 900; --height: 914;&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-9.jpg&quot; style=&quot;--width: 900; --height: 647;&quot;/&gt; &lt;/div&gt; &lt;div class=&quot;justified-gallery&quot;&gt; &lt;img src=&quot;/blog/img/23/pakkapets-10.jpg&quot; style=&quot;--width: 900; --height: 821;&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-11.jpg&quot; style=&quot;--width: 900; --height: 675;&quot;/&gt; &lt;/div&gt; &lt;p&gt;Wassup man, check out these neat flowers I found! What&#39;s that? You&#39;re allergic to these? Oh no! Get out! WHat are you doing???? D:&lt;/p&gt; &lt;img src=&quot;/blog/img/23/pakkapets-12.jpg&quot;/&gt; &lt;p&gt;My honest reaction to that information&lt;/p&gt; &lt;img src=&quot;/blog/img/23/pakkapets-13.jpg&quot;/&gt; &lt;p&gt;Is-- is that a duplicant!!?!??!&lt;/p&gt; &lt;img src=&quot;/blog/img/23/pakkapets-14.jpg&quot;/&gt; &lt;p&gt;Yipppeee New friend :D&lt;/p&gt; &lt;img src=&quot;/blog/img/23/pakkapets-15.jpg&quot;/&gt; &lt;p&gt;uuhhmm...&lt;/p&gt; &lt;div class=&quot;justified-gallery&quot;&gt; &lt;img src=&quot;/blog/img/23/pakkapets-16.jpg&quot; style=&quot;--width: 900; --height: 630;&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-17.jpg&quot; style=&quot;--width: 900; --height: 780;&quot;/&gt; &lt;/div&gt; &lt;p class=&quot;txt-center&quot; style=&quot;margin-top:1rem;&quot;/&gt;Picnic Party!&lt;/p&gt; &lt;div class=&quot;justified-gallery&quot; style=&quot;--min-height:180px&quot;&gt; &lt;img src=&quot;/blog/img/23/pakkapets-18.jpg&quot; style=&quot;--width: 900; --height: 636;&quot;/&gt; &lt;img src=&quot;/blog/img/23/pakkapets-19.jpg&quot; style=&quot;--width: 900; --height: 612;&quot;/&gt; &lt;/div&gt; </description> </item> <item> <title>Hotdog</title> <link>https://stupied.net/blog/2023-Hotdog</link> <pubDate>Mon, 28 Aug 2023 00:00:00 +0800</pubDate> <guid>2023-08-28</guid> <description> &lt;img src=&quot;https://stupied.net/art/img/23/comic/Hotdog-1.jpg&quot; style=&quot;max-width:100%;&quot;/&gt;&lt;img src=&quot;/art/img/23/comic/Hotdog-1.jpg&quot;/&gt; &lt;img src=&quot;/art/img/23/comic/Hotdog-2.jpg&quot;/&gt; &lt;img src=&quot;/art/img/23/comic/Hotdog-3.jpg&quot;/&gt; &lt;p&gt;This is a comic me and my friend took turns drawing panels for.&lt;/p&gt; </description> </item> </channel> </rss>