website v2 based on hugo and hugo-ada-project-showcase

parent aa64d218
Pipeline #247907 passed with stages
in 17 seconds
website/style.css
*__pycache__*
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
resources/
.deploy*/
image: registry.gitlab.com/pages/hugo/hugo_extended
variables:
GIT_SUBMODULE_STRATEGY: recursive
test:
script:
- hugo
pages:
image: alpine:latest
stage: deploy
script:
- apk add sassc
- sassc website/style.scss website/style.css
- mkdir .public
- cp -r website/* .public
- mv .public public
- hugo
artifacts:
paths:
- public
......
[submodule "themes/ada-project-showcase"]
path = themes/ada-project-showcase
url = https://gitlab.com/gabmus/hugo-ada-project-showcase.git
This diff is collapsed.
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
baseURL = "https://whatip.gabmus.org/"
languageCode = "en-us"
title = "What IP"
theme = "ada-project-showcase"
copyright = "Gabriele Musco"
disableKinds = ["RSS", "section", "categories", "tags"]
[params]
links = [
["Features", "#features"],
["Install", "#install"],
["Hack", "#hack"],
["Support", "#support"]
]
logo = "/logo-symbolic.svg"
favicon = "/favicon.png"
license = "CC-BY-SA-4.0"
licenseLink = "https://creativecommons.org/licenses/by-sa/4.0/"
# Features
## Get your IP easily
Get your device's IP for any network interface at a glance. The time of searching *what's my ip* is over.
![](/screenshots/mainwindow.png)
## Make sure your VPN is working
What IP shows your location based on your IP address, so that you can make sure your VPN is working.
## Test your ports
List the ports listening on your system, and check if they're publicly reachable.
![](/screenshots/ports.png)
## Discover devices on your LAN
List all devices on your LAN, their hostname and quick shortcuts to access some well known ports.
![](/screenshots/lan.png)
# Hack
What IP is written using Python 3 and GTK. It’s free software, released under the GPL3 license. Feel free to browse the source code on the [GitLab repository](https://gitlab.gnome.org/gabmus/whatip), fork it, make changes or open issues!
# Support
Have you found a bug? Do you want a new feature? Whatever the case, opening an issue is never a bad idea. You can do that on [What IP's issues page](https://gitlab.gnome.org/GabMus/whatip/-/issues)
- title: My other projects
links:
- title: Feeds
link: https://gfeeds.gabmus.org
- title: HydraPaper
link: https://hydrapaper.gabmus.org
- title: Giara
link: https://giara.gabmus.org
- title: Notorious
link: https://notorious.gabmus.org
- title: Ada UI
link: https://gitlab.com/gabmus/ada-ui
- title: About me
links:
- title: My personal website
link: https://gabmus.org
- title: My GitLab
link: https://gitlab.com/gabmus
- title: My GNOME GitLab
link: https://gitlab.gnome.org/gabmus
- title: Donate on LiberaPay
link: https://liberapay.com/gabmus/
enabled: true
title: Install
downloads:
- distro: Flathub
button_title: Download on Flathub
button_link: https://flathub.org/apps/details/org.gabmus.whatip
- distro: Arch Linux
icon: arch
button_title: View the AUR page
button_link: https://aur.archlinux.org/packages/whatip-git/
commands: |
yay -S whatip-git
- distro: Source code
icon: gitlab
button_title: Browse the GitLab repository
button_link: https://gitlab.gnome.org/gabmus/whatip
- type: markdown
data: features
- type: downloads
data: install
- type: markdown
data: hack_support
enabled: true
icon: /logo.svg
title: What IP
subtitle: Network information tool
picture: /screenshots/mainwindow.png
gradient:
angle: 150deg
stop1: "#26a269"
stop2: "#8ff0a4"
buttons:
- title: Install
link: "#install"
- title: Discover the features
link: "#features"
outline: true
Subproject commit 6a2d2dfe487d2eb27c9d93c10beb07004fd1f4e2
function getCookie(name) {
for (let cookie of document.cookie.split(';')) {
cookie = cookie.trim();
if (cookie.split('=')[0] == name) {
return cookie.split('=')[1].replace(';', '').trim();
}
}
console.log('no cookie');
return null;
}
function setCookie(name, value) {
document.cookie = `${name}=${value}`;
}
function darktoggle() {
let body = document.getElementsByTagName('body')[0];
body.className = body.className == 'darkmode' ? '' : 'darkmode';
setCookie(
'org.gabmus.darkmode',
body.className == 'darkmode' ? '1' : '0'
);
}
var browserPrefersDarkMode = window.getComputedStyle(
document.getElementById('color_preference_detector')
).content === '"dark"';
if (getCookie('org.gabmus.darkmode') == null) {
setCookie(
'org.gabmus.darkmode',
browserPrefersDarkMode ? '1' : '0'
);
}
if (getCookie('org.gabmus.darkmode') == '1') {
darktoggle();
}
const debounce = (fn) => {
let frame;
return (...params) => {
if (frame) {
cancelAnimationFrame(frame);
}
frame = requestAnimationFrame(() => {
fn(...params);
});
}
};
const storeScroll = () => {
document.documentElement.dataset.scroll = window.scrollY;
}
document.addEventListener('scroll', debounce(storeScroll), { passive: true });
storeScroll();
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="favicon.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
id="svg2170"
version="1.1"
viewBox="0 0 4.2333333 4.2333335"
height="16"
width="16"
inkscape:export-filename="/home/gabmus/git/whatip/website/favicon.png"
inkscape:export-xdpi="192"
inkscape:export-ydpi="192">
<defs
id="defs2164">
<linearGradient
xlink:href="#linearGradient1038"
id="linearGradient1159"
x1="27.99999"
y1="-276"
x2="115.99999"
y2="-276"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.67798714,0,0,0.52916666,6.5899031,-124.84283)" />
<linearGradient
id="linearGradient1038">
<stop
id="stop1026"
offset="0"
style="stop-color:#c0bfbc;stop-opacity:1" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0.04545454"
id="stop1028" />
<stop
style="stop-color:#deddda;stop-opacity:1"
offset="0.09090909"
id="stop1030" />
<stop
style="stop-color:#deddda;stop-opacity:1"
offset="0.90909088"
id="stop1032" />
<stop
id="stop1034"
offset="0.95454544"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
id="stop1036"
offset="1"
style="stop-color:#c0bfbc;stop-opacity:1" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient1351-3"
id="linearGradient1130"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25,0,0,0.25,180,83)"
x1="344"
y1="76"
x2="340"
y2="72" />
<linearGradient
id="linearGradient1351-3">
<stop
style="stop-color:#d5d3cf;stop-opacity:1"
offset="0"
id="stop1347" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop1349-6" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath1609-7">
<path
inkscape:connector-curvature="0"
id="path1611-5"
d="m 252,116 28,-28 v -8 h -36 v 36 z"
style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</clipPath>
<linearGradient
gradientUnits="userSpaceOnUse"
y2="262.99997"
x2="108"
y1="262.99997"
x1="19.999998"
id="linearGradient1049"
xlink:href="#linearGradient1662"
gradientTransform="matrix(0.26458334,0,0,0.26458334,-40.481252,167.88332)" />
<linearGradient
id="linearGradient1662">
<stop
id="stop1650"
offset="0"
style="stop-color:#77767b;stop-opacity:1" />
<stop
style="stop-color:#9a9996;stop-opacity:1"
offset="0.04545455"
id="stop1652" />
<stop
id="stop1654"
offset="0.09090909"
style="stop-color:#77767b;stop-opacity:1" />
<stop
style="stop-color:#77767b;stop-opacity:1"
offset="0.90909094"
id="stop1656" />
<stop
id="stop1658"
offset="0.95454544"
style="stop-color:#9a9996;stop-opacity:1" />
<stop
id="stop1660"
offset="1"
style="stop-color:#77767b;stop-opacity:1" />
</linearGradient>
<clipPath
id="a-9">
<rect
id="rect7791-1"
overflow="visible"
height="6.375"
style="color:#bebebe;overflow:visible;fill:#bebebe;stroke-width:2;marker:none"
width="3.825"
x="26.85"
y="220.75" />
</clipPath>
<clipPath
id="b-2">
<rect
id="rect7794-7"
overflow="visible"
height="5.3130002"
style="color:#bebebe;overflow:visible;fill:#bebebe;stroke-width:2;marker:none"
width="2.898"
x="26.966"
y="221.282" />
</clipPath>
<clipPath
id="c-0">
<rect
id="rect7797-9"
overflow="visible"
height="4.8779998"
style="color:#bebebe;overflow:visible;fill:#bebebe;stroke-width:2;marker:none"
width="1.876"
x="26.999001"
y="221.502" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath1609-7-91">
<path
inkscape:connector-curvature="0"
id="path1611-5-2"
d="m 252,116 28,-28 v -8 h -36 v 36 z"
style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath1609-7-9">
<path
inkscape:connector-curvature="0"
id="path1611-5-1"
d="m 252,116 28,-28 v -8 h -36 v 36 z"
style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</clipPath>
<clipPath
id="clipPath1609-7-7"
clipPathUnits="userSpaceOnUse">
<path
style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252,116 28,-28 v -8 h -36 v 36 z"
id="path1611-5-3"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-bbox="true"
inkscape:window-maximized="1"
inkscape:window-y="27"
inkscape:window-x="0"
inkscape:window-height="1376"
inkscape:window-width="2560"
units="px"
showgrid="true"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="6.1991465"
inkscape:cx="5.6108466"
inkscape:zoom="45.254834"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:bbox-paths="false"
inkscape:snap-to-guides="false"
inkscape:object-nodes="true"
inkscape:bbox-nodes="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-bbox-edge-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid859" />
</sodipodi:namedview>
<metadata
id="metadata2167">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-229.26665)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<rect
style="fill:#8ff0a4;fill-opacity:1;stroke-width:10.00000095;paint-order:fill markers stroke"
id="rect909"
width="4.2333336"
height="4.233336"
x="0"
y="229.26663"
ry="0.26460126" />
<path
id="path873"
d="m 0.33072917,229.53123 c -0.1984375,0 -0.330729190000001,0.1323 -0.330729190000001,0.33073 v 3.04271 c 0,0.19844 0.132291690000001,0.33073 0.330729190000001,0.33073 H 2.38125 c 0.5291667,0 1.5875001,-1.05833 1.5875001,-1.05833 0.1984375,-0.19844 0.2645833,-0.46302 0.2645833,-0.79375 0,-0.33073 -0.066146,-0.59532 -0.2645833,-0.79375 0,0 -1.0583334,-1.05834 -1.5875001,-1.05834 z m 0.72760413,0.79375 h 0.7937501 v 0.79375 H 1.5875 v 0.26459 h 0.5291667 v 0.52916 H 2.38125 v 0.79375 H 1.5875 v -0.79375 H 1.8520834 V 231.6479 H 1.0583333 v 0.26458 h 0.2645834 v 0.79375 H 0.52916667 v -0.79375 h 0.2645833 v -0.52916 H 1.3229167 v -0.26459 H 1.0583333 Z m 2.3812501,0.79375 c 0.1461241,0 0.2645833,0.11846 0.2645833,0.26459 0,0.14612 -0.1184592,0.26458 -0.2645833,0.26458 -0.1461241,0 -0.2645834,-0.11846 -0.2645834,-0.26458 0,-0.14613 0.1184593,-0.26459 0.2645834,-0.26459 z"
inkscape:connector-curvature="0"
style="fill:#2e3335;stroke-width:0.26458335" />
</g>
</svg>
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: italic;
font-weight: 400;
font-display: swap;
src: local('Red Hat Display It'), local('RedHatDisplay-Italic'), url('./RedHatDisplay-Italic.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: italic;
font-weight: 500;
font-display: swap;
src: local('Red Hat Display Medium It'), local('RedHatDisplay-MediumItalic'), url('./RedHatDisplay-MediumItalic.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: italic;
font-weight: 700;
font-display: swap;
src: local('Red Hat Display Bold It'), local('RedHatDisplay-BoldItalic'), url('./RedHatDisplay-BoldItalic.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: italic;
font-weight: 900;
font-display: swap;
src: local('Red Hat Display Black It'), local('RedHatDisplay-BlackItalic'), url('./RedHatDisplay-BlackItalic.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Red Hat Display'), local('RedHatDisplay-Regular'), url('./RedHatDisplay-Regular.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: normal;
font-weight: 500;
font-display: swap;
src: local('Red Hat Display Medium'), local('RedHatDisplay-Medium'), url('./RedHatDisplay-Medium.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local('Red Hat Display Bold'), local('RedHatDisplay-Bold'), url('./RedHatDisplay-Bold.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
font-family: 'Red Hat Display';
font-style: normal;
font-weight: 900;
font-display: swap;
src: local('Red Hat Display Black'), local('RedHatDisplay-Black'), url('./RedHatDisplay-Black.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="bug.svg"
id="svg4"
viewBox="0 0 128 128"
version="1.1"
height="128"
width="128">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs