日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

電子書轉(zhuǎn)mdx

 弘護(hù)正法 2019-10-18

   rayman老大發(fā)明的mdx格式,不僅是一種詞典格式,用來(lái)做手機(jī)上的電子書同樣很有優(yōu)勢(shì)。它有以下幾個(gè)優(yōu)點(diǎn),一是壓縮率高,一般只有純文本文件的一半或更小;二是支持html的標(biāo)簽,可以實(shí)現(xiàn)字體樣式、圖片、鏈接等效果;三是即使文件很大,打開的速度仍然很快,它并不是把整個(gè)文件都加入到內(nèi)存里,可以節(jié)省內(nèi)存。另外,他自帶的收藏功能當(dāng)作書簽用,也很方便。

我之前將幾本電子書轉(zhuǎn)成了mdx格式,下面將我的一些方法分享一下,希望沒(méi)有制作過(guò)mdx的人可以從中學(xué)會(huì),把自己喜歡的電子書轉(zhuǎn)成mdx,與大家分享。

  這里說(shuō)的電子書主指基于html即網(wǎng)頁(yè)的電子書,一般是chmexe格式。


  首先第一步是把電子書反編譯,就是還原出其中的網(wǎng)頁(yè)、圖片等內(nèi)容。建議盡量從chm格式的電子書來(lái)轉(zhuǎn),因?yàn)檫@種電子書反編譯比較容易,用一個(gè)chmFBY就可以了,很快,而且反編譯出來(lái)的內(nèi)容很完整(其他反編譯chm的軟件還有很多,比如老馬的unEBook,制作chm的軟件往往也自帶反編譯的功能,如easychm,htm2chm)。exe格式的電子書由各種不同的軟件做成,要找專門的反編譯工具,老馬的minikillbook雖然可以從所有基于網(wǎng)頁(yè)的電子書轉(zhuǎn)出網(wǎng)頁(yè)或文本,但速度要慢很多,文件很大的時(shí)候還可能不太穩(wěn)定,可以作為備用。
  轉(zhuǎn)出來(lái)的內(nèi)容一般包括網(wǎng)頁(yè)(htm、html)、圖片(gifjpg、png、ico等格式)、css樣式表、jsjavascript)文件等。圖片很多時(shí)候是都是背景或是效果,可以將它們?nèi)縿h掉。如果反編譯出來(lái)的文件有多個(gè)子文件夾,可以使用windows的搜索,比如輸入*.gif將所有的gif圖片搜索出來(lái),然后全選、刪除。如果轉(zhuǎn)出來(lái)的文件很多,有數(shù)千甚至上萬(wàn)個(gè)文件的話,可以將下面幾行:
@echo off
rem 正在搜索...6 I' q0 x8 Y8 J% f
rem 刪除文件
for /f "delims=" %%i in ('dir /b /a-d /s "*.gif"') do del %%i
rem 刪除完畢6 ^$ q/ U5 ~* U  A
pause. y' q5 b, g- b
復(fù)制到一個(gè)新建的文本文件,另存為.bat(批處理文件)格式,然后把這個(gè)bat文件放到要處理的文件夾中雙擊運(yùn)行即可,它可以刪除該文件夾及子文件夾中所有的gif文件。jpgpng、ico、cssjs文件可以用同樣的方法刪除。如果是網(wǎng)頁(yè)制作高手的話,可以把css留著,做些改編運(yùn)用,mdict是支持css的。我不是高手,所以沒(méi)這方面的經(jīng)驗(yàn)。
  如果圖片是書中的內(nèi)容,而你想留著的話,可以把這些圖片保存到一個(gè)文件夾里。后來(lái)編輯mdx源文件的時(shí)候,要注意圖片路徑與實(shí)際位置的一致。如果圖片分散在很多的子文件夾,而且又有重名的話,處理起來(lái)會(huì)很麻煩。


  接下來(lái)是處理網(wǎng)頁(yè)文件,如果網(wǎng)頁(yè)都在同一個(gè)文件夾,我一般是將目錄(一般是index.htm000.htm)單獨(dú)編輯,留下其中的鏈接,其他的全部用老馬TextForever中的html>txt轉(zhuǎn)為文本文件。這樣做網(wǎng)頁(yè)中的鏈接、表格、圖片都會(huì)丟失,如果想保留這些東西的話,可以在用TextForever之前,用Ultrareplace5.02(支持正則、多項(xiàng)同時(shí)、批量替換)將其中的<a href="…"></a>、<img src="…"><table …>、<tr><td>、</td>、</table>全都轉(zhuǎn)成諸如####a href="…"&&&&的樣子,用TextForever將網(wǎng)頁(yè)轉(zhuǎn)成文本之后,再把其中的####替換成<、&&&&替換成>
  網(wǎng)頁(yè)全部轉(zhuǎn)成文本之后,接著用TextForevr的文件合并功能,將轉(zhuǎn)出的文本文件合并成一個(gè)文件,注意要選中在文件內(nèi)容前加注文件名這個(gè)選項(xiàng)。
  接下來(lái)是編輯mdx源文本。源文件的格式很簡(jiǎn)單,就是形如:


條目
內(nèi)容……
……
……
</>"
條目
內(nèi)容……
……"
……"
</>
  其中的條目就是顯示在索引里的名字,不會(huì)顯示在正文中。內(nèi)容里支持支持html標(biāo)簽(具體支持到什么程度我不清楚,我都是用最簡(jiǎn)單的),比如
“<br>”是換行;
“<a href="entry://鏈接到的條目">顯示的內(nèi)容</a> ”是鏈接;
“<h1>…</h1>”之類是標(biāo)題,一共有六級(jí)標(biāo)題,<h1>最大;
“<font color=blue size=5>…</font>”是字體樣式;
“<p align=center>…</p>”是定義段落的顯示位置。
有一點(diǎn)要說(shuō)明的是連續(xù)的半角空格在顯示時(shí)只會(huì)顯示一個(gè),文本中的換行在顯示時(shí)也是一個(gè)半角空格,所以要注意加<br>。
  不要用記事本或word,因?yàn)槲募源簏c(diǎn)它們就會(huì)罷工,更重要的是它們不支持正則表達(dá)式。你可以用UltraEdit、Notepad++、Editplus、EmEditor(我常用這個(gè)),還有一個(gè)專注于查找替換的文本工具EditPad Pro,與PowerGrepwindows下最強(qiáng)大的文本查找處理工具)是同一家公司出品。關(guān)于正則表達(dá)式,你可看一篇名為《正則表達(dá)式30分鐘入門教程》的文章,說(shuō)是入門,其實(shí)所有的功能基本都在里面了,入門指的是熟悉規(guī)則,提高則需要熟用生巧。需要注意的是,各個(gè)文本編輯工具中的正則表達(dá)式版本并不相同(UltraEdit自身就提供了三種版本),使用的時(shí)候要留心,在這些工具中,如果你在查找替換對(duì)話框里選中了正則表達(dá)式這個(gè)選項(xiàng)的話,查找框的后面有一個(gè)向下的小箭頭,點(diǎn)一下,就會(huì)列出正則表達(dá)式的元字符。EmEditor中的正則表達(dá)式與30分鐘教程里介紹的基本是一致的。以上提到的這些文本編輯工具,都支持較大的文件,200M應(yīng)該都是沒(méi)有問(wèn)題的,如果很大的話,可以使用終極工具PowerGrep,它不光可以替換,還可以收集數(shù)據(jù)、分割文件,據(jù)說(shuō)支持上G的文件,雖然我沒(méi)試過(guò),但我信。它的價(jià)值還體現(xiàn)的它的價(jià)格上,要200多美元,注意是美元!不過(guò)網(wǎng)上有破解的,你可以搜“PowerGREP.v4.2.0.retail-iOTA”,下載后解壓,直接運(yùn)行里面的安裝程序就行,它本身就是破解的,你不用再輸序列號(hào),或是運(yùn)行keygen之類的東西。它是全英文的,目前還沒(méi)有漢化版,我是用靈格斯摸索著用的。
  合并后的文件中會(huì)有很多空行,在EmEditor中你可以用“^\s*(<br>)?\n”替換為“”(替換框里什么都不填)將空行去掉,你可用“\n”替換為“<br>\n”在所有的段落結(jié)尾加<br>,這兩個(gè)步驟不分先后。然后,你可用“\n\s*”替換為“\n  把所有段落替換為首行縮進(jìn)兩個(gè)中文字符(這兩個(gè)中文空格一般輸不出來(lái),你可以找個(gè)地方復(fù)制過(guò)來(lái))。然后你可以把合并文件時(shí)插入的文件名,比如  D\chm\001.txt<br>”(經(jīng)過(guò)前兩步多了段前空格和<br>)之類用  D\\chm\\(.+?)\.txt<br>”替換為“</>\n史記\1”,替換出來(lái)的結(jié)果是:
</>
史記001 
  以上提到的那些編輯工具都支持錄制宏,就是把步驟錄下來(lái),以后直接使用??梢园焉厦鎺讉€(gè)步驟錄下來(lái),編輯另外一本書的時(shí)候直接調(diào)用。(步驟必須是一模一樣的才行,比如上面的替換名字,必須名字一樣,這個(gè)宏才有用。)


  替換后將第一個(gè)</>刪掉,然后在最后一行加一個(gè)</></>要在獨(dú)立的一行,前后不能有其他東西。把單獨(dú)編輯好的目錄復(fù)制到這個(gè)文本里(你可以找一個(gè)有目錄的mdx,在電腦上用mdict查看,右鍵查看源代碼就能看到它的源文件),一般粘貼在最前面,它的最后也要有一個(gè)</>。這樣一個(gè)mdx源文本就編輯好了,保存之后,用mdxbuilder編譯就行了。這個(gè)過(guò)程很快,1M、2M的源文本就是一貶眼的事,200M的源文本也只要1-2分鐘。注意要在mdxbuilder中選擇對(duì)應(yīng)的編碼類型,否則編譯出來(lái)的會(huì)是亂碼,源文本的編碼類型在文本編輯器最下面的狀態(tài)欄里可以看到,一般是GB2312UTF-8無(wú)簽名,在mdxbuilder中分別選GBKUTF-8。

  如果反編譯出來(lái)的網(wǎng)頁(yè)在很多個(gè)子文夾中,并且都是001.htm,002.htm……這樣的樣子,可以用批量重命名的工具,在這些文件名前面加上其文件夾的名字。推薦使用靈者更名(RenGod5.03,這個(gè)工具漂亮、直觀、功能強(qiáng)大,比論壇里介紹的菲菲更名要好用。(這是一個(gè)年紀(jì)不大的男孩寫的軟件,到5.03的時(shí)候,源代碼丟了,他正在重寫。)
批量命名之后,因?yàn)?/font>Textforever的合并不支持子文件夾,可以把
md htm
for /r %%i in (*.htm*) do move "%%i" "htm\%%~nxi"
另存為bat批處理文件,放在文件夾下運(yùn)行,可以把文件夾及其子文件夾中所有的htm文件,轉(zhuǎn)移到一個(gè)名為htm的文件夾中。然后用TextForever轉(zhuǎn)化成文本,合并,再用文本編輯器編輯。

對(duì)于己有的mdx文件,如果想要修改的,可以用GetDict轉(zhuǎn)出源文本,編輯之后,用mdxbuilder重新編譯。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多