diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/feed.js | 2 | ||||
| -rw-r--r-- | scripts/meta.js | 50 | 
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}); +}) | 
