非官方2代CBETA電子佛典閱讀器

大家好,這是CBETA電子佛典閱讀器2代 1.0.0版:
https://mrmyhuang.github.io
程式碼重新改寫。為了支援更多電腦平台,我聽朋友建議改寫成PWA (web app)。目前測過可以在Windows 10 + Edge Chrome, Android 9 + Chrome, macOS 10.15 + Edge Chrome, iPad 7(模擬器) + Safari, iPhone 8(模擬器) + Safari, Debian Linux 10 + Chrome運作。跟第1代比,App有一些小瑕疵,但主要功能沒什麼問題而且支援更多平台。

PWA可以像一般app一樣安裝到電腦、手機、平板:
App安裝教學: https://github.com/MrMYHuang/cbetar2#web-app
App功能特色: https://github.com/MrMYHuang/cbetar2#feature

電子佛典2代使用說明與程式原始碼:
https://github.com/MrMYHuang/cbetar2

阿彌陀佛

討論區:

CBETA電子佛典閱讀器第2代 1.5.6版上架了,相較1.0.0修正許多較大的bugs,穩定很多(Linux也測過可以用)。新支援UI字型大小、直式顯示、標楷體。
https://mrmyhuang.github.io
建議安裝至裝置上,避免瀏覽器定期清除網頁快取資料,導致書籤、設定消失。

App安裝教學: https://github.com/MrMYHuang/cbetar2#web-app
App功能特色: https://github.com/MrMYHuang/cbetar2#feature

這是iPad Air 3的截圖:

又一次app大更新:

CBETA電子佛典閱讀器第2代 2.0.6版上架了,主要新支援:經文分頁。
原先1.y.z版只支援經文單頁顯示,但在觸控裝置使用可能有一些不便,
不小心手指一碰螢幕就會移動經文。支援分頁後,就可以用按鈕(半透明...)一頁頁切換。
但這次2.y.z版本因為經文書籤用電子書(epubjs)方式改寫,與1.y.z版不相容,
升級app後請手動清除所有經文書籤(目錄書籤有相容,不須刪),再重新加回來,
不然app會有些異常囧

(刪除書籤:至書籤頁,左滑項目即出現刪除鈕,再點擊)

另外epubjs還有2個bugs,與1個問題,比較難解QQ,導致此app:
1. 直式、單頁模式,開啟經文卻顯示經文結尾處。
2. 跳頁100%時,頁面切到開頭、不是結尾。
3. 直式、單頁模式,若加入經文水平捲軸會擋到經文(目前把捲軸拿掉)。

除了這些問題,此app已在Windows 10, Android, iPad Air 3測過ok。

App網址:
https://mrmyhuang.github.io
建議安裝至裝置上,避免瀏覽器定期清除網頁快取資料,導致書籤、設定消失。
若要作app更新,請參考此處說明:
https://github.com/MrMYHuang/cbetar2

App安裝教學: https://github.com/MrMYHuang/cbetar2#web-app

擷圖範例:

ユーザー maha の写真

在「直排」模式上,對稱標點「轉90度」的問題可以解決嗎?如:

https://mrmyhuang.github.io/catalog/catalog/modern.001/藏外佛教文獻

 

CBETA Maha 吳寶原 

 

大德您好:經過測試在直排模式,macOS系統上,Chrome, Edge Chrome, Safari的括號,皆正確轉90度,但iOS Safari沒有!就我目前所知這好像是字型檔字元的方向屬性設定問題,我會嘗試修復。成功修復後會再告知。

謝謝您的回報。

app 2.2.1版解決在iOS Safari直式楷書括號字元未旋轉90度的問題。這問題來自全字庫楷書字型的括號未設定直式的替代字元屬性造成的,目前繞道的解法是把各種括號用iOS能正確作直式替代的字型(Heiti)取代,詳情請見Github的源始碼。

ユーザー maha の写真

太棒了,感謝您的努力!

CBETA Maha 吳寶原 

 

ユーザー huizhu の写真

太棒了 +1

2代非官方CBETA閱讀器又一次大更新,把較大的bug都修正了,包括(加入書籤的經文)離線瀏覽與書籤標記。

已在Windows 10 / Debian Linux 10 / Android 9 / macOS 10.15 Chrome / iOS Safari 14測過都可以用。(但iOS Safari 14在單頁模式下,捲軸無法顯示。)

安裝教學: https://github.com/MrMYHuang/cbetar2#web-app

功能特色: https://github.com/MrMYHuang/cbetar2#%E7%89%B9%E8%89%B2

離上一版2.0.6,有以下更新: 

  • 2.2.11:
    • 修復經文捲軸。
    • 修正單頁直式顯示,"載入中"提示未正確顯示。
  • 2.2.10:
    • 修正經文第1次開啟後,加入的書籤被開啟後,無法正確還原書籤位置。
    • 使用黑體作另一種字體選擇。
  • 2.2.9:
    • 修正部分對話框字型,綁定UI字型大小設定。
  • 2.2.8:
    • 修正"標記(highlight)選取的書籤文字功能失效"。
  • 2.2.7:
    • 修正"跳頁100%時,頁面卻切到開頭、不是結尾"。
    • 修正跳頁UI寬度。
  • 2.2.6:
    • 修正分頁模式,上/下頁沒有反應問題。
    • 修正直式顯示時,經文上下補白隨視窗寬度增加的問題。
  • 2.2.4:
    • 修正"直式、單頁模式,開啟經文卻顯示經文結尾處"。
  • 2.2.3:
    • 對話框字型大小綁定UI字型大小設定。
    • 避開macOS Safari 14的bug。
  • 2.2.1:
    • 使用iOS黑體解決直式楷書括號方向問題。
  • 2.2.0:
    • 經文頁加入"載入中"提示。
    • 若連線CBETA API失敗,會顯示錯誤訊息。
    • 修正經文書籤無法離線瀏覽的問題。
    • 關閉經文中標記選取的書籤文字,以解決切至目錄頁後無法切回經文的問題。
  • 2.1.0:
    • 修正書籤頁左滑刪除一書籤後,刪除鈕不會隱藏。
    • 經文頁新增書籤成功會有提示訊息。
    • 修正經文頁用鍵盤操作時會一次跳多頁。
    • Basic Latin字元改用Times New Roman字型。

單頁直式+水平捲軸擷圖範例:

2.3.0這版有較大的新功能 - 經文語音播放!使用電腦語音合成技術 - text to speech,作唸經文功能,即所謂的"有聲書"。但注意,當代電腦語音合成技術與"真人發音"仍有落差。因此聽到的經文發音偶爾不正確是正常現象。

經文語音播放步驟:開啟經文 / 按下右上方播放鍵(如擷圖所示)

已在Windows 10 Chrome, Android 9, macOS 10.15, iOS 13.1, Debian Linux 10測過都可以用。

安裝教學: https://github.com/MrMYHuang/cbetar2#web-app

功能特色: https://github.com/MrMYHuang/cbetar2#%E7%89%B9%E8%89%B2

ユーザー maha の写真

剛以 Vivaldi for Windows 瀏覽最新版(App 版本: 2.3.2),在「藏外佛教文獻」的《天竺國菩提達摩禪師論》仍存在直排對稱標點轉90度問題,可能整個「藏外佛教文獻」都還存在這個問題。

目前的整體目錄層次不明,建議參考「CBETA CBReader 2X v0.5.5 Windows」的「原書簡易目錄」或「原書進階目錄」來做安排,如下:

或可參考 CBETA Online 「依據冊別」來簡單列示,如下:

此外,CBETA 每季(三個月)都會有一次資料庫更新(包括新收錄典籍、經文用字及標點修訂等等),不知道您是否也可以配合每季更新?

CBETA Maha 吳寶原 

 

大德您好:

先謝謝您提供許多建議。以下是各個問題的回覆:

1. 我使用Vivaldi for Windows 3.3瀏覽幾卷「藏外佛教文獻」經文,包括《天竺國菩提達摩禪師論》,直排對稱標點都有正確轉90度。如擷圖所示:

可能的解決方法:

* 請升級您的Vivaldi版本。

* 如果問題還是存在,不好意思,請您移除再重新安裝此電子佛典PWA。(我曾遇過同版本app,在不同裝置運作,一個正常,一個異常。後來在異常裝置移除PWA與它的cache/data,再重裝就正常了。可能是一些瀏覽器的Service Worker本身有些bugs,導致一些罕見情況下更新app會不完整...!?)

2. 目錄層次問題我會再研究了解。

3. 資料庫更新問題,就我的觀點是這樣: 這支app本身不含離線的經文檔,是先透過CBETA API取得該季最新的經文資料,然後如果有把某"卷"經文加入書籤,就會存檔至本機裝置,可作離線瀏覽。但目前存檔是以"卷"為單位,未來考慮以"經"為單位存檔。至於以"部"為單位存檔目前不考慮支援,因為我個人認為不多人有此需求,以及為了適當節省CBETA的頻寬資源,如果仍有此需求的大德,建議可以fork此開原app作修改支援。

若app要隨CBETA的季更新,可能的作法是未來新增"經文更新"的功能,針對已存檔的經文作更新。

謝謝您的意見,讓此app更好。

距離上一次的2.3.0版,新版app較值得提的是修正"在新電腦開啟app某卷經文連結,無法正常顯示"。此一修正代表我們可以用網址分享某一卷經文給別人,並且用此app開啟!例如在一台未曾開啟此app的電腦,可以直接用此連結使用此app開啟這篇經文:

https://mrmyhuang.github.io/catalog/webview/T0396/1/%E4%BD%9B%E8%AA%AA%E6%B3%95%E6%BB%85%E7%9B%A1%E7%B6%93

"可分享app網址"這功能對個人使用而言,代表也可以用瀏覽器內建書籤功能儲存經文連結。

另外,相較2.3.0版有以下修改:

  • 2.6.0:
    • 設定頁新增"更新離線經文檔"按鈕。
  • 2.5.0:
    • 解決在新電腦直接開啟此app的某經文連結無法正確顯示的問題。
  • 2.4.0:
    • 支援以"經"為單位存檔作離線瀏覽。
  • 2.3.2:
    • 避免螢幕自動鎖定(Chrome)。
    • 語音播放速度支援至1.5倍。
ユーザー maha の写真

確實,升級Vivaldi版本之後,直排對稱標點都有正確轉90度問題已解決。

CBETA Maha 吳寶原 

 

2代非官方CBETA閱讀器2.7.0版新增佛學字典分頁,整合"DILA 佛學術語字辭典"。擷圖如下:

另一種查詢方法是在經文頁選擇一段字詞,再按右上三點圖示,再選擇"查字典"。

2代非官方CBETA閱讀器2.9.0版釋出,相較2.7.0修正了目錄分類、新支援佈景主題:

ユーザー maha の写真

2.9.0 版改進了不少。很棒!

CBETA Maha 吳寶原 

 

myh 您好,

我是 CBETA API 的開發者 周邦信 (Ray Chou),
很開心看到有人使用 CBETA API 開發應用軟體。

我在寫 API 的時候,有時不是那麼嚴謹,
想說大概沒什麼人在用,所以想到哪裡就改到哪裡 ^_^
但是這樣的變動,可能會造成像您這樣的開發者困擾。

也有其他的應用,例如 https://deerpark.app/ 也是使用 CBETA API,
所以我曾經想過,
是否有個小社群,像 Facebook 社團,或是 Gmail Group, 或是在這個 CBETA 討論區開一個新板,
讓我們可以討論相關問題,
如果我做了什麼變動,也可以在這個地方發佈。


請教您有什麼想法?感謝。

周大德您好:

我是一位任職於某公司的軟體工程師 - (Meng-Yuan Huang) 黃孟遠,平時空閒會寫一些開原apps增進自己技術、也幫助別人,近來也與德貴有緣常參加法青的活動、課程。

先感謝CBETA所有出錢、出力的人們,您們的成果讓我有幸能利用自己的電腦專長對傳播佛法做出一點貢獻。

我贊同您的意見可以開一個CBETA API討論社群,讓開發者能即時知道API有變更,要更新app。至於討論區要設置何處,我覺得有幾點值得注意的:

1. 有通知功能:例如有新文章(如API變更),能以E-mail的方式通知訂閱者。

2. 可觸及性:就是容不容易被新開發者發掘,增加相關程式開發的能量。

我覺得GitHub是一個不錯的地方,因為討論內容主要與程式開發有關,GitHub又是許多程式設計者常會瀏覽的地方。而且GitHub有通知功能,可以較即時得知API的更動:

至於Facebook社團,我覺得它的版面設計比較不一樣,每篇主題是以方塊的形式呈現內文,而不像GitHub issues是先以主題標題列表。GitHub的方式在瀏覽上好像比較容易快速找到開發者有興趣的主題。

請參考看看這些建議smiley

阿彌陀佛

黃師兄好,

感謝您的建議,
我也覺得要有「通知功能」很重要,
才不會像這樣過了五天才發現您的回復!cheeky

我在 GigHub 建了一個,您看看這樣如何:
https://github.com/DILA-edu/cbeta-api

周大德您好:

我目前有一個CBETA API使用問題,先在這串討論提出。

catalog_entry這個API可用來取得"下一層"目錄的資訊,例如:

http://cbdata.dila.edu.tw/v1.2/catalog_entry?q=CBETA.001

會取得CBETA.001 (label: "01 阿含部類 T01-02,25,33 etc.")目錄的子目錄資訊,但缺少了"當前"目錄的label資訊!

為何很需要當前目錄的資訊?以敝人的第2代電子佛典app來說,一目錄的子目錄資訊是以一整個app畫面來呈現,例如這個連結呈現CBETA.001目錄的子目錄資訊:

https://mrmyhuang.github.io/catalog/catalog/CBETA.001

以程式開發的觀點,這一目錄頁會呼叫一次CBETA API:

http://cbdata.dila.edu.tw/v1.2/catalog_entry?q=CBETA.001

但CBETA API回傳卻缺少該目錄的label "01 阿含部類 T01-02,25,33 etc."。這label的用途在於可作為敝人app的"書籤"的標題。

敝人的app在1, 2版解決此問題的方法是上一層目錄API call回傳的label用URL傳至下一層目錄如:

https://mrmyhuang.github.io/catalog/catalog/CBETA.001/01 阿含部類 T01-02,25,33 etc./

但這種作法會造成網址變很長,特別是瀏覽器會把URL的label變成合法的編碼後,網址會變更長:

https://mrmyhuang.github.io/catalog/catalog/CBETA.001/01%20%E9%98%BF%E5%90%AB%E9%83%A8%E9%A1%9E%20T01-02,25,33%20etc./

所以希望catalog_entry這個API可以多回傳目前目錄的label,謝謝。

謝謝建議,
要不要開始試用 GitHub 來討論這問題:
https://github.com/DILA-edu/cbeta-api

我也請 CBETA API 的最主要使用者 CBETA Online 前端開發者來加入討論。

謝謝您。我已把此問題轉至GitHub:

https://github.com/DILA-edu/cbeta-api/issues/2

非官方2代CBETA電子佛典App更新。

距上個版本2.9.0,3.3.0版有3個較大的新功能:
* 支援全文檢索。
* 支援"分享此頁"功能。
* 支援分頁模式頁數顯示、跳至指定頁。

全文檢索擷圖:

已在這些平台測過:Windows 10 Chrome, Android 9 Chrome, macOS 10.15 Chrome, iOS 14 Safari, Debian Linux 10 Chrome

App安裝教學: https://github.com/MrMYHuang/cbetar2#web-app 
App功能特色: https://github.com/MrMYHuang/cbetar2#feature

完整更新內容:

  • 3.3.0:
    • 支援全文檢索,見說明
    • 綁定部分文字大小至UI字型設定。
    • 調整部分圖示。
  • 3.2.1:
    • 經文頁使用單選UI選擇跳頁頁碼。
  • 3.2.0:
    • 支援分頁模式頁數顯示、跳至指定頁。
    • 修正點擊經文後,無法用鍵盤方向鍵跳頁。
  • 3.1.1:
    • 修正多餘的API calls,改善目錄頁效能。
    • 修正新增的經文書籤標題。
  • 3.1.0:
    • 支援"分享此頁"功能,請見說明
  • 3.0.0:
    • 修改/簡化app連結。(向下相容1.x.y, 2.x.y連結。)
    • 修正部分文章無法開啟。

非官方2代CBETA電子佛典App更新。
距上個版本3.3.0,3.7.0版有幾個較大的新功能與改進:
* "語音播放"支援指定選取經文位置開始播放。
* 支援QR code分享app連結,可分享類型包括:目錄、經、卷、卷內某段選取文字、目錄搜尋、全文檢索搜尋、詞典搜尋、app主頁。
* 修正"CBETA HTML檔經文內註解app未使用括號作區別的問題"。(感謝Godfery Wang指正)
* 修正"app發佈更新後,舊app有時未正確顯示app更新提示訊息"。
* 其它7個bugs。

App安裝教學: https://github.com/MrMYHuang/cbetar2#web-app
App功能特色: https://github.com/MrMYHuang/cbetar2#feature 
App版本歷史: https://github.com/MrMYHuang/cbetar2#history

ユーザー maha の写真

目前3.7.0版對表格標記(<table>)似乎還沒處理好。如 Y13n0013_p0015a03 的表格,CBETA Online 作:

而3.7.0版呈現不佳。

CBETA Maha 吳寶原