Etherpad:修訂版本之間的差異

出自福留子孫
跳轉到: 導覽搜尋
一些頁面說明:
一些頁面說明:
第 178 行: 第 178 行:
  
 
<sqltbl>
 
<sqltbl>
 +
dbname=etherpad
 
sql=SELECT page,caption,b.`key` FROM pageCaption a left join store b on a.page=b.`key` where b.`key` is null
 
sql=SELECT page,caption,b.`key` FROM pageCaption a left join store b on a.page=b.`key` where b.`key` is null
 
</sqltbl>
 
</sqltbl>

2023年6月1日 (四) 10:37的修訂版本

一、安裝

前置準備:

  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. ep_embedmedia:嵌入媒體 (youtube、vimeo 等)。
  2. ep_image_insert:可插入圖像並調整圖像大小的功能。
  3. ep_webrtc:WebRTC的音頻/視頻聊天的功能。
  4. ep_mathjax:支持 LaTeX STylee 數學公式。
  5. ep_mediawiki:在 Etherpad 中編輯並導出為 mediawiki
  6. ep_real_time_chat:即時聊天更新。
  7. ep_inline_voting:添加選項以對部分文本進行投票
  8. ep_catalog_plugin:etherpad目錄插件
  9. ep_­align:用於設置段落的左對齊、居中對齊、右對齊或完全對齊的功能。
  10. ep_­markdown:可應用 Markdown 編輯和導出。
  11. ep_­font_­size:可改變文字大小的功能。
  12. ep_font_color:可改變文字顏色的功能。
  13. ep_print_preview_pdf:列印及預覽 PDF
  14. ep_print:列印功能。
  15. ep_desktop_notifications:接收聊天桌面通知。
  16. ep_themes:改變 theme 的不同部分的主題、樣式和顏色。
  17. ep_guest:限制未登錄的使用者有限的訪問許可。
  18. ep_openid_connect:限制特定的登錄者帳號密碼
  19. ep_table_of_contents:表格相關]
  20. ep_private_pad: 用戶註冊和登錄以管理私人pad (安裝會導致 EtherPad 無法開啟)

七、參考文件

  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:數字:聊天

一些頁面說明:

當前諸頁列表:

pad:052402 是自主學習輔導平台設計 2021.5.24 上課時,第二組的紀錄
pad:20221116chi 開門辦教育落花生,無界學習與生活實踐
pad:20221201 開門辧教育落花生,資淺學習者參與治理課程的方法
pad:20221208 開門辧教育落花生,現場怎麼支持自主學習 / 四組組內觀察員分享
pad:20221222 開門辧教育落花生,美國國防部新一代戰場管理 / 大陸先鋒教育聯盟舉隅 / OST評價
pad:20221224chi 開門辧教育落花生,同村共養教育
pad:ALinEE 在實驗教育中發展自主學習
pad:Counseling 輔導工作圈會議紀錄
pad:EMEP1C 台灣體制外的教育工作者,可以到大陸去實習、交流些什麼?
pad:EMEP2B 建構輔導資源網絡
pad:OST1A 兩岸自主學習資源
pad:OST2A 個人自學申請案例討論
pad:QA 自主學習三日譚,互動式問答課程:自主學習是甚麼?詹志禹、丁志仁回應大家
pad:TEEC4A 認識自己、感受情緒
pad:TEEC4B 用甚麼管道,甚麼樣的方法去喚醒大眾
pad:TEEC4C 戲劇組課怎麼可以轉移線上
pad:TEEC4D 哲學思辨
pad:TEEC5 政大五梯「組課共學導引」全班共筆
pad:TEEC5A 戲劇治療與自我對話,組課反思
pad:TEEC5B 台灣在地文化,組課反思
pad:TEEC5C 國外教育面面觀,組課反思
pad:TEEC5D 體驗自己的N種方式,組課反思
pad:YHCU 與永和社大探討「海星培力」
pad:YHCU3 社大 2.0 與自主學習
pad:YLN 青年學習網絡,組聚紀錄
pad:emep1 探討群學主體的本質
pad:emep2 正負能量與「群學主體」
pad:emep4 同儕成員之間的相處互動
pad:emep5 特殊學習需求
pad:emepOST 提議與投票
pad:emotion SEL(社會情緒學習 Social-emotional learning)課程
pad:emx1 對四梯說明自主學習帶領者培力
pad:g0v_s4e 2022.8.2 gov 黑客松 動手學科學
pad:ggpAssistant 聯盟協助伙伴們開會
pad:gogopublic 教育再公共化聯盟 2023.1 月 六次籌備聊天會
pad:gogopublicY 教育再公共化聯盟/青年政綱
pad:jahoschool 嘉禾書院爬大山行程
pad:jahoschool1 大英百品GIS / 日本上古時期 / 世界簡史大事件
pad:jahoschool2 日本古代 / 世界簡史大事件
pad:jahoschool3 日本幕府時期
pad:jahoschool4 大正、昭和、明治
pad:jendo 2023/03/02 (四) 對振鐸說明教育再公共化聯盟
pad:peanut 開門辦教育落花生,B組:資淺學習者參與治理課程的10個方法,第一次討論
pad:peanutB 開門辦教育落花生,B組:資淺學習者參與治理課程的10個方法,第二次討論
pad:peanutC 開門辦教育落花生,C組:群學的本質與正負能量
pad:peanutD 開門辦教育落花生,D組:大陸先鋒教育聯盟舉隅
pad:ql2022 2022均優學習論壇 / 閉幕
pad:qlmingroups 發想均優的微型社群
pad:resource 自主學習典範相關資源
pad:science4everyone 2021均優學習論壇 / 全民科學平台議程
pad:spectru 光譜平台結案報大綱架構
pad:spectrum 光譜平台結案報告草稿
pad:subsidize 補助要點平臺化
pad:teenage 待定向青少年適性學習
pad:wpnd 教育再公共化聯盟 / 動全民國防教育小組
pad:
在孩子協助孩子成長的前提下參與者的關係互動
自主學習三日譚B群第三小隊的討論會議紀錄
pad:討論青年世代團結計畫 討論青年世代團結計畫
pad:商借場地參考 各種活動可以借用場地的參考資料
pad:ALYLN 2023.4.27與政大X實驗教育學院交流:自主學習與青年彈性學習網絡
pad:teec6 政大六梯共識營
pad:三份政策推動說明 和楊逸帆協作
pad:推進台灣成為青年的安居社會 政大六梯共識營,丁丁 OST
pad:YGPP 聯盟第五訴求與教育連結的邏輯
pad:teec6組課共學導引 2023.05.21 六梯的組課共學導引
pad:TASA 國家太空中心B5G衛星
pad:黑熊學院與教育再公共化聯盟 2023.6.16 兩團體合作協調
pad:
2023qualitylearning
2023均優的討論紀錄
pad:ALPS 討論自帶培
pad:科技人才教育立院公聽會 張耀文,張其祿在立院圍毆 108 課綱
pad:SENS2023 協助特殊學習需求學生
pad:2023tianzige 田字格貴州必克實小教師培力
pad:2023均優_綜合座談 2023.7.28綜合座談
pad:2023論壇_閉幕 2023均優學習論壇_閉幕
pad:ggpIntern 教育再公共化聯盟志工研習
pad:temp 復盤新進實習人員一日研習課程
pad:實驗教育機構的眉眉角角 設計實驗教育機構
pad:preschool 2023.09.21 學前教育討論
pad:wpnd_1 2023.10.14_發展全民國防圓桌會議
pad:ggpAsistant
pad:teenage2