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

news2024/9/23 2:50:55

什么是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.coloradmin.cn/o/2156394.html

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

相关文章

9.20日学习记录及相关问题解答

部分一 今天看了一本古老的书。学到了一些有关计算机的远古的知识。弥补了一些之前没有意识到的空白点。 原来上个世纪就有AI这个东西了 现阶段的主流模式,在许多年前其实是将来要发展的对象。 B/S指的是客户机/服务器结构模式 C/S是在B/S基础上发展过来的。三层结…

兼容多个AI应用接口,支持用户自定义切换AI接口

项目背景 2023年ChatGPT横空出世,给IT行业造成了巨大的反响。我第一次发现这个ChatGPT有着如此神奇的功能(智能对话,知识问答,代码生成,逻辑推理等),我感到非常吃惊!经过一番学习和…

一文看懂 Python 正则表达式,解决你的字符串难题!(Python正则表达式使用指南)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Re正则 📒📝 re 模块简介📝 正则表达式语法总结📝 re 模块参数总结📝 常用方法📝 正则表达式的技巧与注意事项📝 使用 `re.compile()` 实现编译模式⚓️ 相关链接 ⚓️📖 介绍 📖 在编程世界中,有一种强大的…

Lanterns (dp 紫 线段树 二分 维护dp)

Lanterns - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 让所有点被覆盖,那么状态可以设计成覆盖一段前缀,并且中间不允许出现断点 由于CF崩了,所以暂时没提交代码。 记f(i) 为前 i 个灯笼点亮的最长前缀。 由于答案具有保留性&#xff…

9.22算法题数组篇

数组的遍历 485.最大连续1的个数 题解 class Solution {public int findMaxConsecutiveOnes(int[] nums) {int maxcount0,count0;for (int i 0;i<nums.length;i){if(nums[i]1){count;}else{maxcountMath.max(maxcount,count);count0;}}maxcountMath.max(maxcount,count);r…

基于kubernetes-nmstate配置节点网络

kubernetes-nmstate 简介 kubernetes-nmstate 通过 Kubernetes API 驱动的声明式节点网络配置。 随着混合云的出现&#xff0c;节点网络设置变得更加具有挑战性。不同的环境有不同的网络要求。 容器网络接口&#xff08;CNI&#xff09;标准实现了不同的解决方案&#xff0c;…

【MySQL】 索引

MySQL与磁盘存储 MySQL就是提供数据存储服务的&#xff0c;而最终存储的位置就是磁盘&#xff0c;但是磁盘存储速度慢&#xff0c;所以MySQL如何与磁盘交互&#xff0c;提高数据存储效率&#xff0c;即是MySQL和磁盘交互。 磁盘基础知识回顾 物理结构 磁道&#xff1a;磁盘是…

AI运动小程序开发常见问题集锦一

截止到现在写博文时&#xff0c;我们的AI运动识别小程序插件已经迭代了23个版本&#xff0c;成功应用于健身、体育、体测、AR互动等场景&#xff1b;为了让正在集成或者计划进行功能扩展优化的用户&#xff0c;少走弯路、投入更少的开发资源&#xff0c;我们归集了一部分集中的…

想复制其他设备上的软件?看这里!-未来之窗行业应用跨平台架构

一、多好用的软件&#xff0c;已经没有apk安装包&#xff0c;很遗憾 1. 用户体验受损 &#xff1a;对于那些曾经依赖并喜爱这些软件的用户来说&#xff0c;无法再获取和使用它们&#xff0c;极大地影响了用户的日常体验和工作效率。 2. 功能缺失 &#xff1a;可能导致特定的功…

Kubernetes实战——集群监控和可视化管理

目录 一、Kube-Prometheus 1、版本兼容性介绍 2、安装 kube-prometheus 3、安装Ingress&#xff0c;实现访问 二、K8s安装ELK日志收集 1、安装Elasticsearch 2、安装Logstash 3、安装Filebeat 4、安装Kibina 三、Dashboard安装与使用 1、安装 2、创建token 3、使用 …

【算法业务】互联网风控业务中的续贷审批模型(融合还款意愿分层的逾期风险识别模型)

1、背景说明 本文旨在提出一种针对风控催收受限情况下&#xff0c;如何提升风控审批模型的风险识别能力&#xff0c;以缓解贷后催收的压力&#xff0c;降低贷款资金坏账的风险。这篇工作依然是很早期的项目&#xff0c;分享的目的一方面做笔记&#xff0c;另一方面则是希望其中…

[Redis] 渐进式遍历+使用jedis操作Redis+使用Spring操作Redis

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

一种求解无人机三维路径规划的高维多目标优化算法,MATLAB代码

在无人机三维路径规划的研究领域&#xff0c;高维多目标优化算法是一个重要的研究方向。这种算法能够同时考虑多个目标&#xff0c;如航迹距离、威胁代价、能耗代价以及多无人机协同性能等&#xff0c;以实现无人机路径的最优规划。 无人机路径规划算法的研究进展表明&#xf…

22、Raven2

难度 中 目标 root权限 4个flag 使用Virtualbox启动 kali 192.168.86.105 靶机 192.168.86.106 信息收集 看到111端口有一个rpc相关的东西&#xff0c;去网上查看了一下是什么服务 通过在网上搜索发现这是一个信息泄露的漏洞&#xff0c;上面的这个端口其实就是泄露的端口和…

Python | Leetcode Python题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; class Solution:def canPartition(self, nums: List[int]) -> bool:n len(nums)if n < 2:return Falsetotal sum(nums)if total % 2 ! 0:return Falsetarget total // 2dp [True] [False] * targetfor i, num in enumerate(nums…

为什么编程很难?

之前有一个很紧急的项目&#xff0c;项目中有一个bug始终没有被解决&#xff0c;托了十几天之后&#xff0c;就让我过去协助解决这个bug。这个项目是使用C语言生成硬件code&#xff0c;是更底层的verilog&#xff0c;也叫做HLS开发。 项目中的这段代码并不复杂&#xff0c;代码…

24年 九月 刷题记录

1. leetcode997找到小镇的法官 小镇里有 n 个人&#xff0c;按从 1 到 n 的顺序编号。传言称&#xff0c;这些人中有一个暗地里是小镇法官。 如果小镇法官真的存在&#xff0c;那么&#xff1a; 小镇法官不会信任任何人。 每个人&#xff08;除了小镇法官&#xff09;都信任这…

利用QEMU安装一台虚拟机的三种方法

文章目录 宿主机的选择方法一&#xff1a;直接用qemu源码安装步骤1&#xff1a;下载好qemu源码&#xff0c;这里我们用qemu-5.1.0步骤2&#xff1a;编译步骤3&#xff1a;创建一个系统盘步骤4&#xff1a;用步骤2编译的qemu-system-x86_64 启动一台Linux虚拟机步骤5&#xff1a…

问题——IMX6UL的uboot无法ping主机或Ubuntu

主要描述可能的方向&#xff0c;不涉具体过程&#xff0c;详细操作可以查阅网上相关教程 跟随正点原子教程测试以太网端口时&#xff0c;即便按照步骤多次尝试也无法ping通&#xff0c;后补充了些许网络工程基础知识解决了这个问题。 uboot无法ping主机或Ubuntu有多种可能&…

二分查找算法(3) _x的平方根

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 二分查找算法(3) _x的平方根 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 温馨…