Node.js个人博客

news2024/11/24 16:54:59

1. 项目介绍

项目演示地址:https://ximingx.org.cn/

项目github:https://github.com/ximingx/blog

想象一下,你是一位热爱写作的程序员小王。每天,你都有很多新的想法和技术心得想要分享。但是,管理你的博客网站却成了一个让你头疼的问题。

周一早晨,你坐在电脑前,准备写一篇关于最新学到的编程技巧的博客文章。然而,你突然想到还要登录到博客管理后台,配置文章类别,调整发布时间,上传图片,等等。这些繁琐的步骤让你感到沮丧,你意识到要花费至少半小时来处理这些技术细节,而不是专注于写作本身。

你心想:“要是我能只管写作,其他的事情都自动完成就好了。我只想用Markdown写下我的想法,然后它们就神奇地出现在我的博客上,那该多好啊!”

这时这个博客系统允许你只需在本地编写Markdown文档,就能自动将内容上传到服务器并发布到你的博客上。有了这个工具,你可以随时随地打开你喜欢的文本编辑器,用Markdown格式写下你的想法。完成后,你只需保存文件,剩下的一切都会自动完成。这样,你就可以将更多的时间和精力投入到真正重要的事情上:分享你的知识和经验。

1. 使用案例

如下是项目目录,你创建一些md文档与目录

posts
├── assets
│   └── image-20240626085241624.png
├── 公务员
│   ├── 常识
│   │   └── 法律
│   │       ├── 公务员法.md
│   │       ├── 刑法.md
│   │       ├── 劳动合同法.md
│   │       ├── 劳动法.md
│   │       ├── 宪法.md
│   │       ├── 民法.md
│   │       └── 行政法.md
│   └── 言语
│       └── 词义解析.md
└── 博客
    └── 博客搭建.md

博客文章存放在 blog/posts 目录下,posts 目录下的每一个文件夹即为分类,文件夹下的 .md 文件即为文章。

  • 文件夹代表文章的标签
  • 文件的名字为文章标题
  • 文件的修改时间为归档时间
  • posts下的assets存放md文档的照片

首页面显示:

在这里插入图片描述

显示的标签:

在这里插入图片描述

显示的归档:

在这里插入图片描述

文章样式:

在这里插入图片描述

修改项目根目录下的README.md即可直接修改关于页面。

这似乎是一个很平常的博客系统,但是我们可以做一些配置,同步到我们的服务器上,让我们不需要做额外的操作,它自动完成文件的上传。

2. 项目基本配置

项目对新手很友好,只需要修改config.js中配置,即可直接编写md文档使用,在设置ssh后本地posts文件夹中的文件会同步到配置的服务器。

// config.js
const path = require('path');

module.exports = {
    ---
    ssl: {
        // 本地生成ssl证书,测试
        // openssl req -x509 -newkey rsa:4096 -keyout private.key -out certificate.crt -days 365
        darwin: {
            key: './ssl/private.key',
            cert: './ssl/certificate.crt'
        },
        // 服务器上的ssl证书
        linux: {
            key: '/etc/nginx/ssl/ximingx.org.cn.key',
            cert: '/etc/nginx/ssl/ximingx.org.cn.crt'
        }
    },
    ssh: {
        localPosts: path.join(__dirname, './posts'),
        // 服务器ip地址
        remoteHost: '0.0.0.0', //不设置,默认不启动服务器
        user: 'root',
        remotePath: '/root/blog/posts',
        // 需要与服务器配置好ssh免密登录
        privateKey: '/Users/ximingx/.ssh/id_rsa'
    },
    ---
};

2. 博客的搭建

1. 本地部署

打开本地终端,执行以下命令:

git clone https://github.com/ximingx/blog.git
cd blog
npm install
npm run dev

启动成功后,打开浏览器,访问 https://localhost 即可查看博客。

2. 服务器部署

CentOS系统上安装Node.js和npm

curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash - sudo yum install -y nodejs

使用 zip 和 unzip 命令来压缩和解压缩文件。

# 本地操作
# 压缩blog
zip -r blog.zip ./blog
# 复制本地文件到服务器
scp /Users/ximingx/Downloads/blog.zip root@服务器ip地址:/root  #然后输入自己的秘密

# 进入服务器
ssh -p 22 username@remotehost

# 进入到服务器后
unzip blog.zip
# 进入项目
cd blog 
# 安装依赖,启动项目
npm i
pm2 start app.js
# 设置PM2开机自启
pm2 startup systemd
# 保存当前的PM2进程列表,确保重启后能恢复:
pm2 save

# 补充
# sudo rm -r /path/to/your/directory 可以用来删除文件夹目录

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

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

相关文章

统计分析利器:深入解读卡方检验与单因素方差分析的应用案例【练习题】

一、卡方检验 1.对400人进行问卷调查,询问对于教学改革的看法,调查结果如下表所示,请问不同学科不同性别的人意见是否相同。 学科 男生 女生 工科 80 40 理科 120 160 (性别,学科均无序分类>卡方检验&am…

【SGX系列教程】(五)Intel-SGX 官方示例分析(SampleCode)——RemoteAttestation

文章目录 一.RemoteAttestation原理介绍1.1 远程认证原理1.2 远程认证步骤1.3 远程认证基本流程1.4 IAS通过以下步骤验证报告的签名1.5 关键术语1.6 总结二.源码分析2.1 README2.1.1 README给出的编译流程2.2 重点代码分析2.2.0 主要代码模块交互流程分析2.2.1 isv_app文件夹2.…

Leetcode刷题笔记 | 二叉树基本性质 | 一天的题量 | 5道题目 | 深度优先搜索 | 广度优先搜索 | 递归 | 遍历

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 📌本期毛毛张分享的是LeetCode关于二叉树🌲的性质的一些基础题,做这些题目的本质还是遍历二叉树🏃‍➡️的过程&#…

uniapp+php开发的全开源多端微商城完整系统源码.

uniappphp开发的全开源多端微商城完整系统源码. 全开源的基础商城销售功能的开源微商城。前端基于 uni-app,一端发布多端通用。 目前已经适配 H5、微信小程序、QQ小程序、Ios App、Android App。 采用该资源包做商城项目,可以节省大量的开发时间。 这…

Docker部署Dillinger个人文本编辑器

Docker部署Dillinger个人文本编辑器 一、Dillinger介绍1.1 Dillinger简介1.2 Dillinger使用场景 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、拉取Dillinger镜像五、部署Dill…

前后端分离的后台管理系统开发模板(带你从零开发一套自己的若依框架)上

前言: 目前,前后端分离开发已经成为当前web开发的主流。目前最流行的技术选型是前端vue3后端的spring boot3,本次。就基于这两个市面上主流的框架来开发出一套基本的后台管理系统的模板,以便于我们今后的开发。 前端使用vue3ele…

YOLO网络结构特点收录

YOLO网络结构特点收录 YOLO(You Only Look Once)网络结构随着版本迭代不断进化,以下是一些关键版本的网络结构特点概述: YOLOv1 输入:将图像调整至固定尺寸,如448x448像素。骨干网络:初期版本…

Leetcode3190. 使所有元素都可以被 3 整除的最少操作数

Every day a Leetcode 题目来源:3190. 使所有元素都可以被 3 整除的最少操作数 解法1:遍历 遍历数组,累加最少操作数,即 min(num % 3, 3 - num % 3)。 代码: /** lc appleetcode.cn id3190 langcpp** [3190] 使所…

ElementUI框架搭建及组件使用

前言: 当开始使用ElementUI框架来搭建网站或Web应用程序时,了解框架的基本结构和组件的使用是至关重要的。ElementUI是一个基于Vue.js的框架,提供了丰富的UI组件和工具,可以帮助开发人员快速构建现代化的用户界面。 在本文中,我…

电脑提示vcomp140.dll丢失的几种有效的解决方法,轻松搞定dll问题

在电脑使用过程中,我们可能会遇到一些错误提示,其中之一就是找不到vcomp140.dll。那么,究竟什么是vcomp140.dll呢?为什么会出现找不到vcomp140.dll的情况呢?本文将从vcomp140.dll的定义、常见原因、对电脑的影响以及解…

[鹏城杯 2022]babybit

发现一个压缩包提取出来提取出来两个压缩包里面是注册表使用MiTeC Windows Registry Recovery 恢复注册表 flag在ROOT\ControlSet001\Control\FVEStats里的OsvEncryptInit和OsvEncryptComplete中 NSSCTF{2022/6/13_15:17:39_2022/6/13_15:23:46}

Nuxtjs3教程

起步 官方文档 官方目录结构 安装 npx nuxi@latest init <project-name>后面跟着提示走就行 最后yarn run dev 启动项目访问localhost:3000即可 路由组件 app.vue为项目根组件 <nuxt-page />为路由显示入口 将app.vue更改内容如下 <template><d…

PostgreSQL 17 Beta 1 发布!

PostgreSQL 全球开发小组宣布&#xff0c;PostgreSQL 17 的第一个测试版本现已可供下载。此版本包含 PostgreSQL 17 正式发布时将提供的所有功能的预览&#xff0c;但测试期间版本的某些细节可能会发生变化。 #PG培训#PG考试#postgresql培训#postgresql考试#postgresql认证 您…

【Qt+opencv】编译、配置opencv

文章目录 前言下载opencv编译opencvmingw版本 总结 前言 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;它包含了超过2500个优化的算法。这些算法可以用来检测和识别面部&#xff0c;识别对象&#x…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-47转置卷积

47转置卷积 import torch from torch import nn from d2l import torch as d2l# 输入矩阵X和卷积核矩阵K实现基本的转置卷积运算 def trans_conv(X, K):h, w K.shapeY torch.zeros((X.shape[0] h - 1, X.shape[1] w - 1))for i in range(X.shape[0]):for j in range(X.shap…

Python_Socket

Python Socket socket 是通讯中的一种方式&#xff0c;主要用来处理客户端与伺服器端之串连&#xff0c;只需要protocol、IP、Port三项目即可进行网路串连。 Python套件 import socketsocket 常用函式 socket.socket([family], [type] , [proto] ) family: 串接的类型可分为…

pdf怎么转换成jpg,本地转换还是在线转换?

PDF&#xff08;Portable Document Format&#xff09;和JPG&#xff08;Joint Photographic Experts Group&#xff09;这两种文件格式在我们的日常生活和工作中扮演着举足轻重的角色。PDF因其跨平台、保持原样性强的特点&#xff0c;被广泛应用于文件传输和存储&#xff1b;而…

快速修复mfc100u.dll丢失解决方案

相连文章&#xff1a;SecureCRT的安装破解 [详细过程2024] 有小伙伴向我反馈在打开SecureFX注册机之后显示【mfc100u.dll找不到】重装之后也没有用&#xff0c;这个是因为Microsoft Visual C的运行时组件和库出现了错误&#xff0c;直接选择重新安装就可以 出现这种情况的原因…

识图生成代码:通义千问vsGPt4o,有点小崩

今日对比一下通义千问和GPt4o&#xff0c;在通过识别图片然后去生成前端代码 在当今ai的时代&#xff0c;通过ai去生成页面的代码可以很大的提高我们的开发效率下面是我们要求的生成的图片截图&#xff0c;这是掘金的榜单 效果对比 首先我们使用通义千问&#xff0c;让他去帮我…

LabVIEW在机器人研究所中的应用

机器人研究所致力于机器人技术的研究与开发&#xff0c;涵盖工业机器人、服务机器人、医疗机器人等多个领域。研究所需要一个高效、灵活的实验控制和数据采集系统&#xff0c;以进行复杂的机器人实验&#xff0c;并对实验数据进行实时处理和分析。 项目需求 实时控制与监控&am…