n8n 有多厲害,這邊就不贅述了,作為一個自動化工作流的軟體,n8n 相當適合用來產生判定輸入的工作流程,聊天機器人就是一個案例, n8n 有很多種建立方式,這邊就不著重於介紹了,以往很多 n8n 串 LINEBOT 都直接請使用原生的 webhook 功能,現在社群推出了一個 n8n-nodes-linewebhook 可以很快速地把發送以及推送給簡化,這邊就快速紀錄一下建立的流程。
首先要準備幾個東西
最近一直想要組一把 無線的 980 配置鍵盤,弄了很多配件卻遲遲沒有動手,直到最近看到 IROCKS 推出一款新的 980 配置無線鍵盤,直接省去了我想要組裝的念頭, 980 加上無線根本正中我的下懷。加上獨立的螢幕數位顯示內容、多功能轉盤,把過去鍵盤推出的優點以及新的特色都給整合進去了,實在是相當的心動,只接打消我想要 DIY 的念頭,直接實際帶回,應用個幾周之後,分享一下開箱的心得。
irocks K85R 外盒,這把是黑白配色,盒子上有標註特點,這把鍵盤是 2.4G有線無線雙模鍵盤
說到鍵盤不得不想到,以薄膜鍵盤出身的 IROCKS 鍵盤,近年來的機械式鍵盤越來越盛行,許多周邊廠商都只推出機械式鍵盤,還能推出薄膜鍵盤的廠商少之又少,IROCKS 出現幾款相當經典的薄膜鍵盤,其中包括 K10 、KR6260 、K50E ,其中 K10 KR6260 都是使用 POM 軸體來設計的,K50E 則是採用剪刀腳設計,這幾把薄膜鍵盤的輸入手感都相當的出色。
IROCKS 如今迎來 20周年慶祝,又重新將 K50E 改版,推出了 K50W Plus ,整體來說,拿掉了舊有的變速模式,增加了應用軟體的應用以及全新的外觀配色設計。
IROCKS K50W Plus 光從外盒外觀就可以看到 20周年紀念的字樣,還記得 15周年的時候,鍵盤盒子採用的也是最簡約的造型設計,20周年的設計也是簡單的採用黑底的設計,底部再帶出鍵盤框體的線條,相當的簡約不花俏。
現代開發環境不得不說,只需要下幾行指令之後,開發環境就隨之建立,Windows 自從 Windows 10 推出之後,利用WSL 子系統模式來執行 Linux , 近年來流行的 Docker 也快速的發展,利用系統層虛擬化,讓開發環境與正式環境相當的貼近。
在開發專案的時候相當推薦採用 統一的 Docker 環境來處理這些環境架設的問題,減少各個系統的問題處理,統一函示庫元件之類的套件載入方法,推薦使用 Docker 。
今天要介紹的就是利用 Laravel 官方推出的 Laravel Sail ,配合我最近整合的 LINEBOT套件,快速的建立起開發環境。
首先需要作業系統為 Windows 10 1909 以上,並安裝 WSL2 ,Windows 作業系統的部分我就不再贅述
透過官方的教學文件 Getting Started On Windows,你還需要安裝 Docker Desktop,萬事都備妥了之後,你需要打開命令提示字元,按下 WIN+R 輸入 CMD,或是直接執行命令提示字元
輸入
wsl
接著會跳入 wsl 子系統
前情提要? 上一篇實作方法利用了三個迴圈,取得標題,將標題的資料利用索引(index) 抓取表格的內容,
程式碼如下:
let headData = Array.from(document.querySelectorAll('thead > tr > th')).map(n=>n.innerText)
console.log('headData', headData )
let tableObject = []
for(let trNode of document.querySelectorAll('tbody > tr') ){
let data = {};
Array.from(trNode.querySelectorAll('td')).forEach((n , index)=>{
data[ headData[index] ] = n.innerText
})
tableObject.push(data)
}
console.log( 'tableObject ',tableObject )
其中內容可以看到,第二段的地方,所跑的迴圈是針對 td 來做處理,headData 的部分其實也是針對 tr 下的 欄位去做處理,以前針對 XHTML 有稍微看一下規範,在標準的 HTML 結構下 TABLE 的子節點必須是 caption,colgroup,thead,tbody,tr 幾種節點,tr 這個節點下也只能有 th 跟 td 在這個標準規範下,我們理論上可以信任瀏覽器會解析這些元素來使用
自從工作開始分前後端分離之後,JavaScript 的東西就比較少去鑽研。但近期工作又開始大量使用到 JavaScript ,開發的途中會需要重複使用一些迴圈函數。還記得為了因應瀏覽器的變化以及複雜程度, jQuery 的出現就讓開發者省去不少事情,DOM 的迴圈 each 可以直接從選擇器的 $(dom).each 來使用,演變到現在瀏覽器大多直接使用 querySelectorAll 的方法來跑 forEach, ECMAScript 的演化大大降低了對 jQuery 的依賴程度,開發前端開始探究起 JavaScript 的深度,進而演變許多框架,想要學好JavaScript MDN 就是個很好用的工具。
寫程式不需要一步到位,逐步漸進的達成目的,有機會再去把程式碼精簡調校,能夠理解其原理才會是最好的解法
這次就用個簡單的範例,當遇到表格的時候,要怎麼轉成 一般的 Plain Object ,這個例子也是我使用 Greasemonkey 腳本開發的時候,要將 DOM 的內容轉換成可以快速重複利用資料的做法,當使用腳本的時候,需要分解的網頁會是結果,要轉換成可利用的資料還需要經過一番抓取變換,熟悉操作之後就可以很容易地將資料轉換成畫面。
首先來一個範例: