【博客】Hexo博客主题推荐与对比
Hexo博客主题推荐与对比Hexo作为一款流行的静态博客框架,拥有丰富多样的主题可供选择。本文将详细介绍几款优秀的Hexo主题,帮助您为自己的博客选择最适合的主题风格。 为什么主题很重要?博客主题不仅决定了网站的外观,还影响用户体验、功能特性以及SEO表现。一个好的主题应该具备: 美观的设计风格 响应式布局(适配各种设备) 良好的阅读体验 丰富的自定义选项 优秀的性能和加载速度 SEO友好的代码结构 接下来,我将介绍几款优秀的Hexo主题及其特点。 1. Fluid - 简约而不简单 特点: 设计简约现代,视觉效果出色 支持暗黑模式 内置多种页面布局和组件 文档丰富,配置简单直观 中文社区支持良好 适合人群: 追求简约设计但又需要一定功能丰富度的博主,特别适合技术类博客。 安装方法: 1npm install --save hexo-theme-fluid 主题配置示例: 12345# 在Hexo根目录的_config.yml中设置theme: fluid# 创建主题配置文件# 将主题_config.yml复制到Hexo根目录的source/_data/fluid.ym...
【LINUX】Linux系统上安装Redis完整教程
一、Redis简介与环境准备(一)什么是RedisRedis(Remote Dictionary Server)是一个开源的、内存中的数据结构存储系统,常用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,具有高性能、高可用性和丰富的功能特性。 Redis的特点: 内存存储,读写性能极高 支持多种数据结构 支持数据持久化 支持主从复制和集群模式 支持发布订阅消息模式 (二)系统环境要求在开始安装前,请确保您的Linux系统满足以下要求: 操作系统:CentOS 7/8、Ubuntu 18.04/20.04/22.04、Debian 9/10/11 内存:至少1GB(建议2GB以上) 磁盘空间:至少500MB可用空间 网络连接:能够访问互联网以下载软件包 二、安装方式选择(一)源码编译安装(推荐)源码编译安装是最灵活的方式,可以自定义配置和优化参数。 1. 安装依赖包CentOS/RHEL系统: 12345678# 更新系统软件包sudo yum update -y# 安装编...
【前端】Angular框架详解:企业级前端开发平台
Angular是由Google开发和维护的开源前端框架,专为构建大型、复杂的单页应用程序而设计。它采用TypeScript作为主要开发语言,提供了完整的开发生态系统和企业级特性。 目录 Angular基础概念 项目结构与CLI 组件系统 模板语法 依赖注入 服务与HTTP客户端 路由系统 表单处理 状态管理 测试 最佳实践 总结 一、Angular基础概念(一)核心特性1. TypeScript优先Angular从设计之初就采用TypeScript,提供强类型支持和现代JavaScript特性。 1234567891011121314// 接口定义interface User { id: number; name: string; email: string; isActive: boolean;}// 类型安全的组件@Component({ selector: 'app-user', template: ` <div class="user-card"> <h...
【前端】前端框架全景图:现代Web开发技术栈详解
引言现代前端开发已经从简单的HTML、CSS、JavaScript组合发展成为一个复杂而丰富的生态系统。各种框架、库和工具层出不穷,为开发者提供了强大的能力来构建复杂的用户界面和交互体验。本文将全面介绍当前主流的前端框架,帮助开发者了解各个框架的特点、优势和适用场景。 一、前端框架发展历程(一)发展阶段1. 原生时代(2000-2010) 特点:直接使用HTML、CSS、JavaScript 代表技术:DOM操作、jQuery 优势:简单直接,学习成本低 劣势:代码复用性差,维护困难 2. 库时代(2006-2013) 特点:引入工具库简化开发 代表技术:jQuery、Prototype、MooTools 优势:简化DOM操作,提高开发效率 劣势:缺乏架构指导,项目结构混乱 3. MV*框架时代(2010-2016) 特点:引入架构模式,分离关注点 代表技术:Backbone.js、AngularJS、Ember.js 优势:代码组织更好,可维护性提升 劣势:学习曲线陡峭,性能问题 4. 组件化时代(2013-至今) 特点:组件化开发,虚拟DOM,响应式更新 代表技术:Re...
【LINUX】在一台空服务器上部署网页系统
一、准备环境 首先要看服务器是什么系统,笔者所用的是Centos7系统,所以以下也是在Centos7下的操作。 如果是Ubantu可以参考最后的链接 查看服务器信息 1234uname -a # 查看系统内核信息lsb_release -a # 如果是 Linux 系统,查看发行版本df -h # 查看磁盘空间free -m # 查看内存使用情况 虽然说是空环境,但是在服务器上面可能还有很多东西需要配置、安装,比如yum配置源等。 检查软件安装状态: 123mysql --version # 检查 MySQL 是否已安装nginx -v # 检查 Nginx 是否已安装java -version # 检查 Java 是否已安装 二、安装部署所需的软件 本次部署的服务器可以连接互联网,所以本次部署采用的安装也是在线安装。 如果发现yum安装依赖时连接失败或安装错误,可以查询一下看看是不是yum源没有配置。 (一)MySQL MySQL是一个关系型数据库管理系统,是网站...
【BUG】Node打包失败
【BUG】Node打包失败[Error: error:0308010C:digital envelope routines::unsupported]一、出现问题 更换新电脑后,安装了新版本node(20.15.0),发现使用打包命令vue-cli-service build --mode production 时会报错,报错信息如下 1[Error: error:0308010C:digital envelope routines::unsupported] 在搜索后,发现原因可能是node版本的问题,node17之前该命令可以正常运行,但是在17之后,由于OpenSSL3.0的发布,对允许算法和秘钥大小进行了严格限制,导致运行会报错。 二、解决措施 方法一:降低node版本,可以卸载新版的node,安装node16版本; 方法二:在运行项目命令前,先运行一下语句: Windows: 1set NODE_OPTIONS=--openssl-legacy-provider Linux && Mac 1export NODE_OPTIONS=--op...
【MySQL】存储过程:新增或更新数据
存储过程:新增或更新数据1234567891011121314151617181920212223242526272829303132333435CREATE DEFINER=`root`@`%` PROCEDURE `database`.`UpdateOrInsertReviseHistory`( IN p_file_number VARCHAR(255), IN p_version_id VARCHAR(255), IN p_effect_date DATETIME, IN p_revise_content TEXT)BEGIN -- 检查记录是否存在 IF EXISTS (SELECT 1 FROM revise_history WHERE file_number = p_file_number AND version_id = p_version_id) THEN -- 如果存在则更新 IF p_revise_content IS NOT NULL AND p_revise_content != '...
【前端】去除输入框el-input的前后空格
一、前言在VUE项目中,我们经常需要去除输入框el-input的前后空格,但是el-input组件并没有提供这个功能,所以需要我们自己实现。 二、实现方法(一)安装全局指令 可以在src/directives中创建一个JS文件,我创建的文件名叫input_trim.js,用于写自定义指令的代码。 然后在文件中写入以下代码: 123456789101112131415161718192021222324252627282930export default { install (Vue) { Vue.directive('trim', { inserted (el, binding, vnode) { // 获取el-input的input元素 const input = el.querySelector('input') || el.querySelector('textarea'); // 定义一个失焦事件处理函数 ...
【前端】网页悬浮窗口
网页悬浮窗口需求场景 项目中集成了设备取数的功能,而在和设备取数现场人员对接的时候,发现设备无法绑定样品,也无法实时取数,所以设备获取到的数据就会不定时的通过接口保存到项目的数据库中。而在软件系统中,需要能获取到设备取数的数值,然后填写到对应的输入框。 之前我的做法是通过实时数据来获取设备取到的数据,这种方法并不够严谨。之后遇到这个不定时取数的问题,就可以连同之前的问题也进行优化。 在代码层面的需求应该是: 可以展示设备取数数据 可以选择数据,并填写到输入框内 不影响其他地方的操作,即设备取数和其他功能应该是相互独立,互不影响的 符合操作习惯,易于操作 解决构想 首先,弹出层el-dialog 应该是无法满足这个需求的,因为弹出层组件会在弹出层弹出后,其他地方都会无法操作,只能操作弹出层之内的内容。所以我就寻思自己写一个组件,来实现既展示了设备取数数据,又可以操作其他地方。 我在别的系统中曾看到过类似的功能,是通过一个悬浮按钮【设备取数】,点击后会弹出一个悬浮窗口,里面展示的是设备取数的列表数据,可以获取到该功能开启后取到的所有数据,可以自行选择,然后选中的数据会自动填写...
【博客】Hello Hexo - 基础命令指南
Hexo博客常用命令指南Hexo是一个快速、简洁且高效的博客框架,使用Markdown解析文章,可以在几秒内生成静态网页。本文将介绍Hexo的常用命令。 文章管理创建一篇新文章123$ hexo new "文章标题"# 或简写为$ hexo n "文章标题" 这将在source/_posts/目录下创建一个新的Markdown文件。 更多信息: Writing 创建一篇新草稿1$ hexo new draft "草稿标题" 草稿会被保存在source/_drafts/目录下,默认情况下不会显示在网站上。 将草稿发布为正式文章123$ hexo publish "草稿标题"# 或简写为$ hexo p "草稿标题" 这将把草稿从_drafts目录移动到_posts目录,使其成为正式发布的文章。 站点管理启动本地服务器预览123$ hexo server# 或简写为$ hexo s 启动后可通过浏览器访问http://localhost:4000预览网站效果。 常用选项: ...

