Skip to content

v9d0g/my-blog-development-logs-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

博客重构计划:

本文意在记录闲暇之余学习开发的一些内容。

前言:

作为一个业余的开发者,第一次开发的Web系统存在诸多问题,例如:

并发性太差,请求太多就直接崩掉,垃圾请求无法过滤,也没有定时清理日志:

后台管理功能集合太捞:

各种不合理、没有任何日志保存和分析的东西,也没有定时备份、文章以markdown格式上传但图片只能依靠图床等等问题。

综上各种问题,目前刚好在了解各种框架和其他语言,可以尝试重构一下博客网站(虽然这个博客网站也才写好几个月)

感觉学Web安全,能深入了解一下Web开发对理解很多这方面的安全能有一定的帮助,业余时间可以学习学习这些技术栈,然后赋予行动。

同时,由于本博客是容器化部署的,我在考虑是否能通过站库分离等一系列操作,构建一个较为复杂的内网环境来学习一些相关知识。

【2024-03-22更新】

技术栈:

这次重构我想使用一些框架来细化各个部分的功能,暂定:

前端-vue2、组件库-bootstrap、脚手架-vue-cli

数据库-mysql

后端-gin

前端:

安装

对应版本信息

nvm

# 版本
nvm -v
1.1.12

nodejs 这个可以通过nvm下载,不需要官网下载。

# 版本
node -v
10.14.2
# 切换版本
nvm use 10.14.2

yarn

# 版本
yarn -v
1.22.22

vue/cli

# 下载
yarn global add @vue/cli

# 版本
vue --version
@vue/cli 4.5.17

由于开发环境是Windows,所以需要配置各种环境变量。

创建项目

由于可能会出现版本报错

error magic-string@0.30.8: The engine "node" is incompatible with this module. Expected version ">=12". Got "10.14.2" info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. error Found incompatible module.  ERROR  command

可以用下面的指令忽略

yarn config set ignore-engines true

这里出现了一个问题,各种环境变量配置好后,在cmd里面是可以执行的,但是在Vscode里面无法识别。但由于影响不大,所以并没有解决。

同时,这里解决了一个我的历史遗留问题:Vscode下载后更换目录导致无法更新

引入组件库

BootstrapVue

yarn add bootstrap-vue bootstrap@4.5.3

这里可能会存在报错的情况,可以通过降低vue版本来解决

yarn cache clean #清除缓存
yarn add vue@2.7.14

由于是第一次使用vue,它的报错十分奇怪。不符合代码规范就会报错,无法正常显示,现在主要出现的报错是关于空行和分号的错误。这个直接在vscode内部修改格式化的相关信息,统一使用两格作为缩进。


已弃用

代码高亮 highlightjs.js

yarn add highlight.js highlight.js@11.9.0

用于前端表单验证

 yarn add vuelidate

用于api请求

yarn add axios
yarn add vue-axios

图标组件 echarts

npm install echarts
npm i echarts-wordcloud
npm i -S echarts-wordcloud

npm install echarts-wordcloud

报错解决

To install it, you can run: npm install --save core-js/modules/es.array.push.js

npm install --save core-js

图片放大fancybox

yarn add @fancyapps/ui

markdown文本处理

最开始想法是后端上传编辑markdown->后端转html->前端显示 后来发现这种方式 优点:样式自定义化程度高 可以做一些效果很好的ui显示 缺点:只能使用不安全的v-html来渲染前端 并且调整ui会增加前端的渲染压力

markdown前端显示

yarn add markdown-it-vue

然后发现这个组件其实集成了echarts和highlight.js (草了 那我前面花这么多时间 写自定义ui组件在干嘛)

虽然这个组件集成了很多实用的组件 fancybox(图片放大) echarts(图表) highlight(代码高亮) latex(数学公式富文本)等等

但根据作者的issue中提到的 无法自定义代码高亮的风格 而且对markdown渲染的文本没有办法更进一步自定义

不过好在通过引入highlight的样式和修改一下代码高亮的style可以实现对应效果

import 'highlight.js/styles/atom-one-dark.css'; // 引入highlight.js的atom-one-dark样式

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 16px;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  background-color: #282c34;
  border-radius: 3px;
}

/* 字体高亮 */
code {
  font-size: 100%;
  color: #ffffff;
  word-wrap: break-word;
}

.markdown-body code {
  padding: .2em .4em;
  margin: 0;
  font-size: 85%;
  background-color: rgb(15 45 74);
  border-radius: 3px;
}

/* 链接 */
.markdown-body a {
  color: #53b151;
  text-decoration: none;
}

这个库中对目录列表的生成存在问题 原计划是使用[TOC]来指定markdown中生成目录结构 但是该组件不能正常的生成目录结构 于是需要自己设计算法

后端

配置

设置GOROOT,GOROOT为GO下载的目录,设置完后的关键参数。

set GO111MODULE=on
set GOROOT=S:\Cyber Security\2024\go

GO111MODULE开启时,不需要GOPATH来引入依赖。

模块初始化

go mod init v9d0g/go

安装Go语言环境一笔带过,遇到的问题主要有Gin下载时报错

go get -u github.com/gin-gonic/gin
go: downloading github.com/gin-gonic/gin v1.9.1
go: github.com/gin-gonic/gin@v1.9.1: verifying module: missing GOSUMDB

解决方案是

go env -w GONOSUMDB="*"

安装数据库相关依赖

go get -u github.com/jinzhu/gorm
go get github.com/go-sql-driver/mysql

windows环境下的vscode中,设置环境变量可能无法生效,需要在vscode终端中输入

$env:GOROOT="S:\Cyber Security\2024\go"

这里不知道为什么我每次打开vscode都得重新设置一遍。

【解决方案】

vscode通过一个GO ENV文件来指定环境变量 一般在左下角 文件路径可以通过 cmd中GO ENV来查看

在此设置GOROOT便不会出现该问题

解决跨域 GO CORS

目前进度:

【2024-04-04更新】

前端的布局大致准备就这样了,但是由于对vue的不熟悉(小看前端开发了)。很多组件之间数据的交互并不规范,有待学习。


【2024-04-10更新】

大致风格基本定下来了,现在需要完成的就是对路由的规划了。目前的主页会一次性加载所有样式,但是不显示。这种方式不知道会不会导致访问速度变慢,后续可能会更改。还有就是后台登录的页面需要优化,以及现在可以开始着手后端的编写了。


【2024-05-13更新】

这次把移动端的适配效果做的差不多了,然后把布局整理了一下,以及一些组件的增删。目前记录的所有文章将不会在现在这个博客里面上传,后续会统一上传至新博客。


【2024-10-24更新】

从七月份开始就一直很忙 只有断断续续的改改代码和提进一下开发进度

重新调整了一下主页面的UI和功能 并且初步写好了前端的请求接口

通过文章内容提取目录以及文章内图片的适应大小暂未完成

简单的设计了后端的页面和组件


【2024-11-13更新】

借用某知名博客的图床图片测试

博客文章中的样式基本完成了

移动端适配

TODO:

  • 设计评论组件和预留接口
  • 封装axios接口和获取数据异常弹窗组件
  • 后台

About

随缘更新的开发日志

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published