1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | zhLawEasyRead 0.2.0 下載:https://docs.google.com/open?id=0B7xXOygYUVM6OUdEaE9IRThGanc 例示:http://images.plurk.com/c27a95275c55a8ccc4f8e39704df1875.jpg 功能: 一、自動轉換條號、卷期等。 如「民法第一千零七十六條之一第一項第二款」將變為「民法§1076-1 I(2)」; 如「立法院公報第八十卷第二十二期第一0七頁」將變為「立法院公報vol. 80, no. 22, p.107」。 另外如條文中的「前條第一項第三款至第六款」則會變為「前條 I(3)至(6)」 二、將滑鼠移置被轉換後的文字,即會顯示原本的文字。 但如為可編輯之純文字框,如<textarea />,即無此效果。 三、將憲法與大法官釋字加上連結 除非原本即已是連結。 使用限制與臭蟲: 一、限Google瀏覽器,Chrome 18版或更新為佳。 二、互動式網頁如Gmail、Facebook和Plurk的幾乎無效果。 三、法規若有分章節款目,其中「款」與「目」亦會被轉換。 四、數個釋字或憲法條文並列時,僅有第一個會被轉換為連結。 五、以換行字元強制換行的排版網頁(如「全國法規資料庫」及司法院的裁判書查詢)中,可能會將數行併成過長的一行。 六、以<br />強制換行的字串尚不會被偵測到。 其他使用說明: 一、為方便複製至純文字編輯器如「記事本」,羅馬數字以英文組合而不以內碼表的符號顯示。「款」的圈圈數字亦同。 二、大陸地區與聯合國文件中,「項」與「款」的順序與台灣地區相反,但本外掛沒有考量此部分。 開發說明: Google說「需支付一次性的開發人員註冊費 US$5.00」,所以我(還)沒有放在「Chrome 線上應用程式商店」。 原本是以字串取代的方式去改變document.body.innerHTML(之前的0.1.8版即是如此),但發現有三個難處: 一、有(類似)onLoad function的網頁(如「全國法規資料庫」的首頁)即會無後續動作。 二、不知道要怎麼樣避開HTML tag的屬性中的字串。(如各釋字專頁)。 三、不知道怎麼偵測「是否已在<a />中」。 所以後來就改成用遞迴方式跑過整個HTML的DOM tree,抓出textNode來處理,但是這樣又會變成勢必得用document.createElement和appendChild等DOM方法,而不能用innerHTML。 因為可能有多個規則,所以每次遇到一個textNode,處理概念如下: 準備: [text] 經過第一個規則: [text1_1, element1_1, text1_2, element1_2, text1_3] 經過第二個規則: [text1_1, element1_1, text2_1, element2_1, text2_2, element1_2, text1_3] 最後則用新的node array代換掉原本的textNode。 |
Direct link: https://paste.plurk.com/show/998955