vuepress使用及拓展(骚操作)

官网

文章目录

    • 背景
    • 问题思考
    • 方案思索
    • 实现方案
    • 实现结果
    • 存在问题

背景

当前开放平台文件静态保存在前端项目,每次修改都需要通过修改文件发版的方式,很不便利。
1、需要前端手动维护
2、每次小的修改都要发版
随着对接业务的增多,对接文档的变动也随之增多,为了确保文档的快速更新,选择将开放平台动态化处理。静态文档由前端存储改为数据库存储,前端通过富文本编辑的方式去进行增改。另外左侧目录现在为手动维护,通过动态增减的方式改为动态维护。
阻力:
1、当前项目通过vuepress快速实现,使用配置编码较少,但是灵活性不足。采用动态化处理,对原有项目冲击性较大。
2、静态资源是否有必要存库

问题思考

1、内容回显,页面正常渲染
2、富文本编辑器
3、数据存储,确保回显格式不乱
4、当前所用的vuepress如何与外部资源结合
5、页面响应式

方案思索

方案一:(pass)
静态文件转为html,上传cdn,文档内通过iframe的链接方式直接请求指定资源

方案二:(pass)
静态文件转为html,上传cdn,文档内通过接口请求获取静态文件dom,渲染页面
问题:
1、上传的html不能和原有风格保持一致,产品不便于操作(文档内夹杂着图片、表格、代码片段)
2、需要请求外部资源,时间是一个问题

方案三:(采用)
静态文件转为md,上传cdn,文档内通过接口请求获取静态md资源,通过vuepress使用的makedown-it再重新渲染为html使用

方案四:(pass)(正式情况下推荐,本次情况是想让产品直接使用)
vuepress自动部署
问题:需要运维配合,仍然需要开发去改动

实现方案

通过vuepress layout模板自定义页面结构
接口获取左侧导航栏列表渲染
根据左侧列表,动态请求cdn上的md数据,通过markdown-it渲染模版,进行动态显示
响应式标题数据和左侧列表共用一套模板

项目目录结构
在这里插入图片描述
文档md,只提供layout

---
layout: customerComponent
---

内容页渲染

<template><div class="content"><div v-html="htmlContent" class="markdown-body"></div></div>
</template><script>import MarkdownIt from 'markdown-it'export default {props: {article:{type: Object,default: () => {}}  },data(){return {htmlContent: ''}},mounted(){const that = thisconst md = new MarkdownIt({html: true, // 在源码中启用 HTML 标签linkify: true, // 将类似 URL 的文本自动转换为链接。typographer: true, // 启用一些语言中立的替换 + 引号美化breaks: true // 转换段落里的 '\n' 到 <br>。});// 向服务器发送请求this.$axios.get(`https://cdn.xxxxx.com/${this.article.title}.md?${new Date().getTime()}`).then(res=>{if(res.status == 200){that.htmlContent = md.render(res.data)}})}}
</script>
<style lang="less">
.markdown-body{// 渲染样式编写
}
</style>

实现结果

新文档添加修改
1、文档直接拷贝,通过Typora转为md文档
2、md文档上传cdn
3、开放平台 /docs-plat/编辑.html,修改配置文件
4、查看文档是否生效

存在问题

功能缺失
1、去掉sideBar,响应式tab栏没了
2、文档底部前进后退没了
3、md文件渲染区别
4、全局搜索无法实现,关闭
打包问题
1、引入外部js,提示VuePress window is not defined
https://juejin.cn/post/6894571293337878536
2、
在这里插入图片描述
v-if影响,需将v-if 改为v-show
3、markdown-it版本问题,升级下包即可
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教3妹学编程-算法题】117. 填充每个节点的下一个右侧节点指针 II

2哥 : 3妹&#xff0c;听说你昨天去面试了&#xff0c;怎么样啊&#xff1f; 3妹&#xff1a;嗨&#xff0c;别提了&#xff0c;让我回去等通知&#xff0c;估计是没有通知了&#xff0c; 还浪费我请了一天假。 2哥 : 你又请假了啊&#xff0c; 你是怎么跟你那个严厉的老板请假…

一天写一个(前端、后端、全栈)个人简历项目(附详源码)

一、项目简介 此项目是用前端技术HTMLCSSjquery写的一个简单的个人简历项目模板&#xff0c;图片可点击放大查看&#xff0c;还可以直接下载你的word或者PDF的简历模板。 如果有需要的同学可以直接拿去使用&#xff0c;需自行填写个人的详细信息&#xff0c;发布&#xff0c;…

ChinaSoft 论坛巡礼 | CCF-华为胡杨林基金-系统软件专项(海报)论坛

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

自动驾驶学习笔记(六)——Apollo安装

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《2023星火培训【感知专项营】》免费课程—>传送门 文章目录 前言 Apollo安装 硬件配置 安装Ubuntu…

手机转接器实现原理,低成本方案讲解

USB-C PD协议里&#xff0c;SRC和SNK双方之间通过CC通信来协商请求确定充电功率及数据传输速率。当个设备需要充电时&#xff0c;它会发送消息去给适配器请求充电&#xff0c;此时充电器会回应设备的请求&#xff0c;并告知其可提供的档位功率&#xff0c;设备端会根据适配器端…

USB PD v1.0快速充电通信原理

1 原理 本篇文章讲的快速充电是指USB论坛所发布的USB Power Delivery快速充电规范&#xff08;通过VBUS直流电平上耦合FSK信号来请求充电器调整输出电压和电流的过程&#xff09;&#xff0c;不同于本人发布的另一篇文章所讲的高通Quick Charger 2.0规范&#xff0c;因为高通QC…

虹科示波器 | 汽车免拆检修 | 2012 款上汽大众帕萨特车 发动机偶尔无法起动

一、故障现象 一辆2012款上汽大众帕萨特车&#xff0c;搭载CFB发动机&#xff0c;累计行驶里程约为12万km。车主反映&#xff0c;将点火开关置于起动挡&#xff0c;偶尔只能听到“咔哒”一声&#xff0c;起动机没有反应&#xff0c;类似蓄电池亏电时起动发动机的现象。为此&…

【广州华锐互动】VR历史古城复原:沉浸式体验古代建筑,感受千年风华!

在科技日新月异的今天&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经成为了我们生活中不可或缺的一部分。从娱乐游戏到医疗健康&#xff0c;从教育培训到房地产销售&#xff0c;VR技术的应用领域日益广泛。而近年来&#xff0c;VR技术在文化遗产保护和古迹复原方面的…

多模态论文阅读之VLMo

VLMo泛读 TitleMotivationContributionModelExpertimentsSummary Title VLMo:Unified Vision_Langugae Pre-Training with Mixture-of-Modality-Experts Motivation CLIP和ALIGN都采用dual-encoder的方式分别编码图像和文本&#xff0c;模态之间的交互采用cosine similarity…

力扣:有效的括号

自己编写的代码 。 自己的思路&#xff1a; class Solution { private:unordered_map<char,int>symbolValues{{(,1},{),2},{{,4},{},5},{[,8},{],9}, };public:bool isValid(string s) {bool flagfalse;int lenss.length();if (lens % 2 ! 0){flag false;}for…

通过51单片机控制28byj48步进电机按角度正反转旋转

一、前言 本项目基于STC89C52单片机&#xff0c;通过控制28BYJ-48步进电机实现按角度正反转旋转的功能。28BYJ-48步进电机是一种常用的电机&#xff0c;精准定位和高扭矩输出&#xff0c;适用于许多小型的自动化系统和机械装置。 在这个项目中&#xff0c;使用STC89C52单片机…

QT 实现解密m3u8文件

文章目录 概要如何解密M3U8文件呢实现思路和代码序列图网络请求解密 结论 概要 视频文件很多已M3U8文件格式来提供&#xff0c;先复习下什么是M3U8文件&#xff01;用QT的 mutimedia框架来播放视频时&#xff0c;有的视频加载慢&#xff0c;有的视频加载快&#xff0c;为啥&am…

K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示

目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard 1 部署 CNI 网络组件 1.1 部署 flannel K8S 中 Pod 网络通信&#xff1a; ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容…

Android性能优化--Perfetto用SQL性能分析

Android性能优化–Perfetto用SQL性能分析 文章目录 Android性能优化--Perfetto用SQL性能分析介绍Perfetto SQL 基础使用 Perfetto SQL 进行性能分析总结 本文首发地址 https://blog.csdn.net/CSqingchen/article/details/134167741 最新更新地址 https://gitee.com/chenjim/che…

闯关打卡小程序的效果如何

闯关打卡是一种以任务关卡为基础的打卡模式&#xff0c;管理员可配置活动任务关卡&#xff0c;成员加入任务后需依次解锁&#xff0c;打卡完成任务&#xff0c;像闯关游戏一样完成所有任务。 通过打卡活动聚集一群有共同目标、兴趣的人&#xff0c;通过打卡的方式促进共同目标…

对Java的多线程的理解

说说对Java线程的理解 下面是AI的回答 Java线程就是Java程序里面可以同时运行多个任务。Java提供了几种创建和管理线程的方式&#xff0c;其中一种是继承Thread类&#xff0c;另一种是实现Runnable接口或Callable接口。jdk5提供了线程池&#xff0c;可以更方便地创建、启动和终…

Spring Boot 常见面试题

目录 1.Spring Boot 快速入门什么是 Spring Boot&#xff1f;有什么优点&#xff1f;Spring Boot 与 Spring MVC 有什么区别&#xff1f;Spring 与 Spring Boot 有什么关系&#xff1f;✨什么是 Spring Boot Starters?Spring Boot 支持哪些内嵌 Servlet 容器&#xff1f;如何设…

linux傻瓜式安装Java环境及中间件

linux配置Java环境及中间件 1.傻瓜式安装Java1.下载2.追加3.刷新测试 2.傻瓜式安装docker1.docker卸载2.docker安装 3.Docker傻瓜式安装Redis1.傻瓜式安装安装并配置 4.Docker傻瓜式安装RabbitMQ5.Docker傻瓜式安装MySql1.拉取2.配置 6.傻瓜式安装Nacos1.官网下载nacos2.SQL文件…

C语言_动态内存管理

文章目录 一.为什么存在动态内存分配二.动态内存函数的介绍2.1 malloc 和 free2.2 calloc原型如下 2.3 realloc函数模型如下 三.常见的动态内存错误3.1 对NULL的解引用操作3.2对动态开辟空间的越界访问3.3非动态开辟内存使用free释放3.4使用free释放一块动态开辟内存的一部分3.…

如何提高项目团队资源利用率?5大注意事项

项目团队的资源是有限的&#xff0c;这包括人力、时间、资金、设备等。如果这些资源利用率低下或者浪费&#xff0c;这直接会导致项目成本的增加&#xff0c;不利于产品在竞争激烈的商业环境中保持优势。 因此我们需要提高团队资源利用率&#xff0c;降低项目成本&#xff0c;避…