下載地址:
http://cid-2e6c8f3d9767a9d7.skydrive.li ... ic/pcmanfxpcmanfx-0.1.8_r40+_final_r2.xpi
這個r40+是從pcmanfx r40 修改而來的非官方套件,
原版官網:
http://code.google.com/p/pcmanfx/官方版最近開始更新了,詳情請看官網這個討論串。
這個非官方套件加了太多雜七雜八的功能,
(有些是標準終端機的功能)。
程式碼已經變得太複雜混亂難以維護,
之後應該不會再更新了,
請大家支持官方版。R2附註:
後來這個套件有另外的修改版,
事實上這個final 版套件還有一些問題尚未解決,
先前版本部分的UTF8編碼功能因為一些問題而暫時關閉,
這個R2版把我做得到的相關配套做出來並完全開放,
(像是實驗性的加入自動登入功能)
這裡也順便修掉一些容易改的小錯誤。
(主要是相容性的問題)
希望這個版本可以避免修改版在不知道的情形下繼續沿用之前的錯誤,
另外測試實驗性功能的部分,
之後官方版偏好設定實作完成後,
那些功能就會以官方版為基礎來添加。
0624更新:
因為這個套件沒有放在AMO 上面不會自動更新相容性,
所以目前將相容性設到9.* ,
如果FX 7-9沒有大改的話就可以直接用不需要更新。
另外這邊整合了在其他project 實作的螢幕緩衝區以及一些控制碼,
(這部分是ANSI編輯器的必要組件-跨頁圖以及插入模式)
ANSI編輯器的其他部分短時間內沒有實作的打算。
今年初火狐升級 3.6之後 tonberry 和pcmanx plugin 都不能用了,
(2011/03 註: 這兩個plugin都確定不會再更新了)當時用 javascript 寫的擴充套件功能都不是很完整,
而pcmanfx 官方版也有一陣子沒有更新,
所以當時就開始試著做控制碼處理以及錯誤修正。
一開始這個套件是寫給自己用的,
另外也是希望我寫的修正能夠幫助官方版或是其他套件的開發,
所以找個空間放上我寫的修正,
並沒有一直維持這個套件的打算。
事實上許多功能都是測試性支援,
這只能算是一個實驗性的套件。
0815版本:
感謝BBSFOX的作者ettoolong 幫忙整合滑鼠瀏覽以及滑鼠手勢的功能,
另外在此徵求擅長美工的人幫忙製作專門給滑鼠瀏覽用的滑鼠指標圖示,
因為這邊的滑鼠瀏覽模組和BBSFOX一樣所以這個圖示也可以用在BBSFOX中。關於R2的修正:
這邊最主要是把UTF8編碼功能的相關配套做出來並拿掉一些限制功能的程式碼,之前是限定UTF8編碼不能隨時切換而且偵測到非UTF8編碼就自動改成big5,
也就是不能以UTF8編碼瀏覽PTT 。
UTF8編碼最主要的問題有兩個:
第一個是因為傳統的big5是由兩個Byte組成,
中間可以放入ANSI色碼(如*[0;37;40m)就形成雙色字,
但是UTF8的長度是可變的,
雙色三色等都有可能出現情況就變得很複雜。
第二個是Unicode 全寬字半寬字每個版本Unicode 都有變化,
甚至還有寬度是標為模糊(程式和字型自由決定)
實際實作時必須程式和字型配合才不會出問題。
這邊預設使用Vim7.2的全寬半寬判斷標準,
只能保證游標顯示在Vim7.2不會跑掉,
但是字型可能會變得很奇怪。
PTT 有支援UTF8模式,
只要在帳號後面加一個"," 登入後就會以UTF8編碼顯示。(若改加"." 就會以gb2312編碼顯示)2011/04/17 PTT定期更新後已取消不過這套件在UTF8模式下沒有辦法正常處理雙色字,
(因為我看不出PTT 是怎麼處理的)
所以會把ANSI色碼當作正常文字而使文字超出畫面,
這邊建議開啟取消文字超出畫面自動換行的選項以降低畫面亂掉的程度。2011/04/17 PTT定期更新後已將雙色字處理掉,
目前版本(110505)也已經能處理被ANSI色碼中斷的UTF8字元另外PTT 只要不是標準ASCII 的字全部當作全寬字,
這個版本開始將更改全寬半寬認定的設定和上面說的選項綁在一起,
只要選取這個選項在UTF8模式下瀏覽PTT 就不會因為文字寬度出現問題。大部分CJK 字型符號的寬度都接近全寬字,
這可能是為了相容傳統的ANSI顯示。
PTT 的全寬字認定基本上是配合這些字型而不是Unicode 標準,目前版本(110505)提供一個編碼選項(UTF-8_PTT )使用PTT 的全寬字認定。最後的問題是在登入前的畫面永遠以big5顯示,這邊藉由從pcmanx-gtk2 移植了自動登入的功能暫時避免畫面亂碼的問題。另外自動登入的功能支援輸入不可見字元(像是Enter 和方向鍵等),
這邊使用了和防閒置字串和彩色貼上的ESC 取代字串一樣的解析程式碼,
"^" 後面加上大寫字母即等效於Ctrl+ 該字元。(實際上是Caret notation)
(^C = Ctrl + C 輸入ANSI色碼,後方字母有分大小寫)
不過"^^"就改成輸入一個"^" (表情符號可能會用到)
畢竟一般防閒置字串和自動登入字串只會用到ESC (^[)
而彩色貼上的ESC 取代字串一般只會多用到^U、^C、和^H而已,
所以這個套件不支援^^以及^?這兩個Caret notation並不會影響正常BBS 使用。之前的版本連續^ 的處理有誤這個R2版本已修正。到目前為止這個套件發展狀況:
此外這個套件的特點就是顯示的品質,
延續原來官方版優異的顯示功能,
這個套件除了新增了拉寬文字以及自動改變行數列數這兩個模式外,
還支援選取區反白,
並引用了pcmanx 0.36 以後對ANSI圖的修正,
不只是linux 下加強了顯示效果,
也消除了大部分Win7/vista下因字型邊緣平滑功能造成的ANSI圖破圖,
也就是pcman 錯誤回報網頁上編號#37640的項目。
http://of.openfoundry.org/projects/744/rt(目前的kkman, pcman combo, tonberry2.3.12預設狀態下都會破圖)
另外還能自訂行數列數來觀看完整的跨頁ANSI圖。
(需要BBS 站台支援,PTT 支援更改行數列數,kkcity支援更改列數)
至於反鋸齒可能要看火狐 4.0正式版或是作業系統會不會支援了,
這邊應該不會自己做。
(因為自己做的話會讓效能大幅降低)
其他更詳細的內容請見下載網址內的說明文件。
我在做錯誤修正以及實作新功能時部分程式碼並不是寫的很漂亮,
像是一些官方版的程式碼應該要整個重寫以新增功能的部分,
只硬加了一些奇怪的語法而沒有重寫等等,
如果有人想要接手的話我會幫忙處理這部分。
我想這個套件最大的爭議應該在彩色複製貼上的部分,
現在新版的linux 應該都是用unicode 處理文字,
傳統的雙色字格式在這個環境之下無法使用,
所以我在處理系統剪貼簿時設計了一個相容於unicode 格式,
(和BBS 站台的互動還是一般的格式)
理論上不管經過幾次ansi <-> unicode轉換都不會出問題,
這樣就能保證在新舊版linux 以及其他作業系統的相容性。
事實上即使只考慮Windows 這個作業系統,
經過瀏覽器這個unicode 環境還要維持ANSI雙色字還是很困難,
目前我還沒看到有哪個火狐套件能完美處理雙色字。
(這也可能是因為我孤陋寡聞不知道而已)
雖然這個功能和pcman combo 相比就只是在系統剪貼簿裡面的東西不一樣而已,
但是這就造成了和PHJCI 之類的ANSI圖繪圖軟體不相容的情形,
這個問題可以讓套件直接讀寫 .ansi檔(pcman combo 的存檔格式)來解決,
已於0815版本實作。另外在下載整篇文章的部分,
這個功能其實不大適合在客戶端實作,
pcman/pcmanx的下載文章功能在PTT 預設的模式會掉行,
所以使用者必須先關掉雙行的文章標頭分隔線。
這邊的實作是採用掉行偵測的方式,
不管有沒有關掉那個功能都能正常工作,
但是這不但使程式碼增加好幾倍的長度,
而且當網路不順時可能會隨機發生下載下來的文章多了很多重複的部分,
(某次修正前的情況,不過我也不能確定現在的版本不會這樣)
目前下載的速度之所以會設的這麼慢也是為了降低這個問題發生的可能性。
0815版本再做了一些修正,不過也不能保證完全沒有問題,
畢竟這個功能比較適合做在伺服器端。已知問題:
- 到4.0b2 code freeze 為止官方的windows x64版火狐每次程式開始時就會產生重繪錯誤,
目前的火狐版本(4.0b13 pre)已修正 - 文字超級拖放不支援反白、改變字型、拉寬文字
- 狀態列顯示連線時間功能與其它套件衝突
- BBS 分頁拖出成新視窗時分頁圖示(顯示連線狀態)可能會跑掉
0815測試版的變更紀錄:
新增滑鼠瀏覽以及滑鼠手勢支援(感謝BBSFOX作者的幫忙)
註:0815版本僅修正和原有功能衝突的部分如更動行數列數等,
滑鼠功能本身和之前BBSFOX作者釋出的檔案相比並沒有功能修正或增強支援讀寫PCMan Novus 及其相容軟體的ANSI彩色檔案
修正下載文章時是否已讀入新行的判斷條件(網路有嚴重延遲時)
修正連線時間計時器在同時有多個連線時顯示的時間會閃爍
修正使用utf8編碼時unicode 半寬字元造成自動換行計算長度時判斷錯誤
0820測試版的變更紀錄:
更新firegestures軌跡顯示方式
firegestures腳本產生頁面多語化
即時更換前背景色
未選取文字時停用複製及彩色複製
選取區存在時另存檔案儲存選取區彩色文字
修正linux 下另存檔案多出新行
修正linux 滑鼠滾輪上下一頁失效
修正選取區文字和文字變動後取消選取隨機失敗
修正未裝firegestures時啟用繪製滑鼠軌跡失敗
修正某些視窗大小之下底部出現預設底色
修正以新視窗開啟時瞬間視窗長寬為零導致重繪錯誤
修正滑鼠瀏覽判斷行數列數失敗
0821測試版的變更紀錄:
使用firegestures本身的偏好選項決定滑鼠軌跡是否顯示以及是否逾時
firegestures腳本產生頁面支援輸入自訂字串(參考BBSFOX)
修正英文版本firegestures腳本產生頁面的翻譯錯誤
修正在BBS 頁面HOME的手勢失效
0824測試版的變更紀錄:
部分支援中文鍵結
FireGestures腳本產生頁面XUL 化
小幅修改選項頁面(行數列數防呆)
修正部分FireGestures自訂字串送出錯誤命令
部分修正以新視窗開啟時分頁圖示跑掉
0829測試版修正失敗,廢棄0830測試版的變更紀錄:
調整滑鼠瀏覽顯示區塊光棒的部分減少不必要的動作
修正改變視窗大小後字型大小可能沒有改變(改變大小和重繪螢幕同時發生時)
修正主頁面(xul) 在錯誤主控台產生的的警告
修正輸入Backspace 鍵後游標右方區域可能殘留之前的區塊
0831測試版的變更紀錄:
新增滑鼠瀏覽模式下長按滑鼠左鍵就送出Enter的功能
修正自動調整長寬比模式下視窗大小改變後圈選區域錯誤(將視窗大小縮到極小再拉大)
修正自動調整行數列數模式下行數列數可能變成零的錯誤
Final 版的變更紀錄:
更改套件ID以避免自動更新功能和官方版本衝突
修正某個控制碼(CSI L: insert line)的實作錯誤
Final R2版的變更紀錄:
相容火狐4.0 正式版
支援自動登入
修正Linux 下右鍵選單無法開啟
取消斷線時的警告視窗
斷線後關閉分頁不再提示
修正防閒置字串和彩色貼上取代字串中連續^ 的處理
取消一些設定UTF8編碼時的限制(部分支援PTT 的UTF8瀏覽)
0624
相容新版本FireFox
修正PTT UTF8瀏覽的穩定性問題
修正更改行數列數時游標位置的處理
新增插入模式等控制碼(整合自其他Project )
支援螢幕緩衝區(整合自其他Project )
如果有關於我上面寫的內容或是程式碼寫作等方面的意見歡迎提出來討論,
當然也歡迎程式功能錯誤或是功能新增的建議,
雖然時間上技術上未必能夠滿足各位。
最後請不要把這個套件的問題回報到官方版的網站上,畢竟這是非官方版,
謝謝。