美文网首页
Hexo | 如何搞一个专属的 Hexo 主题 | 文章篇

Hexo | 如何搞一个专属的 Hexo 主题 | 文章篇

作者: cemcoe | 来源:发表于2020-03-23 21:00 被阅读0次

    如何使用 Hexo 搭建博客不是本文重点,本文主要搞一个专属的个人博客主题。

    点我去 预览 主题。

    今天来看一看文章详情的模板如何写?

    先进行功能点拆分:

    • 文章元信息如标题,时间,tags 等的展示问题
    • 如何拿到文章内容的主体数据
    • 如何处理文章里出现的代码,图片等特殊资源

    现在看一下使用 forEach 遍历 tags,来看一下 tag 的数据结构。

    _Document {
      name: 'Hexo',
      _id: 'ck82sbm4z000fkoie38def1hh',
      slug: [Getter],
      path: [Getter],
      permalink: [Getter],
      posts: [Getter],
      length: [Getter]
    }
    

    嗯,我们需要的数据是 tag.name,开始遍历。

    <% page.tags.data.forEach(function (tag) { %>
    <span class="tags"><%- tag.name %></span>
    <% }) %>
    

    拿到文章主体数据:

    <%- page.content %>
    

    右侧目录排序功能点

    <ul>
        <% site.posts.data.forEach( function(post){ %>
        <li style="order: <%- post.order %>;"><a
          href="<%- url_for(post.path) %>"><%- post.order %>---<%- post.title %></a></li>
        <% }) %>
    </ul>
    

    在这里使用 flex 布局中的 order 进行正序排列。

    在这里有个坑,在 site.posts.data 中的数组是按照文件在系统中的排序,而不是创建时间,就很迷,看了好久不知道排序的依据是啥。


    接下来看一看如何处理文章里出现的代码,图片等特殊资源。
    被 ` 包裹会被渲染成 code 标签,双大括号会报错。

    下面列举一些 md 搭配 html 标签的例子用于添加样式:

    ``     ===> code
    >      ===> blockquote
    `````` ===> figure.[hihlight plain]
    
    
    pre {
      overflow-x: auto;
    }
    

    防止代码撑开页面

    代码高亮 https://prismjs.com/download.html

    整体上这个 Hexo 主题大致就搞好了,还剩一些边边角角。

    相关文章

      网友评论

          本文标题:Hexo | 如何搞一个专属的 Hexo 主题 | 文章篇

          本文链接:https://www.haomeiwen.com/subject/wglgyhtx.html