Candinya / Kratos-Rebirth

一个可爱而现代的 Hexo 主题
GNU General Public License v3.0
668 stars 82 forks source link

您好~,我在使用过程中,如何开启toc遇到了麻烦 #18

Closed wumingzhilian closed 4 years ago

wumingzhilian commented 4 years ago

在咱的主题中配置文件里面没有发现toc的开启,我看着咱最近发的说明也没找到

Candinya commented 4 years ago

toc是在每篇文章的front-matter信息区指定哒,当指定toc为true的时候,就可以对当前文章开启啦w 主题的设置是在widgets那边哦,默认是包含哒w 可以参照这个Wiki页面哦~ 也有对应的模板文件 (Raw)可以参考的说w

wumingzhilian commented 4 years ago

嗯~这边一开true就,然后访问本地,就会报好多错

Candinya commented 4 years ago

能麻烦贴一下错误的输出信息吗,方便确定具体原因呢。

wumingzhilian commented 4 years ago

Unhandled rejection Error: D:\github\blog\themes\Kratos-Rebirth-master\layout\layout.ejs:6 4| <%- body %> 5|

6| <%- partial('_partial/footer') %>

D:\github\blog\themes\Kratos-Rebirth-master\layout_partial\footer.ejs:4 2|

7| <% } %>

Partial _widget/[object Object] does not exist. (in _partial\footer.ejs) at Object.partial (D:\github\blog\node_modules\hexo\lib\plugins\helper\partial.js:16:11) at eval (D:\github\blog\themes\Kratos-Rebirth-master\layout_partial\footer.ejs:17:17) at Array.forEach () at eval (D:\github\blog\themes\Kratos-Rebirth-master\layout_partial\footer.ejs:14:22) at footer (D:\github\blog\node_modules\ejs\lib\ejs.js:682:17) at _View._compiledSync (D:\github\blog\node_modules\hexo\lib\theme\view.js:132:24) at _View.renderSync (D:\github\blog\node_modules\hexo\lib\theme\view.js:59:25) at Object.partial (D:\github\blog\node_modules\hexo\lib\plugins\helper\partial.js:34:15) at eval (D:\github\blog\themes\Kratos-Rebirth-master\layout\layout.ejs:19:17) at layout (D:\github\blog\node_modules\ejs\lib\ejs.js:682:17) at _View._compiled (D:\github\blog\node_modules\hexo\lib\theme\view.js:136:50) at _View.render (D:\github\blog\node_modules\hexo\lib\theme\view.js:39:17) at D:\github\blog\node_modules\hexo\lib\theme\view.js:51:25 at tryCatcher (D:\github\blog\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (D:\github\blog\node_modules\bluebird\js\release\promise.js:547:31) at Promise._settlePromise (D:\github\blog\node_modules\bluebird\js\release\promise.js:604:18) at Promise._settlePromise0 (D:\github\blog\node_modules\bluebird\js\release\promise.js:649:10) at Promise._settlePromises (D:\github\blog\node_modules\bluebird\js\release\promise.js:729:18) at _drainQueueStep (D:\github\blog\node_modules\bluebird\js\release\async.js:93:12) at _drainQueue (D:\github\blog\node_modules\bluebird\js\release\async.js:86:9) at Async._drainQueues (D:\github\blog\node_modules\bluebird\js\release\async.js:102:5) at Immediate.Async.drainQueues [as _onImmediate] (D:\github\blog\node_modules\bluebird\js\release\async.js:15:14)

wumingzhilian commented 4 years ago

您看看什么问题

Candinya commented 4 years ago

Partial _widget/[object Object] does not exist. (in _partial\footer.ejs)

这边感觉是您的配置文件出现了问题呢,能麻烦贴一份您主题文件夹下的_config.yml文件吗(就是根据特别提示的提示,手动复制一份_config.yml.example,并改名为_config.yml的这个文件),如果您在配置widget的时候出现了异常情况(例如错误的缩进),那么是有可能导致调用时候出现类似的异常问题的呢。

wumingzhilian commented 4 years ago

Global

site_analytics: hoster: Github Pages site_logo: snow: false enableDark: true index_post_type: false

Top Menu

menu: index: / archives: /archives/

label: index: 首页 archives: 档案馆 friends: 好伙伴 about:

  • 关于我

    Footer

    group_link: contact: weibo: mail: telegram: wumingzhilian twitter: wumingzhilian facebook: linkedin: fediverse: instance: username: github: wumingzhilian rss: atom.xml timenotice: 本站已运行

    Post Page

    posts: show_cc: true donate: true share: true comments: disqusjs

    Disqus

    disqus: shortname:

    DisqusJS

    disqusjs: shortname: sitename: api: apikey: admin: adminlabel:

    APlayer

    aplayer: enabled: true playlist: order: random

    Widgets

    sidebar: right widgets:

    • about
    • toc: true
    • category
    • tagcloud
    • posts avatarUri: /images/avatar.png

    Fancybox

    fancybox: true

    搜索

    search: enable: true path: search.json field: post # page | post | all. Default post content: true # Include post | page content

    JavaScript相关的配置

    由于Javascript被压缩后难以有效编辑与生成,因而为了简化操作,将相关的配置项在生成文件时以独立的json文件写出,调用时使用fetch API获取。

    jsconfig: main: picCDN: false createTime: "1970-01-01 00:00:00" donateBtn: "支持我~" scanNotice: "扫一扫,好不好?" qr_alipay: "/images/alipayqr.jpg" qrwechat: "/images/wechatpayqr.png" siteLeaveEvent: false leaveTitle: "{{{(><)}}}哦哟,崩溃啦~" returnTitle: "(´∇`)欸,又好啦~" copyrightNotice: ""

  • Candinya commented 4 years ago

    image 这里配置错误啦,toc: true是写在Front-Matter(就是每一篇文章的起始位置),每一篇文章独立配置的哦,这里的小挂件指出的只是说主题整体开启toc的呢

    这里只能保留“toc”这样的字样,具体的toc: true请放到每一篇文章的Front-Matter(就是最顶上标明标题什么的那些)的地方哦 刚才给出的那个文件是文章的模板,并不是主题的配置哦,只是想表达那个位置就是所谓的Front-Matter

    Candinya commented 4 years ago
    • avatarUri: /images/avatar.png

    widgets:

    • about
    • toc
    • category
    • tagcloud
    • posts
    • avatarUri: /images/avatar.jpg

    请勿将其他内容写入 widgets 配置。上面这么写重现了你的错误。

    正确写法如下:

    widgets:

    • about
    • toc
    • category
    • tagcloud
    • posts

    avatarUri: /images/avatar.jpg

    这个是Github显示格式的问题,原po的配置是正确的(悲

    image

    vensing commented 4 years ago
    • toc: true 去掉 : true
    wumingzhilian commented 4 years ago

    awwww,我这个在hexo-admin里面这么写的话预览的时候仍然是没有(太蠢了= =) image image

    vensing commented 4 years ago
    ---
    title: xxx
    comments: true
    categories:
      - xxx
    tags:
      - xxx
    date: 
    toc: true
    ---

    试试这么写呐(๑•̀ㅂ•́)و✧

    Candinya commented 4 years ago

    Front-Matter是指在文章内容之上,不显示出来,而是给Hexo作为页面参数什么的那些设置哦,记得不要放到内容里面去啦,例如就像这篇文章这样呢: image

    Candinya commented 4 years ago

    不对,Hexo-Admin是不是不会显示这些Front-Matter的内容的来着?(突然察觉(参考 jaredly/hexo-admin#197 ) 还是比较推荐直接编辑原始MarkDown文件吧,或者就是改一下模板这样啦(逃

    wumingzhilian commented 4 years ago

    在hexo-admin里面写的md的话,好像是会存在的。。。。 image

    image

    Candinya commented 4 years ago

    是的,因为目前Hexo-Admin暂时不支持编辑Front-Matter的内容呢,还是比较推荐使用文本编辑器直接编辑md文件的说呢w 或者您也可以使用主题提供的模板来替代原来的那些模板,以便于自动设置相关的参数的说哦

    wumingzhilian commented 4 years ago

    谢谢师傅们~,两位大佬aww,我拿模板上了

    Candinya commented 4 years ago

    好耶!有任何疑惑欢迎随时再来问哦,预祝使用愉快啦~o( ̄▽ ̄)ブ