教你如博鱼体育何从零开始搭建一个属于自己的网站
发布时间:2024-01-08 16:22

  为了解决 Hexo 的热更新和开发体验问题,我开发了Valaxy替代文中的 Hexo。

  我已将自己的博客从 hexo 迁移至 valaxy,并开发了相同的主题 valaxy-theme-yun,平稳运行了一年左右。

  虽说是网站,对于个人来说,或许一般叫作博客。 但我不希望它仅仅是一个博客,而是能够成为一个处于自己现实生活之外、自由、实验、不用畏惧他人眼光甚至可以独断专行的地方。

  当然,这本质还是一个新手向教程,也许会有点科普的感觉。 我会从整体上对搭建网站的流程和使用到的技术及步骤进行介绍(因为要铺开讲,倘若包括轶事,实在太多太杂,我也会点到为止),并让你明白这个东西在网站的过程中起到什么样的作用。 但我不会就细枝末节展开叙述,譬如如何注册账号、安装时如何点击下一步。 我希望看完此篇文章后,此前对此方面知识一无所知的小白,到最后也能搭建出一个属于自己的站点。(前提是认识基础的英语单词和善用搜索引擎)

  与文章相关疑问都可在本文章的 GitHub Issues 中进行评论,其他疑问可到对应项目或文章下评论。

  这得从什么是 JS 说起,JS 也就是 JavaScript。(为什么有种从盘古开天辟地开始的感觉)没错,JavaScript 就是网页的盘古。JavaScript 是一种编程语言,我们所见到的网页中的交互和逻辑处理几乎都是由 JavaScript 完成。

  JavaScript 语法简单,易学易用。(当然也请不要小瞧它,虽然它入门门槛低,但上限同样也很高。包括但不限于实现网站前后端,手机桌面应用程序,机器学习,计算机图形学等。) 在 Node.js 诞生前,JavaScript 都运行于浏览器端。也就是说,它是鱼,浏览器是装满了水的水缸。 2008 年,Chrome V8 诞生。2009 年,Node.js 诞生。并成为 GitHub 早期最著名的开源项目。GitHub 可能大家已有所了解,后续再说。

  Node.js 便是一个基于 Chrome V8 引擎的 JavaScript 运行环境。(当年第一次看到这句话时,我也一脸懵逼。)按照我的理解,JavaScript 是鱼,Chrome V8 就是抽水机,Node.js 则把这台抽水机也装在你电脑上。于是你的电脑也有了 Node.js 这个和浏览器相似的水缸,也可以在里面运行 JavaScript 了!

  当然 Node.js 和浏览器端还是因为自身定位和一些历史原因而有些许区别的,不再展开。

  建议下载长期支持版而非当前发布版(因为如果是最新版,容易出现一些奇妙的 bug)。

  Windows 打开命令提示符,macOS 打开终端。(= =,这个不会就请百度吧。) Linux 用户右上角关闭本标签页。

  输入node --version,如果得到的版本号与你方才安装的一致,那么 Node.js 就已经成功安装。

  Visual Studio Code,简称 VS Code。 目前最为强大的编辑器,轻量且快速。(~~宇宙第一编辑器~~) 博鱼体育注意:它并不是我们常常听到的 VS,VS 常常指的是 Visual Studio,是一个功能强大的 IDE(集成开发环境),体积也相比 VS Code 都要大上一个量级。

  在此之前,我建议你先安装VS Code。因为安装 Git Bash 时,可以设置 VS Code 作为默认编辑器。

  Git 是一个开源的分布式版本控制系统,由 Linus Torvalds(同时也是 Linux 的作者)为了管理 Linux 开发而开发。 简而言之,是一个版本管理工具。譬如设计师设计好了第三版的海报,客户却说还是要第一版吧,这时便可以通过 Git 快速回退到最初的版本。 你只需要把每次更改的状态(Git 会自动进行检测,你只要掌握基础的几条命令就可以了)告诉 Git,而不需要每个版本都保存一份压缩包,既方便也能大大节约空间。 (当然这主要只对代码文本起作用,因为 Git 的本质是记录各行代码的增减,倘若是像视频、海报这类二进制文件来说便体现不出丝毫优势了。当然想要应对这种场景还有Git LFS。)

  macOS 用户可以下载官网的安装包进行安装,也可以直接安装 App Store 的 Xcode(附带会安装 Git,但是比较大)。

  类似的工具还有:SVN。但始终更推荐 Git,因为它功能更为强大且它的背后还有更强大的生态:GitHub。

  则是中心、集线器的意思。譬如 USB 集线器就是 USB Hub。所以 GitHub 就是饭桶中心(~~大雾~~)。

  GitHub 是全世界最大的开源项目与代码托管平台,也是众多开发者的交流场所。~~还是全球最大的同友网站~~。 而代码托管本身用到的正是上文提到的 Git 技术。

  注册GitHub账号。(虽然都是英文,但不必畏惧,也并不会造成使用障碍,只要记得最常用的选项含义即可,以及善用手头的翻译软件。)

  仓库名称务必为你的用户名.github.io,用户名是英文,大小写无所谓,但建议统一小写。(因为你会发现时常切换大小写很麻烦)

  Hexo 是一个快速、简洁而强大的博客框架,基于 Node.js,同样托管于 GitHub 之上。生态中拥有众多插件主题。你可以基于它快速生成一些静态页面。 你可以使用别人的各种主题与插件,也可以自己定制开发想要的功能。

  其他常用的博客框架还有WordPress,Typecho等,但这些往往都需要购置自己的服务器,而无法静态化地部署到 GitHub Pages 上。(当然,相应的功能和灵活性也大大提升。) 静态网站生成器还有Vuepress,Gatsby等。但这些多是为了写文档而量身定制的,你也可以使用它们,但是相较 Hexo 的博客定位,它们关于博客的插件和主题以及解决办法会少得多。Hugo提供的功能与 Hexo 几乎相同,不过它是基于 GO 语言。日后你想对自己的网站进行自定义,即便是 Hugo,你编写前端的交互仍旧需要使用 JavaScrip,所以选择基于 JavaScript 的 Hexo 可以降低学习成本。(你若对 GO 有兴趣,仍然可以尝试使用 Hugo,但本教程将不会针对 Hugo 进行展开。) 所以对于新手来说,使用 Hexo 作为起始点,不失为一个好选择。(当然如果你有钱租服务器,就可以考虑考虑 WordPress)

  此时,请先通过cd进入你本地电脑打算存储网站代码的文件夹目录。(或者右键文件夹 Git Bash Here)

  server代表开启本地的 Hexo 服务器,这时你就可以打开浏览器,在地址栏中输入localhost:4000就可以看到本地的网页了。

  Hexo 默认提供的是hexo-theme-landscape主题。 默认主题样式简单,功能较少。所以大多数人并不会使用默认主题。

  这里将示范如何使用我自己开发的主题hexo-theme-yun(_(:з」∠)_ 顺带求 Star)。 你可以前往云游君的小站查看示例效果。

  当然,你也可以在Themes Hexo发现更多有趣美丽的主题。使用方法大致相同。 当你具备一定开发能力时,你可以开发属于自己的主题,或者为 hexo-theme-yun 提交PR添加你想要的功能。

  进入终端(确保路径处于你此前使用 Hexo 初始化好的文件夹目录下,后简称为Hexo 目录),输入以下命令。

  在你此前通过 Hexo 初始化生成的文件目录下,会存在一个_config.yml文件。

  是YAML文件的后缀名,YAML 是 YAML Aint a Markup Language(YAML 不是一种标记语言) 的缩写,但它实际上还是一种标记语言。你可以将其理解为存储数据的一种文本格式,这也是其诞生的目的。 如果你听说过 JSON,那你就更能明白它是干什么的了。

  它是 Hexo 的配置文件,关于各配置选项的意义你可以查看配置 Hexo。

  由于我的主题使用了 pug 和 stylus,而 Hexo 自带的一般是 ejs 与 stylus,所以你可能还需要输入以下命令安装渲染器。

  这时再像此前那般使用hexo server重新启动服务器,你就可以看到一个不一样的主题风格的页面了。

  当启动时,会使用主题的默认配置。但这不一定是你想要的。 所以你可以对主题进行一些自定义。

  主题的配置文件放在themes/yun/_config.yml文件中。 且慢,你最好不要直接修改主题的默认配置。倘若日后主题升级更新了怎么办吗,难道还要重新配置一遍吗?

  本主题将自定义配置与默认配置进行合并,因此你只需要在yun.yml文件中自定义你需要的配置即可,其余仍将自动采用默认配置。

  这只是一个配置项的简单示例,更多配置你可以参考我的主题文档或直接在theme/yun/_config.yml中查看,并根据自己的需要进行配置。

  至今我们的工作都是在本地进行,想必你也很想放到线上与小伙伴们分享。 这便轮到了 GitHub Pages 的出场,不过 GitHub Pages 只支持纯静态文件。

  此时你的文件夹目录下会出现public这个文件夹,里面存放的就是你站点的静态文件。

  在将其部署到 GitHub Pages 上之前,我们最好先建立一个分支。

  你的名字.github.io部署后,GitHub Pages 将默认使用你的 master 分支作为静态文件部署。 所以我们最好新建一个 hexo 分支(命名无所谓)用来存储 Hexo 地源代码,master 分支则用来存储部署后的静态文件。

  这时便成功建立了一个 hexo 分支。(此后的工作都将在 hexo 分支下进行)

  你可以通过git branch -v来查看当前有哪些分支,使用git branch 分支名来切换到对应的分支。

  为了以防万一,我们应该将网站的源代码文件也推送到 GitHub 仓库备份。

  每次推送都要输入这三条命令,你可能觉得有些麻烦。 那么你可以编写 bash 脚本。

  至于如何使用持续集成来部署 Hexo,官方文档已经介绍的很详细,所以我就不再画蛇添足了。

  的后缀名,是一种简洁方便的文本标记语言。你只需要记住简单的几种语法,就可以快速进行编写。 为什么使用 Markdown? 首先 Hexo 本身就是将 Markdown 转化为静态的 Html 文件,来方便用户编写文章。 Markdown 就好似介于 Word 与 TXT 文本之间。Word 体积大、大部分功能实际上根本用不到,且最后的文档常常带有许多冗余信息。 而 TXT 却无法实现加粗、标题、下划线、水平分割线等常用的功能。 (这里所说的 TXT 只是一种纯文本格式的代称,实际上 Markdown 也是纯文本文件,不过通过语法和 Markdown 编译器,我们就可以看到一些简单的样式。)

  上面是渲染过后的效果,你可以与其 Markdown 的纯文本原文进行对比。

  譬如直接在 Hexo 目录下的source文件夹下直接新建 HTML 进行编写。

  也可以通过以下命令来新建页面。(当然还是 Markdown,不过也是可以在 Markdown 里写 HTML 的,也会被渲染出来。)

  在Hexo工作目录下source文件夹下新建CNAME文件(没有后缀名)。

  个人网站同样可以用来做许多事情,你可以将其用来记录生活、回忆、创作、学习笔记、开发经验等(包括作为一个试验平台)。 可以与熟悉的人分享,也可以作为另一个世界另一个自己的展示。