本文旨在分享我个人在建立hexo过程中所遇到的问题以及对应的解决方法。
本文章为了方便阁下复制程序,解除了禁止复制和选择的命令。
链接:如何用hexo建立网站?

简短的解释该如何搭建hexo(Mac)

如果您用的环境是macOS,并且您想将自己的网页由GitHub进行托管,那么我已经摘录出了一些最重要的步骤,放在这里作为简单的参考。

言外之意,您还是需要参考上面那些教程,本文只是摘录一下要点而已。

安装homebrew和git工具

  1. 打开终端。
  2. 如果您没有homebrew请先安装homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. 安装完成后,在终端中输入brew install git
  4. 按理说git就安装完成了,您可以输入git --version测试一下,如果安装成功会有一个版本号。

这样在您的电脑中就有git工具了,这个东西对于您在GitHub上架构一个网站是必备的。

配置hexo的环境

随后您需要在电脑中选择一个合适的文件夹,以放入存有网页源文件的文件,例如/Users/Trump/Documents,今后这个myblog文件夹将会是您网页的上级目录,包含所有网页文件的文件夹都会放在其中。

接下来就该新建这个所谓的myblog咯。

$ cd /Users/Trump/Documents
$ npm install hexo-cli -g
$ hexo init myblog
$ cd myblog
$ npm install
$ hexo s

当你使用了hexo s以后,您在浏览器中输入0.0.0.0:4000就会出现一个默认的网页的雏形,这就表示你的hexo搭建成功了,接下来就在GitHub的主题库中选择一个合适的,并根据文档下载、使用即可。

有关hexo中利用ssh的密钥进行对GitHub程序库的上传和下载操作,前面的“如何用hexo建立网站?”中排头那两个教程都有详细的解释。

遇到的问题和使用的技巧

如何让文章被禁止用户选择、右键菜单和复制

可以在每个Markdown博文正文前输入如下脚本,当然你可以根据注释自己选择其中的内容。

<script type="text/javascript">
    // 禁止右键菜单
    // true是允许,false是禁止
    document.oncontextmenu = function(){ return false; };
    // 禁止文字选择
    document.onselectstart = function(){ return false; };
    // 禁止复制
    document.oncopy = function(){ return false; };
    // 禁止剪切
    document.oncut = function(){ return false; };
    // 禁止粘贴
    document.onpaste = function(){ return false; };
    // 禁止键盘事件
    // document.onkeydown = function(){ return false; };
</script>

在hexo d时,出现了(node:6788)开头的错误提示

这个错误提示是长这样的:

(node:6788) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
(Use node --trace-warnings ... to show where the warning was created)
(node:6788) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:6788) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
(node:6788) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency
(node:6788) Warning: Accessing non-existent property 'column' of module exports inside circular dependency
(node:6788) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency
INFO Deploying: git
INFO Setting up Git deployment...

这个的问题在于Nodejs版本太新,您可以下载一个更旧的版本。我用的是12.x版本,是可以使用的,具体如何下载一个更旧的版本您可以自己查阅。

以SSH的方式进行hexo d时,就算输对密码和用户名也不可被授权

这个错误提示是长这样的:

Error: remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/你的仓库地址..'

这个问题大概率是因为你的GitHub账号设置了二重保险,就是Google Authenticator里面那些6位数字每分钟变动一次的保险机制。

虽然有别的方法可以解决这个问题,但是我直接把二重保险给关闭了,这算是最简单粗暴的方式。

想在文章里面加入一个likeCoin的点赞按钮吗?

如果您有like.co的账户,你可以在markdown中插入如下html程序段

<div align="center"><iframe scrolling = "no" class="lc-margin-top-80 lc-margin-bottom-32 lc-mobile" data-v-b66e9a5a="" 
    frameborder="0" 
    src="https://button.like.co/in/embed/<您的Liker ID>/button?referrer=<这个文章的地址>/.html&amp;" 
    style="font-size: medium;" ></iframe>

如何设置您自购域名的DNS

因为本文的前提是您的源文件位于GitHub,所以当您自己购买了一个域名时,这个域名并没有和您在GitHub上的网页内容捆绑在一起。

首先,如果您希望从namesilo购买一个域名,那么您在填写订单的时候需要将Service Link选择了Github。如果这里没有写,后面也可以在DNS设置时重新套用GitHub的模板,所以不是问题。

在购买的域名DNS设置中,需要进行了如下设置:

Target Hostname: www
Type: CNAME
Address: <您的GitHub用户名>.github.io
其余默认

然后回到您在Github中对应该网页源文件的仓库<您的GitHub用户名>.github.io,在setting中往下滑,找到Github Pages的设置,将custom domain设置成您购买的域名,并且enforce https选择性开启(一般来说能开启就开启)。

绑定域名以后,每次deploy以后都会出现404

如果你没有乱糟蹋关键的文件,那么这个源文件多半是因为每次deploy都会导致Github Pages的设置中的custom domain和您购买的域名脱绑。

您再去<您的GitHub用户名>.github.io的setting中检查一下custom domain,是否是被脱绑了?

如果被脱绑了,其实这就是hexo本地一个配置文件没有写全的原因。

其实你每次deploy以后重新在setting里面绑定也可以解决问题,只不过有点烦。


本网页的所有文章及其内容除了与相关内容的原作者联系后允许被共享以外,均禁止任何形式的转载、转发、复制以及任何形式的商业使用。

VCVina copyrights this specification. No part of this specification may be reproduced in any form or means, without the prior written consent of VCVina.

当ウェブサイト上のコンテンツ(ブログ)の著作権は、特別の断りが無い限り、ブログや画像の原作者/会社が保有します。 原作者から事前承諾を得ることなく、これらの情報を使用(複製、送信、頒布、改変、販売、出版、転用、掲示等)することはできません、ご了承ください。

翻译:野比大雄究竟住在哪儿 上一篇
日本和中国的大学教育 下一篇

 目录