summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDoge <[email protected]>2021-05-13 10:35:35 +0800
committerDoge <[email protected]>2021-05-13 10:35:35 +0800
commit7dcd9aea80061bdcdbafb172e478213a962c2f6c (patch)
tree61187b84e8e6c4057168b8ece54a075863de7aa6 /scripts
parent073c4f91a4525f2ba38c46cb652e79752619374c (diff)
downloadchromate-7dcd9aea80061bdcdbafb172e478213a962c2f6c.tar.gz
chromate-7dcd9aea80061bdcdbafb172e478213a962c2f6c.tar.bz2
chromate-7dcd9aea80061bdcdbafb172e478213a962c2f6c.zip
Add extension tags with rendering meta
Diffstat (limited to 'scripts')
-rw-r--r--scripts/feed.js2
-rw-r--r--scripts/meta.js50
2 files changed, 51 insertions, 1 deletions
diff --git a/scripts/feed.js b/scripts/feed.js
index db38359..6ea931e 100644
--- a/scripts/feed.js
+++ b/scripts/feed.js
@@ -18,7 +18,7 @@ hexo.extend.generator.register("feed", (locals) => {
copyright: theme.copyright,
language: config.language.slice(0, 2),
siteUrl: config.url,
- imageUrl: theme.logo,
+ imageUrl: theme.logo.lightmode,
itunesSubtitle: config.subtitle,
itunesSummary: config.description,
itunesAuthor: config.author,
diff --git a/scripts/meta.js b/scripts/meta.js
new file mode 100644
index 0000000..9b4a779
--- /dev/null
+++ b/scripts/meta.js
@@ -0,0 +1,50 @@
+const ejs = require("ejs")
+
+hexo.extend.tag.register('authors', function (_args) {
+ let page = this;
+ if (!(page.podcast && page.podcast.authors))
+ return;
+ return ejs.render(`
+ <ul>
+ <% (page.podcast.authors).forEach(function(author) { %>
+ <li><%= author %></li>
+ <% }); %>
+ </ul>
+ `, {page: page})
+});
+
+hexo.extend.tag.register('references', function (_args) {
+ let page = this;
+ if (!(page.podcast && page.podcast.references))
+ return;
+ return ejs.render(`
+ <ul>
+ <% (page.podcast.references).forEach(function(item) { %>
+ <li><a href="<%= item[1] %>" rel="noopener"><%= item[0] %></a></li>
+ <% }); %>
+ </ul>
+ `
+ , {page: page});
+});
+
+hexo.extend.tag.register('timeline', function (_args) {
+ let page = this;
+ if (!(page.podcast && page.podcast.chapters))
+ return;
+ return ejs.render(`
+ <ul>
+ <% (page.podcast.chapters).forEach(function(item) { %>
+ <%
+ const title = item[0];
+ const timestamp = item[1];
+ const hour = Math.floor(timestamp / 3600);
+ const minute = Math.floor((timestamp / 60) % 60);
+ const second = Math.floor(timestamp % 60);
+ const viewstr = String(hour).padStart(2, '0') + ':' + String(minute).padStart(2, '0') + ':' + String(second).padStart(2, '0');
+ %>
+ <li class="is-family-monospace"><a href="#t=<%= viewstr %>" onclick="eval('player.seek(<%= timestamp %>)')"><%= viewstr %></a> <%= title %></li>
+ <% }); %>
+ </ul>
+ `
+ , {page: page});
+})