DEV Community

Cover image for Contributing code to open source repositories
Kunwarvir
Kunwarvir

Posted on

Contributing code to open source repositories

As a part of my open source journey, this week I worked on commandline-ssg.

Changes

I started off by creating a ticket on the repo to describe the .md file support I was planning on adding. The scope included the ability to parse paragraphs and headings. As a nice to have, I also included the ability to parse **bold** text.

Working on commandline-ssg

Once I had approval from the owner, the .md ticket was assigned to me and I started off by forking the repository and creating a branch to work on the issue (dhillonks/commandline-ssg:issue-8). The code in the repo was already organized into modules which made it easier for me to expand the parsing functionality. I ended up splitting the parsing method to add a flow for .md files. This ensured that I wasn't affecting any old functionality, leaving the parsing for .txt as is.
After some coding, I was able to parse .md files and detect headings h1-h6. I used the first h1 text as the placeholder for <title>. The tool could now also generate paragraphs properly for separated lines which were not headings. Moreover, both **bold** and __bold__ markdown syntax for bold text were supported. Along with these code changes, I also modified the Readme.md file to document this new functionality.

Creating a pull request to get the work accepted into the original repo

After thoroughly testing my changes, making sure that the new functionality worked and also ensuring that it didn't break any old functionality, I created a pull request on the original repository.

Link to the pr to commandline-ssg - Click here!

I included a description of the changes that were made, the functionality that was added and sample usage for .md files. I also pinged the code owner to review the pull request once it was created. Today, I just found out that my changes were approved and the pull request was merged!

Reviewing a pull request to cli-ssg

I also received a pull request to the open source tool I had created earlier.

Link to the pr to my repo - Click here

The pr was also adding functionality to parse .md files including the headings, bold, italics, links and strikethrough. It looked good at a first glance and the functionality mostly worked but I ended up finding a few issues after looking closely.

The biggest problem was that <p> paragraphs were not being generated for non-headings. This was obviously an big problem which I need to highlight.

Also, it rendered bold using <b> and italics using <i> which is not the best way to markup emphasis. So I suggested that bold should instead use <strong> and italics should instead use <em>.

My last suggestion was not a bug, but since the PR was also implementing the syntax support for links, I wanted to make sure that it also supported automatic links i.e. links within angled braces<url> should be rendered to an anchor tag.

I highlighted these and requested changes when I added my review to the pr. I look forward to reviewing the pr again once these changes are made.

Discussion (0)