什麼是 Webhook?

在編寫整合不同服務的程式碼時,使用 Webhook 是很常見的。 什麼是 Webhook? Webhook 是一個 POST 請求處理器,它會等待有人呼叫它,在有人呼叫時進行某些工作。 讓我舉個例子。我使用 Paddle 來銷售我的 Bootcamp,每當有人註冊時,我的 Webhook 會被呼叫並傳遞一些 JSON 資料。 這些資料包括客戶的電子郵件、客戶姓名和已購買的產品。 然後,Webhook 負責將客戶添加到 Airtable 底稿中,並向客戶發送歡迎郵件和一些資訊。 在我這個特定的案例中,Webhook 是使用 Express 所建構的 Node.js 應用程式,但它可以是任何能夠接受網路請求且可從互聯網訪問的東西。我將它放在了一個 VPS 上,但也可以是一個無伺服器函數。 支付平台提供 Webhook 是很常見的 - 它們處理付款,然後讓你執行你可能需要執行的「事情」。 Webhook 的另一個使用案例是在你想要時在一台機器上執行任務。例如,所有部署平台都提供 Webhook,你可以呼叫該 Webhook 來觸發新的部署。 我在 Netlify 或 Cloudflare Pages 使用它。我在 IFTTT 上設定了一個任務,每天早上 8 點觸發部署程序,所以我前一天安排的文章現在被發佈了,因為它的發佈日期已經過去了。 這對於我的一貫性非常重要,因為我知道每天早上 8 點我的靜態網站的文章都會被發佈。我不再需要手動執行此動作。 許多無代碼工具允許你使用它們來創建自動化。它們是非常酷的。 如果你思考一下,Webhook 就是讓互聯網保持連接的黏合劑。它們確實讓我能運行我的業務,所以我對它們的存在感到感激。

如何在 Ghost 網站上添加搜索功能

我想在自己使用 Ghost 架設的網站上添加搜索功能。 你可以在這個頁面上看到這個教程的最終效果:https://ritywool.it/ricerca/。 當你第一次開始處理這個任務時,你會覺得 “這一定很簡單”。 但不知何故 Ghost 軟件並沒有提供一個簡單的解決方案,你需要使用第三方插件並修改模板。這確實需要一位懂得處理這些的開發者。 不知道為什麼他們沒有提供一個內建的簡單解決方案,而不是需要像我這樣的開發者花時間來調整主題。 這真是奇怪,因為他們在管理面板中有搜索功能,但卻沒有解決辦法來面對公共頁面。他們官方建議使用 Google 自定義搜索,但這實際上並不是一個解決方案。 如果是一個靜態網站生成器,這也還可以理解,因為它沒有運行搜索的引擎,但 Ghost 不是一個靜態網站生成器。 我探索了一段時間的可能選項。他們文檔中建議的一個選項是 GhostHunter,但這對我來說沒有起作用。我嘗試了一下,但在控制台中出現了各種 JavaScript 錯誤,而且我沒有耐心去看問題出在哪裡。這個項目似乎也已經被停止開發了,最後一次提交是 2 年前。 然後我找到了 Ghost Finder,這個插件完美地解決了問題,所以我在這裡解釋一下如何使用。 它是一個使用 Ghost API 來搜索文章的 JavaScript 庫。 首先,我在本地創建了網站的副本(使用 npm install ghost-cli -g 和 ghost install local),並使用了在生產環境上使用的主題。我從 /ghost/#/settings/design 下載了這個主題。 接著,我下載了 Ghost Finder 庫並將其放在 assets 目錄下。 然後,我在 Ghost 管理面板中創建了一個具有 “/search” URL 別名的 search 頁面。 然後我進入了編輯器,創建了一個 page-search.hbs 文件(後面的 - 之後的文件名必須與頁面別名匹配)。 我在命令行中使用 ghost restart 重新啟動 Ghost,以使其識別到這個頁面(這只在本地需要,生產環境上不需要)。 我使用了 Casper 默認主題,這部分可能因為你使用的主題不同而有所不同,不過我在 default.hbs 文件中加入了 Ghost Finder 的 JavaScript 文件(這會載入到所有頁面,不幸的是):...