add version string loading to portfolio page #3
5 changed files with 44 additions and 3 deletions
|
@ -1,6 +1,9 @@
|
||||||
---
|
---
|
||||||
title: "Portfolio"
|
title: "Portfolio"
|
||||||
description: "Adoras Software Development portfolio"
|
description: "Adoras Software Development portfolio"
|
||||||
|
params:
|
||||||
|
JS:
|
||||||
|
LatestVersion: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Here you can find a list of projects I worked on or am currently working on:
|
Here you can find a list of projects I worked on or am currently working on:
|
||||||
|
@ -8,19 +11,22 @@ Here you can find a list of projects I worked on or am currently working on:
|
||||||
## certwarden-deploy
|
## certwarden-deploy
|
||||||
Language: `Go`
|
Language: `Go`
|
||||||
Source: [code.lila.network/adoralaura/certwarden-deploy](https://code.lila.network/adoralaura/certwarden-deploy)
|
Source: [code.lila.network/adoralaura/certwarden-deploy](https://code.lila.network/adoralaura/certwarden-deploy)
|
||||||
Documentation: [certwarden-deploy.adora.codes](https://certwarden-deploy.adora.codes)
|
Documentation: [certwarden-deploy.adora.codes](https://certwarden-deploy.adora.codes)
|
||||||
|
Latest Version: {{< latest-forgejo-version "adoralaura/certwarden-deploy" >}}
|
||||||
|
|
||||||
Deployment tool for (Let's Encrypt) certificates managed by a CertWarden Instance (similar to certbot or acme.sh, just without the ACME stuff)
|
Deployment tool for (Let's Encrypt) certificates managed by a CertWarden Instance (similar to certbot or acme.sh, just without the ACME stuff)
|
||||||
|
|
||||||
## Mailcow Alias Automation
|
## Mailcow Alias Automation
|
||||||
Language: `Go`
|
Language: `Go`
|
||||||
Source: [code.lila.network/adoralaura/mailcow-admin-aliases](https://code.lila.network/adoralaura/mailcow-admin-aliases)
|
Source: [code.lila.network/adoralaura/mailcow-admin-aliases](https://code.lila.network/adoralaura/mailcow-admin-aliases)
|
||||||
|
Latest Version: {{< latest-forgejo-version "adoralaura/mailcow-admin-aliases" >}}
|
||||||
|
|
||||||
Automates the creation of important admin mail aliases (think security@..., postmaster@...).
|
Automates the creation of important admin mail aliases (think security@..., postmaster@...).
|
||||||
|
|
||||||
## ntppool-exporter
|
## ntppool-exporter
|
||||||
Language: `Go`
|
Language: `Go`
|
||||||
Source: [code.lila.network/adoralaura/ntppool-exporter](https://code.lila.network/adoralaura/ntppool-exporter)
|
Source: [code.lila.network/adoralaura/ntppool-exporter](https://code.lila.network/adoralaura/ntppool-exporter)
|
||||||
|
Latest Version: {{< latest-forgejo-version "adoralaura/ntppool-exporter" >}}
|
||||||
|
|
||||||
A Prometheus exporter application that pulls data from the ntppool.org API for a given NTP server and serves it in a Prometheus compatible format.
|
A Prometheus exporter application that pulls data from the ntppool.org API for a given NTP server and serves it in a Prometheus compatible format.
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
<title>{{ or .Title .Site.Title }}</title>
|
<title>{{ or .Title .Site.Title }}</title>
|
||||||
{{ partial "head/favicon.html" . }}
|
{{ partial "head/favicon.html" . }}
|
||||||
{{ partial "head/styling.html" . }}
|
{{ partial "head/styling.html" . }}
|
||||||
|
{{ partial "head/scripts.html" . }}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
{{ partial "body/nav.html" . }}
|
{{ partial "body/nav.html" . }}
|
||||||
|
|
3
layouts/partials/head/scripts.html
Normal file
3
layouts/partials/head/scripts.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{{ if .Page.Params.JS.LatestVersion }}
|
||||||
|
<script src="/js/latest-version.js" defer></script>
|
||||||
|
{{ end }}
|
1
layouts/shortcodes/latest-forgejo-version.html
Normal file
1
layouts/shortcodes/latest-forgejo-version.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<span class="forgejo-version", data-forgejo-repo="{{ .Get 0 }}">currently unavailable</span>
|
30
static/js/latest-version.js
Normal file
30
static/js/latest-version.js
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
async function FillLatestForgejoRelease() {
|
||||||
|
|
||||||
|
const apiPath = `https://forgejo-proxy.services-prod.lila.network/api/v1/code.lila.network/releases`
|
||||||
|
|
||||||
|
|
||||||
|
var forgejoItems = document.getElementsByClassName('forgejo-version')
|
||||||
|
|
||||||
|
const requestOptions = {
|
||||||
|
method: "GET",
|
||||||
|
redirect: "follow",
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
[...forgejoItems].forEach(async item => {
|
||||||
|
var repo = item.getAttribute("data-forgejo-repo");
|
||||||
|
|
||||||
|
var queryParam = new URLSearchParams({ namespace: repo }).toString()
|
||||||
|
|
||||||
|
|
||||||
|
var response = await fetch(`${apiPath}?${queryParam}`, requestOptions)
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
|
||||||
|
item.textContent = await response.text()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FillLatestForgejoRelease()
|
Loading…
Reference in a new issue