樂多roodo blog搬家自動導頁

從Roodo樂多日誌Blog搬家到wordpress之後,寫了一段javascript把原本在roodo的頁面各別導向wordpress的對應頁面。包含:

作法

Roodo blog不知為何沒有防堵javascript,我就把javascript插在日誌基本管理簡介那一欄上

網址的規則:Roodo

從網頁標題去判斷
先看有沒文章標題,樂多的文章網頁標題會長這樣:

  • 簡單切換Android market到美國地區方法 (不需root) – Dabinn的筆記 – 樂多日誌
  • 無線影音傳輸 – Dabinn的筆記 – 樂多日誌

如果沒有,那有可能是分類或首頁,分類的網頁標題長這樣:

  • Dabinn的筆記:週邊3C分類文章簡文 – 樂多日誌

再沒有的話,那應該就是在首頁了,首頁的標題是這樣

  • Dabinn的筆記 – 樂多日誌

網址的規則:Wordpress

分類頁

文章頁要看Wordpress設定,我的是

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(字母以外的其它符號)進行取代的話,會連中文都一起刪光光。

\u2E80-\u9FFF
\uAC00-\uD7FF
\uF900-\uFFFD

Code

寫好的JS在這,歡迎自行修改使用。

<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分享資訊的人越來越少,如果覺得文章對您有幫助,歡迎在底下留言,這樣我也比較有動力繼續寫下去,謝啦!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

 

返回頂端