这里顺便啰嗦两句,在互联网如此发达的今天,我们应该如何营销自己呢?自我营销首先要从打造个人品牌做起,对于程序员来说,最容易去做好的一件事情还是搭建自己的博客。博客相当于是你在互联网上的一个基地,尤其是当你拥有了属于自己的独立博客后,你可以做很多自己想做的事情,既可以传达自己的思想,又可以提升自己的影响力,当然如果你的博客经营得非常好,你可以从中获利。当然,除了博客,直播、视频网站、投稿、写书、技术活动都是可选的自我营销方式。当然,做自我营销也需要持之以恒,三天打鱼两天晒网是很难有什么收获的。

    Hexo是一个快速、简洁且高效的博客框架,它能够将的文档渲染成漂亮的网页,这样我们就可以在很短的时间内迅速的创建出网站的静态内容,而Markdown格式对程序员来说相信并不陌生。要想使用Hexo来搭建自己的博客,我实在想不出有什么教程比官方文档更好,强烈建议大家阅读官方文档来了解Hexo,下面我只做一个简要的使用说明。

    要使用Hexo,首先得确保计算机上已经安装了环境和git环境,前者是一个能够在服务器端运行JavaScript代码的环境,后者是版本控制工具。安装node.js主要是为了使用它的包管理工具npm,所以不需要先系统的学习node.js的知识;而安装git是为了利用版本控制系统克隆代码已经将博客项目托管到三方平台,如果想学习git,最好的资料是官方网站上的和《Git权威指南》。安装完成后,我们可以通过下面的命令来确认node.js环境以及它的包管理工具是否安装成功。

    可以通过下面的命令来检查是否安装了git环境。

    我们可以使用npm来安装Hexo,npm是node.js的包管理工具,跟Python的pip工具作用一样,可以用它来安装依赖库和三方工具。在第一次使用npm的时候,我们可以先将npm的下载源更换为国内的淘宝镜像,这样下载的速度会有非常显著的提升。

    1. npm config set registry https://registry.npm.taobao.org

    接下来我们就通过npm来安装Hexo,命令如下所示。

    1. npm install -g hexo-cli

    安装成功后,就可以使用Hexo来创建属于自己的博客啦。

    我们先通过下面的命令来创建一个专门保存博客项目的文件夹,该命令会从github上克隆博客项目和默认的主题。

    1. hexo init blog

    接下来我们进入这个文件夹并查看目录结构。

    1. cd blog
    2. ls -lR
    1. total 232
    2. -rw-r--r-- 1 Hao staff 1768 8 8 01:15 _config.yml
    3. drwxr-xr-x 274 Hao staff 8768 8 8 01:19 node_modules
    4. -rw-r--r-- 1 Hao staff 109972 8 8 01:19 package-lock.json
    5. -rw-r--r-- 1 Hao staff 443 8 8 01:15 package.json
    6. drwxr-xr-x 5 Hao staff 160 8 8 01:15 scaffolds
    7. drwxr-xr-x 3 Hao staff 96 8 8 01:15 source
    8. drwxr-xr-x 3 Hao staff 96 8 8 01:15 themes

    然后我们通过下面的命令来安装项目所需的依赖项(package.json文件指明了这些依赖项)。

    1. npm install

    该命令也可以缩写为:

    1. hexo g

    之前我们在安装依赖项的时候包括了一个名为hexo-server的依赖项,该依赖项可以帮助我们启动一个基于node.js的服务器来运行我们的博客项目,使用下面的命令即可启动服务器。

    1. hexo server

    该命令也可以缩写为:

    1. hexo s
    1. INFO Start processing
    2. INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

    从运行命令的提示信息可以看到,服务器已经运转起并使用了4000端口,可以通过Ctrl+C来终止服务器的运行。如果要修改服务器使用的端口,可以在启动服务器的时候加上-p参数;如果希望服务器启动后,自动打开默认的浏览器访问服务器,可以使用-o参数,如下所示。

    1. hexo s -p 8000 -o

    至此,我们已经可以看到Hexo在没有配置也没有加入自己的Markdown文件下生成的首页,如下图所示。

    接下来我们修改博客的配置文件。

    1. vim _config.yml
    1. # Hexo Configuration
    2. ## Docs: https://hexo.io/docs/configuration.html
    3. ## Source: https://github.com/hexojs/hexo/
    4. # Site
    5. title: 骆昊的技术专栏
    6. subtitle: 传道、授业、解惑,分享知识带来的快乐
    7. description:
    8. keywords:
    9. author: 骆昊
    10. language: zh
    11. timezone:
    12. # URL
    13. ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
    14. root: /
    15. permalink: :year/:month/:day/:title/
    16. permalink_defaults:
    17. # Directory
    18. source_dir: source
    19. tag_dir: tags
    20. archive_dir: archives
    21. category_dir: categories
    22. code_dir: downloads/code
    23. i18n_dir: :lang
    24. skip_render:
    25. # Writing
    26. new_post_name: :title.md # File name of new posts
    27. default_layout: post
    28. titlecase: false # Transform title into titlecase
    29. external_link: true # Open external links in new tab
    30. filename_case: 0
    31. render_drafts: false
    32. post_asset_folder: false
    33. relative_link: false
    34. future: true
    35. highlight:
    36. enable: true
    37. line_number: true
    38. auto_detect: false
    39. tab_replace:
    40. # Home page setting
    41. # path: Root path for your blogs index page. (default = '')
    42. # per_page: Posts displayed per page. (0 = disable pagination)
    43. # order_by: Posts order. (Order by date descending by default)
    44. index_generator:
    45. path: ''
    46. per_page: 10
    47. order_by: -date
    48. # Category & Tag
    49. default_category: uncategorized
    50. tag_map:
    51. # Date / Time format
    52. ## Hexo uses Moment.js to parse and display date
    53. ## You can customize the date format as defined in
    54. ## http://momentjs.com/docs/#/displaying/format/
    55. date_format: YYYY-MM-DD
    56. time_format: HH:mm:ss
    57. # Pagination
    58. ## Set per_page to 0 to disable pagination
    59. per_page: 10
    60. pagination_dir: page
    61. # Extensions
    62. ## Plugins: https://hexo.io/plugins/
    63. ## Themes: https://hexo.io/themes/
    64. theme: landscape
    65. # Deployment
    66. deploy:
    67. type:

    下面是YAML文件中相关选项的说明。

    我们将编写好的Markdown文件可以拷贝到source/_posts目录,我们可以在每个Markdown文件的上方添加Front-matter来对文件的布局、标题、分类、标签、发布日期等信息加以说明。所谓Front-matter,就是每个Markdown文件最上方以---分隔的区域,可以在Front-matter中设置以下内容。

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

    例如:

    在完成上述工作后,我们可以通过下面的命令先清理之前生成的内容。

    1. hexo clean

    接下来我们就可以用之前讲过的命令重新生成并运行博客项目。

    1. hexo generate
    2. hexo server -p 8000 -o

    我们可以利用GitHub网站提供的来托管我们的博客。在GitHub Pages的首页上就有一个教程指导我们如何托管自己的网站,当然第一步得在GitHub上注册一个属于自己的账号,登录成功之后才能进行后续的操作。

    1. 使用Hexo搭建自己的博客 - 图1

    2. 修改博客项目的配置文件_config.yml,配置使用GitHub来部署该博客项目。

      1. vim _config.yml
      1. # 省略上面的内容
      2. # Deployment
      3. ## Docs: https://hexo.io/docs/deployment.html
      4. deploy:
      5. type: git
      6. repo: https://github.com/jackfrued/jackfrued.github.io.git
      7. branch: master

      上面的配置中,type指定了使用git进行项目部署,repo指定了部署项目的git仓库的URL,我们这里使用的是HTTPS的地址,如果之前配置过密钥对也可以使用SSH的地址,branch指定了将代码同步到仓库中的哪一个分支,通常master分支就是发布项目最终工作成果的分支,也称为项目的主分支。

    3. 安装名为hexo-deployer-git的部署器插件,通过该插件就能实现一键部署。

      1. npm install hexo-deployer-git --save
    4. 可以使用下面的命令来实现一键部署到GitHub。

      1. hexo deploy -g

      或者

      1. hexo generate -d

    虽然我们已经通过GitHub提供的域名访问到了自己的博客,但是如果我们不愿意“寄人篱下”,我们在利用GitHub Pages提供的托管服务同时,也可以将博客绑定到自己专属的域名。如果暂时还没有购买域名,我们可以在提供域名购买服务的网站(如:万网、)上进行购买。

    比如说,我现在已经购买了一个名为“jackfrued.top”的域名,如何让它跟“jackfrued.github.io”这个域名做一个绑定呢,我们可以利用阿里云控制台或者来做一个域名解析服务。在域名解析平台登录成功后,可以添加或选择自己的域名来配置域名解析。点击“添加记录”按钮,创建一个类型为CNAME的域名解析,CNAME类型的解析代表将一个域名解析到另一个域名,如下图所示。

    使用Hexo搭建自己的博客 - 图2

    完成这一步后,还不能马上通过自己的域名访问到博客项目,最后需要在博客项目的source目录下添加一个名为CNAME的文件(请注意这个文件的名字是全大写字母的)。

    1. jackfrued.top

    可以清理一下之前生成的内容,然后将项目重新生成并发布到GitHub就大功告成了!现在我们已经拥有了独立域名的博客,希望大家可以利用它做些有意义的事情(记录自己的成长历程、分享自己的工作经验、提升个人的影响力)。加油吧,程序员!