add git log widget
All checks were successful
/ test (push) Successful in 18s

This commit is contained in:
Soph :3 2024-08-29 23:16:35 +03:00
parent 1efaf2f0b1
commit f75305ebfe
Signed by: sophie
GPG key ID: EDA5D222A0C270F2
5 changed files with 64 additions and 7 deletions

1
global.d.ts vendored
View file

@ -1,4 +1,5 @@
declare global {
let __BLOG_POSTS__: string[]
let __GIT_LOG_OUTPUT__: Record<string, string>;
}
export { };

View file

@ -2,10 +2,12 @@ import SSSG from "sssg";
import Variables from "sssg/src/plugins/variables";
import Dev from "sssg/src/plugins/dev";
import TSCompiler from "sssg/src/plugins/ts-compiler";
import MarkdownMetadata from "sssg/src/plugins/markdown-metadata";
import MarkdownMetadata, {parseMetadata} from "sssg/src/plugins/markdown-metadata";
import MarkdownCompiler from "sssg/src/plugins/markdown-compiler";
import CompileTimeJS from "sssg/src/plugins/compile-time-js";
import {$} from "bun"
import * as path from "path";
import * as fs from "fs";
@ -14,6 +16,10 @@ const sssg = new SSSG({
inputFolder: path.join(__dirname, "website"),
});
const gitLogShell = await $`git log --pretty=format:'commit=%H%nauthor=%aN <%aE>%ndate=%ad%nmessage=%s%n=========' -1`.quiet()
const gitLogOutput = gitLogShell.text("utf8");
const gitLog = JSON.stringify(parseMetadata(gitLogOutput));
await sssg.run({
plugins: [
new CompileTimeJS(),
@ -22,6 +28,7 @@ await sssg.run({
__BLOG_POSTS__: JSON.stringify(
fs.readdirSync("./website/blogs").map((z) => z.replace(".md", ""))
),
__GIT_LOG_OUTPUT__: gitLog
};
if (fs.existsSync("./website/templates")) {

View file

@ -18,6 +18,7 @@ a {
grid-template-areas:
"details skills"
"details donations"
"details commit"
"details lastfm"
"webrings webrings"
"status binkies"
@ -95,6 +96,22 @@ h6 {
.skills {
grid-area: skills;
}
.commit {
grid-area: commit;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0px;
padding: 5px;
margin: 5px;
}
.commit > *,
.commit > * > * {
padding: 0;
margin: 0;
}
.binkies {
grid-area: binkies;
display: flex;
@ -111,8 +128,9 @@ h6 {
min-height: 75vh;
}
.logo {
max-width:80%;
max-height:80%;}
max-width: 80%;
max-height: 80%;
}
webring-container {
width: unset !important;
height: unset !important;
@ -125,6 +143,7 @@ webring-container {
"skills "
"donations "
"lastfm"
"commit"
"webrings"
"binkies"
"blog "

View file

@ -6,6 +6,7 @@ __TEMPLATE_HEAD__
<script type="module" src="scripts/particles.js"></script>
<script type="module" src="scripts/lastfm.js"></script>
<script type="module" src="scripts/binkies.js"></script>
<script type="module" src="scripts/commit.js"></script>
<link rel="stylesheet" href="assets/style.css">
</head>
@ -95,7 +96,8 @@ __TEMPLATE_HEAD__
</ul>
</div>
<div class="paper blog" id="root"></div>
<div class="paper status" id="status"></div>
<div class="paper status" id="status">
</div>
<div class="paper binkies">
</div>
<div class="paper webrings">
@ -112,10 +114,10 @@ __TEMPLATE_HEAD__
src="https://webring.bucketfish.me/embed.html?name=☹️☹️☹️.ovh&lightmode=true"></iframe>
</div>
<div class="paper lastfm" id="lastfm">
<div class="paper lastfm" id="lastfm"></div>
<div class="paper commit" id="commit">
<h1>Latest commit!</h1>
</div>
</div>
</body>
</html>

28
website/scripts/commit.ts Normal file
View file

@ -0,0 +1,28 @@
import { timeAgo } from "./util";
const git = __GIT_LOG_OUTPUT__;
const date = new Date(git.date);
const commit = document.getElementById("commit");
const a = document.createElement("a");
a.href = `https://git.sad.ovh/sophie/website/commit/${git.commit}`;
const h2 = document.createElement("h2")
h2.innerText = git.message;
a.appendChild(h2);
const p = document.createElement("p");
p.innerText = `${timeAgo(date)} -- ${git.date}`
const p2 = document.createElement("p");
p2.innerText = `commit by ${git.author.replace(/[^ ]*@.*/, "")}`
commit?.appendChild(a)
commit?.appendChild(p)
commit?.appendChild(p2)
// <h1>More binkies + thinliquid's logo!! tysm :3</h1>
//<p>20 minutes ago -- 2024-08-29 22:00:36 GMT+3</p>