completed go rewrite

This commit is contained in:
Sven Vogel 2023-11-24 23:22:19 +01:00
parent 6cc60cdd16
commit 9912389ea7
10 changed files with 227 additions and 111 deletions

3
compile-web.sh Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env sh
cd web
inliner page.html > ../index-inlined-minified.html

View File

@ -3,7 +3,8 @@
"go",
"gopls",
"nodejs",
"nodePackages.vscode-html-languageserver-bin"
"nodePackages.vscode-html-languageserver-bin",
"nodePackages.inliner"
],
"nixpkgs": {
"commit": "f80ac848e3d6f0c12c52758c0f25c10c97ca3b62"

File diff suppressed because one or more lines are too long

78
main.go
View File

@ -1,17 +1,89 @@
package main
import (
"errors"
"fmt"
"html/template"
"log"
"net/http"
"strconv"
)
func handler(w http.ResponseWriter, r *http.Request) {
// url path: r.URL.Path[1:]
type StatusData struct {
Code string
Message string
Response int
}
var Statuses = map[string]string{
"401": "You are not authorized to access the resource",
"404": "The requested resource couldn't be found",
"403": "Access to the resource was denied for the server",
"405": "Method not supported by the server",
"407": "You are no authorized to access the resource",
"408": "Request timed out",
"410": "The requested content is permanently gone",
"414": "Requested URI is too long",
"415": "Unsupported media type",
"500": "The server encountered an internal error",
"501": "Method not supported by the server",
"502": "Requested endpoint encountered an error",
"503": "Service is currently unavailable",
"504": "Requested endpoint is unreachable",
"505": "Protocol version not supported",
"511": "Requested endpoint requires authentication for proxy",
}
func isStatusCode(code string) (int, error) {
num, err := strconv.Atoi(code)
if err != nil {
return 500, errors.New("not a number")
}
if num > 99 && num < 512 {
return num, nil
}
return 500, errors.New("Invalid range")
}
func genStatus(request string) StatusData {
// create and init page status
var status StatusData
status.Code = "500"
status.Message = fmt.Sprintf("Invalid error response code recieved: %.5s[..]", request)
status.Response = 500
// check if we have a valid status code
var code, err = isStatusCode(request)
if err == nil {
status.Code = request
status.Message = fmt.Sprintf("Interrupted unsupported error response: %s", request)
status.Response = code
}
// set custom status message if present
description, ok := Statuses[request]
if ok {
status.Message = description
}
return status
}
func main() {
http.HandleFunc("/", handler)
// load template
tmpl, err := template.ParseFiles("index-inlined-minified.html")
if err != nil {
log.Fatal(err)
}
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
status := genStatus(r.URL.Path[1:])
// set status code to propagate http error code
w.WriteHeader(status.Response)
tmpl.Execute(w, status)
})
log.Fatal(http.ListenAndServe("127.0.0.1:8000", nil))
}

View File

@ -1,104 +0,0 @@
worker_processes 1;
error_log stderr warn;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# Define custom log format to include reponse times
log_format main_timed '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'$request_time $upstream_response_time $pipe $upstream_cache_status';
access_log /dev/stdout main_timed;
error_log /dev/stderr notice;
keepalive_timeout 65;
# Write temporary files to /tmp so they can be created as a non-privileged user
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
# Default server definition
server {
listen 8080 default_server;
server_name _;
sendfile off;
# Increase proxy buffers for large requests
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
# Upload limit
client_max_body_size 2M;
client_body_buffer_size 128k;
root /var/www/html;
index index.php index.html;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.php
try_files $uri $uri/ /index.php?q=$uri&$args;
}
# Redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/lib/nginx/html;
}
# Pass the PHP scripts to PHP-FPM listening on 127.0.0.1:9000
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_intercept_errors off;
include fastcgi_params;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires 5d;
}
# Deny access to . files, for security
location ~ /\. {
log_not_found off;
deny all;
}
# Allow fpm ping and status from localhost
location ~ ^/(fpm-status|fpm-ping)$ {
access_log off;
allow 127.0.0.1;
deny all;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
}
# Include other server configs
include /etc/nginx/conf.d/*.conf;
gzip on;
gzip_proxied any;
gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss;
gzip_vary on;
gzip_disable "msie6";
}

View File

@ -5,6 +5,7 @@
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="darkreader-lock"> <!-- Request dark reader to ignore this site. See: https://github.com/darkreader/darkreader/blob/main/CONTRIBUTING.md#disabling-dark-reader-on-your-site -->
<title>Montehaselino - Automatic Status Response</title>
<link href="master.css" rel="stylesheet"/>
</head>
@ -16,9 +17,9 @@
<img id="mountain" src="res/svg/error-page-overlay.svg" alt="">
<div id="rocks"></div>
<h1>ERROR</h1>
<h1>404</h1>
<h2>Page ot found</h2>
<a href="javascript:window.history.back();">Go Back</a>
<h2>{{.Code}}</h2>
<h3>{{.Message}}</h3>
<a href="javascript:window.history.back();">Go Back</a>
<hr>
<div class="subtle">
This is an automatically generated error response page. <br>

BIN
web/res/font/Mont-Heavy.otf Normal file

Binary file not shown.

41
web/res/svg/cloud.svg Normal file
View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="325.17758mm"
height="173.97749mm"
viewBox="0 0 325.17758 173.97749"
version="1.1"
id="svg2219"
inkscape:export-filename="rocks.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2221"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false" />
<defs
id="defs2216" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(26.219306,90.409748)">
<path
id="path2976"
style="fill:#f2f3f4;fill-opacity:1;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
d="m 184.52287,-90.409748 c -29.48402,0.0211 -55.69231,18.786142 -65.21152,46.691207 -6.95772,-9.560328 -18.06812,-15.216463 -29.892236,-15.217676 -20.420709,5.2e-5 -36.974952,16.554295 -36.975004,36.975004 0.008,2.425414 0.254676,4.844155 0.736389,7.221265 -8.080525,-4.727335 -17.273306,-7.21967 -26.635067,-7.221265 -29.1412226,-1.51e-4 -52.764889,23.6235154 -52.764738,52.764738 1.35e-4,29.141021 23.6237173,52.764372 52.764738,52.764221 81.407918,0 102.178798,0 219.648608,0 29.14082,-1.35e-4 52.76409,-23.623403 52.76422,-52.764221 -0.002,-26.3255338 -19.40791,-48.622049 -45.48146,-52.255725 v -0.0041 c -8e-5,-38.082087 -30.87184,-68.953618 -68.95393,-68.953414 z"
sodipodi:nodetypes="ccccccsccccsc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="141.81151mm"
height="105.69541mm"
viewBox="0 0 141.81145 105.69541"
version="1.1"
id="svg241"
xml:space="preserve"
inkscape:export-filename="banner.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
sodipodi:docname="Montehaselino.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview243"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.70710678"
inkscape:cx="65.760931"
inkscape:cy="111.72287"
inkscape:window-width="1920"
inkscape:window-height="1007"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs238"><linearGradient
id="linearGradient1696"
inkscape:swatch="solid"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1694" /></linearGradient></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-669.74461,-567.45479)"><path
id="path480"
style="fill:#f2f3f4;fill-opacity:1;stroke-width:5.72654;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
d="m 747.82408,620.56771 c -4.84754,0.002 -9.13983,3.13231 -10.62313,7.74733 -1.05857,-1.37216 -2.69357,-2.17591 -4.4266,-2.17609 -3.08817,9e-5 -5.59158,2.50371 -5.59139,5.5919 10e-4,0.17584 0.0103,0.3516 0.0279,0.52659 -1.69457,-1.37612 -3.811,-2.12734 -5.99395,-2.12752 -5.25193,-2e-5 -9.50952,4.25754 -9.5095,9.50949 10e-4,1.38294 0.30435,2.749 0.8878,4.00286 -0.22627,-0.028 -0.4541,-0.0422 -0.68213,-0.0424 -2.78228,6.9e-4 -5.14079,2.0469 -5.53403,4.80125 -0.68072,-0.63041 -1.57438,-0.98053 -2.50217,-0.9803 -2.03283,1.3e-4 -3.68078,1.64806 -3.68091,3.68091 4.3e-4,0.19474 0.0163,0.38913 0.0475,0.58136 -0.4419,-0.0534 -0.88659,-0.0803 -1.3317,-0.0806 -0.47552,0 -0.94315,0.0331 -1.40302,0.0909 a 15.059288,15.059288 0 0 0 -14.35313,10.51409 6.3971581,6.3971581 0 0 0 -1.81022,-0.26149 6.3971581,6.3971581 0 0 0 -6.39703,6.39703 6.3971581,6.3971581 0 0 0 5.2e-4,0.0171 4.8069043,4.8069043 0 0 0 -0.39739,-0.0171 4.8069043,4.8069043 0 0 0 -4.80694,4.80694 h 19.90421 c -0.0274,-0.64791 0.1009,-1.29784 0.42375,-1.88981 1.35918,-2.25829 4.20285,-2.62922 6.15518,-4.15892 1.35799,-1.55395 3.07735,-2.73677 4.42143,-4.30516 0.80374,-1.48403 1.68693,-3.19316 3.39979,-3.77858 1.71363,-0.68303 3.57401,0.20156 4.74803,1.47381 0.46164,0.76447 1.46055,0.57398 2.14819,1.01079 0.43182,-0.36768 0.9014,-0.68919 1.32034,-1.07228 1.05853,-1.16444 1.45121,-2.76478 2.10374,-4.16874 0.60081,-1.7522 1.84952,-3.6072 3.8437,-3.83129 1.10221,-1.40204 2.95153,-1.8398 4.63847,-2.02572 0.36637,-1.35178 0.99839,-2.75085 2.22881,-3.52123 1.68737,-1.18207 3.97572,-0.51337 5.38623,0.78651 0.9368,0.44149 2.07457,0.3728 2.99465,0.90848 0.52845,-2.29717 3.26154,-3.5784 5.43533,-2.87063 0.58571,-0.75108 0.83421,-1.80076 1.39268,-2.61328 0.86014,-1.80424 2.28437,-3.76225 4.46846,-3.86746 1.83247,-0.13811 3.22748,1.24526 4.45451,2.40295 1.86738,2.01253 4.48544,3.14802 6.32313,5.17902 1.50546,-1.00257 3.59193,-0.46914 4.82451,0.74155 1.67356,1.763 2.54127,4.13638 2.97914,6.4947 0.18923,0.3432 -0.0485,1.42661 0.54157,1.03869 2.12776,-0.78848 4.77521,0.4306 5.43636,2.62982 0.28574,1.12232 1.39477,1.64404 1.98541,2.5678 1.42424,1.89341 1.7629,4.32106 2.86753,6.36964 0.64059,-0.86125 1.17885,-1.8955 1.99264,-2.65307 1.67268,-1.8696 4.91905,-1.46825 6.33295,0.50746 0.71863,1.39692 2.15629,2.14224 3.34863,3.07061 1.46706,0.62992 2.52355,1.89793 3.4401,3.16467 0.56578,0.69921 0.79945,1.55276 0.77101,2.40967 h 21.50102 a 4.6466446,4.6466446 0 0 0 -4.61574,-4.4111 4.6466446,4.6466446 0 0 0 -2.50889,0.73897 8.8353443,8.8353443 0 0 0 0.0336,-0.73949 8.8353443,8.8353443 0 0 0 -8.83564,-8.83512 8.8353443,8.8353443 0 0 0 -6.03994,2.389 c -0.23648,-5.46335 -4.53574,-9.92624 -10.04022,-10.31771 0.0461,-0.28867 0.0694,-0.5805 0.0698,-0.87282 -9e-5,-3.08799 -2.5034,-5.5913 -5.59139,-5.59139 -1.17843,10e-4 -2.32637,0.37468 -3.27991,1.06712 -0.85433,-3.21536 -3.14052,-5.85895 -6.1991,-7.16804 1.08156,-1.05169 1.69226,-2.49581 1.69344,-4.0044 -9e-5,-3.088 -2.5034,-5.5913 -5.59139,-5.59139 -0.60638,10e-4 -1.20852,0.10104 -1.78284,0.29559 -0.80453,-5.47978 -5.50525,-9.54108 -11.04377,-9.54154 z" /><path
style="fill:#343434;fill-opacity:1;stroke:none;stroke-width:7;stroke-dasharray:none;stroke-opacity:1"
d="m 705.36258,662.95801 2.03877,2.19808 1.61463,0.0226 1.23277,2.37812 5.93705,-4.99765 2.65369,-6.05219 0.75621,1.03896 2.05415,-2.69962 4.4495,-0.75544 1.13932,-3.65172 1.45762,1.25801 2.75502,0.51939 0.0903,1.49042 2.91309,0.42906 2.75502,-3.04858 0.27098,-1.42268 2.00982,0.77438 c 0,0 2.57436,-1.40668 2.57436,-1.58733 0,-0.18066 2.16789,-4.2906 2.16789,-4.2906 l 0.74521,-1.17427 2.75502,2.57436 4.6519,3.45506 1.53558,2.32596 3.02602,-0.36132 0.47422,-0.92586 1.37061,2.30337 1.20376,5.87135 2.18146,3.21041 1.02196,-1.56487 0.90651,0.59009 1.2332,-1.86752 0.84436,1.98043 2.0324,2.03239 2.21303,5.75844 2.10016,2.12272 0.63436,0.11393 3.25744,-0.30337 2.65071,-3.78437 1.49672,2.14466 0.6097,0.15808 0.36131,1.10652 1.12912,0.0226 0.72262,1.28718 1.12912,-0.11291 1.37752,1.62592 v 0 h -92.09192 l 4.69146,-2.36784 1.75648,-1.82035 3.67264,-3.38521 z"
id="path319"
sodipodi:nodetypes="cccccccccccccccccsccccccccccccccccccccccccccccccccc" /><path
id="path321"
style="fill:#f2f3f4;fill-opacity:1;stroke:none;stroke-width:7;stroke-dasharray:none;stroke-opacity:1"
d="m 744.97796,643.38675 -2.75487,2.12287 -1.08416,2.80035 -2.30322,2.03243 -0.45165,1.12913 -0.90331,-1.80661 -1.08417,1.30948 -1.942,3.16157 0.90331,1.76165 -0.7674,1.26452 1.17409,0.54208 1.62574,-1.67121 -1.85157,3.07113 1.17409,-0.18087 -1.08365,2.3487 0.40617,2.2133 2.21331,-1.71669 0.0449,-0.85783 1.21957,-0.94878 c 0,0 -0.045,1.08438 -0.045,1.26504 0,0.18065 -2.48409,3.56774 -2.48409,3.56774 l 2.9807,-2.16783 1.89704,-4.24522 1.80661,-2.2133 0.45165,-2.89026 -0.36173,-3.20704 -1.39992,1.26452 0.63252,-1.49035 0.54157,-2.52904 1.35496,-1.89704 z m -17.73948,7.05228 -1.85209,2.90629 -2.42723,1.43712 -1.30949,0.0641 1.18185,0.41496 0.12764,1.85208 -0.60668,1.27744 c 0,0 0.22323,2.58694 0.22323,2.74661 0,0.15968 -1.05367,2.26756 -1.05367,2.26756 h -0.73433 l -0.47904,1.5968 -1.43713,1.02164 h 1.18133 l 1.08572,-0.447 2.87427,-2.42672 1.27744,-1.0542 2.39521,-3.00189 -1.11776,0.15968 -1.43713,1.11777 -2.0438,1.2454 1.02216,-1.34101 -0.2558,-1.82056 1.1498,-2.42724 1.91617,-1.75648 -0.0956,-1.62884 0.44701,-0.98961 z m -5.58881,4.40749 -2.45877,2.23552 -0.99012,1.37304 0.63873,-1.9482 -1.69241,1.69292 -0.86248,2.93781 -2.10788,1.72444 -3.92792,4.6948 2.20348,-1.72444 3.44888,-1.27744 c 0,0 1.53324,-1.2455 1.53324,-1.43712 0,-0.19161 0.032,-1.8526 0.032,-1.8526 l 1.5968,-1.37305 z m 35.77094,-4.39147 -1.10639,0.67748 -2.39365,0.60978 c 0.22583,-0.0677 2.46135,-0.13539 2.46135,-0.13539 l 0.13539,1.67122 -0.88057,1.21905 0.51935,0.8356 c 0,0 -1.942,2.16809 -1.942,2.281 v 1.19683 l -0.76791,1.01596 1.26452,-0.56431 h 1.69395 l 0.76792,-0.74518 -0.42944,1.64848 -1.89652,1.78387 2.73213,-1.55804 c 0,0 0.76791,-0.99384 0.76791,-1.08417 0,-0.0903 -0.49661,-3.07113 -0.49661,-3.07113 l -1.67121,1.76165 1.24178,-2.93574 z m 7.91787,8.54315 -0.76688,0.86197 -1.37305,0.41547 -1.02216,1.56477 0.99013,-0.73484 0.447,0.15968 -0.12764,0.86248 -1.72444,1.6924 -2.77864,1.11776 c 0,0 -0.83013,1.02226 -1.05368,1.21388 l 3.03991,-0.67811 1.27145,-1.14245 1.27744,-0.73432 1.43713,-2.13992 -0.12764,-1.05369 z m -59.97567,3.95997 -1.24592,0.70228 -2.10737,2.0438 -1.40559,0.28784 -0.86197,2.17144 -2.26756,1.94821 -0.0641,0.76636 -2.20253,2.27209 1.20417,-0.86703 2.0846,-1.50066 0.12764,1.43712 1.62884,-3.25768 0.54261,0.63872 1.56476,-1.59681 -0.92604,2.45929 1.69292,-1.21388 0.7984,-1.56477 v -2.10788 l 0.35088,0.67076 1.02216,-2.17144 z m 73.70764,3.95996 -0.73432,0.032 -1.9482,2.52285 -0.894,0.92604 -2.33113,0.60668 2.87374,0.0641 0.76688,-0.73433 0.1912,0.47905 -1.66037,1.66036 0.60668,0.0641 1.53272,-0.57516 1.0542,-1.46865 0.25528,-1.5012 -0.99012,0.99013 v -0.76637 z"
sodipodi:nodetypes="cccccccccccccccccccsccccccccccccccccccscccccccccccccccccccccccccccccsccccccccccsccccccccsccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" /><path
style="fill:#f2f3f4;fill-opacity:1;stroke-width:0.149738"
d="m 740.9024,585.74303 c 5.90184,-0.61927 11.81573,0.5577 17.62239,2.52761 5.80666,1.96991 6.88888,2.91201 9.08241,2.59221 2.19352,-0.31978 3.17776,0.7051 0.53011,-4.60059 -2.64764,-5.30572 -4.60487,-7.61596 -4.39377,-12.00929 0.2111,-4.39333 1.98773,-6.43498 2.71307,-6.73832 0.72534,-0.30333 1.22523,0.56251 1.8626,2.22635 0.63738,1.66383 1.07728,2.42577 1.07728,2.42577 0,0 3.76667,-1.27422 6.57835,2.436 2.81167,3.71022 4.42865,14.82909 4.42865,14.82909 0,0 5.80373,2.81395 7.20185,6.55527 1.39812,3.74132 2.8612,6.4754 1.99078,9.28684 -0.87043,2.81143 -2.50695,3.45612 -4.79994,3.16375 -2.29299,-0.29236 -3.27344,0.089 -4.09588,0.86398 -0.82246,0.775 -0.46646,1.63155 0.41833,2.04428 0.88477,0.41273 2.13196,0.89328 4.04097,2.40018 1.90901,1.50689 2.08504,2.05174 4.48873,2.6958 2.40367,0.64407 3.94295,2.11044 1.48149,4.0857 -2.46146,1.97526 -5.33849,-1.92813 -8.2133,-3.1083 -2.87482,-1.18016 -2.54509,-1.20891 -1.15807,1.15348 1.38702,2.3624 0.45804,5.39234 -2.88792,3.67608 -3.34595,-1.71626 -5.7104,-4.69187 -10.16019,-6.44042 -4.44978,-1.74855 -6.36218,-3.46128 -9.7131,-4.0664 -3.35093,-0.60512 -14.99685,-1.50069 -19.79417,-0.5319 -4.7973,0.96879 -10.68642,4.04562 -13.84916,4.4863 -3.16274,0.44067 -7.60664,-1.65761 -10.22701,-0.83741 -2.62037,0.82021 -4.70034,2.13652 -7.66249,6.96372 -2.96217,4.82721 -6.67224,5.99949 -7.08704,2.52167 -0.41479,-3.47785 0.5858,-5.46396 3.31427,-9.8561 2.72848,-4.39213 4.1618,-7.22839 5.79976,-7.55067 1.63796,-0.32227 2.75641,-0.34462 3.65492,-0.74792 0.89851,-0.40332 -1.48675,0.30423 -3.22584,-3.14787 -1.73909,-3.4521 -2.38704,-6.93387 0.42008,-7.03069 2.80713,-0.0968 6.29215,1.10047 6.29215,1.10047 0,0 3.27175,-3.24953 5.24585,-4.39095 5.84733,-3.3809 12.30633,-6.27286 19.02384,-6.97772 z"
id="path1187"
sodipodi:nodetypes="asssssscscssssssssssssssssssssssscaa" /></g></svg>

After

Width:  |  Height:  |  Size: 11 KiB

38
web/res/svg/rocks.svg Normal file
View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="951.68677mm"
height="29.780741mm"
viewBox="0 0 951.68677 29.780741"
version="1.1"
id="svg2219"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2221"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false" />
<defs
id="defs2216" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(306.03065,-157.91773)">
<path
style="fill:#343434;fill-opacity:1;stroke-width:1.20161;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
d="m -306.03065,187.69847 97.70594,-21.80169 49.16565,10.24626 150.056674,-14.51349 104.243531,21.72464 68.068515,-6.58359 h 93.58068 l 90.46358,-18.85287 73.60188,15.33884 77.50924,-7.4967 147.2911,21.9386"
id="path2340"
sodipodi:nodetypes="ccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB