网站首页  词典首页

请输入您要查询的论文:

 

标题 基于Vue.js平台的Markdown标记语言插件的研究与实现
范文

    王辰 刘晓鑫 曹晓燕 王佳楠

    摘 要:随着Web技术的不断革新,ECMAScript標准应运而生,ECMAScript6版本通过加入模块和类,从而使得JavaScript可以通过模块化的开发方式开发各类插件。基于Vue.js技术,遵循插件化的原则,开发了符合Markdown标记语言标准的Web插件,具备了结构清晰、可移植性强、API(Application Programming Interface,应用程序编程接口)简明、与宿主程序低耦合。

    关键词:Vue.js;Markdown;插件化开发

    近几年Web前端技术飞速发展,前端技术从静态到动态、从前端到全端。[1]2009年发布的Node.js,Node.js可以运行JavaScript的服务端,它基于V8引擎。其允许JavaScript运行在其之上,这也意味着JavaScript不仅仅是运行在浏览器上的脚本语言,更能够作为服务端处理数据。NPM是Node的模块管理器,开发者可以通过NPM开发者能够模块化引入或者导出代码,大大增强了代码的复用性。

    随着CMAScript标准的诞生,前端的框架也层出不穷,例如Google的Angular.js、Facebook的React.js、以及当下发展最迅猛的Vue.js。Vue.js可以提供插件化编程方法,允许开发者在其基础上构建插件,提升代码质量,提高开发效率。

    1 Markdown标记语言

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。[2]Markdown的语法简洁明了、学习成本低,而且功能比纯文本丰富。[3]目前,一些主流的大型的在线编辑类的Web平台,例如一些大型博客以及大型CMS,都能够很好的支持Markdown标记语言。

    2 相关技术

    2.1 Vue.js框架

    Vue.js(通常称作Vue)是一个用于构建用户界面的开源渐进式JavaScript框架。与其他重量级框架不同的是,Vue遵循自底向顶增量开发的设计模式,Vue的核心库只关注视图层,它不仅易于上手,还便于与第三方库或既有项目进行整合。此外,Vue是一个功能强大的Web应用程序框架,能够为高级单页应用程序提供支持。[4]

    2.2 响应式设计

    响应式网页自身会根据用户行为和设备环境(系统平台、屏幕尺寸、屏幕方向等)进行相应的响应和调整,以达到最优体验。由各方面的具体实践,从而总结出响应式开发的基本要领,如弹性布局、响应式媒体、CSS媒体查询等,都能有效的提升用户体验度,无论用户使用笔记本电脑或平板电脑,页面会根据分辨率自动适应展示最优效果。总而言之,响应式页面应该有自动响应用户的设备环境的能力。

    响应式网页设计可以做到多终端兼容,而不是为每一个终端做一个特定版本,避免开发上的资源浪费,提高开发效率。

    3 插件功能结构图

    3.1 结构分析

    本插件主要拥有四大块:

    (1)Markdown文本渲染,拓展Markdown基础语法,丰富编辑操作。

    (2)快捷编辑工具栏开发,支持键盘快捷键与鼠标点击按钮编辑操作

    (3)功能性工具栏开发,支持阅读模式、单栏编辑、标题导航等个性化功能。

    (4)插件响应式,多终端自适应。

    其中上图所示解析器采用Markdown-it,它在初始化的时候需要做一些个性化定制,并装配语法拓展。遵循模块化的思想,将Markdown-it的初始化单独放入Markdown.js中,并利用export关键词将其对外开放。

    通过初始化与装配Markdoen-it实现对Markdown文本的渲染以及语法的拓展,核心代码如下:

    var markdown = require(markdown-it)({

    html: true, // Enable HTML tags in source

    xhtmlOut: true, // Use /

    breaks: true, // Convert \\n

    langPrefix: language-markdown, // CSS

    linkify: false, // 自动识别url

    typographer: true,

    quotes:“”‘

    });

    export default markdown

    3.2 单栏实时编辑模式

    传统的Markdown编辑器都是采用左右分栏式设计,根据左侧Markdown文本实时渲染右侧Html样式。但是不乏有些比较成熟的编辑器支持单栏目编辑,将Markdown与Html相结合,实时渲染Markdown文本,这样虽然增加了逻辑复杂性,但提升的用户体验度,本设计采用此种设计方式,实现实时渲染模式。

    单栏目实时编辑的核心在于需要把Html文本反编译为Markdown文本,将相关逻辑处理放入to-Markdown.js中,当用户开启单栏目编辑的时候,原始双栏编辑框会被隐藏,取而代之的是一个可编辑的div,因为div能够实时渲染样式,此时每次触发TAB键编译的时候,to-Markdown.js会将div中的Html代码反编译为Markdown文本。如下对上角标的渲染示例:

    // 上角标

    const coverterSup = {

    filter:sup,

    replacement:function(content){

    return ^ + content + ^;

    }

    }

    4 API设计

    4.1 插件引入方式

    插件化的软件要做到能够方便开发者使用,拥有多元化接入方式、简洁的接入步骤。本插件在详细设计阶段分析了多种接入方式,最终选择借助webpack进行打包,通过NPM进行发布进行发布,这样,最大限度的方便了开发者引入插件。

    4.2 @event事件响应

    当用户触发某些事件,如:输入文本、点击阅读模式、点击保存等,插件都会以回调函数的形式通知给开发者,方便开发者做进一步处理。预定义@event事件如下所示:

    预定义@event事件:

    name 方法名params 参数describe 描述

    changeString:value,String:reder编辑区发生变化的回调事件

    saveString:value,String:rederctrl + s 的回调事件

    ……

    5 结语

    本文基于Vue.js框架,遵循插件化开发原则,设计并实现了一套Markdown标记语言的Web插件,具有结构清晰、可移植性强、API简明、与宿主程序低耦合等特点。并在普通文本编辑器功能的基础上,拓展了Markdown的语法规则,支持表情、数学公式等,提供单双栏编辑、实时预览、沉浸式阅读、标题导航等个性化功能,且所有功能允许热插拔式接入插件,实现插件内部的解耦。

    参考文献:

    [1]朱二华.基于Vue.js的Web前端应用研究[J].科技与创新,2017(20):119-121.

    [2]王伟.标记语言及HTML和XML的比较分析[J].现代图书情报技术,2000,16(5):22-24.

    [3]胡亚明.基于标记语言的论文写作辅助系统[J].广东化工,2017,44(4):81.

    [4]麦冬,陈涛,梁宗湾.轻量级响应式框架Vue.js应用分析[J].信息与电脑(理论版),2017(7):58-59.

    作者简介:王辰(1988-),助教,研究方向:移动信息化。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/12 0:22:25