<?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: Varun Sridharan</title>
    <description>The latest articles on DEV Community by Varun Sridharan (@varunsridharan).</description>
    <link>https://dev.to/varunsridharan</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%2F427528%2Fc63e971e-24aa-4c16-9848-5394af70ce77.jpeg</url>
      <title>DEV Community: Varun Sridharan</title>
      <link>https://dev.to/varunsridharan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/varunsridharan"/>
    <language>en</language>
    <item>
      <title>Github Action - Repository Roster | Shout-out Supporters In Your README.md</title>
      <dc:creator>Varun Sridharan</dc:creator>
      <pubDate>Tue, 03 Nov 2020 01:04:42 +0000</pubDate>
      <link>https://dev.to/varunsridharan/github-action-repository-roster-shout-out-supporters-in-your-readme-md-5enh</link>
      <guid>https://dev.to/varunsridharan/github-action-repository-roster-shout-out-supporters-in-your-readme-md-5enh</guid>
      <description>&lt;p&gt;As developers, we put a lot of work into our GitHub repos to make them as useful as possible for others, but great projects sometimes go under-appreciated, and under-starred. Asking for stars is tacky, but publicly thanking your supporters by name in your &lt;strong&gt;README&lt;/strong&gt; file is a sign of appreciation that happens to incentivize more users to join the crowd.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Inspiration
&lt;/h2&gt;

&lt;p&gt;One fine day i got an email &lt;a href="https://s2.do-spaces.com/2020/Nov/03/1604373796-15.jpg"&gt;DEV Digest&lt;/a&gt; in which i got attracted by the title &lt;a href="https://dev.to/nastyox1/1-step-to-incentivize-stars-and-forks-on-github-2md3"&gt;&lt;strong&gt;1 Step to Incentivize Stars and Forks on GitHub&lt;/strong&gt;&lt;/a&gt; and decided to read the full article. it was new &amp;amp; interesting to me.Thanks to @ &lt;a href="https://dev.to/nastyox1"&gt;nastyox1&lt;/a&gt; creating such awesome tool. so i wanted to use it but i wanted it to be a &lt;code&gt;markdown-table&lt;/code&gt; output which was not an option with that cloud hosted service. so i decided to create this as an action which can provide various outputs.&lt;/p&gt;

&lt;p&gt;check out the &lt;a href="https://github.com/varunsridharan/action-repository-roster/tree/main/examples"&gt;examples output&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀  Usage
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Update Your &lt;code&gt;README.md&lt;/code&gt; with below code&lt;/li&gt;
&lt;li&gt;Setup Action Workflow File&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Repository Stargazers&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;    ## ↳ Stargazers
    &lt;span class="c"&gt;&amp;lt;!-- REPOSITORY_STARS:START --&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- REPOSITORY_STARS:END --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;&lt;em&gt;Repository Forks&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;    ## ↳ Forkers
    &lt;span class="c"&gt;&amp;lt;!-- REPOSITORY_FORKS:START --&amp;gt;&amp;lt;!-- REPOSITORY_FORKS:END --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;ℹ️  Currently there are ways to auto trigger the workflow when a users &lt;strong&gt;stars&lt;/strong&gt; / &lt;strong&gt;forks&lt;/strong&gt; the repository.&lt;/p&gt;

&lt;p&gt;ℹ️  Using this action with the workflow trigger &lt;a href="https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#fork"&gt;fork&lt;/a&gt; &amp;amp; &lt;a href="https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#watch"&gt;watch&lt;/a&gt; is the best optmized way.&lt;/p&gt;

&lt;p&gt;if you want to remove users that have un-stared / deleted the fork then you might have to use &lt;a href="https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#schedule"&gt;cron&lt;/a&gt; to handle it&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Example Workflowfile
&lt;/h2&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;🙏&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Repository&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Roster"&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;workflow_dispatch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;watch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;started&lt;/span&gt;
  &lt;span class="na"&gt;fork&lt;/span&gt;&lt;span class="pi"&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;update_latest_roster&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&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;🐔&lt;/span&gt;&lt;span class="nv"&gt;  &lt;/span&gt;&lt;span class="s"&gt;Update&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Latest&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Roster"&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;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;📥&lt;/span&gt;&lt;span class="nv"&gt;  &lt;/span&gt;&lt;span class="s"&gt;Fetching&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Repository&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Contents"&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@main&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&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;🐔&lt;/span&gt;&lt;span class="nv"&gt;  &lt;/span&gt;&lt;span class="s"&gt;Markdown&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;Repository&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Roster"&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;varunsridharan/action-repository-roster@main"&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;p&gt;For Details information about the available config options. please check our github repository &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--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/varunsridharan"&gt;
        varunsridharan
      &lt;/a&gt; / &lt;a href="https://github.com/varunsridharan/action-repository-roster"&gt;
        action-repository-roster
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
       Shout-out supporters in your GitHub README file. 
    &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 rel="noopener noreferrer" href="https://camo.githubusercontent.com/933ffa328fb4766d310fc654719401ccced3e3c3/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f616374696f6e2d7265706f7369746f72792d726f737465722f62616e6e65722e6a7067"&gt;&lt;img src="https://camo.githubusercontent.com/933ffa328fb4766d310fc654719401ccced3e3c3/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f616374696f6e2d7265706f7369746f72792d726f737465722f62616e6e65722e6a7067"&gt;&lt;/a&gt;
~ Shout-out supporters in your GitHub README file. ~
&lt;/p&gt;
&lt;h2&gt;
🚀  Usage&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/varunsridharan/action-repository-roster/main/#-github-action-workflow-file"&gt;Setup Action Workflow File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update Your &lt;code&gt;README.md&lt;/code&gt; with below code&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Repository Stargazers&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-gfm js-code-highlight"&gt;
&lt;pre&gt;    ## ↳ Stargazers
    &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;&amp;lt;!--&lt;/span&gt; REPOSITORY_STARS:START &lt;span class="pl-c"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;&amp;lt;!--&lt;/span&gt; REPOSITORY_STARS:END &lt;span class="pl-c"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Repository Forks&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-gfm js-code-highlight"&gt;
&lt;pre&gt;    ## ↳ Forkers
    &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;&amp;lt;!--&lt;/span&gt; REPOSITORY_FORKS:START &lt;span class="pl-c"&gt;--&amp;gt;&amp;lt;!--&lt;/span&gt; REPOSITORY_FORKS:END &lt;span class="pl-c"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;ℹ️  Currently there are ways to auto trigger the workflow when a users &lt;strong&gt;stars&lt;/strong&gt; / &lt;strong&gt;forks&lt;/strong&gt; the repository.&lt;/p&gt;
&lt;p&gt;ℹ️  Using this action with the workflow trigger &lt;a href="https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#fork"&gt;fork&lt;/a&gt; &amp;amp; &lt;a href="https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#watch"&gt;watch&lt;/a&gt; is the best optmized way.&lt;/p&gt;
&lt;p&gt;if you want to remove users that have un-stared / deleted the fork then you might have to use &lt;a href="https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#schedule"&gt;cron&lt;/a&gt; to handle it&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
⚙️ Configuration&lt;/h2&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
    &lt;tbody&gt;
&lt;tr&gt;
        &lt;th&gt;Option&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
        &lt;th&gt;Default&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt; &lt;th colspan="3"&gt;General Config&lt;/th&gt; &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;IMAGE_SAVE_PATH&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            Custom location on where to save generated &lt;strong&gt;SVG&lt;/strong&gt; image file. &lt;br&gt;
            &lt;i&gt;Image Files Are Generated When Output Type Set To &lt;code&gt;image&lt;/code&gt;&lt;/i&gt;
        &lt;/td&gt;
        &lt;td&gt;&lt;code&gt;.github/roster/&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt; &lt;th colspan="3"&gt;Forks Config&lt;/th&gt; &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;FORK&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            Set to &lt;strong&gt;true&lt;/strong&gt; to generate latest forked users information. or provide a file location to update the information &lt;br&gt;
            If&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/varunsridharan/action-repository-roster"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



</description>
      <category>github</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Github Action : Workflow Files Sync</title>
      <dc:creator>Varun Sridharan</dc:creator>
      <pubDate>Sun, 25 Oct 2020 10:15:49 +0000</pubDate>
      <link>https://dev.to/varunsridharan/github-action-workflow-files-sync-4hif</link>
      <guid>https://dev.to/varunsridharan/github-action-workflow-files-sync-4hif</guid>
      <description>&lt;p&gt;This Github Action can come in handy when you have lot of projects like i do. where in some case certain projects users action workflow which are common across projects. Example : &lt;code&gt;Project 1&lt;/code&gt; &amp;amp; &lt;code&gt;Project 2&lt;/code&gt; it can be pain to keep all the workflow updated with Github Action's Module's version.&lt;/p&gt;

&lt;p&gt;This also isn't limited to Github Action yaml files.&lt;br&gt;
Another use case could be keeping the &lt;code&gt;.editorconfig&lt;/code&gt;, &lt;code&gt;LICENSE&lt;/code&gt;, &lt;code&gt;tsconfig.json&lt;/code&gt;, &lt;code&gt;tslint.json&lt;/code&gt;, &lt;code&gt;.gitignore&lt;/code&gt;, &lt;code&gt;azure-pieplines.yml&lt;/code&gt;, etc. in sync across all your repositories.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Here where this action comes in and reduces your stress 😉 it can update all your repository actions file based on the config provided&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  How Files Sync Work ?
&lt;/h1&gt;

&lt;p&gt;Before copying the &lt;code&gt;WORKFLOW_FILES&lt;/code&gt; from the source to destination. this action will provide some flexibility. this searches for a file in various locations for example lets take &lt;code&gt;settings.yml&lt;/code&gt; as the file that you want to sync for multiple repository&lt;/p&gt;

&lt;h4&gt;
  
  
  Below are the locations that this action search for the file/folder
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;./{OWNER}/{REPO_NAME}/workflows/{filename}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./{OWNER}/workflows/{filename}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./{WORKFLOW_FILES_DIR}/{filename}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./.github/workflows/{filename}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./{OWNER}/{REPO_NAME}/{filename}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./{OWNER}/{filename}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./{filename}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;if the &lt;code&gt;settings.yml&lt;/code&gt; is found inside &lt;code&gt;workflows&lt;/code&gt; folder then the destination is automatically forced to &lt;code&gt;.github/workflows&lt;/code&gt; in the destination repo&lt;/p&gt;

&lt;p&gt;if the &lt;code&gt;settings.yml&lt;/code&gt; is outside of &lt;code&gt;workflows&lt;/code&gt; folder then the destination then its copied to the destination&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How this can be useful ?
&lt;/h3&gt;

&lt;p&gt;Lets assume that you want to maintain all the common github files in a single repository and suddenly a repository needs a single file to be changed in that case instead of editing the action yml file. you can just create a folder like &lt;code&gt;{REPO_OWNER}/{REPO_NAME}/{FILE}&lt;/code&gt; to copy the overriden file to the destination&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--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/varunsridharan"&gt;
        varunsridharan
      &lt;/a&gt; / &lt;a href="https://github.com/varunsridharan/action-github-workflow-sync"&gt;
        action-github-workflow-sync
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Github Action To Sync Github Action's Workflow Files Across Repositories
    &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 rel="noopener noreferrer" href="https://camo.githubusercontent.com/0374f44322f2f9162a06dac22ec0f62314453723/68747470733a2f2f63646e2e73766172756e2e6465762f67682f616374696f6e732d736d616c6c2e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/0374f44322f2f9162a06dac22ec0f62314453723/68747470733a2f2f63646e2e73766172756e2e6465762f67682f616374696f6e732d736d616c6c2e706e67" width="150px"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
Github Workflow Sync - &lt;em&gt;&lt;strong&gt;Github Action&lt;/strong&gt;&lt;/em&gt;
&lt;/h1&gt;

&lt;p&gt;Github Action To Sync Github Action's Workflow Files Across Repositories&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9a49d25427473aae30ec05eb2d076366c95af7ea/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f616374696f6e2d6769746875622d776f726b666c6f772d73796e632f616374696f6e2d62616e6e65722e6a7067"&gt;&lt;img src="https://camo.githubusercontent.com/9a49d25427473aae30ec05eb2d076366c95af7ea/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f616374696f6e2d6769746875622d776f726b666c6f772d73796e632f616374696f6e2d62616e6e65722e6a7067" alt="https://cdn.svarun.dev/gh/varunsridharan/action-github-workflow-sync/action-banner.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
Use Case 🤔 ?&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This Github Action can come in handy when you have lot of projects like i do.&lt;/em&gt;
&lt;em&gt;where in some case certain projects users action workflow which are common across projects.&lt;/em&gt;
&lt;em&gt;Example : &lt;a href="https://github.com/varunsridharan/wc-product-subtitle/blob/master/.github/workflows/push-to-master.yml"&gt;Project 1&lt;/a&gt; &amp;amp; &lt;a href="https://github.com/varunsridharan/sku-shortlink-for-woocommerce/blob/master/.github/workflows/push-to-master.yml"&gt;Project 2&lt;/a&gt; it can be pain to keep all the workflow updated with Github Action's Module's version.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This also isn't limited to Github Action yaml files - another use case could be keeping the &lt;code&gt;.editorconfig&lt;/code&gt;, &lt;code&gt;LICENSE&lt;/code&gt;, &lt;code&gt;tsconfig.json&lt;/code&gt;, &lt;code&gt;tslint.json&lt;/code&gt;, &lt;code&gt;.gitignore&lt;/code&gt;, &lt;code&gt;azure-pieplines.yml&lt;/code&gt;, etc. in sync across all your repositories.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Here where this action comes in and reduces your stress 😉 it can update all your repository actions file based on the config provided&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
⚙️ Configuration&lt;/h2&gt;


&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;&lt;strong&gt;Argument&lt;/strong&gt;&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Defaults&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;code&gt;GITHUB_TOKEN&lt;/code&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;
&lt;br&gt;
&lt;strong&gt;Required&lt;/strong&gt; Token to use to get repos and write secrets. &lt;code&gt;${{secrets.GITHUB_TOKEN}}&lt;/code&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&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/varunsridharan/action-github-workflow-sync"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
 

</description>
      <category>github</category>
      <category>git</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How To Setup A Self Hosted Github Mirror ?</title>
      <dc:creator>Varun Sridharan</dc:creator>
      <pubDate>Wed, 14 Oct 2020 01:43:50 +0000</pubDate>
      <link>https://dev.to/varunsridharan/how-to-setup-a-github-mirror-2lii</link>
      <guid>https://dev.to/varunsridharan/how-to-setup-a-github-mirror-2lii</guid>
      <description>&lt;h2&gt;
  
  
  Why ?
&lt;/h2&gt;

&lt;p&gt;What I’m trying to accomplish is a fail-safe in case something happens to GitHub which would make me loose access, be that voluntarily or involuntarily.&lt;/p&gt;

&lt;p&gt;I am not migrating away from GitHub because I see no reason to: the platform is very useful to me, and I’d not like to loose it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why Gitea
&lt;/h2&gt;

&lt;p&gt;I’d like a Web UI onto these repositories in addition to the files in the file system. It could have been Gitlab, but I think Gitea is probably the option with the lowest resource requirements.&lt;/p&gt;

&lt;p&gt;When I add a repository to Gitea and specify I want it to be mirrored, Gitea will take charge of periodically querying the source repository and pulling changes in it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How To ?
&lt;/h2&gt;

&lt;p&gt;After setting up &lt;a href="https://gitea.io/en-us/" rel="noopener noreferrer"&gt;Gitea&lt;/a&gt; and creating a user, I create an API token in &lt;a href="https://docs.gitea.io/en-us/api-usage/" rel="noopener noreferrer"&gt;Gitea&lt;/a&gt; with which I can create repositories programmatically. &lt;/p&gt;

&lt;p&gt;Then you will also need to create a &lt;a href="https://github.com/settings/tokens/new?description=gitea-mirror" rel="noopener noreferrer"&gt;Personal Access Token&lt;/a&gt; In Github with the below scope&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select &lt;strong&gt;public_repo&lt;/strong&gt; scope if you just want to mirror Public Gist / Repo to your mirror&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;repo&lt;/strong&gt; scope if you want to mirror both public &amp;amp; private Gist / Repo to your mirror&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;gist&lt;/strong&gt; scope if you want to mirror private gists.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install Python3 &lt;code&gt;sudo apt-get install python3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install PIP3 &lt;code&gt;sudo apt-get install python3-pip&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://github.com/PyGithub/PyGithub" rel="noopener noreferrer"&gt;PyGithub&lt;/a&gt; &lt;code&gt;pip install PyGithub&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once everything is installed. &lt;/p&gt;

&lt;p&gt;Clone / Download this repo &lt;a href="https://github.com/varunsridharan/github-gitea-mirror" rel="noopener noreferrer"&gt;https://github.com/varunsridharan/github-gitea-mirror&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And update &lt;code&gt;src/config.json&lt;/code&gt; with your information And run the below cmd&lt;/p&gt;

&lt;h3&gt;
  
  
  Mirror Everything
&lt;/h3&gt;

&lt;p&gt;Below CMD Will mirror (Public / Private ) Repository, Gists Forks &amp;amp; Stared Repos&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 mirror.py 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Mirror Source Gists
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 gist.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Mirror Stared Gists
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 giststared.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Mirror Source Repository
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 repoSource.py 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Mirror Forked Repository
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 repoForked.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Mirror Stared Repository
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 repoStared.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&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%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/varunsridharan" rel="noopener noreferrer"&gt;
        varunsridharan
      &lt;/a&gt; / &lt;a href="https://github.com/varunsridharan/github-gitea-mirror" rel="noopener noreferrer"&gt;
        github-gitea-mirror
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Simple Python Script To Mirror Repository From Github To Gitea
    &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 rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1a2b2e469777ae033890f1de09c8612165b86df119790ce3d04524522c05de2a/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f6769746875622d67697465612d6d6972726f722f62616e6e65722e6a7067"&gt;&lt;img src="https://camo.githubusercontent.com/1a2b2e469777ae033890f1de09c8612165b86df119790ce3d04524522c05de2a/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f6769746875622d67697465612d6d6972726f722f62616e6e65722e6a7067"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Simple Python Script To Mirror Repository / Gist From Github To Gitea&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why ?&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;I am a &lt;a href="https://www.reddit.com/r/DataHoarder/" rel="nofollow noopener noreferrer"&gt;data hoarder.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am not migrating away from GitHub because I see no reason to: the platform is very useful to me, and I’d not like to lose it. What I’m trying to accomplish is a fail-safe in case something happens to GitHub which would make me lose access, be that voluntarily or involuntarily.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✅  Requirements&lt;/h2&gt;
&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Python3 -- &lt;code&gt;sudo apt-get install python3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/PyGithub/PyGithub" rel="noopener noreferrer"&gt;PyGithub&lt;/a&gt; -- &lt;code&gt;pip install PyGithub&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚙️Installation&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Github Clone&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Just run the below cmd in your Gitea server&lt;/p&gt;

&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;git clone https://github.com/varunsridharan/github-gitea-mirror
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Or you can download the source code and install it where ever you need&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Usage&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Github Access Token Scopes&lt;/h3&gt;

&lt;/div&gt;


&lt;ul&gt;

&lt;li&gt;if you want to mirror private repos then select everything under &lt;strong&gt;Repo&lt;/strong&gt; scope&lt;/li&gt;

&lt;li&gt;if you want to mirror public repos then select &lt;strong&gt;repo.public_repo&lt;/strong&gt; scope&lt;/li&gt;

&lt;li&gt;if you want to mirror secret Gists…&lt;/li&gt;

&lt;/ul&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/varunsridharan/github-gitea-mirror" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>github</category>
      <category>database</category>
      <category>git</category>
      <category>githunt</category>
    </item>
    <item>
      <title>#javascript Dizzle - CSS Selector Library</title>
      <dc:creator>Varun Sridharan</dc:creator>
      <pubDate>Tue, 06 Oct 2020 11:55:01 +0000</pubDate>
      <link>https://dev.to/varunsridharan/dizzle-javascript-css-selector-library-36h</link>
      <guid>https://dev.to/varunsridharan/dizzle-javascript-css-selector-library-36h</guid>
      <description>&lt;p&gt;Hello All,&lt;/p&gt;

&lt;p&gt;I am really proud to share my new javascript Library called Dizzle,&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Dizzle ?
&lt;/h2&gt;

&lt;p&gt;Dizzle turns CSS selectors into functions that tests if elements match them. When searching for elements, testing is executed "from the top", similar to how browsers execute CSS selectors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Full implementation of CSS 3 &amp;amp; CSS 4 selectors&lt;/li&gt;
&lt;li&gt;Partial implementation of jQuery Extensions&lt;/li&gt;
&lt;li&gt;Pretty good performance&lt;/li&gt;
&lt;li&gt;Light Weight&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this library is created when jQuery does this ?
&lt;/h2&gt;

&lt;p&gt;Long story short i wanted to move from jQuery to VanillaJS but then i faced an roadblock that i can't use special css selectors such as &lt;code&gt;:input&lt;/code&gt; in VanillaJS to fetch elements due to which i worked on this library. &lt;/p&gt;

&lt;p&gt;Please do check our Github Repo for more information : &lt;br&gt;
&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--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/varunsridharan"&gt;
        varunsridharan
      &lt;/a&gt; / &lt;a href="https://github.com/varunsridharan/dizzle"&gt;
        dizzle
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      ~ Simple Fast CSS Selector Engine ~
    &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 rel="noopener noreferrer" href="https://camo.githubusercontent.com/e4d545ddd2fb9c88f1a27cda9f901e3e975cb046/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f64697a7a6c652f62616e6e65722e6a7067"&gt;&lt;img src="https://camo.githubusercontent.com/e4d545ddd2fb9c88f1a27cda9f901e3e975cb046/68747470733a2f2f63646e2e73766172756e2e6465762f67682f766172756e73726964686172616e2f64697a7a6c652f62616e6e65722e6a7067" alt="https://cdn.svarun.dev/gh/varunsridharan/dizzle/banner.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://www.producthunt.com/posts/dizzle-2?utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-dizzle-2" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b2301659e29f8b043a0ce32d0e0b181b33990921/68747470733a2f2f6170692e70726f6475637468756e742e636f6d2f776964676574732f656d6265642d696d6167652f76312f66656174757265642e7376673f706f73745f69643d323639353131267468656d653d6461726b" alt="Dizzle - ~ Simple Fast CSS Selector Engine ~ | Product Hunt" width="250" height="54"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
What?&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Dizzle&lt;/strong&gt;&lt;/em&gt; turns CSS selectors into functions that tests if elements match them. When searching for elements, testing is executed "from the top", similar to how browsers execute CSS selectors.&lt;/p&gt;
&lt;h2&gt;
Features:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Full implementation of CSS3 &amp;amp; CSS4 selectors&lt;/li&gt;
&lt;li&gt;Partial implementation of jQuery extensions&lt;/li&gt;
&lt;li&gt;Pretty good performance&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;p&gt;Get &lt;strong&gt;Dizzle&lt;/strong&gt; From &lt;a href="https://cdn.jsdelivr.net/npm/dizzle/dist/dizzle.umd.min.js" rel="nofollow"&gt;jsDelivr&lt;/a&gt; and use it like this:&lt;/p&gt;
&lt;div class="highlight highlight-text-html-basic js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt; &lt;span class="pl-c1"&gt;src&lt;/span&gt;="&lt;span class="pl-s"&gt;https://cdn.jsdelivr.net/npm/dizzle/dist/dizzle.umd.min.js&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="pl-k"&gt;var&lt;/span&gt; &lt;span class="pl-s1"&gt;divs&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;dizzle&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'div'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
  &lt;span class="pl-smi"&gt;console&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;log&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;divs&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Dizzle&lt;/strong&gt; is also available through &lt;a href="https://npmjs.com" rel="nofollow"&gt;npm&lt;/a&gt; as the &lt;a href="https://npmjs.com/package/dizzle" rel="nofollow"&gt;&lt;code&gt;dizzle&lt;/code&gt;&lt;/a&gt; package:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install --save dizzle
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That you can then use like this:&lt;/p&gt;
&lt;div class="highlight highlight-source-js js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-s1"&gt;dizzle&lt;/span&gt; &lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s"&gt;"dizzle"&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-s1"&gt;dizzle&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;find&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'div.myelement'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
Documentation&lt;/h2&gt;
&lt;h3&gt;
Finding Elements&lt;/h3&gt;
&lt;div class="highlight highlight-source-js js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;/**&lt;/span&gt;
&lt;span class="pl-c"&gt; * Search For h2 elements inside div in whole document&lt;/span&gt;
&lt;span class="pl-c"&gt; */&lt;/span&gt;
&lt;span class="pl-smi"&gt;console&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;log&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-en"&gt;dizzle&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'div &amp;gt; h2'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-c"&gt;/**&lt;/span&gt;
&lt;span class="pl-c"&gt; * Fetches&lt;/span&gt;&lt;/pre&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/varunsridharan/dizzle"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
 
&lt;h2&gt;
  
  
  Example Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Finding All Input Elements Inside A Form
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;$elements&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;dizzle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;div#yourID :input&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$elements&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Filter Elements
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * Filter All Visible H2 tags
 */&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;visibleH2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;dizzle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;:visible&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;dizzle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;h2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>WPOnion | ~ Lightweight, Flexible &amp; Rapid WP Development Framework ~ </title>
      <dc:creator>Varun Sridharan</dc:creator>
      <pubDate>Thu, 09 Jul 2020 06:34:14 +0000</pubDate>
      <link>https://dev.to/varunsridharan/wponion-lightweight-flexible-rapid-wp-development-framework-15eh</link>
      <guid>https://dev.to/varunsridharan/wponion-lightweight-flexible-rapid-wp-development-framework-15eh</guid>
      <description>&lt;h1&gt;
  
  
  Intro
&lt;/h1&gt;

&lt;p&gt;I am really happy to share my long term Open Source project public I started working on a WP Settings Framework after checking out a lot of frameworks but i was unable to find a framework that fits me.&lt;/p&gt;

&lt;p&gt;So i decided to create a new framework and also make it as a open source. which is called as &lt;strong&gt;WPOnion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started this project in 2018 and work on it full time. and now its finally got stable enough for me to share it to the community &lt;/p&gt;




&lt;h2&gt;
  
  
  So what is WPOnion , exactly?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;WPOnion&lt;/strong&gt; is a simple yet powerful framework that helps developers build custom meta boxes ,custom fields .etc in WordPress fast and easily.&lt;/p&gt;

&lt;p&gt;The framework lets you define custom meta boxes and custom fields via arrays and handles everything behind the scene automatically. It has a wide range of field types, field settings and supports mostly everything in WordPress. &lt;/p&gt;

&lt;p&gt;And provides developers with a quite a lot of built in functions / classes which can be used to create features in WordPress. for example creating dashboard widget with a options page for it. , creating a Site Widget with along with configurable options. and much more.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;WPOnion is packed with 20+ Modules &amp;amp; 40+ Field Types.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Settings Page : WP Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D9LvWbM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3v32a7jylo4e76qvljwz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D9LvWbM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3v32a7jylo4e76qvljwz.jpg" alt="Settings Page | WP Theme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Settings Page : WP Modern Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vX2b6T2c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4yfefrrhfz1dd6eqra1c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vX2b6T2c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4yfefrrhfz1dd6eqra1c.jpg" alt="Settings Page | WP Modern Theme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WP Metabox : WP Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AryNmRjp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4by56v6kgq62bc6nknd6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AryNmRjp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4by56v6kgq62bc6nknd6.jpg" alt="WP Metabox"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WP Metabox : WP Modern Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EHnksJGo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y0khmuy449v5s09bb8pe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EHnksJGo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y0khmuy449v5s09bb8pe.jpg" alt="WP Metabox"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WP Metabox : Side Metabox
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HhrZRdaa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zpsypmwxymlt9po02ljy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HhrZRdaa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zpsypmwxymlt9po02ljy.jpg" alt="Side Metabox"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WP User Profile
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gIvGW9ni--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/enth21w91qia5id71cm7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gIvGW9ni--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/enth21w91qia5id71cm7.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WP Quick Edit
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ga4Xv95G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/n356gg763zezji32g0p7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ga4Xv95G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/n356gg763zezji32g0p7.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WP Bulk Edit
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sN6Pohq8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9q9r5tw67tdy7fqw3p1k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sN6Pohq8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9q9r5tw67tdy7fqw3p1k.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  WP Taxonomy
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pclkMaSr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jfc24k5g6nzkpt256pjy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pclkMaSr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jfc24k5g6nzkpt256pjy.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Social &amp;amp; Source Links
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/wponion/wponion"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://wponion.com"&gt;Website&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/wponion"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="http://wponion.com/demo"&gt;Demo Site&lt;/a&gt;&lt;br&gt;
&lt;a href="https://slack.wponion.com"&gt;Slack Community&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>php</category>
    </item>
  </channel>
</rss>
