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的修訂版本

一、安裝

前置準備:

  1. 一個 OS 專用於 etherpad 的帳號,如 adminNas
  2. root 權限

安裝步驟

  1. 先在 DS720+ 安裝 git server ,使得可以使用 git clone … 指令。
  2. 進 OS 取得 root 權限
  3. cd 到 web 服務的根目錄
  4. git clone https://github.com/ether/etherpad-lite.git
    (士賢:從etherpad官網下載,再解壓縮再將資料夾上傳到伺服器)
    會建立 etherpad-lite 目錄
  5. chown -R adminNas:administrators ./etherpad-lite
  6. 回復到 adminNas 的帳號身份
  7. cd etherpad-lite
  8. bin/run.sh
    (士賢:src/bin/run.sh)

納入排程:

  1. 去「DSM/控制台/任務排程表/新增」
  2. 任務名稱:可取「run etherpad」(無法用英文)
  3. 使用者帳號:adminNas
  4. 「排程/在以下日期執行/不重複」
  5. 任務設定:「bash /volume1/web/etherpad-lite/bin/run.sh」
  6. 回到「控制台/任務排程表」挑選剛才新增的任務,按「執行」按鈕

額外的安裝布驟:

  1. bin/run.sh --root
  2. export NODE_ENV=production

二、使用

  1. http://jendo.org:9001
  2. http://jendo.org:9001/p/頁名 // 進入某頁
  3. 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"
},

(二)須登入(至今皆失敗)

  1. "requireAuthentication" : true,
  2. "users":{} // 諸帳號

三、圖示

圖示是被做成字型使用,並且套用「Font_Awesome_5」

  • 由主介面看原始碼,查 button 標籤的 class 屬性,查到諸圖示類別有:
    1. buttonicon-bold
    2. buttonicon-italic
    3. buttonicon-underline
    4. buttonicon-strikethrough
    5. buttonicon-insertorderedlist
    6. buttonicon-insertunorderedlist
    7. buttonicon-indent
    8. buttonicon-outdent
    9. buttonicon-undo
    10. buttonicon-redo
    11. buttonicon-clearauthorship
    12. buttonicon-import_export
    13. buttonicon-history
    14. buttonicon-savedRevision
    15. buttonicon-settings
    16. buttonicon-embed
    17. buttonicon-showusers
    18. btn-primary
    19. btn-default
    20. 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 文件。讓我們逐行解析:

  1. #!/bin/sh (如何執行)
    這是一個 shebang 行,它告訴系統用哪個解釋器來執行腳本。在這個例子中,它指定用 /bin/sh,即 Bourne shell 或其相容的 shell。
  2. MY_DIR=$(cd "${0%/*}" && pwd -P) || exit 1 (執行路徑設定)
    這行命令首先通過 ${0%/*} 獲取腳本所在的目錄,$0 表示腳本本身的路徑,${0%/*} 則是去掉文件名,只保留目錄路徑。
    然後使用 cd 切換到該目錄,並使用 pwd -P 獲取實際的絕對路徑,將其賦值給變量 MY_DIR。
    如果操作失敗,則使用 exit 1 終止腳本執行並返回錯誤碼 1。
  3. cd "${MY_DIR}/../.." || exit 1 (切換執行路徑)
    切換到 MY_DIR 變量所指向的目錄的上兩級目錄。
    如果操作失敗,則使用 exit 1 終止腳本執行並返回錯誤碼 1。
  4. . src/bin/functions.sh (常數參數設定)
    使用點命令(.)來源(source)src/bin/functions.sh 文件。
    這將執行該文件中的所有命令,並將其中定義的函數和變量導入當前腳本的環境。
    可以使腳本中的函數(如 compute_node_args)在當前腳本中可用。
  5. 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 文件。讓我們逐步解析這條命令:
    1. exec
      exec 是一個 shell 內建命令,它用於在當前進程中執行指定的命令,而不是創建一個新的進程。
      這意味著當你使用 exec 執行一個命令時,該命令會替換當前 shell 進程,而不是在新的子進程中運行。當命令執行完畢後,進程將終止,而不是返回到原始的 shell 進程。
    2. node
      node 是 Node.js 的命令行工具,用於執行 JavaScript 文件。
      Node.js 是一個用於開發伺服器端應用程式的 JavaScript 運行環境。
    3. $(compute_node_args)
      這是一個命令替換(command substitution)表達式。
      它將會執行 compute_node_args 腳本(假設它是一個可執行腳本),並將其輸出插入到當前位置。
      這個腳本可能會計算並生成一些 Node.js 需要的參數,例如指定的 Node.js 版本、記憶體限制等。
    4. src/node/server.js
      這是要執行的 JavaScript 文件的路徑。
      在這個例子中,這是一個 Node.js 伺服器應用程式的入口點。
    5. "$@"
      這是一個特殊的 shell 參數,代表所有傳遞給當前腳本或函數的參數。
      在這裡,它將會把所有參數傳遞給 server.js 文件。
      綜上所述,這條命令的功能是在當前 shell 進程中使用 Node.js 執行 src/node/server.js 文件,並將 compute_node_args 腳本的輸出作為額外的命令行參數,再把所有其他傳遞給當前腳本的參數傳遞給 server.js 文件。

總結一下,這個腳本的目的是確保在正確的目錄下執行 Node.js 伺服器應用程式,並在需要時使用額外的命令行參數。在執行過程中,它還導入了一些函數和變量,可能對腳本的後續操作有用。

六、參考文件

  1. https://benson82208.pixnet.net/blog/post/44426446-線上多人共同編輯-etherpad-安裝
  2. https://docs.gandi.net/zh-hant/cloud/tutorials/etherpad_lite.html
  3. https://gis90.github.io/articles/7544/
  4. http://www.unixlinux.online/unixlinux/gdliunx/linuxj/201703/96960.html
  5. 以太墊的安裝與使用

附錄、DS218上共筆頁列表

SQL 指令:SELECT `key` FROM store WHERE `key` LIKE 'pad:%' AND `key` NOT LIKE '%:revs:%' AND `key` NOT LIKE '%:chat:%'

資料表中,key 可以有如下涵意

  1. pad:頁名:該頁當前版本內容
  2. pad:頁名:revs:數字:版本
  3. pad:頁名:chat:數字:聊天

一些頁面說明:

  1. 「052402」頁,是自主學習輔導平台設計 2021.5.24 上課時,第二組的紀錄
  2. 「Counseling」輔導工作圈會議紀錄
  3. TEEC4,組課共學導引(全班筆記)
  4. TEEC4A,認識自己、感受情緒
  5. TEEC4B,用甚麼管道,甚麼樣的方法去喚醒大眾
  6. TEEC4C,戲劇組課怎麼可以轉移線上
  7. TEEC4D,哲學思辨
  8. YHCU,與永和社大探討「海星培力」
  9. YHCU3,社大 2.0 與自主學習
  10. emep1,探討群學主體的本質
  11. emep2,正負能量與「群學主體」
  12. emep4,同儕成員之間的相處互動
  13. emep5,特殊學習需求
  14. emepOST,提議與投票
  15. emotion,SEL(社會情緒學習,Social-emotional learning)課程
  16. emx1,對四梯說明自主學習帶領者培力
  17. OST1A,兩岸自主學習資源
  18. EMEP1C,台灣體制外的教育工作者,可以到大陸去實習、交流些什麼?
  19. OST2A,個人自學申請案例討論
  20. EMEP2B,建構輔導資源網絡
  21. emx1,跟政大四梯講自主學習帶領者培力
  22. jahoschool1,大英百品GIS / 日本上古時期 / 世界簡史大事件
  23. jahoschool2,日本古代 / 世界簡史大事件
  24. jahoschool3,日本幕府時期
  25. jahoschool4,大正、昭和、明治
  26. resource,自主學習典範相關資源
  27. science4everyone,2021均優學習論壇 / 全民科學平台議程
  28. subsidize,補助要點平臺化
  29. QA:自主學習三日譚,互動式問答課程:自主學習是甚麼?詹志禹、丁志仁回應大家
  30. 在孩子協助孩子成長的前提下參與者的關係互動:自主學習三日譚B群第三小隊的討論會議紀錄
  31. spectru:光譜平台結案報大綱架構
  32. spectrum:光譜平台結案報告草稿
  33. gogopublic:教育再公共化聯盟 2023.1 月 六次籌備聊天會
  34. gogopublicY:教育再公共化聯盟/青年政綱
  35. 20221224chi:開門辧教育落花生,同村共養教育
  36. 20221222:開門辧教育落花生,美國國防部新一代戰場管理 / 大陸先鋒教育聯盟舉隅 / OST評價
  37. 20221208:開門辧教育落花生,現場怎麼支持自主學習 / 四組組內觀察員分享
  38. 20221201:開門辧教育落花生,資淺學習者參與治理課程的方法
  39. 20221116chi:開門辦教育落花生,無界學習與生活實踐
  40. ALinEE:在實驗教育中發展自主學習
  41. wpnd:教育再公共化聯盟 / 動全民國防教育小組
  42. 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:黑熊學院與教育再公共化聯盟