summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/css/main.css12
-rw-r--r--layouts/_default/_markup/render-heading.html2
-rw-r--r--layouts/partials/breadcrumbs.html4
-rw-r--r--wiki/contributors.md81
4 files changed, 93 insertions, 6 deletions
diff --git a/assets/css/main.css b/assets/css/main.css
index 6e57bcf..54c98cb 100644
--- a/assets/css/main.css
+++ b/assets/css/main.css
@@ -38,7 +38,7 @@ h6 {
}
.heading {
- a {
+ .anchor {
text-decoration: none;
font-weight: normal;
color: var(--content-secondary);
@@ -47,7 +47,7 @@ h6 {
font-family: var(--font-mono);
}
- &:hover a {
+ &:hover .anchor {
visibility: visible;
}
}
@@ -512,8 +512,14 @@ figcaption {
/* breadcrumbs */
.breadcrumbs {
- font-size: .8em;
+ font-size: small;
margin-bottom: calc(-0.5 * var(--h1-margin-top));
+ font-family: var(--font-mono);
+}
+
+.breadcrumbs span {
+ margin-right: -5px;
+ margin-left: -5px;
}
/* Comments */
diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html
index 44430d6..2699634 100644
--- a/layouts/_default/_markup/render-heading.html
+++ b/layouts/_default/_markup/render-heading.html
@@ -1,4 +1,4 @@
<h{{ .Level }} class="heading" id="{{ .Anchor }}">
{{ .Text }}
- <a href="#{{ .Anchor }}">#</a>
+ <a class="anchor" href="#{{ .Anchor }}">#</a>
</h{{ .Level }}>
diff --git a/layouts/partials/breadcrumbs.html b/layouts/partials/breadcrumbs.html
index 30a4df1..5c4fb62 100644
--- a/layouts/partials/breadcrumbs.html
+++ b/layouts/partials/breadcrumbs.html
@@ -2,8 +2,8 @@
<div class="breadcrumbs">
{{ range .Ancestors.Reverse }}
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
- <span class="breadcrumbs-separator"> > </span>
+ <span class="breadcrumbs-separator"> / </span>
{{ end }}
- <a class="breadcrumbs-current" href="{{ .RelPermalink }}">{{ .Title }}</a>
+ <a href="{{ .RelPermalink }}">{{ .Title }}</a>
</div>
{{ end }} \ No newline at end of file
diff --git a/wiki/contributors.md b/wiki/contributors.md
new file mode 100644
index 0000000..3443c07
--- /dev/null
+++ b/wiki/contributors.md
@@ -0,0 +1,81 @@
+---
+title: "Contributors"
+date: "2025-01-01"
+summary: "List of Typo's contributors"
+description: "List of Typo's contributors"
+toc: false
+readTime: false
+autonumber: false
+math: false
+showTags: false
+hidePagination: true
+hideBackToTop: false
+---
+
+The theme has accumulated <span id="star-count">over 300</span> stars on Github, and
+currently counts <span id="contributors-count">over 20</span> contributors:
+
+<ul id="contributors-list" style="list-style-type: none; padding: 0; margin-top: 2rem"></ul>
+
+<script>
+ async function fetchGitHubData() {
+ const cacheKey = "githubData";
+ const cacheExpiryKey = "githubDataExpiry";
+ const cacheExpiryTime = 3600 * 1000; // 1 hour in milliseconds
+
+ // Check if cached data exists and is still valid
+ const cachedData = localStorage.getItem(cacheKey);
+ const cachedExpiry = localStorage.getItem(cacheExpiryKey);
+ const now = new Date().getTime();
+
+ if (cachedData && cachedExpiry && now < cachedExpiry) {
+ const { starCount, contributors } = JSON.parse(cachedData);
+ updateUI(starCount, contributors);
+ return;
+ }
+
+ try {
+ // Fetch star count
+ const repoResponse = await fetch("https://api.github.com/repos/tomfran/typo");
+ const repoData = await repoResponse.json();
+ const starCount = repoData.stargazers_count;
+
+ // Fetch contributors
+ const contributorsResponse = await fetch("https://api.github.com/repos/tomfran/typo/contributors");
+ const contributors = await contributorsResponse.json();
+
+ // Cache data
+ localStorage.setItem(cacheKey, JSON.stringify({ starCount, contributors }));
+ localStorage.setItem(cacheExpiryKey, now + cacheExpiryTime);
+
+ updateUI(starCount, contributors);
+
+ } catch (error) {
+ console.error("Error fetching GitHub data:", error);
+ document.getElementById("star-count").textContent = "Failed to fetch star count.";
+ document.getElementById("contributors-count").textContent = "Failed to fetch contributors count.";
+ }
+ }
+
+ function updateUI(starCount, contributors) {
+ document.getElementById("star-count").textContent = `${starCount}`;
+ document.getElementById("contributors-count").textContent = `${contributors.length}`;
+
+ const contributorsList = document.getElementById("contributors-list");
+ contributorsList.innerHTML = "";
+
+ contributors.forEach(contributor => {
+ const listItem = document.createElement("li");
+ listItem.style.marginBottom = ".5rem";
+ listItem.innerHTML = `
+ <span style="display: flex; align-items: bottom;">
+ <img src="${contributor.avatar_url}" alt="${contributor.login}" width="30" height="30" style="margin-right: 10px; border-radius: 50%;">
+ <a href="${contributor.html_url}">${contributor.login}</a>&nbsp;- ${contributor.contributions}
+ </span>
+ `;
+ contributorsList.appendChild(listItem);
+ });
+ }
+
+ fetchGitHubData();
+</script>