add version string loading to portfolio page #3
5 changed files with 44 additions and 3 deletions
|
@ -1,6 +1,9 @@
|
|||
---
|
||||
title: "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:
|
||||
|
@ -8,19 +11,22 @@ Here you can find a list of projects I worked on or am currently working on:
|
|||
## certwarden-deploy
|
||||
Language: `Go`
|
||||
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)
|
||||
|
||||
## Mailcow Alias Automation
|
||||
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@...).
|
||||
|
||||
## ntppool-exporter
|
||||
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.
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<title>{{ or .Title .Site.Title }}</title>
|
||||
{{ partial "head/favicon.html" . }}
|
||||
{{ partial "head/styling.html" . }}
|
||||
{{ partial "head/scripts.html" . }}
|
||||
</head>
|
||||
<body>
|
||||
{{ 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