markdown是啥,相信大家都已经清楚了,一种程序员必备的文档格式。可以支持代码高亮,表格,图片,视频等一种文档格式
但是在vue3中如何来解析markdown文件呢?
在效果图中,通过请求获取markdown源文件,然后解析成正常的html展示在页面上
当前效果可以查看在线文档
咱们可以将整个解析markdwon文件到html的整个过程拆分成以下几个步骤:
markdown.md是一个文件,那么如何获取markdonw里面的内容呢?
在进行第一步的时候,我想提出一个问题,请问你是如何获取本地json文件内容的? 通过问题转换,大家肯定就知道如何获取本地json内容了——通过fetch来获取嘛
那么咱们可以写出这样的代码:
fetch('./xxxx.json', {
method: 'GET',
mode: 'cors' // 允许发送跨域请求
}).then(function (response) {
//打印返回的json数据
response.json().then(function (data) {
// 获取到json文件的内容
})
})
.catch(function (e) {
// 失败后的异常处理
})
复制代码
既然获取json可以这么来,那么获取markdown.md是不是也可以这么来呢?
同理,咱们也可以这么来试一试,但是这里肯定有一个地方需要进行修改,那就是response.json(),markdown文件里面返回的肯定不是一个json文件,而是一个正常的文本,那么可以写出以下代码:
fetch(route.query.path as string, {
method: 'GET',
mode: 'cors', // 允许发送跨域请求
credentials: 'include',
headers: {
'Content-Type': 'text/plain'
}
})
.then(async function (response) {
//打印返回的json数据
response.text().then((data)=> {
// 获取到markdown内容
})
})
.catch(function (e) {
// 获取失败的异常捕获
})
复制代码
拿到markdown的内容后,那就需要进行解析成正常的html了,那么这一步怎么做呢?
安装解析markdown语法的包:
npm install marked -S
复制代码
有关marked的介绍如下:
简单点的说是:
当然,该包也提供了在线demo:demo page
使用方式如下:
import { marked } from 'marked'
// marked 选项
marked.setOptions({
pedantic: false,
gfm: true,
breaks: false,
sanitize: false,
smartLists: true,
smartypants: false,
xhtml: false,
})
const htmlStr=marked('markdown 内容')
复制代码
有了这一步,页面的html就出来了,可以看到如下的效果:
经过上面两步,初步的html内容就渲染出来了,但是这样的效果,有读者愿意看么?
接下来咱们来美化一下咱们的代码,美化代码的方式有以下几种:
美化就是缺少css嘛
在这里,咱们就来实现一个github的markdown的样式吧
github的markdown css文件已经有现成的库了,咱们只需要按照一下即可:
npm install github-markdown-css
复制代码
有了这个,咱们就好办了,改造一下代码:
import 'github-markdown-css'
复制代码
对的,就是这么简单,只需要导入这个包即可,就可以实现以下效果:
说了这么多,需要给大家发一波福利??,优秀的你知道如何美化代码格式么?
#34;夏哉ke":quangneng.com/5046/
要手写一个微信小程序的底层框架,你需要掌握一系列的前端和后端技术。下面是一个概览,包括一些必须掌握的通用技术:
掌握上述技术将有助于你从零开始构建一个微信小程序的底层框架。此外,还需要不断关注微信官方的更新和社区的最新动态,以适应小程序平台的最新发展。
小程序框架有哪些常用组件?
微信小程序框架提供了一系列的常用组件,用于构建用户界面。以下是一些常用的组件:
这些组件是构建微信小程序用户界面的基础,通过组合使用这些组件,可以实现丰富的功能和界面效果。微信官方文档中提供了每个组件的详细属性和用法,建议在开发过程中参考官方文档以获取最新的信息和指导。
SS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式
之前也有写过 CSS 优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义 CSS 变量,自定义主题颜色。
布局 其实是学习前端的重要部分,最常用的方式就是从上而下、从左而右、亦或者两个相结合。
看上图,而这里,我们就只是最简单的布局方式,从上而下:
1、优惠券金额和过期时间
2、优惠券描述
3、按钮(其实按钮也可以放到“2”里面去)
这样分析,我们就有了 html 架构了
<div class="coupon">
<!-- 1、优惠券金额和过期时间 -->
<div class="price">
100元
<span>优惠券</span>
<p class="timeout">2020-12-31 18:18:18过期</p>
</div>
<!-- 2、优惠券描述 -->
<div class="describe">
<p>1、商城、美食可用</p>
<p>2、过期作废</p>
</div>
<!-- 3、按钮 -->
<div class="btns">
<button>立即使用</button>
</div>
</div>
CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式
接下来我们用 CSS 美化我们的 html 。同理,我们也根据布局分步进行样式书写。
这里的核心就是上方的凹槽和下方的锯齿
.coupon{
background-color: #E0E0E0;
width: 200px;
/* css变量 */
--main-color: #EC407A;
--f-color: #444;
}
.price {
position: relative;
height: 120px;
background-image: radial-gradient(
circle at 100px -8px, #fff 20px, var(--main-color) 21px
);
color: #fff;
font-size: 20px;
text-align: center;
padding-top: 40px;
}
.price .timeout{
color: var(--f-color);
font-size: 14px;
margin-top: 25px;
}
.price span{
font-size: 14px;
}
CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式
这里用到了 径向渐变,不清楚用法的小伙伴可以看看语法:
background-image: radial-gradient(shape size at position, start-color, ..., last-color);
注释:
(1)、shape 确定圆的类型:
ellipse (默认): 指定椭圆形的径向渐变。
circle :指定圆形的径向渐变
(2)、size 定义渐变的大小,可能值:
farthest-corner (默认) : 指定径向渐变的半径长度为从圆心到离圆心最远的角
closest-side :指定径向渐变的半径长度为从圆心到离圆心最近的边
closest-corner : 指定径向渐变的半径长度为从圆心到离圆心最近的角
farthest-side :指定径向渐变的半径长度为从圆心到离圆心最远的边
(3)、position 定义渐变的位置。可能值:
center(默认):设置中间为径向渐变圆心的纵坐标值。
top:设置顶部为径向渐变圆心的纵坐标值。
bottom:设置底部为径向渐变圆心的纵坐标值。
(4)、start-color, ..., last-color 用于指定渐变的起止颜色。
这样价格上方的凹槽就有了,接下来下方的锯齿我们也可以用 径向渐变 的方式实现:
.price::after{
position: absolute;
content: '';
display: block;
bottom: 0px;
height: 10px;
width: 100%;
/* background-size: 11px 200px; */
background-image:
radial-gradient(
circle at 5px 10px,
#E0E0E0 6px,
var(--main-color) 7px);
}
伪类元素 ::after 设置径向渐变背景为一个圆,后进行平铺就形成了锯齿,调整位置。
CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式
其实还有更简单的方法,可以直接用一个虚线边框即可搞定,请看:
.price::after{
position: absolute;
content: '';
display: block;
bottom: -5px;
width: 100%;
border-bottom: 10px dotted #E0E0E0;
}
CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式
当然也有缺陷,间隔位置不好控制
2、优惠券描述与按钮 优惠券核心锯齿已经搞定了,下面都是小菜啦,非常简单咯
.describe{
color: #333;
padding: 10px;
font-size: 14px;
}
.btns {
/* 使其button可以居中 */
text-align: center;
}
.btns button{
/* 重置按钮样式 */
border: none;
box-shadow: none;
outline: none;
background-color: var(--main-color);
color: #fff;
width: 50%;
border-radius: 20px;
line-height: 30px;
margin: 40px 0 20px;
cursor: pointer;
}
CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式
大家都看到了,我们上方代码主要颜色都采用的变量,而且变量是定义在 .coupon 类选择器里面的。这样的原因是:
1、CSS变量作用域(CSS变量只能作用于自身以及后代元素。兄弟元素,祖先元素都不能享用。)
2、方便主题使用
ok,我们就可以copy 多个 优惠券,并给每个添加一个不同的 class,比如下方的 theme1、theme2、theme3
<div class="coupon theme1">
...
</div>
<div class="coupon theme2">
...
</div>
<div class="coupon theme3">
...
</div>
<div class="coupon">
...
</div>
接下来我们就为不同主题定义不同的颜色变量
.coupon.theme1{
--main-color: #8E24AA;
--f-color: #fff;
}
.coupon.theme2{
--main-color: #039BE5;
--f-color: #fff;
}
.coupon.theme3{
--main-color: #26A69A;
--f-color: #fff;
}
这样,theme1主题下的优惠券,就是紫色主题,theme2主题下的优惠券,就是蓝色主题...,而默认主题颜色就是我们 .coupon 类选择器里面的定义的变量颜色(红色)。
今天你学到了吗?从布局分析到具体实现,再到主题颜色,相信小伙伴们都各有所得。
*请认真填写需求信息,我们会在24小时内与您取得联系。