檢視 Etherpad 的原始碼
←
Etherpad
跳轉到:
導覽
、
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
您剛才的請求只有這個使用者組的使用者才能使用:
使用者
你可以檢視並複製本頁面的原始碼。
[[分類:網路服務]] ===一、安裝=== 前置準備: #一個 OS 專用於 etherpad 的帳號,如 adminNas # root 權限 安裝步驟 #先在 DS720+ 安裝 git server ,使得可以使用 git clone … 指令。 #進 OS 取得 root 權限 #cd 到 web 服務的根目錄 #git clone https://github.com/ether/etherpad-lite.git<br/>(士賢:從etherpad官網下載,再解壓縮再將資料夾上傳到伺服器)<br/>會建立 etherpad-lite 目錄 #chown -R adminNas:administrators ./etherpad-lite #回復到 adminNas 的帳號身份 #cd etherpad-lite #bin/run.sh<br/>(士賢: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 或編輯設定檔(暫未能進入) ====刪除一篇便箋(pad)==== http://網址:9001/api/1/deletePad?padID=便箋名&apikey=.......<br/>apikey 去 APIKEY.txt 中查閱 ===三、進階設定=== 編輯 settings.json ====(一)使用 MySQL 在資料==== 用多行註解註解掉: <pre>"dbType": "dirty", "dbSettings": { "filename": "var/dirty.db" },</pre> 改成: <pre>"dbType" : "mysql", "dbSettings" : { "user": "某使用者", "host": "localhost", "port": 3306, "password": "密碼", "database": "etherpad", "charset": "utf8mb4" },</pre> ====(二)須登入(至今皆失敗)==== #"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 屬性,查出其向量繪圖資料 ===四、檔案列表=== <pre>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 </pre> ===五、啟動解說=== <pre>#!/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 "$@"</pre> 這是一個 shell 腳本,它使用 Node.js 執行一個 JavaScript 文件。讓我們逐行解析: 1. #!/bin/sh:這是一個 shebang(或稱 hashbang)行,它告訴系統用哪個解釋器來執行腳本。在這個例子中,它指定用 /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.js 文件,並將 compute_node_args 腳本的輸出作為額外的命令行參數,再把所有其他傳遞給當前腳本的參數傳遞給 server.js 文件。 總結一下,這個腳本的目的是確保在正確的目錄下執行 Node.js 伺服器應用程式,並在需要時使用額外的命令行參數。在執行過程中,它還導入了一些函數和變量,可能對腳本的後續操作有用。 ====上段 5. 更詳細解說==== 這條命令是在 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 文件。 ===六、參考文件=== #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 #[https://cn.compozi.com/etherpad-real-time-web-based-online-collaborative-document-editor 以太墊的安裝與使用] ===附錄、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:待定向青少年適性學習 '''當前諸頁列表:''' <sqltbl> dbname=etherpad sql=SELECT `key` FROM store WHERE `key` LIKE 'pad:%' AND `key` NOT LIKE '%:revs:%' AND `key` NOT LIKE '%:chat:%' </sqltbl>
返回到
Etherpad
。
導航
個人工具
登入
名字空間
頁面
討論
變換
檢視
閱讀
檢視原始碼
檢視歷史
動作
搜尋
導覽
首頁
近期變動
隨機頁面
使用說明
工具箱
連入頁面
相關頁面修訂記錄
特殊頁面
頁面資訊