diff --git a/Gemfile b/Gemfile
index 42491f1..23a6e5e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,3 +5,5 @@ gem "jekyll", "~> 4.3" # installed by `gem jekyll`
gem "just-the-docs", "0.10.1" # pinned to the current release
# gem "just-the-docs" # always download the latest release
+
+gem 'jekyll-relative-links'
diff --git a/Gemfile.lock b/Gemfile.lock
index b884402..6effd2f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -4,7 +4,7 @@ GEM
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
base64 (0.3.0)
- bigdecimal (3.2.2)
+ bigdecimal (3.3.1)
colorator (1.1.0)
concurrent-ruby (1.3.5)
csv (3.3.5)
@@ -17,16 +17,16 @@ GEM
ffi (1.17.2-x86_64-darwin)
ffi (1.17.2-x86_64-linux-gnu)
forwardable-extended (2.6.0)
- google-protobuf (4.31.1-arm64-darwin)
+ google-protobuf (4.33.1-arm64-darwin)
bigdecimal
rake (>= 13)
- google-protobuf (4.31.1-x64-mingw-ucrt)
+ google-protobuf (4.33.1-x64-mingw-ucrt)
bigdecimal
rake (>= 13)
- google-protobuf (4.31.1-x86_64-darwin)
+ google-protobuf (4.33.1-x86_64-darwin)
bigdecimal
rake (>= 13)
- google-protobuf (4.31.1-x86_64-linux-gnu)
+ google-protobuf (4.33.1-x86_64-linux-gnu)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
@@ -53,13 +53,15 @@ GEM
webrick (~> 1.7)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
+ jekyll-relative-links (0.7.0)
+ jekyll (>= 3.3, < 5.0)
jekyll-sass-converter (3.1.0)
sass-embedded (~> 1.75)
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
- json (2.13.2)
+ json (2.16.0)
just-the-docs (0.10.1)
jekyll (>= 3.8.5)
jekyll-include-cache
@@ -77,21 +79,16 @@ GEM
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (6.0.2)
- rake (13.3.0)
+ rake (13.3.1)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
- rexml (3.4.2)
- rouge (4.6.0)
+ rexml (3.4.4)
+ rouge (4.6.1)
safe_yaml (1.0.5)
- sass-embedded (1.89.2-arm64-darwin)
- google-protobuf (~> 4.31)
- sass-embedded (1.89.2-x64-mingw-ucrt)
- google-protobuf (~> 4.31)
- sass-embedded (1.89.2-x86_64-darwin)
- google-protobuf (~> 4.31)
- sass-embedded (1.89.2-x86_64-linux-gnu)
+ sass-embedded (1.94.2)
google-protobuf (~> 4.31)
+ rake (>= 13)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.6.0)
@@ -105,7 +102,8 @@ PLATFORMS
DEPENDENCIES
jekyll (~> 4.3)
+ jekyll-relative-links
just-the-docs (= 0.10.1)
BUNDLED WITH
- 2.3.9
+ 2.3.27
diff --git a/_config.yml b/_config.yml
index 3ec0d53..97755b5 100644
--- a/_config.yml
+++ b/_config.yml
@@ -22,4 +22,7 @@ exclude:
sass:
quiet_deps: true # https://github.com/just-the-docs/just-the-docs/issues/1541
- silence_deprecations: ['import'] # https://github.com/just-the-docs/just-the-docs/issues/1607
\ No newline at end of file
+ silence_deprecations: ['import'] # https://github.com/just-the-docs/just-the-docs/issues/1607
+
+plugins:
+ - jekyll-relative-links
diff --git a/_sass/custom/custom.scss b/_sass/custom/custom.scss
index 2d1e41a..6299216 100644
--- a/_sass/custom/custom.scss
+++ b/_sass/custom/custom.scss
@@ -119,3 +119,68 @@ th {
margin-left: calc( (100% - #{$page-width}) / 2 + #{$sidebar-width} );
}
}
+
+h2, h3 {
+ scroll-margin-top: 1em;
+}
+
+// Highlight linked headings -->
+h2:not(:has(> code)):target,
+h3:not(:has(> code)):target {
+ animation: highlightTexts 3s ease-out;
+}
+
+@keyframes highlightTexts {
+ from {
+ text-shadow:
+ 0 0 2em rgba(170, 170, 255, 1.0),
+ 0 0 1em rgba(170, 170, 255, 1.0),
+ 0 0 0.1em rgba(170, 170, 255, 1.0);
+ }
+ to {
+ box-shadow: 0 0 0em rgba(255, 255, 170, 0.0);
+ }
+}
+
+h2:target > code,
+h3:target > code {
+ animation: highlightConfigs 3s ease-out;
+}
+
+@keyframes highlightConfigs {
+ from {
+ box-shadow: 0 0 1em 0 rgba(170, 170, 255, 1.0);
+ }
+ to {
+ box-shadow: 0 0 0em 0 rgba(255, 255, 170, 0.0);
+ }
+}
+// <-- Highlight linked headings
+
+section.config-indent {
+ --indent-size: 2em;
+
+ &::before, &::after {
+ position: relative;
+ font-family: monospace;
+ left: calc(-1 * var(--indent-size) - 0.5ch); //-0.5ch to center the line neatly between the {}'s
+ }
+
+ &::before { content: "{"; }
+ &::after { content: "}"; }
+
+ & :first-child { margin-top: 0; }
+ & :last-child { margin-bottom: 0; }
+
+ padding-left: var(--indent-size);
+
+ --bracket-height: 2em;
+ border-left: 1px solid transparent;
+ border-image: linear-gradient(to bottom,
+ transparent var(--bracket-height),
+ grey var(--bracket-height),
+ grey calc(100% - var(--bracket-height)),
+ transparent calc(100% - var(--bracket-height))
+ );
+ border-image-slice: 1;
+}
diff --git a/wiki/configs/Core.md b/wiki/configs/Core.md
new file mode 100644
index 0000000..0fcedfe
--- /dev/null
+++ b/wiki/configs/Core.md
@@ -0,0 +1,73 @@
+---
+layout: page
+title: Core
+parent: Configs
+grand_parent: Wiki
+nav_order: 1
+---
+
+# Core-Config
+
+> **Info:**
+> When a "default" is mentioned for any option, it is meant that if the option is commented out, that is what BlueMap will use.
+> This may not be the same as the option that is pre-filled-in.
+{: .info }
+
+## `accept-download`
+By changing this setting to `true` you are indicating that you have accepted [Mojang's EULA](https://account.mojang.com/documents/minecraft_eula),
+you confirm that you own a license to Minecraft (Java Edition)
+and you agree that BlueMap will download and use a minecraft-client file (depending on the minecraft-version)
+from [Mojang's servers](https://piston-meta.mojang.com/mc/game/version_manifest.json) for you.
+This file contains resources that belong to Mojang and you must not redistribute it or do anything else that is not compliant with mojang's EULA.
+
+BlueMap uses resources in this file to generate the 3D-models used for the map and texture them. (BlueMap will not work without those resources.)
+
+## `data`
+The folder where BlueMap saves data-files it needs during runtime, or to save e.g. the render-progress to resume it later.
+
+_Default is_ `"bluemap"`
+
+## `render-thread-count`
+This changes the amount of threads that BlueMap will use to render the maps.
+A higher value can improve render-speed, but could impact performance on the host machine.
+This should be always below or equal to the number of available processor-cores.
+
+Zero or a negative value means the amount of available processor-cores subtracted by the value.
+(So a value of -2 with 6 cores results in 4 render-processes)
+
+_Default varies per machine_
+
+## `scan-for-mod-resources`
+Controls whether BlueMap should try to find and load mod-resources and datapacks from the server/world-directories.
+
+_Default is_ `true`
+
+## `metrics`
+If this is `true`, BlueMap might send really basic metrics reports containing only the implementation-type and the version that is being used to [metrics.bluecolored.de/bluemap](https://metrics.bluecolored.de/)
+
+This allows me to track the basic usage of BlueMap and helps me stay motivated to further develop this tool!
+Please leave it on :)
+
+An example report looks like this: `{"implementation":"bukkit","version":"5.13","mcVersion":"?"}`
+
+_Default is_ `true`
+
+## `log`
+Config-section for debug-logging
+
+
+
+### `file`
+The file where the debug-log will be written to.
+Comment out to disable debug-logging completely.
+
+[Java String formatting syntax](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html) can be used to add time.
+
+_Default is no logging_
+
+### `append`
+Whether the logger should append to an existing file, or overwrite it
+
+_Default is_ `false`
+
+
diff --git a/wiki/configs/Maps.md b/wiki/configs/Maps.md
new file mode 100644
index 0000000..eb8a290
--- /dev/null
+++ b/wiki/configs/Maps.md
@@ -0,0 +1,218 @@
+---
+layout: page
+title: Maps
+parent: Configs
+grand_parent: Wiki
+nav_order: 5
+---
+
+# Map-Config
+
+In your `maps` directory, there is one `.conf` file per map.
+Usually, that will be three: `world.conf`, `world_nether.conf`, and `world_the_end.conf`,
+but may be more or less depending on the amount of loaded worlds when BlueMap was first installed.
+
+You can copy another map config to create a new map.
+You will probably want to change at least the [`world`](#world) and [`name`](#name) options,
+but you don't actually have to! By keeping them the same, you can have multiple maps of the same world.
+
+> **Info:**
+> When a "default" is mentioned for any option, it is meant that if the option is commented out, that is what BlueMap will use.
+> This may not be the same as the option that is pre-filled-in.
+{: .info }
+
+## `world`
+The path to the save-folder of the world to render.
+
+(If this is not defined (commented out or removed), the map will be only registered to the web-server and the web-app, but not rendered or loaded by BlueMap. This can be used to display a map that has been rendered somewhere else.)
+
+## `dimension`
+The dimension of the world. Can be `"minecraft:overworld"`, `"minecraft:the_nether"`, `"minecraft:the_end"` or any dimension-key introduced by a mod or datapack.
+
+## `name`
+The display-name of this map -> how this map will be named on the webapp.
+
+You can change this at any time.
+
+_Default is the id of this map_
+
+## `sorting`
+A lower value makes the map sorted first (in lists and menus), a higher value makes it sorted later.
+The value needs to be an integer, but it can be negative.
+
+You can change this at any time.
+
+_Default is_ `0`
+
+## `start-pos`
+The position on the world where the map will be centered if you open it.
+
+You can change this at any time.
+
+_This defaults to the world-spawn if you don't set it._
+
+## `sky-color`
+The color of the sky as a hex-color
+
+You can change this at any time.
+
+_Default is_ `"#7dabff"`
+
+## `void-color`
+The color of the void as a hex-color
+
+You can change this at any time.
+
+_Default is_ `"#000000"`
+
+## `sky-light`
+Defines the initial sky-light-strength the map will be set to when it is opened.
+
+`0` is no sky-light, `1` is fully lighted.
+
+You can change this at any time.
+
+_Default is_ `1`
+
+## `ambient-light`
+Defines the ambient light-strength that every block is receiving, regardless of the sunlight/blocklight.
+
+`0` is no ambient light, `1` is fully lighted.
+
+You can change this at any time.
+
+_Default is_ `0`
+
+## `remove-caves-below-y`
+BlueMap tries to omit all blocks that are below this Y-level and are not visible from above-ground.
+More specifically: Block-Faces that have a sunlight/skylight value of 0 are removed.
+
+This improves the performance of the map on slower devices by a lot, but might cause some blocks to disappear that should normally be visible.
+
+**Changing this value requires a re-render of the map.**
+
+Set to a very high value to remove caves everywhere (e.g. `10000`)
+Set to a very low value to remove nothing and render all caves (e.g. `-10000`)
+
+_Default is_ `55` _(slightly below water-level)_
+
+## `cave-detection-ocean-floor`
+This is the amount of blocks relative to the "ocean-floor" heightmap that the cave-detection will start at.
+Everything above that (heightmap-relative) y-level will not be removed.
+
+Comment or set to a very high value to disable using the ocean-floor heightmap for cave-detection.
+
+**Changing this value requires a re-render of the map.**
+
+_Defaults to_ `10000` _(disabled)_
+
+## `cave-detection-uses-block-light`
+With this value set to `true`, BlueMap also uses the block-light value (additionally to the sky-light) to "detect caves".
+(See: [`remove-caves-below-y`](#remove-caves-below-y))
+
+**Changing this value requires a re-render of the map.**
+
+_Default is_ `false`
+
+## `min-inhabited-time`
+The minimum "inhabitedTime" value that a chunk must have to be rendered.
+The "inhabitedTime" value of a chunk refers to the cumulative number of ticks players have been near this chunk.
+
+If you set this to a value greater than `0`, BlueMap will only render chunks that players have visited already.
+
+_Default is_ `0`
+
+## `render-mask`
+With the render-mask you can limit the map-render.
+
+This can be used to render only a certain part of a world, or ignore the Nether's ceiling.
+
+If you change the render-mask, BlueMap automatically tries to update the map,
+including deleting map-tiles which are outside the new limits.
+
+You can use `/bluemap fix-edges