当前位置: 首页 > news >正文

在vue中嵌入vitepress,基于markdown文件生成静态网页从而嵌入社团周报系统的一些想法和思路

什么是vitepress

vitepress是一种将markdown文件渲染成静态网页的技术


 

其使用仅需几行命令即可

//在根目录安装vitepress
npm add -D vitepress
//初始化vitepress,添加相关配置文件,选择主题,描述,框架等
npx vitepress init
//然后就生成了示例静态站点

更多路由部署相关知识参看官方中文文档vitepress
 

前端部分

使用iframe作为静态站点容器,当社员上传markdown文件时,文件会传输至后端,后端返回一串地址,该地址是该markdown文件生成的静态站点,静态站点服务器运行于公网或内网服务器中,

然后前端将该串url地址放于iframe的src属性中,因此,静态站点位于该iframe中

后端部分

接收前端传来的markdown文件后,生成markdown文件并写入到前端文件夹的docs的目录中,生成的markdown文件命名采用唯一制,比如UUID,将markdown文件插入目录后,返回一串可访问的url给前端(根据vitepress路由可得),然后执行脚本文件,重新进行vitepress渲染

脚本文件的内容大概为执行npm run docs:dev重新构建命令,将新增的md文件添加入静态网站

然后可以根据vitepress路由规则,访问新的静态站点

所以,在服务器中,会有一个端口运行vitepress,该端口下有着多个md静态网站,通过路由规则可访问

vitepress路由规则

嵌入结果如下

另一种想法:

借鉴csdn,我们知道,csdn也是基于md的博客网站,在访问一篇博客后,显示的博客界面就是以md形式展示的,于是可以查看csdn是怎么样渲染md文件的

在某一个get请求中,其返回的数据是一个html文件

但是其html的展示是几乎没有样式的

看到这个html,和vitepress打包生成的html文件几乎一样

下面为本地使用vitepress将md文件打包后生成的html文件(打包后的html文件需有服务器启动端口服务才会展示原来md样式)

csdn这种返回html文件的渲染方法也是一种可行性,具体实现目前还未去思考

静态网站托管之gitpage

在了解该项目时了解到了gitpage静态网站部署,于是自己动手尝试了一下

首先,你得有一个github账号(gitee的gitpage服务现在停了)

然后新建一个仓库,仓库名必须为账号名.github.io

新建好仓库后,点击 uploading an existing file上传网站文件,注意根目录一定是index.html所在地

之后访问仓库名就可以访问网站了

http://www.lryc.cn/news/444147.html

相关文章:

  • 神经网络面试题目
  • C语言题目之单身狗2
  • Vue2学习笔记(03关于VueComponent)
  • 微服务架构中常用技术框架
  • [深度学习]Pytorch框架
  • 华为HarmonyOS灵活高效的消息推送服务(Push Kit) - 5 发送通知消息
  • [Meachines] [Medium] Querier XLSM宏+MSSQL NTLM哈希窃取(xp_dirtree)+GPP凭据泄露
  • 新版ssh客户端无法连接旧版服务器sshd的方法
  • MyBatis操作数据库-XML实现
  • 华为HarmonyOS地图服务 5 - 利用UI控件和手势进行地图交互
  • 解决DockerDesktop启动redis后采用PowerShell终端操作
  • react + antDesign封装图片预览组件(支持多张图片)
  • 逻辑回归 和 支持向量机(SVM)比较
  • GS-SLAM论文阅读笔记--TAMBRIDGE
  • [Redis面试高频] - zset的底层数据结构
  • 搜维尔科技:OptiTrack将捕捉到的人类动作数据映射到人形机器人的各个关节上进行遥操作
  • CentOS Linux教程(6)--CentOS目录
  • 观察者模式全攻略:从设计原理到 SpringBoot 实践案例
  • 【MyBatis】Java 数据持久层框架:认识 MyBatis
  • 【Delphi】通过 LiveBindings Designer 链接控件示例
  • 深度学习——基础知识
  • QT实现升级进度条页面
  • JavaWeb--纯小白笔记04:Tomcat整合IDEA
  • 【jvm】动态链接为什么需要常量池
  • HTTPS详解
  • redis作为mybaits(mybatisplus)的缓存
  • 【环境配置】AST: Asymmetric Student-Teacher Networks for Industrial Anomaly Detection
  • TinkerTool System for Mac实用软件系统维护工具
  • 物理学基础精解【9】
  • Flask-JWT-Extended登录验证