评论
开发了三年小程序,我终于会给mp-html组件美化MD文章样式

开发了三年小程序,我终于会给mp-html组件美化MD文章样式

我左手是修魔海短暂的因果,右手里百年一个漫长的孤陌

灵沐开始后台富文本都是MD,基于mp-html的解析组件很难去找一个好看的文章样式,没有美化的情况下;普普通通;开发了三年小程序,我终于会给mp-html组件美化MD文章样式

图片

如何美化

在美化的时候我们需要找MD主题包,这里借用Markdown2Html的蔷薇紫主题包

1.下载mp-html

https://gitee.com/jin-yufeng/mp-html/releases

2.配置externStyle的外部css样式

图片


tools/config.js

externStyle: `
/* 根容器背景网格 */
._root {
  background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%);
  background-size: 20px 20px;
  background-position: center center;
}
/* 段落
* 上边距 margin-top:5px;
* 下边距 margin-bottom:5px;
* 行高 line-height:26px;
* 词间距 word-spacing:3px;
* 字间距 letter-spacing:3px;
* 对齐 text-align:left;
* 颜色 color:#3e3e3e;
* 字体大小 font-size:16px;
* 首行缩进 text-indent:2em;
*/
p {
    color: #595959;
    margin: 10px 0px;
    letter-spacing: 2px;
    font-size: 14px;
    word-spacing: 2px;
}
/* 一级标题 */
h1 {
    font-size: 25px;
}
/* 一级标题内容 */
h1 .content {
    display: inline-block;
    font-weight: bold;
    color: #595959;
}
/* 二级标题 */
h2 {
    text-align: left;
    margin: 20px 10px 0px 0px;
}
/* 二级标题内容 */
h2 .content {
    font-size: 18px;
    font-weight: bold;
    display: inline-block;
    padding-left: 10px;
    border-left: 5px solid #DEC6FB;
    color: #595959;
}
/* 三级标题 */
h3 {
    font-size: 16px;
    font-weight: bold;
    text-align: center;
}
/* 三级标题内容 */
h3 .content {
    border-bottom: 2px solid #DEC6FB;
    color: #595959;
}
/* 有序列表整体样式 */
ul {
    font-size: 15px;
    color: #595959;
    list-style-type: circle;
}
/* 有序列表整体样式 */
ol {
    font-size: 15px;
    color: #595959;
}
/* 列表内容 */
li section {
    font-size: 14px;
    font-weight: normal;
    color: #595959;
}
/* 引用 */
blockquote::before {
    content: "\\275D";
    color: #DEC6FB;
    font-size: 34px;
    line-height: 1;
    font-weight: 700;
}
blockquote {
    text-size-adjust: 100%;
    line-height: 1.55em;
    font-weight: 400;
    border-radius: 6px;
    color: #595959;
    font-style: normal;
    text-align: left;
    box-sizing: inherit;
    border-left: none;
    border: 1px solid #DEC6FB;
    background: #F6EEFF;
}
blockquote p {
    color: #595959;
}
blockquote::after {
    content: "\\275E";
    float: right;
    color: #DEC6FB;
}
/* 链接 */
a {
    color: #664D9D;
    font-weight: normal;
    border-bottom: 1px solid #664D9D;
}
strong::before {
    content: '\\300C';
}
/* 加粗 */
strong {
    color: #595959;
    font-weight: bold;
}
strong::after {
    content: '\\300D';
}
/* 斜体 */
em {
    font-style: normal;
    color: #595959;
    background: #F6EEFF;
}
/* 加粗斜体 */
em strong {
    color: #595959;
}
/* 删除线 */
del {
    color: #595959;
}
/* 分隔线 */
hr {
    height: 1px;
    padding: 0;
    border: none;
    border-top: 2px solid #d9b8fa;
}
/* 图片 */
img {
    border-radius: 6px;
    display: block;
    margin: 20px auto;
    object-fit: contain;
}
/* 图片描述文字 */
figcaption {
    display: block;
    font-size: 13px;
    color: #595959;
}
/* 行内代码 */
p code,
li code {
    color: #595959;
}
/* 代码块 */
.code-snippet__fix {
    background: #f7f7f7;
    border-radius: 2px;
}
/* 表格单元格 */
table tr th,
table tr td {
    font-size: 14px;
    color: #595959;
}
.footnotes {
    background: #F6EEFF;
    padding: 20px 20px 20px 20px;
    font-size: 14px;
    border: 0.8px solid #DEC6FB;
    border-radius: 6px;
    border: 1px solid #DEC6FB;
}
/* 脚注文字 */
.footnote-word {
    font-weight: normal;
    color: #595959;
}
/* 脚注上标 */
.footnote-ref {
    font-weight: normal;
    color: #595959;
}
/* 脚注链接样式 */
.footnote-item em {
    background: #F6EEFF;
    font-size: 14px;
    color: #595959;
    display: block;
}
/* "参考资料" */
.footnotes-sep:before {
    content: 'Reference';
    color: #595959;
    letter-spacing: 1px;
    border-bottom: 2px solid #DEC6FB;
    display: inline;
    background: linear-gradient(white 60%, #F6EEFF 40%);
    font-size: 20px;
}
/* 参考资料文字 */
.footnote-item p {
    color: #595959;
    font-weight: bold;
}
/* 参考资料解释 */
.footnote-item p em {
    font-weight: normal;
}
/* 滑动图片 */
.imageflow-img {
    display: inline-block;
    width: 100%;
    margin-bottom: 0;
}

3.在目录中安装依赖和打包


 npm install
 npm run build:weixin

4.在微信小程序使用后,会发现根样式无法生效需要在

文件中再把_root样式重新复制过来。另标题h1-h6,还是有一些小问题慢慢修复

图片

# 最后

简单说下引入外部css样式,美化MD解析页面;效果还是可以的,现在在小程序中阅读文章就舒服多了

但是别高兴,个人主体没有优化显示。审核不好过

图片