hexo配置教程、主题使用及涉及的技术学习

一、背景

最近,一直想做一个属于自己的网站.可以从零开始搭建一个网站,顺便可以把日常中学到的技术用于实战,还可以顺便记录自己的所思所感,记录成长的过程.

方案

一开始的方案是从零开始,模仿常见个人博客的设计,基于vue+Springboot+MySQL的去实现网站.

新建项目之后,发现vue项目的页面UI设计比想象中要麻烦得多.考虑到时间成本,于是打算在github上面找合适的项目做二次开发.

hexo算是目前比较火的一款个人博客开源项目,并且里面好看的主题也很多,刚好契合我的需求.虽然hexo是一款纯前端的项目,没有自己的数据库,但可以稍微学习一下语法,给它配上服务器来进一步拓展功能.

在众多的主题中,看上了一款名叫livemylife的主题.决定就用这款主题来二次开发.

二、配置(windows)

github就有详细的配置教程

2.1、安装node.js

node官网,推荐下载14.21.3版本的,版本不能太低.下载msi文件,无脑点点点安装就好了.

2.2、安装hexo

打开命令行,执行命令安装脚手架

npm install hexo-cli -g

2.3、创建初始化项目

hexo init blog

等待完成就创建了一个项目名为blog的hexo项目.

2.4、拉取LiveMyLife主题项目(另开一个项目)

git clone https://github.com/V-Vincen/hexo-theme-livemylife.git

2.5、替换初始化项目配置文件夹

打开一开始创建的项目,用LiveMyLife主题项目的文件替换初始化项目的以下文件或文件夹(存在的话).

scaffolds source themes _config.landscape.yml _config.yml package.json yarn.lock

2.6、启动项目

命令行打开初始化项目的目录,先后执行执行以下命令,等待项目启动完毕.

npm install
hexo server

2.7、配置配置文件

然后对着最前面提到的github配置教程,就可以将配置的一些信息替换成自己想要的内容.

2.8、启动效果

三、涉及技术的语法

想要二次开发项目,就想要学习项目使用到的技术栈.

项目中主要用到的不常见的一种语言是ejs,这是一种模板语言,可以将ejs文件当成一块块的代码模块进行使用,这样同样的代码就不需要重复写.和java中的jsp差不多,可以根据配置灵活地判断生成所需的前端代码.

不过,本质上还是前端三件套.通过ejs来生成前端代码.

3.1、ejs语法

在ejs文件中引入ejs模板。

方式一 将当前ejs文件的代码插入到模板ejs文件

ejs文件采用如下语法引入page.ejs的文件

---
layout: page
---

在该ejs文件下方可以加入各种html标签。如下

---
layout: page
---
<div class="add-dix"><p>add dev</p>
</div>

下方加入的html代码会默认替换到模板文件page,ejs的<%- body %>标签,如下

<!DOCTYPE html>
<html lang="en"><body class="body--light><%- body %></body>
</html>
最终生成的html文件如下
<!DOCTYPE html>
<html lang="en"><body class="body--light><div class="add-dix"><p>add dev</p></div></body>
</html>
方式二 在当前ejs文件引入ejs文件

在_partial目录下有一个anchorjs.ejs文件

        <div class="add-dix"><p>add dev</p></div>

在新文件中引入该文件

<!DOCTYPE html>
<html lang="en"><body class="body--light><div class="add-dix"><%- partial('_partial/anchorjs') %></div></body>
</html>

最终会生成如下前端代码

<!DOCTYPE html>
<html lang="en"><body class="body--light><div class="add-dix"><div class="add-dix"><p>add dev</p></div></div></body>
</html>
 读取配置文件的值

有两种读取配置文件的方式config.xxx的方式,或者config['xxx']。

_config.yml文件

themecolor:enable: truemode: dark # themecolor mode light or dark, default light

 ejs文件中要使用对象的属性,需要先判空,和java中的对象差不多

<% if (config.themecolor && config['themecolor']['enable']) { %>

参数嵌入前端代码

  • <% '脚本' 标签,用于流程控制,无输出。
  • <%_ 删除其前面的空格符
  • <%= 输出数据到模板(输出是转义 HTML 标签)
  • <%- 输出非转义的数据到模板
  • <%# 注释标签,不执行、不输出内容
  • <%% 输出字符串 '<%'
  • %> 一般结束标签
  • -%> 删除紧随其后的换行符
  • _%> 将结束标签后面的空格符删除
<%- ... %>

如下,会读取config.yml文件的config.root配置嵌入代码中。同时这个标签采用非转义的方式嵌入html标签,比如<%- <h1>hello</h1> %>,会网页中输出标题1格式的hello。

<%- config.root %>
<%= ... %>

和<%- ... %>一样,也是嵌入配置文件的内容,但和上面不一样的是,这个标签输出的是转义的html标签,比如代码里面有<%= <h1>hello</h1> %>,网页中会把这个内容当成字符串全部输出,输出<h>hello</h>

四、前端的小知识

ejs中的if语句,判断条件为0,false,空这几种情况才不符合条件,其他的如正数,字符串,true都是符合条件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/827441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据分析可视化实训平台(1)

大数据分析可视化实训平台是一款适用于高校教学和各领域企业的零门槛可视化工具。学生和企业用户通过大数据分析可视化实训平台&#xff0c;能够轻松地对数据进行处理、分析和可视化&#xff0c;从而更有效地理解和利用数据&#xff0c;提升决策的质量和效率。 主要参数 一、…

C/C++ 入门(7)string类(STL)

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 请多多指教&#xff01; 目录 一、标准库中的string 1、了解 2、string类常用接口说明 1、常见的构造函数 2、容量操作 ​编辑 3、访问及遍历操作 4、修改操作 5、非成员函数 二、string类实现 …

JAVA学习-行为抽象和Lambda.Lambda表达式

行为抽象和Lambda表达式是Java 8引入的新特性&#xff0c;用于简化代码和提高代码的可读性。 一、概述、特点、使用方法以及与其他比较和高级应用的说明&#xff1a; 1. 行为抽象&#xff1a; 它是指将一段代码抽象为一种功能或行为&#xff0c;以便在需要时可以传递给其他方…

如何训练一个大语言模型(LLMs)

目录 前言大语言模型 Vs机器学习模型训练过程步骤1&#xff1a;数据策划&#xff08;Data Curation)步骤2&#xff1a;格式化与预处理步骤3&#xff1a;训练模型步骤4&#xff1a;模型评估 LLM Leaderboard[LLM Leaderboard 2024](https://www.vellum.ai/llm-leaderboard)[Open…

软考 系统架构设计师系列知识点之大数据设计理论与实践(13)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之大数据设计理论与实践&#xff08;12&#xff09; 所属章节&#xff1a; 第19章. 大数据架构设计理论与实践 第4节 Kappa架构 19.4.2 Kappa架构介绍 Kappa架构由Jay Kreps提出&#xff08;Lambda由Storm之父Nayhan M…

智慧水务是什么样的?如何打造智慧水务大屏?

在信息化和数字化快速发展的今天&#xff0c;智慧水务作为城市供水管理的重要组成部分&#xff0c;正变得越来越重要。智慧水务大屏作为智慧水务系统的可视化核心&#xff0c;不仅提升了水务管理的效率&#xff0c;而且通过数据的实时监控和分析&#xff0c;为决策者提供了强有…

持续发力新能源新材料产业,企企通 ×『瑞翔新材』SRM项目启动,积极推动企业发展新质生产力

近日&#xff0c;南通瑞翔新材料有限公司&#xff08;以下简称“瑞翔新材”&#xff09;与企企通达成战略合作&#xff0c;并成功召开SRM项目启动会&#xff0c;瑞翔新材与企企通高层领导、项目负责人及项目组成员共同出席此次启动会。 本次项目建设&#xff0c;企企通将助力瑞…

微服架构基础设施环境平台搭建 -(六)Kubesphere 部署Redis服务 设置访问Redis密码

微服架构基础设施环境平台搭建 -&#xff08;六&#xff09;Kubesphere 部署Redis服务 & 设置访问Redis密码 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -&#xff08;一&#xff09;基础环境准备 微服架构基础设施环境平台搭建 -&#xff08;二…

矿产资源管理系统:开启智慧矿业新篇章

项目背景 在全球经济发展的大背景下&#xff0c;矿产资源作为工业的“粮食”和“血液”&#xff0c;其合理开发与有效管理对于国家的经济发展、能源安全和工业稳定供应具有不可替代的作用。然而&#xff0c;随着资源的日益紧张和环境保护要求的提高&#xff0c;传统的矿产资源…

canvas 学习

最近的项目涉及到 canvas 相关的知识&#xff0c;就在网站上找资源先大概了解一下&#xff0c;然后再细细研究。 看到了一篇 “canvas详细教程” 的资源&#xff0c;感觉十分不错&#xff0c;就分享给大家&#xff1a; canvas详细教程! ( 近1万字吐血总结)这期是潘潘整理的万…

Recommended Azure Monitors

General This document describes the recommended Azure monitors which can be implemented in Azure cloud application subscriptions. SMT incident priority mapping The priority “Blocker” is mostly used by Developers to prioritize their tasks and its not a…

第二届阿里巴巴大数据智能云上编程大赛亚军比赛攻略_北方的郎队

关联比赛: 第二届阿里巴巴大数据智能云上编程大赛-智联招聘人岗智能匹配 查看更多内容&#xff0c;欢迎访问天池技术圈官方地址&#xff1a;第二届阿里巴巴大数据智能云上编程大赛亚军比赛攻略_北方的郎队_天池技术圈-阿里云天池

C#-使用Harmony库实现DLL文件反射调用

一. Harmony工作原理 利用C#运行时Runtime的反射机制,动态加载dll中的方法,字段,属性,实现对DLL方法的重写和代码注入。 二. Harmony下载及安装 1.下载Harmony_lib库lib.harmony.2.3.3.nupkg 霸王•吕布 / CSharpHarmonyLib GitCodehttps://gitcode.net/qq_35829452/csharph…

SQL查询一页数据过多太慢

一页取5000~10000条数据 查询很慢 1&#xff09;加索引 2&#xff09;设置fetchSize Select("<script> SELECT * from A \n" "</script>") Options(fetchSize 3000, resultSetType ResultSetType.FORWARD_ONLY) …

【黑马点评Redis——003优惠券秒杀】

1.优惠券秒杀 1.1 全局ID生成器 1.1.1 什么是全局ID生成器 全局ID生成器&#xff0c;是一种在分布式系统下用来生成全局唯一ID的工具。 需要满足以下特性&#xff1a; 唯一性高可用高性能递增性安全性 1.1.2 为什么需要全局ID生成器&#xff1f; 自增ID存在的问题&#…

iOS 内存泄漏问题总结

参考文章1&#xff1a;xcode8 使用Instruments检测定位并解决iOS内存泄露 参考文章2&#xff1a;iOS 出现内存泄漏的几种原因

字节跳动(社招)三面算法原题

TikTok 喘息 继上月通过强制剥离 TikTok 法案后&#xff0c;美国众议院在当地时间 20 日下午以 360 票赞成 58 票反对通过了新的法案&#xff1a;剥离 TikTok 的期限由生效后 165 天调整至 270 天之内&#xff0c;即今年 11 月的美国总统大选后。 之前我们讲过&#xff0c;TikT…

为 WSL2 一键设置代理

WSL1 和 WSL2 网络的区别 在 WSL1 时代,由于 Linux 子系统和 Windows 共享了网络端口,所以访问 Windows 的代理非常简单。例如 Windows 的代理客户端监听了 7890端口,那么只需要在 Linux 子系统中执行如下命令,就可以让当前 session 中的请求通过代理访问互联网。 export…

5款制作表格的软件,一键帮你实现数据可视化

数据可视化是许多企业决定未来方向、产品研发和用户研究的关键。只有大量的数据支持才能做出最明智的决定&#xff0c;因此表格在可视化中逐渐发挥着不可替代的作用。可以看出&#xff0c;掌握表格制作技巧是多么重要。然而&#xff0c;不能制作表格的小型合作伙伴不必担心。国…

Linux内核驱动开发-001字符设备开发-003独立按键杂项驱动

1驱动程序 /*************************************************************************> File Name: key_misc.c> Author: yas> Mail: rage_yashotmail.com> Created Time: 2024年04月22日 星期一 17时20分42秒**********************************************…