<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ technical writing - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ technical writing - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 29 May 2026 23:04:23 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/technical-writing/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Use Pandoc – An Open Source Tool for Technical Writers ]]>
                </title>
                <description>
                    <![CDATA[ Technical writers frequently navigate the complexities of various document formats and revisions. Pandoc, a free and open-source tool, offers a powerful solution to streamline these processes. In this tutorial, I'll explain the Pandoc's functionaliti... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-pandoc/</link>
                <guid isPermaLink="false">66bb8ac7d2bda3e431549198</guid>
                
                    <category>
                        <![CDATA[ Google Docs ]]>
                    </category>
                
                    <category>
                        <![CDATA[ markdown ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Vikram Aruchamy ]]>
                </dc:creator>
                <pubDate>Tue, 09 Jul 2024 15:33:40 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/07/pandoc-freecodecamp-1.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Technical writers frequently navigate the complexities of various document formats and revisions. <a target="_blank" href="https://pandoc.org/">Pandoc</a>, a free and open-source tool, offers a powerful solution to streamline these processes.</p>
<p>In this tutorial, I'll explain the Pandoc's functionalities, specifically focusing on two key areas that can significantly enhance the workflow for technical writers:</p>
<p><strong>Docs and Markdown Conversions</strong>: If you write in Google Docs to leverage their collaborative writing, editing, and review features, Pandoc empowers you to <a target="_blank" href="https://www.docstomarkdown.pro/convert-google-docs-to-markdown/">convert Google Docs into markdown</a> for publishing needs, and if you write in markdown, it helps you convert markdown to Google Docs or Microsoft Word for creating deliverables.</p>
<p><strong>Merging of Multiple Docs into One</strong>: If you work in the "content as component approach", Pandoc allows you to <a target="_blank" href="https://workspace.google.com/marketplace/app/merge_docs_pro/61337277026">merge multiple Google Docs into a single document</a> with a few commands for publishing needs.</p>
<p>You can also create scripts to automate these processes.</p>
<h2 id="heading-why-use-markdown-for-technical-writing">Why Use Markdown for Technical Writing?</h2>
<p><a target="_blank" href="https://www.freecodecamp.org/news/markdown-cheatsheet/">Markdown</a> is great for technical writers because it simplifies the writing process and improves collaboration. Here's why:</p>
<p><strong>Readability and Ease of Use</strong>: Markdown uses plain text symbols for formatting, making it clear and easy to learn. This lets you concentrate on writing clear content without getting caught up in styling complexities.</p>
<p><strong>Platform Independence</strong>: Markdown files are plain text, allowing you to write in any text editor on any device. This flexibility provides freedom in your writing environment and eliminates software compatibility concerns.</p>
<p><strong>Seamless Conversion with Free Tools</strong>: Free tools such as Pandoc offer format flexibility for markdown users, such as <a target="_blank" href="https://www.docstomarkdown.pro/convert-markdown-to-google-docs/">converting markdown to Google Docs</a>, Word documents, or HTML, ensuring compatibility with collaborative editing needs and final deliverables. This also extends to modern workflows, where large language models generate content in markdown. You can use ChatGPT or the Gemini API for creating initial drafts, integrate them with your writing, and then use Pandoc to convert the final document to Google Docs or Microsoft Word for team editing, feedback, and creating deliverables. This streamlined workflow empowers efficient and collaborative content creation.</p>
<p><strong>Version Control Friendly</strong>: Markdown's plain text nature enables seamless integration with version control systems like Git. This facilitates tracking changes, reverting to previous versions. This is particularly valuable for technical writing projects that often undergo revisions and involve multiple team members working on different sections.</p>
<h2 id="heading-why-merge-multiple-documents-into-one">Why Merge Multiple Documents into One?</h2>
<p>Technical writing often involves creating complex documents from smaller, reusable pieces. We call these pieces "content components." These components can be individual chapters, user guides, reference articles, or any other modular unit that contributes to the final product. In other words, content components are building blocks for bigger projects.</p>
<p>However, writing tools such as <a target="_blank" href="https://www.google.com/docs/about/">Google Docs</a> lack the ability to merge these components into a one document. This can be a major hurdle for projects like:</p>
<ol>
<li><strong>Technical Documentation:</strong> Building a user guide by assembling and reordering pre-written topics rather than crafting the entire document from scratch.</li>
<li><strong>Reference Guides:</strong> Consolidating multiple articles from a knowledge base into a single, printable reference manual.</li>
<li><strong>Book Authoring:</strong> Constructing a book by compiling individual chapters and appendices, streamlining the writing and editing process.</li>
</ol>
<p>In all these scenarios, the need to merge content components becomes crucial for creating well-structured and efficient documentation.</p>
<h2 id="heading-how-to-install-pandoc">How to Install Pandoc</h2>
<p>You can install Pandoc on your system using the packages available in the <a target="_blank" href="https://github.com/jgm/pandoc/releases">releases</a> list. The <a target="_blank" href="https://pandoc.org/installing.html">installation page</a> has a detailed tutorial on the steps to install it on different systems.</p>
<p>Once Pandoc is installed, you can use it in the command line to perform different document conversion operations as explained below.</p>
<h2 id="heading-how-to-convert-markdown-to-word-or-google-docs">How to Convert Markdown to Word or Google Docs</h2>
<p>To convert a markdown file to a Word document or Google Docs using Pandoc, follow these steps:</p>
<ol>
<li>Open a terminal or command prompt and navigate to the directory where your markdown file is located.</li>
<li>Run the following Pandoc command to convert your markdown file to a Word document:</li>
</ol>
<pre><code>pandoc input.md -o output.docx
</code></pre><p>Replace <code>input.md</code> with the name of your input markdown file, and <code>output.docx</code> with the desired name of your Word document.</p>
<p>To convert the Docx format into Google Docs, you can upload it to Google Drive and open it in Google Docs.</p>
<p>With these steps, you can convert your markdown files to Word documents or Google Docs using Pandoc.</p>
<h2 id="heading-how-to-convert-google-docs-or-word-to-markdown">How to Convert Google Docs or Word to Markdown</h2>
<p>In this section, I'll explain how to convert a Google Docs or Microsoft Word document into arkdown format.</p>
<p>While the Docs format is accepted by Pandoc, you cannot use the Google Docs URL directly with Pandoc. Therefore, you need to export the Google Doc into Docx format.</p>
<p>Go to <em>File</em> &gt; <em>Download</em> &gt; <em>Microsoft Word (.docx)</em> in your Google Doc to download the document in the <code>.docx</code> format as shown in the following image:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/07/Screenshot-2024-07-08-at-3.05.41-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>option to download document in .docx format</em></p>
<p>Now you'll have the Word document equivalent of the Google Docs.</p>
<p>To <a target="_blank" href="https://www.docstomarkdown.pro/convert-word-to-markdown/">convert the Word document to markdown</a> using Pandoc, run the following command in your terminal or command prompt:</p>
<pre><code>pandoc input.docx -o output.md
</code></pre><p>Replace <code>input.docx</code> with the name of your Word document, and <code>output.md</code> with the desired name of your markdown file.</p>
<h2 id="heading-how-to-merge-multiple-documents-into-one">How to Merge Multiple Documents into One</h2>
<p>To <a target="_blank" href="https://www.mergedocs.pro/">merge multiple Google Docs or Word documents into a single file</a> using Pandoc, you can follow these two steps:</p>
<ol>
<li>Convert individual documents to markdown using the Pandoc conversion command to convert each Google Doc or Word document into a separate markdown file (explained in the previous section).</li>
<li>Once you have individual markdown files, use the following Pandoc command to merge them into a single document.</li>
</ol>
<pre><code>pandoc file1.md file2.md -o merged_output.docx
</code></pre><p>Replace <code>file1.md</code> and <code>file2.md</code> with the names of your input markdown files. These files will be merged into one <code>merged_output.docx</code>.</p>
<p>You can use your desired output format instead of <code>merged_output.docx</code> based on your goals. For instance, you can create a single HTML file if you intend to publish it on the web, or use the markdown format if your publishing platform supports markdown.</p>
<p>This approach leverages Pandoc's strengths for format conversion and merging to achieve the desired outcome of a unified document.</p>
<p>For more information and helpful answers about using Pandoc, check out the <a target="_blank" href="https://pandoc.org/faqs.html">Pandoc FAQs</a>.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>In conclusion, Pandoc is a powerful and versatile tool for technical writers, offering document conversion and merging capabilities. </p>
<p>With its ability to convert Google Docs into markdown and merge multiple documents into one, Pandoc streamlines the process of creating and publishing technical documentation.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Become a Technical Writer – A Guide for Developers ]]>
                </title>
                <description>
                    <![CDATA[ Being a top-notch developer was my dream – until I realized I could combine my passion for writing with my technical knowledge to earn a living. That's right: I'm talking about becoming a technical writer. And if you're a developer, you may be in a g... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-become-a-technical-writer-guide-for-devs/</link>
                <guid isPermaLink="false">66bf4ac1be10d17622ff39fa</guid>
                
                    <category>
                        <![CDATA[ Career Change ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Tooba Jamal ]]>
                </dc:creator>
                <pubDate>Thu, 20 Jun 2024 15:54:28 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/06/tech-writing.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Being a top-notch developer was my dream – until I realized I could combine my passion for writing with my technical knowledge to earn a living. That's right: I'm talking about becoming a technical writer.</p>
<p>And if you're a developer, you may be in a good position to get into technical writing if it's something that interests you.</p>
<p>Developers have a lot of knowledge about topics like Git, Markdown, programming languages, and IDEs that they can use to teach others. And since they have worked with these tools and technologies themselves, they can often write documentation with a user-centric approach. </p>
<p>It's also fairly lucrative to be a technical writer, with the average salary in the US being <a target="_blank" href="https://www.glassdoor.com/Salaries/technical-writer-salary-SRCH_KO0,16.htm">$76,432</a> per year. This makes it a viable career to support yourself and your family.</p>
<p>Luckily, I had technical writing samples to exhibit my writing skills when I decided to give it a chance. My love for writing offered me a ready-made technical writing portfolio and made my <a target="_blank" href="https://www.dreamsinscript.com/career-change/">career change</a> easier. </p>
<p>But this is not the case for everyone and people regularly ask me tips to start technical writing and earn through it. So I'm compiling all the things that helped me transition into technical writing in this article. </p>
<h2 id="heading-what-is-technical-writing">What is Technical Writing?</h2>
<p>Technical writing typically involves breaking down complex technical knowledge into simple words, making it easier for a non-technical audience to grasp technical concepts. The aim of technical writing is to ensure that users can effectively use a technology, which ultimately improves user satisfaction.</p>
<p>As a technical writer, you can write about a wide range of topics and write for different purposes and audiences. Some of the types of writing you may do will include: </p>
<ul>
<li>User manuals</li>
<li>Documentation</li>
<li>Detailed guides</li>
<li>Blog posts</li>
<li>White papers</li>
<li>SOPs</li>
</ul>
<p>and so on.</p>
<p>Accuracy, consistency, clarity, and conciseness are some of the crucial aspects of technical writing.</p>
<h2 id="heading-what-are-the-responsibilities-of-a-technical-writer">What are the Responsibilities of a Technical Writer?</h2>
<p>Technical writing requires extensive research, which can make the writing process longer. Technical writers stay in a loop with Subject Matter Experts (SMEs) to understand the technical details of client products/ services.</p>
<p>After gathering loads of information through expert interviews and research, technical writers compile relevant information into their writing. </p>
<p>After gaining some experience, technical writers might also have to edit and proofread others' writing. Proofreading and editing require patience, attention to detail, and empathy. </p>
<h2 id="heading-how-to-become-a-technical-writer">How to Become a Technical Writer</h2>
<h3 id="heading-share-your-knowledge">Share Your Knowledge</h3>
<p>Start writing tutorials, how-to guides, and share your experience with technology on an open publishing platform like Medium, Hashnode, or HackerNoon. These blog sites are easy to handle for beginners because they're free and some of their publications have a huge audience base. </p>
<p>If you're unsure about how to write technical articles, start reading a lot of them. This will start to give you the sense of how technical writers share their information in an approachable way, how they structure their articles, what topics they focus on, and so on.</p>
<p>Below are some beginner-friendly blog post ideas:</p>
<ul>
<li>How to do X in/ using Y (Example: How to build a portfolio website in WordPress)</li>
<li>X ways to do Y (Example: 3 ways to avoid overfitting in machine learning models)</li>
<li>What I learned in 10 days of working with X (Example: What I learned in 10 days of working in VSCode)</li>
<li>A guide to X: Everything you need to know (Example: A guide to AI Website builders: Everything you need to know) </li>
</ul>
<p>You can also read various publications' technical writing guides. These contain a lot of helpful hints and information about how to write good technical tutorials. <a target="_blank" href="https://www.digitalocean.com/community/tutorials/digitalocean-s-technical-writing-guidelines">Digital Ocean</a> has a pretty well-known one, and <a target="_blank" href="https://www.freecodecamp.org/news/developer-news-style-guide/">freeCodeCamp has their own</a> as well.</p>
<h3 id="heading-build-a-portfolio">Build a Portfolio</h3>
<p>Once you've got a few writing samples, you can help build your credibility by creating an online portfolio that contains all your writing samples. This is something you can share with potential employers or project maintainers.</p>
<p>You can share it on social media platforms, display it on LinkedIn featured section, and send to potential clients.</p>
<p>You can also try writing for publications. Well-known publications often have a huge following and they share contributor content on their social media platforms. This can help build your personal brand as a technical writer, grow your network, and motivate you to write more good stuff.  </p>
<p>Some publications that accept contributions from new writers are:</p>
<ul>
<li><strong>freeCodeCamp:</strong> freeCodeCamp expects you to have at least three writing samples when you submit a contributor application. The application process is a bit more rigorous than some, and they don't accept every application for various reasons. But if you don't hear from them and aren't accepted the first time, don't give up. You can keep improving your writing, and try again later – or try other publications. You can find the fCC contributor guidelines <a target="_blank" href="https://www.freecodecamp.org/news/how-to-write-for-freecodecamp/">here</a>.</li>
<li><strong>Towards Data Science:</strong> Towards Data Science accepts articles revolving around data science and machine learning. They expect you to submit well-structured, comprehensive, and up-to-date articles. Read the TDS contributor guidelines <a target="_blank" href="https://towardsdatascience.com/questions-96667b06af5">here</a>.</li>
<li><strong>Level Up Coding:</strong> Level Up Coding is an online publication focused on sharing technical knowledge to help software engineers learn and grow. They have an audience of developers, designers, and data scientists so they expect content that's useful to them. <a target="_blank" href="https://levelup.gitconnected.com/how-to-get-published-on-gitconnected-dac547ef556b">Here</a> are the contributing guidelines for Level Up Coding.</li>
</ul>
<p>Though all publications have contributing guidelines in place to help contributors write relevant samples, a few tips to make your pitch a success are:</p>
<ol>
<li><strong>Get familiar:</strong> Read at least 3-5 top-performing articles in the publication you want to contribute to. Pay attention to the tone of voice and the level of detail shared to understand their preferences. </li>
<li><strong>Create an outline:</strong> An outline is a structure for your content that keeps you on track while writing. You can create a good outline using top-performing content, AI tools, and your expertise.</li>
<li><strong>Drafting:</strong> Create a draft based on your outline and let it sit for at least two days. This gap helps you spot mistakes in your draft that you might overlook during or immediately after writing.</li>
<li><strong>Submit your draft:</strong> Finally, send your draft for review to the publication. They might edit your draft or ask you to make some changes before they publish it. Some publications also use AI content detectors, so if your publication does, make sure to verify your content using the same AI detector.</li>
</ol>
<h3 id="heading-share-your-work">Share Your Work</h3>
<p>While you're building your portfolio of technical articles, you can share them on LinkedIn (and other social media sites like Twitter) to let the world know about your new skills – and that you're writing about interesting technical topics.</p>
<p>You can also include a link to your LinkedIn profile in the articles you write, if the publication allows it, to help people find you. You'll be amazed to see how many people admire your work, and this will keep you going. You might also receive paid projects and job opportunities in your DMs.</p>
<h3 id="heading-upskill-to-documentation-writing">Upskill to Documentation Writing</h3>
<p>One great way to practice your technical writing (and help others along the way) is to contribute to documentation issues on GitHub open-source projects. This will expand your skillset and give you experience writing documentation and help you become more familiar with contributor guidelines. </p>
<p>Documentation writing is more focused on the product and, unlike blog posts, is usually concise. It follows a predefined structure, and the content format across pages is consistent. Accessibility, consistency, and clarity are the general best practices of writing documentation.</p>
<p>Pay attention to the editor's suggestions to develop a better understanding. There are usually two types of editor suggestions: objective and subjective. Objective suggestions are about general writing guidelines such as transition and clarity, whereas subjective suggestions are focused on company tone and preference. </p>
<p>Objective suggestions help you improve your writing skills and subjective suggestions guide you to align with company voice.</p>
<h3 id="heading-find-paid-projects">Find Paid Projects</h3>
<p>Once you're comfortable writing technical content and doing content research, start searching for paid work. Apply to entry level jobs or look for freelance projects on job boards and in your circle. Doing the real work will really help advance your technical writing journey. </p>
<p>Though freelance platforms have become competitive, you can still find paid projects there. <a target="_blank" href="https://sproutsocial.com/glossary/personal-brand/#:~:text=Personal%20branding%20is%20the%20process,and%20values%20that%20differentiate%20you.">Personal branding</a> works wonders in landing paid opportunities. Keep your GitHub and LinkedIn profiles updated, and share your achievements there to attract potential clients and stand out from the crowd.</p>
<h2 id="heading-how-to-learn-the-skills-for-technical-writing">How to Learn the Skills for Technical Writing</h2>
<p>You can find a lot of quality writing courses, but finding the right course can be a struggle. I've taken quite a few writing courses and I'd love to help you out by sharing the tips and courses that are worth your time:</p>
<ol>
<li>The <a target="_blank" href="https://www.udemy.com/course/secret-sauce-of-great-writing/">Secret Sauce of Great Writing by Shani Raja</a> is a perfect course for beginners. It covers the core aspects of good writing with practice exercises and lots of examples.</li>
<li><a target="_blank" href="https://www.devreluni.com/">DevRel Uni</a> is an online cohort-based program for people seeking to switch to developer relations. They've got a separate class on documentation writing where experts share the secrets of good documentation.</li>
<li>Whenever you secure your first external project, pay attention to editor suggestions. If it's a contributor article and they don't offer a one-to-one editing process, compare your submitted copy with the published article. Take notes of the changes they made. Editor suggestions are precious to make your writing better and if you take them seriously, you'll witness improvements in your writing soon.</li>
</ol>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Though career change can be exciting, transitioning from development to technical writing isn't too daunting. You just need to <a target="_blank" href="https://www.dreamsinscript.com/overcome-career-change-anxiety/">manage your career change anxiety</a>, build a portfolio, and start cultivating your personal brand for a successful transition.</p>
<p>Still got questions? Feel free to reach out to me on <a target="_blank" href="https://www.linkedin.com/in/tooba-jamal">LinkedIn</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Learn GitHub-Flavored Markdown Syntax and Formatting – With Examples ]]>
                </title>
                <description>
                    <![CDATA[ Markdown is a lightweight, open-source, easy-to-read and easy-to-write method of formatting text that you can use as plain text in any IDE or editor. When writing on GitHub, you can use Markdown syntax and HTML elements to extend Markdown's functiona... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/github-flavored-markdown-syntax-examples/</link>
                <guid isPermaLink="false">66d038a57d662cf201f5ec59</guid>
                
                    <category>
                        <![CDATA[ GitHub ]]>
                    </category>
                
                    <category>
                        <![CDATA[ markdown ]]>
                    </category>
                
                    <category>
                        <![CDATA[ syntax ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Rajdeep Singh ]]>
                </dc:creator>
                <pubDate>Thu, 11 Apr 2024 19:08:04 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/04/freecodecampl-github.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><a target="_blank" href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> is a lightweight, open-source, easy-to-read and easy-to-write method of formatting text that you can use as plain text in any IDE or editor.</p>
<p>When writing on GitHub, you can use Markdown syntax and HTML elements to extend Markdown's functionality. You can use Markdown syntax everywhere in GitHub, such as in the README file, wiki, comments, pull requests, and when creating issues.</p>
<p>For every software developer, learning markdown is an essential step along the path of your career.</p>
<p>To enhance Markdown's basic features, GitHub added some custom functionalities and created <a target="_blank" href="https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github">GitHub-Flavored Markdown</a>. With this, you can easily interact with other users in pull requests and issues by mentioning user, issue, and PR references and adding emoji.</p>
<p>This tutorial teaches you the basics of GitHub-Flavored Markdown so you can start using it in your projects.</p>
<p>All the code is <a target="_blank" href="https://github.com/officialrajdeepsingh/github-tutorial">available in the GitHub repository</a>.</p>
<h2 id="heading-github-flavored-markdown-syntax">GitHub-Flavored Markdown Syntax</h2>
<p>GitHub Flavored Markdown syntax is divided into two parts.</p>
<ol>
<li><a class="post-section-overview" href="#basis-formatting-syntax">Basic Formatting Syntax</a></li>
<li><a class="post-section-overview" href="#heading-advanced-formatting-syntax">Advanced Formatting Syntax</a></li>
</ol>
<p>We'll look at each one in detail below.</p>
<h3 id="heading-basic-formatting-syntax">Basic Formatting Syntax</h3>
<p>Basic formatting syntax applies to everyone. It contains fundamental essentials such as headings, code, images, quotes, links, and so on – things you'll need to know for writing.</p>
<ol>
<li><a class="post-section-overview" href="#heading-headings">Headings</a></li>
<li><a class="post-section-overview" href="#heading-paragraphs">Paragraphs</a></li>
<li><a class="post-section-overview" href="#comment">Comment</a></li>
<li><a class="post-section-overview" href="#heading-styling-text">Styling text</a></li>
<li><a class="post-section-overview" href="#heading-quotes">Quotes</a></li>
<li><a class="post-section-overview" href="#heading-code">Code</a></li>
<li><a class="post-section-overview" href="#heading-links">Links</a></li>
<li><a class="post-section-overview" href="#heading-images">Images</a></li>
<li><a class="post-section-overview" href="#heading-lists">Lists</a></li>
<li><a class="post-section-overview" href="#heading-mentioning-people-and-teams">Mentioning people and teams</a></li>
<li><a class="post-section-overview" href="#heading-referencing-issues-and-pull-requests">Referencing issues and pull requests</a></li>
<li><a class="post-section-overview" href="#using-emojis">Using emojis</a></li>
<li><a class="post-section-overview" href="#heading-footnotes">Footnotes</a></li>
<li><a class="post-section-overview" href="#heading-alerts">Alerts</a></li>
</ol>
<p>Note that the code samples mostly come from <a target="_blank" href="https://docs.github.com/en/get-started">GitHub's documentation</a>.</p>
<h3 id="heading-headings">Headings</h3>
<p>You can use the <code>#</code> symbol to create headings. One <code>#</code> creates an H1 heading, two create an H2 heading, and so on, like this:</p>
<pre><code class="lang-markdown"><span class="hljs-section"># A first-level heading</span>
<span class="hljs-section">## A second-level heading</span>
<span class="hljs-section">### A third-level heading</span>
<span class="hljs-section">#### A four-level heading</span>
<span class="hljs-section">##### A five-level heading</span>
<span class="hljs-section">###### A six-level heading</span>
</code></pre>
<h3 id="heading-paragraphs">Paragraphs</h3>
<p>To create paragraphs, you can use a blank line to separate one or more lines of text or paragraphs.</p>
<pre><code class="lang-markdown">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam est odio, commodo id diam sed, pulvinar sagittis tortor. Nam vestibulum purus eros. Sed congue, mi id pretium auctor, nibh augue iaculis arcu, eu tristique quam dolor at erat.

Quisque vel odio condimentum, mollis sem vitae, porta diam. Praesent ligula elit, condimentum eget ex sed, commodo sollicitudin sapien.


Proin volutpat faucibus nulla. Nullam eros sem, ultricies gravida nunc nec, dapibus posuere nisl. Nunc lacinia elementum turpis in pharetra. Aenean eu neque eros.
</code></pre>
<h3 id="heading-comments">Comments</h3>
<p>Comments are available in almost every programming language. They help developers write notes and add additional information to their code, helping other developers understand what's going on and how the code is working.</p>
<p>To add notes and additional information in Markdown, use the following syntax: <code>&lt;!--- Wrap text ---&gt;</code>.</p>
<p>Here's an example:</p>
<pre><code class="lang-markdown"><span class="xml"><span class="hljs-comment">&lt;!-- This content will not appear in the rendered Markdown --&gt;</span></span>
</code></pre>
<h3 id="heading-styling-text">Styling text</h3>
<p>You can apply basic styles to your text, such as bold, italic, strikethrough, subscript, or superscript, to improve readability and convey your point more clearly.</p>
<ol>
<li>For <strong>Bold</strong>, you can use the following syntax:  <code>**your text**</code></li>
<li>For <strong><em>italics</em></strong>, you can use the following syntax:  <code>*your text* or _your text_.</code></li>
<li>For <strong>strikethrough</strong>, you can use the following syntax: <code>~~your text~~</code></li>
<li>For <strong>subscript</strong>, you can use the following syntax:  <code>The subscript &lt;sub&gt; text &lt;/sub&gt; is here.</code></li>
<li>For <strong>superscript</strong>, you can use the following syntax:  <code>The superscript &lt;sup&gt; text &lt;/sup&gt; is here.</code></li>
</ol>
<pre><code class="lang-markdown"><span class="hljs-section">## Bold</span>

<span class="hljs-strong">**your text**</span>

<span class="hljs-section">## italics</span>

<span class="hljs-emphasis">*your text*</span>
<span class="hljs-emphasis">_your text_</span>

<span class="hljs-section">## strikethrough</span>

~~your text~~

<span class="hljs-section">## subscript</span>

The subscript <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">sub</span>&gt;</span></span> text <span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">sub</span>&gt;</span></span> is here.

<span class="hljs-section">## superscript</span>

The subscript <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">sup</span>&gt;</span></span> text <span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">sup</span>&gt;</span></span> is here.
</code></pre>
<h3 id="heading-quotes">Quotes</h3>
<p>A blockquote or quote is a sentence or paragraph formatted to let the reader know that you're quoting someone. To create a blockquote in Markdown, you can use the <code>&gt;</code> symbol.</p>
<pre><code class="lang-markdown"><span class="hljs-quote">&gt; Text that is a quote</span>
</code></pre>
<h3 id="heading-code">Code</h3>
<p>Markdown files support two types of code samples: <strong>inline</strong> and <strong>code block</strong>.</p>
<ol>
<li>To add a code block in a Markdown file, use the following syntax: <code>``` your code ``` </code>.</li>
<li>To add inline code to the Markdown file, use the following syntax: <code>`your code` </code>.</li>
</ol>
<pre><code class="lang-markdown"><span class="hljs-section">## Code Block</span>
</code></pre>
<p>// ES5 syntax
var multiply = function(x, y) {
  return x * y;
};</p>
<p>// ES6 arrow function
var multiply = (x, y) =&gt; { return x * y; };</p>
<p>// Or even simpler
var multiply = (x, y) =&gt; x * y;</p>
<pre><code>
## Inline code 

JavaScript provides three different value comparison operations: strict equality using <span class="hljs-string">`===`</span>, loose equality using <span class="hljs-string">`==`</span>, and the <span class="hljs-string">`Object.is()`</span> method.
</code></pre><p>To support code highlighting in a code block, you can add an optional language identifier after your triple backticks (like JavaScript in the example below):</p>
<pre><code class="lang-markdown"><span class="hljs-section">## Code Block</span>

<span class="hljs-code">```javascript

// ES5 syntax
var multiply = function(x, y) {
  return x * y;
};

// ES6 arrow function
var multiply = (x, y) =&gt; { return x * y; };

// Or even simpler
var multiply = (x, y) =&gt; x * y;</span>
</code></pre>
<pre><code>
### Links

A markdown file divides links into two categories: **inline** and **relative**.

#### Inline links

To create an inline link <span class="hljs-keyword">in</span> a Markdown file, wrap the link text <span class="hljs-keyword">in</span> brackets <span class="hljs-string">`[ ]`</span> followed immediately by the URL <span class="hljs-keyword">in</span> parentheses <span class="hljs-string">`( )`</span>.

<span class="hljs-string">``</span><span class="hljs-string">`markdown
This site was built using [GitHub Pages](https://pages.github.com/).</span>
</code></pre><h4 id="heading-relative-links">Relative links</h4>
<p>Relative links are defined similarly to inline links but they change in the <code>[]</code> section: the <code>[]</code> section contains the path of the file in your repository. </p>
<p>You use relative links to link two files: for example, to link the CONTRIBUTING file into the README file.</p>
<pre><code class="lang-markdown">[<span class="hljs-string">Contribution guidelines</span>](<span class="hljs-link">docs/CONTRIBUTING.md</span>)
</code></pre>
<p>Relative links starting with <code>/</code> will be relative to the repository root. You can use all relative link operands, such as <code>./</code> and <code>../.</code>:</p>
<pre><code class="lang-markdown">[<span class="hljs-string">Contribution guidelines</span>](<span class="hljs-link">../docs/CONTRIBUTING.md</span>)
</code></pre>
<h3 id="heading-images">Images</h3>
<p>To add an image in a markdown file, add a <code>!</code> and then wrap the alt text in <code>[]</code>. Then, wrap the image link with parentheses <code>()</code>.</p>
<p>It looks like this:</p>
<pre><code class="lang-markdown">![<span class="hljs-string">Markdown</span>](<span class="hljs-link">https://img.shields.io/badge/markdown-%23000000.svg?style=for-the-badge&amp;logo=markdown&amp;logoColor=white</span>)
</code></pre>
<h3 id="heading-lists">Lists</h3>
<p>A list helps record essential information in order, which can be vital for the reader and makes it easy for people to understand and find information. </p>
<p>Markdown files support three types of lists:</p>
<ol>
<li>Ordered list</li>
<li>Unordered list</li>
<li>Task list</li>
</ol>
<h4 id="heading-ordered-list">Ordered list</h4>
<p>The first type is an ordered list. To create an ordered list, start with numbers followed by periods.</p>
<pre><code class="lang-markdown"><span class="hljs-bullet">1.</span> one
<span class="hljs-bullet">2.</span> two
<span class="hljs-bullet">3.</span> three
<span class="hljs-bullet">4.</span> four
</code></pre>
<h4 id="heading-unordered-list">Unordered list</h4>
<p>The second type is an unordered list. To create an unordered list, use <code>-</code>, <code>+</code> or <code>*</code> (depending on your preference - they'll all render as an unordered list):</p>
<pre><code class="lang-markdown"><span class="hljs-bullet">*</span> First item
<span class="hljs-bullet">*</span> Second item
<span class="hljs-bullet">*</span> Third item
<span class="hljs-bullet">*</span> Fourth item


<span class="hljs-bullet">-</span> First item
<span class="hljs-bullet">-</span> Second item
<span class="hljs-bullet">-</span> Third item
<span class="hljs-bullet">-</span> Fourth item

<span class="hljs-bullet">+</span> First item
<span class="hljs-bullet">+</span> Second item
<span class="hljs-bullet">+</span> Third item
<span class="hljs-bullet">+</span> Fourth item
</code></pre>
<h4 id="heading-task-list">Task list</h4>
<p>The third type is a task list. To create a task list, list items start with a hyphen, followed by a space, followed by square brackets <code>[]</code>. You can use an <code>x</code> in the bracket <code>[x]</code> to mark a task as complete.</p>
<pre><code class="lang-markdown"><span class="hljs-bullet">-</span> [x] #739
<span class="hljs-bullet">-</span> [ ] https://github.com/octo-org/octo-repo/issues/740
<span class="hljs-bullet">-</span> [ ] Add delight to the experience when all tasks are complete :tada:
</code></pre>
<h3 id="heading-mentioning-people-and-teams">Mentioning people and teams</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/04/username-in-github.png" alt="Mention users and teams in the markdown" width="600" height="400" loading="lazy">
<em>Mentioning users and teams in markdown</em></p>
<p>To mention a person or team in a GitHub markdown file, type <code>@</code>  and write the username or team username.</p>
<pre><code class="lang-markdown"><span class="hljs-section">## person or individual username</span>

@officialrajdeepsingh, check out the following change.

<span class="hljs-section">## Team or company</span>
The section blog theme is maintained by @frontendweb
</code></pre>
<h3 id="heading-referencing-issues-and-pull-requests">Referencing issues and pull requests</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/04/tag-and-refrence-with-markdown.png" alt="Issues and pull request" width="600" height="400" loading="lazy">
<em>Issues and pull requests</em></p>
<p>To mention issues and pull requests in a GitHub markdown file, type a <code>#</code>, then type the issue or pull request number or title. Then press either tab or enter to complete the highlighted result.</p>
<pre><code class="lang-markdown">Remove the default <span class="hljs-emphasis">_target blank in logo #93</span>
</code></pre>
<h3 id="heading-using-emoji">Using emoji</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/04/emoji-in-markdown.png" alt="Adding emoji in markdown." width="600" height="400" loading="lazy">
<em>Adding emoji in markdown.</em></p>
<p>To add an emoji to your writing, type the emoji's code between two colons. If you just type <code>:</code>, a list of suggested emojis on GitHub will appear. </p>
<p>Once you find the emoji you're looking for, press Tab or Enter to choose the highlighted result.</p>
<pre><code class="lang-markdown">Don't forget to leave a star on our repository! :star:
</code></pre>
<h3 id="heading-footnotes">Footnotes</h3>
<p>To add a footnote reference, add a caret and an identifier inside brackets <code>([^1])</code> using the following syntax:</p>
<pre><code class="lang-markdown">Here's a simple footnote,[^1] and here's a longer one.[^bignote]

[<span class="hljs-symbol">^1</span>]: <span class="hljs-link">This is the first footnote.</span>

[<span class="hljs-symbol">^bignote</span>]: <span class="hljs-link">Here's one with multiple paragraphs and code.</span>
</code></pre>
<h3 id="heading-alerts">Alerts</h3>
<p>Alerts are a Markdown extension based on the block quote syntax that you can use to emphasize important information.</p>
<p>GitHub Flavored Markdown supports five types of alerts: <code>[!NOTE]</code>, <code>[!TIP]</code>, <code>[!IMPORTANT]</code>, <code>[!WARNING]</code>, and <code>[!CAUTION]</code>. You can use any of them:</p>
<pre><code class="lang-markdown"><span class="hljs-quote">&gt; [!NOTE]</span>
<span class="hljs-quote">&gt; Useful information that users should know, even when skimming content.</span>

<span class="hljs-quote">&gt; [!TIP]</span>
<span class="hljs-quote">&gt; Helpful advice for doing things better or more easily.</span>

<span class="hljs-quote">&gt; [!IMPORTANT]</span>
<span class="hljs-quote">&gt; Key information users need to know to achieve their goal.</span>

<span class="hljs-quote">&gt; [!WARNING]</span>
<span class="hljs-quote">&gt; Urgent info that needs immediate user attention to avoid problems.</span>

<span class="hljs-quote">&gt; [!CAUTION]</span>
<span class="hljs-quote">&gt; Advises about risks or negative outcomes of certain actions.</span>
</code></pre>
<p>The Alert syntax looks like this in the browser:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/04/alert.png" alt="Adding alert example in markdown." width="600" height="400" loading="lazy">
<em>Adding alert example in markdown.</em></p>
<h2 id="heading-advanced-formatting-syntax">Advanced Formatting Syntax</h2>
<p>This advanced formatting syntax section contains advanced use cases, such as adding diagrams and tables, collapsed sections, mathematical expressions, and more.</p>
<ol>
<li><a class="post-section-overview" href="#heading-creating-a-table">Creating a table</a></li>
<li><a class="post-section-overview" href="#heading-creating-a-collapsed-section">Creating a collapsed section</a></li>
<li><a class="post-section-overview" href="#heading-creating-diagrams">Creating diagrams</a></li>
<li><a class="post-section-overview" href="#heading-mathematical-expressions">Mathematical expressions</a></li>
</ol>
<h3 id="heading-creating-a-table">Creating a table</h3>
<p>To create tables in Markdown, you can use pipes <code>|</code> and hyphens <code>-</code>. Hyphens are used to create a column's header, while pipes are used to separate columns.</p>
<pre><code class="lang-markdown">| First Header  | Second Header |
| ------------- | ------------- |
| Content Cell  | Content Cell  |
| Content Cell  | Content Cell  |
</code></pre>
<p>The table looks like this in the browser:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/04/table-in-markdown.png" alt="Table example in markdown." width="600" height="400" loading="lazy">
<em>Table example in markdown.</em></p>
<h3 id="heading-creating-a-collapsed-section">Creating a collapsed section</h3>
<p>To create a collapsed section in a markdown file, you can use the <code>&lt;details&gt;</code> tag. This tag is an HTML element that you can easily use to extend the functionality of GitHub Flavored Markdown. Here's how it works:</p>
<pre><code class="lang-markdown"><span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">details</span>&gt;</span></span>
  <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">summary</span>&gt;</span></span>Click to here. <span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">summary</span>&gt;</span></span>

   ### You can add a message here

   You can add text within a collapsed section. 

   You can add an image or a code block, too.

   <span class="hljs-code">```ruby
     puts "Hello World"</span>
</code></pre>
<p></p>
<pre><code>
The collapsed syntax looks like <span class="hljs-built_in">this</span> <span class="hljs-keyword">in</span> the browser:

![Collapsed example <span class="hljs-keyword">in</span> markdown.](https:<span class="hljs-comment">//www.freecodecamp.org/news/content/images/2024/04/Collapsed-in-markdown.png)</span>
_Collapsed example <span class="hljs-keyword">in</span> markdown._

### Creating diagrams

To add diagrams to a Markdown file, use triple backticks and wrap them inside quadruple backticks. Then, tell which identifier (Mermaid, GeoJSON, TopJSON, ASCII STL) you used <span class="hljs-keyword">for</span> the diagram.

GitHub supports diagrams using four syntaxes: mermaid, geoJSON, topoJSON, and ASCII STL.

<span class="hljs-number">1.</span> [Mermaid](#heading-mermaid) 
<span class="hljs-number">2.</span> [GeoJSON and TopoJSON](#heading-geojson-and-topojson)
<span class="hljs-number">3.</span> [ASCII STL](#heading-ascii-stl)

#### Mermaid 

[Mermaid](https:<span class="hljs-comment">//mermaid.js.org) is a Markdown-inspired tool that renders text into diagrams. You can create flow charts, sequence diagrams, pie charts, and more with Mermaid.</span>

The GitHub-flavored Markdown has extended the functionality <span class="hljs-keyword">of</span> using Mermaid <span class="hljs-keyword">with</span> Markdown.

You can create flow charts, sequence diagrams, pie charts, and so on inside Markdown. GitHub handles the rest <span class="hljs-keyword">of</span> that. So how <span class="hljs-keyword">do</span> you render diagrams on the screen?

<span class="hljs-string">``</span><span class="hljs-string">`markdown
`</span><span class="hljs-string">``</span>mermaid
graph LR;
   A --  and --&gt; B -- to --&gt; C
</code></pre><pre><code>
The mermaid syntax looks like <span class="hljs-built_in">this</span> <span class="hljs-keyword">in</span> the browser.

![Mermaid example <span class="hljs-keyword">in</span> markdown.](https:<span class="hljs-comment">//www.freecodecamp.org/news/content/images/2024/04/mermaid-degram.png)</span>
_Mermaid example <span class="hljs-keyword">in</span> markdown._

#### GeoJSON and TopoJSON

You can use [GeoJSON](https:<span class="hljs-comment">//geojson.org/) or [TopoJSON](https://github.com/topojson/topojson) to add an interactive map to a GitHub repository in a README file or GitHub Wiki.</span>

You can use code block syntax to add an interactive map.

<span class="hljs-number">1.</span> GeoJSON can create a map by specifying coordinates. To add an interactive map, use the following syntax:  <span class="hljs-string">` `</span><span class="hljs-string">``</span>geojson  your code <span class="hljs-string">``</span><span class="hljs-string">` `</span>
<span class="hljs-number">2.</span> TopoJSON can create a map by specifying coordinates and shapes. To add an interactive map, use the following syntax: <span class="hljs-string">` `</span><span class="hljs-string">``</span>topojson  your code <span class="hljs-string">``</span><span class="hljs-string">` `</span>

**Example using GeoJSON:**

<span class="hljs-string">``</span><span class="hljs-string">`markdown
`</span><span class="hljs-string">``</span>geojson
{
  <span class="hljs-string">"type"</span>: <span class="hljs-string">"FeatureCollection"</span>,
  <span class="hljs-string">"features"</span>: [
    {
      <span class="hljs-string">"type"</span>: <span class="hljs-string">"Feature"</span>,
      <span class="hljs-string">"id"</span>: <span class="hljs-number">1</span>,
      <span class="hljs-string">"properties"</span>: {
        <span class="hljs-string">"ID"</span>: <span class="hljs-number">0</span>
      },
      <span class="hljs-string">"geometry"</span>: {
        <span class="hljs-string">"type"</span>: <span class="hljs-string">"Polygon"</span>,
        <span class="hljs-string">"coordinates"</span>: [
          [
              [<span class="hljs-number">-90</span>,<span class="hljs-number">35</span>],
              [<span class="hljs-number">-90</span>,<span class="hljs-number">30</span>],
              [<span class="hljs-number">-85</span>,<span class="hljs-number">30</span>],
              [<span class="hljs-number">-85</span>,<span class="hljs-number">35</span>],
              [<span class="hljs-number">-90</span>,<span class="hljs-number">35</span>]
          ]
        ]
      }
    }
  ]
}
</code></pre><pre><code>
**Example <span class="hljs-keyword">of</span> TopJSON:**

<span class="hljs-string">``</span><span class="hljs-string">`markdown
`</span><span class="hljs-string">``</span>topojson
{
  <span class="hljs-string">"type"</span>: <span class="hljs-string">"Topology"</span>,
  <span class="hljs-string">"transform"</span>: {
    <span class="hljs-string">"scale"</span>: [<span class="hljs-number">0.0005000500050005</span>, <span class="hljs-number">0.00010001000100010001</span>],
    <span class="hljs-string">"translate"</span>: [<span class="hljs-number">100</span>, <span class="hljs-number">0</span>]
  },
  <span class="hljs-string">"objects"</span>: {
    <span class="hljs-string">"example"</span>: {
      <span class="hljs-string">"type"</span>: <span class="hljs-string">"GeometryCollection"</span>,
      <span class="hljs-string">"geometries"</span>: [
        {
          <span class="hljs-string">"type"</span>: <span class="hljs-string">"Point"</span>,
          <span class="hljs-string">"properties"</span>: {<span class="hljs-string">"prop0"</span>: <span class="hljs-string">"value0"</span>},
          <span class="hljs-string">"coordinates"</span>: [<span class="hljs-number">4000</span>, <span class="hljs-number">5000</span>]
        },
        {
          <span class="hljs-string">"type"</span>: <span class="hljs-string">"LineString"</span>,
          <span class="hljs-string">"properties"</span>: {<span class="hljs-string">"prop0"</span>: <span class="hljs-string">"value0"</span>, <span class="hljs-string">"prop1"</span>: <span class="hljs-number">0</span>},
          <span class="hljs-string">"arcs"</span>: [<span class="hljs-number">0</span>]
        },
        {
          <span class="hljs-string">"type"</span>: <span class="hljs-string">"Polygon"</span>,
          <span class="hljs-string">"properties"</span>: {<span class="hljs-string">"prop0"</span>: <span class="hljs-string">"value0"</span>,
            <span class="hljs-string">"prop1"</span>: {<span class="hljs-string">"this"</span>: <span class="hljs-string">"that"</span>}
          },
          <span class="hljs-string">"arcs"</span>: [[<span class="hljs-number">1</span>]]
        }
      ]
    }
  },
  <span class="hljs-string">"arcs"</span>: [[[<span class="hljs-number">4000</span>, <span class="hljs-number">0</span>], [<span class="hljs-number">1999</span>, <span class="hljs-number">9999</span>], [<span class="hljs-number">2000</span>, <span class="hljs-number">-9999</span>], [<span class="hljs-number">2000</span>, <span class="hljs-number">9999</span>]],[[<span class="hljs-number">0</span>, <span class="hljs-number">0</span>], [<span class="hljs-number">0</span>, <span class="hljs-number">9999</span>], [<span class="hljs-number">2000</span>, <span class="hljs-number">0</span>], [<span class="hljs-number">0</span>, <span class="hljs-number">-9999</span>], [<span class="hljs-number">-2000</span>, <span class="hljs-number">0</span>]]]
}
</code></pre><pre><code>
### ASCII STL

GitHub Flavored Markdown supports STL syntax. STL syntax allows you to add interactive <span class="hljs-number">3</span>D models <span class="hljs-keyword">in</span> markdown. You can use the following syntax: <span class="hljs-string">` `</span><span class="hljs-string">``</span>stl your code.<span class="hljs-string">``</span><span class="hljs-string">` `</span>

<span class="hljs-string">``</span><span class="hljs-string">`markdown
`</span><span class="hljs-string">``</span>stl
solid cube_corner
  facet normal <span class="hljs-number">0.0</span> <span class="hljs-number">-1.0</span> <span class="hljs-number">0.0</span>
    outer loop
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span>
      vertex <span class="hljs-number">1.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span>
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">1.0</span>
    endloop
  endfacet
  facet normal <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">-1.0</span>
    outer loop
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span>
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">1.0</span> <span class="hljs-number">0.0</span>
      vertex <span class="hljs-number">1.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span>
    endloop
  endfacet
  facet normal <span class="hljs-number">-1.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span>
    outer loop
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span>
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">1.0</span>
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">1.0</span> <span class="hljs-number">0.0</span>
    endloop
  endfacet
  facet normal <span class="hljs-number">0.577</span> <span class="hljs-number">0.577</span> <span class="hljs-number">0.577</span>
    outer loop
      vertex <span class="hljs-number">1.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span>
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">1.0</span> <span class="hljs-number">0.0</span>
      vertex <span class="hljs-number">0.0</span> <span class="hljs-number">0.0</span> <span class="hljs-number">1.0</span>
    endloop
  endfacet
endsolid
</code></pre><pre><code>
The STL syntax looks like <span class="hljs-built_in">this</span> <span class="hljs-keyword">in</span> the browser:

![STL example <span class="hljs-keyword">in</span> markdown.](https:<span class="hljs-comment">//www.freecodecamp.org/news/content/images/2024/04/stl-example.png)</span>
_STL example <span class="hljs-keyword">in</span> markdown._

### Mathematical expressions

You can add mathematical expressions, such <span class="hljs-keyword">as</span> equations, terms, formulas, and so on, to a GitHub markdown file. GitHub uses [LaTeX](https:<span class="hljs-comment">//www.cmor-faculty.rice.edu/~heinken/latex/symbols.pdf) formatted within Markdown. There are two ways to add these expressions:</span>

<span class="hljs-number">1.</span> Writing inline math expressions
<span class="hljs-number">2.</span> Writing math expressions <span class="hljs-keyword">as</span> code blocks

#### Writing inline math expressions

An inline math expression starts <span class="hljs-keyword">with</span> <span class="hljs-string">`$`</span> and ends <span class="hljs-keyword">with</span> <span class="hljs-string">`$`</span>. 

<span class="hljs-string">``</span><span class="hljs-string">`markdown
Inline math expression example: $\sqrt{3x-1}+(1+x)^2$</span>
</code></pre><p>The inline math syntax looks like this in the browser:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/04/math-exp.png" alt="Inline math expression example" width="600" height="400" loading="lazy">
<em>Inline math expression example</em></p>
<h4 id="heading-writing-math-expressions-as-code-blocks">Writing math expressions as code blocks</h4>
<p>To add a math expression's code block to the Markdown file, use the <code>```math</code> code block and wrap it inside <code>``` </code> backticks to display the expression as a block.</p>
<p>To add a math expression's code block to the Markdown file, use the ````math code block and wrap it inside triple backticks to display the expression as a block.</p>
<pre><code class="lang-markdown"><span class="hljs-code">```math
\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)</span>
</code></pre>
<p>```</p>
<p>The math code block syntax looks like this in the browser:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/04/math-expre-.png" alt="Image" width="600" height="400" loading="lazy">
<em>Code block math expression example</em></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Markdown syntax works well in GitHub and all other central Git servers, such as GitLab, Gitea, and so on.</p>
<p>Different tools name their markdown differently. For example, GitHub extends markdown functionality in its own way and builds GitHub Flavored Markdown. GitLab also extends markdown functionality and builds and creates a GitLab-flavored markdown.</p>
<p>Markdown syntax is mostly the same in every Git service. But alerts, diagrams, and a few other features only work in GitHub Flavored Markdown.</p>
<h2 id="heading-reference">Reference</h2>
<ul>
<li>GitHub docs – <a target="_blank" href="https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github">quickstart for writing on GitHub</a></li>
<li>GitHub docs  – <a target="_blank" href="https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax">basic syntax</a></li>
<li>Tutorial about <a target="_blank" href="https://www.vanderveer.io/github-markdown-render-stl/">rendering STL in Markdown on GitHub</a></li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Add a Table of Contents to Your Article on Ghost ]]>
                </title>
                <description>
                    <![CDATA[ A table of contents (or TOC) is a list of chapters or section titles in an article. You'll usually find it at the beginning of an article, right after the introduction. When you write a long blog post or an article with independent sections, consider... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-add-a-table-of-contents-to-your-article-on-ghost/</link>
                <guid isPermaLink="false">66ba11df64fe3b6039f992a8</guid>
                
                    <category>
                        <![CDATA[ Ghost ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Ayu Adiati ]]>
                </dc:creator>
                <pubDate>Fri, 01 Dec 2023 19:47:28 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/11/How-to-Add-a-Table-of-Contents-to-Your-Article-on-Ghost-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>A table of contents (or TOC) is a list of chapters or section titles in an article. You'll usually find it at the beginning of an article, right after the introduction.</p>
<p>When you write a long blog post or an article with independent sections, consider adding a table of contents. It can help your readers understand your article's content and know what's coming. Providing hyperlinks to each title in the table of contents helps readers navigate between the sections they want to check out.</p>
<p>Having a table of contents in your articles also benefits you as a writer. First, you can easily see the flow of your article. Another benefit is that it can increase your blog's traffic. If your readers have a great experience reading your article, they will likely bookmark and return to it.</p>
<p>Some publications use <a target="_blank" href="https://ghost.org/">Ghost</a> to write and publish articles on their website, and freeCodeCamp is one of them. In this article, I will walk you through how to add a clickable table of contents to your article on Ghost.</p>
<h2 id="heading-table-of-contents">Table of Contents</h2>
<ul>
    <li><a href="#understanding-headings">Understanding Headings</a></li>
    <li><a href="#how-to-add-a-table-of-contents">How to Add a Table of Contents</a>
        <ul>
            <li><a href="#step-1-create-a-list-of-headings">Step #1 - Create a List of Headings</a>
                <ul>
                    <li><a href="#create-a-list-of-one-level-headings">Create a List of One-Level Headings</a></li>
                    <li><a href="#create-a-list-with-subheadings">Create a List with Subheadings</a></li>
                </ul>
            </li>
            <li><a href="#step-2-inspect-a-heading-and-find-the-id">Step #2 - Inspect a Heading and Find the <code>id</code></a></li>
            <li><a href="#step-3-add-the-link">Step #3 - Add the Link</a>
                <ul>
                    <li><a href="#add-a-link-to-a-heading">Add a Link to a Heading</a></li>
                    <li><a href="#add-a-link-to-a-heading-in-html">Add a Link to a Heading in HTML</a></li>
                    <li><a href="#why-does-the-link-not-work">Why Does the Link Not Work?</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li><a href="#final-words">Final Words</a></li>
</ul>

<h2 id="heading-understanding-headings">Understanding Headings</h2>
<p>Before we jump into how to add a table of contents, let's take a moment to understand "headings" because I will use this term going forward.</p>
<blockquote>
<p>Headings are titles of sections and subsections that are displayed on a website.</p>
</blockquote>
<p>There are six levels of headings based on the importance of the section.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/h1-h6.png" alt="Image" width="600" height="400" loading="lazy">
<em>Levels of headings – H1 - H6</em></p>
<p>Following best practices, a page on a website should only have one <code>heading level 1</code> (known as <code>h1</code>). It is the main title of the page. In your case, it'll be the main title of your article. (In this article, it's "How to Add a Table of Contents to Your Article on Ghost".)</p>
<p>So, writing an article on Ghost (or any other publication platform) leaves you with <code>h2</code> to <code>h6</code> for your section and subsection titles. And you can use as many of them as you need depending on the hierarchy and organization of your content.</p>
<h2 id="heading-how-to-add-a-table-of-contents">How to Add a Table of Contents</h2>
<p>You can create your table of contents whenever you want – before you write, during the process, or after you finish writing your article. </p>
<p>But you can only add the link to each chapter or section title after writing your article. This is because you'll need to know exactly how the text of the headings will appear in order to link to them properly, as you'll see below.</p>
<p>In this guide, I'll show you how to build a ToC in HTML, which allows you to add subheadings in addition to main headings/section titles. </p>
<h3 id="heading-step-1-create-a-list-of-headings">Step #1 - Create a List of Headings</h3>
<p>You can create a table of contents with a <a class="post-section-overview" href="#heading-create-a-list-of-one-level-headings-2">list of one-level headings</a> (<code>h2</code>) or <a class="post-section-overview" href="#heading-create-a-list-with-subheadings-2">include the subheadings</a> (<code>h3</code> to <code>h6</code>) if you want to.</p>
<p>You can also choose how you want to format your list:</p>
<ul>
<li><strong>Unordered List</strong>:  A list with bullet points.</li>
<li><strong>Ordered List</strong>: A list with numbers.</li>
</ul>
<h4 id="heading-create-a-list-of-one-level-headings">Create a List of One-Level Headings</h4>
<p>Follow these steps to create a one-level headings list:</p>
<ol>
<li>Insert a new line.</li>
<li>Type a dash (<code>-</code>) or an asterisk (<code>*</code>) for the unordered list. Or, type a number and add a period — for example, <code>1.</code> — for the ordered list.</li>
<li>Hit the spacebar.</li>
<li>Add the title.</li>
<li>Click enter to add a new item in the list.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/add-list-ghost.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Add an unordered and an ordered list.</em></p>
<p><strong>Note</strong>: You can skip the next section and go directly to "<a class="post-section-overview" href="#heading-step-2-inspect-a-heading-and-find-the-id-1">Step #2 - Inspect a Heading and Find the <code>id</code></a>" if you want.</p>
<h4 id="heading-create-a-list-with-subheadings">Create a List with Subheadings</h4>
<p>If you wish to create a list with subheadings (nested list), you must use HTML to format it manually, as Ghost doesn't have nested list options built into the editor.</p>
<p>First, you need to add the HTML card:</p>
<ol>
<li>Start on a new line.</li>
<li>When your cursor is on the new line, you will see a plus (<code>+</code>) icon button in the circle on the left. Click this button.</li>
<li>Click the "HTML" option.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/ghost-primary-option-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>A plus sign and an "HTML" option on Ghost.</em></p>
<p>Afterward, you will see the HTML card, as shown in the image below.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/ghost----html-card.png" alt="Image" width="600" height="400" loading="lazy">
<em>HTML card on Ghost.</em></p>
<p>Now, let's start adding the list of your headings and subheadings.</p>
<p>Add an HTML unordered list (<code>&lt;ul&gt;&lt;/ul&gt;</code>) or an ordered list (<code>&lt;ol&gt;&lt;/ol&gt;</code>) element.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>

or

<span class="hljs-tag">&lt;<span class="hljs-name">ol</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ol</span>&gt;</span>
</code></pre>
<p>To add the list of your headings, add a space between the <code>ul</code> or <code>ol</code> tags. Put the cursor between the tags and hit enter twice.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>Then, add list elements (<code>&lt;li&gt;&lt;/li&gt;</code>) in the empty line between the opening and closing <code>ul</code> or <code>ol</code> tags. Add these list elements based on the number of your section titles.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>Afterward, put each of the titles between the <code>li</code> tags.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 2 - Part 1<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 2 - Part 2<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 2 - Part 3<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>To add subheadings, repeat all the steps. But now, you should put the <code>ul</code> or <code>ol</code> element inside the <code>li</code> element(s) that hold the section title. Here's how to do it:</p>
<ol>
<li>Place your cursor between the end of the section title and the <code>&lt;/li&gt;</code> tag, then click enter.</li>
<li>Click enter again to add a space and add an <code>ul</code> or <code>ol</code> element for the subheadings.</li>
<li>Add an <code>ul</code> or <code>ol</code> element in the new line, put the cursor between the tags, and hit enter twice to add a space.</li>
<li>Add <code>li</code> element(s) in the new line between the <code>ul</code> or <code>ol</code> tags.</li>
<li>Put the subsection title between the <code>li</code> tags.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/walkthrough-nested-list.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Creating a nested list in HTML.</em></p>
<p>Below is an example of a table of contents with subheadings in HTML.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 2 - Part 1
        <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 3<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 3<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 2 - Part 2
        <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 3
                <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
                    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 4<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
                <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
            <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Heading 2 - Part 3<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>And the result will look like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/ghost----HTML-result.png" alt="Image" width="600" height="400" loading="lazy">
<em>A list of section and subsection titles.</em></p>
<h3 id="heading-step-2-inspect-a-heading-and-find-the-id">Step #2 - Inspect a Heading and Find the <code>id</code></h3>
<p>After creating the list, it's time to add the links to the titles in your table of contents.</p>
<p>But first, you need to find the <code>id</code> attribute of your heading using preview mode by inspecting the title with your browser's (Chrome or Firefox) developer tools.</p>
<p>So, let's open your preview mode:</p>
<ol>
<li>Click the gear icon on the top right of your Ghost editor.</li>
<li>Click the "Preview" link beside the "Post URL" input.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/ghost-preview-link.png" alt="Image" width="600" height="400" loading="lazy">
<em>The "Preview" link is in the "Post settings" on Ghost.</em></p>
<p>Now that you are in the preview mode, right-click your mouse. You will see some options. Click the "Inspect" option to open the developer tools.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/developer-tools-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>"Inspect" option on Chrome.</em></p>
<p>In the developer tools, let's click the button with a box and arrow icon on the top left to select a heading element on the page and inspect it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/select-element-tool.png" alt="Image" width="600" height="400" loading="lazy">
<em>"Select an element in the page to inspect it" button in the developer tools on Chrome.</em></p>
<p>Hover over a title and click on it. It will highlight the element you want to inspect in the developer tools. Inside the heading element (<code>h2</code> to <code>h6</code>), you will see an <code>id</code> (shown with a red line in the image below).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/inspect-elelemet-devtool.png" alt="Image" width="600" height="400" loading="lazy">
<em>Inspect a heading with developer tools on Chrome.</em></p>
<p>Double-click on the value inside the quote marks of the <code>id</code> and copy it. You will use it to add the link to the title in the table of contents.</p>
<p><strong>Note</strong>: </p>
<ul>
<li>If you <a class="post-section-overview" href="#heading-create-a-list-of-one-level-headings-2">created a list of one-level headings</a>, head to the "<a class="post-section-overview" href="#heading-add-a-link-to-a-heading-1">Add a Link to a Heading</a>" section.</li>
<li>If you <a class="post-section-overview" href="#heading-create-a-list-with-subheadings-2">made a list with subheadings</a>, go to the "<a class="post-section-overview" href="#heading-add-a-link-to-a-heading-in-html-1">Add a Link to a Heading in HTML</a>" section.</li>
</ul>
<h3 id="heading-step-3-add-the-link">Step #3 - Add the Link</h3>
<h4 id="heading-add-a-link-to-a-heading">Add a Link to a Heading</h4>
<p>To add the link, return to your table of contents in the Ghost editor. Then, follow these steps:</p>
<ol>
<li>Highlight the title that you want to add the link to.</li>
<li>Click the chain icon.</li>
<li>Type a hashtag (<code>#</code>) in the input field and paste your copied <code>id</code> value.</li>
</ol>
<p>So, it will be like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/ghost-highlight-title.png" alt="Image" width="600" height="400" loading="lazy">
<em>Highlighting a list and a chain icon on Ghost.</em></p>
<pre><code class="lang-markdown"><span class="hljs-section">#understanding-headings</span>
</code></pre>
<p>After you refresh the preview page, check if the link works. It should take you to the target section when you click the title's link. If not, read the "<a class="post-section-overview" href="#heading-why-does-the-link-not-work-1">Why Does the Link Not Work?</a>" section.</p>
<h4 id="heading-add-a-link-to-a-heading-in-html">Add a Link to a Heading in HTML</h4>
<p>First, let's return to your Ghost editor and go to the <code>li</code> element that holds the title in the table of contents.</p>
<p>Then, wrap the title inside an anchor element (<code>&lt;a&gt;&lt;/a&gt;</code>) and add <code>href=""</code> attribute in the opening tag.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">""</span>&gt;</span>Understanding Headings<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>The anchor element creates a hyperlink, and the <code>href</code> attribute is the placeholder for the link's destination.</p>
<p>Now, you will add the link's destination. Type a hashtag (<code>#</code>) and paste the <code>id</code> value you've copied inside the double quotes of the <code>href</code>.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#understanding-headings"</span>&gt;</span>Understanding Headings<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>Repeat all the steps to add a link for each title.</p>
<p>Below is an example of section and subsection titles with links in HTML:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#understanding-headings"</span>&gt;</span>Understanding Headings<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#adding-a-table-of-content"</span>&gt;</span>Adding a Table of Content<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#step-1-create-a-list-of-titles"</span>&gt;</span>Step #1 - Create a List of Titles<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>After refreshing the preview page, you can now check if the link works by clicking it. If it doesn't work, read the next section.</p>
<h4 id="heading-why-does-the-link-not-work">Why Does the Link Not Work?</h4>
<p>If you click a link in your table of contents and it goes nowhere or redirects you to a "404 Page not found", return to the preview page. Refresh it, and try to click the link again.</p>
<p>If it still does the same, you need to check the link in the Ghost editor.</p>
<p>Sometimes, it can be a typo where you change the title but still need to update the link. Or there is a missing hashtag (<code>#</code>) in the link.</p>
<h2 id="heading-final-words"><strong>Final Words</strong></h2>
<p>If you liked and found this article helpful, please share it with others. You can find other works on my <a target="_blank" href="https://adiati.com/">blog</a>. Let's connect on <a target="_blank" href="https://twitter.com/@AdiatiAyu">X (formerly Twitter)</a> or <a target="_blank" href="https://www.linkedin.com/in/adiatiayu/">LinkedIn</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Technical Writing for Developers – Why You Should Have a Blog and How to Start One ]]>
                </title>
                <description>
                    <![CDATA[ Having a blog is a useful asset for developers. It can be a lead magnet, as well as a place where you can sell digital products you create.  It can also simply be the place where you build a loyal audience within your niche, share your knowledge and ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/technical-writing-for-developers/</link>
                <guid isPermaLink="false">66c3755a86ad38fd9838388f</guid>
                
                    <category>
                        <![CDATA[ Blogging ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Ankur Tyagi ]]>
                </dc:creator>
                <pubDate>Mon, 23 Oct 2023 17:22:04 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/10/Orange---Yellow-Gradient-Make-Design-Blog-Banner--42-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Having a blog is a useful asset for developers. It can be a lead magnet, as well as a place where you can sell digital products you create. </p>
<p>It can also simply be the place where you build a loyal audience within your niche, share your knowledge and ideas, and help other devs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697186764980/c8f8f03f-0f7d-4fa7-8fc6-9dd45b0a124b.png" alt="Blog- Ankur Tyagi" width="1920" height="1080" loading="lazy">
<em>The benefits of having a personal blog as a developer</em></p>
<p>In this article, I'll share why I blog, as well as why I think it's a great idea for you, too.</p>
<h2 id="heading-why-i-write-technical-articles">Why I Write Technical Articles</h2>
<p>Here's something I've learned over the past five years of blogging: don't start by telling the audience why you wrote a blog post. Instead, tell them why they should read it, and then do your best to prove yourself right.</p>
<p>I recently revamped my blog and began writing consistently, to the point where I now write a new tutorial once a week. And I’ve already seen a lot of good results.</p>
<p>I've also started paying more attention to my analytics. This helps me give people what they want, answer their questions, and keep them coming back for more. I'll talk a bit more about analytics later.</p>
<p>I found my mission in teaching developers about topics like how to start your own blog, how tools such as React, Angular, JavaScript, and TypeScript work, and so on. I release a new article every week on my blog <a target="_blank" href="https://theankurtyagi.com/blog/"><strong>theankurtyagi.com</strong></a><strong>,</strong> explaining all I know about a specific topic. </p>
<p>If you are into React or developing on the Web, you won't want to miss it. And I just started creating a new React writing boot camp where I share my 14 years of tech experience and how I've built multiple applications.</p>
<p>Now I'll share my thoughts on writing technical tutorials, and why I think you should have your own blog as a developer.</p>
<h2 id="heading-table-of-contents">Table of Contents:</h2>
<ul>
<li><a class="post-section-overview" href="#heading-understand-your-tech-abilities-and-soft-skills">Understand Your Tech Abilities and Soft Skills</a></li>
<li><a class="post-section-overview" href="#heading-doubts-you-may-have-before-starting-a-developer-blog">Doubts You May Have Before Starting a Developer Blog</a></li>
<li><a class="post-section-overview" href="#heading-how-to-start-writing-your-own-blog">How to Start Writing Your Own Blog</a></li>
<li><a class="post-section-overview" href="#heading-why-writing-is-helpful-for-developers">Why Writing is Helpful for Developers</a></li>
<li><a class="post-section-overview" href="#heading-how-writing-can-help-advance-your-software-engineering-career">How Writing Can Help Advance Your Software Engineering Career</a></li>
<li><a class="post-section-overview" href="#heading-how-to-write-an-effective-technical-blog">How to Write an Effective Technical Blog</a></li>
</ul>
<h2 id="heading-understand-your-tech-abilities-and-soft-skills">Understand Your Tech Abilities and Soft Skills</h2>
<p>If you’re working in tech, you can take advantage of the skills you already have and share your knowledge with the community. Do any of the following statements apply to you?</p>
<ul>
<li>You excelled at much of your past work, and you know that companies (or people) will pay for that work.</li>
<li>People ask you for advice based on your past work.</li>
<li>Somebody said, “You should write something or record a video to document your experiences because you offered me so much value when you mentored me or helped me in a peer programming session or saved me from that production bug while reviewing my PR pull request”</li>
</ul>
<p>The value you bring to your audience comes from a combination of your perspective and your interpersonal skills.</p>
<p>Think back to what other people have asked you to do, or what you've volunteered to do in your career—because you're good at those activities. </p>
<p>But don’t stop with technical skills. While core technical skills are useful, they are not all you'll need for long-term success as you move up in your tech career. That’s because the more responsibility you take for your client’s growth and results, the more the more helpful you can be to other people’s work. And this often starts with communication skills – so don't neglect them.</p>
<h2 id="heading-doubts-you-may-have-before-starting-a-developer-blog">Doubts You May Have Before Starting a Developer Blog</h2>
<h3 id="heading-i-am-not-an-expert-writer">I am not an expert writer</h3>
<p>Every developer has a unique angle and a perspective on something worth sharing.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1607633576714977280"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>You may believe you don't know as much as senior developer X, but junior developer Y may have much less experience and would benefit from reading about your career journey and learnings. </p>
<p>Also, the best time to teach something is right after you've learned it because you remember how it feels when you didn't know it – so you can more effectively teach a beginner about it.</p>
<p>In this case, you can write for a student who has recently learned something new. Every day, I learn something new.</p>
<p>Approximately 80% of what I end up writing these days is something I discovered while researching a topic on the internet.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1698668505292300461"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h3 id="heading-im-just-a-good-enough-writer">I’m just a good enough writer</h3>
<p>I'm not a professional writer, but that doesn't bother me. Remember that you will never become a better writer unless you write every day for years. If you practice enough, and actively try to improve your writing, you'll eventually improve your writing skills.</p>
<p>To create something good, just start writing. To create something exceptional, write, revise, and revise again. The key to producing excellent writing lies in dedicating significant time and effort to the rewriting process.</p>
<h3 id="heading-all-developers-fear-criticism">All Developers Fear Criticism</h3>
<p>Some things are fragile and break with a sudden shock, like a water glass.</p>
<p>Some things are not fragile and remain intact even when faced with a sudden impact or shock, like a teddy bear.</p>
<p>And some things, like our immune system, are anti-fragile, meaning they improve when subjected to a shock. Your immune system does not develop properly if you are not exposed to a series of smaller shocks as a child.</p>
<p>Similarly, to become a better developer in tech as a result of criticism, you must develop an anti-fragile attitude towards criticism. That is, with every bit of critique you receive, you can learn to use it to become better.</p>
<p>If you do not learn this, you will remain at your current level. You can do this at the meta-level as well: become anti-fragile in dealing with criticism in general, and become a better human being as a result of it.</p>
<p>Empowering self-hacking starts with cultivating a heightened awareness of your own emotional state. Recognizing anger, for instance, weakens its hold on you. When angry, you may engage in actions you otherwise wouldn't. (Anger can sometimes serve as a signal that our boundaries have been crossed.)</p>
<p>Certain online platforms, like Reddit and Hacker News, are known for their unfiltered feedback. Embrace this as an opportunity for growth. Remember, you only truly evolve when faced with challenges. </p>
<p>You also have the choice not to engage if you prefer. Concerned about potential negative comments on a controversial post? You can always disable comments altogether.</p>
<p>Also, remember that not everyone gives valuable criticism in tech.</p>
<ul>
<li>Some people just don’t connect with your work.</li>
<li>Some people won’t like what you’re writing.</li>
<li>Some people aren't yet ready to critique your work.</li>
<li>Some people are just mean.</li>
<li>Some people like your style of writing. Others won't.</li>
</ul>
<p>And sometimes when people stare at screens all day, like those of us in tech, they can unwittingly be more harsh and direct. It's not a great way to communicate, but it might not be malicious.</p>
<p>If you can get past the sting of the critiques and use them to improve your writing, you'll have a lot to offer the developer community through your tutorials.</p>
<h2 id="heading-how-to-start-writing-your-own-blog">How to Start Writing Your Own Blog</h2>
<p>Rich people might seem to have it all  – money, power, influence, and whatever else they crave. But there’s one thing they want that money can’t buy: good ideas.</p>
<p>Writing is how you share your ideas, and if you do it well, you can often gain access to a coffee or dinner with almost any tech CEO in software engineering.</p>
<p>I've been writing for around 5 years, so here's my take:</p>
<ul>
<li><strong>Just start writing</strong>: If you've been wanting to start your own blog, stop thinking about it, and just do it. Open a blog on WordPress and start writing. That's my first advice to anyone. Don't waste time on the technicalities, just write. You can move your blog to another platform later.</li>
<li><strong>Be consistent</strong>: This is hard. I fail to follow this rule most of the time. But a successful blog is a blog that's been going on for ages, and where the creator posts regularly. I've posted 100+ posts since 2020 on my blog and 100+ for various startup developer tools – and that's why it has been working well for me.</li>
<li><strong>Don't try to be perfect</strong>: You are not writing a book. A blog is to share knowledge quickly or to share what's on your mind. No hesitation, once you have something, publish it. People might call you out for saying something wrong, fine – that's free publicity and you'll have learned something new.</li>
<li><strong>Mix short posts with long posts</strong>: It's difficult to keep writing high-quality content and long blog posts all the time. So write small ones from time to time to fill in between more in-depth guides. This is what makes people keep going to your blog. It's like a Twitter feed, it needs to have something every time people check it.</li>
<li><strong>Write on current/popular subjects</strong>: What did you learn recently that could be helpful to other people? What did you have trouble learning because there was no good resource on the subject? You could be that resource. What is Google Trends saying? Are there any trendy topics in your field? What are people talking about recently?</li>
</ul>
<p>I generally start with an idea instead of a title. Then I write down what I know about it. Next, I put those thoughts in an order that I can use to tell a story. Finally, I research to confirm that what I think I know is indeed true and correct. That is where it becomes interesting.</p>
<p>Sometimes I'm completely wrong, and the story becomes about that. The truth is often more interesting than the assumptions. </p>
<p>Sometimes I discover things about what I knew that are more interesting than the original idea. Sometimes what I thought I knew turns out to be true and I just back it up with facts and the idea alone was interesting enough to begin with. </p>
<p>And lastly, sometimes the idea is actually not worth sharing, and I shelve it until the time feels right or I find a new approach to the subject.</p>
<h2 id="heading-why-writing-is-helpful-for-developers">Why Writing is Helpful for Developers</h2>
<h3 id="heading-you-learn-much-faster">You learn much faster</h3>
<p>Writing is a great skill for a developer for many reasons, including:</p>
<ul>
<li>You learn by doing.</li>
<li>You learn faster.</li>
<li>You build a lot of connections which can generate future leads and opportunities.</li>
<li>You can work on different tech stacks</li>
<li>It’s a great form of self-expression.</li>
<li>It encourages creativity.</li>
<li>It helps to connect with your imagination.</li>
</ul>
<p>I enjoy writing because it forces me to read more. And as a result, I learn a lot and stay sharp while working and collaborating with others. </p>
<p>One of the best ways for me to learn is by doing. I pick a topic about which I believe I know something and drill down through things I didn't know or hadn't even considered.</p>
<p>My best tip for anyone willing to start a blog: Read, read, read, write, write, write, read, read, write, write, write, write, read, read, read, read, write, write, write, edit, edit, edit, edit, edit, edit, edit, read, read, read, write again.</p>
<p>They say you never fully understand a topic until you can explain it.</p>
<p><strong>And blogging is often low-hanging fruit.</strong></p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1596975332791578624"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Every developer should make a habit of blogging about their learnings in software engineering. Writing helps you discover if you understand a topic as well as you think you do. </p>
<p>Teaching and writing are great ways to learn, and they're good habits to start because you already have firsthand experience. Just commit to writing 12 blog posts a year, see what happens, and plan your next steps based on that. </p>
<blockquote>
<p><em>As David Perell says, “Read to collect the dots, write to connect them.”</em></p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697184338558/b8bd0707-6b86-4b75-9f04-736dc1ad853d.png" alt="Why Writing is a Low Hanging Fruit" width="1918" height="1048" loading="lazy">
<em>How writing is a low hanging fruit for experienced developers</em></p>
<h3 id="heading-writing-involves-critical-thinking">Writing involves critical thinking</h3>
<p>So many things never fully connected for me until I wrote about them. And so many other things I thought I understood well in my head turned out to be half-baked when I start writing about them.</p>
<p>My blog "<a target="_blank" href="https://theankurtyagi.com/a-software-developers-guide-to-writing/">A Software Developer's Guide to Writing</a>" is a complete guide on how to start a blog.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/GergelyOrosz/status/1604959976870629385"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Writing is a form of self-expression that can be therapeutic, even if you never intend to publish your work.</p>
<h2 id="heading-how-writing-can-help-advance-your-software-engineering-career">How Writing Can Help Advance Your Software Engineering Career</h2>
<p>I’ve elevated my career in software engineering thanks to my writing.</p>
<p>It was 2017, and I'd begun writing about small things I was learning while building a few web applications for fun as a side project. I'd also gotten the opportunity to contribute to internal developer docs in my previous job as a tech lead.</p>
<p>That old blog has since died — I stopped writing on it a long time ago, and the content, which is now completely obsolete, has vanished. But I doubt I could have imagined starting my current small writing business without it.</p>
<p>Through my current blog, I have a lot of connections and opportunities for freelance gigs and part-time roles. It's also helped me in my consulting career.</p>
<h3 id="heading-writing-tutorials-can-help-you-learn-a-new-tech-stack">Writing tutorials can help you learn a new tech stack</h3>
<p>Writing helps in learning a new technology stack this is something I've done a few times with my writing. If I am interested in one type of technology stack and then become interested in another, I will write several posts about it.</p>
<p>For example, last summer I wrote about multiple developer tools in this article: <a target="_blank" href="https://theankurtyagi.com/how-i-use-medusa-to-create-a-powerful-next-js-e-commerce-store/"><strong>How to Create a Powerful Next.js E-commerce Store</strong></a><strong>.</strong></p>
<p><img src="https://theankurtyagi.com/wp-content/uploads/2023/04/Clean-Work-Place-Blog-Banner-34-2048x1152-1-1024x576.png" alt="medusa-nextJs-e-commerce-store" width="600" height="400" loading="lazy">
<em>How to build an e-commerce store with Medusa a blog by Ankur Tyagi</em></p>
<h3 id="heading-other-benefits-of-technical-writing">Other benefits of technical writing</h3>
<p>Writing about technical topics is a great way for you to show what you know and what you're able to do. It can also help build your authority in tech by establishing your reputation and building your personal brand.</p>
<p>It can also improve your opportunities for networking and career advancement, as more people read your tutorials. And the more you write, the better your communication and collaboration skills will become.</p>
<p>Another benefit I discovered from sharing my writing publicly is that it caught the attention of many company founders, who then offered me writing jobs. They found me through my blog posts online, even though I hadn’t applied to work with them. Take a look at the below inbound cold email I received. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697188149814/1087eecc-fc19-410a-9b76-f6f7a79a4e4d.png" alt="cold email " width="2060" height="814" loading="lazy">
<em>An inbound cold email from a tech founder</em></p>
<p>So having a blog is an effective way to demonstrate that you are passionate, know your stuff, and can communicate effectively in writing. The simplest way to begin is to write posts about topics that have interested you or problems you've solved.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1698932253613580739"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h2 id="heading-how-to-write-an-effective-technical-blog">How to Write an Effective Technical Blog</h2>
<h3 id="heading-keep-your-topics-consistent">Keep your topics consistent</h3>
<p>I only follow blogs that have a clear focus or theme.</p>
<p>In my case, I talk about Web Development, React, Developer Tools, and so on, and I subscribe and consistently read other developers' blogs that are focused on a particular area of tech.</p>
<p>Don't just rant about anything that comes to mind. Use a professional tone and cultivate your own unique writing style.</p>
<h3 id="heading-setup-a-routine">Setup a routine</h3>
<p>If you aim to write a blog post weekly, make sure you follow through. Writing two posts a week is even more ideal. I write every day because I know that if I skip one day, I will skip another, and so on until I stop posting altogether.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1701843420342268367"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h3 id="heading-write-blog-posts-in-advance">Write blog posts in advance</h3>
<p>Don't post the same day you write. Instead, schedule your content for a week later and review it the day before.</p>
<p>This is a big deal. By waiting a week before you post and looking at it again, the quality of your content will improve. A lot!</p>
<p>Write it a week or more in advance. Even if you take a few days off or are sick, you are less likely to miss a blog post day. It's also a good idea to make your posts public ahead of time. <a target="_blank" href="https://theankurtyagi.com/">WordPress</a> makes it very simple, and it is also possible to schedule a specific time and day to write on a consistent basis.</p>
<p>If you write down 5 ideas per day, that will amount to 1,825 ideas in a year (assuming it's not a leap year). Among these ideas, you're likely to find a few outstanding topics for your blog posts. Try to maintain a roster of potential blog post ideas. When inspiration strikes, you'll find the perfect topic for that day in your backlog.</p>
<p>In your articles, take things a step further and make your content 10x better by telling your audience the "why" of things. This is much harder to do.</p>
<p>If your writing is poor quality or inconsistent, you'll end up with the wrong audience. Write with intention and purpose. Write to become better. Instead of writing more, start editing more.</p>
<h3 id="heading-build-your-writing-not-your-website">Build your writing, not your website</h3>
<p>You can use big blogging platforms to increase your visibility. Think long-term. In the next ten years, every blog post you write could be worth thousands of views.</p>
<p>When a developer comes to me and says, "Hi Ankur, I'm a developer and want to start a blog. What should I do?", here are the two options I discuss with them:</p>
<h4 id="heading-option-1-start-publishing-your-articles-on-an-established-blogging-platform">Option 1: start publishing your articles on an established blogging platform</h4>
<p>Option one is starting with a platform like <a target="_blank" href="https://theankurtyagi.com/top-5-best-blogging-platforms-for-software-engineers-in-2023/">Medium, Hashnode, DevTo, HackerNoon, or Dzone</a>.</p>
<p>You can start writing articles and publishing them on one of thoes platforms, and work on building your credibility as a writer. Set a goal for yourself – for example, try to get to 100K+ post views/year.</p>
<p>Then you can start learning about and implementing SEO strategies, especially if you start writing on your own blog.</p>
<p><strong>One potential challenge</strong> with this approach is that you may not technically own the content you publish on other's sites (check their rules). The company could even go out of business or shut down their service, and you may lose all your articles. </p>
<p>So here's my advice on how to handle this: if you stick with writing for a year, then it's time to start moving slowly onto your own website and posting your articles there.</p>
<p><strong>Another challenge</strong> is that you don't necessarily want to spend all your time building a personal blog and just have one post titled "How I made this beautiful blog with X framework" to show for it. Instead, you could've had dozens of blog posts on rented spaces (like Medium, Hashnode, DevTo). Build your brand before building a house.</p>
<p>You can treat Medium, Hashnode, Twitter, and other platforms as traffic-acquisition channels rather than a home for your long-form content. Because no moderator can delete your blog posts from your own website.</p>
<h4 id="heading-option-2-create-your-own-blog-site-from-scratch">Option 2: create your own blog site from scratch</h4>
<p>Option two involves starting with your own blog website from the beginning. You can either build your own or use something like Ghost/WordPress/ any CMS of your choice. Then you can syndicate your articles to existing blogging platforms until enough people learn about your own blog. After that, you can stop syndicating content if you want.</p>
<p>But I'd advise you to write 2-3 blog posts every month for a year before you even think about building your own fancy, tech-savvy website and publishing there.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1662847806841683973"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Treat every blog post as a mini side project and see how it feels. If, after a year, you find you're still enjoying writing, then continue doing it. If not, blogging may not be for you.</p>
<p><strong>One challenge</strong> with this second approach (building your own blog and starting there) is that many developers with full-time jobs find it hard to spare time and energy, even though they want to write. So I think it's better to start small – and maybe share your posts on an existing platform at first – to avoid this common pitfall. </p>
<p>Again, it's better to focus on building your personal brand and your reputation as a writer first, before investing time in creating a dedicated website.</p>
<p>While it can be harder to reach a large audience on your own personal blog, you have to start somewhere. </p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1677250760575270912"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p><strong>Another challenge</strong> with this approach is the tendency to over-engineer a simple static blog website, and spending too much time perfecting that site instead of writing. </p>
<p>When I was starting a blog, I actually got caught up in it all – but one of my friends guided me through the process and showed me WordPress, which was a lifesaver. In the case of your blog, people are often interested more in your storytelling than your actual blog website.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1522462918062788611"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>In my opinion, in the end, being the <a target="_blank" href="https://www.hanselman.com/blog/your-words-are-wasted">owner of your own blog space &gt;&gt;&gt; always using rental space</a>. Just make sure you prioritize your tasks and focus along the way.</p>
<p>If you're curious about my blog post writing style, I invite you to check out this post: <a target="_blank" href="https://theankurtyagi.com/the-ultimate-guide-for-developers-to-write-blog-posts-for-success-in-2023/">How I Write My Blog Posts</a>.</p>
<h3 id="heading-building-an-audience">Building an audience</h3>
<p>This is related to the previous point. If you're just getting started, you might get 1 or 10 or 100 visitors per week if you share your posts (unless you go viral on a sharing platform like Reddit, Hacker News, or Twitter).</p>
<p>Search engines like <em>Google</em> can often provide consistent traffic (SEO), but this is a very long game to play. It's easy to get discouraged if you write but no one reads your blog posts.</p>
<p>The initial years of writing can be tough and boring. Despite very good writing, your blog will likely grow slowly. Big views may seem to be a distant dream. The effects of writing kick off only after a certain amount of time when your blog may start to build up momentum. Patience and persistence are key.</p>
<p>So, actively look for an audience. Write on your blog and republish your blog posts to Medium, Hashnode, DevTo, and Hackernoon (remember to add a canonical tag back to your site so that you don't annoy Google with duplicate content). Having an audience will boost your enthusiasm and determination.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1673935217021669377?s=20"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h3 id="heading-promote-your-content">Promote your content</h3>
<p>When you hit the “publish,” button you’ve only done 50% of the work.</p>
<ul>
<li>You had an idea</li>
<li>You’ve done writing along with researching the topic</li>
<li>You’ve looked for typos and fixed grammar errors</li>
<li>You made sure to have no plagiarism</li>
</ul>
<p>Now it's time to promote your writing.</p>
<p>Post on Twitter/LinkedIn if you have a following, otherwise try to share on HN, Reddit, and so on.</p>
<p>Here's what Arnold Schwarzenegger said about why marketing your product is equally as important as making the product:</p>
<blockquote>
<p>Whenever I finished filming a movie, I felt my job was only half done. Every film had to be nurtured in the marketplace. You can have the greatest movie in the world, but if you don’t get it out there, if people don’t know about it, you have nothing. It’s the same with poetry, with painting, with writing, with inventions.  </p>
<p>It always blew my mind that some of the greatest artists, from Michelangelo to van Gogh, never sold much because they didn’t know how. They had to rely on some schmuck (some agent or manager or gallery owner) to do it for them. Picasso would go into a restaurant and do a drawing or paint a plate for a meal. Now you go to these restaurants in Madrid, and the Picassos are hanging on the walls, worth millions of dollars.  </p>
<p>That wasn’t going to happen to my movies.  </p>
<p>Same with bodybuilding, same with politics—no matter what I did in life, I was aware that you had to sell it.</p>
</blockquote>
<p>As Ted Turner said, “Early to bed, early to rise, work like hell, and advertise.”</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/tferriss/status/1709560867568709719"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>In a similar way, whenever I finished writing a blog, I felt my job was half done.</p>
<p>I wanted every article to be distributed across multiple platforms. You can write the best blog in the world, but if you don't get it out there and people aren't aware of it, you're out of luck. It's the same with a book, a course, a community, a product, a startup, and your writing.</p>
<blockquote>
<p><strong>Marketing boils down to caring</strong>: Don’t confuse the word “marketing” with advertising, announcing, spamming, or giving away branded crap. Really, “marketing” just means being considerate. Marketing means making it easy for people to notice you, relate to you, remember you, and tell their friends about you.  –Derek Sivers | <a target="_blank" href="https://twitter.com/sivers">@sivers</a></p>
</blockquote>
<h3 id="heading-your-blog-is-your-media-platform">Your blog is your media platform</h3>
<p>Don’t just think of it as a blog. See it as a startup: the goal of a blog is to disseminate information that drives sales and future opportunities.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/peer_rich/status/1712777165098398127"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Sales may make you uncomfortable, but think of it as selling ideas or your own expertise.</p>
<h3 id="heading-set-up-an-email-collecting-form-or-a-newsletter">Set up an email collecting form or a newsletter</h3>
<p>A big Social media following is a business card, but a big email list gives you longevity.</p>
<p>In reality, you don't have full ownership of your Twitter, LinkedIn, or Medium following. Your true ownership lies in your email list. I recommend <a target="_blank" href="https://theankurtyagi.substack.com">SubStack</a>; it's user-friendly, free, and exceptional.</p>
<h3 id="heading-a-blog-should-be-professional-not-personal">A blog should be professional, not personal</h3>
<p>Your audience isn't primarily interested in you. They visit your blog in anticipation of problem-solving (if they arrived from a Google search) or seeking valuable information to aid them in specific tasks. Write with their needs at the forefront to be truly helpful.</p>
<h3 id="heading-dont-use-ads-at-the-beginning">Don't use ads at the beginning</h3>
<p>Don’t put ads on your blog. I don't think it's worth it unless you have 10,000+ visitors a day.</p>
<h3 id="heading-watch-your-analytics-and-use-them-to-guide-you">Watch your analytics and use them to guide you</h3>
<p>Peter Drucker said, "You can't manage what you can't measure."</p>
<p>If building an audience was a piece of cake, everyone would do it. Here are my tips on how to use your analytics to improve your blog and the content you create:</p>
<p><strong>Find Out What People Like to Read:</strong> Look at the pages that get the most visits. What are they about? This is what your audience loves the most. Write more about those topics.</p>
<p><strong>Understand How People Find You on Internet:</strong> Examine the search terms that lead people to your site. This tells you what they're interested in and what questions they have. Answer those questions in your writing.</p>
<p><strong>Know What Keeps Them Reading:</strong> See which pages keep people on your site the longest. This is the content that really grabs them. Use that style or topic as a model for your other posts.</p>
<p><strong>Learn From the Bounces:</strong> On the flip side, see which pages have the highest bounce rate. These are the ones that might need a bit of tweaking. </p>
<p><em>Ask yourself, "Why are people leaving?</em>" and then make changes accordingly.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/image-97.png" alt="My blog's analytics" width="600" height="400" loading="lazy">
<em>My blog's analytics</em></p>
<h3 id="heading-read-books-blog-posts-twitter-reddit-and-hackernews">Read books, Blog posts, Twitter, Reddit, and HackerNews</h3>
<p>Keep yourself up to date on the topics you want to write about. I write about software engineering, and Twitter is a never-ending source of topic ideas. The same is true for books and blogs. freeCodeCamp is also fantastic for this.</p>
<p>Every day, I spend 1-2 hours scrolling Twitter for inspiration. It's not a waste of time. It's the catalyst my brain requires to see things I would never have seen in offline life. Luck is not as random as you think. Before a lottery ticket can win a jackpot, someone has to buy it.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697189511612/83db750b-f21a-4bf8-aeba-921db9c50ce5.jpeg" alt="Twitter- an idea generator " width="944" height="1600" loading="lazy">
<em>My daily screen time</em></p>
<h3 id="heading-wake-up-early-if-possible">Wake up early if possible</h3>
<p>Set your alarm clock, get up, and begin writing. I used to get up at 7 a.m. because I haven't had to commute since 2020 (I only work remotely), so I could take it easy. I now get up at 5 a.m. and have a new post scheduled for the following week by 7 a.m. </p>
<p>When you finish a task, such as writing a new blog post, by 7 a.m., you feel energised to tackle the rest of the day. If you can, get up even earlier (I can't, or I'll spend the rest of the day in a zombie state).</p>
<h3 id="heading-start-using-dnd-dont-disturb-mode">Start using DND (Don't Disturb) Mode</h3>
<p>It's all too easy to become distracted while researching for a blog post on the internet. I've turned off all notifications on my phone. Writing, like programming, is best done without interruptions so that the task at hand can occupy your entire consciousness.</p>
<p>My advice is to set aside dedicated time on your calendar, disable notifications, set your phone aside, and commit to your keyboard or typewriter, pen and paper, or whatever.</p>
<p>These are the only notifications which are "ON" on my mobile:</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/TheAnkurTyagi/status/1636793854140481562"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>### </p>
<h2 id="heading-thanks-for-reading"><strong>Thanks for Reading!</strong></h2>
<p>That's it for this tutorial. I hope you learned something new today.</p>
<p>If you did, please share so that it reaches others as well.</p>
<p>You can connect with me on <a target="_blank" href="https://twitter.com/TheAnkurTyagi">Twitter</a>.</p>
<h3 id="heading-want-to-read-more-interesting-blog-posts"><strong>Want to read more interesting blog posts?</strong></h3>
<p>You can read more tutorials like this one <a target="_blank" href="https://theankurtyagi.com/blog/">on my personal blog here</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Introducing freeCodeCamp Press – Free Books for Developers ]]>
                </title>
                <description>
                    <![CDATA[ The freeCodeCamp community has published more than 10,000 tutorials on our publication over the years. But lately we've focused on creating even longer resources for learning math, programming, and computer science. This is why we've created freeCode... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/freecodecamp-press-books-handbooks/</link>
                <guid isPermaLink="false">66b1fa1ceea9870582e16bca</guid>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Abigail Rennemeyer ]]>
                </dc:creator>
                <pubDate>Wed, 30 Aug 2023 16:49:54 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/08/freeCodeCamp-Press.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>The freeCodeCamp community has published more than 10,000 tutorials on our publication over the years. But lately we've focused on creating even longer resources for learning math, programming, and computer science.</p>
<p>This is why we've created freeCodeCamp Press – a division of freeCodeCamp where we publish full-length books and handbooks on our online publication – all available to everyone for free.</p>
<h2 id="heading-what-is-freecodecamp-press">What is freeCodeCamp Press?</h2>
<p>The freeCodeCamp community publication publishes technical tutorials in many forms. We publish shorter, more focused guides that aim to answer a specific question. We also publish longer walkthroughs that help you build a specific project.</p>
<p>And now we're publishing more comprehensive books and handbooks that will teach you everything you need to know to get started with a certain programming language or tool.</p>
<p>We're going to publish a lot more of these 5,000+ word handbooks and full-length books of 40,000 words or longer.</p>
<p>When an author submits a substantial tutorial that we consider to be a book or handbook, the editorial team reviews and edits it as usual. This helps make sure it's as complete and polished as possible.</p>
<p>We've also started designing cover images for our books and handbooks. If the author wants to take advantage of this professional cover and the consistent look it gives their handbook or book, one of our team members (<a target="_blank" href="https://www.freecodecamp.org/news/author/estefaniacn">Estefania</a>) designs and creates it. These covers look something like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/Learn-Python-with-Code-Examples-Handbook-Cover--2-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Example handbook cover (freeCodeCamp Press)</em></p>
<p>After showing the proof to the author, we add the cover to the book or handbook and publish it. These covers help create a consistent look and feel for these substantial resources and make them easy to recognize.</p>
<h2 id="heading-i-want-to-write-a-book-or-handbook-for-freecodecamp-how-do-i-do-that">I Want to Write a Book or Handbook for freeCodeCamp. How Do I Do That?</h2>
<p>If you're already a contributor to the publication, and you'd like to write a longer-form book or handbook, that's great! Pick a topic you know a lot about and start writing.</p>
<p>You can look at some of our other books and handbooks in the next section to get an idea what these books are like, and how they're structured.</p>
<p>It's a serious endeavor to write a book or a handbook, so take your time. Do your research, test your code, and create something great.</p>
<p>If you haven't applied to become a contributor to the publication yet, but think you and your books would be a good fit, you can <a target="_blank" href="https://www.freecodecamp.org/news/developer-news-style-guide/">read our style guide here</a>. Then, if it looks like your style is similar to freeCodeCamp's, go ahead and apply.</p>
<h2 id="heading-freecodecamps-published-books-and-handbooks">freeCodeCamp's Published Books and Handbooks</h2>
<p>Here are some of the handbooks freeCodeCamp Press has published so far on our community publication. We're publishing more almost every week, so this is just a sample:</p>
<ol>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/complete-guide-to-css-transform-functions-and-properties/">CSS Transform Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/learn-golang-handbook/">The Golang Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/complete-guide-to-css-grid/">The CSS Grid Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/http-full-course/">HTTP Networking in JavaScript Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/learn-solidity-handbook/">The Solidity and Smart Contract Development Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/what-is-programming-tutorial-for-beginners/">What is Programming? A Beginner's Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/python-code-examples-sample-script-coding-tutorial-for-beginners/">Python Code Example Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-java-handbook/">The Java Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/a-practical-guide-to-start-opensource-contributions/">Open Source for Developers Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-build-an-ai-chatbot-with-redis-python-and-gpt/">The AI Chatbot Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/javascript-es-modules-and-module-bundlers/">The JavaScript Modules Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/python-code-examples-simple-python-program-example/">Python Code Examples for Beginners</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-install-arch-linux/">The Arch Linux Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-javascript-array-handbook/">The JavaScript Array Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-nginx-handbook/">The NGNIX Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-docker-handbook/">The Docker Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-become-a-full-stack-web-developer-in-2020/">Full Stack Web Developer Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-kubernetes-handbook/">The Kubernetes Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-build-your-first-saas/">How to Build Your First SaaS Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/technology-trends-in-2022-keeping-up-full-book-for-managers/">Technology Trends Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/systems-design-for-interviews/">System Design Interview Questions Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/git-internals-objects-branches-create-repo/">Visual Guide to Git Internals</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-complete-guide-to-the-ethernet-protocol/">How the Ethernet Protocol Works</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/git-diff-and-patch/">Git Diff and Patch Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-definitive-guide-to-git-merge/">The Git Merge Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-create-a-custom-react-hook-and-publish-it-to-npm/">Custom React Hooks Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/typescript-tutorial-for-react-developers/">TypeScript Handbook for React Developers</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/fastapi-quickstart/">The FastAPI Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/html-css-handbook-for-beginners/">The HTML and CSS Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-python-code-example-handbook/">Learn Python with Code Examples</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-data-science-and-ai-handbook/">The Data Science and AI Career Guide</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/agile-software-development-handbook/">The Agile Software Development Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-c-programming-handbook-for-beginners/">The C Programming Handbook for Beginners</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-write-clean-code/">The Clean Code Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/front-end-javascript-development-react-angular-vue-compared/">Front End JavaScript Development Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/design-patterns-for-distributed-systems/">Design Patterns for Distributed Systems Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/get-started-with-nodejs/">Learn Node.js – Handbook for Beginners</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/building-consuming-and-documenting-a-graphql-api/">The GraphQL API Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/build-consume-and-document-a-rest-api/">The REST API Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-create-a-static-blog-with-lume/">Lume Static Site Generator Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/an-introduction-to-software-architecture-patterns/">The Software Architecture Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-php-handbook/">The PHP Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/rest-api-design-best-practices-build-a-rest-api/">REST API Design Best Practices Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/an-introduction-to-operating-systems/">Windows vs Mac vs Linux – Operating Systems Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/command-line-for-beginners/">Command Line Handbook for Beginners</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/python-string-manipulation-handbook/">Python String Manipulation Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-deno-handbook/">The Deno Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-python-guide-for-beginners/">The Python Beginner's Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-c-beginners-handbook/">The C Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-complete-javascript-handbook-f26b2c71719c/">The JavaScript Beginner's Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-next-js-handbook/">The Next.js Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-svelte-handbook/">The Svelte Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-html-handbook/">Learn HTML for Beginners</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/coding-bootcamp-handbook/">The Coding Bootcamp Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-css-handbook-a-handy-guide-to-css-for-developers-b56695917d11/">The CSS Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-react-handbook-b71c27b0a795/">The React Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-definitive-node-js-handbook-6912378afc6e/">The Node.js Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-vue-handbook-a-thorough-introduction-to-vue-js-1e86835d8446/">The Vue Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-top-stack-overflowed-typescript-questions-explained/">Intermediate TypeScript</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/reintroducing-react-every-react-update-since-v16-demystified-60686ee292cc/">React Updates Since v16</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/everything-you-need-to-know-about-css-variables-c74d922ea855/">CSS Variables Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/python-code-examples-sample-script-coding-tutorial-for-beginners/">Learn Python Through Examples</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/javascript-array-handbook/">The JavaScript Array Methods Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/javascript-array-handbook/">The AI and Cybersecurity Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/a-beginners-guide-to-sql/">The SQL Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/databricks-sql-handbook/">Databricks Delta Lake with SQL Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-contribute-to-open-source-handbook/">How to Contribute to Open Source Projects</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/css-transition-vs-css-animation-handbook/">CSS Transitions vs Animations Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-arduino-handbook/">The Arduino Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-javascript-dom-manipulation-handbook/">The JavaScript DOM Manipulation Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-make-seo-friendly-react-apps/">How to Make React Apps SEO-Friendly</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/javascript-string-handbook/">The JavaScript String Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/creators-guide-to-innovation-book/">Variables in Figma Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/learn-coding-for-everyone-handbook/">How to Start Learning to Code</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/java-interview-prep-handbook/">The Java Interview Prep Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/software-engineer-internship-handbook/">The Software Engineering Internship Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/data-structures-the-key-to-scalable-software/">The Data Structures Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/machine-learning-handbook/">Machine Learning Fundamentals Handbook</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/the-css-flexbox-handbook/">The CSS Flexbox Handbook</a></p>
</li>
</ol>
<p>And here are some of our books:</p>
<ol>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/learn-to-code-book/">How to Learn to Code and Get a Developer Job</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/regular-expressions-for-javascript-developers/">Regular Expressions for Developers</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/understanding-redux-the-worlds-easiest-guide-to-beginning-redux-c695f45546f6/">The Redux Book for Beginners</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-use-the-astro-ui-framework/">Astro UI Framework</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/learn-python-book/">Learn Python Programming</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/gitting-things-done-book/">A Visual and Practical Guide to Git</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/creators-guide-to-innovation-book/">How to Innovate as a Developer</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/learn-java-object-oriented-programming/">Learn Java Fundamentals</a></p>
</li>
<li><p><a target="_blank" href="https://www.freecodecamp.org/news/localization-book-how-to-translate-your-website/">The Localization Book</a></p>
</li>
</ol>
<p>We're just getting started publishing free books and handbooks for the developer community. And they're all accessible for free <a target="_blank" href="https://www.freecodecamp.org/news">right on freeCodeCamp News</a>.</p>
<p>We hope you enjoy these open learning resources, and that they help you level up your coding skills.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I Got Accepted as an Author at freeCodeCamp ]]>
                </title>
                <description>
                    <![CDATA[ Life is full of surprises. Certain actions may lead to a chain of events and you find yourself in a completely different state.  One of my biggest achievements in 2021 was to get accepted as an author at freeCodeCamp. I have been writing articles on ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-got-accepted-as-an-author-at-freecodecamp/</link>
                <guid isPermaLink="false">66adea3cf928a14f7c42c353</guid>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Zaira Hira ]]>
                </dc:creator>
                <pubDate>Tue, 01 Aug 2023 21:30:58 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/07/fcc-author-application.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Life is full of surprises. Certain actions may lead to a chain of events and you find yourself in a completely different state. </p>
<p>One of my biggest achievements in 2021 was to get accepted as an author at freeCodeCamp.</p>
<p>I have been writing articles on freeCodeCamp's community publication since September 2021 and have published 31 articles. I write mostly on Linux and occasionally on Python and Git. You can check out my author profile <a target="_blank" href="https://www.freecodecamp.org/news/author/zaira/">here</a>.</p>
<p>I have always enjoyed writing. I used to casually write stories or simply journaled about how my day went. But I never made any of my writings public. </p>
<p>I had been working as an application support admin for a few years. I learned a lot of interesting things during my routine work, and I loved making notes for myself. </p>
<p>I started to share them with my colleagues too, and realized they actually found them useful. I also noticed that people usually run away from documentation. But the drawback is that you may forget things very easily if the tech is complicated and there is a lot going on. </p>
<h2 id="heading-how-i-discovered-freecodecamp">How I Discovered freeCodeCamp</h2>
<p>It was a routine day at work when I was scrolling through LinkedIn. I saw that one of my colleagues had recently completed the Responsive Design Course on freeCodeCamp and had shared his certificate there. I congratulated him. </p>
<p>At the same time, I got curious about what freeCodeCamp was. At that time, I was also looking to polish my development skills.</p>
<p>I searched for freeCodeCamp online and followed them on Twitter. I had recently started using Twitter for learning about tech. Over there I saw that people were writing articles which freeCodeCamp was regularly sharing. </p>
<p>I explored some of the author profiles and the popular topics. I had always thought that in order to write a blog online, you had to be famous and have a huge social following. I also believed that the topic should be very complex and should be written about by an expert with years and years of experience. </p>
<p>I got even more curious and approached Abbey on Twitter. I asked how I could join as an author. That was the turning point. </p>
<p>She sent me the <a target="_blank" href="https://www.freecodecamp.org/news/developer-news-style-guide/">publication guide</a>, and I read it a couple of times. Then I decided to apply. There was a Google <a target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSdvbv9jd7hlgIsHZWJGfnldLo2hLdlputw3hJ42JWpv3ctL1w/viewform">form</a> with some questions. I shared some of my sample articles that I luckily had. At that time, I was writing as a guest author for a YouTuber's blog. </p>
<p>But...some time went by. I couldn't get a response.👀 To be honest, I was anxious.</p>
<p>I was eagerly waiting for an answer. Just before I was about to give up, I decided to check my spam folder. And there it was – the email that I had been waiting for!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/image-93-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-tips-to-help-you-get-accepted">Tips to Help You Get Accepted</h2>
<p>If you are keen about writing and showing it to the world, you should definitely apply for freeCodeCamp's author program. Here are some tips to strengthen your application.</p>
<ul>
<li>Have three writing samples ready – and show your best samples. You can publish some of your sample articles on open publishing platforms like <a target="_blank" href="https://hashnode.com/">Hashnode</a> and <a target="_blank" href="https://dev.to/">Dev.to</a> to get practice writing technical tutorials before applying to freeCodeCamp.</li>
<li>Don't think that you have to be an expert in every topic or you need to be a tech influencer to apply. Just make sure you do your research and present the information clearly with the primary goal of educating your readers.</li>
<li>There is no harm in applying again with better samples if you didn't qualify the first time. Your application would still be reviewed – just email Abbey or message her on Twitter to give her a heads up.</li>
</ul>
<p>Also, keep in mind that quality is always better than quantity. Here's a few additional tips related to that.</p>
<ul>
<li><strong>Plagiarism is never acceptable</strong>. So don't think you can get away with it. 👮‍♂️ If you're not sure what constitutes plagiarism, read up on it <strong>before you apply</strong>. If you think some of your articles contain plagiarism, write some more that don't. It's better for you, and everyone.</li>
<li>Be careful with using GPT. You can use it to assist you – help you create outlines, code samples (which you should test to make sure they work/run), and so on – and not to write the whole article for you. After all, your unique writing style is what makes you stand out. It's worth the extra time, plus you'll learn a whole lot more.</li>
</ul>
<h2 id="heading-what-did-i-get-in-return-as-an-author">What Did I Get in Return as an Author?</h2>
<p>The short answer is – meaningful connections!</p>
<p>The freeCodeCamp community is huge and powerful. I got many follows on my socials being on Twitter and LinkedIn (as freeCodeCamp shares many of the articles they publish on social media). </p>
<p>In the past 12 months, my articles have reached 1,904,450 people! I wasn't expecting to reach so many people when I was starting out.</p>
<p>I have also received appreciation from some of the kind readers. Some of my articles have also been featured in <a target="_blank" href="https://www.freecodecamp.org/news/quincy-larson-5-links-worth-your-time-email-full-list/">Quincy's weekly newsletter</a>.</p>

<h2 id="heading-wrapping-up">Wrapping up</h2>
<p>If you have something you would like to share with the developer community, I would highly suggest you start writing. Whether you publish on your own blog, an open publishing site, or you apply and are accepted to freeCodeCamp's publication – I believe you'll see the benefits. You will also meet many great people along the way. 🤗 </p>
<p>BTW, I would be happy to connect with you on any of these <a target="_blank" href="https://zaira_.bio.link/">platforms</a>. 📧</p>
<p>Happy coding :D</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Improve Your Technical Writing Skills by Contributing to Open Source Projects ]]>
                </title>
                <description>
                    <![CDATA[ Have you been writing your tech blog posts on Hashnode or Dev.to, but you're itching to try something new? If so, there is something that can quench your thirst: contributing to open source.  I know, I know, you’ve probably heard “Contribute to open ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/improve-tech-writing-skills-by-contributing-to-open-source/</link>
                <guid isPermaLink="false">66b905078ce2b320a7a31593</guid>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Mon, 12 Jun 2023 18:15:16 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/06/Blog-post-cover-for-FCC---3.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Have you been writing your tech blog posts on <a target="_blank" href="https://hashnode.com/about">Hashnode</a> or <a target="_blank" href="http://dev.to/">Dev.to</a>, but you're itching to try something new? If so, there is something that can quench your thirst: contributing to open source. </p>
<p>I know, I know, you’ve probably heard “Contribute to open source!” countless times in Discord groups and tech-related social media posts. But trust me, it really can be a great way to gain experience as a technical writer. </p>
<p>For one, you get to work on projects that are often displayed publicly. This can be a great way to showcase your skills to your professional network. </p>
<p>Also, contrary to popular belief, code is not the only way you can contribute to open source projects. You can use your writing skills to help maintainers improve their projects' documentation. </p>
<p>And contributing to open source exposes you to new technical languages and software, which the Bureau of Labor Statistics describes as <a target="_blank" href="https://www.bls.gov/ooh/media-and-communication/technical-writers.htm#tab-4">one of the many important skills in tech writers</a>. </p>
<p>Still not convinced? No worries – in this guide, I will discuss how you can find open source projects that need tech writers. I'll also describe what tech writing-related contributions to these projects might look like, and suggest how to display them publicly.</p>
<h2 id="heading-how-to-identify-open-source-projects-that-need-technical-writing-contributions">How to Identify Open Source Projects That Need Technical Writing Contributions</h2>
<p>Many open source projects need help with their documentation. Picking a project to make docs-based contributions to will be based heavily on your interests, the level of writing skills you have, and the opportunities available.  </p>
<p>When it comes to finding open source projects that need contributions, I highly recommend asking your colleagues about the projects they are involved in. Working with friends + open source? It's two for the price one! :) Once you've picked your project, my next tip is to do the following:</p>
<ol>
<li>Go to the <strong>Issues</strong> tab on the project's repository. </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/picking-an-issue--part-1-.png" alt="Yellow arrow pointing to a tab labelled &quot;Issues&quot;" width="600" height="400" loading="lazy">
<em>Yellow Arrow pointing to Issues tab</em></p>
<ol start="2">
<li>Click on the <strong>Label</strong> section </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/Picking-a-issue--part-2--1.png" alt="Orange arrow pointing to the Label section" width="600" height="400" loading="lazy">
<em>Orange arrow pointing at the Label section</em></p>
<ol start="3">
<li>Type "documentation" in the textbox and voilà! </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/picking-an-issue--part-3-.png" alt="The word &quot;documentation&quot; appears in the textbox " width="600" height="400" loading="lazy">
<em>"documentation" appearing in the textbox</em></p>
<p>Now if you are looking for something more specific, here is my list of open source projects with a focus on documentation:</p>
<h3 id="heading-the-good-docs-project">The Good Docs Project</h3>
<p>If you’re looking to start gaining experience in working with documentation, I highly recommend joining <a target="_blank" href="https://thegooddocsproject.dev/">this group</a>. :) They have diverse working groups that focus on different types of writing whether it’s creating documentation templates that other developers can use in their own open source projects, improving the content on the organization's website, and doing QA (Quality Assurance) for the templates that community members have created.</p>
<h3 id="heading-codecademy">Codecademy</h3>
<p>If you’re knowledgeable about a particular programming language and want to share that knowledge with the world, then I highly recommend contributing to Codecademy's <a target="_blank" href="https://github.com/Codecademy/docs">docs</a> and <a target="_blank" href="https://github.com/Codecademy/ugc">article</a> repositories. They provide templates based on different needs such as providing a new entry for a certain chapter and updating/editing an existing entry. </p>
<h3 id="heading-astro">Astro</h3>
<p>If you’re an avid user of Astro, then you can share your tips on using this software on their <a target="_blank" href="https://github.com/withastro/docs">docs repo</a>. Their documentation team is very open to working with members with different levels of experience. </p>
<p>Now picking a project is just one step. Let's look at some different ways you can contribute to open source projects as a technical writer.</p>
<h2 id="heading-ways-to-contribute-to-open-source-as-a-technical-writer">Ways to Contribute to Open Source as a Technical Writer</h2>
<p>Congrats! You've picked your project. Now, you just have to decide how you will use your tech writing skills to contribute. </p>
<p>I know this part can be difficult but don’t fret – now we're going to discuss some different types of contributions you can make.</p>
<h3 id="heading-revise-typos-and-other-grammar-errors-on-the-readme-file">Revise typos and other grammar errors on the README file</h3>
<p>This file is crucial to the foundation of an open source project. It's where they describe the project’s purpose and the steps to contribute to it, so it should be as clearly written as possible. </p>
<p>If you're reading through the README file and you see a comma missing or an unclear sentence, raise an issue about it to maintainers and make those edits (if they approve, of course). </p>
<p>I made this contribution to EddieHub when I first joined their community. It was not only a great way to introduce myself, but it also taught me how to tailor documentation to a specific audience. Now this not the only text-based contribution, let's look at another one! :) </p>
<h3 id="heading-create-an-internal-docs-style-guide">Create an internal docs style guide</h3>
<p>This entails creating a guide that defines the standards for writing and formatting the documentation for an open source project. It helps instruct contributors on how to effectively write for open source. </p>
<p>In this document, you'll see information such as how punctuation marks should and should not be written, specific ways to format code blocks, and the tone and voice that contributors should use when writing about the product. </p>
<p>A great example of this would be <a target="_blank" href="https://developers.google.com/style/contractions">the Contractions section in Google's Developer Documentation style</a>. </p>
<p>Also, I decided to make <a target="_blank" href="https://linkfree.io/docs/docs-style-guide">a doc style guide for EddieHub's Linkfree project</a> after watching a video by Portia from <a target="_blank" href="https://www.youtube.com/live/t-Tz6QzH8YA?feature=share">Document Write's YouTube channel</a>. She talked about how open source contributors, especially those who want to pursue tech writing as a career, can benefit from having these sorts of style guides. </p>
<p>Through creating this guide, I've learned the following:</p>
<ol>
<li><strong>Writing in a new style or language:</strong> Since Linkfree's main demographic is in the U.K., the maintainers wanted the guide to be written in British English. I've never used this version of English before, so it was interesting to learn how words are spelled, capitalized, and what punctuation marks are used. </li>
<li><strong>Using new tech tools or frameworks:</strong> <a target="_blank" href="https://mdxjs.com/">MDX (Markdown X)</a> is the technical language contributors use to maintain Linkfree's documentation. Simply put, it's Markdown that allows to you to put <a target="_blank" href="https://facebook.github.io/jsx/">JSX</a> (syntax that let's you put HTML code in JavaScript). I've briefly worked with Markdown, so it was a bit easier to implement this language in creating the docs guide. </li>
</ol>
<p>Now, a style guide is only one of the many docs-based contributions you can do for an open source project. Let's look at another one! :) </p>
<h3 id="heading-add-to-a-tutorial-for-a-product">Add to a tutorial for a product</h3>
<p>If you're good at teaching or find yourself reading an open source software's tutorial that is missing key information, consider doing this as your contribution.</p>
<p>A great example of this would be <a target="_blank" href="https://support.audacityteam.org/community/contributing/tutorials">the tutorial section</a> on Audacity's website. It's a free open source audio recording and editing software.  </p>
<p>As a person who's newer to the open source community, I noticed that most beginner-level content never really provided tips or advice on how contributors can implement their open source contribution experiences when looking for jobs or during interviews. So I was scrolling through OpenSauced's repository on GitHub and noticed that this kind of content would be helpful in their free "Intro to Open Source" course. </p>
<p>I presented my idea to <a target="_blank" href="https://twitter.com/BekahHW">Bekah</a>, the company's User Experience Lead, created a pull request, and violà, <a target="_blank" href="https://github.com/open-sauced/intro/pull/5">it got merged</a>!  </p>
<p>I highly recommend making this kind of contribution because a great way to gain practice is by simplifying technical content for a global audience of all skill levels. It also develops your detail-oriented skills. </p>
<p>Now, before you go, there’s just one more thing to consider when gaining tech writing experience through contributing to open source projects.</p>
<h2 id="heading-show-your-work">Show Your Work</h2>
<p>When it comes to the importance of displaying your creations, Austin Kielon said it best: “Show your work”.  </p>
<p>I mean, we’re writers for crying out loud! It’s in our DNA to display content through words, so why not do it with our own stuff?  </p>
<p>You can write about your projects via your blog, social media posts, or record a podcast episode about it. </p>
<p>If you’re looking for something more structured, I recommend using <a target="_blank" href="https://opensauced.pizza/#features">OpenSauced</a>'s free Chrome extension. It’s a tool that allows you to keep track of the GitHub open source repositories you currently contribute to and those you plan to contribute to.</p>
<p>They also have this feature called “Highlights” where you can pick certain contributions to post to your profile and share on LinkedIn and Twitter. To learn how, check out their <a target="_blank" href="https://github.com/open-sauced/intro/blob/main/06-the-secret-sauce.md#develop-your-open-source-resume">tutorial</a>. </p>
<p>This would be a great thing to reference during your job interviews and it can be an inspiration for other open source contributors. When I showcased the docs style guide I created for Linkfree on Twitter, one of my colleagues liked it so much that she thought it'd be good to have one for her project. So per her request, <a target="_blank" href="https://github.com/AccessibleForAll/AccessibleWebDev/blob/main/docs-style-guide.md">I created one</a>! :) Never underestimate the power of displaying your work. </p>
<p>There you have it folks, your guide to gaining writing experience through contributing to open source projects. I know it can be intimidating to do – especially at first – but with these tips and a positive attitude, I know you’ll succeed.</p>
<h2 id="heading-credits">Credits</h2>
<p>Open Source Symbol from <a target="_blank" href="https://uxwing.com/opensource-icon">UXwing</a></p>
<p>Tech Writing Icon by Ylivdesign from <a target="_blank" href="https://www.dreamstime.com/technical-writing-icon-outline-style-technical-writing-icon-outline-technical-writing-vector-icon-web-design-isolated-white-image214934937">Dreamstime</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Smart Quotes – Single Quote and Double Quotation Mark for Copy + Paste ]]>
                </title>
                <description>
                    <![CDATA[ Smart quotes are commonly used punctuation marks in HTML and in writing. Knowing how to use them correctly can make a significant difference in the clarity and professionalism of your writing.  So in this article, you will get access to the commonly ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/smart-quotes-single-quote-and-double-quotation-mark-for-copy-paste/</link>
                <guid isPermaLink="false">66adf2146992d2a84c5d7942</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Kolade Chris ]]>
                </dc:creator>
                <pubDate>Wed, 10 May 2023 14:31:24 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/05/smartQuotes-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Smart quotes are commonly used punctuation marks in HTML and in writing. Knowing how to use them correctly can make a significant difference in the clarity and professionalism of your writing. </p>
<p>So in this article, you will get access to the commonly used quotation marks out there that you can copy and paste them into your articles, papers, and HTML.</p>
<p>It doesn’t end there. You will get access to the Unicode characters, HTML entities, and CSS entities of all the smart quotes. Make sure you check the end of this article so you can learn how to use the HTML and CSS entities and Unicode characters of the smart quotes.</p>
<p>Before showing you a table containing all the smart quotes, let's see how to use them in HTML and CSS first.</p>
<h2 id="heading-what-well-cover">What We'll Cover</h2>
<ul>
<li><a class="post-section-overview" href="#heading-how-to-use-smart-quotes-quotation-marks-in-html-and-css">How to Use Smart Quotes (Quotation Marks) in HTML and CSS</a></li>
<li><a class="post-section-overview" href="#heading-table-of-smart-quotes-their-unicode-characters-html-and-css-codes">Table of Smart Quotes, their Unicode Characters, HTML, and CSS Codes</a></li>
<li><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></li>
</ul>
<h2 id="heading-how-to-use-smart-quotes-quotation-marks-in-html-and-css">How to Use Smart Quotes (Quotation Marks) in HTML and CSS</h2>
<p>To use smart quotes in HTML and CSS, you need their Unicode characters. For instance, the Unicode for quotation marks is <code>U+0022</code>. So, to use it in HTML, strip out the <code>U+</code> part, prepend the other letters or numbers with <code>&amp;#x</code>, and end them with semicolon (<code>;</code>) like this:</p>
<pre><code class="lang-bash">&amp;<span class="hljs-comment">#x0022;</span>
</code></pre>
<p>That translates to this: "</p>
<p>In CSS, you need to strip out the <code>U+</code> part again and replace them with a backslash (<code>\</code>). So this is how you'd use a quotation mark in CSS:</p>
<pre><code class="lang-bash">\0022
</code></pre>
<p>But there's a caveat to using Unicode characters in CSS. To make them visible on a web page, you need to create a pseudo-element and make the Unicode character the content:</p>
<pre><code class="lang-css"><span class="hljs-selector-tag">element</span><span class="hljs-selector-pseudo">::after</span> {
  <span class="hljs-attribute">content</span>: <span class="hljs-string">'\0022'</span>;
}
</code></pre>
<h2 id="heading-table-of-smart-quotes-their-unicode-characters-html-and-css-codes">Table of Smart Quotes, their Unicode Characters, HTML, and CSS Codes</h2>
<p>The table below contains the quotation marks available for use in HTML and other writings:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Quotation Mark Name</td><td>Symbol</td><td>Unicode</td><td>HTML Code</td><td>CSS Code</td></tr>
</thead>
<tbody>
<tr>
<td>Quotation Mark</td><td><code>"</code></td><td><code>U+0022</code></td><td><code>&amp;#x0022</code></td><td><code>\0022</code></td></tr>
<tr>
<td>Single High Reversed Quotation Mark</td><td><code>‛</code></td><td><code>U+201B</code></td><td><code>&amp;#x201B</code></td><td><code>\201B</code></td></tr>
<tr>
<td>Double High Reversed Quotation Mark</td><td><code>‟</code></td><td><code>U+201F</code></td><td><code>&amp;#x201F</code></td><td><code>\201F</code></td></tr>
<tr>
<td>Full Width Quotation Mark</td><td><code>＂</code></td><td><code>U+FF02</code></td><td><code>&amp;#xFF02</code></td><td><code>\FF02</code></td></tr>
<tr>
<td>Right Single Quotation Mark</td><td><code>’</code></td><td><code>U+2019</code></td><td><code>&amp;#x2019</code></td><td><code>\2019</code></td></tr>
<tr>
<td>Left Single Quotation Mark</td><td><code>‘</code></td><td><code>U+2018</code></td><td><code>&amp;#x2018</code></td><td><code>\2018</code></td></tr>
<tr>
<td>Single Low Quotation Mark</td><td><code>‚</code></td><td><code>U+201A</code></td><td><code>&amp;#x201A</code></td><td><code>\201A</code></td></tr>
<tr>
<td>Double Prime Quotation Mark</td><td><code>〞</code></td><td><code>U+301E</code></td><td><code>&amp;#x301E</code></td><td><code>\301E</code></td></tr>
<tr>
<td>Reversed Double Prime Quotation Mark</td><td><code>〝</code></td><td><code>U+301D</code></td><td><code>&amp;#x301D</code></td><td>\301D</td></tr>
<tr>
<td>Low Double Prime Quotation Mark</td><td><code>〟</code></td><td><code>U+301F</code></td><td><code>&amp;#x301F</code></td><td><code>\301F</code></td></tr>
<tr>
<td>Right Double Quotation Mark</td><td><code>”</code></td><td><code>U+201D</code></td><td><code>&amp;#x201D</code></td><td><code>\201D</code></td></tr>
<tr>
<td>Left Double Quotation Mark</td><td><code>“</code></td><td><code>U+201C</code></td><td><code>&amp;#x201C</code></td><td><code>\201C</code></td></tr>
<tr>
<td>Double Low Quotation Mark</td><td><code>„</code></td><td><code>U+201E</code></td><td><code>&amp;#x201E</code></td><td><code>\201E</code></td></tr>
<tr>
<td>Double Low Reversed Quotation Mark</td><td><code>⹂</code></td><td><code>U+2E42</code></td><td><code>&amp;#x2E42</code></td><td><code>\2E42</code></td></tr>
<tr>
<td>Heavy Right Pointing Angle Quotation Mark Ornament</td><td><code>❯</code></td><td><code>U+276F</code></td><td><code>&amp;#x276F</code></td><td><code>\276F</code></td></tr>
<tr>
<td>Heavy Left Pointing Angle Quotation Mark Ornament</td><td><code>❮</code></td><td><code>U+276E</code></td><td><code>&amp;#x27CE</code></td><td><code>\27CE</code></td></tr>
<tr>
<td>Single Right Pointing Angle Quotation Mark</td><td><code>›</code></td><td><code>U+203A</code></td><td><code>&amp;#x203A</code></td><td><code>\203A</code></td></tr>
<tr>
<td>Single Left Pointing Angle Quotation Mark</td><td><code>‹</code></td><td><code>U+2039</code></td><td><code>&amp;#x2039</code></td><td><code>\2039</code></td></tr>
<tr>
<td>Heavy Low Single Comma Quotation Mark Ornament</td><td><code>❟</code></td><td><code>U+275F</code></td><td><code>&amp;#x275F</code></td><td><code>\275F</code></td></tr>
<tr>
<td>Heavy Single Comma Quotation Mark Ornament</td><td><code>❜</code></td><td><code>U+275C</code></td><td><code>&amp;#x275C</code></td><td><code>\275C</code></td></tr>
<tr>
<td>Heavy Single Turned Comma Quotation Mark Ornament</td><td><code>❛</code></td><td><code>U+275B</code></td><td><code>&amp;#x275B</code></td><td><code>\275B</code></td></tr>
<tr>
<td>Heavy Double Turned Comma Quotation Mark Ornament</td><td><code>❝</code></td><td><code>U+275D</code></td><td><code>&amp;#x275D</code></td><td><code>\275D</code></td></tr>
<tr>
<td>Heavy Double Comma Quotation Mark Ornament</td><td><code>❞</code></td><td><code>U+275E</code></td><td><code>&amp;#x275E</code></td><td><code>\275E</code></td></tr>
<tr>
<td>Right Pointing Double Angle Quotation Mark</td><td><code>»</code></td><td><code>U+00BB</code></td><td><code>&amp;#x00BB</code></td><td><code>\00BB</code></td></tr>
<tr>
<td>Left Pointing Double Angle Quotation Mark</td><td><code>«</code></td><td><code>U+00AB</code></td><td><code>&amp;#x00AB</code></td><td><code>\00AB</code></td></tr>
<tr>
<td>Full Width Apostrophe</td><td><code>＇</code></td><td><code>U+FF07</code></td><td><code>&amp;#xFF07</code></td><td><code>\FF07</code></td></tr>
</tbody>
</table>
</div><p>Note: if you have a Mac, you may not be able to see the "Double low revesed quotation mark" and the "Heavy low single comma quotation mark". Here's what they're supposed to look like:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Screenshot-2023-05-10-at-7.20.26-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Screenshot-2023-05-10-at-7.20.35-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>I hope this article helps you learn about the smart quotes out there, and how to use them in your HTML and CSS files, and other writings.</p>
<p>Try to share the article with your friends and family so they can have access to the smart quotes.</p>
<p>Thank you.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Boost Your Creativity – Strategies for Generating Ideas and Overcoming Writer's Block ]]>
                </title>
                <description>
                    <![CDATA[ Do you ever find yourself stuck when it comes to writing or unable to come up with creative solutions to a problem? Don’t worry—you are not alone. Everyone experiences writer's block or a lack of creativity at some point. At times, as writers, we may... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-overcome-writers-block-and-boost-creativity/</link>
                <guid isPermaLink="false">66b9f47c148b506e83d90adb</guid>
                
                    <category>
                        <![CDATA[ creativity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing tips ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Ijeoma Igboagu ]]>
                </dc:creator>
                <pubDate>Mon, 24 Apr 2023 19:46:18 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/04/Boost-Your-Creativity-Tools-for-Generating-Ideas-and-Overcoming-Writer-s-Block---Presentation--1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Do you ever find yourself stuck when it comes to writing or unable to come up with creative solutions to a problem? Don’t worry—you are not alone. Everyone experiences writer's block or a lack of creativity at some point.</p>
<p>At times, as writers, we may be really eager to write about a particular topic, only to be hindered by a mental block that makes it difficult to articulate our thoughts effectively. Despite our passion for writing, we may struggle to develop a cohesive idea that aligns with our intentions. </p>
<p>This common phenomenon is often referred to as "<strong>writer's block</strong>," and it affects not only book or article writers but also songwriters.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/writer-block.gif" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In this article, we will explore tools that can help writers generate titles aligned with their intentions and also optimize the title for search engine optimization (SEO). Additionally, we will discuss causes and strategies for overcoming writer's block.</p>
<h2 id="heading-what-is-writers-block">What is Writer's Block?</h2>
<p>Writer's block is a temporary condition that impedes a writer's ability to produce new written content or causes a significant decrease in creativity and productivity.</p>
<p>This form of mental paralysis can hinder progress on any project or piece of writing, making it difficult to focus, find inspiration, and stay motivated. The resulting frustration can often lead to procrastination and a sense of being stuck, ultimately hindering the completion of a project within the desired timeframe.</p>
<h2 id="heading-what-are-the-causes-of-writers-block">What Are the Causes of Writer's Block?</h2>
<p>Various factors can lead to writer's block, such as:</p>
<ol>
<li><strong>Stress</strong>: High levels of stress or exhaustion can make it difficult for writers to concentrate and come up with fresh ideas.</li>
<li><strong>Fear or self-doubt</strong>: Writers struggle with anxiety and self-doubt, which can make it difficult to feel motivated and productive. If you're currently experiencing this type of writer's block, you're not alone.</li>
<li><strong>Lack of inspiration</strong>: Writers may struggle to find new and creative ideas. It's common for writers to face challenges, which result in a lack of motivation and a feeling of being <em>stuck</em>.</li>
<li><strong>Environmental factors</strong>: External factors such as noise or interruptions can disrupt a writer's concentration and hinder their ability to produce quality work.</li>
<li><strong>Perfectionism</strong>: Some writers strive for perfection and may become overwhelmed by the pressure to create flawless content, resulting in difficulty getting started or completing a project.</li>
<li><strong>Physical or mental health issues</strong>: As the saying goes, health is wealth. Medical conditions such as depression, anxiety, or chronic pain can affect a writer's ability to focus and be productive.</li>
<li><strong>Network Issue</strong>:  such as low bandwidth or internet disruptions, can cause distractions, and frustrations, and ultimately lead to procrastination. As a result, by the end of the day, you may forget what you had intended to write about initially.</li>
</ol>
<h2 id="heading-how-do-you-overcome-writers-block-and-boost-your-creativity">How Do You Overcome Writer's Block and Boost Your Creativity?</h2>
<ol>
<li><strong>Free writing</strong>: keep a journal and write without any expectations or limitations. Simply jot down whatever comes to mind without worrying about grammar or structure. This technique can help generate new ideas and inspire your writing. I use this technique often and find that it helps me overcome writer's block and get started on a new piece.</li>
<li><strong>Take a break</strong>: Stepping away from your work for a short period of time can help refresh your mind and provide a new perspective. When you come back to your writing, you may have a fresh perspective or renewed energy that can help you overcome writer's block and move forward with your project.</li>
<li><strong>Change your environment</strong>: This can also help stimulate creativity. Being in a new location can provide fresh inspiration and break up the monotony of writing in the same place. Consider working in a new setting or taking your writing outdoors to help overcome writer's block. This can help you get inspired.</li>
<li><strong>Try something new</strong>: Experimenting with a new genre, style, or format can spark fresh ideas and inspiration. This strategy has been recommended to me by my sister, and I have found it helpful in breaking out writer's block.</li>
<li><strong>Practice self-care</strong>: Taking care of your physical and mental health is crucial in reducing stress and anxiety, which can hinder creativity and productivity. Prioritizing activities such as exercise, healthy eating, and mindfulness practices can help improve focus and promote a positive mindset, thereby stimulating your mind, and ultimately overcoming writer's block.</li>
<li><strong>Reading Widely</strong>: This exposes you to a variety of writing styles. It can help broaden your perspective, increase knowledge, and spark new ideas. Reading can help overcome writer's block and boost creativity. Additionally, reading widely can also improve your writing skills by observing and learning from other writers' techniques and styles.</li>
<li><strong>The Art of Brainstorming</strong>: This can unleash a flood of ideas and inspire creativity by gathering a diverse group of individuals and fostering an environment that encourages the generation of ideas without criticism or judgment.</li>
<li><strong>Get organized</strong>: When faced with writer's block, getting organized can help clear your mind and provide structure, making it easier to focus and get your creative juices flowing.</li>
</ol>
<h2 id="heading-tools-to-help-to-you-overcome-writers-block">Tools to Help to You Overcome Writer's Block</h2>
<p>There are tools available that can help you generate ideas for articles. This can help you prevent episodes of writer's block.</p>
<h3 id="heading-article-idea-generatorhttpswwwarticleideageneratorcom"><a target="_blank" href="https://www.articleideagenerator.com/">Article Idea Generator</a>:</h3>
<p>This tool uses advanced algorithms and natural language processing to suggest a variety of SEO-optimized article topics based on user input. </p>
<p>Since it's open-source, it also allows for customization to suit individual writing styles, making it a personalized solution for beating writer's block.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/chrome_RvHRof0gWA.gif" alt="Image" width="600" height="400" loading="lazy">
<em>[<strong>Article Idea Generator</strong>](https://www.articleideagenerator.com/" rel="noopener noreferrer nofollow)</em></p>
<h3 id="heading-freedomhttpsfreedomto"><a target="_blank" href="https://freedom.to/">Freedom</a></h3>
<p>This application assists you in getting rid of distractions by preventing certain websites and apps from interfering with your writing process.</p>
<p>By concentrating solely on your writing, you may be able to overcome writer's block and produce better-quality work. </p>
<p>It's worth noting that Freedom has both free and paid versions, and you need to sign up to access all of its features. Additionally, you can download the application to your device.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/freedom1-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>[<strong>Freedom</strong>](https://freedom.to/" rel="noopener noreferrer nofollow)</em></p>
<h3 id="heading-headline-generatorhttpswwwcontentrowcomtoolsheadline-generator"><a target="_blank" href="https://www.contentrow.com/tools/headline-generator">Headline Generator</a></h3>
<p>The Headline Generator generates attention-grabbing and SEO-friendly titles for social media posts and YouTube captions by analyzing keywords. It saves time, sparks new ideas, and increases engagement and readership. Content creators can use it to boost their online presence.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/chrome_c2eHVeiMxU.gif" alt="Image" width="600" height="400" loading="lazy">
<em>[<strong>Headline Generator</strong>](https://www.contentrow.com/tools/headline-generator" rel="noopener noreferrer nofollow)</em></p>
<h3 id="heading-prowritingaidhttpsprowritingaidcom"><a target="_blank" href="https://prowritingaid.com/">ProWritingAid</a></h3>
<p>This is an online writing tool that can enhance your writing with suggestions for grammar and style, as well as readability analysis. </p>
<p>By utilizing this tool, you can overcome writer's block and improve the quality of your work. However, you need to sign up to access all of the features.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/prowritingaid.png" alt="Image" width="600" height="400" loading="lazy">
<em>[<strong>ProWritingAid</strong>](https://prowritingaid.com/" rel="noopener noreferrer nofollow)</em></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Writer’s block can be a frustrating and daunting experience for anyone, regardless of skill level. It can sap your creativity and leave you feeling stuck and unmotivated.</p>
<p>Luckily, there are plenty of tools out there to help you overcome writer’s block, boost your creativity, and stay productive.</p>
<p>These are just a few examples of the numerous software tools available to help prevent writer's block. Ultimately, the best tool for you will depend on your individual needs and preferences as a writer.</p>
<p>Keep exploring different tools and trying new things until you find what works best for you.</p>
<p>With some patience and determination, you find yourself writing with renewed energy and enthusiasm.</p>
<p>Here's a helpful article you can read about the power of rest and how it helps you be more creative:</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://tealfeed.com/power-rest-why-taking-breaks-key-if53r">https://tealfeed.com/power-rest-why-taking-breaks-key-if53r</a></div>
<p>If you found this article helpful, please consider sharing it with other Technical writers who may benefit from it.</p>
<p>If you're interested in reading more of my articles, feel free to check out <a target="_blank" href="https://ijaycent.hashnode.dev/">my blog</a>. Additionally, you can connect with me on <a target="_blank" href="https://twitter.com/ijaydimples">Twitter</a> and <a target="_blank" href="https://www.linkedin.com/in/ijeoma-igboagu/">LinkedIn</a> to stay up-to-date on my latest work.</p>
<p><strong>Thanks for reading💖</strong></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Contribute to Open Source – a Guide for Technical Writers ]]>
                </title>
                <description>
                    <![CDATA[ Contributing to open source can be a daunting prospect, especially if you haven't done so before, or if you're used to working on documentation rather than code. This guide will help technical writers get started contributing to open-source projects,... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-contribute-to-open-source-for-technical-writers/</link>
                <guid isPermaLink="false">66ba6113ab373929106a5c39</guid>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ valentine Gatwiri ]]>
                </dc:creator>
                <pubDate>Mon, 24 Oct 2022 21:20:33 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/10/pexels-william-fortunato-6393024.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Contributing to open source can be a daunting prospect, especially if you haven't done so before, or if you're used to working on documentation rather than code.</p>
<p>This guide will help technical writers get started contributing to open-source projects, and outline some of the common pitfalls you might encounter when starting to contribute.</p>
<p>It'll also highlight some of the benefits of contributing to open source, and provide some additional resources for getting started with contributing to open source as a technical writer.</p>
<h2 id="heading-what-you-will-learn">What You Will Learn</h2>
<p>This post will cover how technical writers can contribute to open source, what the benefits are, and some of the potential drawbacks. We'll also go over a few resources for getting started.</p>
<h2 id="heading-what-is-open-source">What is Open Source?</h2>
<p>Open source is a collaborative way of developing and distributing software. People all over the world contribute to open-source projects by adding features, fixing bugs, answering questions, translating text, or writing tutorials.</p>
<h2 id="heading-why-contribute">Why Contribute?</h2>
<p>Contributing to open-source software is one of the best ways for technical writers and other knowledge workers to give back and make a difference.</p>
<p>You can help improve the software you use every day, or you can learn from the example of others who have contributed before you. Plus, it's a great way to meet people with common interests. And when your contributions are appreciated, you'll feel like part of the community.</p>
<p>You might be wondering – when should you contribute? Well, if you're new to open source, contribute at your own pace—don't worry about trying to do too much too soon. You'll find what you're comfortable with.</p>
<p>Contributing to open-source will not only increase your skill set but also allow you to develop contacts within the community and even create opportunities for freelance work. </p>
<p>It takes some time to build up the knowledge and skills necessary to become an active contributor (especially because documentation often requires a different skill set than programming), but it’s worth the investment.</p>
<h2 id="heading-challenges-of-contributing">Challenges of Contributing</h2>
<p>Technical writers can face several challenges when they start contributing to open-source projects. One of the most common is not being sure how best to contribute, especially if you don't know anything about the project yet.</p>
<p>You might also be unsure about where your work should go or what is expected from contributors. There are a couple of ways around this problem: you can read the project's <code>README</code> file and/or documentation to see if they have contribution guidelines. You can also get in touch with the team behind the project and ask for help.</p>
<h2 id="heading-how-to-contribute-to-open-source-projects">How to Contribute to Open-Source Projects</h2>
<p>First, you'll want to find a project on <a target="_blank" href="https://github.com/">GitHub</a> you want to contribute to. You can <a target="_blank" href="https://www.freecodecamp.org/news/github-search-tips/">read this tutorial</a> about how to search GitHub and find projects.</p>
<p>Next, you'll want to open the README and make sure you understand the given instructions.</p>
<p>Then, fork the repo by clicking on Fork located at the top right corner of your screen.</p>
<p><img src="https://lh5.googleusercontent.com/x3IyU70meecZi1qYS4_CCZW0cOZqpcTdVfKjG3_TpM1TJj_tH15FhNaKmrAL2bl8fTU7fcUAditd6AzqJbJItmCavBxQObpD2bAJCRlYds-sX-Z3iyA4b_pajXsOnAJM1_8tbPdbyOGNrXyxCfu1Qk-x3AyDrtDrFxbbxlmIaSSwaj3kYX87ELMUSQ" alt="Image" width="523" height="99" loading="lazy"></p>
<p>Clone the forked repo in your local computer using the following command:</p>
<pre><code class="lang-bash">git <span class="hljs-built_in">clone</span> &lt;LINK TO THE REPO&gt;
</code></pre>
<p>You'll see the repo link when you click on the code dropdown.</p>
<p>Once you've cloned it, open up the directory containing your new fork and start adding your contribution.</p>
<p>When done push your changes on GitHub by using the following instructions:</p>
<pre><code class="lang-bash">git status //displays <span class="hljs-built_in">which</span> modifications have been staged.
git add . // adds changes to the cloned repo
git commit -m <span class="hljs-string">"changes"</span> //performs a commit to the cloned repo
git branch -M changes //creates a new branch
git push -u origin changes //pushes the changes
</code></pre>
<p>You will be prompted by GitHub to create a pull request after pushing your changes to the cloned repo. Go ahead and create the pull request and wait for the maintainers to merge your cloned repo to the main repo.</p>
<p><strong>Make sure to incorporate upstream modifications into your local repository</strong> if you forked the project a while ago.</p>
<p>If you encounter a large file, install <code>git-lfs</code> if it is not already installed with the following command:<code>brew install git-lfs</code></p>
<p>By downloading the appropriate versions of huge files slowly, the Git LFS (Large File Storage) extension, created by Atlassian, GitHub, and a few other open-source contributors, lessens the impact of large files in your repository</p>
<p>You can also use the following <a target="_blank" href="https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage">documentation</a> to install <code>git-lfs</code>.</p>
<h3 id="heading-best-practices-when-contributing-to-open-source">Best practices when contributing to open-source</h3>
<ol>
<li>Identify an area where you could be of assistance and find the relevant project on GitHub.</li>
<li>Read the documentation for any projects or programs that may be similar to the one you're interested in. This will give you a better understanding of what is involved in contributing and what other people have contributed.</li>
<li>Search for issues labeled good first issue and read through them – these are typically fairly easy to solve.</li>
<li>Get your code ready by following the contribution guidelines of the project.</li>
<li>Write up a pull request with your solution and explain why it solves the problem at hand. Include links to related resources like tutorials if necessary.</li>
<li>Submit your pull request for review. The team will discuss whether it should be accepted into the repository and update you about their decision.</li>
<li>If they decide not to accept your pull request ask them how you might go about addressing their concerns so that they'll reconsider acceptance at a later date.</li>
<li>If they do accept your pull request then thank them!</li>
<li>Continue searching for new problems to solve and share your progress along the way!</li>
</ol>
<h2 id="heading-what-types-of-contributions-can-i-make">What Types of Contributions Can I Make?</h2>
<p>You can contribute to these projects in many ways, including submitting pull requests for bug fixes or feature additions, writing documentation about how to use the software, improving the current documentation, translating the text into another language, and fixing typos.</p>
<p>You should get involved by picking a project you're interested in and reading through its documentation before diving right in.</p>
<p>Writing for an open-source project is a great way to establish yourself as an expert in your field and position yourself for future freelance opportunities.</p>
<p>One thing that technical writers should always keep in mind when writing for open-source projects is that their audience is primarily developers. This means that they need more technical details than what you would find in other types of writing.</p>
<h2 id="heading-where-can-i-find-open-source-projects">Where Can I Find Open Source Projects?</h2>
<p>There are a variety of places you can find open-source projects. GitHub is the most popular place for open-source projects, but there are also repositories on BitBucket, Gitlab and other sites.</p>
<p>If you have an idea for an open-source project that doesn't exist yet, start by putting together your plan in a <code>README</code> file. If you're not sure how to get started with contributing to an existing project, check out its documentation or read through some pull requests before submitting one of your own.</p>
<h2 id="heading-sample-projects"><strong>Sample Projects</strong></h2>
<ul>
<li><a target="_blank" href="https://github.com/h5bp/html5-boilerplate">The HTML5 Boilerplate project</a> is a popular open-source project for web developers that provides HTML, CSS, and Javascript code for building a website or web application.</li>
<li><a target="_blank" href="https://github.com/twbs">The Bootstrap framework,</a> also an open-source project, is a collection of tools to help developers quickly create responsive websites.</li>
<li><a target="_blank" href="https://jekyllrb.com/docs/contributing/">Jekyll</a> is a static site generator written in Ruby, designed for personal blogs.</li>
<li><a target="_blank" href="https://github.com/reactjs/reactjs.org">React.js  documentation</a> - React.js documentation provides official information on how to use react.js</li>
<li><a target="_blank" href="https://github.com/github/docs">GitHub pages</a> - They contain everything you need to know about GitHub.</li>
<li><a target="_blank" href="https://github.com/galaxyproject/training-material">Galaxy project (training material)</a> -A collection of training materials about the Galaxy project which is a web-based open platform for data-intensive computational research that extends beyond the biological sciences.</li>
<li><a target="_blank" href="https://github.com/cncf">CNCF (Cloud Native Computing Foundation)</a> -CNCF is open-source cloud-native computing that hosts projects such as Kubernetes and Prometheus to make cloud-native ubiquitous and sustainable.</li>
</ul>
<p>You can also check out <a target="_blank" href="https://developers.google.com/season-of-docs">Google Season of Docs</a> which provides assistance to open-source projects in improving their documentation and allows skilled technical writers to acquire experience in open-source.</p>
<p>There are many different ways you can contribute, which means there is something out there for everyone.</p>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>Contributing to open source is a great way for technical writers and other content creators to share their knowledge with the world. </p>
<p>There are many different ways you can contribute, which means there is something out there for everyone.   </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to write a Good Technical Tutorial ]]>
                </title>
                <description>
                    <![CDATA[ By Avdhoot Fulsundar If you are a software developer, then you know how often you search Google to help you solve specific problems when you're coding. Every developer looks at online tutorials to solve the problems they have. To help you solve your ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-write-a-good-technical-tutorial/</link>
                <guid isPermaLink="false">66d45d99787a2a3b05af437a</guid>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Tutorial ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 20 Sep 2022 16:59:19 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/09/Gradient-Modern-Digital-Marketing-Facebook-Cover--14-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Avdhoot Fulsundar</p>
<p>If you are a software developer, then you know how often you search Google to help you solve specific problems when you're coding.</p>
<p>Every developer looks at online tutorials to solve the problems they have. To help you solve your problem, these tutorials should have a few things that make them more valuable for you and other readers.</p>
<p>Here are a few things you need to keep in mind while writing a good technical tutorial.</p>
<h2 id="heading-know-your-audience">Know Your Audience</h2>
<p>Understanding for which audience you are writing is important. You need to decide what to include and what to leave out in the article.</p>
<p>You don't want to make the reader leave your tutorial halfway. Sometimes you'll need to include just the necessary information instead of writing everything about it.</p>
<p>Look at this article on <a target="_blank" href="https://www.freecodecamp.org/news/html-background-color-change-bg-color-tutorial/">How to change background color in HTML</a>, readers want to know what are the methods to change the background color in HTML.</p>
<p>The author has directly included different ways of doing that instead of starting from "What is HTML and CSS."</p>
<p>Also keep in mind whether you're writing for beginners or more advanced learners – and try to make this clear (either in a prerequisites section or just by stating for whom you wrote the tutorial). This will help determine how you explain things, how much background knowledge you assume, and so on.</p>
<h2 id="heading-make-an-outline">Make an Outline</h2>
<p>Before starting to write a tutorial, outline what things are you going to write about.</p>
<p>Take this article that I'm writing now as an example. To get started, I wrote down different steps I was going to go through to explain how to write a good tutorial.</p>
<p>This process can help you give the article a structure that makes sense and you will be able to explain the specific steps rather than just writing about anything that comes to your mind.</p>
<p>Look at this outline that I made to write this article:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/free.PNG" alt="Image" width="600" height="400" loading="lazy">
<em>Outline that I've made for this article</em></p>
<p>Once you know what you're going to write about, it makes it easier to stay on task and cover all the necessary points.</p>
<h2 id="heading-state-the-problem-you-are-solving">State the Problem You Are Solving</h2>
<p>The first thing a reader looks for in a tutorial is what the tutorial will solve or answer for them. That helps them determine if they're looking at the right article.</p>
<p>In order to make sure your reader is going to read further, tell them what problem you are solving, describe the purpose of the tutorial, what value it is providing, and how it will benefit them.</p>
<p>You can directly tell your readers in the introduction what the tutorial actually does or talks about. </p>
<p>Check out the introduction of this article: when I say, "Here are a few things you need to keep in mind while writing a good technical tutorial", I'm giving you an idea of what we'll be discussing and what you'll learn. </p>
<h2 id="heading-include-prerequisites-readers-need-to-follow-the-tutorial">Include Prerequisites Readers Need to Follow the Tutorial</h2>
<p>You should tell the reader which tools, services, and resources you are going to use for the tutorial.</p>
<p>You don't want your reader to leave the tutorial without completing it. They can get frustrated if they just learn in the middle of that tutorial that you are using some other tool or something they're not familiar with.</p>
<p>Just include a list describing what you're going to use and if it's free or paid. It'll help your readers get prepared before starting to follow the tutorial. </p>
<h2 id="heading-use-headings-and-small-paragraphs">Use Headings and Small Paragraphs</h2>
<p>Use headings to separate different sections of your article by topic. That way, each time a reader sees a new heading, they'll have a better idea of what's coming next.</p>
<p>If you are going through a list of something, then try to present each element of that list using a heading or sub-heading, and then explain it briefly using small paragraphs.</p>
<p>Using headings will help in your SEO, too, and the tutorial will look more presentable and be easier to follow.</p>
<h2 id="heading-provide-code-snippets">Provide Code Snippets</h2>
<p>It's always helpful to provide code snippets in your technical tutorials.</p>
<p>This will let your readers know what you are doing and what you are trying to achieve with that piece of code.</p>
<p>Also, break down the code into smaller parts, as it will be easier for you to explain (rather than explaining all the code at once).</p>
<p>Use comments to describe why you have used that specific code there. Also, formatting the code properly will make it more understandable.</p>
<p>Here's an example:</p>
<pre><code class="lang-python"><span class="hljs-comment"># The comment below describes what the program does.</span>
<span class="hljs-comment"># This program prints Hello, world!</span>

print(<span class="hljs-string">'Hello, world!'</span>)
</code></pre>
<h2 id="heading-wrapping-up">Wrapping up</h2>
<p>I hope this information helps you write clear and helpful technical tutorials. Follow these steps and you will be able to provide more value to your readers.</p>
<p>Thank you for reading!  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Google Docs Strikethrough – How to Cross Out Text in Google Docs ]]>
                </title>
                <description>
                    <![CDATA[ When you're writing, sometimes you might want to strike through certain text. This means adding a horizontal line that runs through a piece of text.  Here is what it looks like: you are an awesome person.  These are various use cases for strikethroug... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/google-docs-strikethrough-how-to-cross-out-text-in-google-docs/</link>
                <guid isPermaLink="false">66b0a2b77cd8dca6718a2240</guid>
                
                    <category>
                        <![CDATA[ Google Docs ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing tips ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Ihechikara Abba ]]>
                </dc:creator>
                <pubDate>Thu, 14 Apr 2022 17:49:37 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/04/siriwan-arunsiriwattana-gs0coXLmjdI-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>When you're writing, sometimes you might want to strike through certain text. This means adding a horizontal line that runs through a piece of text. </p>
<p>Here is what it looks like: you are an awesome person.</p>
<p> These are various use cases for strikethroughs:</p>
<ul>
<li>To indicate that a piece or block of text that should be deleted.</li>
<li>To indicate that a piece or block of text is outdated.</li>
<li>To show task completion. This is usually seen in To-Do lists.</li>
<li>To convey an unrelated or humorous message when writing, and so on.</li>
</ul>
<p>In this article, we'll see how to strikethrough or cross out text when writing using Google Docs.</p>
<h2 id="heading-how-to-strikethrough-text-in-google-docs">How to Strikethrough Text in Google Docs</h2>
<p>There are two methods we can use when crossing out text in Google Docs – using a shortcut command or choosing the strikethrough option from the Format tab in the Google Docs header section. </p>
<h3 id="heading-how-to-strikethrough-text-in-google-docs-using-a-shortcut-command">How to Strikethrough Text in Google Docs Using a Shortcut Command</h3>
<p>Here are the steps to follow when using a shortcut command to strikethrough text in Google Docs:</p>
<ul>
<li>Open <a target="_blank" href="https://docs.google.com/">Google Docs</a> and create a blank document.</li>
<li>Write some text in your document. </li>
<li>Highlight the text you've written.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/gdocs.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ul>
<li>On windows, press <code>Alt</code> + <code>Shift</code> + <code>5</code>.</li>
<li>On Mac, press <code>⌘</code> + <code>Shift</code> + <code>X</code>.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/gdocs_strikethrough.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>There you go, we have used a shortcut command to cross out text in Google Docs. </p>
<h3 id="heading-how-to-strikethrough-text-in-google-docs-using-the-format-tab">How to Strikethrough Text in Google Docs Using the Format Tab</h3>
<p>In this section, we'll see how we can strikethrough text in Google Docs using the Format option. Here are the steps:</p>
<ul>
<li>Open <a target="_blank" href="https://docs.google.com/">Google Docs</a> and create a blank document.</li>
<li>Write some text in your document. </li>
<li>Highlight the text you've written.</li>
<li>Click on the <code>Format</code> tab in the header.</li>
<li>Click on <code>Text</code>.</li>
<li>Click on the <code>Strikethrough</code> option.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/gdocs_tab.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>After you have done this, your text should be crossed out.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>In this article, we talked about strikethroughs in writing, their use cases and how to strikethrough/cross out text in Google Docs.</p>
<p>Thank you for reading! But really, thank's for reading! :)</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Choose a Topic for Your Technical Article ]]>
                </title>
                <description>
                    <![CDATA[ By Paul Akinyemi After you write your first couple of articles, a problem most technical writers face is: "So, what do I write about next?" It can be a frustrating question, so I wrote this article to help. In it, I will give you tips that will save ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/choose-a-topic-for-your-next-article/</link>
                <guid isPermaLink="false">66d4608c677cb8c6c15f3169</guid>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 14 Mar 2022 23:52:03 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/03/topic_article_head.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Paul Akinyemi</p>
<p>After you write your first couple of articles, a problem most technical writers face is: "So, what do I write about next?"</p>
<p>It can be a frustrating question, so I wrote this article to help. In it, I will give you tips that will save you the headache the next time you need to pick a topic for an article.</p>
<p>Here's an overview of what this article will cover:</p>
<ul>
<li>Brainstorming</li>
<li>Decide why you want to write</li>
<li>Follow your interests</li>
<li>Everything has already been written about</li>
<li>Don't rehash the docs</li>
</ul>
<h2 id="heading-intended-audience">Intended Audience</h2>
<p>This article is intended for technical writers who write about programming topics and are trying to figure out what to write about next.</p>
<p>The article doesn't include any advice about actually writing articles – just what to write about.</p>
<h2 id="heading-brainstorm-ideas">Brainstorm Ideas</h2>
<p>One of the best ways to generate ideas of any kind is brainstorming. The more ideas you can come up with, the great your chances are of finding a good one.</p>
<p>You can brainstorm in a bunch of different ways, including as a group, but here's the approach to it that works best for me:</p>
<ol>
<li>Get a pen and paper.</li>
<li>Write down every topic idea that comes to your mind, even if you think it's a bad idea.</li>
<li>Keep going until you can't think of anything else.</li>
<li>If you've found an idea you're happy with, stop.</li>
<li>If you haven't, look for some more input. You can ask people for suggestions, check out things other people have written, or do some research on the ideas you already have.</li>
<li>Take a break of some kind. Sleep for a while, go for a walk, or work on something else for at least 30 minutes.</li>
<li>Get a new piece of paper, and write your ideas on it until you can't think of anything else.</li>
<li>Repeat until you have ideas you're happy with.</li>
</ol>
<h2 id="heading-decide-why-you-want-to-write">Decide Why You Want to Write</h2>
<p>It may sound like an obvious tip, but it's worth checking in with yourself: do you know <em>exactly</em> what you want to gain by writing your article?</p>
<p>There is an endless list of topics to write about, which is part of what makes it hard to decide on something. One of the best ways to narrow it down is to consider why exactly you're writing: what's your end goal?</p>
<p>Once you have that firmly in mind, what you should write about becomes much more apparent, at least in general terms.</p>
<p>For example:</p>
<ul>
<li>If you're writing to submit to a publication, you should focus on topics that go well with what they've already published.</li>
<li>If you just want to practice your writing, the topic doesn't matter too much.</li>
<li>If you're writing to learn something specific, you can stop reading. You've answered your question.</li>
<li>If you're writing to show your competence, focus on what you know a lot about and feel confident writing about.</li>
</ul>
<p>People write for more reasons than the above, but often, confirming your personal reason brings a lot of clarity.</p>
<h2 id="heading-follow-your-interests">Follow Your Interests</h2>
<p>Your best writing usually comes from topics you're genuinely interested in for their own sake.</p>
<p>Here's advice from Chris Coyier from his article on advice for technical writing:</p>
<blockquote>
<p>If you want to write for CSS-Tricks and you ask me what you should write about, I'm probably going to turn that question around on you. It's likely I don't know you well enough to pick the perfect topic for you.   </p>
<p>More importantly, <strong>what I really want you to write about is something that is <em>personal</em> and <em>important</em> to you.</strong> Articles rooted in recent excitement about a particular idea or technology always come out better than dictated assignments. (Source: <a target="_blank" href="https://css-tricks.com/advice-for-technical-writing/">advice on technical writing</a>)</p>
</blockquote>
<p>If you're having difficulty deciding on a topic, try and start with the topics that interest you, even if you're not an expert.</p>
<p>Maybe you've always wanted to learn about web automation, CSS art, or game development. Do some research into your interests, and pick something to write from there.</p>
<h2 id="heading-everything-has-already-been-written-about">Everything Has Already Been Written About</h2>
<p>Even when you have a topic in mind, a common frustration is that it can sometimes feel like everyone has already written about the topic you want to write about.</p>
<p>And that's probably true. Unless you're writing about a very new or unpopular framework or language, the odds are good that someone has already covered the subject in some way.</p>
<p>That doesn't mean you can't still write about your topic of choice, but you have to get a little creative.</p>
<p>Here's Quincy Larson's advice on the subject (the relevant snippet stops at 5:20):</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/YODPgBadj80" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>As you can see, even if other people have already written something about your topic, there's a good chance you can still write about it.</p>
<p>This is Chris Coyier's best advice on picking something to write about:</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/chriscoyier/status/925081793576837120?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E925081793576837120%7Ctwgr%5E%7Ctwcon%5Es1_c10&amp;ref_url=https%3A%2F%2Fcss-tricks.com%2Fadvice-for-technical-writing%2F"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Personally, I apply this advice by googling my topic to see what people have already written about it. After that, I check if I can find anything missing from what I read:</p>
<ul>
<li>Does it go into enough detail?</li>
<li>Was it explained clearly enough?</li>
<li>Would it benefit from a more practical approach?</li>
<li>Is the content out of date?</li>
<li>Is there another way to apply this content?</li>
</ul>
<p>Sometimes, you won't find anything missing, especially with very old or foundational topics. But often enough, you can find a way to contribute something of value to the existing writing.</p>
<p>Also, keep in mind that the way you explain things might resonate with someone in a way that nothing else out there does.</p>
<h2 id="heading-dont-rehash-the-docs">Don't Rehash the Docs</h2>
<p>I know I just said you shouldn't rehash the docs, but it's actually okay in a few scenarios:</p>
<ul>
<li>You're writing mainly to help yourself learn the concept or practice writing</li>
<li>The official documentation is glaringly deficient in detail or clarity</li>
<li>Your writing offers a significantly different perspective or substantial improvement</li>
</ul>
<p>On the other hand, if you're writing for other people to read, and the official docs are already reasonably good, it's probably a better idea to build a tutorial showcasing the concept or write about your experience using it than to simply explain it again.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>I hope you had fun reading this and that you'll find choosing a topic to write about much easier from here on out.</p>
<p>This article didn't cover how to actually write once you've come up with a topic. If you'd like to read advice on turning your idea into an article, check out the following links:</p>
<ul>
<li><a target="_blank" href="https://css-tricks.com/advice-for-technical-writing/">Advice for technical writing</a></li>
<li><a target="_blank" href="https://www.youtube.com/watch?v=YODPgBadj80">How to write technical blog posts people will actually read</a></li>
<li><a target="_blank" href="https://developers.google.com/tech-writing/one">Technical Writing One</a></li>
</ul>
<p>Good luck, and follow me on <a target="_blank" href="https://twitter.com/apexPaul09">Twitter</a> to see more of my writing.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Markdown Cheat Sheet – How to Write in Markdown with Examples ]]>
                </title>
                <description>
                    <![CDATA[ Markdown has gained popularity because it's easy to use and it's widely accepted across platforms.  You can use markdown to write content that can be conveyed in plain text. A good example would be a blog post. In this article, you'll learn what mark... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/markdown-cheat-sheet/</link>
                <guid isPermaLink="false">66adea601ad24d82983fd253</guid>
                
                    <category>
                        <![CDATA[ markdown ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Zaira Hira ]]>
                </dc:creator>
                <pubDate>Thu, 10 Feb 2022 16:31:38 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/01/Copy-of-Copy-of-Cron-jobs-Linux.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Markdown has gained popularity because it's easy to use and it's widely accepted across platforms. </p>
<p>You can use markdown to write content that can be conveyed in plain text. A good example would be a blog post.</p>
<p>In this article, you'll learn what markdown is and how to use it.</p>
<h2 id="heading-what-is-markdown">What is Markdown?</h2>
<p>Markdown is a markup language just like HTML. We use it to parse text and convert it into a specific format. You can also think of it as a text to HTML converter tool. </p>
<p>Many developers like writing in markdown because it gives them fine-grained control over their text and code. We'll see how and why in the coming paragraphs.</p>
<h2 id="heading-in-this-guide-well-cover-the-following-topics">In this guide we'll cover the following topics.</h2>
<ul>
<li>How to create your first markdown file.</li>
<li>Create a cheat sheet for markdown</li>
<li>Discuss how markdown can be rendered in VS Code</li>
</ul>
<h2 id="heading-tools-that-support-markdown">Tools that Support Markdown</h2>
<p>Markdown works in any browser even if you use a simple notepad. But there are certain tools that can help enhance your productivity by providing a real time view (of markdown and rich text) side by side.</p>
<p>The following are some of the tools that support working with markdown:</p>
<ul>
<li>VSCode (We'll cover this in this article)</li>
<li>Atom</li>
<li>Haroopad</li>
<li>Sublime text</li>
<li>MarkPad</li>
</ul>
<h2 id="heading-how-to-work-with-markdown">How to Work with Markdown</h2>
<h3 id="heading-download-vscode-and-enable-the-plugin">Download VSCode and enable the plugin</h3>
<p>VSCode is a text editor like notepad, but it has many more capabilities. You can also use it for coding and it supports numerous programming languages. </p>
<p>We'll be using VSCode to write and render markdown files.</p>
<p>You can download VSCode from <a target="_blank" href="https://code.visualstudio.com/download\">here</a>.</p>
<p>Once your download is completed, activate the below extension:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/image-118.png" alt="Image" width="600" height="400" loading="lazy">
<em>VS code extension</em></p>
<h3 id="heading-how-to-create-your-first-markdown-file">How to create your first markdown file</h3>
<p>To work with markdown, simply save the text file with <code>.md</code> extension. After that, you'll be able to apply markdown syntax.</p>
<p>After creating your file and activating the plugin, the workspace should look something like this.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/image-119.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-markdown-in-action">Markdown in action</h3>
<p>In markdown, we use a specific syntax to denote headings, bold text, lists, and other text formatting. </p>
<p>You can refer to the table below for an overview of basic markdown syntax:</p>
<table>
<thead>
<tr>
<th>Task</th>
<th>Markdown syntax</th>
</tr>
</thead>
<tbody>
<tr>
<td>Heading 1</td>
<td>#</td>
</tr>
<tr>
<td>Heading 2</td>
<td>##</td>
</tr>
<tr>
<td>Heading 3</td>
<td>###</td>
</tr>
<tr>
<td>Italics</td>
<td><em>italics</em></td>
</tr>
<tr>
<td>Bold</td>
<td><strong>Bold</strong></td>
</tr>
<tr>
<td>Strike</td>
<td>insert text</td>
</tr>
<tr>
<td>Block quote</td>
<td>&gt;</td>
</tr>
<tr>
<td>Links</td>
<td><a target="_blank" href="link.com">link name</a></td>
</tr>
<tr>
<td>Unordered list</td>
<td><em> List item </em> List item</td>
</tr>
<tr>
<td>Code Block</td>
<td><code>insert code here</code></td>
</tr>
<tr>
</tr>
</tbody>
</table>

<p>Simply start writing in your <code>.md</code> file and see the results side by side.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/image-121.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-write-code-blocks-in-markdown">How to write code blocks in Markdown</h3>
<p>There is language support available for many programming languages in VSCode.</p>
<p>Here are some examples of coding in different languages.</p>
<p><strong>Code blocks for HTML and Bash</strong></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/image-137.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>Code blocks for Python and JS</strong></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/image-138.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-escape-characters-in-markdown">Escape characters in markdown</h3>
<p>If you want the browser to ignore the syntax and retain the characters, the characters can be escaped using the backslash <code>\</code>.</p>
<p>For instance, * would not parse its succeeding characters as italics.</p>
<h2 id="heading-practical-applications-of-markdown">Practical Applications of Markdown</h2>
<p>You can use markdown in email templates, and it is a natural fit for technical documentation. </p>
<p>A great example for markdown is the GitHub README.md file. There, code blocks are easily combined with well-formatted text.</p>
<h2 id="heading-download-the-markdown-cheat-sheet">Download the Markdown Cheat Sheet</h2>
<p>I've compiled all the tips you've learned here in a cheat sheet. </p>
<p>You can download the cheat sheet <a target="_blank" href="https://github.com/zairahira/Markdown-cheatsheet/blob/main/README.md">here</a>.</p>
<h2 id="heading-wrapping-up">Wrapping up</h2>
<p>By now I hope you're confident enough to write your own markdown. Once you get the hang of it, it's easy enough. Apart from being simple, it is also very powerful and widely accepted.</p>
<p>If you found this post helpful, share it :) </p>
<p>Check out my other <a target="_blank" href="https://www.freecodecamp.org/news/author/zaira/">blog posts.</a> Let's connect on <a target="_blank" href="https://twitter.com/hira_zaira">Twitter</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
