在前端页面显示Markdown文档

2024-01-10 11:11:11 浏览数 (3)

一、开坑

之前开发了一些测试工具,每次同事有需要都得单独再发他们一份,着实不太方便。我就想,要不干脆搞个测试工具平台吧。so就决定开一下测试工具平台的坑。

二、帮助页面开发

搞测试平台嘛,肯定是需要开发一个帮助页面,总不能每次同事一有问题就都来找我问怎么解决吧。

三、痛点

帮助页面,隔三岔五会有新增功能或者原有功能调整啥的,肯定是需要时常编辑和调整的,如果修改一次帮助文档,就改一次前端页面代码,那肯定是不太方便的。

四、解决思路

markdwon,各位都不陌生,页面简洁,维护简单,大家用了都说好。那么我们是不是可以直接用markdown文档来维护一份帮助文档,然后直接在前端显示呢?这样就不用修改前端代码,每次有变动,修改后端的mardown文档即可

五、技术实现

在前端显示markdown的话,有一个现成的开源js库marked.js。

前端渲染markdown的事情交给markded.js,那我们要做的事情就是在后端创建与维护一份markdown文档,在前端异步请求后端返回该文档既即可

1、引入

代码语言:html复制
<script src="/static/js/marked.min.js"></script>
<script src="/static/js/jquery-3.7.1.slim.min.js"></script>
<script src="/static/js/axios.min.js"></script>

2、前端页面

新增content元素用以显示markdown文档

代码语言:html复制
<div id="outer" class="hc_outer">
    <div id="content" class="hc_inner"></div>
</div>

设置样式为水平居中

代码语言:html复制
<style type="text/css">
    .hc_outer {
        margin-left: 20%;
        margin-right: 20%;
    }
    .hc_inner {

        width:auto;
        height:auto;

        position: absolute;
        align-items: center;

    }


</style>

3、请求后端

代码语言:html复制
<script type="text/javascript">
    function getHelpdOC()
{
    axios({
       url: "/static/guide/index.md",
       method: "get",
       responseType: "text",
    })
    .then(function(response){
       show(response.data)

    })
    .catch(function(error){
       console.log(error);
    })
}
      function show(data){
        document.getElementById("content").innerHTML = marked.parse(data)
      }
      getHelpDoc()
</script>

4、后端维护一份markdown文档

六、遇到的问题

1、 图片显示大小

在markdown文档中,我们也markdown语法插入图片时,在本地显示图片大小是正常的,而在前端页面经过marked.js渲染后,会变得超大,打乱页面排版。

代码语言:markdown复制
![插入图片](插入图片.png)

解决方法是用html语法插入图片,并设置图片尺寸

代码语言:html复制
<img src="插入图片.png" width="60%"></img>

0 人点赞