Hexo-Next-主题优化(一)

作者: Devin_ | 来源:发表于2017-09-11 15:21 被阅读1393次
    • Hexo版本是3.3.8
    • NexT.Pisces v5.1.2

    1. 常用命令

    • Hexo的命令极简单,安装后只需要记住四个常用的即可。执行命令需要Git当前处于blog文件夹根目录下。
    • generate 生成静态文件。
      hexo g
    • server 启动服务器。
      hexo s
    • deploy 部署网站。部署网站前,需要预先生成静态文件。
      hexo d
    • clean 清除缓存文件 (db.json) 和已生成的静态文件 (public)。
      hexo clean
    • 卸载Hexo
      npm uninstall hexo-cli -g

    2.更换主题,以Next主题为例

    $ cd your-hexo-site
    $ git clone https://github.com/iissnan/hexo-theme-next themes/next
    
    • 修改Hexo 站点目录下的_config.yml的主题
    # Extensions
    ## Plugins: https://hexo.io/plugins/
    ## Themes: https://hexo.io/themes/
    theme: next
    

    3.站点初始设置

    # Site
    title: Hexo #网站标题
    subtitle: #网站副标题
    description: #网站描述
    author: author #您的名字
    language: zh-Hans #网站使用的语言
    timezone: Asia/Shanghai #网站时区。Hexo 默认使用您电脑的时区。
    
    • 打开Hexo 站点目录下的_config.yml修改内容如下

    4.设置主题风格

    • 打开themes/next下的_config.yml文件,搜索 scheme关键字,将你需用启用的scheme 前面注释 # 去除即可。
    # ---------------------------------------------------------------
    # Scheme Settings
    # ---------------------------------------------------------------
    
    # Schemes
    #scheme: Muse # 默认 Scheme,这是 NexT 最初的版本,黑白主调,大量留白
    #scheme: Mist # Muse 的紧凑版本,整洁有序的单栏外观
    scheme: Pisces # 双栏 Scheme,小家碧玉似的清新
    #scheme: Gemini # 类似 Pisces
    

    5.设置菜单项的显示文本和图标

    menu.png
    • NexT 使用的是 Font Awesome 提供的图标, Font Awesome 提供了 600+ 的图标,可以满足绝大的多数的场景,同时无须担心在 Retina 屏幕下 图标模糊的问题。
    5.1设置菜单项的显示文本
    • 打开themes/next/languages下的zh-Hans.yml文件,搜索 menu关键字,修改对应中文或者新增
    menu:
      home: 首页
      archives: 归档
      categories: 分类
      tags: 标签
      about: 关于
      search: 搜索
      schedule: 日程表
      sitemap: 站点地图
      commonweal: 公益404
      # 新增menu
      catalogue: 目录
    
    5.2设定菜单项的图标
    • 打开themes/next下的_config.yml文件,搜索 menu_icons关键字,修改对应图标名称或者新增对应menu的图标
    # Enable/Disable menu icons.
    # Icon Mapping:
    #   Map a menu item to a specific FontAwesome icon name.
    #   Key is the name of menu item and value is the name of FontAwesome icon. Key is case-senstive.
    #   When an question mask icon presenting up means that the item has no mapping icon.
    menu_icons:
      enable: true
      #KeyMapsToMenuItemKey: NameOfTheIconFromFontAwesome
      home: home
      about: user
      categories: th
      schedule: calendar
      tags: tags
      archives: archive
      sitemap: sitemap
      commonweal: heartbeat
      #新增menu_icon
      catalogue: th-list
    
    5.3设置菜单项对应的文件目录
    • 打开themes/next下的_config.yml文件,搜索 menu关键字,以#注释原有的菜单项,或者新增新的菜单项
    # ---------------------------------------------------------------
    # Menu Settings
    # ---------------------------------------------------------------
    
    # When running the site in a subdirectory (e.g. domain.tld/blog), remove the leading slash (/archives -> archives)
    menu:
      home: /
      categories: /categories/
      #about: /about/
      archives: /archives/
      #tags: /tags/
      #sitemap: /sitemap.xml
      #commonweal: /404/
      #新增menu
      catalogue: /catalogues/
    
    • 除了homearchives,/后面都需要手动创建这个页面
    5.4创建菜单项对应文件目录,以分类为例
    • 在终端窗口下,定位到 Hexo 站点目录下。使用 hexo new page 新建一个页面,命名为 categories :
    $ cd your-hexo-site
    $ hexo new page categories
    
    5.5编辑刚新建的页面,设置分类
    title: 分类
    date: 2014-12-22 12:39:04
    categories: Testing #分类名
    type: "categories"
    ---
    

    6.头像设置

    logoBorderRadius.png
    6.1添加头像
    • 打开themes/next下的_config.yml文件,搜索 Sidebar Avatar关键字,去掉avatar前面的#
    # Sidebar Avatar
    # in theme directory(source/images): /images/avatar.jpg
    # in site  directory(source/uploads): /uploads/avatar.jpg
    avatar: http://example.com/avatar.png
    
    • 或者使用本地图片,把图片放入themes/next/source/images下,修改avatar
    avatar: /images/blogLogo.png
    
    6.2设置头像边框为圆形框
    • 打开位于themes/next/source/css/_common/components/sidebar/下的sidebar-author.syl文件,修改如下
    .site-author-image {
      display: block;
      margin: 0 auto;
      padding: $site-author-image-padding;
      max-width: $site-author-image-width;
      height: $site-author-image-height;
      border: $site-author-image-border-width solid $site-author-image-border-color;
     // 修改头像边框
      border-radius: 50%;
      -webkit-border-radius: 50%;
      -moz-border-radius: 50%;
    }
    
    6.3特效:鼠标放置头像上旋转
    logoTransition.gif
    .site-author-image {
      display: block;
      margin: 0 auto;
      padding: $site-author-image-padding;
      max-width: $site-author-image-width;
      height: $site-author-image-height;
      border: $site-author-image-border-width solid $site-author-image-border-color;
     // 修改头像边框
      border-radius: 50%;
      -webkit-border-radius: 50%;
      -moz-border-radius: 50%;
      // 设置旋转
      transition: 1.4s all;
    }
    // 可旋转的圆形头像,`hover`动作
    .site-author-image:hover {
        -webkit-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        -transform: rotate(360deg);
    }
    

    7.浏览页面的时候显示当前浏览进度

    scrollpercent.png
    • 打开themes/next下的_config.yml,搜索关键字scrollpercent,把false改为true
      # Scroll percent label in b2t button
      scrollpercent: true
    
    • 如果想把top按钮放在侧边栏,打开themes/next下的_config.yml,搜索关键字b2t,把false改为true
     # Back to top in sidebar
      b2t: true
    
      # Scroll percent label in b2t button
      scrollpercent: true
    

    效果如下图:

    b2t.png

    8.文章创建和删除

    • 创建文章
    $ cd you-site
    $ hexo new post "you title"
    
    • 文章目录
      you-site/source/_posts

    • 删除文章

    $ hexo clean
    在/source/_posts/中直接删除了相应的.md文件
    $ hexo g 
    

    9.标签设置

    tags.png
    9.1创建标签目录
    • hexo初始是没有标签目录的需要自己创建
    $ cd you-site
    $ hexo new page tags
    
    • 创建完成后,打开you-site/source/tagsindex.md,修改如下
    ---
    title:  #页面主题
    date: 2017-08-18 15:00:55 #当前创建文件时间
    type: "tags" # 设置页面类型
    ---
    
    • 得到如下界面


      tagsNormal.png
    9.2设置标签云
    • 标签云的生成:是根据你创建的文章,设定标签类型,自定生成的。某个标签下的 文章越多则,标签越高大
    • 设置文章标签:打开you-site/source/_postsyou title.md,默认tags:为空,后面加上标签名即可
    ---
    layout: layout
    title: 标签1
    date: 2017-08-18 15:41:18
    tags: 标签1 #此文章在`标签1 `标签下
    #tags: [标签1,标签2] #此文章在`标签1,标签2`下
    ---
    

    10侧边栏设置

    10.1 设置侧边栏社交链接
    • 打开themes/next下的_config.yml文件,搜索关键字social,然后添加社交站点名称与地址即可。
    # Social links
    social:
      GitHub: https://github.com/your-user-name
      Twitter: https://twitter.com/your-user-name
      Weibo: https://weibo.com/your-user-name
      douban: https://douban.com/people/your-user-name
      zhihu: https://www.zhihu.com/people/your-user-name
      # 等等
    
    10.2 设置侧边栏社交图标
    • 打开themes/next下的_config.yml文件,搜索关键字social_icons,添加社交站点名称(注意大小写)图标,Font Awesome图标地址
    social_icons:
      enable: true
      # Icon Mappings.
      # KeyMapsToSocalItemKey: NameOfTheIconFromFontAwesome
      GitHub: github
      Twitter: twitter
      Weibo: weibo
      Linkedin: linkedin
    
    10.3RSS
    Rss.png
    • 在你Hexo 站点目录下
    $ npm install hexo-generator-feed --save
    
    • 打开Hexo 站点下的_config.yml,添加如下配置
    # feed
    # Dependencies: https://github.com/hexojs/hexo-generator-feed
    feed:
      type: atom
      path: atom.xml
      limit: 20
      hub:
      content:
    
    10.4友情链接
    • 打开themes/next下的_config.yml文件,搜索关键字Blog rolls
    # Blog rolls
    links_title: 友情链接 #标题
    links_layout: block #布局,一行一个连接
    #links_layout: inline
    links: #连接
      baidu: http://example.com/
      google: http://example.com/
    

    Hexo-Next-主题优化(二)
    Hexo-Next-主题优化(三)
    Hexo-Next-主题优化(四)

    相关文章

      网友评论

      • 992f46036c68:我的代码复制功能总是不成功?
        Devin_:@花谢为谁泣 1.确保{% include '_custom/custom.swig' %} 插入的位置正确。2. 如果还是不行。这是我blog的复制代码配置文件。参考文章替换。链接: https://pan.baidu.com/s/1crYrSU 密码: 9vf4
        992f46036c68:@Devin_ 没有复制图标
        Devin_:额,是光标放在代码块内,不显示复制图标。还是复制了代码,粘贴没有代码

      本文标题:Hexo-Next-主题优化(一)

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