• Hexo&Github-Pages搭建个人博客


    some基础知识

    hexo

    • hexo是一款基于Node.js的静态博客框架

    github-pages说明

    • github有两种主页,一种是github-page(个人主页),一种是项目主页,本教程针对个人主页
    • github-page需要将hexo博客发布到repository的master(主干)即可
    • github的个人主页要求repository的名称和username一致,加入username是tom,则repository的名称为tom.github.io

    准备

    1.注册github账号,如kk,新建一个仓库kk.github.io

    2.安装git , NodeJS,配置ssh私钥

    3.安装hexo

    在准备安装hexo的目录启动git Bush

    • 安装npm install hexo -g
    • 查看版本hexo -v
    • hexo init 初始化hexo
    • 修改站点配置文件,翻到最后
    deploy:
         type: git
         repo: https://github.com/kk/kk.github.io.git
         branch: master
    

    4.选择并更换主题

    • 打开git Bash,定位到博客的位置
    • 选择主题,找到主题地址,如next主题
    • 下载主题:git中继续输入git clone https://github.com/iissnan/hexo-theme-next themes/next
    • 注意有两个配置文件_config.yml(整个blog的和主题的,约定为站点配置文件和主题配置文件),将站点配置文件中的theme: xx改为theme: next。一个主题还有不同模板,在主题配置文件中找到scheme,开启你喜欢的一个,其他#注释
      注意:“:”后有空格
    • 本地测试一下看主题是否完备(hexo s --debug)
    • 更新操作
    hexo clean  
    hexo genarate
    hexo deploy
    
    • 应该可以通过kk.github.io访问了

    5.完善

    菜单设定

    主题配置文件中
    menu:
      #主页: /archives/
      所有文章: /archives/
      分类&标签: /tags
      留言板&关于我: /about/
      建站日志: /build-log/
    

    菜单语言设置

    站点配置文件
    # Site
    title: kimsimple's Blog
    subtitle:
    description: 
    author: kimsimple
    language:zh-Hans #可将菜单设置为简体中文
    timezone:
    

    添加评论框

    写博文

    1.新建博文

    • 进入Hexo文件夹,启动git Bush
    • 新建文章hexo new "文章题目",在source_posts下找到文档,在此目录直接新建.md文件也可

    2.新建页面

    • hexo new page "页面名称",如新建test页面
    • 发现source est文件夹下有index.md
    • 见后文两实例(分类标签页面)

    分类&标签

    1、创建“分类”选项

    1.1 生成“分类”页并添加tpye属性

    打开命令行,进入博客所在文件夹。执行命令

    $ hexo new page categories
    成功后会提示:

    INFO Created: ~/Documents/blog/source/categories/index.md
    根据上面的路径,找到index.md这个文件,打开后默认内容是这样的:

    ---
    title: 文章分类
    date: 2017-05-27 13:47:40
    ---
    

    添加type: "categories"到内容中,添加后是这样的:

    ---
    title: 文章分类
    date: 2017-05-27 13:47:40
    type: "categories"
    ---
    

    保存并关闭文件。

    1.2 给文章添加“categories”属性

    打开需要添加分类的文章,为其添加categories属性。下方的categories: web前端表示添加这篇文章到“web前端”这个分类。注意:hexo一篇文章只能属于一个分类,也就是说如果在“- web前端”下方添加“-xxx”,hexo不会产生两个分类,而是把分类嵌套(即该文章属于 “- web前端”下的 “-xxx ”分类)。

    ---
    title: jQuery对表单的操作及更多应用
    date: 2017-05-26 12:12:57
    categories: 
    - web前端
    ---
    

    至此,成功给文章添加分类,点击首页的“分类”可以看到该分类下的所有文章。当然,只有添加了categories: xxx的文章才会被收录到首页的“分类”中。

    2、创建“标签”选项

    2.1 生成“标签”页并添加tpye属性

    打开命令行,进入博客所在文件夹。执行命令

    $ hexo new page tags
    成功后会提示:

    INFO Created: ~/Documents/blog/source/tags/index.md
    根据上面的路径,找到index.md这个文件,打开后默认内容是这样的:

    ---
    title: 标签
    date: 2017-05-27 14:22:08
    ---
    

    添加type: "tags"到内容中,添加后是这样的:

    ---
    title: 文章分类
    date: 2017-05-27 13:47:40
    type: "tags"
    ---
    

    保存并关闭文件。

    2.2 给文章添加“tags”属性

    打开需要添加标签的文章,为其添加tags属性。下方的tags:下方的- jQuery - 表格

    • 表单验证就是这篇文章的标签了
    ---
    title: jQuery对表单的操作及更多应用
    date: 2017-05-26 12:12:57
    categories: 
    - web前端
    tags:
    - jQuery
    - 表格
    - 表单验证
    ---
    

    至此,成功给文章添加分类,点击首页的“标签”可以看到该标签下的所有文章。当然,只有添加了tags: xxx的文章才会被收录到首页的“标签”中。

    细心的朋友可能已经发现,这两个的设置几乎一模一样!是的,没错,思路都是一样的。所以我们可以打开scaffolds/post.md文件,在tages:上面加入categories:,保存后,之后执行hexo new 文章名命令生成的文件,页面里就有categories:项了。

    scaffolds目录下,是新建页面的模板,执行新建命令时,是根据这里的模板页来完成的,所以可以在这里根据你自己的需求添加一些默认值。

    3.写博文,md文件

    实例:

    ---
    title: 如何利用Github Pages和Hexo快速搭建个人博客 #标题
    date: 2017-5-7 18:02:00 #创建时间
    tegs: [Hexo,Github] #标签
    categories: Hexo #分类
    ---
    正文
    

    Markdown编辑器

    本地编辑器:Haroopad,非常小众的一款Markdown编辑器,左边编辑右边实时预览效果,非常轻便;
    在线编辑器:MaHua,也是比较小众的一款Markdown编辑器,但效果确实很棒,我的这篇博文就是用MaHua写的。

    为博文插入图片

    绝对引用

    当Hexo项目中只用到少量图片时,可以将图片统一放在source/images文件夹中,通过markdown语法访问它们。

    source/images/image.jpg
    ![](/images/image.jpg)
    

    图片既可以在首页内容中访问到,也可以在文章正文中访问到。

    相对引用

    图片除了可以放在统一的images文件夹中,还可以放在文章自己的目录中。
    文章的目录可以通过配置_config.yml来生成。
    post_asset_folder: truepost_asset_folder设为true后,执行命令$ hexo new post_name
    source/_posts中会生成文章post_name.md和同名文件夹post_name。
    将图片资源放在post_name中,文章就可以使用相对路径引用图片资源了。

    _posts/post_name/image.jpg
    ![](image.jpg)
    

    上述是markdown的引用方式,图片只能在文章中显示,但无法在首页中正常显示。
    如果希望图片在文章和首页中同时显示,可以使用标签插件语法。

    _posts/post_name/image.jpg
    {% asset_img image.jpg This is an image %}
    

    CDN引用

    除了在本地存储图片,还可以将图片上传到一些免费的CDN服务中。比如Cloudinary提供的图片CDN服务,在Cloudinary中上传图片后,会生成对应的url地址,将地址直接拿来引用即可。

    4.发博文

    hexo clean
    hexo generate
    (若要本地预览就先执行 hexo server,本地查看)
    hexo deploy(发布了)
    

    hexo 使用

    hexo clean 清除缓存, 删除public文件夹
    快捷命令
    hexo g == hexo generate 生成待发布的文件,即生成静态页面至public目录
    hexo s == hexo server 开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
    hexo d == hexo deploy 将.deploy目录部署到GitHub
    hexo n == hexo new
    hexo help # 查看帮助
    hexo v == hexo version #查看Hexo的版本
    组合使用
    hexo d -g
    
    

    hexo命令

    PS:熟练英语很重要!!!资源就摆在眼前就不要乱搜了!!!
    注意:上传时候有没有 hexo clean就 hexo d -g 有时发生不一致错误

    some problem

    hexo本地预览和发布效果不一样(图标,头像,动画 ,字体)
    一般原因:

    1. 你是不是网不好,没加载完?
    2. 站点下或主题下的_config.yml里配置错误
      比如路径写错
    头像路径配置错了,应该写
    avatar: "/img/headportrait.jpg"
    而不是
    avatar: "img/headportrait.jpg"
    一个是相对根目录,一个是相对当前路径
    
    1. 我的错误是

    https不能用http的资源

    https不能用http的资源
    要不你用下载好的js,要不把外链的js换成https
    直接打开链接https://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js
    复制新建文件require-2.1.6,jquery-1.9.1.min.js
    放入public的JS文件夹,改一下index.html中此链接发现问题解决,就用这种方法解决。
    将require-2.1.6,jquery-1.9.1.min.js放入主题的source/js目录下,为使之后生成的html页面链接为下载好的JS文件,需修改模板

    EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本。可以说EJS是一个JavaScript库,
    EJS可以同时运行在客户端和服务器端,客户端安装直接引入文件即可,服务器端用npm包安装
    

    找到模板left-col.ejs(不同主题可能不同)

    修正

    修改完成。
    PS:想了好长时间也没解决的问题,问了一个学长,立马看控制台有错没有,有时候习惯于偷懒,希望找到现成的答案,缺忘记最直接的错误提示。

    Reference:

    [1]样式更换
    [2]博文&页面新建
    [3]主题hexo-theme-yilia
    [4]主题black-blue 实例
    [5]博文插入图片

  • 相关阅读:
    Hbase调用JavaAPI实现批量导入操作
    spring-quartz定时任务使用小结
    Cocos2d-x JSB 自己主动绑定bindings
    CentOS 6.x安装多GCC版本号,cmake的安装与使用
    PPAPI+Skia实现的涂鸦板
    UVA
    [ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel
    文本分析之中文分词
    cocos2d-x创建精灵动画
    美国L1签证申请的常见问题解析
  • 原文地址:https://www.cnblogs.com/kimsimple/p/8414902.html
Copyright © 2020-2023  润新知