From d0d43c775d2aab6e3ea3cfcb1988e35b38970b64 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Mon, 20 May 2024 19:33:59 -0400 Subject: [PATCH] Move around and update the other pages --- content/astra/beta.md | 48 ---------------- content/astra/changelog.md | 42 -------------- content/astra/faq.md | 46 --------------- content/{ => libraries}/physis/_index.md | 2 + content/{webhooks => mods/hooky}/_index.md | 7 ++- .../{physics-fix => mods/rebound}/_index.md | 7 ++- content/{ => mods}/varc/_index.md | 2 + content/{ => mods}/varc/changelog/1.0.0.md | 0 content/{ => mods}/varc/changelog/1.0.1.md | 0 content/{ => mods}/varc/changelog/1.0.2.md | 0 content/{ => mods}/varc/changelog/1.0.3.md | 0 content/{ => mods}/varc/changelog/1.0.4.md | 0 content/{ => mods}/varc/changelog/_index.md | 0 content/{ => mods}/varc/gearlist.md | 0 content/{ => mods}/varc/install.md | 0 content/{ => mods}/varc/main-comparison.png | Bin .../{ => mods}/varc/realism-comparison.png | Bin content/novus/_index.md | 19 ------- content/{ => software}/astra/_index.md | 4 +- .../{ => software}/astra/changelog/0.1.0.md | 0 .../{ => software}/astra/changelog/0.2.0.md | 0 .../{ => software}/astra/changelog/0.3.0.md | 0 .../{ => software}/astra/changelog/0.3.1.md | 0 .../{ => software}/astra/changelog/0.4.0.md | 0 .../{ => software}/astra/changelog/0.4.1.md | 0 .../{ => software}/astra/changelog/0.5.0.md | 0 .../{ => software}/astra/changelog/0.5.1.md | 0 .../{ => software}/astra/changelog/_index.md | 0 .../astra/changelog/asset-screenshot.png | Bin .../astra/changelog/news-screenshot.png | Bin .../astra/changelog/update-screenshot.png | Bin content/{ => software}/astra/install.md | 2 +- .../{ => software}/astra/main-screenshot.png | Bin content/{ => software}/kawari/_index.md | 7 ++- content/software/novus/_index.md | 19 +++++++ content/{ => software}/novus/install.md | 0 content/sqpack-indexer/_index.md | 15 ----- ...c506_844458_800x0_resize_q75_h2_box_3.webp | Bin 0 -> 31170 bytes themes/mytheme/assets/css/style.css | 1 + themes/mytheme/layouts/index.html | 53 +++++++++--------- 40 files changed, 68 insertions(+), 206 deletions(-) delete mode 100644 content/astra/beta.md delete mode 100644 content/astra/changelog.md delete mode 100644 content/astra/faq.md rename content/{ => libraries}/physis/_index.md (98%) rename content/{webhooks => mods/hooky}/_index.md (52%) rename content/{physics-fix => mods/rebound}/_index.md (69%) rename content/{ => mods}/varc/_index.md (99%) rename content/{ => mods}/varc/changelog/1.0.0.md (100%) rename content/{ => mods}/varc/changelog/1.0.1.md (100%) rename content/{ => mods}/varc/changelog/1.0.2.md (100%) rename content/{ => mods}/varc/changelog/1.0.3.md (100%) rename content/{ => mods}/varc/changelog/1.0.4.md (100%) rename content/{ => mods}/varc/changelog/_index.md (100%) rename content/{ => mods}/varc/gearlist.md (100%) rename content/{ => mods}/varc/install.md (100%) rename content/{ => mods}/varc/main-comparison.png (100%) rename content/{ => mods}/varc/realism-comparison.png (100%) delete mode 100644 content/novus/_index.md rename content/{ => software}/astra/_index.md (92%) rename content/{ => software}/astra/changelog/0.1.0.md (100%) rename content/{ => software}/astra/changelog/0.2.0.md (100%) rename content/{ => software}/astra/changelog/0.3.0.md (100%) rename content/{ => software}/astra/changelog/0.3.1.md (100%) rename content/{ => software}/astra/changelog/0.4.0.md (100%) rename content/{ => software}/astra/changelog/0.4.1.md (100%) rename content/{ => software}/astra/changelog/0.5.0.md (100%) rename content/{ => software}/astra/changelog/0.5.1.md (100%) rename content/{ => software}/astra/changelog/_index.md (100%) rename content/{ => software}/astra/changelog/asset-screenshot.png (100%) rename content/{ => software}/astra/changelog/news-screenshot.png (100%) rename content/{ => software}/astra/changelog/update-screenshot.png (100%) rename content/{ => software}/astra/install.md (98%) rename content/{ => software}/astra/main-screenshot.png (100%) rename content/{ => software}/kawari/_index.md (72%) create mode 100644 content/software/novus/_index.md rename content/{ => software}/novus/install.md (100%) delete mode 100644 content/sqpack-indexer/_index.md create mode 100644 resources/_gen/images/software/astra/main-screenshot_hu6349092d6dcf10e5e4635b292d8ac506_844458_800x0_resize_q75_h2_box_3.webp diff --git a/content/astra/beta.md b/content/astra/beta.md deleted file mode 100644 index cd7ef2d..0000000 --- a/content/astra/beta.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "Download Beta" -draft: true ---- - -{{< note "0.5.0 is currently unreleased. Please only try it if you have nothing to lose!" >}} - -This is the download page for 0.5.0. Precompiled builds are currently still a work in progress, please tell me any issues you have in the [issue tracker](https://todo.sr.ht/~redstrate/astra) or the [mailing list](https://lists.sr.ht/~redstrate/public-inbox). - -See the [changelog](/astra/changelog/0.5.0) for this version. - -### Fedora Linux - -Fedora packages are available from my [COPR](https://copr.fedorainfracloud.org/coprs/redstrate/personal/). In your preferred terminal emulator, enable the repository: - -```bash -$ dnf copr enable redstrate/personal -``` - -Astra 0.5.0 uses KDE Frameworks 6, and it is not packaged yet in a stable Fedora version. There is a [KDE 6 COPR](https://copr.fedorainfracloud.org/coprs/g/kdesig/kde-nightly-qt6/) maintained by the Fedora KDE SIG team, which you must install before Astra. - -Then you can install Astra like any other package: - -```bash -$ dnf install astra -``` - -### Arch Linux - -An Arch Linux package is available on the [AUR](https://aur.archlinux.org/packages/astra-launcher-git) but requires you to figure out how to get KDE Frameworks 6 packages installed on your system. - -### Gentoo Linux - -A Gentoo package is available in [my personal overlay](https://git.sr.ht/~redstrate/overlay) and instructions on how to use it are located on it's site. In order to install the package you must source the required KDE Frameworks 6 packages yourself, I suggest using my [KF6 overlay](https://git.sr.ht/~redstrate/kf6-overlay). - -### Flatpak - -A Flatpak is currently unavailable right now. Sorry! - -### Source Code - -A complete source tarball is available, which is generated via sourcehut CI on every commit. This includes every vendored dependency as well, which is useful for distribution packaging. - -{{< rawhtml >}} -
-Download source code tarball -
-{{< /rawhtml >}} diff --git a/content/astra/changelog.md b/content/astra/changelog.md deleted file mode 100644 index 1aa9199..0000000 --- a/content/astra/changelog.md +++ /dev/null @@ -1,42 +0,0 @@ -# Astra -## Changelog - -### 0.4.0 - - ---- - -### 0.3.1 - - - ---- - -### 0.3.0 - - ---- - -### 0.2.0 - -This is a major beta release which adds a bunch new features! - -- Multiple profile support - - All of the settings you already use are now configurable, per profile. This includes server type, directx mode, and a whole bunch of neat configurable things. For people testing Sapphire servers or different types of wine this should be extremely useful! -- Encrypted game argument support - - On Windows, FFXIV "encrypts" (not really, just obfuscates) the game arguments otherwise your game login token (SID) is in plain-text. This now matches the behavior of the official xivboot.exe and also XIVQuickLauncher. This will become the new default option in the next release. - - Big thanks to XIVQuickLauncher where the code is based off of, as well as the information on xivdev. -- Custom wine prefix/executable options on Linux and macOS - -These bugs are also fixed: - -- Windows dependencies are now copied when building -- Windows "open game directory" button now works -- The built-in game wine is now the default (for real this time) on macOS - ---- - - -### 0.1.0 - -First public release! diff --git a/content/astra/faq.md b/content/astra/faq.md deleted file mode 100644 index 74db609..0000000 --- a/content/astra/faq.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Astra - Frequently Asked Questions" ---- - -***Why should I use this over the official launcher?*** - -If you're a **Windows** user, this launcher supports Dalamud plugins. If you have multiple accounts, you'll find the profiles feature to be useful as well. Unlike the PC launcher, Astra allows you to save your password securely. - -For **macOS** users, the same features from above apply, since Astra is cross-platform. Also, since Astra is native - you will no longer suffer running the launcher in Wine (which constantly gets stuck on your cursor.) - -For **Linux** users, you enjoy everything from above! - ---- - -***Why should I use this over XIVQuickLauncher/XLCore?*** - -For **Windows** users, you will be happy with either launcher since they support similar features. - -For **macOS** and **Linux** users, Astra's interface looks completely native if that's what you're into. - ---- - -***What's some other neat stuff I should know?*** - -You can login into Sapphire servers, bypassing the need for the Sapphire Launcher especially -since it only supports Windows. Naturally, Dalamud injection and everything else should work as well! - -For those who do not want to set up Wine manually on macOS, check out [XIV on Mac](https://www.xivmac.com/)! Their native Swift launcher has a similar feature set and provide their own bundled Wine with modern DXVK and other goodies. For those who wish to use XIV on Mac's bundled Wine, but still want to use Astra - that's possible too! - ---- - -***How secure is this? Can I trust Astra with saving my credentials and launching my game?*** - -The code is [open source](https://git.sr.ht/~redstrate/astra), and the boot/launcher portion is contained here and here for your code reading pleasure. For saving passwords, we leverage qtkeychain which uses your already secure system wallet and will not put anything in plaintext. - ---- - -***Help?? Something broke??*** - -If you have an issue, please report it on the [bug tracker](https://todo.sr.ht/~redstrate/astra)! - ---- - -***Nothing broke, but I want a feature implemented!*** - -You can either discuss it on my [mailing list](https://lists.sr.ht/~redstrate/public-inbox), or report it through the [tracker](https://todo.sr.ht/~redstrate/astra). Please note that I work on this on my free time, so [monetary support](https://redstrate.com/fund) is appreciated if possible. :-) diff --git a/content/physis/_index.md b/content/libraries/physis/_index.md similarity index 98% rename from content/physis/_index.md rename to content/libraries/physis/_index.md index 3d4901b..0d7d351 100644 --- a/content/physis/_index.md +++ b/content/libraries/physis/_index.md @@ -1,6 +1,8 @@ --- title: "Physis" layout: "single" +aliases: +- /physis --- A modding framework for FFXIV written in Rust. Used in [Astra]({{< ref "astra" >}}) and [Novus]({{< ref "novus" >}}) but can easily be integrated into your own projects. diff --git a/content/webhooks/_index.md b/content/mods/hooky/_index.md similarity index 52% rename from content/webhooks/_index.md rename to content/mods/hooky/_index.md index b27a3d7..0cc40e7 100644 --- a/content/webhooks/_index.md +++ b/content/mods/hooky/_index.md @@ -1,6 +1,8 @@ --- -title: "FFXIV Webhooks" +title: "Hooky" layout: "single" +aliases: +- /webhooks --- Sends messages to a specified webhook endpoint, such as when a duty is popped or your character has logged in. @@ -8,6 +10,7 @@ Sends messages to a specified webhook endpoint, such as when a duty is popped or ## Get Involved & Support {{< begin-grid >}} -{{< blurb title="Download" description="Get the source code" url="https://git.sr.ht/~redstrate/ffxiv-web-hooks" >}} +{{< blurb title="Install" description="Install from my Dalamud Repository" url="https://github.com/redstrate/dalamudplugins" >}} +{{< blurb title="Get Source Code & Contribute" description="The full source code for Hooky is available on GitHub." url="https://github.com/redstrate/hooky" >}} {{< blurb title="Donate Money" description="Any monetary contribution helps so I can continue working on this in my free time." url="https://redstrate.com/fund" >}} {{< end-grid >}} diff --git a/content/physics-fix/_index.md b/content/mods/rebound/_index.md similarity index 69% rename from content/physics-fix/_index.md rename to content/mods/rebound/_index.md index adc8377..3bbe0ed 100644 --- a/content/physics-fix/_index.md +++ b/content/mods/rebound/_index.md @@ -1,6 +1,8 @@ --- -title: "FFXIV Physics Fix" +title: "Rebound" layout: "single" +aliases: +- /physics-fix --- FFXIV's bone physics consist of wind and bounce physics. These apply to the character's hair, clothes and other body parts. However, some aspects appear broken on high framerates, especially those above 60 FPS. Notably bouncing happens so quickly that it's practically non-existent, and wind effects tend to appear jittery. @@ -10,6 +12,7 @@ This plugin fixes this bug by locking updates to 60 FPS, and is based on [Kirran ## Get Involved & Support {{< begin-grid >}} -{{< blurb title="Download" description="Get the source code" url="https://git.sr.ht/~redstrate/ffxiv-physics-fix" >}} +{{< blurb title="Install" description="Install from my Dalamud Repository" url="https://github.com/redstrate/dalamudplugins" >}} +{{< blurb title="Get Source Code & Contribute" description="The full source code for Rebound is available on GitHub." url="https://github.com/redstrate/rebound" >}} {{< blurb title="Donate Money" description="Any monetary contribution helps so I can continue working on this in my free time." url="https://redstrate.com/fund" >}} {{< end-grid >}} diff --git a/content/varc/_index.md b/content/mods/varc/_index.md similarity index 99% rename from content/varc/_index.md rename to content/mods/varc/_index.md index 66bac60..974b4cf 100644 --- a/content/varc/_index.md +++ b/content/mods/varc/_index.md @@ -1,6 +1,8 @@ --- title: "Vanilla Armor Refit Collection" layout: "single" +aliases: +- /varc --- Have you ever wondered why your female FFXIV character's body shape mysteriously changes depending on whatever you decide to wear? No more! diff --git a/content/varc/changelog/1.0.0.md b/content/mods/varc/changelog/1.0.0.md similarity index 100% rename from content/varc/changelog/1.0.0.md rename to content/mods/varc/changelog/1.0.0.md diff --git a/content/varc/changelog/1.0.1.md b/content/mods/varc/changelog/1.0.1.md similarity index 100% rename from content/varc/changelog/1.0.1.md rename to content/mods/varc/changelog/1.0.1.md diff --git a/content/varc/changelog/1.0.2.md b/content/mods/varc/changelog/1.0.2.md similarity index 100% rename from content/varc/changelog/1.0.2.md rename to content/mods/varc/changelog/1.0.2.md diff --git a/content/varc/changelog/1.0.3.md b/content/mods/varc/changelog/1.0.3.md similarity index 100% rename from content/varc/changelog/1.0.3.md rename to content/mods/varc/changelog/1.0.3.md diff --git a/content/varc/changelog/1.0.4.md b/content/mods/varc/changelog/1.0.4.md similarity index 100% rename from content/varc/changelog/1.0.4.md rename to content/mods/varc/changelog/1.0.4.md diff --git a/content/varc/changelog/_index.md b/content/mods/varc/changelog/_index.md similarity index 100% rename from content/varc/changelog/_index.md rename to content/mods/varc/changelog/_index.md diff --git a/content/varc/gearlist.md b/content/mods/varc/gearlist.md similarity index 100% rename from content/varc/gearlist.md rename to content/mods/varc/gearlist.md diff --git a/content/varc/install.md b/content/mods/varc/install.md similarity index 100% rename from content/varc/install.md rename to content/mods/varc/install.md diff --git a/content/varc/main-comparison.png b/content/mods/varc/main-comparison.png similarity index 100% rename from content/varc/main-comparison.png rename to content/mods/varc/main-comparison.png diff --git a/content/varc/realism-comparison.png b/content/mods/varc/realism-comparison.png similarity index 100% rename from content/varc/realism-comparison.png rename to content/mods/varc/realism-comparison.png diff --git a/content/novus/_index.md b/content/novus/_index.md deleted file mode 100644 index 1ec5eb3..0000000 --- a/content/novus/_index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Novus" -layout: "single" ---- - -This is a collection of cross-platform, FFXIV modding tools. These don't use any pre-existing modding framework (Lumina, xivModdingFramework, etc) but instead my own custom modding library, libxiv. - -The goal is to create a good set of tools that isn't based on WPF and C#, and can work cross-platform without having to resort to Wine. - -**Note:** This is alpha level software, not intended to be usable in any capacity at the moment. Thus, I have not tagged any stable releases. - -## Get Involved & Support - -{{< begin-grid >}} -{{< blurb title="Download" description="Download the latest version of Novus for your preferred distribution." url="/novus/install" >}} -{{< blurb title="Get Source Code & Contribute" description="The full source code for Novus is available on sourcehut." url="https://github.com/redstrate/Novus" >}} -{{< blurb title="Give Feedback" description="Send an email on the mailing list for feature requests, bugs, and patches." url="https://lists.sr.ht/~redstrate/public-inbox" >}} -{{< blurb title="Donate Money" description="Any monetary contribution helps so I can continue working on this in my free time." url="https://redstrate.com/fund" >}} -{{< end-grid >}} diff --git a/content/astra/_index.md b/content/software/astra/_index.md similarity index 92% rename from content/astra/_index.md rename to content/software/astra/_index.md index 131445c..bd4ecb9 100644 --- a/content/astra/_index.md +++ b/content/software/astra/_index.md @@ -1,6 +1,8 @@ --- title: "Astra" layout: "single" +aliases: +- /astra --- A FFXIV launcher that supports profiles, multiple accounts and [Dalamud](https://github.com/goatcorp/Dalamud) plugins. @@ -22,7 +24,7 @@ A FFXIV launcher that supports profiles, multiple accounts and [Dalamud](https:/ ## Get Involved & Support {{< begin-grid >}} -{{< blurb title="Download" description="Download the latest version of Astra for your preferred distribution." url="/astra/install" >}} +{{< blurb title="Install" description="Download & install the stable version of Astra." url="/software/astra/install" >}} {{< blurb title="Get Source Code & Contribute" description="The full source code for Astra is available on GitHub." url="https://github.com/redstrate/Astra" >}} {{< blurb title="File Bugs" description="Submit tickets for bugs and feature requests." url="https://github.com/redstrate/Astra" >}} {{< blurb title="Donate Money" description="Any monetary contribution helps so I can continue working on this!" url="https://redstrate.com/fund" >}} diff --git a/content/astra/changelog/0.1.0.md b/content/software/astra/changelog/0.1.0.md similarity index 100% rename from content/astra/changelog/0.1.0.md rename to content/software/astra/changelog/0.1.0.md diff --git a/content/astra/changelog/0.2.0.md b/content/software/astra/changelog/0.2.0.md similarity index 100% rename from content/astra/changelog/0.2.0.md rename to content/software/astra/changelog/0.2.0.md diff --git a/content/astra/changelog/0.3.0.md b/content/software/astra/changelog/0.3.0.md similarity index 100% rename from content/astra/changelog/0.3.0.md rename to content/software/astra/changelog/0.3.0.md diff --git a/content/astra/changelog/0.3.1.md b/content/software/astra/changelog/0.3.1.md similarity index 100% rename from content/astra/changelog/0.3.1.md rename to content/software/astra/changelog/0.3.1.md diff --git a/content/astra/changelog/0.4.0.md b/content/software/astra/changelog/0.4.0.md similarity index 100% rename from content/astra/changelog/0.4.0.md rename to content/software/astra/changelog/0.4.0.md diff --git a/content/astra/changelog/0.4.1.md b/content/software/astra/changelog/0.4.1.md similarity index 100% rename from content/astra/changelog/0.4.1.md rename to content/software/astra/changelog/0.4.1.md diff --git a/content/astra/changelog/0.5.0.md b/content/software/astra/changelog/0.5.0.md similarity index 100% rename from content/astra/changelog/0.5.0.md rename to content/software/astra/changelog/0.5.0.md diff --git a/content/astra/changelog/0.5.1.md b/content/software/astra/changelog/0.5.1.md similarity index 100% rename from content/astra/changelog/0.5.1.md rename to content/software/astra/changelog/0.5.1.md diff --git a/content/astra/changelog/_index.md b/content/software/astra/changelog/_index.md similarity index 100% rename from content/astra/changelog/_index.md rename to content/software/astra/changelog/_index.md diff --git a/content/astra/changelog/asset-screenshot.png b/content/software/astra/changelog/asset-screenshot.png similarity index 100% rename from content/astra/changelog/asset-screenshot.png rename to content/software/astra/changelog/asset-screenshot.png diff --git a/content/astra/changelog/news-screenshot.png b/content/software/astra/changelog/news-screenshot.png similarity index 100% rename from content/astra/changelog/news-screenshot.png rename to content/software/astra/changelog/news-screenshot.png diff --git a/content/astra/changelog/update-screenshot.png b/content/software/astra/changelog/update-screenshot.png similarity index 100% rename from content/astra/changelog/update-screenshot.png rename to content/software/astra/changelog/update-screenshot.png diff --git a/content/astra/install.md b/content/software/astra/install.md similarity index 98% rename from content/astra/install.md rename to content/software/astra/install.md index 860c7c3..7765e7b 100644 --- a/content/astra/install.md +++ b/content/software/astra/install.md @@ -1,5 +1,5 @@ --- -title: "Download" +title: "Install" --- The stable version currently is **0.5.1**. You can report issues either on [GitHub](https://github.com/redstrate/Astra/issues) or if you prefer then [contact me via e-mail](https://redstrate.com/contact). diff --git a/content/astra/main-screenshot.png b/content/software/astra/main-screenshot.png similarity index 100% rename from content/astra/main-screenshot.png rename to content/software/astra/main-screenshot.png diff --git a/content/kawari/_index.md b/content/software/kawari/_index.md similarity index 72% rename from content/kawari/_index.md rename to content/software/kawari/_index.md index dcff4c8..391f0f7 100644 --- a/content/kawari/_index.md +++ b/content/software/kawari/_index.md @@ -1,14 +1,17 @@ --- title: "Kawari" layout: "single" +aliases: +- /kawari --- A substitute for a few official servers such as "ffxiv.com" and "square-enix.com". It's still early in development, but can already emulate the basic login flow. +See more information on it's [GitHub repository](https://github.com/redstrate/Kawari). + ## Get Involved & Support {{< begin-grid >}} -{{< blurb title="Get Source Code & Contribute" description="The full source code for Kawari is available on sourcehut." url="https://git.sr.ht/~redstrate/kawari" >}} -{{< blurb title="Give Feedback" description="Send an email on the mailing list for feature requests, bugs, and patches." url="https://lists.sr.ht/~redstrate/public-inbox" >}} +{{< blurb title="Get Source Code & Contribute" description="The full source code for Kawari is available on sourcehut." url="https://github.com/redstrate/kawari" >}} {{< blurb title="Donate Money" description="Any monetary contribution helps so I can continue working on this in my free time." url="https://redstrate.com/fund" >}} {{< end-grid >}} diff --git a/content/software/novus/_index.md b/content/software/novus/_index.md new file mode 100644 index 0000000..9cb32ee --- /dev/null +++ b/content/software/novus/_index.md @@ -0,0 +1,19 @@ +--- +title: "Novus" +layout: "single" +aliases: +- /novus +--- + +A suite of unofficial FFXIV tools, including a model viewer and data archive explorer. + +![](/novus.png) + +See more information on it's [GitHub repository](https://github.com/redstrate/Novus). + +## Get Involved & Support + +{{< begin-grid >}} +{{< blurb title="Get Source Code & Contribute" description="The full source code for Novus is available on sourcehut." url="https://github.com/redstrate/Novus" >}} +{{< blurb title="Donate Money" description="Any monetary contribution helps so I can continue working on this in my free time." url="https://redstrate.com/fund" >}} +{{< end-grid >}} diff --git a/content/novus/install.md b/content/software/novus/install.md similarity index 100% rename from content/novus/install.md rename to content/software/novus/install.md diff --git a/content/sqpack-indexer/_index.md b/content/sqpack-indexer/_index.md deleted file mode 100644 index 1809460..0000000 --- a/content/sqpack-indexer/_index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "SqPack Indexer" -layout: "single" ---- - -This is a Dalamud plugin that simply extracts filenames that the game opens. Originally on some Penumbra code for hooking into resource loading. - -I didn't know about [ResLogger](https://github.com/lmcintyre/ResLogger2) until later, but this is still useful for Novus I think. - -## Get Involved & Support - -{{< begin-grid >}} -{{< blurb title="Download" description="Get the source code" url="https://git.sr.ht/~redstrate/sqpack-indexer" >}} -{{< blurb title="Donate Money" description="Any monetary contribution helps so I can continue working on this in my free time." url="https://redstrate.com/fund" >}} -{{< end-grid >}} diff --git a/resources/_gen/images/software/astra/main-screenshot_hu6349092d6dcf10e5e4635b292d8ac506_844458_800x0_resize_q75_h2_box_3.webp b/resources/_gen/images/software/astra/main-screenshot_hu6349092d6dcf10e5e4635b292d8ac506_844458_800x0_resize_q75_h2_box_3.webp new file mode 100644 index 0000000000000000000000000000000000000000..87723c5fdfc11edd629225a3c43bfce9adba2484 GIT binary patch literal 31170 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 z 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 Ua-#5!1ONa4000000000001>$gegFUf literal 0 HcmV?d00001 diff --git a/themes/mytheme/assets/css/style.css b/themes/mytheme/assets/css/style.css index 410da4d..9e9c6ee 100644 --- a/themes/mytheme/assets/css/style.css +++ b/themes/mytheme/assets/css/style.css @@ -67,6 +67,7 @@ main { border-radius: 10px; border-color: var(--border-color); margin: 2px; + width: 100%; } main > h2 { diff --git a/themes/mytheme/layouts/index.html b/themes/mytheme/layouts/index.html index dde6f53..c42f758 100644 --- a/themes/mytheme/layouts/index.html +++ b/themes/mytheme/layouts/index.html @@ -1,37 +1,20 @@ {{ define "main" }} -

Sites

- - -

Software