hexo-theme-icarus/source/_posts/zh-CN/FAQ.md

7.9 KiB
Raw Blame History

title: 常见问题 date: 2016-01-03 language: zh-CN toc: true providers: cdn: loli fontcdn: loli iconcdn: loli

本文同时提供以下语言的翻译English。

本文展示了一些经常被提及的Icarus使用问题以及这些问题的解答。 如果此处没有出现你想要求解的问题是,也请阅读Icarus用户指南Hexo中文文档 以及Icarus GitHub Issues

站点

无法生成我的Hexo站点。/我的站点在生成时出现错误。

Icarus依赖8.3.0或更新版本的Node.js4.2.0或更新版本的Hexo以及其他一些在themes/icarus/package.json 文件的peerDependencies部分列出的依赖包。 请确保你的站点正确安装了所有依赖。 例外你之前使用的主题残留下来的依赖有可能会干扰Icarus的正常运行。 请在更换到Icarus主题之前移除它们。

如何改变我的站点的语言?

编辑你站点根目录下的_config.yml文件,修改如下设置:

{% codeblock _config.yml lang:diff %}

  • language: en
  • language: <language_name> {% endcodeblock %}

你可以在themes/icarus/languages目录下找到所有可用的翻译。 _config.yml的语言名即为这些文件不带后缀的文件名。

布局

我如何改变页面的宽度?我如何在特定的文章/页面使用单栏/双栏/三栏布局?

如要改变页面的宽度,你需要编辑themes/icarus/include/style/responsive.styl这个样式文件。 这个文件定义了不同屏幕尺寸下的页面容器宽度。 如果你同时想改变主内容栏或挂件栏的宽度,请编辑themes/icarus/layout/common/widgets.jsxthemes/icarus/layout/layout.jsx。 在文件中找到is-12is-8-tablet,和is-4-widescreen这样的CSS类名并把它们修改成你想要的数值。

你可以参考Bulma文档来获取更多关于布局系统的细节。 请确保主内容栏和挂件栏的CSS类名称中的数字在相同屏幕尺寸下相加等于12。 例如,如果你想把挂件栏的宽度修改为is-3-widescreen并且你只有一个挂件栏,那么你需要保证你的主内容栏有一个is-9-widescreen

你可以通过从主题配置中移除所有挂件来实现单栏布局。 如果要使用双栏布局,请将所有挂件的position设置为leftright,从而将它们放置按照页面的同一侧。 三栏布局可以通过在页面两侧同时放置挂件来实现。

若要更改特定的文章或页面的布局,请参考Icarus用户指南 - 主题配置

挂件/评论插件/分享按钮...的布局文件在哪里?我如何自定义内置的挂件/评论插件/分享按钮...

评论插件捐赠按钮站内搜索分享按钮挂件以及其他一些插件的布局文件已移至一个单独的Node.js库——hexo-component-inferno。 这样,主题开发者可以更好地在不同主题之间复用这些通用组件,并且允许用户更简便地覆盖这些内置组件。

若要自定义这些组件,你可以从hexo-component-inferno仓库中拷贝布局文件并把它们放入Icarus布局目录下的的相应目录中。 例如如果你想要自定义Valine评论插件你可以从hexo-component-inferno仓库中拷贝src/view/comment/valine.jsxthemes/icarus/layout/comment目录中。 然后修正此文件头部的一些Node.js引用

{% codeblock themes/icarus/layout/comment/valine.jsx lang:diff %}

  • const { cacheComponent } = require('../../util/cache');
  • const { cacheComponent } = require('hexo-component-inferno/lib/util/cache'); {% endcodeblock %}

之后,用hexo clean清理你的站点并重新生成HTML文件。

类似的,你可以复制hexo-component-inferno仓库中的文件并放入themes/icarus/source下的对应目录中来覆盖 主题内置的静态文件。

我对布局文件进行了一些修改。但是当我刷新页面(开启了hexo server的情况下)/当我hexo generate时 为什么这些修改没有生效?

当你用hexo server开启本地Hexo服务器时这些布局文件会被缓存。 其他情况下临时生成的数据会被缓存在db.json或者内存中。 请在hexo serverhexo generate之前使用hexo clean

内容

我的Logo/图片没有正确显示。/我的图片仅在首页显示,却无法在文章页面显示。

请确保你使用了图片的绝对路径。 例如,如果你的图片放在了source/gallery/目录下,并且你的站点位于你域名的子目录下,如https://ppoffice.github.io/hexo-theme-icarus 那么你应该用/hexo-theme-icarus/gallery/<文件名>.<文件扩展名>来引用你的图片。

你也可以使用{% img %}这个Hexo标签来省去路径中的网站子目录{% img /gallery/<file_name>.<file_extension> ... %}。 请参考Hexo中文文档来了解详情。

如何为文章添加摘要?如何显示“阅读更多”按钮?

在你的文章中添加<!-- more -->标签。 标签前面的文章内容会被标记为摘要,而其后的内容不会显示在文章列表上。 你也可以在文章的front-matter中设置自定义摘要。

{% codeblock some-post.md lang:yaml %} title: 一篇文章 date: 2020-01-01 excerpt: 这是一篇关于...

文章内容...

{% endcodeblock %}

我如何加密文章?

请使用第三方的Hexo插件比如hexo-blog-encrypt

我如何像这篇文章一样使用炫酷的页面元素或样式?

你可以在你的Markdown文件中使用HTML。 请参考Bulma文档来了解更多的可选元素和样式。

挂件与插件

我的页面上显示红色的警告,上面说某个插件/挂件的配置项没有填写。 我怎样才能除去这些警告?

如果你不想开启某些插件/挂件,你可以把它们从配置中删掉或注释掉。 例如,如果你不想开启任何的评论插件,注释掉这几行:

{% codeblock themes/icarus/_config.yml lang:diff %}

  • comment:
  • type: disqus
    
  • shortname: 
    
  • comment:

  • type: disqus

  • shortname:

{% endcodeblock %}

文章内容有误?请点击此处提交修改。