<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JW</title>
    <description>The latest articles on DEV Community by JW (@jiangweixian).</description>
    <link>https://dev.to/jiangweixian</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F765904%2F3d7d98e6-f25b-4a64-bd16-a29192c0bdbd.jpeg</url>
      <title>DEV Community: JW</title>
      <link>https://dev.to/jiangweixian</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jiangweixian"/>
    <language>en</language>
    <item>
      <title>Check repo package detail as quick as possible</title>
      <dc:creator>JW</dc:creator>
      <pubDate>Wed, 06 Jul 2022 03:21:35 +0000</pubDate>
      <link>https://dev.to/jiangweixian/check-repo-package-detail-as-quick-as-possible-3pem</link>
      <guid>https://dev.to/jiangweixian/check-repo-package-detail-as-quick-as-possible-3pem</guid>
      <description>&lt;p&gt;Recently I meet a problem, sometimes I will read some awesome repos' source code to improve my code skills.&lt;/p&gt;

&lt;p&gt;Also I will read &lt;code&gt;package.json&lt;/code&gt; file, find some useful and interesting packages. However, npm packages listed in &lt;code&gt;package.json&lt;/code&gt; in Github never display npm readme. It is difficult to infer from the npm package name what function it has.&lt;/p&gt;

&lt;p&gt;I always copy npm package name, and search in google(or in alfred npm workflow). It's really annoying. Is there anyway to list all npm readme at once?&lt;/p&gt;

&lt;p&gt;As a front-end developer, I know npm provide public &lt;code&gt;npm-package-info&lt;/code&gt; API, also fetch Github repo &lt;code&gt;package.json&lt;/code&gt; detail api is public. &lt;strong&gt;So why not create a web extensions to save my time?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This Web extension should as simple as possible, it should only contains &lt;strong&gt;A simple button, click it, then show me all npm package readme.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;After spending almost a week time, include off-hours and weekends. Now, It launches in the chrome webstore, you can click &lt;a href="https://chrome.google.com/webstore/detail/repo-stack/cgakjpmmkidebbfdjmolbenhnpibgekc?hl=zh-CN&amp;amp;authuser=0"&gt;here&lt;/a&gt; to install it.&lt;/p&gt;

&lt;p&gt;Usage is very simple.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to any Github repo page (which include at least a &lt;code&gt;package.json&lt;/code&gt; file)&lt;/li&gt;
&lt;li&gt;Click web extensions popup Icon (on the right top of the chrome browser).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hqdXu5U3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/6839576/177183917-ebfe1d26-96d8-4a58-b4c3-8a64a251b31a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hqdXu5U3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/6839576/177183917-ebfe1d26-96d8-4a58-b4c3-8a64a251b31a.png" alt="screenshot" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It displays all npm package readme in a modal page, by default, it ignores &lt;code&gt;@types/*&lt;/code&gt; packages.&lt;/p&gt;

&lt;p&gt;Also it supports monorepo, you can switch different &lt;code&gt;package.json&lt;/code&gt; file on the right top of the modal.&lt;/p&gt;

&lt;p&gt;Welcome to send feedback in comments or open Github issue&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/JiangWeixian"&gt;
        JiangWeixian
      &lt;/a&gt; / &lt;a href="https://github.com/JiangWeixian/repo-stack.ext"&gt;
        repo-stack.ext
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Display repo package detail.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/JiangWeixian/repo-stack.ext/blob/master/extension/assets/icon-512.png"&gt;&lt;img width="64" src="https://res.cloudinary.com/practicaldev/image/fetch/s--s52u5Qrl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/JiangWeixian/repo-stack.ext/raw/master/extension/assets/icon-512.png"&gt;&lt;/a&gt;
&lt;p&gt;&lt;em&gt;Show me repo dependencies &amp;amp; devDependencies details&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/repo-stack/cgakjpmmkidebbfdjmolbenhnpibgekc?hl=zh-CN&amp;amp;authuser=0" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6b8ef23a2e0c2b958ac76d6cbca5e56f7626580f7727f43f88b2d3b95e4f9b8e/68747470733a2f2f696d672e736869656c64732e696f2f6368726f6d652d7765622d73746f72652f762f6367616b6a706d6d6b696465626266646a6d6f6c62656e686e70696267656b633f636f6c6f72413d25323331373132313226636f6c6f72423d253233313839353434267374796c653d666c61742d737175617265" alt="repo stack"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

  
    
    

    &lt;span class="m-1"&gt;repo-stack.mp4&lt;/span&gt;
    
  

  

  


&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/JiangWeixian/repo-stack.ext"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>chrome</category>
      <category>npm</category>
      <category>readme</category>
    </item>
    <item>
      <title>Open website shortcuts directly from alfred</title>
      <dc:creator>JW</dc:creator>
      <pubDate>Sat, 01 Jan 2022 07:28:37 +0000</pubDate>
      <link>https://dev.to/jiangweixian/open-website-shortcuts-directly-from-alfred-f0g</link>
      <guid>https://dev.to/jiangweixian/open-website-shortcuts-directly-from-alfred-f0g</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;open website shortcuts from alfred. There is &lt;a href="https://github.com/JiangWeixian/ifu/tree/master/packages/new" rel="noopener noreferrer"&gt;workflow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89urg2r37s33br26hnr6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89urg2r37s33br26hnr6.png" alt="@ifu/new"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Some website provide shortcuts like &lt;a href="https://repo.new" rel="noopener noreferrer"&gt;repo.new&lt;/a&gt; to create project on github.&lt;/p&gt;

&lt;p&gt;There are simliar shortcuts like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://repo.new" rel="noopener noreferrer"&gt;repo.new&lt;/a&gt; - create github repo&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://codespace.new" rel="noopener noreferrer"&gt;codespace.new&lt;/a&gt; - create github codespace&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gist.new" rel="noopener noreferrer"&gt;gist.new&lt;/a&gt; - create github gist&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://depoly.new" rel="noopener noreferrer"&gt;depoly.new&lt;/a&gt; - create depolyment on vercel&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.new" rel="noopener noreferrer"&gt;dev.new&lt;/a&gt; - create depolyment on railway&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pen.new" rel="noopener noreferrer"&gt;pen.new&lt;/a&gt; - create codepen
...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;you can see all awesome website shortcuts &lt;a href="https://github.com/JiangWeixian/awesome-website-shortcuts" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you open those url directly from alfred by this &lt;a href="https://github.com/JiangWeixian/ifu/tree/master/packages/new" rel="noopener noreferrer"&gt;workflow&lt;/a&gt;&lt;/p&gt;

</description>
      <category>alfred</category>
    </item>
    <item>
      <title>Sync latest template repo</title>
      <dc:creator>JW</dc:creator>
      <pubDate>Wed, 01 Dec 2021 14:11:10 +0000</pubDate>
      <link>https://dev.to/jiangweixian/sync-latest-template-repo-498o</link>
      <guid>https://dev.to/jiangweixian/sync-latest-template-repo-498o</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;I create cheatsheets app based on github, everyone can use this &lt;a href="https://github.com/ohmycheatsheet/cheatsheets"&gt;cheatsheets&lt;/a&gt; as template to create own cheatsheet app. But I want every user repo code update to date. So, I create github action to fetch latest changes from original repo, then create a pr.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Must-Haves&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ohmycheatsheet"&gt;
        ohmycheatsheet
      &lt;/a&gt; / &lt;a href="https://github.com/ohmycheatsheet/actions-updater"&gt;
        actions-updater
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      fetch remote source repo and update current repo
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
@omcs/actions-updater&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;fetch remote source repo and update current repo&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ohmycheatsheet/actions-updater"&gt;&lt;img src="https://camo.githubusercontent.com/78d7412edaccdd37c7672916de20a182be8a6fece144b833fc673398df61abf1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f6f686d79636865617473686565742f616374696f6e732d75706461746572" alt="npm"&gt;&lt;/a&gt; &lt;a href="https://github.com/ohmycheatsheet/actions-updater"&gt;&lt;img src="https://camo.githubusercontent.com/84180e708f5ea047dd7b024b8b03e4431dfe8bebec5863392ecb03c7bb624610/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6f686d79636865617473686565742f616374696f6e732d75706461746572" alt="GitHub"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
features&lt;/h2&gt;
&lt;p&gt;In default, this action will diff &lt;code&gt;source-template-repo&lt;/code&gt; and &lt;code&gt;current-repo&lt;/code&gt; by filepath recursive&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;deleted:&lt;/code&gt; if &lt;code&gt;current/a.file&lt;/code&gt; not exist in &lt;code&gt;source&lt;/code&gt;, &lt;code&gt;a.file&lt;/code&gt; will be deleted.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;add:&lt;/code&gt; if &lt;code&gt;current/a.file&lt;/code&gt; not exist, but &lt;code&gt;source/a.file&lt;/code&gt; exist, &lt;code&gt;a.file&lt;/code&gt; will be added.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;update:&lt;/code&gt; if &lt;code&gt;current/a.file&lt;/code&gt; and &lt;code&gt;source/a.file&lt;/code&gt; exist, force update &lt;code&gt;current/a.file&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Friendly pr&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;read changelog as pr body&lt;/li&gt;
&lt;li&gt;bump version like dependabot&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/6839576/140630037-09abd412-b19a-4893-bded-a3022949dafc.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F0PR6u3l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/6839576/140630037-09abd412-b19a-4893-bded-a3022949dafc.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
usage&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;create file &lt;code&gt;updater.yml&lt;/code&gt; in &lt;code&gt;.github/workflows&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;add following code to &lt;code&gt;updater.yml&lt;/code&gt; file&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-yaml notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-ent"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;updater&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;

&lt;span class="pl-ent"&gt;on&lt;/span&gt;:
  &lt;span class="pl-ent"&gt;schedule&lt;/span&gt;:
    - &lt;span class="pl-ent"&gt;cron&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;0 23 * * *&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;

&lt;span class="pl-ent"&gt;jobs&lt;/span&gt;:
  &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; test action works running from the schedule&lt;/span&gt;
  &lt;span class="pl-ent"&gt;cronjob&lt;/span&gt;:
    &lt;span class="pl-ent"&gt;runs-on&lt;/span&gt;: &lt;span class="pl-s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="pl-ent"&gt;steps&lt;/span&gt;:
    - &lt;span class="pl-ent"&gt;uses&lt;/span&gt;: &lt;span class="pl-s"&gt;actions/checkout@v2&lt;/span&gt;
    - &lt;span class="pl-ent"&gt;uses&lt;/span&gt;: &lt;span class="pl-s"&gt;ohmycheatsheet/actions-updater@v1&lt;/span&gt;
      &lt;span class="pl-ent"&gt;with&lt;/span&gt;:
        &lt;span class="pl-ent"&gt;repo&lt;/span&gt;: &lt;span class="pl-s"&gt;ohmycheatsheet/cheatsheets&lt;/span&gt;
      &lt;span class="pl-ent"&gt;env&lt;/span&gt;:
        &lt;span class="pl-ent"&gt;GITHUB_TOKEN&lt;/span&gt;: &lt;span class="pl-s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
variables&lt;/h2&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;description&lt;/th&gt;
&lt;th&gt;type&lt;/th&gt;
&lt;th&gt;required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;repo&lt;/td&gt;
&lt;td&gt;(input) source repo&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ignores&lt;/td&gt;
&lt;td&gt;(input) ignore update files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ohmycheatsheet/actions-updater"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;updater"&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;23&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*"&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;cronjob&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ohmycheatsheet/actions-updater@v1&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ohmycheatsheet/cheatsheets&lt;/span&gt;
      &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;there is a example repo&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/JiangWeixian"&gt;
        JiangWeixian
      &lt;/a&gt; / &lt;a href="https://github.com/JiangWeixian/cheatsheets"&gt;
        cheatsheets
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      a cheatsheets app based on github
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://github.com/ohmycheatsheet/cheatsheets"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o8ZkoZmk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/6839576/139080815-b8e556a0-fcca-41d0-83a1-0faffaa42be1.png" alt="cheatsheets"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Built with ❤️ by &lt;a href="https://github.com/ohmycheatsheet/cheatsheets"&gt;ohmycheatsheet&lt;/a&gt;. Cheatsheets is a part of &lt;a href="https://github.com/JiangWeixian/cheatsheets"&gt;ohmycheatsheet&lt;/a&gt; project, a self-host cheatsheet management app! It sync your github issues to website with friendly UI~&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
🚀 Easy and Fast develop&lt;/li&gt;
&lt;li&gt;
🔍 Search cheasheet with algolia&lt;/li&gt;
&lt;li&gt;
🌥️ Cool Website
&lt;ul&gt;
&lt;li&gt;
✨ Support code-share with url or image&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
🤖 Useful Assistants Tools
&lt;ul&gt;
&lt;li&gt;
📩 &lt;strong&gt;Slack bot&lt;/strong&gt; - Support send your recently/some-day-your-created cheatsheets with &lt;strong&gt;slack-bot&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
snapshots&lt;/h3&gt;
&lt;div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/6839576/167288880-0bfae6c1-5f91-4ce3-97df-20889c9cf71c.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZFYSkOk9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/6839576/167288880-0bfae6c1-5f91-4ce3-97df-20889c9cf71c.png" alt="homepage"&gt;&lt;/a&gt;
&lt;em&gt;▲ cheatsheets-homepage&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;
usage&lt;/h2&gt;

&lt;h3&gt;
vercel&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Use this repo as template&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New dataset from &lt;a href="https://www.algolia.com/" rel="nofollow"&gt;algolia&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set below github repo secrets&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ALGOLIA_APPID=&amp;lt;ALGOLIA_APPID&amp;gt;&lt;/code&gt; - copy from &lt;a href="https://www.algolia.com/account/api-keys" rel="nofollow"&gt;algolia-api-keys&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ALGOLIA_APP_KEY=&amp;lt;ALGOLIA_APP_KEY&amp;gt;&lt;/code&gt; - copy from &lt;a href="https://www.algolia.com/account/api-keys" rel="nofollow"&gt;algolia-api-keys&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SLACK_WEBHOOK=&amp;lt;SLACK_WEBHOOK&amp;gt;&lt;/code&gt; - check &lt;a href="https://github.com/ohmycheatsheet/actions-friday"&gt;actions-friday&lt;/a&gt; usage&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy to Vercel'now, in &lt;a href="https://vercel.com/" rel="nofollow"&gt;Vercel&lt;/a&gt; deployments settings, set below env variables as &lt;code&gt;Production &amp;amp; Preview &amp;amp; Development Environment Variables&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://vercel.com" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/5e471e99e8e022cf454693e38ec843036ec6301e27ee1e1fa10325b1cb720584/68747470733a2f2f76657263656c2e636f6d2f627574746f6e" alt="Deploy with Vercel"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GITHUB_TOKEN&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;NEXT_PUBLIC_ALGOLIA_APPID&lt;/code&gt; - copy from &lt;a href="https://www.algolia.com/account/api-keys" rel="nofollow"&gt;algolia-api-keys&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;NEXT_PUBLIC_ALGOLIA_SEARCH_KEY&lt;/code&gt; - copy from &lt;a href="https://www.algolia.com/account/api-keys" rel="nofollow"&gt;algolia-api-keys&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ALGOLIA_APP_KEY&lt;/code&gt; - copy from &lt;a href="https://www.algolia.com/account/api-keys" rel="nofollow"&gt;algolia-api-keys&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;new &lt;code&gt;issue&lt;/code&gt; on github'issue&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
netlify&lt;/h3&gt;


&lt;ol&gt;
&lt;li&gt;

&lt;p&gt;Use this repo as template&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;New dataset from &lt;a href="https://www.algolia.com/" rel="nofollow"&gt;algolia&lt;/a&gt;&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;Set below github…&lt;/p&gt;


&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/JiangWeixian/cheatsheets"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F0PR6u3l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/6839576/140630037-09abd412-b19a-4893-bded-a3022949dafc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F0PR6u3l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/6839576/140630037-09abd412-b19a-4893-bded-a3022949dafc.png" alt="screenshot" width="880" height="753"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>actionshackathon21</category>
    </item>
  </channel>
</rss>
