Adding new module

This commit is contained in:
fundor333
2024-07-25 22:48:56 +02:00
parent 52e414d335
commit 4933bcb299
80 changed files with 43 additions and 287 deletions

View File

@@ -1,102 +0,0 @@
{{ $data := getJSON "https://appletune.fundor333.com/api/commenti/" .Params.slug }}
{{ range $index, $element := $data }}
<div class="card mb-3" style="max-width: 540px;">
<div class="row g-0 align-items-center">
<div class="col-md-4 align-middle">
<img src="https://icotar.com/avatar/{{$element.name}}" height="40" width="40" class="img-fluid rounded-start"
alt="{{$element.name}}">
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title">{{$element.name}}</h5>
<p class="card-text">{{$element.text}}</p>
<p class="card-text"> {{$element.added}} </p>
{{ if $element.website }}
<a href="{{ $element.website }}" class="card-link"><i class="fa-duotone theme-fundor333 fa-link"></i></a>
{{ end }}
{{ if $element.twitter_account }}
<a href="https://twitter.com/{{ $element.twitter_account }}" class="card-link"><i
class="fab fa-twitter"></i></a>
{{ end }}
{{ if $element.github_account }}
<a href="https://github.com/{{ $element.github_account }}" class="card-link"><i class="fab fa-github"></i></a>
{{ end }}
</div>
</div>
</div>
</div>
{{end}}
<form id="commenti-form">
<input type="hidden" id="id_post_url" name="post_url" value="{{ .Params.slug }}">
<div class="form-group">
<label>Name/Alias</label>
<input class="form-control" name="name" id="id_name" placeholder="Name/Alias" required>
</div>
<div class="form-group">
<label>Comment</label>
<textarea class="form-control" name="text" id="id_text" rows="5" required></textarea>
</div>
<br>
<div class="form-group">
<label>WebSite (Optional)</label>
<input class="form-control" name="website" id="id_website" placeholder="My magical comment">
</div>
<div class="form-group">
<label>Twitter (Optional)</label>
<input class="form-control" name="twitter_account" id="id_twitter_account" placeholder="my-twitter-alias">
</div>
<div class="form-group">
<label>Github (Optional)</label>
<input class="form-control" name="github_account" id="id_github_account" placeholder="my-github-alias">
</div>
<button type="submit" class="btn block m-2 d-md-inline-block">Submit</button>
</form>
<script src="https://www.gstatic.com/firebasejs/8.9.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.9.1/firebase-database.js"></script>
<script>
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const config = {
apiKey: "AIzaSyDNuz8jJaiUyA5TkBsZ83Qoy7qSyf_EQ_c",
authDomain: "fundor333-77b0c.firebaseapp.com",
databaseURL: "https://fundor333-77b0c-default-rtdb.europe-west1.firebasedatabase.app",
projectId: "fundor333-77b0c",
storageBucket: "fundor333-77b0c.appspot.com",
messagingSenderId: "250188864128"
};
document.forms['commenti-form'].addEventListener('submit', (event) => {
event.preventDefault();
if (!firebase.apps.length) {
firebase.initializeApp(config);
}
var myRef = firebase.database().ref("commenti").push().set({
post_url: $("#id_post_url").val(),
name: $("#id_name").val(),
text: $("#id_text").val(),
website: $("#id_website").val(),
twitter_account: $("#id_twitter_account").val(),
github_account: $("#id_github_account").val(),
});
//window.location.href = '{{ .Permalink }}?comment=yes';
document.getElementById("commenti-form").reset();
return alert('Thanks for the comment');
});
</script>

View File

@@ -1,166 +0,0 @@
<style>
#consent-notice {padding: 1rem 1rem; display: none; text-align: center; position: fixed; bottom: 0; width: calc(100% - 2rem); background: #222; color: rgba(255,255,255,0.8);}
#consent-notice span {margin-right: 1rem;}
#consent-notice button {cursor: pointer; display: inline-block; width: auto;}
#consent-notice span a {color: inherit; text-decoration: underline; text-decoration-color: rgba(255,255,255,0.5);}
#consent-notice button.btn {margin-left: 0.5rem;}
#consent-notice button.btn.manage-consent {background: rgba(255,255,255,0.1); font-weight: normal;}
#consent-overlay {position: fixed; left: 0; top: 0; width: 100%; height: 100vh; display: none; background: rgba(0,0,0,0.75); z-index: 999999; overflow: auto; cursor: pointer;}
#consent-overlay.active {display: flex;}
#consent-overlay > div {background: white; width: 100%; max-width: 30rem; padding: 1.75rem; margin: auto; cursor: initial;}
#consent-overlay > div > div {display: flex; align-items: flex-start; margin-bottom: 1rem;}
#consent-overlay > div > div:last-child {margin: 0;}
#consent-overlay h3 {padding-top: 0;}
#consent-overlay input {margin-top: 0.3rem;}
#consent-overlay label {display: block;}
#consent-overlay .btn {margin-right: 0.5rem;}
#consent-overlay button.btn.save-consent {background: rgba(0,0,0,0.6); font-weight: normal;}
@media (max-width: 767px) {
#consent-overlay > div {padding: 1.75rem 1rem;}
#consent-notice span {display: block; padding-top: 3px; margin-bottom: 1.5rem;}
#consent-notice button.btn {position: relative; bottom: 4px;}
}
</style>
<div id="consent-notice"><span>We would like to use <a class="manage-consent" href="#manage-consent">third party code</a> to improve the functionality of this website.</span><button class="btn manage-consent">Manage preferences</button><button class="btn deny-consent">Deny</button><button class="btn approve-consent">Allow</button></div>
<div id="consent-overlay">
<div>
{{ range $index, $item := .Site.Data.consent.items }}
<div>
<input type="checkbox" id="item{{ $index }}" value="1" name="item{{ $index }}" {{ if $item.is_functional }}checked disabled{{ end }} />
<label for="item{{ $index }}">
<h3>{{ $item.title }}</h3>
<p>{{ $item.description }}</p>
</label>
</div>
{{ end }}
<div>
<button id="save-consent" class="btn save-consent" data-consentvalue="{{ range $index, $item := .Site.Data.consent.items }}{{ if $item.is_functional}}{{ else }}0{{ end }}{{ end }}">Save preferences</button>
<button class="btn approve-consent">Allow all</button>
</div>
</div>
</div>
<script>
const scripts = [];{{ range $index, $item := (where .Site.Data.consent.items "is_functional" false) }}
scripts[{{ $index }}] = "/js/{{ $item.script_file }}";{{ end }}
function createCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
function denyAllConsentScripts() {
var consentValue = "";
scripts.forEach(function(){
consentValue = consentValue + "0";
});
acceptSomeConsentScripts(consentValue);
}
function acceptAllConsentScripts() {
var consentValue = "";
scripts.forEach(function(){
consentValue = consentValue + "1";
});
acceptSomeConsentScripts(consentValue);
}
function acceptSomeConsentScripts(consentValue) {
setConsentInputs(consentValue);
createCookie('consent-settings',consentValue,31);
document.getElementById('consent-notice').style.display = 'none';
document.getElementById('consent-overlay').classList.remove('active');
loadConsentScripts(consentValue);
}
function loadConsentScripts(consentValue) {
scripts.forEach(function(value,key){
//console.log('script'+key+' is set to ' +consentValue[key]+' and is file '+value);
if(consentValue[key]=="1") {
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = value;
document.body.appendChild(s);
}
});
}
function setConsentInputs(consentValue) {
var elements = document.querySelectorAll('#consent-overlay input:not([disabled])');
elements.forEach(function(el,index) {
if(consentValue[index]=="1") el.checked = true;
else el.checked = false;
});
}
function setConsentValue() {
var elements = document.querySelectorAll('#consent-overlay input:not([disabled])');
var consentValue = "";
elements.forEach(function(el) {
if(el.checked) consentValue = consentValue + "1";
else consentValue = consentValue + "0";
});
document.getElementById("save-consent").dataset.consentvalue = consentValue;
}
var elements = document.querySelectorAll('#consent-overlay input:not([disabled])');
elements.forEach(function(el) {
el.checked = false;
});
if(readCookie('consent-settings')) {
var consentValue = readCookie('consent-settings').toString();
console.log(consentValue);
setConsentInputs(consentValue);
loadConsentScripts(consentValue);
} else {
document.getElementById('consent-notice').style.display = 'block';
}
var elements = document.querySelectorAll('.manage-consent');
elements.forEach(function(el) {
el.addEventListener("click",function() {
document.getElementById('consent-overlay').classList.toggle('active');
});
});
var elements = document.querySelectorAll('.deny-consent');
elements.forEach(function(el) {
el.addEventListener("click",function() {
denyAllConsentScripts();
});
});
var elements = document.querySelectorAll('.approve-consent');
elements.forEach(function(el) {
el.addEventListener("click",function() {
acceptAllConsentScripts();
});
});
document.getElementById("save-consent").addEventListener("click",function() {
setConsentValue();
acceptSomeConsentScripts(this.dataset.consentvalue);
});
document.getElementById("consent-overlay").addEventListener("click",function(e) {
if (!document.querySelector("#consent-overlay > div").contains(e.target)){
this.classList.toggle('active');
}
});
</script>
{{ range $index, $item := .Site.Data.consent.items }}
{{ if $item.is_functional }}
<script type="text/javascript" src="/js/{{ $item.script_file }}"></script>
{{ end }}
{{ end }}

View File

@@ -23,9 +23,9 @@
{{ end }} {{ end }}
<link rel="alternate" type="application/rss+xml" href="https://fundor333.com/post/index.xml" title="Fundor333's Posts" />
<link rel="alternate" type="application/rss+xml" href="https://fundor333.com/index.xml" title="Fundor333's all stuffs from the blog" />
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel=%q type=%q href=%q title=%q>` .Rel .MediaType.Type .Permalink site.Title | safeHTML }}
{{ end }}
{{ if .Site.Params.gtm_id}}{{- partial "gtm.html" . }}{{ end }}
@@ -37,14 +37,8 @@
<enclosure url="{{ $featured.Permalink }}" type="image/jpg"></enclosure>
{{- end -}}
{{ partial "macia-webmention/webmention.html" . }}
<link rel="webmention" href="https://webmention.io/fundor333.com/webmention" />
<link rel="pingback" href="https://webmention.io/fundor333.com/xmlrpc" />
<link rel="micropub" href="https://appletune.fundor333.com/micropub">
<link rel="microsub" href="https://aperture.p3k.io/microsub/699">
<link rel="authorization_endpoint" href="https://indieauth.com/auth">
<link rel="token_endpoint" href="https://tokens.indieauth.com/token">
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script src="https://kit.fontawesome.com/2f3b6e2e4c.js" crossorigin="anonymous" async></script>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script src="https://kit.fontawesome.com/2f3b6e2e4c.js" crossorigin="anonymous" async></script>