Etherpad:修訂版本之間的差異
出自福留子孫
(→五、啟動解說) |
(→二、使用) |
||
第 27 行: | 第 27 行: | ||
#http://jendo.org:9001 | #http://jendo.org:9001 | ||
#http://jendo.org:9001/p/頁名 // 進入某頁 | #http://jendo.org:9001/p/頁名 // 進入某頁 | ||
− | #http://jendo.org:9001/admin // 安裝 Plugin 或編輯設定檔( | + | #http://jendo.org:9001/admin // 安裝 Plugin 或編輯設定檔(已能進入)<br>Setting.json 中 user帳密設定要把註解刪掉 |
+ | |||
====刪除一篇便箋(pad)==== | ====刪除一篇便箋(pad)==== |
2023年4月18日 (二) 14:18的修訂版本
目錄
一、安裝
前置準備:
- 一個 OS 專用於 etherpad 的帳號,如 adminNas
- root 權限
安裝步驟
- 先在 DS720+ 安裝 git server ,使得可以使用 git clone … 指令。
- 進 OS 取得 root 權限
- cd 到 web 服務的根目錄
- git clone https://github.com/ether/etherpad-lite.git
(士賢:從etherpad官網下載,再解壓縮再將資料夾上傳到伺服器)
會建立 etherpad-lite 目錄 - chown -R adminNas:administrators ./etherpad-lite
- 回復到 adminNas 的帳號身份
- cd etherpad-lite
- bin/run.sh
(士賢:src/bin/run.sh)
納入排程:
- 去「DSM/控制台/任務排程表/新增」
- 任務名稱:可取「run etherpad」(無法用英文)
- 使用者帳號:adminNas
- 「排程/在以下日期執行/不重複」
- 任務設定:「bash /volume1/web/etherpad-lite/bin/run.sh」
- 回到「控制台/任務排程表」挑選剛才新增的任務,按「執行」按鈕
額外的安裝布驟:
- bin/run.sh --root
- export NODE_ENV=production
二、使用
- http://jendo.org:9001
- http://jendo.org:9001/p/頁名 // 進入某頁
- http://jendo.org:9001/admin // 安裝 Plugin 或編輯設定檔(已能進入)
Setting.json 中 user帳密設定要把註解刪掉
刪除一篇便箋(pad)
http://網址:9001/api/1/deletePad?padID=便箋名&apikey=.......
apikey 去 APIKEY.txt 中查閱
三、進階設定
編輯 settings.json
(一)使用 MySQL 在資料
用多行註解註解掉:
"dbType": "dirty", "dbSettings": { "filename": "var/dirty.db" },
改成:
"dbType" : "mysql", "dbSettings" : { "user": "某使用者", "host": "localhost", "port": 3306, "password": "密碼", "database": "etherpad", "charset": "utf8mb4" },
(二)須登入(至今皆失敗)
- "requireAuthentication" : true,
- "users":{} // 諸帳號
三、圖示
圖示是被做成字型使用,並且套用「Font_Awesome_5」
- 由主介面看原始碼,查 button 標籤的 class 屬性,查到諸圖示類別有:
- buttonicon-bold
- buttonicon-italic
- buttonicon-underline
- buttonicon-strikethrough
- buttonicon-insertorderedlist
- buttonicon-insertunorderedlist
- buttonicon-indent
- buttonicon-outdent
- buttonicon-undo
- buttonicon-redo
- buttonicon-clearauthorship
- buttonicon-import_export
- buttonicon-history
- buttonicon-savedRevision
- buttonicon-settings
- buttonicon-embed
- buttonicon-showusers
- btn-primary
- btn-default
- chatloadmessages
- 由 src/static/css/pad/icons.css 中查到上述各類別的字形編碼
- 由 src/static/font/fontawesome-etherpad.svg 中的各 glyph 標籤 unicode 屬性,查出其向量繪圖資料
四、檔案列表
ep_<plugin>/ ├ .github/ │ └ workflows/ │ └ npmpublish.yml ◄─ GitHub workflow to auto-publish on push ├ static/ │ ├ css/ ◄─ static .css files │ ├ images/ ◄─ static image files │ ├ js/ │ │ └ index.js ◄─ static client-side code │ └ tests/ │ ├ backend/ │ │ └ specs/ ◄─ backend (server) tests │ └ frontend/ │ └ specs/ ◄─ frontend (client) tests ├ templates/ ◄─ EJS templates (.html, .js, .css, etc.) ├ locales/ │ ├ en.json ◄─ English (US) strings │ └ qqq.json ◄─ optional hints for translators ├ .travis.yml ◄─ Travis CI config ├ LICENSE ├ README.md ├ ep.json ◄─ Etherpad plugin definition ├ index.js ◄─ server-side code ├ package.json └ package-lock.json
五、啟動解說
#!/bin/sh MY_DIR=$(cd "${0%/*}" && pwd -P) || exit 1 cd "${MY_DIR}/../.." || exit 1 . src/bin/functions.sh exec node $(compute_node_args) src/node/server.js "$@"
這是一個 shell 腳本,它使用 Node.js 執行一個 JavaScript 文件。讓我們逐行解析:
- #!/bin/sh (如何執行)
這是一個 shebang 行,它告訴系統用哪個解釋器來執行腳本。在這個例子中,它指定用 /bin/sh,即 Bourne shell 或其相容的 shell。 - MY_DIR=$(cd "${0%/*}" && pwd -P) || exit 1 (執行路徑設定)
這行命令首先通過 ${0%/*} 獲取腳本所在的目錄,$0 表示腳本本身的路徑,${0%/*} 則是去掉文件名,只保留目錄路徑。
然後使用 cd 切換到該目錄,並使用 pwd -P 獲取實際的絕對路徑,將其賦值給變量 MY_DIR。
如果操作失敗,則使用 exit 1 終止腳本執行並返回錯誤碼 1。 - cd "${MY_DIR}/../.." || exit 1 (切換執行路徑)
切換到 MY_DIR 變量所指向的目錄的上兩級目錄。
如果操作失敗,則使用 exit 1 終止腳本執行並返回錯誤碼 1。 - . src/bin/functions.sh (常數參數設定)
使用點命令(.)來源(source)src/bin/functions.sh 文件。
這將執行該文件中的所有命令,並將其中定義的函數和變量導入當前腳本的環境。
可以使腳本中的函數(如 compute_node_args)在當前腳本中可用。 - exec node $(compute_node_args) src/node/server.js "$@" (執行伺服器)
這行命令與之前解釋的命令相同。
它在當前 shell 進程中使用 Node.js 執行 src/node/server.j 文件,並將 compute_node_args 腳本的輸出作為額外的命令行參數,再把所有其他傳遞給當前腳本的參數傳遞給 server.js 文件。
第五行程式碼更詳細解說
這條命令是在 Bash 環境下運行的,用於使用 Node.js 執行一個 JavaScript 文件。讓我們逐步解析這條命令:- exec
exec 是一個 shell 內建命令,它用於在當前進程中執行指定的命令,而不是創建一個新的進程。
這意味著當你使用 exec 執行一個命令時,該命令會替換當前 shell 進程,而不是在新的子進程中運行。當命令執行完畢後,進程將終止,而不是返回到原始的 shell 進程。 - node
node 是 Node.js 的命令行工具,用於執行 JavaScript 文件。
Node.js 是一個用於開發伺服器端應用程式的 JavaScript 運行環境。 - $(compute_node_args)
這是一個命令替換(command substitution)表達式。
它將會執行 compute_node_args 腳本(假設它是一個可執行腳本),並將其輸出插入到當前位置。
這個腳本可能會計算並生成一些 Node.js 需要的參數,例如指定的 Node.js 版本、記憶體限制等。 - src/node/server.js
這是要執行的 JavaScript 文件的路徑。
在這個例子中,這是一個 Node.js 伺服器應用程式的入口點。 - "$@"
這是一個特殊的 shell 參數,代表所有傳遞給當前腳本或函數的參數。
在這裡,它將會把所有參數傳遞給 server.js 文件。
綜上所述,這條命令的功能是在當前 shell 進程中使用 Node.js 執行 src/node/server.js 文件,並將 compute_node_args 腳本的輸出作為額外的命令行參數,再把所有其他傳遞給當前腳本的參數傳遞給 server.js 文件。
- exec
總結一下,這個腳本的目的是確保在正確的目錄下執行 Node.js 伺服器應用程式,並在需要時使用額外的命令行參數。在執行過程中,它還導入了一些函數和變量,可能對腳本的後續操作有用。
六、參考文件
- https://benson82208.pixnet.net/blog/post/44426446-線上多人共同編輯-etherpad-安裝
- https://docs.gandi.net/zh-hant/cloud/tutorials/etherpad_lite.html
- https://gis90.github.io/articles/7544/
- http://www.unixlinux.online/unixlinux/gdliunx/linuxj/201703/96960.html
- 以太墊的安裝與使用
附錄、DS218上共筆頁列表
SQL 指令:SELECT `key` FROM store WHERE `key` LIKE 'pad:%' AND `key` NOT LIKE '%:revs:%' AND `key` NOT LIKE '%:chat:%'
資料表中,key 可以有如下涵意
- pad:頁名:該頁當前版本內容
- pad:頁名:revs:數字:版本
- pad:頁名:chat:數字:聊天
一些頁面說明:
- 「052402」頁,是自主學習輔導平台設計 2021.5.24 上課時,第二組的紀錄
- 「Counseling」輔導工作圈會議紀錄
- TEEC4,組課共學導引(全班筆記)
- TEEC4A,認識自己、感受情緒
- TEEC4B,用甚麼管道,甚麼樣的方法去喚醒大眾
- TEEC4C,戲劇組課怎麼可以轉移線上
- TEEC4D,哲學思辨
- YHCU,與永和社大探討「海星培力」
- YHCU3,社大 2.0 與自主學習
- emep1,探討群學主體的本質
- emep2,正負能量與「群學主體」
- emep4,同儕成員之間的相處互動
- emep5,特殊學習需求
- emepOST,提議與投票
- emotion,SEL(社會情緒學習,Social-emotional learning)課程
- emx1,對四梯說明自主學習帶領者培力
- OST1A,兩岸自主學習資源
- EMEP1C,台灣體制外的教育工作者,可以到大陸去實習、交流些什麼?
- OST2A,個人自學申請案例討論
- EMEP2B,建構輔導資源網絡
- emx1,跟政大四梯講自主學習帶領者培力
- jahoschool1,大英百品GIS / 日本上古時期 / 世界簡史大事件
- jahoschool2,日本古代 / 世界簡史大事件
- jahoschool3,日本幕府時期
- jahoschool4,大正、昭和、明治
- resource,自主學習典範相關資源
- science4everyone,2021均優學習論壇 / 全民科學平台議程
- subsidize,補助要點平臺化
- QA:自主學習三日譚,互動式問答課程:自主學習是甚麼?詹志禹、丁志仁回應大家
- 在孩子協助孩子成長的前提下參與者的關係互動:自主學習三日譚B群第三小隊的討論會議紀錄
- spectru:光譜平台結案報大綱架構
- spectrum:光譜平台結案報告草稿
- gogopublic:教育再公共化聯盟 2023.1 月 六次籌備聊天會
- gogopublicY:教育再公共化聯盟/青年政綱
- 20221224chi:開門辧教育落花生,同村共養教育
- 20221222:開門辧教育落花生,美國國防部新一代戰場管理 / 大陸先鋒教育聯盟舉隅 / OST評價
- 20221208:開門辧教育落花生,現場怎麼支持自主學習 / 四組組內觀察員分享
- 20221201:開門辧教育落花生,資淺學習者參與治理課程的方法
- 20221116chi:開門辦教育落花生,無界學習與生活實踐
- ALinEE:在實驗教育中發展自主學習
- wpnd:教育再公共化聯盟 / 動全民國防教育小組
- teenager:待定向青少年適性學習
當前諸頁列表:
pad:052402 |
pad:20221116chi |
pad:20221201 |
pad:20221208 |
pad:20221222 |
pad:20221224chi |
pad:2023qualitylearning |
pad:2023tianzige |
pad:2023均優_綜合座談 |
pad:2023論壇_閉幕 |
pad:ALPS |
pad:ALYLN |
pad:ALinEE |
pad:Counseling |
pad:EFPP |
pad:EMEP1C |
pad:EMEP2B |
pad:OST1A |
pad:OST2A |
pad:QA |
pad:SENS2023 |
pad:TASA |
pad:TEEC4A |
pad:TEEC4B |
pad:TEEC4C |
pad:TEEC4D |
pad:TEEC5 |
pad:TEEC5A |
pad:TEEC5B |
pad:TEEC5C |
pad:TEEC5D |
pad:YGPP |
pad:YHCU |
pad:YHCU3 |
pad:YLN |
pad:emep1 |
pad:emep2 |
pad:emep4 |
pad:emep5 |
pad:emepOST |
pad:emotion |
pad:emx1 |
pad:g0v_s4e |
pad:ggpAssistant |
pad:ggpIntern |
pad:gogopublic |
pad:gogopublicY |
pad:jahoschool |
pad:jahoschool1 |
pad:jahoschool2 |
pad:jahoschool3 |
pad:jahoschool4 |
pad:jendo |
pad:officebuddies |
pad:peanut |
pad:peanutB |
pad:peanutC |
pad:peanutD |
pad:preschool |
pad:ql2022 |
pad:qlmingroups |
pad:resource |
pad:science4everyone |
pad:spectru |
pad:spectrum |
pad:subsidize |
pad:teec6 |
pad:teec6組課共學導引 |
pad:teenage |
pad:temp |
pad:wpnd |
pad:wpnd_1 |
pad:三份政策推動說明 |
pad:商借場地參考 |
pad:在孩子協助孩子成長的前提下參與者的關係互動 |
pad:實驗教育機構的眉眉角角 |
pad:推進台灣成為青年的安居社會 |
pad:科技人才教育立院公聽會 |
pad:討論青年世代團結計畫 |
pad:黑熊學院與教育再公共化聯盟 |