從Roodo樂多日誌Blog搬家到wordpress之後,寫了一段javascript把原本在roodo的頁面各別導向wordpress的對應頁面。包含:
- 首頁
導到新blog(wordpress)的首頁,這最基本的。
- 分類頁
原roodo的分類頁連結,會轉換到新blog(wordpress)的對應分類上。
(點我試試: http://blog.roodo.com/dabinn/archives/cat_157035.html)
- 文章頁
原roodo文章連結,會轉換到新blog(wordpress)對應的文章。
(點我試試: http://blog.roodo.com/dabinn/archives/28375293.html)
作法 ∞
Roodo blog不知為何沒有防堵javascript,我就把javascript插在日誌基本管理
的簡介
那一欄上
網址的規則:Roodo ∞
從網頁標題去判斷
先看有沒文章標題,樂多的文章網頁標題會長這樣:
– 簡單切換Android market到美國地區方法 (不需root) - Dabinn的筆記 - 樂多日誌
– 無線影音傳輸 - Dabinn的筆記 - 樂多日誌
如果沒有,那有可能是分類或首頁,分類的網頁標題長這樣:
– Dabinn的筆記:週邊3C分類文章簡文 - 樂多日誌
再沒有的話,那應該就是在首頁了,首頁的標題是這樣
– Dabinn的筆記 - 樂多日誌
網址的規則:Wordpress ∞
分類頁:
– {{!http://網址/category/分類名稱!}}
文章頁要看Wordpress設定,我的是
– {{!http://網址/空格及符號經過轉換的文章名稱!}}
WordPress文章頁網址的處理 ∞
WordPress文章的網址不能直接拿文章標題來用,必需作一些轉換才行
我找不到wordpress的網址規則的說明
只好自己試了試,規則大致上是這樣
- 空格、句點(.)和加號(+),取代為減號(-)
- 其它符號都刪掉 (底線(_)符號不確定,暫先保留)
- 英文轉為全小寫 (不轉也沒關係)
- 字串長度限制:過長的標題會被截掉,這邊不太清楚他的邏輯,暫不處理
– ndsl-nds-lite-麥克風-mic-microphone-壞了壞掉故障失效沒反應問題-修
<– 這被截掉
– The problem with Logitech SetPoint 5.20/6.00 (APP auto detection not working properly)
<– 這更長反而可以
這邊用javascript作比較麻煩的是,因為javscript不認得中文,用正規表達式來搜尋\W(字母以外的其它符號)進行取代的話,會連中文都一起刪光光。
所以就大致給了他一段的CJK中日韓字集的範圍,叫他略過
\u2E80-\u9FFF \uAC00-\uD7FF \uF900-\uFFFD
Code ∞
寫好的JS在這,歡迎自行修改使用。
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 |
<span id="msgdisp" style="color:red; font-weight:1000;"> <a href=" http://blog.dabinn.net/">http://blog.dabinn.net/</a></span> <script> /* redirect to new blog */ var newBlog = "http://blog.dabinn.net/"; var timeToGo = 10; var newUrl = ""; var msgdisp = document.getElementById("msgdisp"); var title = document.title; var article = title.replace(/(.+) - Dabinn的筆記.*/, "$1"); if (article != title) { //This is an artitle page //deal with wordpress format newUrl = article.replace(/[ \.\+]+/g, "-").replace(/[^0-9A-Z_\-\u2E80-\u9FFF\uAC00-\uD7FF\uF900-\uFFFD]/gi, "").replace(/[\-]+/g, "-").toLowerCase() +"/"; } else { //This is a blog home or catelog page var catelog = title.replace(/Dabinn的筆記:(.+)分類文章.*/, "$1"); if (catelog != title) { //This is an artitle page newUrl = "category/"+catelog+"/"; } } newUrl = newBlog + newUrl; newUrlHTML = "<span id=\"timeToGo\" style=\"color:red; font-weight:5000; font-size:4em;\">"+timeToGo+"</span> 準備進行超空間跳躍!新座標是: <a href=\""+newUrl+"\" style=\"color:blue; font-weight:1000;\">"+newUrl+"</a>"; msgdisp.innerHTML = newUrlHTML; tomToGoNode = document.getElementById("timeToGo"); var timeBegin = new Date().getTime(); setInterval("gotoNewBlog()", 300); function gotoNewBlog() { timeLeft = timeToGo*1000 - (new Date().getTime()- timeBegin); timeLeftShow = Math.ceil(timeLeft / 1000); if (timeLeftShow < 0) timeLeftShow = 0; tomToGoNode.innerHTML = timeLeftShow; if (timeLeft <= 0) { location.href = newUrl; } } </script> |
現在還在寫blog分享資訊的人越來越少,如果覺得文章對您有幫助,歡迎在底下留言,這樣我也比較有動力繼續寫下去,謝啦!