新同文堂 Bookmarklet 失效

新同文堂是一個中文繁簡互換的軟體,雖然我也看得懂簡體字,但還是繁體看得比較順眼,這樣的小工具對我來說就很有幫助。早期它是以瀏覽器的 extension 來呈現,後來有了 bookmarklet 的形式,在我的主力瀏覽器 Chrome, Firefox, Safari 都可以用一條書籤來使用,相當方便,便改用這種方式。

也忘了是多久以前,發現這個 bookmarklet 好像沒有作用了,因為需求也不是真的那麼大,加上以前好像就有過這樣時好時不好的問題,也就置之不理。不過今天看到一篇實在很讓人難以下嚥的簡體文,還是轉換不過來,便開始找起原因。

主要是因為新同文堂之前是 host 在 OpenFoundry (自由軟體鑄造場) 上的,而自由軟體鑄造場這個台灣早期的 Open Source 集散地於 2016 年底終止專案託管服務,但新同文堂於更早一點的 2015 年底就搬走了。因此從那時候開始,bookmarklet 就已經失靈了。

老早有人在 2016 年初就反應過,也有好心人提供了它的備份(原 maintainer: softcup 也有放一份 New-Tongwentang-for-Web 在 GitHub 上,但用法和原先的不同,所以就不用它了),所以只要把 bookmarklet 裡的 js URL 改成這個 GitHub 上的 URL 應該就可以恢復運作。

但因為 GitHub 不會根據副檔名或是內容來送正確的 MIME type,所以預設在瀏覽器會檢查文件 MIME type 的設定下,直接使用放在 Github 上的 Raw 的形式,會出現下列錯誤:

Refused to execute script from ‘https://raw.githubusercontent.com/stargazer8tw/samples/fe8d4f5d89aebff0359b7f3ea52e141a1d92dcf5/tongwen_bookmarklet/js/bookmarklet_tw.js’ because its MIME type (‘text/plain’) is not executable, and strict MIME type checking is enabled.

參考了 Link and execute external JavaScript file hosted on GitHub 這個 thread, 用 RawGit 這個服務,把 github server: raw.githubusercontent.com 換成 cdn.rawgit.com 就可以了。

RawGit 是一個免費的服務,目的是把 GitHub 上的 raw file 送出正確的 Content-Type header。雖然他們不保證 100% uptime, 但對我來說,簡轉繁的功能本來就不是那麼必要(不然我也不會拖那麼久才在處理),而且如果我 clone 一份 js files 回來放自己的 server, 自己設定正確的 MIME type, 維護起來可能更不輕鬆,還是就謝謝 RawGit 囉!

有需要用到個 bookmarklet 的,可以自行修改書籤的內容成

或是將下列連結拖曳至書籤列使用。

簡→繁


2 Comments

  • Yvette

    2017/09/23

    剛開始用的macbk
    發現之前網上別人分享的bookmarklet都沒反應,還以為是自己的問題
    真的感謝大大分享了改版
    現在用著超爽的qvq

    Reply
  • goldx5 Chen

    2017/09/24

    謝謝,很好用。

    Reply

Leave a Reply