Node.js个人博客

news/2024/7/8 3:20:19 标签: node.js, 个人开发

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.niftyadmin.cn/n/5536098.html

相关文章

chrome 谷歌浏览器插件打包

1、找到id对应的字符串去搜索 C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data\Default\Extensions2、选择根目录 直接加载下面的路径扩展可用&#xff1a;

Es结合springboot(笔记回忆)

导包 <!--导入es--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> <dependency><groupId>org.springframework.boot<…

ubuntu 24手动编译nginx源码及添加对ip地址过滤的支持

本文参考了csdn这位博主的文章并修改整理&#xff1a; https://blog.csdn.net/qq_32262243/article/details/133951973 还是腾讯云ubuntu 24系统&#xff0c;我这里并没有手动下载pcre等源码&#xff0c;直接用ubuntu自带的就可以了&#xff0c;也不需要手动编译openssl等。 …

如何利用AI撰写短文案获客?分享6大平台和3大步骤!

从去年开始&#xff0c;很多大厂都在裁员&#xff0c;原因就是因为AI的火爆&#xff0c;替代了很多机械式的劳动力。以前很多人可以通过机械式的工作来摸鱼&#xff0c;现在AI完成的效率比人工的要高很多倍。 国内好用的AI平台非常多&#xff0c;有时候也可以使用几个AI平台结合…

#### golang中【堆】的使用及底层 ####

声明&#xff0c;本文部分内容摘自&#xff1a; Go: 深入理解堆实现及应用-腾讯云开发者社区-腾讯云 数组实现堆 | WXue 堆&#xff08;Heap&#xff09;是实现优先队列的数据结构&#xff0c;Go提供了接口和方法来操作堆。 应用 package mainimport ("container/heap&q…

产品经理系列1—如何实现一个电商系统

具体笔记如下&#xff0c;主要按获客—找货—下单—售后四个部分进行模块拆解

安全和加密常识(6)Base64编码方式

文章目录 什么是 Base64编码原理编解码示例应用什么是 Base64 Base64 是一种用于将二进制数据编码为仅包含64种ASCII字符的文本格式的编码方法,注意,它不是加密算法。它设计的目的主要是使二进制数据能够通过只支持文本的传输层(如电子邮件)进行传输。Base64常用于在需要处…

ExtendSim在商业和服务行业中的仿真

仿真使企业能够做出明智的、数据驱动的预测&#xff0c;从而指导决策、产生积极成果并建立竞争优势。 精益分析 使用 ExtendSim 中的精益分析方法对欧洲的供应链网络进行建模&#xff0c;一家制造商实现了对最终客户的服务水平提高了 98%&#xff0c;而且现在可以在库存减少约 …