精华内容
参与话题
问答
  • Hexo系列1:从零开始搭建hexo博客

    千次阅读 2016-04-15 12:37:41
    经过一番折腾,终于搭建好了自己的博客网站,结果是美好的,但过程却惨不忍睹。 作为本站的开篇之作,博主我主要想分享一些建站的想法以及一些初略的经验。欢 迎围观,欢迎吐槽。前言github pages是github下一个...

    经过一番折腾,终于搭建好了自己的博客网站,结果是美好的,但过程却惨不忍睹。
    作为本站的开篇之作,博主我主要想分享一些建站的想法以及一些初略的经验。欢
    迎围观,欢迎吐槽。

    前言


    github pages是github下一个免费域名空间,可以自动生成项目或者用户的网站作为一门前沿技术,我深知学习
    技术的重要性,技术的思考与学习让我产生了撰写博客的想法,之前试过iteye,反
    正就是没坚持下去。直到遇到了hexo,才萌生了搭建自己的博客网站的想法。经过各种失
    败,终于柳暗花明又一村。为了让后来者少走弯路,虽然网上已经有各种教程,但
    总结自己失败的经历对别人还是有帮助的。这篇博客就以rhwayfun.com的建立过程
    谈谈经验。

    安装软件


    1、 node.js
    2、 github客户端
    3、 Sublime Text 2.0


    为什么选择Hexo与github pages?


    • Hexo是什么?
    • Hexo快速入门
    • github pages是什么?
    • github pages快速入门

    Hexo是什么?

    Hexo是一款基于Node.js的静态博客框架,运行速度超快,支持Markdown语法,
    撰写文章就是那么简单。如果想详细了解Hexo,可以参考官方指南或者看
    这篇文章


    Hexo快速入门


    安装Hexo

    在电脑任意目录创建hexo文件夹(E:\hexo),执行以下命令

    cd e:\hexo
    npm install -g
    

    部署Hexo

    继续在E:\hexo目录下进行操作,执行以下命令

    hexo init
    hexo g
    hexo s
    

    hexo init命令会在hexo文件夹生成一些初始化文件和一些配置信息
    hexo g命令在hexo文件夹生成public文件夹,这个文件里面的文件是面向网站的,以后写文章创建的
    文件都是在这个文件夹进行操作
    hexo s会启动hexo服务,在浏览器输入localhost:4000就可以直接访问了

    部署hexo遇到的问题

    在执行上述命令后打开localhost:4000,页面出现的都是代码,一开始怀疑是不是自己部署hexo出问题了,
    于是又重新部署Hexo,结果还是一样,眼看就要成功了却卡在这里,上网查找资料才发现,没有安装模版文件,
    解决这个问题只需要使用以下命令

    npm install hexo-renderer-ejs --save
    npm install hexo-renderer-stylus --save
    npm install hexo-renderer-marked --save
    

    修改默认主题

    首先需要clone新的主题到本地,我使用的是jacman的,在git shell中切换到e:\hexo,使用以下命令克隆主题到
    本地:

    $ git clone https://github.com/wuchong/jacman.git themes/jacman
    

    然后jacman的主题就复制到了themes/jacman中。接着需要在hexo下的_config.yml中修改主题:

    themes: jacman
    

    修改之后,需要更新主题,直接执行下面的命令即可:

    cd themes\jacman
    git pull
    

    启用调试

    更新主题后,需要重新部署hexo,并配置hexo下的config.yml,修改配置如下

    # Deployment
    ## Docs: http://hexo.io/docs/deployment.html
    deploy:
    type: git
    repository: https://github.com/happyxiaofan/happyxiaofan.github.io.git
    branch: master
    

    然后在git shell中执行以下命令(可以不切换路径)

    hexo clean
    hexo g
    hexo s
    

    以后每次修改文件或者themes下的_config.yml文件都要重新执行hexo ghexo s,然后打开本地预览窗口,查看修改效果。
    不过现在有许多在线Markdown预览工具,简单实用,可以直接在预览工具或者Sublime Text中编写代码(在Sublime Text预览需要首先安装
    MarkdownEditing插件),在网页中查看编写效果。不过当对Markdown语法熟悉之后,直接在Sublime Text中写代码是很不错的体验,之前
    使用Notepad ++,后面发现Sublime Text那么强大,果断使用它了


    github pages是什么?

    github pages可以自动为你的项目生成一个网站模版,并且没有数量限制,类似这样:

    caca

    使用github pages还能生成个人或者组织网站,相当强大。而且发布一个网站仅仅需要的只是一个github账号而已。详情可以访问这里


    github pages快速入门


    注册github

    访问github官网,注册一个账号,并创建一个项目,比如一个公共项目rhwayfun。

    配置SSH密匙

    配置SSH密匙是为了本地github项目与远程建立联系,详细的配置过程请参考官方指南

    使用Github pages

    配置成功后,在rhwayfun项目主页点击setting,然后点击左边的Options,下拉到Github pages,直接点那个Launch automatic page generator按钮就行。然后选择网站模版就行,等待大约几分钟,github pages就帮你生成了项目的网站,默认网址是https:username.github.io/project
    如果想访问自定义的域名,请查看Github pages进阶篇


    Github pages进阶篇


    注册域名

    访问godaddy,首先查找想要注册的域名,然后一直点击CONTINUE TO CHART就行。godaddy是国外唯一支持支付宝的域名提供商,而且godaddy性能稳定,这也是选择它的原因。支付成功后,点击My Account——>Manage My Domains,就可以看到你注册的那个域名了。

    设置域名

    进入域名管理页面后需要修改Nameservers,选中域名,选自定义,将Nameservers修改为f1g1ns1.dnspod.net和f1g1ns2.dnspod.net

    修改DNS设置

    使用DNSPod添加域名,创建两条A记录,端口号保持600不变,将IP地址分别设为github pages提供的IP:

    • 192.30.252.153
    • 192.30.252.154

    Github pages的设置

    在username.github.io项目根目录下创建CNAME文件,文件内容为你在godaddy购买的域名(顶级域名贵些,建议购买顶级域名),如rhwayfun.com

    CNAME文件

    至此博客搭建完成,可以在git shell中切换到hexo文件夹,仍然执行hexo ghexo d命令,也可以使用组合命令hexo d -g。然后到浏览器中输入rhwayfun.com(ps:DNSPod的设置不一定立即生效,需要等待一段时间)。如出现下面的界面,恭喜你博客搭建成功,请尽情享受你的博客网站吧!

    rhwayfun

    本文关于hexo框架博客网站的搭建,不是最详细的,当然如果您根据我的文章一步步折腾下来还成功的的话,说明我们都是一路人————爱折腾。或许这也是程序员的一个特质吧。文章中任何有瑕疵的地方,欢迎不吝赐教!


    参考资料

    1、 如何搭建一个独立博客——简明Github Pages与Hexo教程 (推荐)
    2、 Jacman基于Pacman修改的Hexo主题(推荐)
    3、 Markdown语法说明
    4、 How do I start using LiveReload?
    5、 Hexo站点中添加文章目录以及归档
    6、 利用swiftype为hexo添加站内搜索
    7、 Hexo
    8、 Hexo优化与定制(一)(推荐)
    9、 hexo你的博客(推荐)
    10、 为hexo添加多说评论
    11、 多说 API
    12、 swiftype
    13、 百度统计
    14、 七牛
    15、 使用Github Pages建独立博客
    16、 为Hexo添加新浪微博秀

    展开全文
  • hexo,史上最全搭建个人博客

    千次阅读 2020-03-07 16:23:12
    前言 2020 - 2 月底鬼使神差的给我的域名 mflyyou.cn 续费三年,2024 - 4 才到期,就琢磨搭建个人网站,Google 了 hexo 中一个...hexo 使用,及怎么去改主题的模板 阿里云服务器,搭建 nginx ,配置 nginx 缓存 百...

    前言

    2020 - 2 月底鬼使神差的给我的域名 mflyyou.cn 续费三年,2024 - 4 才到期,就琢磨搭建个人网站,Google 了 hexo 中一个自己比较喜欢的主题 hexo-matery-modified ,然后自己改了改其中的内容。

    博客的具体效果请观摩 张攀钦的博客

    本文概要

    • hexo 使用,及怎么去改主题的模板
    • 阿里云服务器,搭建 nginx ,配置 nginx 缓存
    • 百度、谷歌 seo 优化,让你的网站可以被搜索到
    • 阿里 oss 作为图片服务器
    • CDN 加速提高首屏渲染
    • shell 脚本一键部署到 nginx 目录下,将所需静态资源上传到 oss

    Hexo 介绍

    hexo 会解析 markdown 语法 生成对应的 html ,主题就是 css 样式。

    我自己的 hexo GitHub 克隆之后 yarn install 安装依赖。hexo s 本地预览效果。

    yarn 中文教程

    如果是用 npm 安装的依赖包的话,请将 yarn.lock 先删除,再 npm install 安装。我已在项目下 .npmrc 配置依赖包从淘宝镜像下载。

    root 为项目根路径。

    # 本地预览
    hexo s
    
    # 根据配置文件和主题,将 root/source/_post 下的 markdown 文件生成 html 内容
    hexo g
    
    # 清空 hexo g 生成的内容,内容在 root/public 
    hexo clean
    
    # 将本地生成 url 链接推送到百度,让百度爬取其中的内容进行索引
    hexo d
    
    # 根据 标题名称  在root/source/_post 生成 markdown 文件
    hexo new post 标题名称

    配置友链

    root/source/_post/friends.json 配置友链。

    image-20200306225510922

    配置音乐

    root/source/_post/musics.json 配置音乐列表。

    image-20200306225547485

    导航-关于

    root/source/about/index.md 配置个人信息。

    image-20200307121049901

    导航-留言

    root/source/contact/index.md 配置留言展示信息。

    image-20200307121113555

    导航-标签/分类/归档

    以上配置信息是在文档的 markdown 文件中配置,然后会根据这些信息生成以上导航的内容。

    ---
    # 名称
    title: {{ title }}
    # 文章日期
    date: {{ date }}
    # 是否在页面推荐文章列表展示
    top: false
    # 是否在首页轮播
    cover: false
    # 查看文章的密码, sha256 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
    password: 
    # 文章目录
    toc: true
    # 统计文章
    mathjax: true
    # 文章摘要
    summary:
    # 文章标签
    tags:
    # 文章分类
    categories:
    # 文档关联图片,可以配置 url,没配置的话,自动从主题配置文件的 featureImages 属性中自动选取一个
    img:
    ---
    

    文档 md 文件最前面的这些内容就会被利用生成 标签 分类 归档 内容。

    root/_config.yml 为 hexo 的配置文件。

    root/themes/_config.yml 为主题配置文件。

    我在配置文件中加看注释,基本看注释就能明白。我重点说几个重要的功能。

    gitalk 配置

    基本和这个 gitalk readme

    image-20200306222243375

    创建一个公共仓库作为你的博客留言,这个是基于 github 仓库下的 issue 提供的功能。

    点击你申请的 app,查看 gitalk 的配置信息

    image-20200306222528779

    注意 gitalk 的 配置信息不要泄露

    # Gitalk 评论模块的配置,默认为不激活
    gitalk:
      enable: true
      # 配置你的用户名
      owner: zhangpanqin
      # 配置一个公共仓库储存聊天记录。
      repo: hexo-gitalk
      oauth:
          # 填写你申请的 Client ID
        clientId: 
        # 填写 Client Secret
        clientSecret: 
      # 配置你的用户名
      admin: zhangpanqin

    image-20200306222904462

    valine

    gitalk 是需要登录 github 才能登录的,valine 是不需要登录就可以留言的。

    官网申请账号

    image-20200306223337173

    申请好账号,先创建自己的应用,然后将 ApplDAppKey 配置到主题文件中去。注意 valine 的 配置信息不要泄露

    valine:
      enable: true
      appId: 
      appKey: 
      notify: false
      verify: false
      visitor: true
      avatar: 'mm' # Gravatar style : mm/identicon/monsterid/wavatar/retro/hide
      pageSize: 10
      placeholder: 'just go go' # Comment Box placeholder
      background: /medias/comment_bg.png

    valine 评论如下

    image-20200306223749651

    不蒜子统计

    可以在页脚展示你的网站访问量和访问人次,但是会拖慢页面加载,我将其关闭了。

    # 不蒜子(http://busuanzi.ibruce.info/) 网站统计,为了网站加载速度,展示关闭
    busuanziStatistics:
      enable: false
      totalTraffic: true # 总访问量
      totalNumberOfvisitors: true # 总人次

    页面资源配置前置路径

    以前的版本,资源只能加载当前网站下的资源,现在可以配置路径前缀。将静态的 css,js 库 、图片资源放到阿里 oss 上去,再利用 cdn 加速,可以提高首屏渲染速度。本地调试的时候 配置 url 为空

    # 静态资源前缀路径
    jsDelivr:
        url:  

    扩展修改

    root/themes/matery/layout 为模板文件,你会 html 和 css 就能修改,模板的语法也很简单,当你看几篇模板基本就学会了。

    静态资源位置

    root/themes/matery/source 为静态资源位置,可将这些资源放到 oss 上去,通过 cdn 加速。

    部署

    基于以上步骤你就可以 hexo s 本地预览,我们要部署到服务器上去。

    阿里云上买个服务器,我装的是 cenos 7.7系统。

    创建新用户

    为了安全不要用 root 用户操作你的远程服务器。

    在阿里云控制台创建新的用户,以后用这个用户操作远程服务器。

    # 创建 hexo 用户
    adduser hexo
    
    # 修改 hexo 的密码
    passwd admin12345
    
    # 给 hexo 赋予 sudo 命令权限
    
    # 在 root 下运行,修改文件的可写性
    chmod  700 /etc/sudoers
    
    # /etc/sudoers 文件中填写 rabbitmq ALL=(ALL)      PASSWD:ALL
    # 在文件中下拉,找到  root    ALL=(ALL)       ALL
    # 在找到的上述内容下添加,便于维护
    admin ALL=(ALL)      PASSWD:ALL
    
    # 权限给了之后,修改文件 /etc/sudoers 为只读性
    chmod  400 /etc/sudoers

    配置 ssh

    配置 ssh 之后,你以后只需要。

    # mflyyou.cn 为你的服务器
    ssh mflyyou.cn
    # 生成秘钥
    ssh-keygen -o -t rsa  -b 4096 -c "生成秘钥对的说明"
    
    # 指定秘钥生成时路径 /Users/zhangpanqin/.ssh/mflyyou_server_rs.pub
    
    # 将公钥 copy 到 server 中 hexo 为以后登录的用户 ip 为你远程服务器 ip
    ssh-copy-id -i /Users/zhangpanqin/.ssh/mflyyou_server_rs.pub hexo@id
    
    # 注意那个用户
    # 或者登录 server 将公钥内容拷贝到了 ~/.ssh/authorized_keys
    
    
    # 验证登录 这个是公钥对应的私钥
    ssh -T /Users/zhangpanqin/.ssh/mflyyou_server_rs hexo@ip

    配置登录信息

    ~/.ssh/config

    image-20200306233517287

    Host 之后配置的是别名, ssh mflyyou 就会找 HostName 对应的 ip 登录。

    User 配置对应的 用户

    IdentityFile 配置对应的私钥文件

    以上完成就可以 ssh mflyyou 登录了。

    image-20200306233759748

    安装 nginx

    nginx 安装教程

    默认的网站目录为: /usr/share/nginx/html

    默认的配置文件为:/etc/nginx/nginx.conf

    自定义配置文件目录为: /etc/nginx/conf.d/

    # 配置开机启动
    sudo systemctl enable nginx
    sudo systemctl stop nginx
    sudo systemctl start nginx
    sudo systemctl restart nginx
    # 查看 nginx 运行状态
    sudo systemctl status nginx
    
    # 检查配置文件 配置是否正确
    sudo nginx -t
    
    # 重新加载配置文件
    sudo nginx -s reload

    修改配置文件

    /etc/nginx/nginx.conf 配置缓存

    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format main '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log /var/log/nginx/access.log main;
    
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        proxy_hide_header X-Powered-By;
        proxy_hide_header Server;
    
        # 开启gzip
        gzip on;
    
        # 启用gzip压缩的最小文件;小于设置值的文件将不会被压缩
        gzip_min_length 1k;
    
        # gzip 压缩级别 1-10
        gzip_comp_level 2;
    
        # 进行压缩的文件类型。
    
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    
        # 是否在http header中添加Vary: Accept-Encoding,建议开启
        gzip_vary on;
    
    
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
       include /etc/nginx/conf.d/*.conf;
    
    
        server {
            listen 80 default_server;
            listen [::]:80 default_server;
            server_name _;
            root /usr/share/nginx/html;
            server_tokens off;
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            }
    
            location ~* \.(html|xml)$ {
                access_log off;
                add_header Cache-Control no-cache;
            }
    
            location ~* \.(css|js|png|jpg|jpeg|gif|gz|svg|mp4|mp3|ogg|ogv|webm|htc|woff2|ico|woff|ttf)$ {
                # 同上,通配所有以.css/.js/...结尾的请求
                access_log off;
                # 10 d
                add_header Cache-Control "public,max-age=864000";
            }
            error_page 404 /404.html;
            location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
        }
    }
    

    主要添加了 htmlxml 使用协商缓存,其余静态资源使用强缓存。开启 gzip。

    Cache-Control 为 http 1.1 关于缓存的配置,优先级最高。

    add_header Cache-Control "public,max-age=864000” 配置强缓存。

    静态资源几乎不变,全部强缓存。访问的时候,在配置的 max-age 内只要浏览器有缓存直接拿,而不会问服务器。没有缓存的话,访问服务器

    add_header Cache-Control no-cache; 配置协商缓存。

    html 和 xml 文件是生成的,每次可能会变,配置协商缓存,每次访问先询问服务器有没有变化,没变化走缓存,变化从服务器拿。

    部署基于以上部分就可以了。但是美中不足的是 首次加载的时候还是卡。为了解决这个问题,也为了写 markdown 的时候图片上传方便,直接买了一个 oss 和 cdn。oss 和 cdn 一年花费会在 100以内。

    如果对 oss 和 cdn 不知道是什么,建议直接部署到阿里云服务器就行

    阿里云服务器推广

    阿里 oss

    我买 oss 的原因是为了用 typora 写文章的时候上传图片省事 ,在 Picgo 上配置阿里 oss 图床就行。

    image-20200307102712474

    image-20200307105001747

    oss 提供了图形化上传 和 脚本上传。结合 shell 可以一键将静态资源上传 oss,html 相关上传 nginx 目录下。

    image-20200307103458966

    创建之后不要忘了设置防盗链。

    然后下图的传输管理 选项中开启 cdn 加速,cdn 选择流量计费,20 元 100g。oss 外网访问流量会收费(一年也不会超过一百块),如果你想省钱,可以买和你的阿里云服务器相同区域的,然后让访问走内网。

    image-20200307103817414

    CDN

    image-20200307104129580

    边缘脚本 语法看阿里官方指南就可以看懂了,根据自己需求添加。比如给图片加水印,所有请求都会给加上 oss 上的访问参数,使所有的图片都有水印效果。

    你也可以通过 回源配置 将流量回源到你的阿里云服务器, cdn 回源 oss 也是要收费的。

    SEO

    提交你的链接,让百度索引

    百度站长工具

    提交你的链接

    image-20200307113739724

    image-20200307113904879

    roo/_config.yml将 site 对应 host,token 对应 token。hexo d 就会将链接推送百度。我写的脚本,deploy.sh 会自动推送。

    自动推送,会在你访问链接的时候,推送百度,只需配置就可以了。

    # 推送你需要让百度索引的链接
    baiduPush: true

    百度分析

    百度分析

    image-20200307114720921

    填写上述 id

    baiduAnalytics:
        enable: true
        # 百度分析 id
        id: 

    google 分析

    google 分析

    image-20200307115610409

    将跟踪 id 配置到 主题配置文件中

    googleAnalytics:
      enable: true
      # 谷歌分析配置申请之后填写你的 id
      id: 

    google search console

    在 search console 中添加的你的网站网址,这样 google 会爬取你的网站内容索引。

    image-20200307115742082

    提交你的站点地图,让 google 知道爬取哪些页面。

    以上配置完成后,过几天就会看到以下效果。百度的更慢,我都 10天了还没动静。

    image-20200307115902993

    脚本一键部署网站

    BASE_DIR=$(
        cd $(dirname $0)
        pwd
    )
    # 进入项目路径下
    cd ${BASE_DIR}
    
    yarn run build
    hexo d
    if [ $? != 0 ]; then
        echo "构建失败,退出"
        exit -1
    fi
    
    # 拷贝项目路径下 themes/matery/source  到 oss 上去,bukect 替换你 自己的 oss bueket 名称
    
    /Users/zhangpanqin/app/oss/ossutilmac64 cp -rf ${BASE_DIR}/themes/matery/source oss://bukect --meta=Cache-Control:public,max-age=2592000
    
    if [ $? != 0 ]; then
        echo "上传 oss 失败,退出"
        exit -1
    fi
    
    public=${BASE_DIR}/public
    
    if [ -d ${public} ]; then
        scp -rp ${public}/* 用户名@ip:/usr/share/nginx/html/
        echo "部署成功"
    else
        echo "${public} 不存在,部署失败"
    fi
    

    我自己写的 shell 脚本,一直在用。

    你只需将 bucket 配置你的 bucket 和 oss 配置文件就行。你运行 ossutilmac64 会提示你配置秘钥。

    用户名一定要配置 ssh ,修改你自己的 ip。

    然后 chmod 744 ./deploy.sh 让脚本文件可执行。

    感谢

    我基于 hexo-theme-materyhexo-matery-modified 修改了自己想要的效果。

    感觉开源的 hexo 主题 hexo-theme-matery

    感谢韦阳的开源贡献 hexo-matery-modified,让我节省了大量时间。


    本文由 张攀钦的博客 创作。 可自由转载、引用,但需署名作者且注明文章出处。

    如转载至微信公众号,请在文末添加作者公众号二维码。微信公众号名称:Mflyyou

    img

    展开全文
  • hexo史上最全搭建教程

    万次阅读 多人点赞 2018-09-16 20:19:08
    花了几天搭建了个网站,先上链接,欢迎来访:fangzh的个人博客 现在市面上的博客很多,如CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到。缺点是比较不自由,会受到...

    花了几天搭建了个网站,先上链接,欢迎来访:fangzh的个人博客

    现在市面上的博客很多,如CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到。缺点是比较不自由,会受到平台的各种限制和恶心的广告。

    而自己购买域名和服务器,搭建博客的成本实在是太高了,不光是说这些购买成本,单单是花力气去自己搭这么一个网站,还要定期的维护它,对于我们大多数人来说,实在是没有这样的精力和时间。

    那么就有第三种选择,直接在github page平台上托管我们的博客。这样就可以安心的来写作,又不需要定期维护,而且hexo作为一个快速简洁的博客框架,用它来搭建博客真的非常容易。

    Hexo简介

    Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为Hexo的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。

    教程分三个部分,

    • 第一部分:hexo的初级搭建还有部署到github page上,以及个人域名的绑定。
    • 第二部分:hexo的基本配置,更换主题,实现多终端工作,以及在coding page部署实现国内外分流
    • 第三部分:hexo添加各种功能,包括搜索的SEO,阅读量统计,访问量统计和评论系统等。

    第一部分

    hexo的初级搭建还有部署到github page上,以及个人域名的绑定。

    Hexo简介

    Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为Hexo的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。

    Hexo搭建步骤

    1. 安装Git
    2. 安装Node.js
    3. 安装Hexo
    4. GitHub创建个人仓库
    5. 生成SSH添加到GitHub
    6. 将hexo部署到GitHub
    7. 设置个人域名
    8. 发布文章

    1. 安装Git

    Git是目前世界上最先进的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。也就是用来管理你的hexo博客文章,上传到GitHub的工具。Git非常强大,我觉得建议每个人都去了解一下。廖雪峰老师的Git教程写的非常好,大家可以了解一下。Git教程

    windows:到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具,以后就用这个工具来使用git。

    linux:对linux来说实在是太简单了,因为最早的git就是在linux上编写的,只需要一行代码

    sudo apt-get install git
    

    安装好后,用git --version 来查看一下版本

    2. 安装nodejs

    Hexo是基于nodeJS编写的,所以需要安装一下nodeJs和里面的npm工具。

    windows:nodejs选择LTS版本就行了。

    linux:

    sudo apt-get install nodejs
    sudo apt-get install npm
    

    安装完后,打开命令行

    node -v
    npm -v
    

    检查一下有没有安装成功

    顺便说一下,windows在git安装完后,就可以直接使用git bash来敲命令行了,不用自带的cmd,cmd有点难用。

    3. 安装hexo

    前面git和nodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹blog,然后cd到这个文件夹下(或者在这个文件夹下直接右键git bash打开)。

    输入命令

    npm install -g hexo-cli
    

    依旧用hexo -v查看一下版本

    至此就全部安装完了。

    接下来初始化一下hexo

    hexo init myblog
    

    这个myblog可以自己取什么名字都行,然后

    cd myblog //进入这个myblog文件夹
    npm install
    

    新建完成后,指定文件夹目录下有:

    • node_modules: 依赖包
    • public:存放生成的页面
    • scaffolds:生成文章的一些模板
    • source:用来存放你的文章
    • themes:主题
    • ** _config.yml: 博客的配置文件**
    hexo g
    hexo server
    

    打开hexo的服务,在浏览器输入localhost:4000就可以看到你生成的博客了。

    大概长这样:

    使用ctrl+c可以把服务关掉。

    4. GitHub创建个人仓库

    首先,你先要有一个GitHub账户,去注册一个吧。

    注册完登录后,在GitHub.com中看到一个New repository,新建仓库

    创建一个和你用户名相同的仓库,后面加.github.io,只有这样,将来要部署到GitHub page的时候,才会被识别,也就是xxxx.github.io,其中xxx就是你注册GitHub的用户名。我这里是已经建过了。

    点击create repository。

    5. 生成SSH添加到GitHub

    回到你的git bash中,

    git config --global user.name "yourname"
    git config --global user.email "youremail"
    

    这里的yourname输入你的GitHub用户名,youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户。

    可以用以下两条,检查一下你有没有输对

    git config user.name
    git config user.email
    

    然后创建SSH,一路回车

    ssh-keygen -t rsa -C "youremail"
    

    这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹。

    ssh,简单来讲,就是一个秘钥,其中,id_rsa是你这台电脑的私人秘钥,不能给别人看的,id_rsa.pub是公共秘钥,可以随便给别人看。把这个公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。

    而后在GitHub的setting中,找到SSH keys的设置选项,点击New SSH key
    把你的id_rsa.pub里面的信息复制进去。

    在gitbash中,查看是否成功

    ssh -T git@github.com
    

    6. 将hexo部署到GitHub

    这一步,我们就可以将hexo和GitHub关联起来,也就是将hexo生成的文章部署到GitHub上,打开站点配置文件 _config.yml,翻到最后,修改为
    YourgithubName就是你的GitHub账户

    deploy:
      type: git
      repo: https://github.com/YourgithubName/YourgithubName.github.io.git
      branch: master
    

    这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub。

    npm install hexo-deployer-git --save
    

    然后

    hexo clean
    hexo generate
    hexo deploy
    

    其中 hexo clean清除了你之前生成的东西,也可以不加。
    hexo generate 顾名思义,生成静态文章,可以用 hexo g缩写
    hexo deploy 部署文章,可以用hexo d缩写

    注意deploy时可能要你输入username和password。

    得到下图就说明部署成功了,过一会儿就可以在http://yourname.github.io 这个网站看到你的博客了!!

    7. 设置个人域名

    现在你的个人网站的地址是 yourname.github.io,如果觉得这个网址逼格不太够,这就需要你设置个人域名了。但是需要花钱。

    注册一个阿里云账户,在阿里云上买一个域名,我买的是 fangzh.top,各个后缀的价格不太一样,比如最广泛的.com就比较贵,看个人喜好咯。

    你需要先去进行实名认证,然后在域名控制台中,看到你购买的域名。

    解析进去,添加解析。

    其中,192.30.252.153 和 192.30.252.154 是GitHub的服务器地址。
    注意,解析线路选择默认,不要像我一样选境外。这个境外是后面来做国内外分流用的,在后面的博客中会讲到。记得现在选择默认!!

    登录GitHub,进入之前创建的仓库,点击settings,设置Custom domain,输入你的域名fangzh.top

    然后在你的博客文件source中创建一个名为CNAME文件,不要后缀。写上你的域名。

    最后,在gitbash中,输入

    hexo clean
    hexo g
    hexo d
    

    过不了多久,再打开你的浏览器,输入你自己的域名,就可以看到搭建的网站啦!

    接下来你就可以正式开始写文章了。

    hexo new newpapername
    

    然后在source/_post中打开markdown文件,就可以开始编辑了。当你写完的时候,再

    hexo clean
    hexo g
    hexo d
    

    就可以看到更新了。

    第二部分

    hexo的基本配置,更换主题,实现多终端工作,以及在coding page部署实现国内外分流。

    1. hexo基本配置

    在文件根目录下的_config.yml,就是整个hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。

    网站

    参数 描述
    title 网站标题
    subtitle 网站副标题
    description 网站描述
    author 您的名字
    language 网站使用的语言
    timezone 网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说:America/New_York, Japan, 和 UTC

    其中,description主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author参数用于主题显示文章的作者。

    网址

    参数 描述
    url 网址
    root 网站根目录
    permalink 文章的 永久链接 格式
    permalink_defaults 永久链接中各部分的默认值

    在这里,你需要把url改成你的网站域名。

    permalink,也就是你生成某个文章时的那个链接格式。

    比如我新建一个文章叫temp.md,那么这个时候他自动生成的地址就是http://yoursite.com/2018/09/05/temp

    以下是官方给出的示例,关于链接的变量还有很多,需要的可以去官网上查找 永久链接

    参数 结果
    :year/:month/:day/:title/ 2013/07/14/hello-world
    :year-:month-:day-:title.html 2013-07-14-hello-world.html
    :category/:title foo/bar/hello-world

    再往下翻,中间这些都默认就好了。

    theme: landscape
    
    # Deployment
    ## Docs: https://hexo.io/docs/deployment.html
    deploy:
      type: git
      repo: <repository url>
      branch: [branch]
    
    

    theme就是选择什么主题,也就是在theme这个文件夹下,在官网上有很多个主题,默认给你安装的是lanscape这个主题。当你需要更换主题时,在官网上下载,把主题的文件放在theme文件夹下,再修改这个参数就可以了。

    接下来这个deploy就是网站的部署的,repo就是仓库(Repository)的简写。branch选择仓库的哪个分支。这个在之前进行github page部署的时候已经修改过了,不再赘述。而这个在后面进行双平台部署的时候会再次用到。

    Front-matter

    Front-matter 是文件最上方以 --- 分隔的区域,用于指定个别文件的变量,举例来说:

    title: Hello World
    date: 2013/7/13 20:46:25
    ---
    

    下是预先定义的参数,您可在模板中使用这些参数值并加以利用。

    参数 描述
    layout 布局
    title 标题
    date 建立日期
    updated 更新日期
    comments 开启文章的评论功能
    tags 标签(不适用于分页)
    categories 分类(不适用于分页)
    permalink 覆盖文章网址

    其中,分类和标签需要区别一下,分类具有顺序性和层次性,也就是说 Foo, Bar 不等于 Bar, Foo;而标签没有顺序和层次。

    categories:
    - Diary
    tags:
    - PS3
    - Games
    

    layout(布局)

    当你每一次使用代码

    hexo new paper
    

    它其实默认使用的是post这个布局,也就是在source文件夹下的_post里面。

    Hexo 有三种默认布局:postpagedraft,它们分别对应不同的路径,而您自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。

    布局 路径
    post source/_posts
    page source
    draft source/_drafts

    而new这个命令其实是:

    hexo new [layout] <title>
    

    只不过这个layout默认是post罢了。

    page

    如果你想另起一页,那么可以使用

    hexo new page board
    

    系统会自动给你在source文件夹下创建一个board文件夹,以及board文件夹中的index.md,这样你访问的board对应的链接就是http://xxx.xxx/board

    draft

    draft是草稿的意思,也就是你如果想写文章,又不希望被看到,那么可以

    hexo new draft newpage
    

    这样会在source/_draft中新建一个newpage.md文件,如果你的草稿文件写的过程中,想要预览一下,那么可以使用

    hexo server --draft
    

    在本地端口中开启服务预览。

    如果你的草稿文件写完了,想要发表到post中,

    hexo publish draft newpage
    

    就会自动把newpage.md发送到post中。


    2. 更换主题

    到这一步,如果你觉得默认的landscape主题不好看,那么可以在官网的主题中,选择你喜欢的一个主题进行修改就可以啦。点这里

    这里有200多个主题可以选。不过最受欢迎的就是那么几个,比如NexT主题,非常的简洁好看,大多数人都选择这个,关于这个的教程也比较多。不过我选择的是hueman这个主题,好像是从WordPress移植过来的,展示效果如下:

    不管怎么样,至少是符合我个人的审美。

    直接在github链接上下载下来,然后放到theme文件夹下就行了,然后再在刚才说的配置文件中把theme换成那个主题文件夹的名字,它就会自动在theme文件夹中搜索你配置的主题。

    而后进入hueman这个文件夹,可以看到里面也有一个配置文件_config.xml,貌似它默认是_config.xml.example,把它复制一份,重命名为_config.xml就可以了。这个配置文件是修改你整个主题的配置文件。

    menu(菜单栏)

    也就是上面菜单栏上的这些东西。

    其中,About这个你是找不到网页的,因为你的文章中没有about这个东西。如果你想要的话,可以执行命令

    hexo new page about
    

    它就会在根目录下source文件夹中新建了一个about文件夹,以及index.md,在index.md中写上你想要写的东西,就可以在网站上展示出来了。

    如果你想要自己再自定义一个菜单栏的选项,那么就

    hexo new page yourdiy
    

    然后在主题配置文件的menu菜单栏添加一个 Yourdiy : /yourdiy,注意冒号后面要有空格,以及前面的空格要和menu中默认的保持整齐。然后在languages文件夹中,找到zh-CN.yml,在index中添加yourdiy: '中文意思'就可以显示中文了。

    customize(定制)

    在这里可以修改你的个人logo,默认是那个hueman,在source/css/images文件夹中放入自己要的logo,再改一下url的链接名字就可以了。

    favicon是网站中出现的那个小图标的icon,找一张你喜欢的logo,然后转换成ico格式,放在images文件夹下,配置一下路径就行。

    social_links ,可以显示你的社交链接,而且是有logo的。

    tips:

    在这里可以添加一个rss功能,也就是那个符号像wifi一样的东西。

    添加RSS

    1. 什么是RSS?

    RSS也就是订阅功能,你可以理解为类似与订阅公众号的功能,来订阅各种博客,杂志等等。

    2. 为什么要用RSS?

    就如同订阅公众号一样,你对某个公众号感兴趣,你总不可能一直时不时搜索这个公众号来看它的文章吧。博客也是一样,如果你喜欢某个博主,或者某个平台的内容,你可以通过RSS订阅它们,然后在RSS阅读器上可以实时推送这些消息。现在网上的垃圾消息太多了,如果你每一天都在看这些消息中度过,漫无目的的浏览,只会让你的时间一点一点的流逝,太不值得了。如果你关注的博主每次都发的消息都是精华,而且不是每一天十几条几十条的轰炸你,那么这个博主就值得你的关注,你就可以通过RSS订阅他。

    在我的理解中,如果你不想每天都被那些没有质量的消息轰炸,只想安安静静的关注几个博主,每天看一些有质量的内容也不用太多,那么RSS订阅值得你的拥有。

    3. 添加RSS功能

    先安装RSS插件

    npm i hexo-generator-feed
    

    而后在你整个项目的_config.yml中找到Extensions,添加:

    # Extensions
    ## Plugins: https://hexo.io/plugins/
    #RSS订阅
    plugin:
    - hexo-generator-feed
    #Feed Atom
    feed:
      type: atom
      path: atom.xml
      limit: 20
    

    这个时候你的RSS链接就是 域名/atom.xml了。

    所以,在主题配置文件中的这个social links,开启RSS的页面功能,这样你网站上就有那个像wifi一样符号的RSS logo了,注意空格。

    rss: /atom.xml
    

    4. 如何关注RSS?

    首先,你需要一个RSS阅读器,在这里我推荐inoreader,宇宙第一RSS阅读器,而且中文支持的挺好。不过它没有PC端的程序,只有网页版,chrome上有插件。在官网上用google账号或者自己注册账号登录,就可以开始你的关注之旅了。

    每次需要关注某个博主时,就点开他的RSS链接,把链接复制到inoreader上,就能关注了,当然,如果是比较大众化的很厉害的博主,你直接搜名字也可以的,比如每个人都非常佩服的阮一峰大师,直接在阅读器上搜索阮一峰,应该就能出来了。

    我关注的比如,阮一峰的网络日志,月光博客,知乎精选等,都很不错。当然,还有我!!赶快关注我吧!你值得拥有:http://fangzh.top/atom.xml

    在安卓端,inoreader也有下载,不过因为国内google是登录不了的,你需要在inoreader官网上把你的密码修改了,然后就可以用账户名和密码登录了。

    在IOS端,没用过,好像是reader 3可以支持inoreader账户,还有个readon也不错,可以去试试。

    widgets(侧边栏)

    侧边栏的小标签,如果你想自己增加一个,比如我增加了一个联系方式,那么我把communication写在上面,在zh-CN.yml中的sidebar,添加communication: '中文'

    然后在hueman/layout/widget中添加一个communicaiton.ejs,填入模板:

    <% if (site.posts.length) { %>
        <div class="widget-wrap widget-list">
            <h3 class="widget-title"><%= __('sidebar.communiation') %></h3>
            <div class="widget">
                <!--这里添加你要写的内容-->
            </div>
        </div>
    <% } %>
    

    search(搜索框)

    默认搜索框是不能够用的,

    you need to install hexo-generator-json-content before using Insight Search

    它已经告诉你了,如果想要使用,就安装这个插件。

    comment(评论系统)

    这里的多数都是国外的,基本用不了。这个valine好像不错,还能统计文章阅读量,可以自己试一试,链接

    miscellaneous(其他)

    这里我就改了一个links,可以添加友链。注意空格要对!不然会报错!

    总结:

    整个主题看起来好像很复杂的样子,但是仔细捋一捋其实也比较流畅,

    • languages: 顾名思义
    • layout:布局文件,其实后期想要修改自定义网站上的东西,添加各种各样的信息,主要是在这里修改,其中comment是评论系统,common是常规的布局,最常修改的在这里面,比如修改页面headfooter的内容。
    • scripts:js脚本,暂时没什么用
    • source:里面放了一些css的样式,以及图片

    3. git分支进行多终端工作

    问题来了,如果你现在在自己的笔记本上写的博客,部署在了网站上,那么你在家里用台式机,或者实验室的台式机,发现你电脑里面没有博客的文件,或者要换电脑了,最后不知道怎么移动文件,怎么办?

    在这里我们就可以利用git的分支系统进行多终端工作了,这样每次打开不一样的电脑,只需要进行简单的配置和在github上把文件同步下来,就可以无缝操作了。

    机制

    机制是这样的,由于hexo d上传部署到github的其实是hexo编译后的文件,是用来生成网页的,不包含源文件。

    可以看到,并没有source等源文件在内

    也就是上传的是在本地目录里自动生成的.deploy_git里面。

    其他文件 ,包括我们写在source 里面的,和配置文件,主题文件,都没有上传到github

    所以可以利用git的分支管理,将源文件上传到github的另一个分支即可。

    上传分支

    首先,先在github上新建一个hexo分支,如图:

    然后在这个仓库的settings中,选择默认分支为hexo分支(这样每次同步的时候就不用指定分支,比较方便)。

    然后在本地的任意目录下,打开git bash,

    git clone git@github.com:ZJUFangzh/ZJUFangzh.github.io.git
    

    将其克隆到本地,因为默认分支已经设成了hexo,所以clone时只clone了hexo。

    接下来在克隆到本地的ZJUFangzh.github.io中,把除了.git 文件夹外的所有文件都删掉

    把之前我们写的博客源文件全部复制过来,除了.deploy_git。这里应该说一句,复制过来的源文件应该有一个.gitignore,用来忽略一些不需要的文件,如果没有的话,自己新建一个,在里面写上如下,表示这些类型文件不需要git:

    .DS_Store
    Thumbs.db
    db.json
    *.log
    node_modules/
    public/
    .deploy*/
    

    注意,如果你之前克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删掉,因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致你的主题文件无法上传,这样你的配置在别的电脑上就用不了了。

    而后

    git add .
    git commit –m "add branch"
    git push 
    

    这样就上传完了,可以去你的github上看一看hexo分支有没有上传上去,其中node_modulespublicdb.json已经被忽略掉了,没有关系,不需要上传的,因为在别的电脑上需要重新输入命令安装 。

    这样就上传完了。

    更换电脑操作

    一样的,跟之前的环境搭建一样,

    • 安装git
    sudo apt-get install git
    
    • 设置git全局邮箱和用户名
    git config --global user.name "yourgithubname"
    git config --global user.email "yourgithubemail"
    
    • 设置ssh key
    ssh-keygen -t rsa -C "youremail"
    #生成后填到github和coding上(有coding平台的话)
    #验证是否成功
    ssh -T git@github.com
    ssh -T git@git.coding.net #(有coding平台的话)
    
    • 安装nodejs
    sudo apt-get install nodejs
    sudo apt-get install npm
    
    • 安装hexo
    sudo npm install hexo-cli -g
    

    但是已经不需要初始化了,

    直接在任意文件夹下,

    git clone git@………………
    

    然后进入克隆到的文件夹:

    cd xxx.github.io
    npm install
    npm install hexo-deployer-git --save
    

    生成,部署:

    hexo g
    hexo d
    

    然后就可以开始写你的新博客了

    hexo new newpage
    

    Tips:

    1. 不要忘了,每次写完最好都把源文件上传一下
    git add .
    git commit –m "xxxx"
    git push 
    
    1. 如果是在已经编辑过的电脑上,已经有clone文件夹了,那么,每次只要和远端同步一下就行了
    git pull
    

    4. coding page上部署实现国内外分流

    之前我们已经把hexo托管在github了,但是github是国外的,而且百度的爬虫是不能够爬取github的,所以如果你希望你做的博客能够在百度引擎上被收录,而且想要更快的访问,那么可以在国内的coding page做一个托管,这样在国内访问就是coding page,国外就走github page。

    1. 申请coding账户,新建项目

    先申请一个账户,然后创建新的项目,这一步项目名称应该是随意的。

    2. 添加ssh key

    这一步跟github一样。

    添加后,检查一下是不是添加成功

    ssh -T git@git.coding.net
    

    3. 修改_config.yml

    hexo官方文档是这样的:

    deploy:
      type: git
      message: [message]
      repo:
        github: <repository url>,[branch]
        coding: <repository url>,[branch] 
    

    那么,我们只需要:

    deploy:
      type: git
      repo: 
        coding: git@git.coding.net:ZJUFangzh/ZJUFangzh.git,master
        github: git@github.com:ZJUFangzh/ZJUFangzh.github.io.git,master
    

    4. 部署

    保存一下,直接

    hexo g
    hexo d
    

    这样就可以在coding的项目上看到你部署的文件了。

    5. 开启coding pages服务,绑定域名

    如图:

    6. 阿里云添加解析

    这个时候就可以把之前github的解析改成境外,把coding的解析设为默认了。

    7. 去除coding page的跳转广告

    coding page的一个比较恶心人的地方就是,你只是银牌会员的话,访问会先跳转到一个广告,再到你自己的域名。那么它也给出了消除的办法。右上角切换到coding的旧版界面,默认新版是不行的。然后再来到pages服务这里。

    这里:

    只要你在页面上添加一行文字,写Hosted by Coding Pages,然后点下面的小勾勾,两个工作日内它就会审核通过了。

    <p>Hosted by <a href="https://pages.coding.me" style="font-weight: bold">Coding Pages</a></p>
    

    我的选择是把这一行代码放在主题文件夹/layout/common/footer.ejs里面,也就是本来在页面中看到的页脚部分。

    当然,为了统一,我又在后面加上了and Github哈哈,可以不加。

    <p><span>Hosted by <a href="https://pages.coding.me" style="font-weight: bold">Coding Pages</a></span> and <span><a href="https://github.com" style="font-weight: bold">Github</a></span></p>
    

    这是最终加上去的代码。


    第三部分

    hexo添加各种功能,包括搜索的SEO,阅读量统计,访问量统计和评论系统等。

    本文参考了: visugar.com这里面说的很详细了。

    1. SEO优化

    推广是很麻烦的事情,怎么样别人才能知道我们呢,首先需要让搜索引擎收录你的这个网站,别人才能搜索的到。那么这就需要SEO优化了。

    SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”。SEO是指通过站内优化比如网站结构调整、网站内容建设、网站代码优化等以及站外优化。

    百度seo

    刚建站的时候是没有搜索引擎收录我们的网站的。可以在搜索引擎中输入site:<域名>

    来查看一下。

    1. 登录百度站长平台添加网站

    登录百度站长平台,在站点管理中添加你自己的网站。

    验证网站有三种方式:文件验证、HTML标签验证、CNAME验证。

    第三种方式最简单,只要将它提供给你的那个xxxxx使用CNAME解析到xxx.baidu.com就可以了。也就是登录你的阿里云,把这个解析填进去就OK了。

    2. 提交链接

    我们需要使用npm自动生成网站的sitemap,然后将生成的sitemap提交到百度和其他搜索引擎

    npm install hexo-generator-sitemap --save     
    npm install hexo-generator-baidu-sitemap --save
    

    这时候你需要在你的根目录下_config.xml中看看url有没有改成你自己的:

    重新部署后,就可以在public文件夹下看到生成的sitemap.xml和baidusitemap.xml了。

    然后就可以向百度提交你的站点地图了。

    这里建议使用自动提交。

    自动提交又分为三种:主动推送、自动推送、sitemap。

    可以三个一起提交不要紧,我选择的是后两种。

    • 自动推送:把百度生成的自动推送代码,放在主题文件/layout/common/head.ejs的适当位置,然后验证一下就可以了。
    • sitemap:把两个sitemap地址,提交上去,看到状态正常就OK了。

    ps: 百度收录比较慢,慢慢等个十天半个月再去site:<域名>看看有没有被收录。

    google的SEO

    流程一样,google更简单,而且收录更快,进入google站点地图,提交网站和sitemap.xml,就可以了。

    如果你这个域名在google这里出了问题,那你就提交 yourname.github.io,这个链接,效果是一样的。

    不出意外的话一天内google就能收录你的网站了。

    其他的搜索,如搜狗搜索,360搜索,流程是一样的,这里就不再赘述。

    2. 评论系统

    评论系统有很多,但是很多都是墙外的用不了,之前说过这个valine好像集成在hueman和next主题里面了,但是我还没有研究过,我看的是visugar这个博主用的来比力评论系统,感觉也还不错。

    来比力官网,注册好后,点击管理页面,在代码管理中找到安装代码:

    获取安装代码后,在主题的comment下新建一个文件放入刚刚那段代码,再找到article文件,找到如下代码,若没有则直接在footer后面添加即可。livebe即为刚刚所创文件名称。

    <%- partial('comment/livebe') %>
    

    然后可以自己设置一些东西:

    还可以设置评论提醒,这样别人评论你的时候就可以及时知道了。

    3. 添加百度统计

    百度统计可以在后台上看到你网站的访问数,浏览量,浏览链接分布等很重要的信息。所以添加百度统计能更有效的让你掌握你的网站情况。

    百度统计,注册一下,这里的账号好像和百度账号不是一起的。

    照样把代码复制到head.ejs文件中,然后再进行一下安装检查,半小时左右就可以在百度统计里面看到自己的网站信息了。

    4. 文章阅读量统计leanCloud

    leanCloud,进去后注册一下,进入后创建一个应用:

    存储中创建Class,命名为Counter,

    然后在设置页面看到你的应用Key,在主题的配置文件中:

    leancloud_visitors:
      enable: true
      app_id: 你的id
      app_key: 你的key
    

    article.ejs中适当的位置添加如下,这要看你让文章的阅读量统计显示在哪个地方了,

    阅读数量:<span id="<%= url_for(post.path) %>" class="leancloud_visitors" data-flag-title="<%- post.title %>"></span>次
    

    然后在footer.ejs的最后,添加:

    <script src="//cdn1.lncld.net/static/js/2.5.0/av-min.js"></script>
    <script>
        var APP_ID = '你的app id';
        var APP_KEY = '你的app key';
        AV.init({
            appId: APP_ID,
            appKey: APP_KEY
        });
        // 显示次数
        function showTime(Counter) {
            var query = new AV.Query("Counter");
            if($(".leancloud_visitors").length > 0){
                var url = $(".leancloud_visitors").attr('id').trim();
                // where field
                query.equalTo("words", url);
                // count
                query.count().then(function (number) {
                    // There are number instances of MyClass where words equals url.
                    $(document.getElementById(url)).text(number?  number : '--');
                }, function (error) {
                    // error is an instance of AVError.
                });
            }
        }
        // 追加pv
        function addCount(Counter) {
            var url = $(".leancloud_visitors").length > 0 ? $(".leancloud_visitors").attr('id').trim() : 'icafebolger.com';
            var Counter = AV.Object.extend("Counter");
            var query = new Counter;
            query.save({
                words: url
            }).then(function (object) {
            })
        }
        $(function () {
            var Counter = AV.Object.extend("Counter");
            addCount(Counter);
            showTime(Counter);
        });
    </script>
    

    重新部署后就可以了。

    5. 引入不蒜子访问量和访问人次统计

    不蒜子的添加非常非常方便,不蒜子

    footer.ejs中的合适位置,看你要显示在哪个地方,添加:

    <!--这一段是不蒜子的访问量统计代码-->
    <script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
    <span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span>次 &nbsp;   </span>
    <span id="busuanzi_container_site_uv">访客数<span id="busuanzi_value_site_uv"></span>人次</span>
    

    就可以了。

    总结

    到这里就基本做完了。其实都是参考别的博主的设置的,不一定仅限于hueman主题,其他主题的设置也是大体相同的,所以如果你希望设置别的主题,那么仔细看一下这个主题的代码结构,也能够把上边的功能添加进去。

    多看看别的博主的那些功能,如果有你能找到自己喜欢的功能,那么好好发动搜索技能,很快就能找到怎么做了。加油吧!

    展开全文
  • 使用hexo+github搭建个人博客(进阶篇)

    万次阅读 多人点赞 2018-07-04 11:34:46
    Hexo简介 Hexo 是一款基于 Node.js 的静态博客框架。Hexo 使用 Markdown 解析文章,用户在本地安装Hexo并进行写作,通过一条命令,Hexo即可利用靓丽的主题自动生成静态网页。 参考:Hexo-Github地址 Hexo帮助文档 ...

    1. Hexo简介
    Hexo 是一款基于 Node.js 的静态博客框架。Hexo 使用 Markdown 解析文章,用户在本地安装Hexo并进行写作,通过一条命令,Hexo即可利用靓丽的主题自动生成静态网页。
    参考:Hexo-Github地址 Hexo帮助文档
    这里写图片描述
    2. 博客环境搭建
    2.1 安装Git
    Windows平台:以 Win7 64位机为例

    官网下载 Git,一路默认选项安装。本文使用的是Git-2.8.1-64-bit.

    Linux平台

    2.2 安装Node.js
    Windows平台:以 Win7 64位机为例

    到官网下载 Node.js,一路默认选项安装。本文使用的是node-v4.4.2-x64,需要的用户可以点此下载 。

    Linux平台

    2.3 安装Hexo
    Git 和 Node.js 都安装好后,首先创建一个用于存放博客文件的文件夹,如 blog,然后进入 blog 文件夹,下面开始安装并使用 Hexo。

    安装并初始化Hexo

    右键选择 git bash here ,弹出Git Bash窗口;执行命令:

    $ npm install -g hexo-cli
    $ hexo init

    安装完成后,指定文件夹的目录如下:

    ├── _config.yml
    ├── package.json
    ├── scaffolds
    ├── source
    |   ├── _drafts
    |   └── _posts
    └── themes

    其中_config.yml文件用于存放网站的配置信息,你可以在此配置大部分的参数;scaffolds是存放模板的文件夹,当新建文章时,Hexo会根据scaffold来建立文件;source是资源文件夹,用于存放用户资源,themes是主题文件夹,存放博客主题,Hexo 会根据主题来生成静态页面。

    生成静态博客文件

    在Git Bash终端执行命令:

    $ hexo g
    $ hexo s

    Hexo将source文件夹中的Markdown 和 HTML 文件会被解析并放到public文件夹中,public文件夹用于存放静态博客文件,相当于网站根目录。
    至此博客雏形基本完成,在浏览器中访问http://localhost:4000/,如图所示:

    002

    2.4 使用nexT主题
    下载nexT主题

    在Git Bash终端执行以下命令:

    $ git clone https://github.com/iissnan/hexo-theme-next themes/next

    解压所下载的压缩包至站点的 themes 目录下, 并将解压后的文件夹名称更改为 next 。本文使用hexo-theme-next-5.0.1 。

    启用nexT主题

    打开站点配置文件 _config.yml,找到 theme 字段,并将其值更改为 next。

    theme: next

    在Git Bash终端执行命令hexo s,在浏览器中访问http://localhost:4000/,当你看到站点的外观与下图所示类似时即说明你已成功安装 NexT 主题。这是 NexT 默认的 Scheme —— Muse。

    003
    本博客使用的是NexT.Pisces主题,修改主题配置文件 _config.yml的 Schemes 字段的值为:

    scheme: Pisces

    博客预览如图:

    这里写图片描述

    1. NexT主题配置
      3.1 主题基本设定
      参照NexT使用文档,设置界面语言、菜单、侧栏、头像、作者昵称和站点描述。由于该使用文档描述非常详细,本文不再赘述。此处需要注意,添加新的菜单项时,需要手动创建该页面才能正常访问,下面以分类页面为例讲述创建新页面的方法:

    创建分类页面

    在Git Bash终端执行命令:

    $ hexo new page categories

    编辑分类页面

    添加页面类型字段,将其值设置为 “categories”,主题将自动为这个页面显示所有分类,如果有启用多说 或者 Disqus 评论,默认页面也会带有评论。需要关闭的话,请添加字段 comments 并将值设置为 false。

    title: 分类
    date: 2014-12-22 12:39:04
    type: "categories"
    comments: false

    创建标签页的方法同上,只需要将type字段设置为”tags”即可。

    3.2 添加侧栏社交链接和友链

    添加侧栏社交链接

    在主题配置文件 _config.yml中Sidebar Settings部分添加字段:

    # Social Links
    social:
      GitHub: https://github.com/wuxubj
      Weibo: http://weibo.com/wuxubj

    本博客将侧栏社交链接设置居中显示,修改themes\next\source\css_common\components\sidebar\sidebar-author-links.styl文件,添加如下样式:

    .links-of-author-item {
      text-align: center;
      }

    添加侧栏友情链接

    在主题配置文件 _config.yml中Sidebar Settings部分添加字段:

    # Blogrolls
    links_title: 友情链接
    links_layout: inline
    links_icon: link  # 设置图标
    links:
      鱼汐笔记: https://yidongying.github.io/

    本博客侧栏友情链接使用了与侧栏社交链接相同的css样式,但文本左对齐。实现方法为:
    修改themes\next\layout_macro\sidebar.swig,将如下内容

    <ul class="links-of-blogroll-list">
      {% for name, link in theme.links %}
        <li class="links-of-blogroll-item">
          <a href="{{ link }}" title="{{ name }}" target="_blank">
            {{ name }}
          </a>
        </li>
      {% endfor %}
    </ul>

    修改为:

    {% for name, link in theme.links %}
      <span class="links-of-author-item" style="text-align:left">
        <a href="{{ link }}" title="{{ name }}" target="_blank">
          {{ name }}
        </a>
      </span>
    {% endfor %}

    3.3 设置阅读次数统计
    需要在leanCloud注册一个账号, 前往 https://leancloud.cn/dashboard , 注册账号是为了得到一个appId 和appKey, 如下图所示:
    这里写图片描述
    具体的操作就不多说了, 请查看 这里的教程
    复制AppID以及AppKey并在NexT主题的_config.yml文件中我们相应的位置填入即可,正确配置之后文件内容像这个样子:

    leancloud_visitors:
      enable: true
      app_id: joaeuuc4hsqudUUwx4gIvGF6-gzGzoHsz
      app_key: E9UJsJpw1omCHuS22PdSpKoh

    3.4 添加cnzz站长统计
    添加站长统计

    友盟+注册账户,并添加自己的网站域名,获取到一个站点ID,这个ID可以在地址栏里,或者自动生成的脚本里面找到。
    在主题配置文件 _config.yml中添加如下字段:

    # CNZZ count
    cnzz_siteid: 1259784696

    注意把字段cnzz_siteid的值修改为你自己的站点ID。
    修改themes\next\layout_layout.swig文件,添加如下内容,用于生成cnzz统计代码:

    {% include '_scripts/third-party/analytics/cnzz-analytics.swig' %}

    至此cnzz站长统计功能已经添加。由于默认默认不显示“站长统计”字样,所以从页面外观看不到任何变化。

    页脚添加“站长统计”链接

    修改\themes\next\layout_partials\footer.swig文件,在{{ config.author }}后面添加如下代码:

    {% if theme.cnzz_siteid %}
       <span style="margin-left:8px;">
       <script src="http://s6.cnzz.com/stat.php?id={{ theme.cnzz_siteid }}&web_id={{ theme.cnzz_siteid }}" type="text/javascript"></script>
       </span>
    {% endif %}

    4.网站发布
    4.1 云主机
    学生党推荐参加腾讯云云+校园优惠活动,云主机+CN域名只需1元/月。
    工作党建议花钱购买云主机,个人博客选择最便宜的就行,一年几百元人民币。
    4.2 Git托管的Pages服务
    常用的有GitHub pages和Coding Pages。
    GitHub pages 的使用教程参见:GitHub Pages + Hexo搭建博客 Hexo 3.1.1 静态博客搭建指南
    Coding Pages 的使用教程参见:将hexo博客同时托管到github和coding

    我刚开始建站的时候使用的是GitHub pages,后来也部署到了Coding,但访问速度都不咋令人满意。最后我选择了腾讯云主机,顿时感觉访问速度飞快。

    5 NexT主题美化

    5.1 修改导航栏图标
    NexT 使用的是 Font Awesome 提供的图标, Font Awesome 提供了 600+ 的图标,可以满足绝大的多数的场景,同时无须担心在 Retina 屏幕下 图标模糊的问题。对应的文件在themes\next\source\vendors\font-awesome中。
    http://fontawesome.dashgame.com/中有图标与其名称的对应,用户可根据需要修改图标。我的menu_icons配置为:

    menu_icons:
      enable: true
      #KeyMapsToMenuItemKey: NameOfTheIconFromFontAwesome
      home: home
      about: user
      categories: th
      tags: tags
      archives: calendar-check-o

    5.2 修改文章内链接文本样式
    将链接文本设置为蓝色,鼠标划过时文字颜色加深,并显示下划线。
    修改文件themes\next\source\css_common\components\post\post.styl,添加如下css样式:

    .post-body p a{
      color: #0593d3;
      border-bottom: none;
      &:hover {
        color: #0477ab;
        text-decoration: underline;
      }
    }

    选择.post-body是为了不影响标题,选择p是为了不影响首页“阅读全文”的显示样式。

    5.3 文章末尾添加本文结束标记

    新建 passage-end-tag.swig 文件
    在路径\themes\next\layout_macro中添加passage-end-tag.swig文件,其内容为:

    {% if theme.passage_end_tag.enabled %}
    <div style="text-align:center;color: #ccc;font-size:14px;">
    ------ 本文结束 ------</div>
    {% endif %}

    修改 post.swig 文件
    在\themes\next\layout_macro\post.swig中,post-body之后,post-footer之前添加如下代码:

    <div>
      {% if not is_index %}
        {% include 'passage-end-tag.swig' %}
      {% endif %}
    </div>

    在主题配置文件中添加字段

    在主题配置文件 _config.yml中添加以下字段开启此功能:

    # 文章末尾添加“本文结束”标记
    passage_end_tag:
      enabled: true

    完成以上设置之后,在每篇文章之后都会添加“本文结束”标记。
    该功能简易添加方法参见:Issues of hexo-theme-next
    5.4 文章末尾添加网站二维码
    利用 NexT 主题自带的wechat_subscriber功能在文章末尾添加网站二维码。
    首先生成你网站的二维码,放到网站根目录下的images文件夹中,然后修改主题配置文件 _config.yml,添加如下内容:

    # Wechat Subscriber
    wechat_subscriber:
      enabled: true
      qcode: /images/wuxubj.png
      description: 扫一扫,用手机访问本站

    5.5 其他美化
    1.标签云页面鼠标划过字体加粗
    2.文章末尾标签鼠标划过变蓝色
    3.调换文章末尾上一篇和下一篇链接显示位置(左右互换)
    4.优化文章末尾上一篇和下一篇链接显示效果完成以上设置之后,在每篇文章之后都会添加网站二维码。

    6.SEO推广
    6.1 生成sitemap
    Sitemap用于通知搜索引擎网站上有哪些可供抓取的网页,以便搜索引擎可以更加智能地抓取网站。
    执行以下命令,安装插件hexo-generator-sitemap,用于生成sitemap:

    $ npm install hexo-generator-sitemap --save

    在站点配置文件 _config.yml中添加如下字段:

    sitemap:
    path: sitemap.xml

    执行hexo g,就会在网站根目录生成 sitemap.xml 。

    6.2 开启百度自动推送
    在主题配置文件 _config.yml中添加如下字段:

    baidu_push: true

    6.3 使用各大搜索引擎站长工具
    在搜索引擎搜索框输入site:your.domain可以查看域名是否被该搜索引擎收录,用户可以使用各大搜索引擎站长工具提交个人博客网址。
    6.4添加评论功能
    作为一个个人博客,怎么能没有评论功能?
    首先是第三方应用的选择.
    hexo的评论系统有很多, 但是现在比较火的多说和网易云跟帖都已经关闭了,搜狐的畅言需要备案,最烦的是还时不时给你来个搜狐的广告, Disqus,是国外的,有被墙的可能, 最后觉得韩国的来必力和国内的valine 算是比较好的了.
    我的博客最后使用的是来必力,原因是它配置超级简单,哈哈!
    如果是想使用valine的t童鞋,可以移步这里:
    注册
    先去官网注册一个账号, https://livere.com, (貌似需要科学上网),
    安装
    点击上方的安装,选择免费的city版本。
    这里写图片描述
    并点击现在安装,出现如下界面。
    这里写图片描述
    重点就两句:

    复制其中的uid字段。
    打开主题目录下的 blog/themes/next/_config.yml 配置文件,定位到 livere_uid 字段,粘贴上刚刚复制的UID.

    这里提醒一下, 这个Uid如果出现了 ==, 不需要复制这个, 不然就会跟我一样报下面的错:
    这里写图片描述
    最后测试效果:
    这里写图片描述

    7.更换配置
    这里记录一个我遇到的麻烦, 更换电脑之后,重新更新博客,遇到了一系列的问题,我的博客是备份在了github上面,当我拉下代码发现_.config.html文件不存在, 而使用hexo的都知道,hexo主要是需要配置文件, 幸好原来的电脑还保存着一份配置文件, 于是新建了一个文件夹, 然后hexo init , hexo g ,hexo s,打开localhost:4000就可以看到生成了一个博客, 这时,替换配置文件, 并把拉下来的代码放置到source文件夹中 .之后又出现了git的问题, 很明显, ssh key肯定是不对的, 那么就需要进行设置了, 这个可以参考我的这篇文章
    这里提醒一下各位,如果是刚开始建博客, 最好设置两个分支,dev/master用来放置静态网站页面文件,hexo分支用来放置配置文件.具体可以参考网上的资源

    8.相关资源
    我的站点文件备份
    优化之后的NexT主题下载
    markdownpad2
    Notepad++ v6.9.2
    Git-2.8.1-64-bit
    node-v4.4.2-x64

    9.参考文档
    (1)hexo官方文档
    (2) next主题官方文档
    (3) 第三方服务集成
    (4)next主题特性配置
    (5)电脑更换后的问题

    展开全文
  • Hexo | NexT打造一个炫酷博客

    万次阅读 多人点赞 2018-10-18 11:26:55
    打造你自己的独立博客,如何优化出与众不同的效果
  • Hexo 中有两份主要的配置文件,其名称都是 _config.yml。 其中,一份位于站点根目录下,主要包含 Hexo 本身的配置;另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。为了描述方便,...
  • hexo教程系列——hexo安装教程

    万次阅读 2016-11-11 17:00:12
    本文详细描述了如何在Github上,使用hexo部署博客。 安装Hexo安装node.js node.js官方下载地址 从上面的链接下载node.js,并安装。 注意:官方链接可能需要翻墙 注意:我的操作系统是Windows 7 (64bit) 设置npm...
  • Hexo,创建属于你自己的博客

    千次阅读 2018-01-23 10:51:48
    Node.js+Hexo+Next+Git+GitHub,让你几分钟就能创建一个博客 网上很多资料由于版本原因,实现方法已经发生变化,这里贴出一些新版本更方便的方法,如果失效,请联系我 本系列文章 所提及方案全部经过实验证明...
  • hexo-to-your-server 一、完成效果 点击查看个人网站 二、准备 基本上每一步都会给出链接,可以多多参考 本地配置node环境 node下载 官网下载 参考链接: 史上最详细的Hexo博客搭建图文教程 通过Git...
  • 记录一下hexo搭建博客的辛酸血泪史

    千次阅读 2018-05-17 19:44:12
    首先安装Git Git下载地址nodejs(要最新的,之前照着教程走,安装了4.0的,弄了快十个小时才找到原因)node.js下载地址hexo安装NPM 使用介绍NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多...
  • 1. 准备环境 所需软件: Node.js -> v12.18.3npm ...2. 安装 Hexo 首先在自己的磁盘里创建一个目录,例如 C:/Blog,打开命令行工具,然后输入 C:      &nbs
  • Hexohexo在文章中添加图片

    万次阅读 2019-04-10 22:06:24
    hexo 添加图片插件 安装图片插件 npm install hexo-asset-image --save 在_config.yml配置文件中,修改为 post_asset_folder: true, 然后新建一篇文章 hexo new post ceshi 这个时候会出现一个ceshi.md 和 ...
  • 几个好用的hexo主题

    万次阅读 多人点赞 2018-11-06 18:07:09
    1.NexT 演示 Muse scheme: Alex LEE ...这是很多hexo用户的选择,也是十分成熟的hexo主题。对新手非常适合,对dalao也有拓展空间,十分值得一试。 使用教程 官方文档 简书上比较全的进阶配置 2.Yi...
  • hexo主题配置

    千次阅读 2018-03-29 00:39:21
    1.hexo+Github主题配置参见教程 2.个性化个人页面 git clone 主题后效果如图: 另附该主题的说明 ps:下载好主题后记得把主题文件夹下的config文件去掉后面的example 默认为德语,修改为英文的需要将hexo...
  • hexo主题—自定义样式

    千次阅读 2018-08-31 23:46:59
    前言 ...HEXO主题 - 自定义样式 一、调试工具     说到前端,就不得不提前端神器调试工具了(及开发者工具),调试工具是前端工程师常用的工具,在浏览器中右键检查或者按F12,都会弹出调试...
  • Hexo主题制作

    2020-08-01 10:26:42
    在制作一个Hexo主题的时候,需要提前了解: 模板引擎 CSS预处理器 模板引擎有ejs,pug,swig等.CSS预处理器有stylus, sass, less, css等. 本文使用的模板引擎为ejs,CSS预处理器选择stylus. 具体的自己可以...
  • hexo主题之hexo-theme-yilia-plus

    千次阅读 2019-07-29 09:13:06
    一个简洁优雅的hexo主题 ➡️ https://github.com/JoeyBling/hexo-theme-yilia-plus     此项目是根据hexo-theme-yilia主题做了一些优化和改动,写这个项目的初衷就是深入学习Hexo。使用yilia...
  • Hexo主题casper使用教程

    千次阅读 2019-02-07 23:11:11
    Hexo主题casper使用教程 我看到的一个好的主题,对其中的部分代码进行了修改。 原项目地址 https://github.com/xzhih/hexo-theme-casper DEMO https://blog.geekmubai.com 特性 文章封面图(在首页文章摘要上显示)...
  • 首页、归档、分类、标签等页面均支持分页系统 支持友链、关于、分类云、标签云页面 支持自定义页面 支持二级导航栏 提供评论系统和文章统计插件 默认开启SEO优化
  • Hexo主题升级方法(实用!)

    千次阅读 2019-08-30 01:28:53
    最近,自己使用的Hexo博客主题Material-X有新的版本更新,使用普通的方法git clone会覆盖自己修改后的文件,使得DIY的主题丢失。 通过查阅有关资料,总结出了以合并文件的形式更新当前的主题文件的方法喔~

空空如也

1 2 3 4 5 ... 20
收藏数 29,936
精华内容 11,974
关键字:

hexo