<?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>Forem: ShGI</title>
    <description>The latest articles on Forem by ShGI (@shubham_ingale).</description>
    <link>https://forem.com/shubham_ingale</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%2F690272%2F4798ad34-6d93-4e4f-824e-db2735e72fca.png</url>
      <title>Forem: ShGI</title>
      <link>https://forem.com/shubham_ingale</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shubham_ingale"/>
    <language>en</language>
    <item>
      <title>Chnp-cli: Code Highlight and Print tool</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Tue, 19 Nov 2024 13:05:42 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/chnp-cli-code-highlight-and-print-tool-38b4</link>
      <guid>https://forem.com/shubham_ingale/chnp-cli-code-highlight-and-print-tool-38b4</guid>
      <description>&lt;h2&gt;
  
  
  What is it?
&lt;/h2&gt;

&lt;p&gt;CHNP (Code highlight and print) which is the project I developed in my first year of Diploma for the purpose of code printing where I can use a certain format to create a PDF from my code and it's output.&lt;br&gt;
It was helpful throughout my diploma where I have to submit prints of my code.&lt;br&gt;
You can checkout that repo here &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://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SGI-CAPP-AT2" rel="noopener noreferrer"&gt;
        SGI-CAPP-AT2
      &lt;/a&gt; / &lt;a href="https://github.com/SGI-CAPP-AT2/code-highlight-n-print" rel="noopener noreferrer"&gt;
        code-highlight-n-print
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A black &amp;amp; white Code highlighter for hard copy of documentations ...
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Consider Using &lt;a href="https://github.com/SGI-CAPP-AT2/chnp-cli" rel="noopener noreferrer"&gt;Chnp-Cli&lt;/a&gt;
&lt;/h1&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/SGI-CAPP-AT2/code-highlight-n-print/main/README%20assets/banner.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSGI-CAPP-AT2%2Fcode-highlight-n-print%2Fmain%2FREADME%2520assets%2Fbanner.png" alt="/README assets/banner.png"&gt;&lt;/a&gt;&lt;/h1&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;code-highlight-n-print&lt;/h1&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;A code highlighter for microsoft word and print code problems with there code, output, graphics output, title, filename and watermark&lt;/li&gt;
&lt;li&gt;A BnW Code highlighter for hard copy of docs&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Getting Started&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;
  &lt;a href="https://github.com/SGI-CAPP-AT2/code-highlight-n-print/tool" rel="noopener noreferrer"&gt; &lt;img src="https://camo.githubusercontent.com/c6aaa3470b4fe9aaafecd7e29ac14d37492639b9a321b5b73efeaeb673d21a49/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f546f6f6ce286972d476f253230746f253230746f6f6c2d677261793f7374796c653d736f6369616c"&gt; &lt;/a&gt;&lt;br&gt;
  &lt;a href="https://sgi-capp-at2.github.io/code-highlight-n-print" rel="nofollow noopener noreferrer"&gt; &lt;img src="https://camo.githubusercontent.com/77e5009c5bea9ba3af4a3897722ed372178ad7bbaf96397dc03ffec4ef728213/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73697465e286972d476f253230746f253230736974652d77686974653f7374796c653d736f6369616c"&gt; &lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Description of project&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;Convert your code with highlight into rich text using BnW highlighter&lt;/p&gt;

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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Efficient highlighting&lt;/li&gt;
&lt;li&gt;only two color tones used in highlight&lt;/li&gt;
&lt;li&gt;line numbering&lt;/li&gt;
&lt;li&gt;full support for rtf paste in microsoft word &amp;amp; google docs&lt;/li&gt;
&lt;li&gt;output and code have different blocks&lt;/li&gt;
&lt;li&gt;can even watermark your name/username&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Initiated by &lt;a href="https://github.com/SGI-CAPP-AT2" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F77089227%3Fs%3D20%26v%3D4" alt="SGI-CAPP-AT2"&gt; ShGI&lt;/a&gt;
&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Recent fixes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;added site watermark&lt;/li&gt;
&lt;li&gt;added session exports for autosave&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Sample outputs&lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/SGI-CAPP-AT2/code-highlight-n-print/OUTPUTS/paste.output.docx" rel="noopener noreferrer"&gt;OUTPUT by paste&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SGI-CAPP-AT2/code-highlight-n-print/OUTPUTS/print.output.pdf" rel="noopener noreferrer"&gt;OUTPUT by print&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;br&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/SGI-CAPP-AT2/code-highlight-n-print" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  What is CHNP Cli?
&lt;/h2&gt;

&lt;p&gt;CHNP is an webapp where I have to copy my code and paste which is very hard to manage in case we've multiple codes for same practical/experiments.&lt;br&gt;
You've to copy them one by one and paste them there.&lt;br&gt;
So, to tackle this problem and make tool more convenient I developed a Command Line application in Nodejs.&lt;br&gt;
You can check the repo here&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://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SGI-CAPP-AT2" rel="noopener noreferrer"&gt;
        SGI-CAPP-AT2
      &lt;/a&gt; / &lt;a href="https://github.com/SGI-CAPP-AT2/chnp-cli" rel="noopener noreferrer"&gt;
        chnp-cli
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Command line tool for converting your codes and output into pdf
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Code Highlight n Print Command Line Interface&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What is it?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;CHNP (Code highlight and print) which is the project I developed in my first year of Diploma for the purpose of code printing where I can use a certain format to create a PDF from my code and it's output
It was helpful throughout my diploma where I have to submit prints of my code.
You can checkout that repo &lt;a href="https://github.com/SGI-CAPP-AT2/code-highlight-n-print" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What is CHNP Cli?&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;CHNP is an webapp where I have to copy my code and paste which is very hard to manage in case we've multiple codes for same practical/experiments.
You've to copy them one by one and paste them there.
So, to tackle this problem and make tool more convenient I developed a Command Line application in Nodejs.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How it works?&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/393eb546a20a1d7dfde23d599bb6a104234d089e07ac582baa014d03b001a519/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f766a78676b6179697876316339356939697462692e6a7067"&gt;&lt;img src="https://camo.githubusercontent.com/393eb546a20a1d7dfde23d599bb6a104234d089e07ac582baa014d03b001a519/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f766a78676b6179697876316339356939697462692e6a7067" alt="Working of CHNP Cli"&gt;&lt;/a&gt;
CHNP Cli has following major components :&lt;/p&gt;
&lt;p&gt;1.Session Object: This is where all of your codes…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SGI-CAPP-AT2/chnp-cli" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How it works?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fvjxgkayixv1c95i9itbi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fvjxgkayixv1c95i9itbi.jpg" alt="Working of CHNP Cli" width="800" height="498"&gt;&lt;/a&gt;&lt;br&gt;
CHNP Cli has following major components :&lt;/p&gt;

&lt;p&gt;1.Session Object: This is where all of your codes and settings for current working directory is stored. (A Json File)&lt;br&gt;
2.Commands: Currently there are 2 commands &lt;a href="https://sgi-capp-at2.github.io/chnp-cli/help/commands.html" rel="noopener noreferrer"&gt;details&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;cohl: It is for operations like exporting or printing the session object i.e. it only reads the session objects.&lt;/li&gt;
&lt;li&gt;cohls: It is for operations like editing your style preferences, staging codes for printing and many more i.e. for editing session object&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;3.Operators: These are the always first arguments passed to commands like to perform add operation we'll use &lt;code&gt;add&lt;/code&gt; operator. &lt;a href="https://sgi-capp-at2.github.io/chnp-cli/help/operators.html" rel="noopener noreferrer"&gt;details&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CHNP Cli uses Nodejs as runtime &lt;/p&gt;
&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Prerequisites
&lt;/h4&gt;

&lt;p&gt;Nodejs is only Prerequisites you have to install&lt;br&gt;
You can install it from &lt;a href="https://nodejs.org/en" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Install
&lt;/h4&gt;

&lt;p&gt;After Installing the Nodejs you will type following command into terminal in any directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g chnp-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will install the CHNP-Cli &lt;/p&gt;

&lt;h2&gt;
  
  
  How to use it ?
&lt;/h2&gt;

&lt;h4&gt;
  
  
  STEP 1: Create Session Object
&lt;/h4&gt;

&lt;p&gt;Always you've to create session object so to do that you can use following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cohls create "&amp;lt;MyObjectName&amp;gt;""
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  STEP 2: Sepcify file name
&lt;/h4&gt;

&lt;p&gt;Cohls will ask you for filename enter like following&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cohls create "JavaSessionObject"
Enter filename while adding: $1.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here $1 will be replaced with 2nd arg passed while &lt;code&gt;add&lt;/code&gt; operator because 1st arg will alway be the &lt;code&gt;add&lt;/code&gt; operator.&lt;/p&gt;

&lt;h4&gt;
  
  
  STEP 3: Specify Commands
&lt;/h4&gt;

&lt;p&gt;To Execute Source Code of java we require 2 commands usually which are &lt;code&gt;javac&lt;/code&gt; and &lt;code&gt;java&lt;/code&gt;.&lt;br&gt;
So, Specify Them As Follows&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cohls create "JavaSessionObject"
Enter filename while adding: $1.java
Enter commands to run program while adding: 
1. &amp;gt; javac $1.java
2. &amp;gt; java $1
3. &amp;gt; 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now whenever we've to stage a java file we can use following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cohls add App
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source Code file will be &lt;code&gt;App.java&lt;/code&gt; which will produce &lt;code&gt;App.class&lt;/code&gt; and wil execute it.&lt;/p&gt;

&lt;h4&gt;
  
  
  STEP 4: Specify your watermark
&lt;/h4&gt;

&lt;p&gt;Like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cohls create "JavaSessionObject"
Enter filename while adding: $1.java
Enter commands to run program while adding: 
1. &amp;gt; javac $1.java
2. &amp;gt; java $1
3. &amp;gt; 
Enter watermark for your codes: CODE_BY_SHUBHAM
Operation is SUCCESSFULL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  STEP 5: Add a Java File
&lt;/h4&gt;

&lt;p&gt;You can add your file by using &lt;code&gt;add&lt;/code&gt; operator&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cohls add App.java
&amp;lt;
YOUR CODE EXECUTION WILL BE HERE
&amp;gt;
OPERATION IS SUCCESSFUL 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;And that's it for this post,&lt;br&gt;
You can use this project for printing your codes with output.&lt;/p&gt;

&lt;p&gt;Made with 💖 by Shubham&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>coding</category>
    </item>
    <item>
      <title>Host websites from mobile for free</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Thu, 23 Dec 2021 09:57:13 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/host-websites-from-mobile-for-free-36nc</link>
      <guid>https://forem.com/shubham_ingale/host-websites-from-mobile-for-free-36nc</guid>
      <description>&lt;h2&gt;
  
  
  Hosting from mobile
&lt;/h2&gt;

&lt;p&gt;Hosting is most important step to make your website accessible for world.&lt;br&gt;
there are some services which will help you to host from you Android mobile.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fj0gx7pg48d02pvwntx81.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fj0gx7pg48d02pvwntx81.jpeg" alt="GitHub pages banner" width="739" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub pages
&lt;/h3&gt;

&lt;p&gt;You can host your repository folder , branch or whole repo by enabling pages from repo settings. Get more information on &lt;a href="http://pages.github.com" rel="noopener noreferrer"&gt;pages.github.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F5zdrtbv1jxamu8yu5azn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F5zdrtbv1jxamu8yu5azn.png" alt="firebase hosting banner" width="333" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Firebase hosting
&lt;/h3&gt;

&lt;p&gt;Firebase hosting is better because it provides domain .web.dev&lt;/p&gt;

&lt;h4&gt;
  
  
  How you can host website on firebase via mobile.
&lt;/h4&gt;

&lt;p&gt;You've to download app called &lt;a href="https://play.google.com/store/apps/details?id=com.termux" rel="noopener noreferrer"&gt;termux&lt;/a&gt;&lt;br&gt;
Once you download termux you've to enter firebase commands in termux and site will be live.&lt;br&gt;
link &lt;a href="https://www.javatpoint.com/firebase-hosting" rel="noopener noreferrer"&gt;firebase commands&lt;/a&gt;&lt;br&gt;
if you've any Query about firebase hosting , &lt;a href="https://discord.gg/WMWM5eb2px" rel="noopener noreferrer"&gt;ask us&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F3lypx5qo6xcnz41gvy8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F3lypx5qo6xcnz41gvy8x.png" alt="Netlify banner" width="310" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Netlify
&lt;/h3&gt;

&lt;p&gt;Netlify also offers you free hosting with domain .netlify.app.&lt;br&gt;
You've to signup to Netlify and authenticate your gh/gl/bitbucket repo with site.&lt;/p&gt;

&lt;p&gt;Thanks for reading&lt;br&gt;
Written by &lt;a href="https://codebysgi.netlify.app" rel="noopener noreferrer"&gt;shubham&lt;/a&gt; with &lt;code&gt;&amp;lt;3&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>webdev</category>
      <category>android</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Creating markdown blog or docs generator with js.</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Wed, 15 Dec 2021 07:55:20 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/creating-markdown-blog-or-docs-generator-with-js-serverless-2e6b</link>
      <guid>https://forem.com/shubham_ingale/creating-markdown-blog-or-docs-generator-with-js-serverless-2e6b</guid>
      <description>&lt;p&gt;Hey there everyone ,&lt;br&gt;
If you've created blog on dev.to , you're might be familiar with blog generator with md.&lt;br&gt;
I'll share how you can create that type of generator with only js.&lt;/p&gt;
&lt;h2&gt;
  
  
  libraries to use.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/showdownjs/showdown" rel="noopener noreferrer"&gt;Showdown.js&lt;/a&gt; @showdownjs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sgi-capp-at2.github.io/" rel="noopener noreferrer"&gt;Markdown.css by sindresorhus&lt;/a&gt; @markdown-css&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  showdown.js
&lt;/h2&gt;

&lt;p&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fshowdownjs%2Flogo%2Fmaster%2Fdist%2Flogo.readme.png" class="article-body-image-wrapper"&gt;&lt;img alt="showdownjs-image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fshowdownjs%2Flogo%2Fmaster%2Fdist%2Flogo.readme.png" width="251" height="49"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Showdownjs is a library which converts markdown code into HTML code.&lt;br&gt;
From&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# header&lt;/span&gt;
&lt;span class="gs"&gt;**Bold**&lt;/span&gt;
&lt;span class="ge"&gt;_italic_&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;header&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;bold&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;em&amp;gt;&lt;/span&gt;italic&lt;span class="nt"&gt;&amp;lt;/em&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to use showdown.js
&lt;/h3&gt;

&lt;p&gt;You should visit to &lt;a href="https://github.com/showdownjs/showdown" rel="noopener noreferrer"&gt;official docs&lt;/a&gt; for advanced level tools of library.&lt;br&gt;
I'll show you how you can convert the md into html with GitHub flavour of markdown.&lt;br&gt;
&lt;/p&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;my_markdown_input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#mdinput&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;converter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;showdown&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;converter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;converted_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;converter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;makeHtml&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;my_markdown_input&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// converted_text will be variable having html code &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Markdown css
&lt;/h2&gt;

&lt;p&gt;The style created by sindresorhus which looks like github markdown body.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use markdown css ?
&lt;/h3&gt;

&lt;p&gt;The markdown css by sindresorhus is very simple to use. You just have to add classname "markdown-body" and it will convert html into GitHub like markdown styled html.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"markdown-body"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://sgi-capp-at2.github.io/blogs/Creating%20markdown%20blog%20or%20docs%20generator%20with%20js%20(serverless)./#how-to-use-markdown-css-" rel="noopener noreferrer"&gt;..Read More&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;to get notified about latest webdev news join us on&lt;/code&gt;&lt;a href="https://codebysgi.netlify.app/e.d/" rel="noopener noreferrer"&gt;&lt;code&gt;discord&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>markdown</category>
      <category>html</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to do web development only on mobile</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Sat, 11 Dec 2021 12:18:50 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/how-to-do-web-development-only-on-mobile-4ia3</link>
      <guid>https://forem.com/shubham_ingale/how-to-do-web-development-only-on-mobile-4ia3</guid>
      <description>&lt;p&gt;Hey there today I am sharing how I created &lt;a href="http://notableapp.github.io" rel="noopener noreferrer"&gt;boosted notes&lt;/a&gt; in mobile only. &lt;/p&gt;

&lt;h2 id="sharing-topics"&gt;Sharing topics&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Apps to use ( @apps-to-use ) &lt;/li&gt;
&lt;li&gt;Console for mobile &lt;/li&gt;
&lt;li&gt;Hosting via mobiles (in next blog)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="apps-to-use"&gt;Apps to use&lt;/h2&gt;

&lt;p&gt;There are many code editors on mobile I'll share two of them. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Treb edit
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fencrypted-tbn0.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcQrsbFN6GFcEF51PDuOT7EoMSBDEKijhhShUA%26usqp%3DCAU" alt="TrebEdit app logo" width="512" height="512"&gt; 
Teb edit is best app to use for web development on mobile. 
PROS:-
Better syntax highlight
Better app experience
JavaScript console
CONS:-
No local server &lt;/li&gt;
&lt;li&gt;Spck
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fencrypted-tbn0.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcQ-RT3N4YlPB6P9CNAlsthNGNiiub5R1BDZIw%26usqp%3DCAU" alt="Spck code" width="512" height="512"&gt;
Spck is better to use if you are working with git.
PROS:-
Support git
Zip file extraction
Intellisense
Local server support
CONS:-
No better responsiveness.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="console-in-mobile"&gt;console in mobile&lt;/h2&gt;

&lt;p&gt;You can use &lt;a href="https://github.com/liriliri/eruda" rel="noopener noreferrer"&gt;eruda console&lt;/a&gt; which is very simple to use in mobile.&lt;/p&gt;

&lt;h3 id="lets-try-it"&gt;Let's try it&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt; &lt;del&gt;First open any website on you browser&lt;/del&gt; (you've already opened this page)&lt;/li&gt;
&lt;li&gt; Enter following code in address bar&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class="hljs-attr"&gt;javascript&lt;/span&gt;:(&lt;span class="hljs-keyword"&gt;function&lt;/span&gt; (&lt;span class="hljs-params"&gt;&lt;/span&gt;) { &lt;span class="hljs-keyword"&gt;var&lt;/span&gt; script = &lt;span class="hljs-variable language_"&gt;document&lt;/span&gt;.&lt;span class="hljs-title function_"&gt;createElement&lt;/span&gt;(&lt;span class="hljs-string"&gt;'script'&lt;/span&gt;); script.&lt;span class="hljs-property"&gt;src&lt;/span&gt;=&lt;span class="hljs-string"&gt;"//cdn.jsdelivr.net/npm/eruda"&lt;/span&gt;; &lt;span class="hljs-variable language_"&gt;document&lt;/span&gt;.&lt;span class="hljs-property"&gt;body&lt;/span&gt;.&lt;span class="hljs-title function_"&gt;appendChild&lt;/span&gt;(script); script.&lt;span class="hljs-property"&gt;onload&lt;/span&gt; = &lt;span class="hljs-keyword"&gt;function&lt;/span&gt; (&lt;span class="hljs-params"&gt;&lt;/span&gt;) { eruda.&lt;span class="hljs-title function_"&gt;init&lt;/span&gt;() } })();&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id="demo-images-of-console"&gt;demo images of console&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSGI-CAPP-AT2%2FSGI-CAPP-AT2.github.io%2Fmain%2Fblogs%2FHow%2520to%2520do%2520web%2520development%2520only%2520on%2520mobile%2Feruda%2520console%2520button.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSGI-CAPP-AT2%2FSGI-CAPP-AT2.github.io%2Fmain%2Fblogs%2FHow%2520to%2520do%2520web%2520development%2520only%2520on%2520mobile%2Feruda%2520console%2520button.jpg" alt="image of eruda button" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSGI-CAPP-AT2%2FSGI-CAPP-AT2.github.io%2Fmain%2Fblogs%2FHow%2520to%2520do%2520web%2520development%2520only%2520on%2520mobile%2Feruda%2520console%2520screenshot.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FSGI-CAPP-AT2%2FSGI-CAPP-AT2.github.io%2Fmain%2Fblogs%2FHow%2520to%2520do%2520web%2520development%2520only%2520on%2520mobile%2Feruda%2520console%2520screenshot.jpg" alt="image of console eruda" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt; 

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>android</category>
    </item>
    <item>
      <title>Join us On telegram || Formal Dr</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Sun, 12 Sep 2021 10:25:44 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/join-us-on-telegram-formal-2inh</link>
      <guid>https://forem.com/shubham_ingale/join-us-on-telegram-formal-2inh</guid>
      <description>&lt;p&gt;The channel is stopped on OCT032021&lt;/p&gt;

</description>
    </item>
    <item>
      <title>PWA || MAKING APP synchronous || Auto update assets</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Sat, 04 Sep 2021 05:12:25 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/pwa-making-app-synchronous-auto-update-assets-51cc</link>
      <guid>https://forem.com/shubham_ingale/pwa-making-app-synchronous-auto-update-assets-51cc</guid>
      <description>&lt;h2&gt;
  
  
  Updating pwa
&lt;/h2&gt;

&lt;p&gt;Whenever you change the version of service worker the app gets auto updated.&lt;br&gt;
And also you can show interface for update.&lt;br&gt;
&lt;em&gt;But You have to make cool app&lt;/em&gt; like Amazon android which updates automatically when Amazon wants.&lt;/p&gt;
&lt;h2&gt;
  
  
  let's get started
&lt;/h2&gt;

&lt;p&gt;To make app like that you have to cache only your index.html.&lt;br&gt;
(If you have to give styled interface , you can add style.css also)&lt;/p&gt;
&lt;h3&gt;
  
  
  index.html
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;...

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"app"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"full-body"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;H1&amp;gt;&lt;/span&gt;You're offline&lt;span class="nt"&gt;&amp;lt;H1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"update.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;one script that will update content.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you are using the framework like MDL or bootstrap.You have to place their scripts after update.js&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  update.js
&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;template&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;you're online now&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;div#app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This is process which will update your app when you will update the template variable&lt;/p&gt;
&lt;h2&gt;
  
  
  Making more complex
&lt;/h2&gt;

&lt;p&gt;In my app I have created 3 tabs which are create,markdown to pdf, settings.&lt;br&gt;
Each tab have it's own template file. &lt;br&gt;
You can check here.&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://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/NotableAPP" rel="noopener noreferrer"&gt;
        NotableAPP
      &lt;/a&gt; / &lt;a href="https://github.com/NotableAPP/Formal-stack-pdfs" rel="noopener noreferrer"&gt;
        Formal-stack-pdfs
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Make pdf from image , markdown and more is coming...
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/NotableAPP/Formal-stack-pdfs/main/favicon.ico"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FNotableAPP%2FFormal-stack-pdfs%2Fmain%2Ffavicon.ico" height="30px"&gt;&lt;/a&gt;  Formal-stack-pdfs&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;The app where pdfs created in multiple ways like from markdown text , plain text , images to pdf and many features coming soon.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Formal contribution&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;if you want to contribute to our app/site then see issue availibility for you and then fork , edit and pr to project.&lt;/p&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/NotableAPP/Formal-stack-pdfs" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
And whenever the js file reads it on tab is changed and display content after reading means in my app content is purely synchronous with user .

&lt;blockquote&gt;
&lt;p&gt;You can check here :&lt;br&gt;
&lt;a href="https://formal-stack.netlify.app/" rel="noopener noreferrer"&gt;https://formal-stack.netlify.app/&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Example of my app
&lt;/h2&gt;

&lt;p&gt;In my app you can see I have created a loader and different tabs when you tap on tab the html template for that tab loads and the loader hides.&lt;br&gt;
On every click on tab button the &lt;code&gt;ui.js&lt;/code&gt; file reads the page template stored in &lt;code&gt;pages&lt;/code&gt; directory and shows content.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can see here &lt;a href="https://github.com/NotableAPP/Formal-stack-pdfs/tree/main/APP/pages" rel="noopener noreferrer"&gt;https://github.com/NotableAPP/Formal-stack-pdfs/tree/main/APP/pages&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In my app I have created my own extension which is &lt;code&gt;.stackformal&lt;/code&gt;.In this type of file I have stored the html code which appears on the call means on tab opened.&lt;/p&gt;
&lt;h2&gt;
  
  
  temp.js
&lt;/h2&gt;

&lt;p&gt;In my app I have created temp.js file which handles update temporary and after the service worker update app became stable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Written by SGI with 💕
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>pwa</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>PWA || Mistakes While making pwa INSTALLABLE</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Sun, 22 Aug 2021 13:09:38 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/pwa-mistakes-while-making-pwa-2le3</link>
      <guid>https://forem.com/shubham_ingale/pwa-mistakes-while-making-pwa-2le3</guid>
      <description>&lt;h2&gt;
  
  
  The Mistakes that make your pwa not valid to install. Or service and manifest does not meet installability
&lt;/h2&gt;

&lt;p&gt;Today,I'm writing the mistake that I created while making my pwas and grabbed some knowledge and now I am sharing that knowledge with you.&lt;/p&gt;

&lt;h2&gt;
  
  
  M1 : Icons purpose .
&lt;/h2&gt;

&lt;p&gt;In webmanifest we have to declare the purpose of our icon in &lt;code&gt;"icons":[{"purpose":"my purpose"}]&lt;/code&gt;&lt;br&gt;
We write purpose &lt;code&gt;maskable&lt;/code&gt; but it is not valid for Installiblity. You have to declare purpose to any .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"icons"&lt;/span&gt;&lt;span class="p"&gt;:[&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"purpose"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"any"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  M2 : Broken path.
&lt;/h2&gt;

&lt;p&gt;It's more important that you have to write correct path every time.&lt;br&gt;
If you write any broken path it will not meet Installiblity.&lt;br&gt;
&lt;em&gt;Where it's important.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;While Adding caches(sw.js)&lt;/li&gt;
&lt;li&gt;While writing paths of icon , scope and start_url.(manifest)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  M3 : Path have to smaller case
&lt;/h2&gt;

&lt;p&gt;In my app&lt;br&gt;
I was written &lt;br&gt;
&lt;a href="https://formal-stack.netlify.app/APP/" rel="noopener noreferrer"&gt;https://formal-stack.netlify.app/APP/&lt;/a&gt;&lt;br&gt;
And my folder was also &lt;code&gt;APP&lt;/code&gt; but it's important that start_url and scope in manifest have to match with the scope of registration of service worker (with case sensitivity).&lt;br&gt;
I replaced &lt;code&gt;APP&lt;/code&gt; with &lt;code&gt;app&lt;/code&gt; and my app became installable.&lt;/p&gt;
&lt;h2&gt;
  
  
  source code
&lt;/h2&gt;

&lt;p&gt;If you want to check pwa example.&lt;br&gt;&lt;br&gt;
Check&lt;br&gt;
&lt;a href="https://notableapp.github.io" rel="noopener noreferrer"&gt;https://notableapp.github.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://formal-stack.netlify.app" rel="noopener noreferrer"&gt;https://formal-stack.netlify.app&lt;/a&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://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/NotableAPP" rel="noopener noreferrer"&gt;
        NotableAPP
      &lt;/a&gt; / &lt;a href="https://github.com/NotableAPP/Formal-stack-pdfs" rel="noopener noreferrer"&gt;
        Formal-stack-pdfs
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Make pdf from image , markdown and more is coming...
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/NotableAPP/Formal-stack-pdfs/main/favicon.ico"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FNotableAPP%2FFormal-stack-pdfs%2Fmain%2Ffavicon.ico" height="30px"&gt;&lt;/a&gt;  Formal-stack-pdfs&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;The app where pdfs created in multiple ways like from markdown text , plain text , images to pdf and many features coming soon.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Formal contribution&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;if you want to contribute to our app/site then see issue availibility for you and then fork , edit and pr to project.&lt;/p&gt;

&lt;/div&gt;
&lt;br&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/NotableAPP/Formal-stack-pdfs" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;

&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/NotableAPP" rel="noopener noreferrer"&gt;
        NotableAPP
      &lt;/a&gt; / &lt;a href="https://github.com/NotableAPP/NotableAPP.github.io" rel="noopener noreferrer"&gt;
        NotableAPP.github.io
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      The noting app
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;BOOSTED&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;App which creates the notes with md.&lt;/p&gt;

&lt;p&gt;App is running at : &lt;a href="https://NotableAPP.github.io/" rel="nofollow noopener noreferrer"&gt;https://NotableAPP.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;br&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/NotableAPP/NotableAPP.github.io" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>webmanifest</category>
      <category>pwa</category>
    </item>
    <item>
      <title>jsPdf || 🖼️ Adjust image in scale Which will fit in page.</title>
      <dc:creator>ShGI</dc:creator>
      <pubDate>Sat, 21 Aug 2021 04:12:00 +0000</pubDate>
      <link>https://forem.com/shubham_ingale/jspdf-adjust-image-height-and-width-in-ratio-which-will-fit-on-page-469o</link>
      <guid>https://forem.com/shubham_ingale/jspdf-adjust-image-height-and-width-in-ratio-which-will-fit-on-page-469o</guid>
      <description>&lt;h2&gt;
  
  
  Making js-based
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fcp6dwq1rxj0tzeapq1v1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fcp6dwq1rxj0tzeapq1v1.png" alt="serverless explain image" width="554" height="554"&gt;&lt;/a&gt;&lt;br&gt;
online pdf maker / generator.&lt;br&gt;
It is hard to make clientside apps. It needs to get more libraries and stackoverflow (for me)🤓.&lt;br&gt;
I was also trying to create clientside pdf generator and I found very useful library. which is jsPDF. So,I used it and started to make app.&lt;/p&gt;
&lt;h2&gt;
  
  
  Starting using jsPDF
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fa11wlp4s9o29op3un50t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fa11wlp4s9o29op3un50t.png" alt="jsPdf logo" width="610" height="204"&gt;&lt;/a&gt;&lt;br&gt;
It was also not simple to implement library.Mainly the photo is not being fit on the page of pdf file.&lt;/p&gt;
&lt;h3&gt;
  
  
  let me show you example .
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fyzmfggk9zr1dec1cg0yb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fyzmfggk9zr1dec1cg0yb.jpg" alt="the pdf generated with jsPDF example" width="800" height="442"&gt;&lt;/a&gt;&lt;br&gt;
In this screenshot you can see the photo is going out of the pdf page &lt;br&gt;
I searched it on Google but no one written article on it and also jsPDF not given solution on this problem.&lt;br&gt;
So, I started solving this problem.&lt;/p&gt;
&lt;h2&gt;
  
  
  Ratio
&lt;/h2&gt;

&lt;p&gt;It's important to know the ratio&lt;br&gt;
 of image height as width so we can derive the small scale of the image which will fit on the page of pdf&lt;/p&gt;
&lt;h3&gt;
  
  
  here how to get ratio of image
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Note : we have to get ratio of image exact after image upload so, we can be able to use it globally whenever we wanted..&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's code it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;onchange=&lt;/span&gt;&lt;span class="s"&gt;"getratio(this.files"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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;images_to_convert&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;getRatio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;files&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Note files is json object not array object&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;files&lt;/span&gt;&lt;span class="p"&gt;)){&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;reader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FileReader&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onloadend&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;imgsrc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nf"&gt;addImageToPdf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;imgsrc&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readAsDataUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;addImageToPdf&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// src is data url of image&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onload&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nx"&gt;images_to_convert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="c1"&gt;// Now successfully ratio of height as width is noted&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It was how I noted Ratio.&lt;/p&gt;
&lt;h2&gt;
  
  
  Making image fit on page
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fgu1wfq1mmvew57avyytj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fgu1wfq1mmvew57avyytj.png" alt="Illustration that shows resize icon from icons8" width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Image by icons8&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now we have ratio of image.only we need is page height and width size.&lt;br&gt;
A4 page have width 210mm and height 300mm so the max is 300mm*210mm.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;max&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;210&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;We have know that the image height and width is in pixels but this doesn't Matter because it's in ratio.&lt;br&gt;
Because , Height as well as width decrease or increase at same time so ratio will in same proportion.&lt;/p&gt;
&lt;h2&gt;
  
  
  Rendering
&lt;/h2&gt;

&lt;p&gt;Now things we have are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Max height and width &lt;/li&gt;
&lt;li&gt;Ratio of image height as width&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If width of page is smaller than image width then image width will be page width  similarly , if height of page is smaller than image height then image height is page hei axis.&lt;br&gt;
Let me show in code&lt;br&gt;
&lt;/p&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;render&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;doc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;jsPDF&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;p&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mm&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a4&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;image_to_convert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// img is json that we stored previously&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;max&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;max&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;max&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;ratio&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Making reciprocal of ratio because ration of height as width is no valid here needs width as height&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;max&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;ratio&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// Ratio is valid here &lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;png&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   
&lt;span class="nx"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addPage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;p&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mm&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a4&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Now successfully fitted image on page                                                &lt;/span&gt;
&lt;span class="c1"&gt;// I will prefer to use mm instead px&lt;/span&gt;

&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;download.pdf&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://formal-stack.netlify.app/" rel="noopener noreferrer"&gt;https://formal-stack.netlify.app/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;I have created the App which converts images into pdf. Which will show you how images are being fitted on page of jsPDF.&lt;br&gt;
Source code:-&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://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/NotableAPP" rel="noopener noreferrer"&gt;
        NotableAPP
      &lt;/a&gt; / &lt;a href="https://github.com/NotableAPP/Formal-stack-pdfs" rel="noopener noreferrer"&gt;
        Formal-stack-pdfs
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Make pdf from image , markdown and more is coming...
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/NotableAPP/Formal-stack-pdfs/main/favicon.ico"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FNotableAPP%2FFormal-stack-pdfs%2Fmain%2Ffavicon.ico" height="30px"&gt;&lt;/a&gt;  Formal-stack-pdfs&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;The app where pdfs created in multiple ways like from markdown text , plain text , images to pdf and many features coming soon.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Formal contribution&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;if you want to contribute to our app/site then see issue availibility for you and then fork , edit and pr to project.&lt;/p&gt;

&lt;/div&gt;
&lt;br&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/NotableAPP/Formal-stack-pdfs" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>jspdf</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
