<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【10月精彩回顧】Github 支持腳注,Chrome插件開發(fā)全攻略

          共 4550字,需瀏覽 10分鐘

           ·

          2021-11-01 11:13

          ddd8eeb63e40cf2788b995cb6b0a072b.webp

          2021-10-29[技巧]

          chrome 的 IdleDetector 可以允許你檢測用戶是否「AFK」(Away from keyboard),即雙手離開鍵盤一段時間。

          和 requestIdleCallback 不同, 它是檢測用戶是否空閑,即是否有交互動作,比如鼠標(biāo),鍵盤等。而 requestIdleCallback 是檢測瀏覽器本身是否空閑。

          你可以用它做一些事情,比如官方提到的:

          • 聊天應(yīng)用看對方是否在線
          • 用戶不在的話減少一些大型計算

          我之前在看斗魚直播或者 youtube 視頻也會有類型的檢測,當(dāng)你長時間離開的話,它會暫停并提示你是否繼續(xù)。我覺得這個可以顯著地減少用戶忘記關(guān)閉窗口帶來的帶寬消耗,不要小看它。這或許可以為你的公司節(jié)省很大一筆錢。

          更多關(guān)于這個 api 的使用請參考:https://web.dev/idle-detection/

          2021-10-28[技巧]

          chrome 95 出了一個新的 api EyeDropper 蠻有意思的。據(jù)說這個功能是微軟大佬貢獻的。

          使用后會出來一個采集顏色的光標(biāo),當(dāng)你確定后會在用戶選擇的顏色的 rgb 值返回你。

          代碼:

          const?eyeDropper?=?new?EyeDropper();
          const?result?=?await?eyeDropper.open();
          //?result?=?{sRGBHex:?'#160731'}

          大家可以直接在 chrome 95 以上的瀏覽器上在 devtool 的 console 中輸入上面的代碼查看效果。

          更多 chrome 95 新特性:https://developer.chrome.com/blog/new-in-chrome-95/

          2021-10-27[好文]

          chrome 擴展想必大家都用過么?那你有想過開發(fā)一款 chrome 擴展么?

          西法就開發(fā)了一款 chrome 擴展:《leetcode-cheatsheet》https://leetcode-solution.cn/download

          chrome 擴展開發(fā)最最頭疼的就是各種通信,比如 content-script 和 backgound 通信, background 如何和 popup 通信等等。這篇文章對這些常見的擴展開發(fā)問題進行了講述,并有大量的代碼和圖片,使得內(nèi)容通俗易懂。

          比如如果在 devtool 新建一個 panel?怎么在 devtool 的 elements 面板新建一個側(cè)邊欄。

          代碼演示:

          //?創(chuàng)建自定義面板,同一個插件可以創(chuàng)建多個自定義面板
          //?幾個參數(shù)依次為:panel標(biāo)題、圖標(biāo)(其實設(shè)置了也沒地方顯示)、要加載的頁面、加載成功后的回調(diào)
          chrome.devtools.panels.create('MyPanel',?'img/icon.png',?'mypanel.html',?function(panel)
          {
          ??console.log('自定義面板創(chuàng)建成功!');?//?注意這個log一般看不到
          });

          //?創(chuàng)建自定義側(cè)邊欄
          chrome.devtools.panels.elements.createSidebarPane("Images",?function(sidebar)
          {
          ??//?sidebar.setPage('../sidebar.html');?//?指定加載某個頁面
          ??sidebar.setExpression('document.querySelectorAll("img")',?'All?Images');?//?通過表達式來指定
          ??//sidebar.setObject({aaa:?111,?bbb:?'Hello?World!'});?//?直接設(shè)置顯示某個對象
          });

          圖片演示:

          153364025a82092ca2ac56617acabe71.webp0ebe2aca235f5807b8b9d82b9a3761d5.webp

          文章很長,有幾萬字,大家可以根據(jù)自己的需要挑重點看。

          地址:https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html

          2021-10-26[好文]

          OAuth 是什么?你如果還不知道就太 out 了。我的《91天學(xué)算法》官方網(wǎng)站就用了 OAuth 來鏈接 Github 登錄,地址:https://leetcode-solution.cn/91

          本文以 Github 為例,講解如果從零接入 OAuth2,適合新手。

          地址:https://www.honeybadger.io/blog/oauth-nodejs-javascript/

          2021-10-25[工具]

          一個語法檢查的工具,注意這里的語法是自然語言的語法,不是編程語言的語法,這同時也是該工具獨特的地方。

          地址:https://caderek.github.io/gramma/

          2021-10-19[工具]

          上家公司一直想做一個前端工具鏈,其中一環(huán)就是在編輯器(我們是 vscode)中集成工作流。比如在編輯器中新建工程,提交代碼,發(fā)布代碼, code review , 代碼檢查等等。

          只不過這個還是需要很多時間投入的,截止到我離職也沒有做的很完善。而這個開源產(chǎn)品做的已經(jīng)相當(dāng)完善了。如果你的公司有類似的需求,不妨直接嘗試使用,或者 fork 一份修改,能夠省去不少時間。

          這個工具是直接集成到 vscode 中的,無需切換到其他窗口,對于程序來說方便許多。

          4dc864ab58f4e5b276dccc579a8f47ca.webp

          地址:https://github.com/apptools-lab/AppWorks

          2021-10-18[好文]

          最近在開發(fā)小程序的調(diào)試工具,類似微信的調(diào)試工具。參考了幾篇文章,如果你也在做類似的事情,不妨參考下這幾篇文章。

          • 深入理解 Chrome DevTools
          • devtools

          不過說實話這幾篇文章的思路很值得借鑒,但是缺乏細節(jié),并且部分細節(jié)由于版本原因已經(jīng)缺乏參考性了(新版本 devtool api 發(fā)生了些變化),大家在閱讀的時候注意一下。

          2021-10-15[資訊]

          Github 中的 markdown 語法支持腳注(Footnotes)了。

          你可以使用如下語法

          Here?is?a?simple?footnote[^1].

          [^1]:?My?reference.

          這樣就可以渲染出如下帶有腳注的內(nèi)容:

          a0f6296b4a55bf97dd7bab2d89a100f7.webp

          類似地,之前其他平臺有類似如下的渲染腳注的語法,它通過擴展 markdown 鏈接語法的形式實現(xiàn)了腳注。

          Here?is?a?simple?[footnote](http://xxx.com?"My?reference")

          不過限制也很明顯,那就是必須是鏈接才能生成腳注,Github 的這種腳注語法就很好地解決了這個問題。

          更多關(guān)于 Github markdown 的語法可以參考這篇文章:https://docs.github.com/en/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

          2021-10-13[工具]

          Graphql 是 facebook 開源的一門查詢語言(query language)。

          如今在國內(nèi)的普及程度還遠遠不夠,主要原因就是上手難度高以及國內(nèi)社區(qū)和大公司輸出不夠(很多大公司其實都在用)。它不僅僅是前端的一個 client,還需要后端 server 的配合。

          而如果運用得到,甚至可以用來“替代” service worker,redux 等工具。另一方面和 ts 配合,可以大大完善后端接口類型,這個我在 9 月份的每日一薦推薦過相關(guān)的工具。今天推薦的是 Graphql 在社區(qū)非常有名的一個框架,它的估值也在隨著它的流行越來越高。

          地址:https://www.apollographql.com/docs

          2021-10-12[工具]

          ES Module Lexer 是一個針對 ESM 的詞法分析器,使用它可以對 ESM 文本進行分析,vite 中就使用了它分析文件依賴。由于使用了 wasm(默認(rèn)情況下), 它的速度很快。

          地址:https://github.com/guybedford/es-module-lexer

          2021-10-11[好文]

          vue 中可以用 v-html 直接動態(tài)注入 html,類似地,React 則可以通過 dangerouslySetInnerHTML 設(shè)置 html。

          但是如果不加以處理,很可能會遭遇 xss 攻擊。一種簡單的方法就是 html entity 轉(zhuǎn)義。社區(qū)也有類似的解決方案,比如 DomPurify。而這次官方標(biāo)準(zhǔn)出來了,它就是 Sanitizer API。這篇文章就詳細講述了 sanitizer 是什么,有什么用,兼容性如何,demo 程序,如何開啟等等一系列問題。

          地址:https://web.dev/sanitizer/

          2021-10-10[組件庫]

          Webview UI Toolkit for Visual Studio Code 是一個針對 vscode 開發(fā)的組件庫,由微軟官方開發(fā)。

          相比于其他組件庫,它有如下特點:

          1. 針對 vscode 定制,不僅 UI 更加一致,并且還能根據(jù) vscode 主題變換樣式
          2. 使用 web components,因此理論上可以應(yīng)用于任何前端框架
          3. 注重可訪問性。這點是國內(nèi)的很多組件庫都不注重的,但是這點卻很重要,不僅僅是針對障礙人士,對待一些正常人這也是必要的。比如我習(xí)慣使用 ESC 來關(guān)閉彈窗,但是很多網(wǎng)站卻關(guān)不掉,這讓我想起了垃圾廣告橫行的年代。
          4. 官方出品,必數(shù)精品。

          地址:https://microsoft.github.io/vscode-webview-ui-toolkit/

          2021-10-09[網(wǎng)站]

          很多人會問這樣的問題:「xx 語言的 yy 特性在 zz 語言中怎么寫啊?」 比如 Python 語言的 reverse 在 C++ 中怎么實現(xiàn)?

          我其實剛剛在用新語言的時候腦子也潛意識的有這種疑問,今天介紹的網(wǎng)站就整理了「很多常見操作的不同語言對比實現(xiàn)」

          仍然以 C++ 的 reverse 為例:

          f356afa6f2ef5fccc5cb923ad0238de3.webp

          你可以點擊上面的編程語言查看其他語言的 reverse 是如何實現(xiàn)的,目前該網(wǎng)站已經(jīng)提供了 277 個語言特性,這個工具網(wǎng)站對那些剛開始學(xué)習(xí)新語言的人非常有用。

          我們甚至可以直接開啟對比模式,以 Python 和 C++ 對比為例:

          34c26d85b4a0ea21ec7c990bb7f74122.webp

          地址:https://programming-idioms.org/idiom/19/reverse-a-list

          • 后臺回復(fù):typescript,獲取我寫的 typescript 系列文章,絕對精品
          • 后臺回復(fù):電子書,自動獲取我為大家整理的大量經(jīng)典電子書,省去你篩選以及下載的時間
          • 后臺回復(fù):不一樣的前端,自動獲取精選優(yōu)質(zhì)前端文章。
          • 后臺回復(fù):算法,自動獲取精選算法文章。另外也可關(guān)注我的另外一個專注算法的公眾號力扣加加
          • 后臺回復(fù):每日一薦,自動獲取我為大家總結(jié)的每日一薦月刊,內(nèi)含精品文章,實用技巧,高效工具等等

          a1b0e01aa9fd44b13178bc1db2b9c10a.webp

          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国家一级黄色视频 | 日本一区视频在线观看 | 人妻黄色 | 四虎91 | 免费观看日本A片 |