diff --git a/README.md b/README.md index 9832a3f..b8a697c 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ $ hugo server ### Gallery System -The galleries are defined via JSON, located under `data`. The files are rarely edited by hand, I use [Redai](https://codeberg.org/redstrate/Redai) to edit these. The JSON is read by Hugo when the site is built via [Content adapters](https://gohugo.io/content-management/content-adapters/). +The galleries are defined via JSON, located under `data`. The files are rarely edited by hand, I use [Redai](https://code.ryne.moe/redstrate/redai) to edit these. The JSON is read by Hugo when the site is built via [Content adapters](https://gohugo.io/content-management/content-adapters/). ## Contributing diff --git a/content/blog/akademy2024/index.md b/content/blog/akademy2024/index.md index ccc2cee..88cecb6 100644 --- a/content/blog/akademy2024/index.md +++ b/content/blog/akademy2024/index.md @@ -58,7 +58,7 @@ My talk [was about integrating C++, Qt, Rust (and KDE Frameworks.)](https://conf The results of my talk I think were really cool! Within the KDE community, there seems to be some interest in picking up Rust. Lots of KDE developers were in varying stages of Rust interest. No one told me how stupid it was to glue the two together, so the general vibe I think is "it's pretty neat, let's see how well this works." ~~Unfortunately due to technical issues my talk was not recorded properly. A colleague recorded my talk on his phone, and will hand that over to the Akademy organizers soon.~~ -The talk is now available on [PeerTube](https://tube.kockatoo.org/w/bdDAWwGXRyWmyVBn9mdbnP). [The slides are also available online](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf). +The talk is now available on [PeerTube](https://tube.kockatoo.org/w/hZGsQ9DbCtfp5n1sZXXi3k). [The slides are also available online](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf). Oh yeah, and the KDE goal I'm championing ["We care about your Input"](https://phabricator.kde.org/T17433) was selected! I'm pretty excited to keep hacking away on graphics tablets in KDE Plasma. Thanks to [NLnet](https://nlnet.nl/) for sponsoring us to work on that, along with Wayland accessibility improvements. diff --git a/content/blog/breakdown-gallery/index.md b/content/blog/breakdown-gallery/index.md index 95e7bb0..c177c25 100644 --- a/content/blog/breakdown-gallery/index.md +++ b/content/blog/breakdown-gallery/index.md @@ -24,7 +24,7 @@ The second step is adding a new JSON file which describes the artwork's attribut * Whether the artwork is NSFW. * What program was used. -The JSON is simple enough to write with a text editor, but I also made [a graphical application](https://codeberg.org/redstrate/redai) which makes mass editing a breeze: +The JSON is simple enough to write with a text editor, but I also made [a graphical application](https://code.ryne.moe/redstrate/redai) which makes mass editing a breeze: ![Screenshot of the art manager program. The previews are helpful for writing good alternative text.](redai.webp) diff --git a/content/blog/dolls-nest-demo-saves/index.md b/content/blog/dolls-nest-demo-saves/index.md index 65dea6b..a7f5d61 100644 --- a/content/blog/dolls-nest-demo-saves/index.md +++ b/content/blog/dolls-nest-demo-saves/index.md @@ -104,4 +104,4 @@ Slot info is always saved automatically when calling one of the save functions." Their only custom `.sav` file seems to be "Persistent.sav", which if I had to guess without looking is where the majority of the save data lives. -**Update:** I have begun writing a parser for this format, which is [available here](https://github.com/redstrate/Ireko). +**Update:** I have begun writing a parser for this format, which is [available here](https://code.ryne.moe/redstrate/ireko). diff --git a/content/blog/emudeck-criticism/index.md b/content/blog/emudeck-criticism/index.md index 981ef5d..88eae6c 100644 --- a/content/blog/emudeck-criticism/index.md +++ b/content/blog/emudeck-criticism/index.md @@ -36,7 +36,7 @@ OK, I can't help myself from asking questions about the hardware device they ann --- -Let's talk about [RetroDeck](https://retrodeck.net/). It's a very similar project - even down to the naming scheme - except for some differences which aren't relevant here. Like EmuDeck, they also accept donations but they link to [their donation page](https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/). +Let's talk about [RetroDeck](https://retrodeck.net/). It's a very similar project - even down to the naming scheme - except for some differences which aren't relevant here. Like EmuDeck, they also accept donations but they link to [their donation page](https://retrodeck.readthedocs.io/en/latest/wiki_about/donations-licenses/). ![The RetroDeck donation wiki page. I like how they immediately start by telling you _not_ to donate to them first.](retrodeck-wiki.webp) diff --git a/content/blog/ffxiv-oct2023/index.md b/content/blog/ffxiv-oct2023/index.md index 9b1be16..e0d7bda 100644 --- a/content/blog/ffxiv-oct2023/index.md +++ b/content/blog/ffxiv-oct2023/index.md @@ -19,7 +19,7 @@ I have slightly updated the main window design again, which simplifies a lot of ![The new design in action!](newdesign.webp) -{{< add "feature" >}} Packagers (which is mostly me) will be happy, as Astra [now has tarballs automatically generated from the latest git](https://github.com/redstrate/Astra/commit/c1646e20f6cbd711833cba1fb4fc6966d0035ee5)! This includes vendored cargo dependencies, and any git submodules I use, so it's possible to compile Astra offline again. You can find these on [xiv.zone](https://xiv.zone/astra/beta/) {{< release "0.5.0" >}} +{{< add "feature" >}} Packagers (which is mostly me) will be happy, as Astra [now has tarballs automatically generated from the latest git](https://github.com/redstrate/Astra/commit/c1646e20f6cbd711833cba1fb4fc6966d0035ee5)! This includes vendored cargo dependencies, and any git submodules I use, so it's possible to compile Astra offline again. You can find these on [xiv.zone](https://xiv.zone/astra/install) {{< release "0.5.0" >}} {{< add "feature" >}} The [auto login](https://github.com/redstrate/Astra/commit/d39c702d0aa05e7bbf0f744a8a1f12a1fcfad961) now has more error handling, detailing why the auto login could fail. {{< release "0.5.0" >}} diff --git a/content/blog/figure1/index.md b/content/blog/figure1/index.md index 91578cf..76f7819 100644 --- a/content/blog/figure1/index.md +++ b/content/blog/figure1/index.md @@ -9,9 +9,10 @@ series: - Figure Reviews aliases: - /articles/figure1/ +summary: "Hello again! This is my figure review of the Mari Figure from Sega." --- -Hello again! This is my figure review of the [Mari Figure from Sega](https://myfigurecollection.net/item/945032). She was released around 2020 as a prize +Hello again! This is my figure review of the [Mari Figure from Sega](https://myfigurecollection.net/item/945032). She was released around 2020 as a prize figure celebrating the launch of "Evangelion 3.0+1.0", before it got pushed back to 2021. I didn't preorder her on your typical reseller website but instead got her a little earlier by buying her on [buyee.jp](https://buyee.jp). diff --git a/content/blog/figure2/index.md b/content/blog/figure2/index.md index 266ef36..3bc35e9 100644 --- a/content/blog/figure2/index.md +++ b/content/blog/figure2/index.md @@ -9,9 +9,10 @@ aliases: - /articles/figure2 series: - Figure Reviews +summary: "Today we're reviewing the Flare reissue of the YoRHa No. 2 Type B released by Square Enix, a company that despite being very, very controlling of their merchandise has the absolute worst online store ever." --- -Today we're reviewing the Flare reissue of the YoRHa No. 2 Type B released by Square Enix, a company that despite being very, very controlling of their merchandise has the absolute worst online store ever. This isn't just a single case, you can read online where people have similar experiences with Square Enix's online store. +Today we're reviewing the Flare reissue of the YoRHa No. 2 Type B released by Square Enix, a company that despite being very, very controlling of their merchandise has the absolute worst online store ever. This isn't just a single case, you can read online where people have similar experiences with Square Enix's online store. # The Buying Process diff --git a/content/blog/figure3/index.md b/content/blog/figure3/index.md index 16d87e7..fa2d249 100644 --- a/content/blog/figure3/index.md +++ b/content/blog/figure3/index.md @@ -7,11 +7,10 @@ tags: - Review series: - Figure Reviews +summary: "It's time for another figure review, this time with Ryza!" --- -It's time for another figure review, this time with Ryza! - -Funnily enough, this figure actually convinced me to try Atelier Ryza (1) again, which runs great on the Steam Deck thanks +It's time for another figure review, this time with Ryza! Funnily enough, this figure actually convinced me to try Atelier Ryza (1) again, which runs great on the Steam Deck thanks to the atelier-sync-fix created by doujistin, who created DXVK. Games aside, here's the figure. The figure is around average price ($150) and was already released by the time I got around to purchasing it. diff --git a/content/blog/figure4/index.md b/content/blog/figure4/index.md index de13ea8..a3c6b64 100644 --- a/content/blog/figure4/index.md +++ b/content/blog/figure4/index.md @@ -7,6 +7,7 @@ tags: - Review series: - Figure Reviews +summary: "It's time to review another Rebuild of Evangelion figure, and this time it's Mari again!" --- It's time to review another Rebuild of Evangelion figure, and this time it's Mari again! I was specifically drawn to [this figure](https://myfigurecollection.net/item/1090742) because it's not another plugsuit one[^1]. Yes, plugsuits are cool but I'm getting tired of seeing them in figure form. I purchased this one from AmiAmi as usual. This figure is also based off of a Takeshi Honda drawing used in a 2011 calendar: diff --git a/content/blog/future-of-silica-viewer/index.md b/content/blog/future-of-silica-viewer/index.md index 78339ca..5067722 100644 --- a/content/blog/future-of-silica-viewer/index.md +++ b/content/blog/future-of-silica-viewer/index.md @@ -16,4 +16,4 @@ If you already bought Silica Viewer, nothing will change - you can continue to r ![Screenshot of Silicate](macos.webp) -For people looking for alternative software, check out [Silicate](https://github.com/Avarel/silicate) by [Avarel](http://antran.io/). It works on more platforms than Silica Viewer, and has a better rendering engine, along with other cool features! Thank you all who have supported by using my software, as always :) +For people looking for alternative software, check out [Silicate](https://github.com/Avarel/silicate) by [Avarel](https://avarel.github.io/). It works on more platforms than Silica Viewer, and has a better rendering engine, along with other cool features! Thank you all who have supported by using my software, as always :) diff --git a/content/blog/hosting-your-own-server/index.md b/content/blog/hosting-your-own-server/index.md index b6cc7ce..da38c48 100644 --- a/content/blog/hosting-your-own-server/index.md +++ b/content/blog/hosting-your-own-server/index.md @@ -25,7 +25,7 @@ The same bragging right from e-mail applies here too, since matrix handles are m # Websites -My personal website has always been static or statically generated, and need very little maintenance. Since my websites are small and receive very little traffic, I'm able to host them all on the same box. Since I control the server, I can do cool stuff like [automatically updating Rust docs](https://docs.xiv.zone/docs/physis/) for my physis crate [from GitHub](https://github.com/redstrate/physis) using rsync. I also use GitHub [to update this website too](https://github.com/redstrate/redstrate.com), once I'm done developing a blog post I simply just commit to the repository and after a minute or so it's live on the Internet! +My personal website has always been static or statically generated, and need very little maintenance. Since my websites are small and receive very little traffic, I'm able to host them all on the same box. Since I control the server, I can do cool stuff like [automatically updating Rust docs](https://docs.xiv.zone/docs/physis/) for my physis crate [from GitHub](https://github.com/redstrate/physis) using rsync. I also use GitHub [to update this website too](https://code.ryne.moe/redstrate/redstrate.com), once I'm done developing a blog post I simply just commit to the repository and after a minute or so it's live on the Internet! # Nextcloud diff --git a/content/blog/kate-hugo-setup/index.md b/content/blog/kate-hugo-setup/index.md index 48d944e..7038b17 100644 --- a/content/blog/kate-hugo-setup/index.md +++ b/content/blog/kate-hugo-setup/index.md @@ -9,7 +9,7 @@ summary: "My workflow for working on Hugo websites in Kate - KDE's Text Editor." --- I use Hugo to build my website (which you can explore the source code to -on [GitHub](https://github.com/redstrate/redstrate.com).) And because I love using +on [GitHub](https://code.ryne.moe/redstrate/redstrate.com).) And because I love using KDE applications whenever I can, I do all of my editing - from config files, CSS and Markdown for posts - in [Kate](https://kate-editor.org). diff --git a/content/blog/kawari3/index.md b/content/blog/kawari3/index.md index 70ee471..79d279f 100644 --- a/content/blog/kawari3/index.md +++ b/content/blog/kawari3/index.md @@ -107,7 +107,7 @@ But not really, because there is no database or persistence (yet.) I also implem } ``` -I wonder why chose to use JSON here, but I suspect I'll get a better understanding soon once I implement more lobby character actions. If you're wondering what the content is, I documented [them here](https://github.com/redstrate/Kawari/blob/master/src/chara_make.rs) as the content does not have any field names, it's all arrays. Also yes, they seriously do encode all of their numbers as _strings_. So much for saving valuable space (these packets specifically can only hold 1024 characters of JSON.) +I wonder why chose to use JSON here, but I suspect I'll get a better understanding soon once I implement more lobby character actions. If you're wondering what the content is, I documented [them here](https://github.com/redstrate/Kawari/blob/master/src/lobby/chara_make.rs) as the content does not have any field names, it's all arrays. Also yes, they seriously do encode all of their numbers as _strings_. So much for saving valuable space (these packets specifically can only hold 1024 characters of JSON.) # Documentation diff --git a/content/blog/obscure-qt1.md b/content/blog/obscure-qt1.md index b8eb2bd..ddc49a3 100644 --- a/content/blog/obscure-qt1.md +++ b/content/blog/obscure-qt1.md @@ -10,7 +10,7 @@ series: I decided to start a short series of describing weird, obscure Qt behavior! Because of my new job, I'm working with Qt even more than I did before. As I'm finding new and undocumented behavior, I feel that it's too useful to be posted on something like Mastodon and then forgotten. -A really useful component is the [DelegateChooser](https://doc.qt.io/qt-6/qml-qt-labs-qmlmodels-delegatechooser.html). Say you are building a chat application, and you need to support different types of messages (a regular text message, an image, a location and so on). In order to accomplish this in Qt Quick is to do something like this: +A really useful component is the [DelegateChooser](https://doc.qt.io/qt-6/qml-qtqml-models-delegatechooser.html). Say you are building a chat application, and you need to support different types of messages (a regular text message, an image, a location and so on). In order to accomplish this in Qt Quick is to do something like this: ```qml DelegateChooser { @@ -39,7 +39,7 @@ DelegateChooser { } ``` -At runtime, Qt Quick will use `role` and check it against every one of the [DelegateChoice](https://doc.qt.io/qt-6/qml-qt-labs-qmlmodels-delegatechoice.html)'s `roleValue`. When it finds a match, it'll choose that component. Really useful stuff! +At runtime, Qt Quick will use `role` and check it against every one of the [DelegateChoice](https://doc.qt.io/qt-6/qml-qtqml-models-delegatechoice.html)'s `roleValue`. When it finds a match, it'll choose that component. Really useful stuff! But today I encountered a different case, where I had a bunch of values in my role but not all of them had to be specialized. In most cases I had one component that's generalized for most of them, but only one or two that needed a different component. Curiously, the Qt documentation does not say how to accomplish something like this: @@ -74,3 +74,5 @@ DelegateChooser { } } ``` + +**Edit**: These types moved from QtLabs in Qt 6.9, and I changed the documentation links accordingly. diff --git a/content/imprint.md b/content/imprint.md index 8940fa8..5345549 100644 --- a/content/imprint.md +++ b/content/imprint.md @@ -7,9 +7,9 @@ title: "Imprint" Connections to my server may be logged for abuse, but I do not care to track you. This website may involve connections to first-party services (they are hosted by me.) These may include: -* The content of the website, which is hosted on redstrate.com. I don't hotlink often (maybe the odd image in an embedded social media post). I also employ cross-origin policies to prevent leakages. The website source code is [available here](https://github.com/redstrate/redstrate.com) and the NGINX configuration simply serves it from a directory on the server. +* The content of the website, which is hosted on redstrate.com. I don't hotlink often (maybe the odd image in an embedded social media post). I also employ cross-origin policies to prevent leakages. The website source code is [available here](https://code.ryne.moe/redstrate/redstrate.com) and the NGINX configuration simply serves it from a directory on the server. * The comments system, which is hosted under comments.redstrate.com. If the page you view has comments enabled, it may make requests if you have Javascript enabled. I run an [unmodified Isso instance](https://isso-comments.de/). **The data submitted to this service is anonymous - unless you identify yourself.** -* The voting system, which is hosted under voting.redstrate.com. If the page you view has voting enabled, it may make requests if you have Javascript enabled. The source code for this system is [available here](https://codeberg.org/redstrate/votingsystem). **The data submitted to this service is completely anonymous.** +* The voting system, which is hosted under voting.redstrate.com. If the page you view has voting enabled, it may make requests if you have Javascript enabled. The source code for this system is [available here](https://code.ryne.moe/redstrate/voting-system). **The data submitted to this service is completely anonymous.** Links to external websites are clearly marked with an external link icon, although it sometimes will mark domains that are actually hosted by me. diff --git a/content/links.md b/content/links.md index fc54c95..5f0801d 100644 --- a/content/links.md +++ b/content/links.md @@ -122,7 +122,7 @@ Want out of the button-less shame list? Make a button! * [Lina C.](https://udomyon.com/) * [Devin L.](https://espi.dev/) * [Halla R.](https://valdyas.org/fading/) -* [Felipe K.](https://ffkkinos.com/) +* [Felipe K.](https://ffkkinos.net/) * [misyl](https://froggi.es/) * [Nrok](https://nrok.carrd.co/) * [Sonia L.](http://fyredrake.net/) diff --git a/content/software/arm9switcher.md b/content/software/arm9switcher.md index 9259d1b..ba0436c 100644 --- a/content/software/arm9switcher.md +++ b/content/software/arm9switcher.md @@ -5,7 +5,7 @@ draft: false layout: "project" projtags: - 3DS -source: "https://codeberg.org/redstrate/arm9switcher" +source: "https://code.ryne.moe/redstrate/arm9switcher" license: MIT summary: "A payload switcher for arm9loaderhax" --- diff --git a/content/software/ireko.md b/content/software/ireko.md index a9138cf..711a9ee 100644 --- a/content/software/ireko.md +++ b/content/software/ireko.md @@ -6,7 +6,7 @@ layout: "project" projtags: - Rust license: GPLv3 -source: "https://github.com/redstrate/Ireko" +source: "https://code.ryne.moe/redstrate/ireko" summary: "Library for reading save files from Dolls Nest" --- diff --git a/content/software/libxiv.md b/content/software/libxiv.md index d725bdd..98f9580 100644 --- a/content/software/libxiv.md +++ b/content/software/libxiv.md @@ -10,7 +10,7 @@ projtags: aliases: - /projects/libxiv license: GPLv3 -source: "https://github.com/redstrate/libxiv" +source: "https://code.ryne.moe/redstrate/libxiv" summary: "Unmaintained FFXIV modding framework." --- diff --git a/content/software/redai/index.md b/content/software/redai/index.md index 64996a4..9adb44c 100644 --- a/content/software/redai/index.md +++ b/content/software/redai/index.md @@ -6,7 +6,7 @@ layout: "project" projtags: - CPlusPlus - Qt -source: "https://codeberg.org/redstrate/redai" +source: "https://code.ryne.moe/redstrate/redai" license: GPLv3 summary: "Website gallery manager" --- diff --git a/content/talks.md b/content/talks.md index 928a721..72d116d 100644 --- a/content/talks.md +++ b/content/talks.md @@ -6,4 +6,4 @@ title: "Talks" Here is a list of the talks I've given so far: -* [C++, Rust and Qt: Easier than you think](https://conf.kde.org/event/6/contributions/203/), Akademy 2024 ([PeerTube](https://tube.kockatoo.org/w/bdDAWwGXRyWmyVBn9mdbnP), [Slides](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf)) +* [C++, Rust and Qt: Easier than you think](https://conf.kde.org/event/6/contributions/203/), Akademy 2024 ([PeerTube](https://tube.kockatoo.org/w/hZGsQ9DbCtfp5n1sZXXi3k), [Slides](https://conf.kde.org/event/6/contributions/203/attachments/133/169/akademy-2024-qt-rust.pdf)) diff --git a/data/art/2025/ryne-portrait.json b/data/art/2025/ryne-portrait.json index 40c0456..72160b3 100644 --- a/data/art/2025/ryne-portrait.json +++ b/data/art/2025/ryne-portrait.json @@ -1,7 +1,7 @@ { "alt_text": "Ryne from Final Fantasy XIV Shadowbringers. She has reddish-orange hair, and in a white dress (which is not visible.)", "characters": [ - "Ryne Waters" + "ryne" ], "tags": ["fan art"], "date": "2025-01-01", diff --git a/data/characters/ryne.json b/data/characters/ryne.json new file mode 100644 index 0000000..013ba64 --- /dev/null +++ b/data/characters/ryne.json @@ -0,0 +1,5 @@ +{ + "name": "Ryne Waters", + "original": false, + "origin": "FINAL FANTASY XIV ONLINE" +} diff --git a/themes/red/layouts/partials/art-detail.html b/themes/red/layouts/partials/art-detail.html index 91bee8a..9726f87 100644 --- a/themes/red/layouts/partials/art-detail.html +++ b/themes/red/layouts/partials/art-detail.html @@ -37,8 +37,10 @@ {{ with .Params.characters }}

Characters

+ + {{ $site := index (where $.Site.Sites "Language.Lang" "eq" "en") 0 }} {{ range . }} - {{ with $.Site.GetPage "taxonomyTerm" (printf "characters/%s" .) }} + {{ with $site.GetPage "taxonomyTerm" (printf "characters/%s" .) }} {{ $year := .Page.Title }} {{ $year }}
{{ end }} diff --git a/themes/red/theme.toml b/themes/red/theme.toml index df2027e..60ed9a5 100644 --- a/themes/red/theme.toml +++ b/themes/red/theme.toml @@ -1,6 +1,6 @@ name = "red" license = "MIT" -licenselink = "https://github.com/redstrate/redstrate.com/tree/main/themes/red/LICENSE" +licenselink = "https://code.ryne.moe/redstrate/redstrate.com/tree/main/themes/red/LICENSE" description = "Custom Hugo theme for use on redstrate.com" homepage = "https://redstrate.com/" tags = []