亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

實現(xiàn)文檔格式轉(zhuǎn)換的方法及裝置與流程

文檔序號:12363983閱讀:212來源:國知局
實現(xiàn)文檔格式轉(zhuǎn)換的方法及裝置與流程

本發(fā)明涉及計算機(jī)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種實現(xiàn)文檔格式轉(zhuǎn)換的方法及裝置。



背景技術(shù):

Markdown作為一種輕量級的標(biāo)記語言,具有很好的可讀性。例如,用一個“*”標(biāo)記包含一段文本就表示該段文本為斜體顯示,用兩個“*”標(biāo)記包含一段文本就表示該段文本為粗體顯示。

Markdown文檔采用純文本的格式編輯,可以采用普通的文本編輯器打開,兼容性極強(qiáng);也有一些專為Markdown設(shè)計的編輯器,可以直接在該專為Markdown設(shè)計的編輯器中預(yù)覽Markdown文檔的樣式。

在各種需要用戶編輯輸入的應(yīng)用場景中,Markdown文檔已經(jīng)被廣泛地使用。例如,應(yīng)用于github(版本控制系統(tǒng))上的項目說明文檔。Markdown文檔可以很方便地轉(zhuǎn)換成html格式文檔即網(wǎng)頁文檔以及pdf文檔等各種更直觀的格式文檔,當(dāng)然,有時候也會需要按照用戶的實際需求將word文檔、網(wǎng)頁文檔等具有更強(qiáng)的展現(xiàn)樣式的格式文檔轉(zhuǎn)換為Markdown文檔。

目前,將word文檔轉(zhuǎn)換為Markdown文檔的方式主要有如下兩種:

(1)把word文檔轉(zhuǎn)換成網(wǎng)頁文檔后,直接嵌入到Markdown文檔中,因為Markdown文檔支持原樣輸出內(nèi)嵌的網(wǎng)頁文檔。這種方式雖然可以最大程度的保留原word文檔的樣式效果,但無法對該Markdown文檔再次編輯。

(2)把word文檔轉(zhuǎn)換成網(wǎng)頁文檔后,再把轉(zhuǎn)換后的網(wǎng)頁文檔進(jìn)一步地轉(zhuǎn)換成Markdown文檔,這種方式保留了Markdown文檔的優(yōu)勢,即可以很方便地進(jìn)行再次編輯。但缺點(diǎn)是會丟失原網(wǎng)頁文檔的部分樣式效果,例如大字號的文本會變成標(biāo)題,字體顏色會丟失等,進(jìn)而使得原word文檔的展現(xiàn)樣式在轉(zhuǎn)換過程中的丟失。

因此,無論采用上述何種轉(zhuǎn)換方式,轉(zhuǎn)換后的文檔要么不可再次編輯,要么會引起原word文檔的展現(xiàn)樣式的丟失,使得Markdown文檔的應(yīng)用場景受到限制。



技術(shù)實現(xiàn)要素:

基于此,有必要提供一種能避免進(jìn)行Markdown文檔轉(zhuǎn)換中樣式效果的丟失,實現(xiàn)Markdown文檔中樣式效果的再次編輯的實現(xiàn)文檔格式轉(zhuǎn)換的方法。

此外,還有必要提供一種能避免進(jìn)行Markdown文檔轉(zhuǎn)換中樣式效果的丟失,實現(xiàn)Markdown文檔中樣式效果的再次編輯的實現(xiàn)文檔格式轉(zhuǎn)換的裝置。

為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案為:

一種實現(xiàn)文檔格式轉(zhuǎn)換的方法,包括:載入word文檔;將載入的所述word文檔轉(zhuǎn)換為網(wǎng)頁文檔;及將所述網(wǎng)頁文檔中的標(biāo)簽轉(zhuǎn)換為原生標(biāo)記,并根據(jù)預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將標(biāo)簽中的樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記,以得到Markdown文檔;其中,所述Markdown文檔中保留了所述網(wǎng)頁文檔中樣式屬性對應(yīng)的樣式效果。

一種實現(xiàn)文檔格式轉(zhuǎn)換的裝置,包括:word文檔加載模塊、word文檔轉(zhuǎn)換模塊及網(wǎng)頁文檔轉(zhuǎn)換模塊,其中,word文檔加載模塊用于載入word文檔;word文檔轉(zhuǎn)換模塊用于將載入的所述word文檔轉(zhuǎn)換為網(wǎng)頁文檔;及網(wǎng)頁文檔轉(zhuǎn)換模塊用于將所述網(wǎng)頁文檔中的標(biāo)簽轉(zhuǎn)換為原生標(biāo)記,并根據(jù)預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將標(biāo)簽中的樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記,以得到Markdown文檔;其中,所述Markdown文檔中保留了所述網(wǎng)頁文檔中樣式屬性對應(yīng)的樣式效果。

與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:

文檔進(jìn)行格式轉(zhuǎn)換中,在將word文檔轉(zhuǎn)換為網(wǎng)頁文檔之后,將該網(wǎng)頁文檔中的標(biāo)簽轉(zhuǎn)換為原生標(biāo)記,并根據(jù)預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將標(biāo)簽中的樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記,由此輸出轉(zhuǎn)換完成的Markdown文檔,由于word文檔至網(wǎng)頁文檔之間的轉(zhuǎn)換以及網(wǎng)頁文檔至Markdown文檔之間的轉(zhuǎn)換均未丟失其中的樣式效果,特征是網(wǎng)頁文檔的標(biāo)簽中樣式屬性均轉(zhuǎn)換為對應(yīng)的擴(kuò)展標(biāo)記,以將word文檔中的樣式效果原原本本地轉(zhuǎn)換至Markdown文檔中,使得轉(zhuǎn)換得的Markdown文檔既保留了原網(wǎng)頁文檔的樣式效果,又可以很方便地重復(fù)編輯,從而擴(kuò)大了Markdown文檔的應(yīng)用場景。

附圖說明

圖1為一實施例的實現(xiàn)文檔格式轉(zhuǎn)換的方法的流程圖;

圖2為另一實施例的實現(xiàn)文檔格式轉(zhuǎn)換的方法的流程圖;

圖3為圖1中網(wǎng)頁文檔轉(zhuǎn)換為Markdown文檔的方法的流程圖;

圖4為一個實施例中通過詞法解析器按照規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系對Markdown文檔進(jìn)行解析,以將Markdown文檔還原為網(wǎng)頁文檔的方法流程圖;

圖5為一實施例的實現(xiàn)文檔格式轉(zhuǎn)換的方法的流程圖;

圖6為一個實施例中實現(xiàn)文檔格式轉(zhuǎn)換的方法的應(yīng)用示意圖;

圖7為圖6中實現(xiàn)文檔格式轉(zhuǎn)換的方法的應(yīng)用示意圖;

圖8為一實施例的實現(xiàn)文檔格式轉(zhuǎn)換的系統(tǒng)的結(jié)構(gòu)框圖;

圖9為另一實施例的實現(xiàn)文檔格式轉(zhuǎn)換的系統(tǒng)的結(jié)構(gòu)框圖;

圖10為圖9中網(wǎng)頁文檔轉(zhuǎn)換模塊的結(jié)構(gòu)框圖;

圖11為另一實施例的實現(xiàn)文檔格式轉(zhuǎn)換的系統(tǒng)的Markdown文檔還原模塊的結(jié)構(gòu)框圖;

圖12為另一實施例的實現(xiàn)文檔格式轉(zhuǎn)換的系統(tǒng)的結(jié)構(gòu)框圖;

圖13為本發(fā)明實施例所提供的一種服務(wù)器的結(jié)構(gòu)示意圖。

具體實施方式

體現(xiàn)本發(fā)明特征與優(yōu)點(diǎn)的典型實施方式將在以下的說明中詳細(xì)敘述。應(yīng)理解的是本發(fā)明能夠在不同的實施方式上具有各種的變化,其皆不脫離本發(fā)明的范圍,且其中的說明及圖示在本質(zhì)上是當(dāng)作說明之用,而非用以限制本發(fā)明。

如前所述,由于Markdown文檔具有可以很方便地進(jìn)行再次編輯的優(yōu)勢,已經(jīng)被廣泛地應(yīng)用于各種需要用戶編輯輸入的應(yīng)用場景中。

但是,Markdown文檔也存在著一個缺點(diǎn),即在與具有更強(qiáng)的展現(xiàn)樣式的word文檔的轉(zhuǎn)換過程中往往會引起樣式屬性的丟失,使Markdown文檔的應(yīng)用場景受到限制。

因此,為了擴(kuò)大Markdown文檔的應(yīng)用場景,使轉(zhuǎn)換得的Markdown文檔不僅可再次編輯,同時可以保留原word文檔中的樣式效果,特提出了一種實現(xiàn)文檔格式轉(zhuǎn)換的方法。該方法可依賴于計算機(jī)程序,該計算機(jī)程序?qū)⑦\(yùn)行在服務(wù)器之上。

請參閱圖1,在一實施例中,一種實現(xiàn)文檔格式轉(zhuǎn)換的方法包括以下步驟:

步驟110,載入word文檔。

本實施例中,該word文檔的載入由一文件服務(wù)器執(zhí)行,以利于被載入的word文檔能夠在該文件服務(wù)器上完成后續(xù)的文檔格式轉(zhuǎn)換步驟。

其中,欲轉(zhuǎn)換為Markdown文檔的該word文檔包含有各種文本內(nèi)容以及該些文本內(nèi)容所對應(yīng)的展現(xiàn)樣式,該展現(xiàn)樣式均有對應(yīng)的樣式屬性,也就是說,該word文檔在進(jìn)行內(nèi)容顯示時所對應(yīng)的文檔頁面將顯示有各種文本內(nèi)容,并且該些文本內(nèi)容所對應(yīng)的展現(xiàn)樣式也將顯示于文檔頁面中。

步驟130,將載入的word文檔轉(zhuǎn)換為網(wǎng)頁文檔。

本實施例中,文件服務(wù)器中,觸發(fā)打開載入的word文檔,并將該word文檔轉(zhuǎn)換為網(wǎng)頁文檔。其中,word文檔的打開與轉(zhuǎn)換均可通過開源工具實現(xiàn),例如,該開源工具可以是開源的辦室軟件套件。

進(jìn)一步的,對于載入文件服務(wù)器的word文檔而言,可通過其所在的文件服務(wù)器調(diào)用跨平臺的開源的辦公室軟件套實現(xiàn)打開與轉(zhuǎn)換。

例如,該辦公室軟件套件可以是OpenOffice開源軟件,其可以在Windows、Linux、Mac OS等操作系統(tǒng)上執(zhí)行。該網(wǎng)頁文檔指的是可以采用純文本格式進(jìn)行編輯的文本形式,通過該網(wǎng)頁文檔即可實現(xiàn)相應(yīng)的網(wǎng)頁頁面顯示。

當(dāng)然,在其他實施例中,也可以通過本地計算機(jī)將載入的word文檔轉(zhuǎn)換為網(wǎng)頁文檔。例如,將本地計算機(jī)中保存的word文檔直接打開,并將word文檔另存為html格式的文檔類型,即網(wǎng)頁文檔,以此完成一次辦公室軟件套件的調(diào)用過程,然后再將轉(zhuǎn)換后的該網(wǎng)頁文檔上傳文件服務(wù)器,以在文件服務(wù)器上完成后續(xù)的Markdown文檔格式轉(zhuǎn)換步驟。

步驟150,將網(wǎng)頁文檔中的標(biāo)簽轉(zhuǎn)換為原生標(biāo)記,并根據(jù)預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將標(biāo)簽中的樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記,以得到Markdown文檔。

其中,Markdown文檔中保留了網(wǎng)頁文檔中樣式屬性對應(yīng)的樣式效果。

本實施例中,Markdown形式的原生語法中,預(yù)先對原生語法進(jìn)行擴(kuò)展,以得到樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,并進(jìn)行存儲,進(jìn)而得以在網(wǎng)頁文檔轉(zhuǎn)換為Markdown文檔的過程中通過原生Markdown語法所進(jìn)行的擴(kuò)展,達(dá)到保留網(wǎng)頁文檔中樣式效果的目的。

html語言是用于描述網(wǎng)頁文檔的一種標(biāo)記語言,標(biāo)簽是html語言中的基本單位,也就是說,網(wǎng)頁文檔包含有多個標(biāo)簽。標(biāo)簽分為多種類型,例如,類型可以為屬性類型、文本類型、表格類型等。標(biāo)簽中包含有各種不同作用的屬性,例如,用于定義網(wǎng)頁文檔的樣式效果的樣式屬性、用于定義網(wǎng)頁文檔的段落效果的段落屬性、用于定義網(wǎng)頁文檔的表格樣式的表格屬性等。

在本實施例中,具有樣式屬性的標(biāo)簽為屬性類型的標(biāo)簽,用于定義網(wǎng)頁文檔的樣式效果。被轉(zhuǎn)換為原生標(biāo)記的標(biāo)簽則包括具有其他屬性的屬性類型的標(biāo)簽以及所有其他類型的標(biāo)簽。而Markdown形式的原生語法中僅包含有具有其他屬性的屬性類型的標(biāo)簽以及所有其他類型的標(biāo)簽與原生標(biāo)記之間的對應(yīng)關(guān)系,其僅能夠?qū)?biāo)簽轉(zhuǎn)換為原生標(biāo)記,故而無法識別出原網(wǎng)頁文檔中的樣式效果。由此,對原生語法進(jìn)行擴(kuò)展,以形成樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,該對應(yīng)關(guān)系可為多個,并形成一標(biāo)記轉(zhuǎn)換包,使得在文檔格式轉(zhuǎn)換過程中,對網(wǎng)頁文檔中的所有標(biāo)簽進(jìn)行遍歷時,標(biāo)簽中的樣式屬性能夠被轉(zhuǎn)換為擴(kuò)展標(biāo)記。

由于原生語法中的原生標(biāo)記側(cè)重于文檔結(jié)構(gòu),并不支持具體的一些樣式展現(xiàn),通過對原生的Markdown語法進(jìn)行擴(kuò)展,形成與樣式屬性具有對應(yīng)關(guān)系的擴(kuò)展標(biāo)記,將樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記,將標(biāo)簽轉(zhuǎn)換為原生標(biāo)記,使得樣式屬性所定義的網(wǎng)頁文檔的樣式效果得以被保留,從而避免了現(xiàn)有技術(shù)中原網(wǎng)頁文檔的樣式丟失,進(jìn)而導(dǎo)致原word文檔的樣式丟失的問題。

請參閱圖2,在一實施例中,步驟150之前,實現(xiàn)文檔格式轉(zhuǎn)換的方法還包括以下步驟:

步驟210,為樣式屬性創(chuàng)建擴(kuò)展標(biāo)記。

本實施例中,樣式屬性用于定義網(wǎng)頁文檔的樣式效果,例如,所定義的樣式效果包括字體大小、字體顏色、背景顏色及圖片大小等。而被創(chuàng)建的擴(kuò)展標(biāo)記則是用于標(biāo)識網(wǎng)頁文檔的樣式效果。

例如,用于定義字體大小的樣式屬性為“<span style="font-size:16

px">文本</span>”,為該樣式屬性創(chuàng)建的擴(kuò)展標(biāo)記對應(yīng)地為“!字體大小 文本!”,由此形成該樣式屬性與創(chuàng)建的擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,通過該對應(yīng)關(guān)系使得Markdown文檔可以用來標(biāo)識網(wǎng)頁文檔的字體大小。

步驟230,建立樣式屬性與創(chuàng)建的擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,并保存該對應(yīng)關(guān)系。

本實施例中,保存了多個對應(yīng)關(guān)系,以用于在網(wǎng)頁文檔與Markdown文檔之間的轉(zhuǎn)換,即,對網(wǎng)頁文檔中標(biāo)簽所包含的樣式屬性進(jìn)行相應(yīng)的轉(zhuǎn)換,通過保存的對應(yīng)關(guān)系,使得由網(wǎng)頁文檔轉(zhuǎn)換得到的Markdown文檔中能夠保留與該樣式屬性所定義的相關(guān)內(nèi)容,即保留了網(wǎng)頁文檔中的樣式效果。其中,保存的多個對應(yīng)關(guān)系將以標(biāo)記轉(zhuǎn)換包的形式存在。

原生語法中,各種原生標(biāo)記并無法在Markdown文檔中標(biāo)識出網(wǎng)頁文檔的樣式效果,也就是說,樣式屬性與原生標(biāo)記之間并不存在對應(yīng)關(guān)系,而包含有樣式屬性的標(biāo)簽只有除去樣式屬性的剩余部分才能夠被轉(zhuǎn)換為原生標(biāo)記,使得樣式屬性丟失,導(dǎo)致網(wǎng)頁文檔的樣式效果丟失。例如,字號大于16的文本全部轉(zhuǎn)換成標(biāo)題,或者,設(shè)置了字體顏色的文本轉(zhuǎn)換成不帶字體顏色的文本。

通過形成的標(biāo)記轉(zhuǎn)換包使得擴(kuò)展后的原生語法不僅能夠?qū)?biāo)簽中的其他屬性轉(zhuǎn)換為原生標(biāo)記,還能夠?qū)?biāo)簽中的樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記。

其中,可以用于網(wǎng)頁文檔到Markdown文檔的轉(zhuǎn)換工具可以是pandoc、html2text、remark等,只要將形成的標(biāo)記轉(zhuǎn)換包擴(kuò)展至相應(yīng)的轉(zhuǎn)換工具中,即可形成保留有原網(wǎng)頁文檔的樣式效果的Markdown文檔。

當(dāng)然,在其他實施例中,標(biāo)記轉(zhuǎn)換包中可以既包含有原生標(biāo)記與標(biāo)簽的對應(yīng)關(guān)系,也包含有擴(kuò)展標(biāo)記與標(biāo)簽中樣式屬性的對應(yīng)關(guān)系,以節(jié)省研發(fā)所耗費(fèi)的成本,本發(fā)明并不以此為限。

請參閱圖3,在一實施例中,步驟150包括以下步驟:

步驟151,遍歷網(wǎng)頁文檔中的標(biāo)簽,判斷標(biāo)簽是否包含樣式屬性,若為是,則進(jìn)入步驟153,若為否,則進(jìn)入步驟155。

本實施例中,由于文本形式的網(wǎng)頁文檔通常包括一系列的標(biāo)簽,因此網(wǎng)頁文檔的轉(zhuǎn)換過程實際就是對網(wǎng)頁文檔中的標(biāo)簽進(jìn)行遍歷,并對每一標(biāo)簽及其中所包含的各種屬性進(jìn)行識別,進(jìn)而根據(jù)擴(kuò)展的原生語法完成對該標(biāo)簽的相應(yīng)轉(zhuǎn)換。

步驟153,按照預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記。

本實施例中,當(dāng)判斷到當(dāng)前遍歷的標(biāo)簽中包含有樣式屬性,例如,識別到標(biāo)簽的樣式屬性中包含用于定義字體大小的關(guān)鍵字font-size、用于定義字體顏色的關(guān)鍵字color、用于定義背景顏色的關(guān)鍵字background-color、用于定義圖片寬度的關(guān)鍵字width、以及用于定義圖片高度的關(guān)鍵字height等,則說明當(dāng)前遍歷的標(biāo)簽中包含有樣式屬性,進(jìn)而根據(jù)預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將該樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記。

步驟155,按照標(biāo)簽在原生語法中對應(yīng)的原生標(biāo)記將標(biāo)簽轉(zhuǎn)換為原生標(biāo)記。

本實施例中,當(dāng)判斷到當(dāng)前遍歷的標(biāo)簽中不包含有樣式屬性,例如,識別到的是標(biāo)簽的其他屬性,該其他屬性中包含用于定義文檔鏈接顏色的關(guān)鍵字body link、用于定義表格置左位置的關(guān)鍵字left、包含用于定義表格居中位置的關(guān)鍵字center等,或者,識別到的是用于定義斜體字效果的文本類型的標(biāo)簽、用于定義標(biāo)題的標(biāo)題類型的標(biāo)簽等,則說明當(dāng)前遍歷的標(biāo)簽中不包含有樣式屬性,進(jìn)而根據(jù)原生語法,按照標(biāo)簽與原生標(biāo)記之間的對應(yīng)關(guān)系,將該標(biāo)簽轉(zhuǎn)換為原生標(biāo)記。

進(jìn)一步地,標(biāo)簽與原生標(biāo)記之間的對應(yīng)關(guān)系實際上包含了屬性類型的標(biāo)簽的其他屬性與原生標(biāo)記之間的對應(yīng)關(guān)系、以及其他類型的標(biāo)簽與原生標(biāo)記之間的對應(yīng)關(guān)系,從而根據(jù)原生語法,按照屬性類型的標(biāo)簽的其他屬性與原生標(biāo)記之間的對應(yīng)關(guān)系,將屬性類型的標(biāo)簽的其他屬性轉(zhuǎn)換為原生標(biāo)記,按照其他類型的標(biāo)簽與原生標(biāo)記之間的對應(yīng)關(guān)系,將其他類型的標(biāo)簽轉(zhuǎn)換為原生標(biāo)記。

其中,標(biāo)簽與原生標(biāo)記之間的對應(yīng)關(guān)系,可以被保存在擴(kuò)展后的標(biāo)記轉(zhuǎn)換包中,也可以被保存于其他位置,在此不進(jìn)行限定。

步驟157,輸出包含轉(zhuǎn)換得到的原生標(biāo)記和擴(kuò)展標(biāo)記的Markdown文檔。

在一實施例中,步驟150之后,實現(xiàn)文檔格式轉(zhuǎn)換的方法還包括以下步驟:

通過詞法解析器按照規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系對Markdown文檔進(jìn)行解析,以將Markdown文檔還原為網(wǎng)頁文檔。

本實施例中,由于Markdown文檔雖然可以很方便地對原文檔進(jìn)行再次編輯,但是其并不能夠直接顯示出原文檔的樣式效果,因此,Markdown文檔通常還需要轉(zhuǎn)換成可以更直觀地顯示出原文檔的樣式效果的文檔,例如,該文檔可以是網(wǎng)頁文檔或者pdf等格式的其他文檔。

用于支持Markdown形式的原生語法的html格式轉(zhuǎn)換工具可以是支持Markdown語法擴(kuò)展的github flavored markdown、以及基于parboiled PEG詞法解析器的pegdown工具庫等,只要對該些轉(zhuǎn)換工具進(jìn)行擴(kuò)展,使其能夠同時識別原生標(biāo)記與擴(kuò)展標(biāo)記,即可相應(yīng)地還原出所需要的網(wǎng)頁文檔。

優(yōu)選地,本實施例中對pegdown工具庫進(jìn)行擴(kuò)展,以使擴(kuò)展的Markdown語法更好地兼容原生的Markdown語法,同時更好地支持語法之間的嵌套關(guān)系。

例如,欲轉(zhuǎn)換的Markdown文檔中保留了原網(wǎng)頁文檔中加粗顯示的文本塊中改變部分文字的顏色的樣式效果,或者,保留了原網(wǎng)頁文檔中黃色背景的文本塊中加大部分文字的字號的樣式效果,而通過詞法解析器按照規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系對該欲轉(zhuǎn)換的Markdown文檔進(jìn)行解析,還原出的網(wǎng)頁文檔中將顯示出上述被保留的樣式效果,從而使得原網(wǎng)頁文檔中的樣式效果得以保留,并且還原度很高,進(jìn)而擴(kuò)大了Markdown文檔的應(yīng)用場景。

請參閱圖4,在一實施例中,上述通過詞法解析器按照規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系對Markdown文檔進(jìn)行解析,以將Markdown文檔還原為網(wǎng)頁文檔的步驟包括:

步驟410,觸發(fā)運(yùn)行詞法解析器。

本實施例中,在文件服務(wù)器上運(yùn)行詞法解析器,通過詞法解析器接收字符串形式的Markdown文檔,以完成后續(xù)的文檔格式轉(zhuǎn)換的步驟。

步驟430,通過詞法解析器掃描Markdown文檔中的標(biāo)記,將標(biāo)記中的原生標(biāo)記轉(zhuǎn)換為標(biāo)簽,并根據(jù)規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系,將標(biāo)記中的擴(kuò)展標(biāo)記轉(zhuǎn)換為樣式屬性,以輸出還原的網(wǎng)頁文檔。

本實施例中,標(biāo)記包括原生標(biāo)記與擴(kuò)展標(biāo)記。由于接收到的Markdown文檔是字符串形式的,因此對Markdown文檔的轉(zhuǎn)換過程實際就是對Markdown文檔中標(biāo)記的掃描過程。

通過詞法解析器根據(jù)Markdown文檔的輸入次序依次掃描Markdown文檔中的標(biāo)記,在掃描的同時根據(jù)擴(kuò)展后的html語言的詞法規(guī)則識別出具有獨(dú)立意義的單詞,并產(chǎn)生相應(yīng)單詞的屬性字。其中,該單詞即為標(biāo)簽,該屬性字即為相應(yīng)標(biāo)簽中包含的各種屬性。

其中,擴(kuò)展后的html語言的詞法規(guī)則即為規(guī)則序列中所體現(xiàn)的擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系、以及原生標(biāo)記與標(biāo)簽之間的對應(yīng)關(guān)系。在掃描的同時根據(jù)該規(guī)則序列即可將將標(biāo)記中的擴(kuò)展標(biāo)記轉(zhuǎn)換為樣式屬性。

請參閱圖5,在一實施例中,上述通過詞法解析器按照規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系對Markdown文檔進(jìn)行解析,以將Markdown文檔還原為網(wǎng)頁文檔的步驟之前,實現(xiàn)文檔格式轉(zhuǎn)換的方法還包括以下步驟:

步驟510,創(chuàng)建包含了擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系的規(guī)則序列。

本實施例中,擴(kuò)展標(biāo)記用于標(biāo)識原網(wǎng)頁文檔的樣式效果,例如該樣式效果包括字體大小、字體顏色、背景顏色及圖片大小等。樣式屬性則是用于定義網(wǎng)頁文檔的樣式效果的。通過建立擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系,使得Markdown文檔中保留的原網(wǎng)頁文檔的樣式效果可以被高度地還原出來。

例如,擴(kuò)展標(biāo)記為“!字體大小 文本!”,與之有對應(yīng)關(guān)系的用于定義字體大小的樣式屬性被表示為“<span style="font-size:16px">文本</span>”,將擴(kuò)展標(biāo)記與樣式屬性同時包含于規(guī)則序列中,即形成包含了二者之間的對應(yīng)關(guān)系的規(guī)則序列,按照該規(guī)則序列即可還原出Markdown文檔中保留的原網(wǎng)頁文檔的字體大小。

步驟530,將規(guī)則序列傳入詞法解析器中,以更新詞法解析器。

本實施例中,將創(chuàng)建的規(guī)則序列傳入詞法解析器,使得更新后的詞法解析器可以將Markdown文檔中保留的原網(wǎng)頁文檔的樣式效果高度還原出來。

更新前的詞法解析器無法解析Markdown文檔中的擴(kuò)展標(biāo)記,也就是說,包含了樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系的規(guī)則序列并未被傳入詞法解析器中,即使是擴(kuò)展標(biāo)記也只能被轉(zhuǎn)換為不具有樣式屬性的標(biāo)簽,甚至于無法解析,使得Markdown文檔中保留的原網(wǎng)頁文檔的樣式效果丟失而無法被還原出來。例如,保留了字號等于16的樣式效果的Markdown文本全部被還原成不帶字號的網(wǎng)頁文檔,或者,保留了字體顏色的樣式效果的Markdown文本被還原成不帶字體顏色的網(wǎng)頁文檔。

通過更新的詞法解析器使得擴(kuò)展后的Markdown語法能夠被解析,以識別出標(biāo)簽中的樣式屬性,將原生標(biāo)記轉(zhuǎn)換為標(biāo)簽,并將擴(kuò)展標(biāo)記轉(zhuǎn)換為標(biāo)簽中的樣式屬性,使得Markdown文檔中保留的原網(wǎng)頁文檔的樣式效果可以被高度地還原出來,從而徹底解決了Markdown文檔的應(yīng)用場景受限制的問題,既保留了轉(zhuǎn)換之前原word文檔中的樣式效果,同時可以很方便地重復(fù)編輯。

請參閱圖6至圖7,下面結(jié)合一個具體的實施例來詳細(xì)闡述上述實現(xiàn)文檔格式轉(zhuǎn)換的基本流程,具體包括:

步驟610,通過文件服務(wù)器調(diào)用OpenOffice開源軟件將加載的word文檔轉(zhuǎn)換為網(wǎng)頁文檔。

步驟630,通過使用remark轉(zhuǎn)換工具將網(wǎng)頁文檔轉(zhuǎn)換為Markdown文檔。

本實施例中,轉(zhuǎn)換過程具體包括以下步驟:

步驟631,通過遍歷網(wǎng)頁文檔中的所有標(biāo)簽,判斷當(dāng)前標(biāo)簽中是否包含有樣式屬性。

步驟633,如果未包含樣式屬性,則按照當(dāng)前標(biāo)簽與原生標(biāo)記之間的對應(yīng)關(guān)系,將該當(dāng)前標(biāo)簽轉(zhuǎn)換為相應(yīng)的原生標(biāo)記。

步驟635,如果包含樣式屬性,則按照當(dāng)前標(biāo)簽的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將該當(dāng)前標(biāo)簽的樣式屬性轉(zhuǎn)換為相應(yīng)的擴(kuò)展標(biāo)記。進(jìn)一步地,首先判斷當(dāng)前標(biāo)簽所包含的樣式屬性是否有定義字體大小的關(guān)鍵字font-size,若為是,則將當(dāng)前標(biāo)簽的樣式屬性轉(zhuǎn)換為標(biāo)識字體大小的擴(kuò)展標(biāo)記“!字體大小 文本!”。若為否,則繼續(xù)判斷當(dāng)前標(biāo)簽所包含的樣式屬性是否有定義字體顏色的關(guān)鍵字color,若為是,則將當(dāng)前標(biāo)簽的樣式屬性轉(zhuǎn)換為標(biāo)識字體顏色的擴(kuò)展標(biāo)記“!!#十六位RGB顏色值 文本!!”。若為否,則繼續(xù)判斷當(dāng)前標(biāo)簽所包含的樣式屬性是否有定義背景顏色的關(guān)鍵字background-color,則將當(dāng)前標(biāo)簽的樣式屬性轉(zhuǎn)換為標(biāo)識背景顏色的擴(kuò)展標(biāo)記“!!!#十六位RGB顏色值 文本!!!”。

步驟637,直至完成對所有類型的標(biāo)簽的遍歷,即完成相應(yīng)的轉(zhuǎn)換過程。

步驟650,通過使用pegdown工具庫將Markdown文檔還原為網(wǎng)頁文檔。

本實施例中,該Markdown文檔還原為網(wǎng)頁文檔的還原過程實際上是網(wǎng)頁文檔轉(zhuǎn)換為Markdown文檔的轉(zhuǎn)換過程的逆過程。該還原過程具體包括以下步驟:

通過依序掃描Markdown文檔中的所有標(biāo)記,判斷當(dāng)前標(biāo)記中是否包含有擴(kuò)展標(biāo)記。

如果未包含擴(kuò)展標(biāo)記,則按照原生標(biāo)記與標(biāo)簽之間的對應(yīng)關(guān)系,將該當(dāng)前標(biāo)記轉(zhuǎn)換為相應(yīng)的標(biāo)簽。

如果包含擴(kuò)展標(biāo)記,則按照擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系,將該當(dāng)前標(biāo)記轉(zhuǎn)換為相應(yīng)的樣式屬性。進(jìn)一步地,首先判斷當(dāng)前標(biāo)記所包含的擴(kuò)展標(biāo)記是否為標(biāo)識字體大小的“!字體大小 文本!”,若為是,則將當(dāng)前標(biāo)記轉(zhuǎn)換為定義字體大小的樣式屬性“<span style="font-size:16px">文本</span>”。若為否,則繼續(xù)判斷當(dāng)前標(biāo)記所包含的擴(kuò)展標(biāo)記是否為標(biāo)識字體顏色的“!!#十六位RGB顏色值 文本!!”,若為是,則將當(dāng)前標(biāo)記轉(zhuǎn)換為定義字體大小的樣式屬性“<span style="color:#fffff">文本</span>”。若為否,則繼續(xù)判斷當(dāng)前標(biāo)記所包含的擴(kuò)展標(biāo)記是否為標(biāo)識背景顏色的“!!!#十六位RGB顏色值 文本!!!”,則將當(dāng)前標(biāo)記轉(zhuǎn)換為定義字體大小的樣式屬性“<span style="background-color:#fffff">文本</span>”。

直至完成對所有標(biāo)記的掃描,即完成相應(yīng)的還原過程。

請參閱圖8,在一實施例中,一種實現(xiàn)文檔格式轉(zhuǎn)換的裝置包括:word文檔加載模塊710、word文檔轉(zhuǎn)換模塊730及網(wǎng)頁文檔轉(zhuǎn)換模塊750,其中:

本實施例中,word文檔加載模塊710,用于載入word文檔。

word文檔轉(zhuǎn)換模塊730,用于將載入的word文檔轉(zhuǎn)換為網(wǎng)頁文檔。

網(wǎng)頁文檔轉(zhuǎn)換模塊750,用于將網(wǎng)頁文檔中的標(biāo)簽轉(zhuǎn)換為原生標(biāo)記,并根據(jù)預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將標(biāo)簽中的樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記,以得到Markdown文檔。

其中,該Markdown文檔中保留了網(wǎng)頁文檔中樣式屬性對應(yīng)的樣式效果。

請參閱圖9,在一實施例中,實現(xiàn)文檔格式轉(zhuǎn)換的裝置還包括:擴(kuò)展標(biāo)記創(chuàng)建模塊810及轉(zhuǎn)換包形成模塊830,其中:

本實施例中,擴(kuò)展標(biāo)記創(chuàng)建模塊810,用于為樣式屬性創(chuàng)建擴(kuò)展標(biāo)記。

轉(zhuǎn)換包形成模塊830,用于建立樣式屬性與創(chuàng)建的擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,并保存該對應(yīng)關(guān)系。

請參閱圖10,在一實施例中,網(wǎng)頁文檔轉(zhuǎn)換模塊750包括:標(biāo)簽遍歷單元751、樣式屬性轉(zhuǎn)換單元753、標(biāo)簽轉(zhuǎn)換單元755及文檔輸出單元757,其中:

本實施例中,標(biāo)簽遍歷單元751,用于遍歷網(wǎng)頁文檔中的標(biāo)簽判斷標(biāo)簽中是否包含樣式屬性,若為是,則通知樣式屬性轉(zhuǎn)換單元753,若為否,則通知標(biāo)簽轉(zhuǎn)換單元755。

樣式屬性轉(zhuǎn)換單元753,用于按照預(yù)存的樣式屬性與擴(kuò)展標(biāo)記之間的對應(yīng)關(guān)系,將樣式屬性轉(zhuǎn)換為擴(kuò)展標(biāo)記。

標(biāo)簽轉(zhuǎn)換單元755,用于按照標(biāo)簽在原生語法中對應(yīng)的原生標(biāo)記將標(biāo)簽轉(zhuǎn)換為原生標(biāo)記。

文檔輸出單元757,用于輸出包含轉(zhuǎn)換得到的原生標(biāo)記和擴(kuò)展標(biāo)記的Markdown文檔。

在一實施例中,實現(xiàn)文檔格式轉(zhuǎn)換的裝置還包括:Markdown文檔還原模塊,其中:

本實施例中,Markdown文檔還原模塊,用于通過詞法解析器按照規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系對Markdown文檔進(jìn)行解析,以將所述Markdown文檔還原為網(wǎng)頁文檔。

請參閱圖11,在一實施例中,Markdown文檔還原模塊910包括:詞法解析器運(yùn)行單元911及標(biāo)記掃描單元913,其中:

本實施例中,詞法解析器運(yùn)行單元911,用于觸發(fā)運(yùn)行詞法解析器。

標(biāo)記掃描單元913,用于通過詞法解析器掃描Markdown文檔中的標(biāo)記,將標(biāo)記中的原生標(biāo)記轉(zhuǎn)換為標(biāo)簽,并根據(jù)規(guī)則序列中擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系將標(biāo)記中的擴(kuò)展標(biāo)記轉(zhuǎn)換為樣式屬性,以輸出還原的網(wǎng)頁文檔。

請參閱圖12,在一實施例中,實現(xiàn)文檔格式轉(zhuǎn)換的裝置還包括:規(guī)則序列創(chuàng)建模塊1010及詞法解析器更新模塊1030,其中:

本實施例中,規(guī)則序列創(chuàng)建模塊1010,用于創(chuàng)建包含了擴(kuò)展標(biāo)記與樣式屬性之間的對應(yīng)關(guān)系的規(guī)則序列。

詞法解析器更新模塊1030,用于將規(guī)則序列傳入詞法解析器中,以更新詞法解析器。

請參閱圖13,圖13是本發(fā)明實施例提供的一種服務(wù)器1200的結(jié)構(gòu)示意圖。上述實施例中所述的由文件服務(wù)器所執(zhí)行的步驟均可以基于該圖中所示的服務(wù)器的結(jié)構(gòu)。

該服務(wù)器1200可因配置或者性能的不同而產(chǎn)生較大的差異,其包括:電源1210、接口1230、至少一存儲介質(zhì)1250、以及至少一中央處理器(CPU ,Central Processing Units)1270。

具體地,電源1210用于為服務(wù)器1200上的各硬件設(shè)備提供工作電壓。

接口1230包括至少一有線或無線網(wǎng)絡(luò)接口1231、至少一串并轉(zhuǎn)換接口1233、至少一輸入輸出接口1235以及至少一USB接口1237等,用于與外部設(shè)備通信。

存儲介質(zhì)1250作為資源存儲的載體,可以是隨機(jī)存儲介質(zhì)、磁盤或者光盤等,其上所存儲的資源包括操作系統(tǒng)1251、應(yīng)用程序1253及數(shù)據(jù)1255等,存儲方式可以是短暫存儲或者永久存儲。其中,操作系統(tǒng)1251用于管理與控制服務(wù)器1200上的各硬件設(shè)備以及應(yīng)用程序1253,以實現(xiàn)中央處理器1270對海量數(shù)據(jù)1255的計算與處理,其可以是Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。應(yīng)用程序1253是基于操作系統(tǒng)1251之上完成至少一項特定工作的計算機(jī)程序,其可以包括至少一模塊(圖示未示出),每個模塊都可以分別包含有對服務(wù)器1200的一系列操作指令。數(shù)據(jù)1255可以是存儲于磁盤中的word文檔、網(wǎng)頁文檔、圖片等等。

中央處理器1270可以包括一個或多個以上的處理器,并設(shè)置為通過總線與存儲介質(zhì)1250通信,用于計算與處理存儲介質(zhì)1250中的海量數(shù)據(jù)1255。

通過中央處理器1270讀取存儲介質(zhì)1250中存儲的一系列操作指令,并基于存儲介質(zhì)1250上的操作系統(tǒng)1251在服務(wù)器1200上執(zhí)行,進(jìn)而使得上述實施例的全部或者部分步驟可以通過在服務(wù)器上運(yùn)行相關(guān)的計算機(jī)程序來完成。

上述內(nèi)容,僅為本發(fā)明的較佳實施例,并非用于限制本發(fā)明的實施方案,本領(lǐng)域普通技術(shù)人員根據(jù)本發(fā)明的主要構(gòu)思和精神,可以十分方便地進(jìn)行相應(yīng)的變通或修改,故本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書所要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1