999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Vue.js平臺的Markdown標記語言插件的研究與實現

2018-05-14 04:46:49王辰劉曉鑫曹曉燕王佳楠
科技風 2018年35期

王辰 劉曉鑫 曹曉燕 王佳楠

摘 要:隨著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-),助教,研究方向:移動信息化。

主站蜘蛛池模板: 中文字幕在线看| 亚洲婷婷六月| 99精品这里只有精品高清视频| 国产v欧美v日韩v综合精品| 成人午夜免费观看| 精品综合久久久久久97| 小说区 亚洲 自拍 另类| 亚洲无码精彩视频在线观看| 国产成人AV男人的天堂| 呦视频在线一区二区三区| 亚洲欧美一区二区三区麻豆| 99久久精品视香蕉蕉| 人妻21p大胆| 91麻豆精品视频| 国产9191精品免费观看| 狠狠色丁香婷婷综合| 日本亚洲最大的色成网站www| yjizz国产在线视频网| 午夜精品久久久久久久2023| 国模在线视频一区二区三区| 欧美日韩成人在线观看| 日本午夜三级| 妇女自拍偷自拍亚洲精品| 亚洲天堂免费观看| 中文字幕人妻av一区二区| aaa国产一级毛片| 亚洲精品久综合蜜| 国产美女精品一区二区| 国产欧美日韩另类精彩视频| 国产丝袜啪啪| 中文字幕亚洲精品2页| 日本一区二区不卡视频| 内射人妻无套中出无码| 亚洲中文精品人人永久免费| 亚洲第一中文字幕| 中文字幕亚洲综久久2021| 欧美精品导航| 欧美日韩另类国产| 国产在线观看一区二区三区| 亚洲综合精品第一页| 色悠久久久久久久综合网伊人| 丝袜美女被出水视频一区| 尤物精品视频一区二区三区| 日本道中文字幕久久一区| 国产色婷婷| 91po国产在线精品免费观看| 欧美另类图片视频无弹跳第一页| 久久久国产精品无码专区| 国产男女免费视频| 成年午夜精品久久精品| 亚洲日韩AV无码一区二区三区人| 国产人免费人成免费视频| 99激情网| 亚洲成aⅴ人在线观看| 亚洲第一黄色网| 在线国产欧美| 国产人免费人成免费视频| 一级毛片a女人刺激视频免费| 成人久久18免费网站| 国内精品久久人妻无码大片高| 国产人在线成免费视频| 四虎国产在线观看| 亚洲人成电影在线播放| 午夜在线不卡| 成人精品亚洲| 亚洲69视频| 天天摸夜夜操| 成人午夜免费观看| 日本一区二区不卡视频| 亚洲第一页在线观看| 黄色一级视频欧美| 精品超清无码视频在线观看| 黄色网址免费在线| 日韩国产综合精选| 午夜久久影院| 亚洲成AV人手机在线观看网站| 青青草国产一区二区三区| 欧美97欧美综合色伦图 | 永久在线精品免费视频观看| 无码一区中文字幕| 精品一区二区三区中文字幕| 国产精品观看视频免费完整版|