Adding new module
This commit is contained in:
@@ -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>
|
||||
@@ -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 }}
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user