Compare commits

...

12 Commits

Author SHA1 Message Date
Martin Prokoph
092cef2e24 wiki: update MidnightLib wiki for v1.9.0
Also features various other improvements :)
2025-11-23 13:48:09 +01:00
Martin Prokoph
b84a488af0 chore: update deps 2025-11-22 20:26:26 +01:00
Martin Prokoph
522254fbe4 chore: update stats 2025-08-01 13:23:44 +02:00
Martin Prokoph
91f200dadb wiki: fix missing newline 2025-07-31 11:51:34 +02:00
Martin Prokoph
1e6fb724c3 feat: update BetterLeaves wiki for 9.3 2025-07-31 00:42:37 +02:00
Martin Prokoph
cc9b4ba6e1 test: add citation debug page 2025-07-30 23:45:46 +02:00
Martin Prokoph
b5d4fa1aec feat: update betterleaves script image 2025-07-30 23:45:14 +02:00
Martin Prokoph
810612c4e5 fix: weird gradle info version selector placement 2025-07-30 23:31:36 +02:00
Martin Prokoph
d55cdfa175 feat: create ThisRocks mod page 2025-07-30 23:25:51 +02:00
Martin Prokoph
c580b9e181 feat: improve styling 2025-07-30 23:22:41 +02:00
Martin Prokoph
886b532519 Merge pull request #5 from slonkazoid/patch-1
fix wrong filename in midnightlib wiki
2025-07-20 11:53:25 +02:00
slonkazoid
07d14f50a3 this is case sensitive 2025-06-29 02:51:00 +03:00
26 changed files with 3395 additions and 1769 deletions

View File

@@ -1 +1 @@
[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.5.5","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://www.midnightdust.eu\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[]},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"responsiveImages\":false,\"serializeConfig\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false},\"legacy\":{\"collections\":false}}"]
[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.16.0","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://www.midnightdust.eu\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[]},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false,\"failOnPrerenderConflict\":false,\"svgo\":false},\"legacy\":{\"collections\":false}}"]

166
.astro/icon.d.ts vendored
View File

@@ -1,5 +1,5 @@
// Automatically generated by astro-icon
// 8e7429c946c12d2c48e5c45083ba2275bd979b675d70e184ce0a9174f7985787
// aef5c6dc2b1a9c7ed9b06ef4d34a9a2a16624fa1781f2db707f5c45905e9edb0
declare module 'virtual:astro-icon' {
export type Icon =
@@ -1387,6 +1387,7 @@ declare module 'virtual:astro-icon' {
| "ion:logo-steam"
| "ion:logo-stencil"
| "ion:logo-tableau"
| "ion:logo-threads"
| "ion:logo-tiktok"
| "ion:logo-trapeze"
| "ion:logo-tumblr"
@@ -2704,6 +2705,7 @@ declare module 'virtual:astro-icon' {
| "line-md:bell-loop"
| "line-md:bell-twotone"
| "line-md:bell-twotone-loop"
| "line-md:bluesky"
| "line-md:brake"
| "line-md:brake-abs"
| "line-md:brake-abs-filled"
@@ -3629,6 +3631,7 @@ declare module 'virtual:astro-icon' {
| "line-md:thumbs-up-filled"
| "line-md:thumbs-up-twotone"
| "line-md:tiktok"
| "line-md:trash"
| "line-md:turn-left"
| "line-md:turn-right"
| "line-md:turn-sharp-left"
@@ -17754,9 +17757,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:7zip"
| "simple-icons:99designs"
| "simple-icons:9gag"
| "simple-icons:abb"
| "simple-icons:abbott"
| "simple-icons:abbrobotstudio"
| "simple-icons:abbvie"
| "simple-icons:abdownloadmanager"
| "simple-icons:abletonlive"
| "simple-icons:aboutdotme"
| "simple-icons:abstract"
@@ -17769,12 +17774,15 @@ declare module 'virtual:astro-icon' {
| "simple-icons:acer"
| "simple-icons:acm"
| "simple-icons:actigraph"
| "simple-icons:activeloop"
| "simple-icons:activision"
| "simple-icons:activitypub"
| "simple-icons:actix"
| "simple-icons:actualbudget"
| "simple-icons:acura"
| "simple-icons:ada"
| "simple-icons:adafruit"
| "simple-icons:adaway"
| "simple-icons:adblock"
| "simple-icons:adblockplus"
| "simple-icons:addthis"
@@ -17858,6 +17866,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:alienware"
| "simple-icons:aliexpress"
| "simple-icons:alipay"
| "simple-icons:alist"
| "simple-icons:allegro"
| "simple-icons:alliedmodders"
| "simple-icons:allocine"
@@ -17917,6 +17926,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:angularuniversal"
| "simple-icons:anilist"
| "simple-icons:animalplanet"
| "simple-icons:animedotjs"
| "simple-icons:ankermake"
| "simple-icons:anki"
| "simple-icons:ansible"
@@ -17925,6 +17935,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:anta"
| "simple-icons:antdesign"
| "simple-icons:antena3"
| "simple-icons:antennapod"
| "simple-icons:anthropic"
| "simple-icons:antv"
| "simple-icons:anycubic"
@@ -17934,11 +17945,13 @@ declare module 'virtual:astro-icon' {
| "simple-icons:apache"
| "simple-icons:apacheairflow"
| "simple-icons:apacheant"
| "simple-icons:apacheavro"
| "simple-icons:apachecassandra"
| "simple-icons:apachecloudstack"
| "simple-icons:apachecordova"
| "simple-icons:apachecouchdb"
| "simple-icons:apachedolphinscheduler"
| "simple-icons:apachedoris"
| "simple-icons:apachedruid"
| "simple-icons:apacheecharts"
| "simple-icons:apacheflink"
@@ -18050,9 +18063,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:autoprefixer"
| "simple-icons:autozone"
| "simple-icons:avajs"
| "simple-icons:avaloniaui"
| "simple-icons:avast"
| "simple-icons:avianca"
| "simple-icons:avira"
| "simple-icons:avm"
| "simple-icons:awesomelists"
| "simple-icons:awesomewm"
| "simple-icons:awsamplify"
@@ -18063,6 +18078,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:awssecretsmanager"
| "simple-icons:awwwards"
| "simple-icons:axios"
| "simple-icons:axisbank"
| "simple-icons:azureartifacts"
| "simple-icons:azuredataexplorer"
| "simple-icons:azuredevops"
@@ -18076,6 +18092,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:backbonedotjs"
| "simple-icons:backendless"
| "simple-icons:backstage"
| "simple-icons:backstage-casting"
| "simple-icons:badgr"
| "simple-icons:badoo"
| "simple-icons:baidu"
@@ -18115,6 +18132,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:bentoml"
| "simple-icons:bereal"
| "simple-icons:betfair"
| "simple-icons:betterauth"
| "simple-icons:betterdiscord"
| "simple-icons:betterstack"
| "simple-icons:bevy"
@@ -18141,11 +18159,13 @@ declare module 'virtual:astro-icon' {
| "simple-icons:bittorrent"
| "simple-icons:bitwarden"
| "simple-icons:bitwig"
| "simple-icons:black"
| "simple-icons:blackberry"
| "simple-icons:blackmagicdesign"
| "simple-icons:blazemeter"
| "simple-icons:blazor"
| "simple-icons:blender"
| "simple-icons:blibli"
| "simple-icons:blockbench"
| "simple-icons:blockchaindotcom"
| "simple-icons:blogger"
@@ -18161,9 +18181,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:boat"
| "simple-icons:boehringeringelheim"
| "simple-icons:boeing"
| "simple-icons:bohemiainteractive"
| "simple-icons:bombardier"
| "simple-icons:bookalope"
| "simple-icons:bookbub"
| "simple-icons:bookingdotcom"
| "simple-icons:bookmeter"
| "simple-icons:bookmyshow"
| "simple-icons:bookstack"
@@ -18180,6 +18202,8 @@ declare module 'virtual:astro-icon' {
| "simple-icons:box"
| "simple-icons:boxysvg"
| "simple-icons:braintree"
| "simple-icons:braintrust"
| "simple-icons:brandfetch"
| "simple-icons:brandfolder"
| "simple-icons:brave"
| "simple-icons:breaker"
@@ -18207,6 +18231,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:bulma"
| "simple-icons:bun"
| "simple-icons:bungie"
| "simple-icons:bunnydotnet"
| "simple-icons:bunq"
| "simple-icons:burgerking"
| "simple-icons:burpsuite"
@@ -18239,6 +18264,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:capacitor"
| "simple-icons:caprover"
| "simple-icons:cardano"
| "simple-icons:cardmarket"
| "simple-icons:carlsberggroup"
| "simple-icons:carrd"
| "simple-icons:carrefour"
@@ -18264,6 +18290,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:chainguard"
| "simple-icons:chainlink"
| "simple-icons:chakraui"
| "simple-icons:changedetection"
| "simple-icons:channel4"
| "simple-icons:charles"
| "simple-icons:chartdotjs"
@@ -18285,7 +18312,6 @@ declare module 'virtual:astro-icon' {
| "simple-icons:chinasouthernairlines"
| "simple-icons:chocolatey"
| "simple-icons:chromatic"
| "simple-icons:chromecast"
| "simple-icons:chromewebstore"
| "simple-icons:chrysler"
| "simple-icons:chupachups"
@@ -18323,6 +18349,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:cloudflareworkers"
| "simple-icons:cloudfoundry"
| "simple-icons:cloudinary"
| "simple-icons:cloudnativebuild"
| "simple-icons:cloudron"
| "simple-icons:cloudsmith"
| "simple-icons:cloudways"
@@ -18334,6 +18361,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:cnes"
| "simple-icons:cnet"
| "simple-icons:cnn"
| "simple-icons:cobalt"
| "simple-icons:cocacola"
| "simple-icons:cockpit"
| "simple-icons:cockroachlabs"
@@ -18361,6 +18389,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:codepen"
| "simple-icons:codeproject"
| "simple-icons:coder"
| "simple-icons:coderabbit"
| "simple-icons:codereview"
| "simple-icons:codersrank"
| "simple-icons:coderwall"
@@ -18410,6 +18439,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:convertio"
| "simple-icons:cookiecutter"
| "simple-icons:coolermaster"
| "simple-icons:coolify"
| "simple-icons:coop"
| "simple-icons:copaairlines"
| "simple-icons:coppel"
@@ -18460,6 +18490,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:cultura"
| "simple-icons:curl"
| "simple-icons:curseforge"
| "simple-icons:cursor"
| "simple-icons:customink"
| "simple-icons:cyberdefenders"
| "simple-icons:cycling74"
@@ -18510,6 +18541,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:deepgram"
| "simple-icons:deepin"
| "simple-icons:deepl"
| "simple-icons:deepmind"
| "simple-icons:deepnote"
| "simple-icons:deezer"
| "simple-icons:delicious"
@@ -18551,16 +18583,19 @@ declare module 'virtual:astro-icon' {
| "simple-icons:directus"
| "simple-icons:discogs"
| "simple-icons:discord"
| "simple-icons:discorddotjs"
| "simple-icons:discourse"
| "simple-icons:discover"
| "simple-icons:disqus"
| "simple-icons:disroot"
| "simple-icons:distrobox"
| "simple-icons:distrokid"
| "simple-icons:django"
| "simple-icons:dji"
| "simple-icons:dlib"
| "simple-icons:dlna"
| "simple-icons:dm"
| "simple-icons:dmm"
| "simple-icons:docker"
| "simple-icons:docsdotrs"
| "simple-icons:docsify"
@@ -18570,6 +18605,8 @@ declare module 'virtual:astro-icon' {
| "simple-icons:dogecoin"
| "simple-icons:doi"
| "simple-icons:dolby"
| "simple-icons:dolibarr"
| "simple-icons:dolphin"
| "simple-icons:doordash"
| "simple-icons:dota2"
| "simple-icons:dotenv"
@@ -18660,10 +18697,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:emby"
| "simple-icons:emirates"
| "simple-icons:emlakjet"
| "simple-icons:empirekred"
| "simple-icons:endeavouros"
| "simple-icons:engadget"
| "simple-icons:enpass"
| "simple-icons:ens"
| "simple-icons:ente"
| "simple-icons:enterprisedb"
| "simple-icons:envato"
| "simple-icons:envoyproxy"
@@ -18693,6 +18731,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:eventbrite"
| "simple-icons:eventstore"
| "simple-icons:evernote"
| "simple-icons:everydotorg"
| "simple-icons:excalidraw"
| "simple-icons:exercism"
| "simple-icons:exordo"
@@ -18763,6 +18802,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:fireship"
| "simple-icons:firewalla"
| "simple-icons:first"
| "simple-icons:fishaudio"
| "simple-icons:fishshell"
| "simple-icons:fitbit"
| "simple-icons:fite"
@@ -18781,6 +18821,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:flipkart"
| "simple-icons:floatplane"
| "simple-icons:flood"
| "simple-icons:floorp"
| "simple-icons:fluentbit"
| "simple-icons:fluentd"
| "simple-icons:fluke"
@@ -18792,6 +18833,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:fmod"
| "simple-icons:fnac"
| "simple-icons:folium"
| "simple-icons:folo"
| "simple-icons:fonoma"
| "simple-icons:fontawesome"
| "simple-icons:fontbase"
@@ -18801,6 +18843,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:ford"
| "simple-icons:forestry"
| "simple-icons:forgejo"
| "simple-icons:formbricks"
| "simple-icons:formik"
| "simple-icons:formspree"
| "simple-icons:formstack"
@@ -18830,7 +18873,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:freenas"
| "simple-icons:freenet"
| "simple-icons:freepik"
| "simple-icons:freetube"
| "simple-icons:fresh"
| "simple-icons:freshrss"
| "simple-icons:frigate"
| "simple-icons:fritz"
| "simple-icons:frontendmentor"
| "simple-icons:frontify"
| "simple-icons:fsecure"
@@ -18857,7 +18904,9 @@ declare module 'virtual:astro-icon' {
| "simple-icons:gameloft"
| "simple-icons:gamemaker"
| "simple-icons:gamescience"
| "simple-icons:gandi"
| "simple-icons:garmin"
| "simple-icons:garudalinux"
| "simple-icons:gatling"
| "simple-icons:gatsby"
| "simple-icons:gcore"
@@ -18880,6 +18929,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:giphy"
| "simple-icons:git"
| "simple-icons:gitbook"
| "simple-icons:gitcode"
| "simple-icons:gitconnected"
| "simple-icons:gitea"
| "simple-icons:gitee"
@@ -18939,6 +18989,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:googlecalendar"
| "simple-icons:googlecampaignmanager360"
| "simple-icons:googlecardboard"
| "simple-icons:googlecast"
| "simple-icons:googlechat"
| "simple-icons:googlechrome"
| "simple-icons:googlechronicle"
@@ -18984,10 +19035,13 @@ declare module 'virtual:astro-icon' {
| "simple-icons:googlesheets"
| "simple-icons:googleslides"
| "simple-icons:googlestreetview"
| "simple-icons:googlesummerofcode"
| "simple-icons:googletagmanager"
| "simple-icons:googletasks"
| "simple-icons:googletranslate"
| "simple-icons:googletv"
| "simple-icons:gotomeeting"
| "simple-icons:gplv3"
| "simple-icons:grab"
| "simple-icons:gradio"
| "simple-icons:gradle"
@@ -19005,6 +19059,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:greatlearning"
| "simple-icons:greenhouse"
| "simple-icons:greensock"
| "simple-icons:greptimedb"
| "simple-icons:griddotai"
| "simple-icons:gridsome"
| "simple-icons:grocy"
@@ -19012,7 +19067,9 @@ declare module 'virtual:astro-icon' {
| "simple-icons:groupon"
| "simple-icons:grubhub"
| "simple-icons:grunt"
| "simple-icons:gsap"
| "simple-icons:gsk"
| "simple-icons:gsma"
| "simple-icons:gsmarenadotcom"
| "simple-icons:gstreamer"
| "simple-icons:gtk"
@@ -19026,6 +19083,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:gurobi"
| "simple-icons:gusto"
| "simple-icons:gutenberg"
| "simple-icons:h2database"
| "simple-icons:h3"
| "simple-icons:habr"
| "simple-icons:hackaday"
@@ -19050,8 +19108,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:hasura"
| "simple-icons:hatenabookmark"
| "simple-icons:haveibeenpwned"
| "simple-icons:havells"
| "simple-icons:haxe"
| "simple-icons:haystack"
| "simple-icons:hbo"
| "simple-icons:hbomax"
| "simple-icons:hcl"
| "simple-icons:hdfcbank"
| "simple-icons:headlessui"
@@ -19060,6 +19121,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:hearth"
| "simple-icons:hearthisdotat"
| "simple-icons:hedera"
| "simple-icons:hedgedoc"
| "simple-icons:helium"
| "simple-icons:helix"
| "simple-icons:hellofresh"
@@ -19070,7 +19132,9 @@ declare module 'virtual:astro-icon' {
| "simple-icons:hepsiemlak"
| "simple-icons:here"
| "simple-icons:hermes"
| "simple-icons:heroicgameslauncher"
| "simple-icons:heroku"
| "simple-icons:heroui"
| "simple-icons:hetzner"
| "simple-icons:hevy"
| "simple-icons:hexlet"
@@ -19161,12 +19225,14 @@ declare module 'virtual:astro-icon' {
| "simple-icons:iheartradio"
| "simple-icons:ikea"
| "simple-icons:iledefrancemobilites"
| "simple-icons:ilovepdf"
| "simple-icons:imagedotsc"
| "simple-icons:imagej"
| "simple-icons:imdb"
| "simple-icons:imessage"
| "simple-icons:imgur"
| "simple-icons:immer"
| "simple-icons:immersivetranslate"
| "simple-icons:immich"
| "simple-icons:imou"
| "simple-icons:improvmx"
@@ -19177,6 +19243,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:inductiveautomation"
| "simple-icons:inertia"
| "simple-icons:infiniti"
| "simple-icons:infinityfree"
| "simple-icons:influxdb"
| "simple-icons:infomaniak"
| "simple-icons:infoq"
@@ -19187,6 +19254,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:inkdrop"
| "simple-icons:inkscape"
| "simple-icons:inoreader"
| "simple-icons:inquirer"
| "simple-icons:insomnia"
| "simple-icons:inspire"
| "simple-icons:insta360"
@@ -19209,6 +19277,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:internetexplorer"
| "simple-icons:intigriti"
| "simple-icons:intuit"
| "simple-icons:invidious"
| "simple-icons:invision"
| "simple-icons:invoiceninja"
| "simple-icons:iobroker"
@@ -19221,6 +19290,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:irobot"
| "simple-icons:isc2"
| "simple-icons:iscsquared"
| "simple-icons:isro"
| "simple-icons:issuu"
| "simple-icons:istio"
| "simple-icons:itchdotio"
@@ -19239,6 +19309,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:javascript"
| "simple-icons:jbl"
| "simple-icons:jcb"
| "simple-icons:jdoodle"
| "simple-icons:jeep"
| "simple-icons:jekyll"
| "simple-icons:jellyfin"
@@ -19302,6 +19373,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:katana"
| "simple-icons:kaufland"
| "simple-icons:kde"
| "simple-icons:kdeneon"
| "simple-icons:kdenlive"
| "simple-icons:kdeplasma"
| "simple-icons:kedro"
@@ -19310,7 +19382,9 @@ declare module 'virtual:astro-icon' {
| "simple-icons:keepassxc"
| "simple-icons:keeper"
| "simple-icons:keeweb"
| "simple-icons:kenmei"
| "simple-icons:kentico"
| "simple-icons:keploy"
| "simple-icons:keras"
| "simple-icons:keybase"
| "simple-icons:keycdn"
@@ -19354,8 +19428,10 @@ declare module 'virtual:astro-icon' {
| "simple-icons:kong"
| "simple-icons:kongregate"
| "simple-icons:konva"
| "simple-icons:koreader"
| "simple-icons:kotlin"
| "simple-icons:koyeb"
| "simple-icons:kred"
| "simple-icons:krita"
| "simple-icons:ktm"
| "simple-icons:ktor"
@@ -19370,6 +19446,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:kuula"
| "simple-icons:kx"
| "simple-icons:kyocera"
| "simple-icons:labex"
| "simple-icons:labview"
| "simple-icons:lada"
| "simple-icons:lamborghini"
@@ -19454,6 +19531,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:linuxserver"
| "simple-icons:lionair"
| "simple-icons:liquibase"
| "simple-icons:listenhub"
| "simple-icons:listmonk"
| "simple-icons:lit"
| "simple-icons:litecoin"
@@ -19461,11 +19539,14 @@ declare module 'virtual:astro-icon' {
| "simple-icons:litiengine"
| "simple-icons:livechat"
| "simple-icons:livejournal"
| "simple-icons:livekit"
| "simple-icons:livewire"
| "simple-icons:llvm"
| "simple-icons:lmms"
| "simple-icons:lobsters"
| "simple-icons:local"
| "simple-icons:localsend"
| "simple-icons:localxpose"
| "simple-icons:lodash"
| "simple-icons:logitech"
| "simple-icons:logitechg"
@@ -19482,6 +19563,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:lottiefiles"
| "simple-icons:ltspice"
| "simple-icons:lua"
| "simple-icons:luau"
| "simple-icons:lubuntu"
| "simple-icons:lucia"
| "simple-icons:lucid"
@@ -19490,6 +19572,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:lufthansa"
| "simple-icons:lumen"
| "simple-icons:lunacy"
| "simple-icons:luogu"
| "simple-icons:lutris"
| "simple-icons:lvgl"
| "simple-icons:lydia"
@@ -19497,6 +19580,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:maas"
| "simple-icons:macos"
| "simple-icons:macpaw"
| "simple-icons:macports"
| "simple-icons:macys"
| "simple-icons:magasinsu"
| "simple-icons:magento"
@@ -19519,6 +19603,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:mamp"
| "simple-icons:man"
| "simple-icons:manageiq"
| "simple-icons:mangaupdates"
| "simple-icons:manjaro"
| "simple-icons:mantine"
| "simple-icons:mapbox"
@@ -19583,6 +19668,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:metabase"
| "simple-icons:metacritic"
| "simple-icons:metafilter"
| "simple-icons:metager"
| "simple-icons:metasploit"
| "simple-icons:meteor"
| "simple-icons:metro"
@@ -19590,6 +19676,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:metrodemadrid"
| "simple-icons:metrodeparis"
| "simple-icons:mewe"
| "simple-icons:mezmo"
| "simple-icons:mg"
| "simple-icons:microbit"
| "simple-icons:microdotblog"
@@ -19620,6 +19707,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:microstrategy"
| "simple-icons:midi"
| "simple-icons:migadu"
| "simple-icons:mihon"
| "simple-icons:mihoyo"
| "simple-icons:mikrotik"
| "simple-icons:milanote"
@@ -19629,12 +19717,14 @@ declare module 'virtual:astro-icon' {
| "simple-icons:minetest"
| "simple-icons:mingww64"
| "simple-icons:mini"
| "simple-icons:minimax"
| "simple-icons:minio"
| "simple-icons:mintlify"
| "simple-icons:minutemailer"
| "simple-icons:miraheze"
| "simple-icons:miro"
| "simple-icons:misskey"
| "simple-icons:mistralai"
| "simple-icons:mitsubishi"
| "simple-icons:mix"
| "simple-icons:mixcloud"
@@ -19646,6 +19736,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:mocha"
| "simple-icons:mockserviceworker"
| "simple-icons:modal"
| "simple-icons:modelcontextprotocol"
| "simple-icons:modin"
| "simple-icons:modrinth"
| "simple-icons:modx"
@@ -19696,6 +19787,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:myanimelist"
| "simple-icons:myget"
| "simple-icons:myob"
| "simple-icons:myshows"
| "simple-icons:myspace"
| "simple-icons:mysql"
| "simple-icons:n26"
@@ -19721,6 +19813,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:near"
| "simple-icons:nebula"
| "simple-icons:nec"
| "simple-icons:nederlandsespoorwegen"
| "simple-icons:neo4j"
| "simple-icons:neovim"
| "simple-icons:neptune"
@@ -19732,6 +19825,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:neteasecloudmusic"
| "simple-icons:netflix"
| "simple-icons:netgear"
| "simple-icons:netim"
| "simple-icons:netlify"
| "simple-icons:nette"
| "simple-icons:netto"
@@ -19739,9 +19833,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:newbalance"
| "simple-icons:newegg"
| "simple-icons:newjapanprowrestling"
| "simple-icons:newpipe"
| "simple-icons:newrelic"
| "simple-icons:newyorktimes"
| "simple-icons:nexon"
| "simple-icons:nextbike"
| "simple-icons:nextbilliondotai"
| "simple-icons:nextcloud"
| "simple-icons:nextdns"
@@ -19749,7 +19845,6 @@ declare module 'virtual:astro-icon' {
| "simple-icons:nextdotjs"
| "simple-icons:nextflow"
| "simple-icons:nextra"
| "simple-icons:nextui"
| "simple-icons:nexusmods"
| "simple-icons:nfc"
| "simple-icons:nfcore"
@@ -19758,6 +19853,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:ngrok"
| "simple-icons:ngrx"
| "simple-icons:nhl"
| "simple-icons:nhost"
| "simple-icons:niantic"
| "simple-icons:nicehash"
| "simple-icons:niconico"
@@ -19772,6 +19868,8 @@ declare module 'virtual:astro-icon' {
| "simple-icons:nintendoswitch"
| "simple-icons:nissan"
| "simple-icons:nixos"
| "simple-icons:nobaralinux"
| "simple-icons:nodebb"
| "simple-icons:nodedotjs"
| "simple-icons:nodemon"
| "simple-icons:nodered"
@@ -19783,6 +19881,8 @@ declare module 'virtual:astro-icon' {
| "simple-icons:normalizedotcss"
| "simple-icons:norton"
| "simple-icons:norwegian"
| "simple-icons:note"
| "simple-icons:notebooklm"
| "simple-icons:notepadplusplus"
| "simple-icons:notion"
| "simple-icons:notist"
@@ -19834,6 +19934,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:ollama"
| "simple-icons:omadacloud"
| "simple-icons:oneplus"
| "simple-icons:onestream"
| "simple-icons:onlyfans"
| "simple-icons:onlyoffice"
| "simple-icons:onnx"
@@ -19849,6 +19950,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:openbugbounty"
| "simple-icons:opencollective"
| "simple-icons:opencontainersinitiative"
| "simple-icons:opencritic"
| "simple-icons:opencv"
| "simple-icons:openfaas"
| "simple-icons:opengl"
@@ -19886,6 +19988,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:opsgenie"
| "simple-icons:opslevel"
| "simple-icons:optimism"
| "simple-icons:optuna"
| "simple-icons:oracle"
| "simple-icons:orange"
| "simple-icons:orcid"
@@ -19897,6 +20000,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:osf"
| "simple-icons:osgeo"
| "simple-icons:oshkosh"
| "simple-icons:osmand"
| "simple-icons:osmc"
| "simple-icons:osu"
| "simple-icons:otto"
@@ -19906,6 +20010,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:ovh"
| "simple-icons:owasp"
| "simple-icons:owncloud"
| "simple-icons:oxc"
| "simple-icons:oxygen"
| "simple-icons:oyo"
| "simple-icons:p5dotjs"
@@ -19915,6 +20020,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:paddle"
| "simple-icons:paddlepaddle"
| "simple-icons:paddypower"
| "simple-icons:padlet"
| "simple-icons:pagekit"
| "simple-icons:pagerduty"
| "simple-icons:pagespeedinsights"
@@ -19937,11 +20043,13 @@ declare module 'virtual:astro-icon' {
| "simple-icons:passport"
| "simple-icons:pastebin"
| "simple-icons:patreon"
| "simple-icons:payback"
| "simple-icons:paychex"
| "simple-icons:payhip"
| "simple-icons:payloadcms"
| "simple-icons:payoneer"
| "simple-icons:paypal"
| "simple-icons:paysafe"
| "simple-icons:paytm"
| "simple-icons:pcgamingwiki"
| "simple-icons:pdm"
@@ -19994,6 +20102,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:pinescript"
| "simple-icons:pinetwork"
| "simple-icons:pingdom"
| "simple-icons:pinia"
| "simple-icons:pino"
| "simple-icons:pinterest"
| "simple-icons:pioneerdj"
@@ -20077,6 +20186,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:preact"
| "simple-icons:precommit"
| "simple-icons:prefect"
| "simple-icons:premid"
| "simple-icons:premierleague"
| "simple-icons:prepbytes"
| "simple-icons:prestashop"
@@ -20098,6 +20208,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:privateinternetaccess"
| "simple-icons:probot"
| "simple-icons:processingfoundation"
| "simple-icons:processon"
| "simple-icons:processwire"
| "simple-icons:producthunt"
| "simple-icons:progate"
@@ -20158,8 +20269,10 @@ declare module 'virtual:astro-icon' {
| "simple-icons:qlik"
| "simple-icons:qmk"
| "simple-icons:qnap"
| "simple-icons:qodo"
| "simple-icons:qq"
| "simple-icons:qt"
| "simple-icons:quad9"
| "simple-icons:qualcomm"
| "simple-icons:qualtrics"
| "simple-icons:qualys"
@@ -20187,18 +20300,22 @@ declare module 'virtual:astro-icon' {
| "simple-icons:racket"
| "simple-icons:radar"
| "simple-icons:radarr"
| "simple-icons:radiofrance"
| "simple-icons:radiopublic"
| "simple-icons:radixui"
| "simple-icons:radstudio"
| "simple-icons:railway"
| "simple-icons:rainmeter"
| "simple-icons:rainyun"
| "simple-icons:rakuten"
| "simple-icons:rakutenkobo"
| "simple-icons:ram"
| "simple-icons:rancher"
| "simple-icons:rapid"
| "simple-icons:rarible"
| "simple-icons:rasa"
| "simple-icons:raspberrypi"
| "simple-icons:ratatui"
| "simple-icons:ravelry"
| "simple-icons:ray"
| "simple-icons:raycast"
@@ -20266,6 +20383,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:retropie"
| "simple-icons:revanced"
| "simple-icons:revealdotjs"
| "simple-icons:revenuecat"
| "simple-icons:reverbnation"
| "simple-icons:revoltdotchat"
| "simple-icons:revolut"
@@ -20299,6 +20417,8 @@ declare module 'virtual:astro-icon' {
| "simple-icons:rockylinux"
| "simple-icons:roku"
| "simple-icons:roll20"
| "simple-icons:rollbar"
| "simple-icons:rolldown"
| "simple-icons:rollsroyce"
| "simple-icons:rollupdotjs"
| "simple-icons:rome"
@@ -20385,6 +20505,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:scrumalliance"
| "simple-icons:scrutinizerci"
| "simple-icons:scylladb"
| "simple-icons:seafile"
| "simple-icons:seagate"
| "simple-icons:searxng"
| "simple-icons:seat"
@@ -20410,6 +20531,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:sentry"
| "simple-icons:sepa"
| "simple-icons:sequelize"
| "simple-icons:servbay"
| "simple-icons:serverfault"
| "simple-icons:serverless"
| "simple-icons:session"
@@ -20446,6 +20568,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:simkl"
| "simple-icons:simpleanalytics"
| "simple-icons:simpleicons"
| "simple-icons:simplelocalize"
| "simple-icons:simplelogin"
| "simple-icons:simplenote"
| "simple-icons:simplex"
@@ -20456,6 +20579,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:sitepoint"
| "simple-icons:siyuan"
| "simple-icons:skaffold"
| "simple-icons:skeleton"
| "simple-icons:sketch"
| "simple-icons:sketchfab"
| "simple-icons:sketchup"
@@ -20478,6 +20602,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:smartthings"
| "simple-icons:smashdotgg"
| "simple-icons:smashingmagazine"
| "simple-icons:smoothcomp"
| "simple-icons:smrt"
| "simple-icons:smugmug"
| "simple-icons:snapchat"
@@ -20504,6 +20629,9 @@ declare module 'virtual:astro-icon' {
| "simple-icons:sonarcloud"
| "simple-icons:sonarlint"
| "simple-icons:sonarqube"
| "simple-icons:sonarqubecloud"
| "simple-icons:sonarqubeforide"
| "simple-icons:sonarqubeserver"
| "simple-icons:sonarr"
| "simple-icons:sonarsource"
| "simple-icons:sonatype"
@@ -20625,6 +20753,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:subversion"
| "simple-icons:suckless"
| "simple-icons:sui"
| "simple-icons:suitest"
| "simple-icons:sumologic"
| "simple-icons:suno"
| "simple-icons:sunrise"
@@ -20649,6 +20778,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:swift"
| "simple-icons:swiggy"
| "simple-icons:swiper"
| "simple-icons:swisscows"
| "simple-icons:swr"
| "simple-icons:symantec"
| "simple-icons:symbolab"
@@ -20698,6 +20828,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:telefonica"
| "simple-icons:telegram"
| "simple-icons:telegraph"
| "simple-icons:telenor"
| "simple-icons:telequebec"
| "simple-icons:temporal"
| "simple-icons:tensorflow"
@@ -20727,9 +20858,11 @@ declare module 'virtual:astro-icon' {
| "simple-icons:themoviedatabase"
| "simple-icons:thenorthface"
| "simple-icons:theodinproject"
| "simple-icons:theplanetarysociety"
| "simple-icons:theregister"
| "simple-icons:thesoundsresource"
| "simple-icons:thespritersresource"
| "simple-icons:thestorygraph"
| "simple-icons:thewashingtonpost"
| "simple-icons:theweatherchannel"
| "simple-icons:thingiverse"
@@ -20768,6 +20901,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:todoist"
| "simple-icons:toggl"
| "simple-icons:toggltrack"
| "simple-icons:tokio"
| "simple-icons:tokyometro"
| "simple-icons:toll"
| "simple-icons:toml"
@@ -20802,6 +20936,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:treehouse"
| "simple-icons:trello"
| "simple-icons:trendmicro"
| "simple-icons:tresorit"
| "simple-icons:treyarch"
| "simple-icons:tricentis"
| "simple-icons:trilium"
@@ -20834,8 +20969,10 @@ declare module 'virtual:astro-icon' {
| "simple-icons:turso"
| "simple-icons:tuta"
| "simple-icons:tutanota"
| "simple-icons:tuxedocomputers"
| "simple-icons:tv4play"
| "simple-icons:tvtime"
| "simple-icons:twenty"
| "simple-icons:twilio"
| "simple-icons:twinkly"
| "simple-icons:twinmotion"
@@ -20887,6 +21024,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:unraid"
| "simple-icons:unrealengine"
| "simple-icons:unsplash"
| "simple-icons:unstop"
| "simple-icons:untangle"
| "simple-icons:untappd"
| "simple-icons:upcloud"
@@ -20899,6 +21037,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:uptimekuma"
| "simple-icons:uptobox"
| "simple-icons:upwork"
| "simple-icons:uservoice"
| "simple-icons:usps"
| "simple-icons:utorrent"
| "simple-icons:uv"
@@ -20911,6 +21050,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:vala"
| "simple-icons:valorant"
| "simple-icons:valve"
| "simple-icons:vanillaextract"
| "simple-icons:vapor"
| "simple-icons:vault"
| "simple-icons:vaultwarden"
@@ -20942,6 +21082,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:viblo"
| "simple-icons:victoriametrics"
| "simple-icons:victronenergy"
| "simple-icons:vikunja"
| "simple-icons:vim"
| "simple-icons:vimeo"
| "simple-icons:vimeolivestream"
@@ -20953,6 +21094,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:virustotal"
| "simple-icons:visa"
| "simple-icons:visualbasic"
| "simple-icons:visualparadigm"
| "simple-icons:visualstudio"
| "simple-icons:visualstudioappcenter"
| "simple-icons:visualstudiocode"
@@ -20970,6 +21112,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:vlcmediaplayer"
| "simple-icons:vmware"
| "simple-icons:vodafone"
| "simple-icons:voelkner"
| "simple-icons:voidlinux"
| "simple-icons:voipdotms"
| "simple-icons:volkswagen"
@@ -20984,6 +21127,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:vtex"
| "simple-icons:vuedotjs"
| "simple-icons:vuetify"
| "simple-icons:vueuse"
| "simple-icons:vulkan"
| "simple-icons:vultr"
| "simple-icons:vyond"
@@ -21038,11 +21182,13 @@ declare module 'virtual:astro-icon' {
| "simple-icons:wellfound"
| "simple-icons:wellsfargo"
| "simple-icons:wemo"
| "simple-icons:weread"
| "simple-icons:westerndigital"
| "simple-icons:westernunion"
| "simple-icons:wetransfer"
| "simple-icons:wezterm"
| "simple-icons:wgpu"
| "simple-icons:what3words"
| "simple-icons:whatsapp"
| "simple-icons:wheniwork"
| "simple-icons:whitesource"
@@ -21056,6 +21202,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:wikimediafoundation"
| "simple-icons:wikipedia"
| "simple-icons:wikiquote"
| "simple-icons:wikisource"
| "simple-icons:wikiversity"
| "simple-icons:wikivoyage"
| "simple-icons:winamp"
@@ -21065,6 +21212,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:windows95"
| "simple-icons:windowsterminal"
| "simple-icons:windowsxp"
| "simple-icons:windsurf"
| "simple-icons:wine"
| "simple-icons:winmate"
| "simple-icons:wipro"
@@ -21118,6 +21266,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:xstate"
| "simple-icons:xubuntu"
| "simple-icons:xyflow"
| "simple-icons:yaak"
| "simple-icons:yabai"
| "simple-icons:yahoo"
| "simple-icons:yale"
@@ -21160,6 +21309,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:zebratechnologies"
| "simple-icons:zedindustries"
| "simple-icons:zelle"
| "simple-icons:zenbrowser"
| "simple-icons:zend"
| "simple-icons:zendesk"
| "simple-icons:zendframework"
@@ -21183,6 +21333,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:zod"
| "simple-icons:zoho"
| "simple-icons:zoiper"
| "simple-icons:zola"
| "simple-icons:zomato"
| "simple-icons:zoom"
| "simple-icons:zorin"
@@ -21193,7 +21344,10 @@ declare module 'virtual:astro-icon' {
| "simple-icons:zyte"
| "simple-icons:airbrakedotio"
| "simple-icons:amazonaws"
| "simple-icons:chromecast"
| "simple-icons:d3dotjs"
| "simple-icons:empirekred"
| "simple-icons:nextui"
| "simple-icons:nuxtdotjs"
| "simple-icons:renovatebot"
| "simple-icons:rstudio"
@@ -21201,5 +21355,7 @@ declare module 'virtual:astro-icon' {
| "simple-icons:tmobile"
| "simple-icons:windows11"
| "double-arrow-slider"
| "linux";
| "fabric"
| "linux"
| "neoforge";
}

View File

@@ -4,14 +4,27 @@ import tailwind from '@astrojs/tailwind';
import icon from "astro-icon";
import alpinejs from "@astrojs/alpinejs";
import rehypeCitation from 'rehype-citation';
// https://astro.build/config
export default defineConfig({
site: 'https://www.midnightdust.eu',
compressHTML: true,
integrations: [mdx(), icon(), tailwind({
integrations: [
mdx(
{rehypePlugins: [[rehypeCitation, {
bibliography: "https://raw.githubusercontent.com/timlrx/rehype-citation/main/test/references-data.bib",
linkCitations: true,
showTooltips: true,
inlineClass: ["citation"],
csl: "https://raw.githubusercontent.com/citation-style-language/styles/master/acm-sig-proceedings.csl"
}]]}
),
icon(),
tailwind({
applyBaseStyles: false
}), alpinejs()],
}
), alpinejs()],
vite: {
css: {
preprocessorOptions: {

4172
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,7 @@
"preview": "astro preview"
},
"devDependencies": {
"@astrojs/mdx": "^4.2.2",
"@astrojs/mdx": "^4.3.12",
"@astrojs/partytown": "^2.1.4",
"@astrojs/tailwind": "^6.0.2",
"@iconify-json/ion": "^1.2.2",
@@ -21,7 +21,7 @@
"@typescript-eslint/eslint-plugin": "^8.28.0",
"@typescript-eslint/parser": "^8.28.0",
"accessible-astro-components": "^2.4.0",
"astro": "^5.5.5",
"astro": "^5.16.0",
"astro-compress": "^2.3.6",
"astro-icon": "^1.1.5",
"eslint": "^9.23.0",
@@ -35,9 +35,10 @@
"tailwindcss": "^3.4.17"
},
"dependencies": {
"@astrojs/alpinejs": "^0.4.4",
"@astrojs/alpinejs": "^0.4.9",
"@types/alpinejs": "^3.13.11",
"alpinejs": "^3.14.9",
"rehype-citation": "^2.3.1",
"vanilla-tilt": "^1.8.1"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 708 KiB

After

Width:  |  Height:  |  Size: 621 KiB

View File

@@ -6,7 +6,10 @@
@font-face {
font-family: 'Open Sans';
src: local('Open Sans ExtraBold'), local('OpenSans-ExtraBold'), url('/fonts/OpenSans-ExtraBold.woff2') format('woff2'),
src:
local('Open Sans ExtraBold'),
local('OpenSans-ExtraBold'),
url('/fonts/OpenSans-ExtraBold.woff2') format('woff2'),
url('/fonts/OpenSans-ExtraBold.woff') format('woff');
font-weight: bold;
font-style: normal;
@@ -15,7 +18,10 @@
@font-face {
font-family: 'Open Sans';
src: local('Open Sans Bold'), local('OpenSans-Bold'), url('/fonts/OpenSans-Bold.woff2') format('woff2'),
src:
local('Open Sans Bold'),
local('OpenSans-Bold'),
url('/fonts/OpenSans-Bold.woff2') format('woff2'),
url('/fonts/OpenSans-Bold.woff') format('woff');
font-weight: bold;
font-style: normal;
@@ -24,7 +30,10 @@
@font-face {
font-family: 'Open Sans';
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('/fonts/OpenSans-Italic.woff2') format('woff2'),
src:
local('Open Sans Italic'),
local('OpenSans-Italic'),
url('/fonts/OpenSans-Italic.woff2') format('woff2'),
url('/fonts/OpenSans-Italic.woff') format('woff');
font-weight: normal;
font-style: italic;
@@ -33,7 +42,10 @@
@font-face {
font-family: 'Open Sans';
src: local('Open Sans Regular'), local('OpenSans-Regular'), url('/fonts/OpenSans-Regular.woff2') format('woff2'),
src:
local('Open Sans Regular'),
local('OpenSans-Regular'),
url('/fonts/OpenSans-Regular.woff2') format('woff2'),
url('/fonts/OpenSans-Regular.woff') format('woff');
font-weight: normal;
font-style: normal;
@@ -88,11 +100,11 @@ body {
}
h1 {
font-size: 2.25rem;
font-size: 3rem;
line-height: 3.375rem;
@include breakpoint(medium) {
font-size: 3rem;
font-size: 4rem;
line-height: 3.625rem;
}
}

View File

@@ -1,20 +1,54 @@
---
const { text, url_gh, url_mr, url_cf, url_wiki = "", mod = "default" } = Astro.props
const { text, url_gh, url_mr, url_cf, url_wiki = '', mod = 'default', icon = '' } = Astro.props
import { Icon } from 'astro-icon/components'
---
<div class="container rellax" data-rellax-speed="-1.5">
<div class={"call-to-action mt-24 mb-32 flex flex-col items-center gap-12 rounded-xl p-12 md:p-24 " + mod}>
<h2 class="text-center text-3xl md:text-5xl">{text}</h2>
<div class="rellax container" data-rellax-speed="-1.5">
<div class={'call-to-action mt-24 mb-32 flex flex-col items-center gap-12 rounded-xl p-12 md:p-24 ' + mod}>
<h2 class="text-center text-3xl md:text-5xl">
{icon != '' ? <Icon class='inline pr-2 align-bottom' name={icon} /> : ''}{text}
</h2>
<div class="flex flex-col gap-3 min-[800px]:flex-row">
{(url_mr != '') ? <a href={url_mr} class={"button has-icon text-lg " + mod+"-button-primary"}>
<Icon name="simple-icons:modrinth" />Modrinth</a> : ''}
{(url_cf != '') ? <a href={url_cf} class={"button has-icon text-lg " + mod+"-button-primary"}>
<Icon name="simple-icons:curseforge" />CurseForge</a> : ''}
{(url_gh != '') ? <a href={url_gh} class={"button has-icon text-lg " + mod+"-button-primary"}>
<Icon name="simple-icons:github" />GitHub</a> : ''}
{(url_wiki != '') ? <a href={url_wiki} class={"button has-icon color-secondary text-lg " + mod+"-button-secondary"}>
<Icon name="ion:library" />Visit the new Wiki!</a> : ''}
{
url_mr != '' ? (
<a href={url_mr} class={'button has-icon text-lg ' + mod + '-button-primary'}>
<Icon name="simple-icons:modrinth" />
Modrinth
</a>
) : (
''
)
}
{
url_cf != '' ? (
<a href={url_cf} class={'button has-icon text-lg ' + mod + '-button-primary'}>
<Icon name="simple-icons:curseforge" />
CurseForge
</a>
) : (
''
)
}
{
url_gh != '' ? (
<a href={url_gh} class={'button has-icon text-lg ' + mod + '-button-primary'}>
<Icon name="simple-icons:github" />
GitHub
</a>
) : (
''
)
}
{
url_wiki != '' ? (
<a href={url_wiki} class={'button has-icon color-secondary text-lg ' + mod + '-button-secondary'}>
<Icon name="ion:library" />
Visit the new Wiki!
</a>
) : (
''
)
}
</div>
</div>
</div>
@@ -26,7 +60,7 @@ import { Icon } from 'astro-icon/components'
}
.midnightcontrols {
color: var(--neutral-100);
background-image: linear-gradient(40deg, #E302A4, #9400C6);
background-image: linear-gradient(40deg, #e302a4, #9400c6);
}
.midnightcontrols-button-primary {
background-color: #ff6fff;
@@ -45,7 +79,9 @@ import { Icon } from 'astro-icon/components'
border: 3px solid var(--neutral-900);
border-radius: 3px;
text-decoration: none;
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
transition:
color 0.15s ease-in-out,
background-color 0.15s ease-in-out;
&:where(:hover, :focus) {
color: var(--neutral-100);
@@ -53,4 +89,14 @@ import { Icon } from 'astro-icon/components'
text-decoration: underline;
}
}
.neoforge {
color: var(--neutral-100);
background-image: linear-gradient(40deg, #d7742f, #ee5577);
}
.neoforge-button-primary {
background-color: #ee5577;
}
.neoforge-button-secondary {
background-color: #d7742f;
}
</style>

View File

@@ -38,21 +38,32 @@ import { Icon } from 'astro-icon/components'
class CustomTabs extends HTMLElement {
connectedCallback() {
const buttons = this.querySelectorAll('button.tab');
const targets = document.querySelectorAll('[data-tab-condition]')
buttons.forEach((button) => {
button.addEventListener('click', () => {
buttons.forEach((but) => {
but?.classList.remove('color-secondary');
const div = document.getElementById(but.id.replace('-tab', ''));
div?.classList.add('hidden');
but.setAttribute('data-active', 'false');
})
const tabDiv = document.getElementById(button.id.replace('-tab', ''));
button?.classList.add('color-secondary');
tabDiv?.classList.remove('hidden');
button.setAttribute('data-active', 'true');
this.updateTargets(targets)
});
});
this.updateTargets(targets)
}
updateTargets(targets: NodeListOf<Element>) {
targets.forEach((target) => {
const tabCondition = target.getAttribute('data-tab-condition');
const tabDiv = document.getElementById(tabCondition+'-tab');
if (tabDiv == null || !tabDiv.hasAttribute('data-active') || tabDiv.getAttribute('data-active') == 'false')
target.classList.add('hidden');
else
target.classList.remove('hidden');
})
}
}

View File

@@ -6,7 +6,7 @@ const { modid } = Astro.props
---
<gradle-version modid={modid}>
<div class="wrapper">
<div>
<label for="loader-selector" class="sr-only">Select the Modloader</label>
<select
name="loader-selector"
@@ -82,7 +82,29 @@ class VersionInfo {
}
return map;
}, {});
let versionList = Object.keys(versionMap).sort().reverse();
// Based on: https://medium.com/geekculture/sorting-an-array-of-semantic-versions-in-typescript-55d65d411df2
const compareSemanticVersions = (a: string, b: string) => {
// 1. Split the strings into their parts.
const a1 = a.split('.');
const b1 = b.split('.');
// 2. Contingency in case there's a 4th or 5th version
const len = Math.min(a1.length, b1.length);
// 3. Look through each version number and compare.
for (let i = 0; i < len; i++) {
const a2 = +a1[i]||0;
const b2 = +b1[i]||0;
if (a2 !== b2) {
return a2 < b2 ? 1 : -1;
}
}
// 4. We hit this if the all checked versions so far are equal
return b1.length - a1.length;
};
let versionList = Object.keys(versionMap).sort(compareSemanticVersions);
versionList = versionList.filter((version) => !version.includes("w") // Sorts out snapshots
&& (!version.includes("-") || !versionList.includes(version.split("-")[0]) // Sorts out pre-releases/release candidates for releases that are already out
));

View File

@@ -23,6 +23,9 @@ import { Icon } from 'astro-icon/components'
<li class="submenu-item">
<a href="/midnightcontrols/">MidnightControls</a>
</li>
<li class="submenu-item">
<a href="/thisrocks/">This Rocks!</a>
</li>
</ul>
</li>
<li class="menu-item has-dropdown">

4
src/icons/fabric.svg Normal file
View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" clip-rule="evenodd" viewBox="0 0 24 24">
<path fill="none" d="M0 0h24v24H0z"></path>
<path fill="none" stroke="currentColor" stroke-width="23" d="m820 761-85.6-87.6c-4.6-4.7-10.4-9.6-25.9 1-19.9 13.6-8.4 21.9-5.2 25.4 8.2 9 84.1 89 97.2 104 2.5 2.8-20.3-22.5-6.5-39.7 5.4-7 18-12 26-3 6.5 7.3 10.7 18-3.4 29.7-24.7 20.4-102 82.4-127 103-12.5 10.3-28.5 2.3-35.8-6-7.5-8.9-30.6-34.6-51.3-58.2-5.5-6.3-4.1-19.6 2.3-25 35-30.3 91.9-73.8 111.9-90.8" transform="matrix(.08671 0 0 .0867 -49.8 -56)"></path>
</svg>

After

Width:  |  Height:  |  Size: 639 B

3
src/icons/neoforge.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg enable-background="new 0 0 24 24" version="1.1" viewBox="0 0 24 24" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m12 19.2v2m0-2v2"></path><path d="m8.4 1.3c0.5 1.5 0.7 3 0.1 4.6-0.2 0.5-0.9 1.5-1.6 1.5m8.7-6.1c-0.5 1.5-0.7 3-0.1 4.6 0.2 0.6 0.9 1.5 1.6 1.5"></path><path d="m3.6 15.8h-1.7m18.5 0h1.7"></path><path d="m3.2 12.1h-1.7m19.3 0h1.8"></path><path d="m8.1 12.7v1.6m7.8-1.6v1.6"></path><path d="m10.8 18h1.2m0 1.2-1.2-1.2m2.4 0h-1.2m0 1.2 1.2-1.2"></path><path d="m4 9.7c-0.5 1.2-0.8 2.4-0.8 3.7 0 3.1 2.9 6.3 5.3 8.2 0.9 0.7 2.2 1.1 3.4 1.1m0.1-17.8c-1.1 0-2.1 0.2-3.2 0.7m11.2 4.1c0.5 1.2 0.8 2.4 0.8 3.7 0 3.1-2.9 6.3-5.3 8.2-0.9 0.7-2.2 1.1-3.4 1.1m-0.1-17.8c1.1 0 2.1 0.2 3.2 0.7"></path><path d="m4 9.7c-0.2-1.8-0.3-3.7 0.5-5.5s2.2-2.6 3.9-3m11.6 8.5c0.2-1.9 0.3-3.7-0.5-5.5s-2.2-2.6-3.9-3"></path><path d="m12 21.2-2.4 0.4m2.4-0.4 2.4 0.4"></path></g>
</svg>

After

Width:  |  Height:  |  Size: 1001 B

View File

@@ -106,6 +106,26 @@ const {
}
}
}
.citation {
font-size: 90%;
line-height: 90%;
font-style: italic;
padding-left: 0.2rem;
a, a:not(.button):visited {
color: var(--font-color);
}
}
.references {
&:before {
content: "Sources:";
font-size: 120%;
color: var(--primary-200);
text-decoration: underline;
}
border: 2px var(--primary-200) dotted;
border-radius: 0.75rem;
padding: 0.6rem;
}
</style>
</body>
</html>

View File

@@ -6,7 +6,7 @@ import blogPosts from '../../../public/blog/blog-posts.json'
export async function getStaticPaths({ paginate }) {
//const response = await fetch('https://jsonplaceholder.typicode.com/posts')
//const data = await response.json()
const data = blogPosts;
const data = blogPosts
return paginate(data, { pageSize: 6 })
}
@@ -14,31 +14,21 @@ export async function getStaticPaths({ paginate }) {
const { page } = Astro.props
---
<DefaultLayout
title="Blog"
description="Just my personal blog, where I write about cool projects and endeavours."
>
<DefaultLayout title="Blog" description="Just my personal blog, where I write about cool projects and endeavours.">
<section class="my-12">
<div class="space-content container">
<h1>Blog</h1>
<p class="text-2xl">
Just my personal blog, where I write about cool projects and endeavours.
</p>
<p class="text-2xl">Just my personal blog, where I write about cool projects and endeavours.</p>
</div>
</section>
<section class="my-12">
<div class="container">
<p class="text-sm"><em>Post {page.start + 1} through {page.end + 1} of {page.total} total posts</em></p>
<p class="text-sm"><em>Posts {page.start + 1}-{page.end + 1} of {page.total} total posts</em></p>
<ul class="my-3">
{
page.data.map((post) => (
<li>
<Card
url={'/blog/' + post.postId}
title={post.title}
footer={'Published: ' + post.date}
img={post.img}
>
<Card url={'/blog/' + post.postId} title={post.title} footer={'Published: ' + post.date} img={post.img}>
{post.body}
</Card>
</li>
@@ -59,7 +49,7 @@ const { page } = Astro.props
</section>
</DefaultLayout>
<style lang="scss">
<style lang="scss" is:global>
ul {
display: grid;
grid-template-columns: 1fr;
@@ -74,4 +64,73 @@ const { page } = Astro.props
grid-template-columns: repeat(3, 1fr);
}
}
.pagination a,
.pagination .disabled {
border-radius: 0.75rem;
}
.pagination li:nth-child(1) span, .pagination li:nth-child(5) span {
border-style: dotted;
}
.pagination li:nth-child(2) span, .pagination li:nth-child(4) span {
border-style: dashed;
}
.card {
transition: inset 0.15s ease-in-out;
overflow: visible;
position: relative;
width: calc(100% - 0.5rem);
padding: 2rem;
> * {
position: relative;
z-index: 2;
}
&::before,
&::after {
content: '';
position: absolute;
}
&::before {
inset: 0;
background-color: var(--background);
border: 3px solid var(--neutral-700);
border-radius: 1rem;
box-shadow: 0 0 0 6px var(--background);
z-index: 1;
}
&::after {
background-color: var(--action-color);
inset: 1rem -0.85rem -0.85rem 1rem;
border-radius: 1rem;
z-index: 0;
}
&, &::after {
transition: background-color 0.15s linear;
}
&:hover,
&:focus-within {
box-shadow: 0 0 0 0rem var(--action-color);
a:not(.button) {
color: var(--primary-100);
}
&::after {
background-color: var(--primary-100);
}
}
}
:global(.card [data-icon]) {
height: auto;
width: 4rem;
color: var(--action-color);
}
:global(.darkmode .card::before) {
background-color: var(--dark-100);
box-shadow: 0 0 0 6px var(--dark-100);
}
</style>

12
src/pages/blog/test.mdx Normal file
View File

@@ -0,0 +1,12 @@
---
layout: ../../layouts/BlogLayout.astro
title: Citation test
author: Martin Prokoph
date: 30th November 2024
---
### This is a test for citations
Hello world [see @Nash1950 pp 12-13; @Nash1951]
Thanks for reading!
~ Motschen

View File

@@ -10,9 +10,9 @@ import Counter from '../components/Counter.astro'
<div class="container">
<h2 class="mb-16 text-6xl">Statistics</h2>
<div class="grid grid-cols-1 gap-12 sm:grid-cols-2 md:grid-cols-3">
<Counter icon="ion:star" count="570+" title="Stars in Total" sub="On GitHub" />
<Counter icon="ion:download" count="100+ Million" title="Total Downloads" sub="Modrinth & CurseForge" />
<Counter icon="ion:code-slash" count="5+" title="Years" sub="Development experience" />
<Counter icon="ion:star" count="600+" title="Stars in Total" sub="On GitHub" />
<Counter icon="ion:download" count="180+ Million" title="Total Downloads" sub="Modrinth & CurseForge" />
<Counter icon="ion:code-slash" count="7+" title="Years" sub="Development experience" />
</div>
</div>
</section>

View File

@@ -6,28 +6,33 @@ import ContentMedia from '../components/ContentMedia.astro'
---
<DefaultLayout title="MidnightControls">
<h2 class="my-8 text-6xl text-center">MidnightControls</h2>
<h1 class="my-8 text-center">MidnightControls</h1>
<ContentMedia imgSrc="/midnightcontrols/feature-touchscreen.webp">
<h2>Play Minecraft whichever way <span class="bg-clip-text text-transparent bg-gradient-to-r from-pink-500 to-violet-500">you</span> want!</h2>
<h2>
Play Minecraft whichever way <span
class="bg-gradient-to-r from-pink-500 to-violet-500 bg-clip-text text-transparent">you</span
> want!
</h2>
<p class="text-2xl">
MidnightControls allows the use of controllers, touchscreens and even eye trackers!<br>
MidnightControls allows the use of controllers, touchscreens and even eye trackers!<br />
Minecraft Java was never more accessible.
</p>
</ContentMedia>
<ContentMedia imgSrc="/midnightcontrols/automobility.png" reverseImg={true}>
<h2>Broad mod compatibility</h2>
<p class="text-2xl">
Many Fabric and Quilt mods are compatible with MidnightControls right out of the box.<br>
The mod also exposes an API, allowing developers to easily add controller support to complex mods.<br>
Many Fabric and Quilt mods are compatible with MidnightControls right out of the box.<br />
The mod also exposes an API, allowing developers to easily add controller support to complex mods.<br />
<p>Shown here is <a href="https://modrinth.com/mod/automobility">Automobility</a>, go check it out!</p>
</p>
</ContentMedia>
<section>
<div class="container">
<h2 class="mb-16 text-6xl">Features</h2>
<h1 class="mb-16">Features</h1>
<div class="grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3">
<Feature icon="ion:game-controller-outline" title="Controller Support">
Use your favorite controller to play your favorite game.<br>Many controllers are supported without any configuration!
Use your favorite controller to play your favorite game.<br />Many controllers are supported without any
configuration!
</Feature>
<Feature icon="ion:finger-print-outline" title="Touchscreen Support">
You only have a touchscreen? No problem! The only thing missing is multitouch support.
@@ -36,10 +41,12 @@ import ContentMedia from '../components/ContentMedia.astro'
Eye Trackers are a great way for people with disabilities to still be able to enjoy this great game!
</Feature>
<Feature icon="ion:options-outline" title="Configurable">
The MidnightLib-powered config is full of exciting features.<br>Use the advanced config screen for even more of them!
The MidnightLib-powered config is full of exciting features.<br />Use the advanced config screen for even more
of them!
</Feature>
<Feature icon="ion:people-outline" title="Splitscreen">
Invite your homies and loved ones for a local splitscreen Minecraft session! Consult the wiki for setup instructions.
Invite your homies and loved ones for a local splitscreen Minecraft session! Consult the wiki for setup
instructions.
</Feature>
<Feature icon="ion:happy-outline" title="Great Community">
MidnightControls has an amazing community that is always willing to help with any trouble!
@@ -47,7 +54,8 @@ import ContentMedia from '../components/ContentMedia.astro'
</div>
</div>
</section>
<CallToAction text="Start using MidnightControls right now!"
<CallToAction
text="Start using MidnightControls right now!"
url_gh="https://github.com/TeamMidnightDust/MidnightControls"
url_mr="https://modrinth.com/mod/midnightcontrols"
url_cf="https://www.curseforge.com/minecraft/mc-mods/midnightcontrols"
@@ -56,11 +64,16 @@ import ContentMedia from '../components/ContentMedia.astro'
/>
<section>
<div class="container">
<h2 class="my-32 text-6xl text-center">MidnightControlsExtra</h2>
<h1 class="my-32 text-center">MidnightControlsExtra</h1>
<ContentMedia imgSrc="/midnightcontrols/front-block-placing.webp">
<h2>You want even <span class="bg-clip-text text-transparent bg-gradient-to-r from-green-500 to-cyan-500">more</span>?</h2>
<h2>
You want even <span class="bg-gradient-to-r from-green-500 to-cyan-500 bg-clip-text text-transparent"
>more</span
>?
</h2>
<p class="text-2xl">
We got you!<br/> <br/>
We got you!<br />
<br />
MidnightControlsExtra provides useful features that might trigger anticheats.<br />
Front block placing, anyone?
</p>
@@ -78,7 +91,8 @@ import ContentMedia from '../components/ContentMedia.astro'
</div>
</div>
</section>
<CallToAction text="Download MidnightControlsExtra!"
<CallToAction
text="Download MidnightControlsExtra!"
url_gh="https://github.com/TeamMidnightDust/MidnightControlsExtra"
url_mr="https://modrinth.com/mod/midnightcontrols-extra"
url_cf="https://www.curseforge.com/minecraft/mc-mods/midnightcontrolsextra"

View File

@@ -6,29 +6,32 @@ import ContentMedia from '../components/ContentMedia.astro'
---
<DefaultLayout title="MidnightLib">
<h2 class="my-8 text-6xl text-center">MidnightLib</h2>
<h1 class="my-8 text-center">MidnightLib</h1>
<ContentMedia imgSrc="/midnightlib/midnightlib-example-code.webp">
<h2>Implement configurations easier than ever before!</h2>
<p class="text-2xl">
Just create Java fields, annotate them with <span class="bg-clip-text text-transparent bg-gradient-to-r from-yellow-500 to-orange-500 font-mono">@Entry</span>,
maybe add some more additional options, and boom! <br>
This example can be found <a href="https://github.com/TeamMidnightDust/MidnightLib/blob/architectury/MidnightConfigExample.java"
>here</a>, and helps you get started (almost) faster than speed of light!
Just create Java fields, annotate them with <span
class="bg-gradient-to-r from-yellow-500 to-orange-500 bg-clip-text font-mono text-transparent">@Entry</span
>, maybe add some more additional options, and boom! <br />
This example can be found <a
href="https://github.com/TeamMidnightDust/MidnightLib/blob/architectury/MidnightConfigExample.java">here</a
>, and helps you get started (almost) faster than speed of light!
</p>
</ContentMedia>
<ContentMedia imgSrc="/midnightlib/midnightlib-example.png" reverseImg={true}>
<h2>User-friendly config screens</h2>
<p class="text-2xl">
Configuration screens are automatically created from config classes.<br>
Configuration screens are automatically created from config classes.<br />
Here's one generated from a class similar to the one from above!
</p>
</ContentMedia>
<section>
<div class="container">
<h2 class="mb-16 text-6xl">Features</h2>
<h1 class="mb-16">Features</h1>
<div class="grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3">
<Feature icon="ion:leaf-outline" title="Lightweight">
Size of the .jar is currently just 50KB.<br>Everything essential for the config (including GUI) is only 30KB!
Size of the .jar is currently just 50KB.<br />Everything essential for the config (including GUI) is only
30KB!
</Feature>
<Feature icon="ion:cafe-outline" title="JiJ-able">
Bundle MidnightLib with your mod with ease. Gone are the days of installing dependencies manually!
@@ -48,7 +51,8 @@ import ContentMedia from '../components/ContentMedia.astro'
</div>
</div>
</section>
<CallToAction text="Start using MidnightLib right now!"
<CallToAction
text="Start using MidnightLib right now!"
url_gh="https://github.com/TeamMidnightDust/MidnightLib"
url_mr="https://modrinth.com/mod/midnightlib"
url_cf="https://www.curseforge.com/minecraft/mc-mods/midnightlib"

56
src/pages/thisrocks.astro Normal file
View File

@@ -0,0 +1,56 @@
---
import DefaultLayout from '../layouts/DefaultLayout.astro'
import BlurryDivider from '../components/BlurryDivider.astro'
import CallToAction from '../components/CallToAction.astro'
import ContentMedia from '../components/ContentMedia.astro'
---
<DefaultLayout title="This Rocks!">
<h1 class="my-8 text-center">This Rocks!</h1>
<ContentMedia imgSrc="/thisrocks/thisrocks_plains.png">
<h2>
Enhance your world generation with <span
class="bg-gradient-to-r from-green-500 to-yellow-500 bg-clip-text text-transparent">detailed</span
> natural blocks.
</h2>
<p class="text-2xl">
Are you bored of staring at endless empty plains and beaches?<br />
This Rocks is on its way to rescue you!
</p>
</ContentMedia>
<ContentMedia imgSrc="/thisrocks/thisrocks_sea.png" reverseImg={true}>
<h2>
Enjoy nature on <span class="bg-gradient-to-r from-purple-500 to-orange-500 bg-clip-text text-transparent"
>vanilla</span
>
clients!
</h2>
<p class="text-2xl">
Thanks to the Polymer library, newer versions of the mod allow anyone to join the server and enjoy the pretty
decorations.<br />
No client mods required!<br />
<p>
Only available in the Fabric version. Find more serverside mods <a href="https://modrinth.com/mods?q=polymer"
>here</a
>
.
</p>
</p>
</ContentMedia>
<BlurryDivider />
<CallToAction
text="Start using This Rocks on Fabric right now!"
icon="fabric"
url_gh="https://github.com/TeamMidnightDust/ThisRocks"
url_mr="https://modrinth.com/mod/this-rocks"
url_cf="https://www.curseforge.com/minecraft/mc-mods/this-rocks"
/>
<CallToAction
text="Are you on (Neo-)Forge? Here you go!"
icon="neoforge"
url_gh="https://github.com/Mrbysco/ThisRocksForge"
url_mr="https://modrinth.com/mod/this-rocks-forge"
url_cf="https://www.curseforge.com/minecraft/mc-mods/this-rocks-forge"
mod="neoforge"
/>
</DefaultLayout>

View File

@@ -9,6 +9,7 @@ import { Icon } from 'astro-icon/components'
import { Notification } from 'accessible-astro-components'
import CustomTabs from "../../components/CustomTabs.astro"
import Difficulty from "../../components/Difficulty.astro"
import BlurryDivider from "../../components/BlurryDivider.astro"
import pythonCodeImage from '../../assets/betterleaves/script.png';
import ingameImage from '../../assets/betterleaves/ingame.png';
@@ -64,7 +65,7 @@ You can get it on any modern operating system.
icon: 'simple-icons:apple',
id: 'macos'
}]}>
<div id="windows" data-active="true">
<div data-tab-condition="windows">
Download the latest stable Python 3 release from the official <a href="https://www.python.org/downloads/windows/">website</a><br/>
or using winget in PowerShell:
<br/>
@@ -72,7 +73,7 @@ You can get it on any modern operating system.
winget install -e --id Python.Python.3.13.1
```
</div>
<div id="linux" class="hidden">
<div data-tab-condition="linux" class="hidden">
On most systems, Python should already be installed by default.<br/>
Else, just install Python using your distro's package manager.
<br/>
@@ -81,7 +82,7 @@ You can get it on any modern operating system.
pacman -S python
```
</div>
<div id="macos" class="hidden">
<div data-tab-condition="macos" class="hidden">
In case you haven't already, install Homebrew according to the <a href="https://brew.sh/">official instructions</a>.<br/>
Now, you can just install python using the following command:
<br/>
@@ -133,6 +134,71 @@ In these cases, you unfortunately have to manually configure exceptions in the /
"dynamicTreesNamespaces": {
"minecraft": "dynamictrees",
"aether": "dtaether"
},
// Force-generate (non-bushy) item models for various blocks
"generateItemModels": [
"biomesoplenty:rainbow_birch_leaves",
"betterend:lacugrove_leaves"
],
// Specify blocks that share the same models
"blockStateCopies": {
"minecraft:oak_leaves": [
"twilightforest:twilight_oak_leaves",
"dynamictrees:oak_undergrowth_leaves"
]
},
// A list of textures that will not be treated as leaf blocks (useful for texture stitching)
"compileOnly": [
"minecraft:block/snow"
]
}
```
<BlurryDivider />
## The .betterleaves.json format
### Block States <Difficulty difficulty="advanced" />
Sometimes, you want models to only apply to specific block states.
This is also useful in cases where you want to combine multiple leaf variant textures into a single blockstate file (in that case, set state to "").
`input/assets/eternal_starlight/northland_leaves.betterleaves.json`:
```json
{
"blockStateData": {
"block": "eternal_starlight:northland_leaves",
"state": "snowy=false"
}
}
```
### Sprite Overrides <Difficulty difficulty="advanced" />
You can override the sprites used in the model. Currently, top and bottom faces of the leaf model will default to the regular texture, but can be overridden this way.
`input/assets/eternal_starlight/northland_leaves_snowy.betterleaves.json`:
```json
{
"spriteOverrides": {
"top": "minecraft:block/snow",
"bottom": "eternal_starlight:block/northland_leaves"
}
...
}
```
### Texture Stitching <Difficulty difficulty="hard" />
Some leaves have textures that consist of different halves for example Blue Wisteria Leaves from Environmental.
This is where texture stitching comes in.
<center><img style="image-rendering: pixelated" alt="Showcase of the texture stitching layout" src="/betterleaves/demo_blue_wisteria_leaves_top.png" width="400"></img></center>
<p class="text-center italic">Texture stitching allows you to use custom sub-textures while generating the bushy texture</p>
`input/assets/environmental/blue_wisteria_leaves_top.betterleaves.json`:
```json
{
"textureStitching": {
"1-3": "environmental:block/wisteria_leaves",
// Unspecified parts will use the regular leaf texture
"7-9": "environmental:block/blue_wisteria_leaves"
}
...
}
```

View File

@@ -4,6 +4,7 @@ title: MidnightLib Wiki
---
import GradleVersionInfo from '../../components/GradleVersionInfo.astro'
import CustomTabs from "../../components/CustomTabs.astro"
import { Icon } from 'astro-icon/components'
import { Notification } from 'accessible-astro-components'
@@ -17,19 +18,96 @@ Explore MidnightLib's features on this page:
[Get to know the features](/midnightlib)
To use the library in your mods, just edit `build.gradle` and `gradle.properties` as seen below:
### `build.gradle`
```java
<h3 data-tab-condition="kotlin">`build.gradle.kts (Kotlin DSL)`</h3>
<h3 data-tab-condition="groovy" class="hidden">`build.gradle (Groovy DSL)`</h3>
<h3 data-tab-condition="kotlin-legacy" class="hidden">`build.gradle.kts (Kotlin DSL)`</h3>
<h3 data-tab-condition="groovy-legacy" class="hidden">`build.gradle (Groovy DSL)`</h3>
<CustomTabs tabs={[
{
name: `build.gradle.kts`,
id: 'kotlin',
icon: 'simple-icons:kotlin',
active: true
},
{
name: `build.gradle`,
icon: 'simple-icons:apachegroovy',
id: 'groovy'
},
{
name: `build.gradle.kts (Legacy)`,
id: 'kotlin-legacy',
icon: 'simple-icons:kotlin'
},
{
name: `build.gradle (Legacy)`,
icon: 'simple-icons:apachegroovy',
id: 'groovy-legacy'
}
]}>
<div data-tab-condition="kotlin" data-active="true">
```kotlin
repositories {
[... other repos ...]
// other repos...
maven("https://maven.midnightdust.eu/releases")
}
dependencies {
// other dependencies...
val midnightlib = "eu.midnightdust:midnightlib:${project.midnightlib_version}"
modImplementation(midnightlib)
include(midnightlib)
}
```
</div>
<div data-tab-condition="groovy" class="hidden">
```groovy
repositories {
// other repos...
maven {
url = "https://maven.midnightdust.eu/releases"
}
}
dependencies {
// other dependencies...
modImplementation include ("eu.midnightdust:midnightlib:${project.midnightlib_version}")
}
```
</div>
<div data-tab-condition="kotlin-legacy" class="hidden">
```kotlin
repositories {
// other repos...
maven("https://api.modrinth.com/maven")
}
dependencies {
// other dependencies...
val midnightlib = "maven.modrinth:midnightlib:${project.midnightlib_version}"
modImplementation(midnightlib)
include(midnightlib)
}
```
</div>
<div data-tab-condition="groovy-legacy" class="hidden">
```groovy
repositories {
// other repos...
maven {
url = "https://api.modrinth.com/maven"
}
}
dependencies {
[... other dependencies ...]
// other dependencies...
modImplementation include ("maven.modrinth:midnightlib:${project.midnightlib_version}")
}
```
</div>
</CustomTabs>
<Notification type="warning">
<Icon name="ion:information-circle-outline" />
<p>
<strong>Legacy:</strong> For versions below 1.9.0, use the Modrinth maven repo provided in the legacy tabs.
</p>
</Notification>
### `gradle.properties`
<GradleVersionInfo modid='midnightlib' />
@@ -37,7 +115,7 @@ dependencies {
<Icon name="ion:information-circle-outline" />
<p>
<strong>Info:</strong> You should always pick the version that suits your modloader and Minecraft version best.
Forge support is retired in favor of NeoForge.
Forge support for 1.21+ is retired in favor of NeoForge.
</p>
</Notification>
@@ -147,7 +225,7 @@ public class MidnightConfigExample extends MidnightConfig {
public static int imposter = 16777215; // - Entries without an @Entry or @Comment annotation are ignored
}
```
### `assets/modid/lang/`**`en_US.json`**
### `assets/modid/lang/`**`en_us.json`**
The .json language file for your config class could look similar to this:
```json
{

View File

@@ -3,6 +3,7 @@ layout: ../../layouts/MarkdownLayout.astro
title: PictureSign Wiki
---
import CustomTabs from "../../components/CustomTabs.astro"
import { Icon } from 'astro-icon/components'
import { Notification } from 'accessible-astro-components'
@@ -28,14 +29,40 @@ GIF support does not neccessarily need VLC, just WATERMeDIA.
### Setting up pictures
Pictures can come from various sources:
- Websites (Recommended): [Imgur](https://imgur.com/), [ImgBB](https://ibb.co/), [PictShare](https://pictshare.net/), [Freeimage](https://iili.io/)
- Only these websites will work by default. This is a security measure.
- Resourcepack Textures: Use prefix <span class="bg-clip-text text-transparent bg-gradient-to-r from-green-500 to-blue-500 font-mono">rp:</span> (".png" is optional)
<CustomTabs tabs={[
{
name: `Websites`,
id: 'source-websites',
icon: 'mdi:web-box',
active: true
},
{
name: `Resourcepack Textures`,
id: 'source-respack',
icon: 'mdi:zip-box'
},
{
name: `Local files`,
id: 'source-local',
icon: 'mdi:file-cabinet'
}
]}>
<div data-tab-condition="source-websites">
- [Imgur](https://imgur.com/), [ImgBB](https://ibb.co/), [PictShare](https://pictshare.net/), [Freeimage](https://iili.io/)
- Only these websites will work by default.
- This is a security measure.
</div>
<div data-tab-condition="source-respack" class="hidden">
- Use prefix <span class="bg-clip-text text-transparent bg-gradient-to-r from-green-500 to-blue-500 font-mono">rp:</span> (".png" is optional)
- Texture from Vanilla: e.g. "rp:textures/block/diamond_block.png"
- Texture from a Mod: e.g. "rp:picturesign:textures/gui/sprites/icon/picturesign"
- Local files: Use prefix <span class="bg-clip-text text-transparent bg-gradient-to-r from-green-500 to-blue-500 font-mono">file:</span>
</div>
<div data-tab-condition="source-local" class="hidden">
- Use prefix <span class="bg-clip-text text-transparent bg-gradient-to-r from-green-500 to-blue-500 font-mono">file:</span>
- File in your Minecraft folder: e.g. "file:./config/picturesign/image.png"
- File on your Hard drive: e.g. "file:C:/Users/Motschen/Pictures/image.png" (Windows) or "file:/home/motschen/Pictures/image.png" (Linux/MacOS)
</div>
</CustomTabs>
<Notification type="info">
<Icon name="ion:information-circle-outline" />
@@ -47,13 +74,35 @@ Pictures can come from various sources:
### Setting up GIFs
GIFs can currently only come from one source:
- Websites: [Imgur](https://imgur.com/), [Tenor](https://tenor.com/)
<CustomTabs tabs={[
{
name: `Websites`,
id: 'source-websites-dummy',
icon: 'mdi:web-box',
active: true
}
]}>
<div>
- [Imgur](https://imgur.com/), [Tenor](https://tenor.com/)
- Only these websites will work by default. This is a security measure.
</div>
</CustomTabs>
### Setting up videos and audios
Multimedia can currently only come from one source:
- Websites: [YouTube](https://youtube.com/), [Vimeo](https://vimeo.com/)
<CustomTabs tabs={[
{
name: `Websites`,
id: 'source-websites-dummy',
icon: 'mdi:web-box',
active: true
}
]}>
<div>
- [YouTube](https://youtube.com/), [Vimeo](https://vimeo.com/)
- Only these websites will work by default. This is a security measure.
</div>
</CustomTabs>
### (Advanced) Changing multimedia properties via JSON
You can specify a volume as well as setting custom start and end times for multimedia using json files.
@@ -68,5 +117,16 @@ An example JSON would look like this:
```
Upload your JSON file to one of the following sources:
- Websites: [GitHub](https://github.com/), [GitHub Gists](https://gist.github.com/), [JSON Keeper](https://www.jsonkeeper.com/), [n:point](https://npoint.io/), [JSONsilo](https://jsonsilo.com/)
<CustomTabs tabs={[
{
name: `Websites`,
id: 'source-websites-dummy',
icon: 'mdi:web-box',
active: true
}
]}>
<div>
- [GitHub](https://github.com/), [GitHub Gists](https://gist.github.com/), [JSON Keeper](https://www.jsonkeeper.com/), [n:point](https://npoint.io/), [JSONsilo](https://jsonsilo.com/)
- Only these websites will work by default. This is a security measure.
</div>
</CustomTabs>