Compare commits

..

8 Commits

Author SHA1 Message Date
386ae49027 feat: add consent banner 2025-10-23 20:37:02 +05:30
d534cc2f05 feat: add consent banner of analystics 2025-10-23 20:17:48 +05:30
b0793486eb feat: google analytics 2025-10-23 19:33:48 +05:30
2bae3b820c feat: makefile 2025-10-23 19:33:36 +05:30
b33546eb26 fix: mobile menu for donation widget 2025-10-23 12:26:04 +05:30
671f527c84 feat: add https 2025-10-23 12:11:44 +05:30
29b76cbfed feat: add donation 2025-10-22 16:38:20 +05:30
72d4745dae feat: add ja language support 2025-10-21 20:55:32 +05:30
9 changed files with 269 additions and 8 deletions

12
Makefile Normal file
View File

@@ -0,0 +1,12 @@
BUILD_DIR := public
.PHONEY: serve build clean
serve:
hugo server -D
build:
hugo --minify
clean:
rm -r $(BUILD_DIR)

40
assets/css/consent.css Normal file
View File

@@ -0,0 +1,40 @@
/* Banner container - default (desktop) */
#cookie-consent-banner {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #333;
padding: 1rem;
text-align: center;
z-index: 9999;
display: flex;
justify-content: center;
align-items: center;
gap: 1rem;
}
.cookie-buttons {
margin-top: 0.75rem;
}
/* Mobile styles */
@media screen and (max-width: 768px) {
#cookie-consent-banner {
flex-direction: column;
align-items: flex-start;
text-align: left;
padding: 0.75px;
gap: 1rem;
}
#cookie-consent-banner .cookie-text {
max-width: 70%;
}
.cookie-buttons {
margin-top: 0.5rem;
}
}

View File

@@ -1,6 +1,6 @@
---
title: "From Shankha, Daemonlord"
---
+++
title = "From Shankha, Daemonlord"
+++
The Daemon Lord is a being of profound observation, a scholar of both scientific principles and the world's deep-seated emotions. He seeks to understand the fundamental truths of existence by seeing, listening, and feeling the intricate tapestry of reality, transforming every phenomenon into a subject of study. In stark contrast, many greedy men defy this pursuit of knowledge. Driven by a lust for power and personal greatness, they reject scientific truth and embrace delusion. These individuals weave their own fantasies, inventing supreme beings and false narratives to control others and elevate themselves. They lie and manipulate, all to fill the empty cracks within their own human nature, seeking to satisfy a greed that can never be quenched.

9
content/ja/_index.md Normal file
View File

@@ -0,0 +1,9 @@
+++
title = "魔王シャンカより"
+++
魔王とは、深遠なる観察者であり、科学的原理と世界に深く根差した感情の双方を探求する学者である。あらゆる事象を研究対象としながら、現実の入り組んだ様相を見、聞き、感じることで、存在の根源的な真理を理解しようとするのだ。
それとは全く対照的に、多くの強欲な人間たちはこの知識の探求に抗う。権力への渇望と自らの偉大さへの執着に駆られ、彼らは科学的真理を拒絶し、妄想に身を委ねる。他者を支配し自らを高めるために、至高の存在や偽りの物語を創り上げ、自らの幻想を紡ぎ出すのだ。彼らが嘘をつき、人々を操るのは、決して満たされることのない強欲を満たし、自らの人間性に生じた空虚な亀裂を埋めるためなのである。
最終的に、魔王は道徳ではなく、現実そのものを裁く物言わぬ審判者として存在する。彼の目的は支配や命令ではなく、ただ理解することにある。人間の野心と自己欺瞞の霧に覆われたこの世界にあって、彼こそは宇宙の真の姿を映し出す、揺るぎなきレンズなのである。

View File

@@ -1,7 +1,8 @@
baseURL = 'http://daemonlord.in/'
languageCode = 'en-us'
baseURL = 'https://daemonlord.in/'
title = 'Daemon Lord'
theme = 'terminal'
defaultContentLanguage = "en"
defaultContentLanguageInSubdir = true
copyright = "© 2025 Daemonlord"
[params]
@@ -17,6 +18,8 @@ copyright = "© 2025 Daemonlord"
[languages.en]
languageName = 'English'
title = "Daemonlord"
weight = 1
contentDir = 'content/en'
[languages.en.params]
menuMore = 'Show more'
@@ -24,17 +27,56 @@ copyright = "© 2025 Daemonlord"
[languages.en.params.logo]
logoText = 'Daemon Lord'
logoHomeLink = '/'
logoHomeLink = '/en/'
[languages.en.menu]
[[languages.en.menu.main]]
identifier = 'home'
name = 'Home'
url = '/'
url = '/en/'
weight = 1
[[languages.en.menu.main]]
identifier = 'support'
name = 'Buy Me a Coffee'
url = '#'
weight = 99
# [[languages.en.menu.main]]
# identifier = 'posts'
# name = 'Posts'
# url = '/posts'
# url = '/en/posts'
# weight = 2
[languages.ja]
languageName = '日本語 '
title = 'デーモンロード'
weight = 1
contentDir = 'content/ja'
[languages.ja.params]
menuMore = 'もっと見る'
readMore = '続きを読む'
[languages.ja.params.logo]
logoText = 'デーモンロード'
logoHomeLink = '/ja/'
[languages.ja.menu]
[[languages.ja.menu.main]]
identifier = 'home'
name = 'ホーム'
url = '/ja/'
weight = 1
[[languages.ja.menu.main]]
identifier = 'support'
name = 'コーヒーを奢る'
url = '#'
weight = 99
# [[languages.ja.menu.main]]
# identifier = 'posts'
# name = '投稿'
# url = '/ja/posts'
# weight = 2

View File

@@ -0,0 +1,28 @@
<script data-name="BMC-Widget"
data-cfasync="false"
src="https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js"
data-id="daemonlord"
data-description="Support me on Buy me a coffee!"
data-message="Thanks for Visiting!"
data-color="#eec35e"
data-position="Right"
data-x_margin="18"
data-y_margin="18">
</script>
<script>
function openBMCWidget() {
const container = document.getElementById('bmc-wbtn');
if (container) container.click();
}
document.addEventListener('DOMContentLoaded', () => {
const supportLinks = document.querySelectorAll('a[data-identifier="support"]');
supportLinks.forEach(link => {
link.addEventListener('click', (e) => {
e.preventDefault();
openBMCWidget();
});
});
});
</script>

View File

@@ -0,0 +1,54 @@
<!-- Cookie Consent Banner -->
<div id="cookie-consent-banner" style="display:none;">
<div class="cookie-text">
We use cookies and analytics to improve your experience.
</div>
<div class="cookie-buttons">
<button id="accept-cookies">Accept</button>
<button id="reject-cookies">Reject</button>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
const banner = document.getElementById('cookie-consent-banner');
const accepted = localStorage.getItem('cookies-accepted');
// Show banner if no decision yet
if (!accepted) {
banner.style.display = 'block';
} else if (accepted === 'true') {
loadGoogleAnalytics();
}
// Accept cookies
document.getElementById('accept-cookies').addEventListener('click', function() {
localStorage.setItem('cookies-accepted', 'true');
banner.style.display = 'none';
loadGoogleAnalytics();
});
// Reject cookies
document.getElementById('reject-cookies').addEventListener('click', function() {
localStorage.setItem('cookies-accepted', 'false');
banner.style.display = 'none';
});
});
// Function to load GA after consent
function loadGoogleAnalytics() {
if (!document.getElementById('ga-script')) {
const script = document.createElement('script');
script.id = 'ga-script';
script.async = true;
script.src = "https://www.googletagmanager.com/gtag/js?id=G-JFCYXHXCN1";
document.head.appendChild(script);
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-JFCYXHXCN1');
}
}
</script>

View File

@@ -0,0 +1,51 @@
<nav class="navigation-menu">
<ul class="navigation-menu__inner menu--desktop">
{{ if or $.Site.Params.showMenuItems ( eq .Site.Params.showMenuItems 0 ) }}
{{ range first $.Site.Params.showMenuItems $.Site.Menus.main }}
{{ if not .HasChildren }}
<li>
<a href="{{ .URL }}"
{{ if .Params.NewTab -}} target="_blank" {{- end }}
{{ with .Identifier }}data-identifier="{{ . }}"{{ end }}>
{{ .Name }}
</a>
</li>
{{ end }}
{{ end }}
{{ if gt (len $.Site.Menus.main) $.Site.Params.showMenuItems }}
<li>
<ul class="menu">
<li class="menu__trigger">{{ $.Site.Params.menuMore }}&nbsp;</li>
<li>
<ul class="menu__dropdown">
{{ range last (sub (len $.Site.Menus.main) $.Site.Params.showMenuItems) $.Site.Menus.main }}
{{ if not .HasChildren }}
<li>
<a href="{{ .URL }}"
{{ if .Params.NewTab -}} target="_blank" {{- end }}
{{ with .Identifier }}data-identifier="{{ . }}"{{ end }}>
{{ .Name }}
</a>
</li>
{{ end }}
{{ end }}
</ul>
</li>
</ul>
</li>
{{ end }}
{{ else }}
{{ range $.Site.Menus.main }}
{{ if not .HasChildren }}
<li>
<a href="{{ .URL }}"
{{ if .Params.NewTab -}} target="_blank" {{- end }}
{{ with .Identifier }}data-identifier="{{ . }}"{{ end }}>
{{ .Name }}
</a>
</li>
{{ end }}
{{ end }}
{{ end }}
</ul>
</nav>

View File

@@ -0,0 +1,25 @@
<ul class="menu menu--mobile">
<li class="menu__trigger">Menu&nbsp;</li>
<li>
<ul class="menu__dropdown">
{{ range $.Site.Menus.main }}
{{ if not .HasChildren }}
<li>
<a href="{{ .URL }}"
{{ with .Identifier }}data-identifier="{{ . }}"{{ end }}>
{{ .Name }}
</a>
</li>
{{ end }}
{{ end }}
{{ if and $.Site.Params.showLanguageSelector (len $.Site.Home.AllTranslations) }}
<hr />
{{ range $.Site.Home.AllTranslations }}
<li>
<a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
</li>
{{ end }}
{{ end }}
</ul>
</li>
</ul>