templates/*: cleaned up indents + folder restructure
Some checks are pending
/ render (push) Waiting to run

This commit is contained in:
IkiWiki 2024-09-11 14:34:45 -04:00
parent cc3ca0b1f7
commit 0f34ef13cb
Signed by untrusted user who does not match committer: forge
GPG key ID: D62A472A4AA7D541
44 changed files with 245 additions and 263 deletions

View file

Before

Width:  |  Height:  |  Size: 371 B

After

Width:  |  Height:  |  Size: 371 B

View file

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

55
base/js/mastodon.js Normal file
View file

@ -0,0 +1,55 @@
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
document.getElementById("load-comment").addEventListener("click", function() {
document.getElementById("load-comment").innerHTML = "Loading...";
fetch('https://<TMPL_VAR mastodon_host>/api/v1/statuses/<TMPL_VAR mastodon_post>/context')
.then(function(response) {
return response.json();
})
.then(function(data) {
if(data['descendants'] &&
Array.isArray(data['descendants']) &&
data['descendants'].length > 0) {
document.getElementById('mastodon-comments-list').innerHTML = "";
data['descendants'].forEach(function(reply) {
reply.account.display_name = escapeHtml(reply.account.display_name);
reply.account.emojis.forEach(emoji => {
reply.account.display_name = reply.account.display_name.replace(`:${emoji.shortcode}:`,
`<img src="${escapeHtml(emoji.static_url)}" alt="Emoji ${emoji.shortcode}" height="20" width="20" />`);
});
mastodonComment =
`<div class="mastodon-comment comment">
<div class="avatar">
<img src="${escapeHtml(reply.account.avatar_static)}" height=60 width=60 alt="">
</div>
<div class="content">
<div class="author">
<a href="${reply.account.url}" rel="nofollow">
<span>${reply.account.display_name}</span>
<span class="disabled">${escapeHtml(reply.account.acct)}</span>
</a>
<a class="post" href="${reply.uri}" rel="nofollow">
<time datetime="${reply.created_at}" pubdate="pubdate">
${reply.created_at.replace(/(T\d+:\d+):\d+(\.\d+)?(.*)/, "$1$3")}
</time>
</a>
</div>
<div class="mastodon-comment-content">${reply.content}</div>
</div>
</div>`;
document.getElementById('mastodon-comments-list').appendChild(DOMPurify.sanitize(mastodonComment, {'RETURN_DOM_FRAGMENT': true}));
});
}
else {
document.getElementById('mastodon-comments-list').innerHTML = "<p>Not comments found</p>";
}
});
});

View file

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 219 B

View file

Before

Width:  |  Height:  |  Size: 550 B

After

Width:  |  Height:  |  Size: 550 B

View file

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 293 B

View file

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 336 B

View file

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 397 B

View file

Before

Width:  |  Height:  |  Size: 74 B

After

Width:  |  Height:  |  Size: 74 B

View file

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-08-10 21:36-0400\n"
"POT-Creation-Date: 2024-09-11 14:32-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-09-10 22:25-0400\n"
"POT-Creation-Date: 2024-09-11 14:32-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-08-11 00:05-0400\n"
"POT-Creation-Date: 2024-09-11 14:32-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-09-10 22:25-0400\n"
"POT-Creation-Date: 2024-09-11 14:32-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -54,7 +54,7 @@ templatedir: ./templates
#templatedir: /usr/share/ikiwiki/templates
# base wiki source location
#underlaydir: /usr/share/ikiwiki/basewiki
underlaydir: ./basewiki
underlaydir: ./base
# display verbose messages?
verbose: 1
# log to syslog?

View file

@ -26,20 +26,20 @@
<meta name="theme-color" content="#ffffff">
<!-- ikiwiki CSS -->
<link href="<TMPL_VAR BASEURL>style.css" rel="stylesheet" />
<link href="<TMPL_VAR BASEURL>css/style.css" rel="stylesheet" />
<!-- Bootstrap core CSS -->
<!-- those checksums can be verified with: shasum -b -a 384 $file | xxd -r -p | base64 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
<!-- Custom styles for this template -->
<link href="<TMPL_VAR BASEURL>bootstrap.local.css" rel="stylesheet" />
<link href="<TMPL_VAR BASEURL>css/bootstrap.local.css" rel="stylesheet" />
<!-- Custom styles for derivatives -->
<TMPL_IF LOCAL_CSS>
<link rel="stylesheet" href="<TMPL_VAR BASEURL><TMPL_VAR LOCAL_CSS>" type="text/css" />
<TMPL_ELSE>
<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
<link rel="stylesheet" href="<TMPL_VAR BASEURL>css/local.css" type="text/css" />
</TMPL_IF>
<TMPL_UNLESS DYNAMIC>
@ -78,9 +78,7 @@
</button>
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-lg-start" aria-labelledby="language-menu-top">
<TMPL_LOOP OTHERLANGUAGES>
<li>
<a href="<TMPL_VAR URL>"><TMPL_VAR LANGUAGE></a>
</li>
<li><a href="<TMPL_VAR URL>"><TMPL_VAR LANGUAGE></a></li>
</TMPL_LOOP>
</ul>
</div>
@ -90,41 +88,28 @@
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbar" class="collapse navbar-collapse">
<TMPL_IF SIDEBAR>
<TMPL_VAR SIDEBAR>
</TMPL_IF>
<ul class="nav navbar-nav">
<TMPL_IF SIDEBAR><TMPL_VAR SIDEBAR></TMPL_IF>
<ul class="navbar-nav nav-link align-items-center ms-auto">
<TMPL_LOOP BOOTMENU>
<TMPL_IF FIRSTNAV>
<li <TMPL_IF ACTIVE>class="active"</TMPL_IF>><a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a></li>
</TMPL_IF>
</TMPL_LOOP>
</ul>
</div>
</div>
</nav>
<div class="container" id="content">
<TMPL_VAR CONTENT>
<TMPL_IF ENCLOSURE>
<section id="enclosure">
<a href="<TMPL_VAR ENCLOSURE>">Download</a>
</section>
</TMPL_IF>
<TMPL_IF TRAILS>
<TMPL_VAR TRAILS>
</TMPL_IF>
<TMPL_IF TRAILS><TMPL_VAR TRAILS></TMPL_IF>
<TMPL_UNLESS DYNAMIC>
<!-- legacy Ikiwiki comments.pm section -->
@ -144,68 +129,15 @@
</TMPL_IF>
<!-- Mastodon comments -->
<TMPL_IF mastodon_host>
<div class="mastodon-comments comments">
<TMPL_IF mastodon_host>
<div class="mastodon-comments comments">
<p>You can use your Mastodon account to reply to this <a class="link" href="https://<TMPL_VAR mastodon_host>/@<TMPL_VAR mastodon_username>/<TMPL_VAR mastodon_post>">post</a>.</p>
<p id="mastodon-comments-list"><button id="load-comment">Load comments</button></p>
<noscript><p>You need JavaScript to view the comments.</p></noscript>
<script src="/assets/js/purify.min.js"></script>
<script type="text/javascript">
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
document.getElementById("load-comment").addEventListener("click", function() {
document.getElementById("load-comment").innerHTML = "Loading...";
fetch('https://<TMPL_VAR mastodon_host>/api/v1/statuses/<TMPL_VAR mastodon_post>/context')
.then(function(response) {
return response.json();
})
.then(function(data) {
if(data['descendants'] &&
Array.isArray(data['descendants']) &&
data['descendants'].length > 0) {
document.getElementById('mastodon-comments-list').innerHTML = "";
data['descendants'].forEach(function(reply) {
reply.account.display_name = escapeHtml(reply.account.display_name);
reply.account.emojis.forEach(emoji => {
reply.account.display_name = reply.account.display_name.replace(`:${emoji.shortcode}:`,
`<img src="${escapeHtml(emoji.static_url)}" alt="Emoji ${emoji.shortcode}" height="20" width="20" />`);
});
mastodonComment =
`<div class="mastodon-comment comment">
<div class="avatar">
<img src="${escapeHtml(reply.account.avatar_static)}" height=60 width=60 alt="">
</div>
<div class="content">
<div class="author">
<a href="${reply.account.url}" rel="nofollow">
<span>${reply.account.display_name}</span>
<span class="disabled">${escapeHtml(reply.account.acct)}</span>
</a>
<a class="post" href="${reply.uri}" rel="nofollow">
<time datetime="${reply.created_at}" pubdate="pubdate">
${reply.created_at.replace(/(T\d+:\d+):\d+(\.\d+)?(.*)/, "$1$3")}
</time>
</a>
</div>
<div class="mastodon-comment-content">${reply.content}</div>
</div>
</div>`;
document.getElementById('mastodon-comments-list').appendChild(DOMPurify.sanitize(mastodonComment, {'RETURN_DOM_FRAGMENT': true}));
});
} else {
document.getElementById('mastodon-comments-list').innerHTML = "<p>Not comments found</p>";
}
});
});
<script src="<TMPL_VAR BASEURL>js/purify.min.js"></script>
<script src="<TMPL_VAR BASEURL>js/mastodon.js">
</script>
</div>
</div>
</TMPL_IF>
<div class="pagedate text-muted">
@ -218,17 +150,12 @@
</TMPL_IF>
</span>
</div>
</TMPL_UNLESS>
</div> <!-- /container -->
<footer class="footer pb-3 pt-3" role="contentinfo">
<div class="container">
<TMPL_IF FOOTER>
<TMPL_VAR FOOTER>
</TMPL_IF>
<TMPL_IF FOOTER><TMPL_VAR FOOTER></TMPL_IF>
</div>
</footer>