diff --git a/assets/js/background-blur.js b/assets/js/background-blur.js
new file mode 100644
index 00000000..57ba149d
--- /dev/null
+++ b/assets/js/background-blur.js
@@ -0,0 +1,13 @@
+function setBackgroundBlur() {
+ const scriptElement = document.currentScript;
+ const targetId = scriptElement && scriptElement.getAttribute("data-target-id") ? scriptElement.getAttribute("data-target-id")
+ : (console.error("data-target-id is null"), null);
+
+ window.addEventListener("scroll", () => {
+ const scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
+ const backgroundBlur = document.getElementById(targetId);
+ backgroundBlur.style.opacity = scroll / 300;
+ });
+}
+
+setBackgroundBlur();
diff --git a/assets/js/fetch-repo.js b/assets/js/fetch-repo.js
new file mode 100644
index 00000000..689b1e96
--- /dev/null
+++ b/assets/js/fetch-repo.js
@@ -0,0 +1,30 @@
+function fetchRepo() {
+ const scriptElement = document.currentScript;
+ const repoURL = scriptElement && scriptElement.getAttribute("data-repo-url") ? scriptElement.getAttribute("data-repo-url")
+ : (console.error("data-repo-url is null"), null);
+ const repoId = scriptElement && scriptElement.getAttribute("data-repo-id") ? scriptElement.getAttribute("data-repo-id")
+ : (console.error("data-repo-id is null"), null);
+ const requestObjects =
+ repoId.startsWith("github") ? ["full_name", "description", "stargazers_count", "forks"]
+ : repoId.startsWith("gitlab") ? ["name_with_namespace", "description", "star_count", "forks_count"]
+ : ["full_name", "description", "stars_count", "forks_count"];
+ fetch(repoURL, {
+ headers: new Headers({
+ "User-agent": "Mozilla/4.0 Custom User Agent"
+ })
+ })
+ .then((response) => response.json())
+ .then((data) => {
+ requestObjects.forEach((requestObject) => {
+ let element = document.getElementById(`${repoId}-${requestObject}`);
+ if (requestObject === "stargazers_count" && repoId.startsWith("github")) {
+ element = document.getElementById(`${repoId}-stargazers`);
+ }
+ element ? (element.innerHTML = data[requestObject])
+ : (console.error(`Element '${repoId}-${requestObject}' not found`), null);
+ });
+ })
+ .catch((error) => console.error(error));
+}
+
+fetchRepo();
diff --git a/assets/js/page.js b/assets/js/page.js
index e3cb9794..0aef831e 100644
--- a/assets/js/page.js
+++ b/assets/js/page.js
@@ -1,15 +1,17 @@
-var liked_page = false
-var id = oid ? oid.replaceAll("/", "-") : oid
-var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
+const pageScriptElement = document.currentScript;
+const oid = pageScriptElement && pageScriptElement.getAttribute("data-oid") ? pageScriptElement.getAttribute("data-oid") : (console.error("data-oid is null"), null);
+const oid_likes = pageScriptElement && pageScriptElement.getAttribute("data-oid-likes") ? pageScriptElement.getAttribute("data-oid-likes") : (console.error("data-oid-likes is null"), null);
+const liked_page = false;
+const id = oid ? oid.replaceAll("/", "-") : oid;
+const id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes;
-if (typeof auth !== 'undefined') {
-
- var viewed = localStorage.getItem(id);
+if (typeof auth !== "undefined") {
+ const viewed = localStorage.getItem(id);
if (!viewed) {
auth.signInAnonymously()
.then(() => {
- var docRef = db.collection('views').doc(id)
+ const docRef = db.collection('views').doc(id)
localStorage.setItem(id, true);
docRef.get().then((doc) => {
if (doc.exists) {
@@ -24,13 +26,13 @@ if (typeof auth !== 'undefined') {
});
})
.catch((error) => {
- var errorCode = error.code;
- var errorMessage = error.message;
+ const errorCode = error.code;
+ const errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
- var liked = localStorage.getItem(id_likes);
+ const liked = localStorage.getItem(id_likes);
if (liked) {
liked_page = true
@@ -44,7 +46,7 @@ if (typeof auth !== 'undefined') {
function like_article(id_likes) {
auth.signInAnonymously()
.then(() => {
- var docRef = db.collection('likes').doc(id_likes)
+ const docRef = db.collection('likes').doc(id_likes)
docRef.get().then((doc) => {
liked_page = true
localStorage.setItem(id_likes, true);
@@ -63,8 +65,8 @@ function like_article(id_likes) {
});
})
.catch((error) => {
- var errorCode = error.code;
- var errorMessage = error.message;
+ const errorCode = error.code;
+ const errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
@@ -72,7 +74,7 @@ function like_article(id_likes) {
function remove_like_article(id_likes) {
auth.signInAnonymously()
.then(() => {
- var docRef = db.collection('likes').doc(id_likes)
+ const docRef = db.collection('likes').doc(id_likes)
docRef.get().then((doc) => {
liked_page = false
localStorage.removeItem(id_likes);
@@ -91,8 +93,8 @@ function remove_like_article(id_likes) {
});
})
.catch((error) => {
- var errorCode = error.code;
- var errorMessage = error.message;
+ const errorCode = error.code;
+ const errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
@@ -103,4 +105,4 @@ function process_article() {
} else {
remove_like_article(id_likes)
}
-}
\ No newline at end of file
+}
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index d236e9b0..6533b347 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -26,13 +26,9 @@
{{ $lang := print "." .Lang ".md" }}
{{ $path = replace $path $lang ".md" }}
{{end}}
-
{{ $jsPage := resources.Get "js/page.js" }}
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint ($.Site.Params.fingerprintAlgorithm | default "sha512") }}
-
+
{{ end }}