這週,我對 Starchart 做了一些維護工作。該專案已經有一段時間沒有工作了,所以我們正在嘗試更新它的依賴項。
發展空間
/
澱粉藝術
用於管理自訂網域和憑證的自助服務工具
星圖
Starchart 讓 Seneca 開發者社群可以輕鬆建立和管理自己的自訂子網域和 SSL 證書,無需付費或無需提供個人資訊。
有關運行 Starchart 的信息,請參閱我們的部署指南。有關開發訊息,請參閱我們的貢獻指南。有關更多技術背景、規劃和初始設計,請參閱 wiki。
簡介
網路不斷發展,曾經困難的事情變得簡單。例如,託管自己的網站過去需要伺服器管理、作業系統、網路等方面的知識。如今,許多開發人員託管他們的個人和專案網站而無需接觸遠端伺服器,而是選擇(免費)雲端服務,例如 GitHub Pages、 Vercel、Netlify 或 AWS。
網路的安全模型也不斷發展。例如,瀏覽器供應商已在各地採用 HTTPS。這對於安全性很有好處,因為它可以在客戶端和伺服器之間實現基於憑證的加密。然而,就像…
計劃是修復 CI 工作流程,我們上週發現該工作流程已被破壞:
但在我找到解決方案之前,之前的開發人員之一 Eakam 解決了這個問題 - 事實證明這只是因為 Playwright 已經過時了。
將劇作家提升至 1.49.1
第772章

Playwright 安裝在 CI(E2E 測試)中失敗。修改劇作家版本應該可以解決這個問題。
參考:
我覺得我應該透過尋找更多的東西來彌補它,並認為更新更多的依賴項將是一個很好的起點。
由於該專案已經兩年沒有投入使用,因此存在大量由過時的軟體包引起的安全漏洞。我能夠透過 npm 審核修復修復大部分問題。
還有一些修復導致了 @remix-run/eslint-config 和 @remix-run/react 中的重大更改,所以我手動修改了它們。
其中一個更新(我同時更新了它們,所以我不能肯定地說,但我的賭注是/react)導致了類型檢查錯誤,因為[@remix-run/react].useNavigation( ).formData 現在可能是未定義的類型。我用可選鏈修復了它。
// Before const isLoading = navigation.state === 'submitting' && Number(navigation.formData.get('id')) === dnsRecord.id; // After const isLoading = navigation.state === 'submitting' && Number(navigation.formData?.get('id')) === dnsRecord.id;
我所做的其他更改與彈出的一些lint 錯誤有關(此時我意識到我已經關閉了ESLint 擴展,但我確信這些警告會隨更新一起出現,因為它在CI 中從未發生過)過去)。
- 在一個檔案中多次匯入相同模組的實例:
// Before import { getCertificateByUsername } from '~/models/certificate.server'; import { deleteCertificateById } from '~/models/certificate.server'; import { isAdmin } from '~/models/user.server'; import { getUserByUsername } from '~/models/user.server'; // After import { getCertificateByUsername, deleteCertificateById } from '~/models/certificate.server'; import { isAdmin, getUserByUsername } from '~/models/user.server';
- 當首選 const 時使用 let:
// Before let date = val.toLocaleDateString('en-US', { // After const date = val.toLocaleDateString('en-US', {
很驚訝它之前沒有捕捉到這些。
此外,當我打開 ESLint 擴充功能時,我有點吃驚,因為有大約 900 個 linter 錯誤。事實證明,這是因為 ESLint 對 Playwright 產生的輸出進行了 linting。所以我將 /playwright-report 加入到 .eslintignore。
這就是我這次衝刺的維護工作的總和。最終修復了 30 個嚴重的安全問題,所以還不錯。
更新依賴項
第775章

應該要修復一堆安全漏洞。
變化
- [x] 凹凸依賴項
- [x] 將 /playwright-report 加入 .eslintignore
- [x] 修正類型檢查和 linter 錯誤
我還重新啟動了 Dependabot,它更新了幾個小版本。如果不必手動調查和修補安全漏洞,那就太好了。
在其他新聞中,我向 Mattermost 發出的一個拉取請求終於被合併了!
[GH-29548] 避免在 `tokens_store.go` 中使用 SELECT *
#29558

總結
此公關:
- 將 token_store.go 中的 SQL 查詢切換為使用 SQLBuilder
- 在 TokenStore 的 SELECT 查詢中明確定義列。
- 將常見查詢分解到建構函式中。
門票連結
修補#29548
截圖
發行說明
// Before const isLoading = navigation.state === 'submitting' && Number(navigation.formData.get('id')) === dnsRecord.id; // After const isLoading = navigation.state === 'submitting' && Number(navigation.formData?.get('id')) === dnsRecord.id;
不久前就已獲得批准,但花了幾週時間才合併到 main 中。
與此同時,我一直在致力於我的其他公關工作。我被要求進行一些更改,正在等待重新審核。
[MM-53650] 為 webapp 新增禁用表情渲染設定
#29414

總結
此拉取請求向 Web 應用程式新增了一個使用者設置,以將渲染表情符號 (:D) 切換為表情符號 (?)。
該設定會作為元件加入 Components/user_settings/display/render_emoticons_as_emoji/ 中,並在 Components/user_settings/display/user_settings_display.tsx 中匯入。
我在 user_settings_display.tsx 中新增了一個 renderOnOffLabel() 函數,該函數從 Components/user_settings/advanced/user_settings_advanced.tsx 中提取,以幫助渲染新元件。
使用 savePreferences() 操作將設定儲存為使用者首選項。
我已經為 utils/constants.tsx 和 webapp/channels/src/packages/mattermost-redux/src/constants/preferences.ts 增加了偏好常數。
為了實際使用該設置,我修改了 Components/post_markdown 以接收它的值作為道具,為此我使用了 getBool() 並向配置添加了預設值。 post_markdown 將此值傳遞給選項物件上的 Markdown,然後將其傳遞給 utils/text_formatting.tsx,最後將該值作為新新增的參數傳遞給 emoticons.tsx。 emoticons.tsx 檢查該值是否為 true,如果是,則將表情符號轉換為表情符號。
我已經更新了受影響的測試並為新組件建立了單元測試。我還更新了英文翻譯文件。
QA 測試步驟
- 導航至使用者設定。
- 轉到顯示類別。
- 找到標示為「自動將表情符號渲染為表情符號」的部分,然後按一下「編輯」。
- 切換設定並點選「儲存」。
- 應使用該設定在客戶端切換當前使用者和其他使用者發送的訊息上的表情符號渲染。
門票連結
修復(部分)https://github.com/mattermost/mattermost/issues/26504 Jira https://mattermost.atlassian.net/browse/MM-53650
注意問題和票證也描述了將此功能添加到行動應用程式中,但此 PR 沒有。
截圖
before | after |
---|---|
![]() |
![]() |
發行說明
// Before const isLoading = navigation.state === 'submitting' && Number(navigation.formData.get('id')) === dnsRecord.id; // After const isLoading = navigation.state === 'submitting' && Number(navigation.formData?.get('id')) === dnsRecord.id;
處理這個 PR 很有趣,因為當我第一次提交它時,我什至不完全理解我的更改。離開很長一段時間後重新回到它並得到評論的反饋幫助我從一個新的角度看待它並更好地理解它。
Mattermost 應用程式從「首選項」和「設定」取得使用者設定狀態。我將我的設置添加到兩者中,模仿建議我參考的現有設置之一,但事實證明“配置”用於伺服器級設置,而這個新設置旨在成為客戶端選項。這些評論幫助我了解了我哪裡出錯了,而且實際上最終的改變比我認為必要的要小。
總的來說,我想說這是相當有成效的一周。
以上是恢復過時的項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。