※ 引述《wens (在音樂中尋找感動~)》之銘言:
: 標題: Re: [建議] HyperBBS 功能
: 時間: Thu Jun 23 21:59:00 2005
:
: ※ 引述《in2 (敬請期待 :P)》之銘言:
: : ※ 引述《i8i (送不完的Gmail)》之銘言:
: : : 可不可以增加 HyperBBS 功能
: : : 自動登入BBS之後.單純看文章很方便
: : 請問什麼是 HyperBBS ? @@?
: KKMan 弄出來的東西
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.112.249.154
: 推 dotZu:那請願境網訊把它open source吧 XD 140.135.254.169 06/24
HyperBBS(TM) v1.0
HyperBBS協定的精神是將一般Term看不到的ANSI Code包裝在BBS的文字中,由KKman程式
判定,並且顯示和造成相關的動作出來,以期能夠加強BBS的使用便利性。
HyperBBS目前為v1.0版,支援:
1.滑鼠點選(Point And Click):能夠讓有設定HyperBBS屬性的段落文字能夠支援滑鼠移
至文字上變色,以及滑鼠點選觸發功能的機制:
基本上,這段文字要用200(head)、201(tail)包在前後。然後可以在這段文字中加入一
些ANSI Code,包含:
a. 設定這段文字變色時的前景色、背景色、是否整行變色:目前採取的作法乃是根據
標準ANSI Code設定顏色的方式稍做修改,見附件一。
b. 設定使用者點選時所觸發的功能鍵:觀察現有的BBS,有許多的顯示項目,已經包
含了使用者執行此項目的關連按鍵,因此我們除了定義一些單純的ASCII對應碼、
特殊按鍵對應碼之外,也做了一些針對BBS Server輸出文字直接對應按鍵指令機
制。詳細說明見附件二。
附件一:顏色碼
以下是原本的ANSI顏色碼
Foreground colors:
30 : Black 34 : Blue
31 : Red 35 : Magenta
32 : Green 36 : Cyan
33 : Yellow 37 : White
Background colors:
40 : Black 44 : Blue
41 : Red 45 : Magenta
42 : Green 46 : Cyan
43 : Yellow 47 : White
( Background is finally the Foreground + 10 )
HyperBBS所訂出來顏色碼為4xx(一般亮度),14xx(高亮度),xx部分套用上面所列的
ANSI顏色碼,即可設定高亮度顏色。若沒有設定則採用KKman裡頭預設的變色方式。
其他和顏色有關的碼:
400整行變色:由於許多BBS中,文章項目還是看板列表等的輸出,並沒有包含行尾的
空白輸出,造成變色時的不美觀,用此控制碼可以成功的解決這個問題。
401反白:用了反白碼之後,將忽略這段文字中所有的HyperBBS的變色碼,變色採取
和KKman選取方塊一樣的反白方式。
附件二:
1. HyperBBS用300包在對應鍵文字的前面,結尾用301(指令輸入完不加enter)或
302(指令輸入完按一次enter)或303(指令輸入完按兩次enter)。
Ex:要閱讀第200篇文章,相當於按"2+0+0+enter+enter"
原本程式輸出的
200 M 03/07 zach ◇ 申請轉信`社團公益
字串,這時候就要變成
*[200m*[400m*[300m200*[303m M 03/07 zach ◇ 申請轉信`社團公益*[201m
2. 但基於一些其他的考量,有可能對應鍵在螢幕並沒有顯示出來,因此我們定義了
600~855(600+ASCII碼)來對應ASCII碼。以及500~509對應一些按鍵。
500 等於鍵入PageUp
501 等於鍵入PageDown
502 等於鍵入Home
503 等於鍵入End
504 等於鍵入方向上
505 等於鍵入方向下
506 等於鍵入方向左
507 等於鍵入方向右
508 等於鍵入Insert
509 等於鍵入Delete
Ex:在文章列表上
[←]離開 [→]閱讀 [^P]發表文章
要讓滑鼠移到上面點選相當於
執行其功能則可以將此字串變成
*[200m*[506m[←]離開*[201m \
*[200m*[507m[→]閱讀*[201m *[200m *[616m[^P]發表文章*[201m
╭作者 wildcat.bbs@wdbbs.net (可樂當開水喝 :Q), 看板 WD_Doc╮
│標題 Re: [文件] HyperBBS doc │
│時間 風與塵埃的對話 BBS (Fri Sep 29 16:01:52 2000) │
│轉信 AT-BBS!wd-news!WD │
╰─────────────────── y)回應 /)搜尋文字 =[]<>)主題式閱讀 ╯
HyperBBS 2.0 目前已經在測試中 , 但是有些 bug
所以 eimg 那邊就先不放出來 ...
我順便貼出 hyperbbs.h , 有些鍵盤的定義 :)
#define HB_SC ";" // SEMICOLON
#define HB_MS "\033[300m"
#define HB_ME0 "\033[301m"
#define HB_ME1 "\033[302m"
#define HB_ME2 "\033[303m"
#define HB_E "\033[201m"
#define HB_V_a (600+'a')
#define HB_V_A (600+'A')
#define HB_V_0 (600+'0')
#define HB_V_ENTER (613)
#define HB_V_PGUP (500)
#define HB_V_PGDOWN (501)
#define HB_V_HOME (502)
#define HB_V_END (503)
#define HB_V_UP (504)
#define HB_V_DOWN (505)
#define HB_V_LEFT (506)
#define HB_V_RIGHT (507)
#define HB_V_INSERT (508)
#define HB_V_DELETE (509)
#define HB_S_PGUP "500"
#define HB_S_PGDOWN "501"
#define HB_S_HOME "502"
#define HB_S_END "503"
#define HB_S_UP "504"
#define HB_S_DOWN "505"
#define HB_S_LEFT "506"
#define HB_S_RIGHT "507"
#define HB_S_INSERT "508"
#define HB_S_DELETE "509"
#define HB_S_ENTER "613"
#define HB_S_SPACE "632"
#define HB_S_SLASH "647"
#define HB_S_TAB "609"
#define HB_S_LBRAKET "691" // [
#define HB_S_RBRAKET "693"// ]
#define HB_CTL_E (5)
#define HB_CTL_P (16)
#define HB_S_CTL_E "605"
#define HB_S_CTL_R "618"
#define HB_S_CTL_X "624"
#define HB_S_CTL_P "616"
#define HB_S_CTL_V "622"
#define HB_S_CTL_Z "626"
#define HB_S_a "697"
#define HB_S_b "698"
#define HB_S_c "699"
#define HB_S_d "700"
#define HB_S_e "701"
#define HB_S_f "702"
#define HB_S_g "703"
#define HB_S_h "704"
#define HB_S_i "705"
#define HB_S_j "706"
#define HB_S_k "707"
#define HB_S_l "708"
#define HB_S_m "709"
#define HB_S_n "710"
#define HB_S_o "711"
#define HB_S_p "712"
#define HB_S_q "713"
#define HB_S_r "714"
#define HB_S_s "715"
#define HB_S_t "716"
#define HB_S_u "717"
#define HB_S_v "718"
#define HB_S_w "719"
#define HB_S_x "720"
#define HB_S_y "721"
#define HB_S_z "722"
#define HB_S_A "665"
#define HB_S_B "666"
#define HB_S_C "667"
#define HB_S_D "668"
#define HB_S_E "669"
#define HB_S_F "670"
#define HB_S_G "671"
#define HB_S_H "672"
#define HB_S_I "673"
#define HB_S_J "674"
#define HB_S_K "675"
#define HB_S_L "676"
#define HB_S_M "677"
#define HB_S_N "678"
#define HB_S_O "679"
#define HB_S_P "680"
#define HB_S_Q "681"
#define HB_S_R "682"
#define HB_S_S "683"
#define HB_S_T "684"
#define HB_S_U "685"
#define HB_S_V "686"
#define HB_S_W "687"
#define HB_S_X "688"
#define HB_S_Y "689"
#define HB_S_Z "690"
#define HB_S_0 "648"
#define HB_S_1 "649"
#define HB_S_2 "650"
#define HB_S_3 "651"
#define HB_S_4 "652"
#define HB_S_5 "653"
#define HB_S_6 "654"
#define HB_S_7 "655"
#define HB_S_8 "656"
#define HB_S_9 "657"
#define HB_BACK "\033[200m\033[444m\033[506m[←]上一頁\033[201m"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.249.98