From 7dcd9aea80061bdcdbafb172e478213a962c2f6c Mon Sep 17 00:00:00 2001
From: Doge <guiqiqi187@gmail.com>
Date: Thu, 13 May 2021 10:35:35 +0800
Subject: Add extension tags with rendering meta

---
 scripts/feed.js |  2 +-
 scripts/meta.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 1 deletion(-)
 create mode 100644 scripts/meta.js

(limited to 'scripts')

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});
+})
-- 
cgit v1.2.3