diff --git a/Cargo.lock b/Cargo.lock
index fc7a184..0fe4a7d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -160,12 +160,6 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285"
-[[package]]
-name = "indoc"
-version = "2.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
-
[[package]]
name = "kurbo"
version = "0.11.1"
@@ -198,7 +192,6 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
name = "luciders"
version = "1.0.0"
dependencies = [
- "indoc",
"resvg",
]
diff --git a/Cargo.toml b/Cargo.toml
index 0901a0f..cc48b57 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,5 +5,4 @@ edition = "2021"
license = "AGPL-3.0-only"
[dependencies]
-indoc = "2.0.5"
resvg = "0.44.0"
diff --git a/src/constants.rs b/src/constants.rs
new file mode 100644
index 0000000..f69aa5b
--- /dev/null
+++ b/src/constants.rs
@@ -0,0 +1,20 @@
+pub const SERVER_INFO: &'static str = r#"luciders - Lucide SVG icons server
+
+GET /info - Get server information
+GET /icons/[icon].svg - Get an icon in SVG format (equivalent to fetching them directly from Lucide)
+GET /icons/[icon].png - Get an icon rendered in PNG format
+ Query parameters:
+ -- note: Make sure to URL encode the query parameters: particularly special characters such as # (e.g. %23). The server only accepts a small subset of characters deemed necessary for the query parameters.
+ -- note: You may choose to use either colour or color (Commonwealth or US spelling) in the query parameters. Both are accepted. Specifying both will result in undefined behaviour, so don't do that!
+ scale - integer - Scale the icon (default: 1, min: 1, max: 100)
+ padding - integer - Add padding (px) around the icon (default: 0, min: 0, max: 100)
+ background - hex - Set the background color in hex WITHOUT the hashtag (e.g. FFFFFF) (default: transparent)
+ stroke_colour - string - Set the stroke color for the SVG icon, any CSS color WITH the hashtag (default: currentColor)
+ discord_compatibility - boolean - Set padding to 8px for Discord compatibility. Typically for use in embed author icons as these have a circle clip applied by Discord. Overrides padding if set. (default: false)
+ cache_key - string - Technically this can have any name. The server does not interpret this at all. Useful for cache busting. (default: none)
+ Example:
+ /icons/apple.png?scale=2&background=FF0000&discord_compatibility
+
+
+*** mantained with ❤️ by Compositr (Jim) ***
+"#;
diff --git a/src/main.rs b/src/main.rs
index 77fdc82..e5f9a61 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -7,12 +7,11 @@ use resvg::{
usvg,
};
-use indoc::indoc;
-
mod handlers;
mod http;
mod icons;
mod threads;
+mod constants;
fn main() {
println!("luciders starting...");
@@ -40,36 +39,12 @@ fn main() {
Response::new(req, 200, Body::Static("OK - luciders is running"))
});
- const INFO: &str = indoc!(
- "
- luciders - Lucide SVG icons server
-
- GET /info - Get server information
- GET /icons/[icon].svg - Get an icon in SVG format (equivalent to fetching them directly from Lucide)
- GET /icons/[icon].png - Get an icon rendered in PNG format
- Query parameters:
- -- note: Make sure to URL encode the query parameters: particularly special characters such as # (e.g. %23). The server only accepts a small subset of characters deemed necessary for the query parameters.
- -- note: You may choose to use either colour or color (Commonwealth or US spelling) in the query parameters. Both are accepted. Specifying both will result in undefined behaviour, so don't do that!
- scale - integer - Scale the icon (default: 1, min: 1, max: 100)
- padding - integer - Add padding (px) around the icon (default: 0, min: 0, max: 100)
- background - hex - Set the background color in hex WITHOUT the hashtag (e.g. FFFFFF) (default: transparent)
- stroke_colour - string - Set the stroke color for the SVG icon, any CSS color WITH the hashtag (default: currentColor)
- discord_compatibility - boolean - Set padding to 8px for Discord compatibility. Typically for use in embed author icons as these have a circle clip applied by Discord. Overrides padding if set. (default: false)
- cache_key - string - Technically this can have any name. The server does not interpret this at all. Useful for cache busting. (default: none)
- Example:
- /icons/apple.png?scale=2&background=FF0000&discord_compatibility
-
-
- *** mantained with ❤️ by Compositr (Jim) ***
- "
- );
-
handlers.add_handler("/info", |req| {
if req.method != "GET" {
return Response::new(req, 405, Body::Static("Method Not Allowed"));
}
- Response::new(req, 200, Body::Static(INFO))
+ Response::new(req, 200, Body::Static(constants::SERVER_INFO))
});
handlers.add_handler("/icons/[icon].svg", {