[Obsidian](https://obsidian.md/) is an open source writting app based on the markdown format that I use daily for my note taking. One of the biggest strength of Obsidian is the community that can create plugins to extend the functionalities of the software.
I decided to walk through the list of plugins I was using and looked at the activity on the github repository pages of each extention.
The top 10 extention that I was already using before this project is named [Iconize](https://github.com/FlorianWoelki/obsidian-iconize) and it simply allows to use icons in the markdown files and in the file explorer. I saw the project was still active with new pull requests and issues opened each month, so I decided to contribute to this project.
- Number of downloads on the obsidian community plugins browser: 1,085,874
## **Contribution Process**
I started by looking at the opened issues on the github repository and found [issue #543](https://github.com/FlorianWoelki/obsidian-iconize/issues/543). This issue was explaining that the display of icons was not working in the very specific case of an icon being in a "callout" (a block of text with a different background color) if the callout contained a code block. As I daily use these elements, I decided to work on this issue.
The first step for me was to get familiar with the language, TypeScript, that I never used before. Then I learned on the Obsidian documentation how the plugin system works. I then took some time to install the requirements, clone and manage to run the project locally.
The biggest part of my project was to dive into the codebase and understanding the markdown rendering process of the plugin in order to locate the error. After multiple tries and errors, I found the part of the code that was causing the issue and I was able to fix it with a very simple change.
I pushed my changes on my fork and opened a new [pull request](https://github.com/FlorianWoelki/obsidian-iconize/pull/567) on september 25th. The maintainer thanked me and merged my pull request on October 15th without any changes needed. He then published a new [release](https://github.com/FlorianWoelki/obsidian-iconize/releases/tag/2.14.4) of the plugin containing my fix on October 21th.
During this waiting time, I interessed myself in the open source world and created another [pull request on another project](https://github.com/GoXLR-on-Linux/goxlr-ui/pull/59). This second project was bigger in term of the contribution size as it contains a translation of part of the software in French, but I decided to keep the first contribution for this course as I learned much more on the contribution process, and the difficulty of understanding a codebase that I never saw before.
## **Conclusion**
During this project, I leanred how to contribute to an open source project, how to interact with a community by learning from previous issues and pull requests, and how the biggest part is not the code itself but the understanding of the codebase of the project. I was really happy to see my fix published in a code I use everyday and I will continue to contribute to open source projects in the future.