<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MizuhoOkimoto</title>
    <description>The latest articles on DEV Community by MizuhoOkimoto (@okimotomizuho).</description>
    <link>https://dev.to/okimotomizuho</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F701991%2F617deea3-3c20-4c3a-afbc-550675376008.JPG</url>
      <title>DEV Community: MizuhoOkimoto</title>
      <link>https://dev.to/okimotomizuho</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/okimotomizuho"/>
    <language>en</language>
    <item>
      <title>Small contributions may have more importance than you realize</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Wed, 15 Dec 2021 04:45:35 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/small-contributions-may-have-more-importance-than-you-realize-526e</link>
      <guid>https://dev.to/okimotomizuho/small-contributions-may-have-more-importance-than-you-realize-526e</guid>
      <description>&lt;p&gt;Small contributions are still meaningful on your road to becoming a good programmer (I believe!). I couldn't make my 4th Pull Request during the Hacktoberfest but I didn't want to give up, and also I was frustrated by not making it.&lt;br&gt;
I tried to find an issue with medium difficulty, but it was very hard for me. When I was searching issues, I found a repo about Japanese translation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Issue
&lt;/h2&gt;

&lt;p&gt;The project is a Google Chrome extension to create guidelines on websites. I don't use any extensions, so I thought it was interesting to contribute to something new to me, and a good opportunity to see the project files to create an extension.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did
&lt;/h2&gt;

&lt;p&gt;I added &lt;code&gt;ja&lt;/code&gt; file under &lt;code&gt;_locales&lt;/code&gt; folder and Japanese translations for all strings that are indexed by &lt;code&gt;"message"&lt;/code&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D3_tCS39--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1mcgs5wr1yuqbcejnom9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D3_tCS39--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1mcgs5wr1yuqbcejnom9.png" alt="code image" width="880" height="437"&gt;&lt;/a&gt;&lt;br&gt;
I tried to think from users' stand point and used proper Japanese. As you might think, it was kind of easy, but translating &lt;code&gt;Donation link&lt;/code&gt; was tricky. In Japanese culture, "donation" or "tip" are not very common, and if we give donation/tip, we wrap money in a certain way and use an envelope to someone who provides good service.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;As I mentioned it was pretty easy, so I wanted to learn something with this contribution. Therefore, I decided to search about how to build a Google Chrome extension.&lt;br&gt;
Firstly, I checked the &lt;a href="https://developer.chrome.com/docs/extensions/mv3/overview/"&gt;official site&lt;/a&gt;. It says "extensions are software programs, built on web technologies (such as HTML, CSS, and JavaScript) that enable users to customize the Chrome browsing experience". It requires &lt;code&gt;manifest.json&lt;/code&gt;, and the file needs to be specified background scripts, content scripts, an options page, UI elements and various logic files like this project did. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5VaswGSx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p4c9y5jcsiz1wasw1fxy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5VaswGSx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p4c9y5jcsiz1wasw1fxy.png" alt="Imanigest.json" width="741" height="803"&gt;&lt;/a&gt;&lt;br&gt;
Inside the &lt;strong&gt;background script&lt;/strong&gt;, it has to be declared &lt;code&gt;onInstalled&lt;/code&gt; listener and it calls when the user clicks on the browser action.&lt;br&gt;
&lt;strong&gt;Content scripts&lt;/strong&gt; are files that run in the context of web pages. You can use the standard Document Object Model (DOM) to read the details of web pages accessed by browsers, make changes, and pass information to parent extensions.(The project used it calls &lt;code&gt;inject.js&lt;/code&gt;)&lt;br&gt;
&lt;strong&gt;Browser actions&lt;/strong&gt; are buttons on the toolbar of the browser.&lt;br&gt;
If you specify a popup, the popup is displayed and the content is loaded when the user clicks the icon.&lt;br&gt;
Extensions can include various forms of &lt;strong&gt;user interfaces(UI)&lt;/strong&gt;. UI uses a popup, so create a file named &lt;code&gt;popup.html&lt;/code&gt; and add it to the extension's directory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I made this contribution as a part of my assignment and to make up for the missed Hacktoberfest. I filed an issue and asked to be assigned to it, but I was only able to make a pull request for this project.&lt;br&gt;
It didn't use technical knowledge as a programmer, but it did achieve its goal in terms of contributing to an open source project and learning something new from it.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗Links
&lt;/h2&gt;

&lt;p&gt;Project: &lt;a href="https://github.com/Crease29/pageliner"&gt;pageliner&lt;/a&gt;&lt;br&gt;
Issue: &lt;a href="https://github.com/Crease29/pageliner/issues/20"&gt;Issue20&lt;/a&gt;&lt;br&gt;
PR: &lt;a href="https://github.com/Crease29/pageliner/pull/31"&gt;PR31&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Photo by Daniel Cheung on Unsplash)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Results: Contributing to a open source project</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 11 Dec 2021 04:49:20 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/result-contributing-to-a-open-source-project-3pfh</link>
      <guid>https://dev.to/okimotomizuho/result-contributing-to-a-open-source-project-3pfh</guid>
      <description>&lt;p&gt;As a closing for Release 0.4, which is the final task of my open source development course, let me share my results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Issue
&lt;/h2&gt;

&lt;p&gt;Issue: &lt;a href="https://github.com/Seneca-ICTOER/IPC144/issues/64"&gt;https://github.com/Seneca-ICTOER/IPC144/issues/64&lt;/a&gt;&lt;br&gt;
I worked on the standardized frontmatter across all markdown pages. This open-source project is the C language course notes of my major program.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pull Request
&lt;/h2&gt;

&lt;p&gt;Pull Request: &lt;a href="https://github.com/Seneca-ICTOER/IPC144/pull/143"&gt;https://github.com/Seneca-ICTOER/IPC144/pull/143&lt;/a&gt;&lt;br&gt;
I've done the following for the standardization of Frontmatter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;sidebar_position&lt;/code&gt;, and &lt;code&gt;description&lt;/code&gt; for all markdown pages&lt;/li&gt;
&lt;li&gt;Each property of frontmatter was unified in order&lt;/li&gt;
&lt;li&gt;Unified format of description&lt;/li&gt;
&lt;li&gt;Shortened &lt;code&gt;description&lt;/code&gt; to maximum 160 characters (Reason: &lt;code&gt;description&lt;/code&gt; becomes the &lt;code&gt;&amp;lt;meta name="description" content="..."/&amp;gt;&lt;/code&gt; inside the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;tag, and Google generally truncates snippets to ~155-160 characters)&lt;/li&gt;
&lt;li&gt;Added "Standardize frontmatter" to the CONTRIBUTING.md file&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;Unfortunately, my PR isn't merged yet. Also, the issue I filed a few days ago wasn't reviewed, so I'm not sure if I can make another PR. However, I would like to reach out to my professor about my PR and ask what more I can do or improve.&lt;br&gt;
I can't honestly say that I was able to get involved in an open source project technically in this release 0.4. However, I spent time checking everywhere on the repository to see if the Issue I was working on might affect other issues and PRs, and checking most of the files in the project.&lt;br&gt;
Other than that, I often read the Docusaurus documentation for this project and saw and learned how other students are actively involved in the project. Especially one of my classmates, Kevan, who contributes to this project significantly, so communicating with him made my PR easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The 14-week open source development course itself is over today.&lt;br&gt;
However, I won't stop being involved in the open source community. Unlike other courses this was the most interesting course of my 5 semesters so far, as the entire class did not tackle the same assignments or need to take exams. On the other hand, I was a little depressed seeing the efforts of other students. I realized my problem-solving and programming-coding will need some extra work.&lt;/p&gt;

&lt;p&gt;In Release 0.4 I made a plan; check the processes and then review all of my results. Now, I would like to make a new plan here on how I will be involved in the open source community in the future.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deepen my knowledge of JavaScript and improve my SSG&lt;/li&gt;
&lt;li&gt;Be Involved in testing&lt;/li&gt;
&lt;li&gt;Learn a new programming language and start contributing with a small issue&lt;/li&gt;
&lt;li&gt;Don't hesitate to communicate with other developers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I started learning git, I was afraid I could break the repositories with my git commands, but I'm comfortable using git now. I will also continue learning git and hopefully become a git master!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>github</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Progress: my contribution to the open source project</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Thu, 09 Dec 2021 21:43:09 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/progress-contribute-to-the-open-source-project-120c</link>
      <guid>https://dev.to/okimotomizuho/progress-contribute-to-the-open-source-project-120c</guid>
      <description>&lt;p&gt;I planned how to contribute to an open source project last week and wrote about it in my &lt;a href="https://dev.to/okimotomizuho/planning-how-to-contribute-to-an-open-source-project-48o6"&gt;previous blog&lt;/a&gt;. In the blog, I mentioned I would write a progress blog on Monday, so here I am!&lt;/p&gt;

&lt;h2&gt;
  
  
  Issue
&lt;/h2&gt;

&lt;p&gt;For the last assignment(we call Release) of my open source course, I've decided to contribute to an open source project which is my college's C language course notes. The &lt;a href="https://github.com/Seneca-ICTOER/IPC144/issues/64"&gt;issue&lt;/a&gt; I'm working on is about "Standardize frontmatter across all pages". When we contributed to the project in our last Release, we added &lt;code&gt;slug&lt;/code&gt; as one of the properties for frontmatter. However, it made links broken since internal links use page names vs. slugs, so my professor told me to review some of the PRs if they included it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Made a PR
&lt;/h2&gt;

&lt;p&gt;PR: &lt;a href="https://github.com/Seneca-ICTOER/IPC144/pull/143"&gt;https://github.com/Seneca-ICTOER/IPC144/pull/143&lt;/a&gt;&lt;br&gt;
I've done the following for the standardization of Frontmatter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;sidebar_position&lt;/code&gt;, and &lt;code&gt;description&lt;/code&gt; for all markdown pages&lt;/li&gt;
&lt;li&gt;Each property of frontmatter was unified in order&lt;/li&gt;
&lt;li&gt;Unified format of description&lt;/li&gt;
&lt;li&gt;Shortened &lt;code&gt;description&lt;/code&gt; to maximum 160 characters (Reason: &lt;code&gt;description&lt;/code&gt; becomes the &lt;code&gt;&amp;lt;meta name="description" content="..."/&amp;gt;&lt;/code&gt; inside the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;tag, and Google generally truncates snippets to ~155-160 characters)&lt;/li&gt;
&lt;li&gt;Added "Standardize frontmatter" to the CONTRIBUTING.md file&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting reviews and change requests
&lt;/h2&gt;

&lt;p&gt;One of my classmates reviewed my changes, and he asked me to reinsert &lt;code&gt;slug&lt;/code&gt; in the root of the file, and also add a step in the Workflow in Contributing.md. Also, one of the repo's owners requested to change some &lt;code&gt;description&lt;/code&gt;s in the frontmatter. When I worked on Standardizing frontmatter, the description was hard since I'm familiar with the course notes, but I wasn't very good at C language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next step
&lt;/h2&gt;

&lt;p&gt;The goal for this Release is for my PR to get merged by this Friday. However, I didn't change any codes in this contribution. I still need to make more PRs for my previous Releases. It would be a lot of things to do in my final exams week. I will try my best and put lots of effort into all of these Releases.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>programming</category>
      <category>github</category>
    </item>
    <item>
      <title>Planning: How to contribute to an open source project</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 04 Dec 2021 02:27:41 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/planning-how-to-contribute-to-an-open-source-project-48o6</link>
      <guid>https://dev.to/okimotomizuho/planning-how-to-contribute-to-an-open-source-project-48o6</guid>
      <description>&lt;p&gt;For the last assignment(we call Release) of my open source course, I decided to contribute to an open source project which is my college's C language course notes. I had 3 Releases so far, and this 4th Release requires something larger and more impactful than anything I have done previously.&lt;br&gt;
Repository: &lt;a href="https://github.com/Seneca-ICTOER/IPC144"&gt;IPC144&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why did I choose this project?
&lt;/h2&gt;

&lt;p&gt;I contributed to the project in my last Release, and also I'm familiar with the course notes as well. Moreover, when I worked on my last &lt;a href="https://github.com/Seneca-ICTOER/IPC144/issues/87"&gt;issue&lt;/a&gt; and &lt;a href="https://github.com/Seneca-ICTOER/IPC144/pull/100"&gt;pull request&lt;/a&gt;, I tried to unify the format with other people's PRs, but people modified in different ways, so I felt unsure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Issue
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/Seneca-ICTOER/IPC144/issues/64"&gt;issue&lt;/a&gt; I will work on is about "Standardize frontmatter across all pages".&lt;/p&gt;

&lt;h2&gt;
  
  
  How I will work on it
&lt;/h2&gt;

&lt;p&gt;I have never done standardizing for a project except my own projects, so it's challenging for me, but I will address this issue based on the following points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read and check all pages&lt;/li&gt;
&lt;li&gt;Standardize frontmatter&lt;/li&gt;
&lt;li&gt;Review PRs and request changes based on the standardization&lt;/li&gt;
&lt;li&gt;Run Prettier and unify the format&lt;/li&gt;
&lt;li&gt;Try to find and modify to standardize pages&lt;/li&gt;
&lt;li&gt;Review&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My schedule
&lt;/h2&gt;

&lt;p&gt;I started working on it late, but this Release's due date is next Friday(Dec 10th) so that I only have 7 days. Therefore, my plan is make as much as progress as I can until Monday. I will review my progress and write about it here, and make a PR on Tuesday.&lt;br&gt;
I will try to complete this Release, study, go to work, study... no sleep!💪&lt;/p&gt;

&lt;p&gt;(Photo by Jon Tyson on Unsplash)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>programming</category>
      <category>github</category>
    </item>
    <item>
      <title>Releasing my npm package with a Tag</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 27 Nov 2021 02:35:58 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/release-npm-package-with-a-tag-5b2j</link>
      <guid>https://dev.to/okimotomizuho/release-npm-package-with-a-tag-5b2j</guid>
      <description>&lt;p&gt;I released a npm package in public for my Static Site Generator(SSG)! I was very surprised and impressed that I could do that like other packages that I used before💮&lt;/p&gt;

&lt;h2&gt;
  
  
  Package managers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry"&gt;npm&lt;/a&gt; is the package manager for the Node JavaScript platform. My SSG uses JavaScript, so I decided to use it to release my package.&lt;/p&gt;

&lt;h2&gt;
  
  
  How did I create a package?
&lt;/h2&gt;

&lt;p&gt;First of all, I opened Windows PowerShell and went to my SSG folder. Second, I typed &lt;code&gt;npm login&lt;/code&gt;. It allowed me to enter Username, Password, Email. After I verified my email address, I could get this page:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hfo_4B_y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xyx861cdcxe54nupy0c3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hfo_4B_y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xyx861cdcxe54nupy0c3.png" alt="npm" width="880" height="371"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Tag my Release
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://git-scm.com/book/en/v2/Git-Basics-Tagging#_annotated_tags"&gt;Tags&lt;/a&gt; can be used as specific points in history in open source projects to help users in the repository easily navigate to important parts of the code history.&lt;br&gt;
I added &lt;code&gt;v0.9.0.&lt;/code&gt; as a practice, and then created a &lt;code&gt;v1.0.0&lt;/code&gt; release with &lt;code&gt;git tag -a v1.0.0 -m "my version 1.0.0"&lt;/code&gt; and checked all tags I added with the &lt;code&gt;git tag&lt;/code&gt; command. My original release number was &lt;code&gt;v0.1.0&lt;/code&gt;, so I changed package.json, yarg, README files to modify my version. After I added those files, commit, and push, I also pushed tags to main with the &lt;code&gt;git push --follow-tags&lt;/code&gt; command.&lt;/p&gt;
&lt;h2&gt;
  
  
  Published my public package to the npm registry
&lt;/h2&gt;

&lt;p&gt;Based on the &lt;a href="https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages"&gt;npm document&lt;/a&gt;, the way to publish a package is using &lt;code&gt;npm publish&lt;/code&gt; command. When I run it, I had the error below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PS C:\Users\Mizuho\Desktop\OSD600\pajama-ssg&amp;gt; npm publish
npm notice
npm notice package: node-ssg@1.0.0
npm notice === Tarball Contents ===
npm notice 701B   __mocks__/fs.js
 ...
npm notice 842B   yargsConfig.js
npm notice === Tarball Details ===
npm notice name:          node-ssg
npm notice version:       1.0.0
 ...
npm notice total files:   25
npm notice
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/node-ssg - Package name too similar to existing package nodessg; try renaming your package to '@mizuho/node-ssg' and publishing with 'npm publish --access=public' instead
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I firstly thought someone used the same name of the package, but it was just the name I didn't change inside the package.json file when I did &lt;code&gt;npm init&lt;/code&gt;.&lt;br&gt;
I changed &lt;code&gt;name&lt;/code&gt; from &lt;code&gt;node-ssg&lt;/code&gt; to &lt;code&gt;pajama-ssg&lt;/code&gt;, and successfully released!&lt;/p&gt;

&lt;h2&gt;
  
  
  User Testing
&lt;/h2&gt;

&lt;p&gt;My partner Gustavo tried to install and run my program, but it failed. The error message said it was caused by &lt;code&gt;prettier&lt;/code&gt;. Since I moved prettier inside the &lt;code&gt;devDependencies&lt;/code&gt; instead of &lt;code&gt;dependencies&lt;/code&gt; in my package.json file. I corrected the location and pushed to git, and I &lt;a href="https://docs.npmjs.com/updating-your-published-package-version-number"&gt;updated the npm version number&lt;/a&gt; with the &lt;code&gt;npm version 1.0.1&lt;/code&gt; command. Then I published it again.&lt;br&gt;
He could run my program and I also could run his program.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TkwLGnVK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dr7cvi1pk015z8wz7q0i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TkwLGnVK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dr7cvi1pk015z8wz7q0i.png" alt="run Gustavo's project" width="880" height="546"&gt;&lt;/a&gt;&lt;br&gt;
However, I couldn't see any files in my directory where I installed Gustavo's package, the &lt;code&gt;node_module&lt;/code&gt; folder was installed globally(under my C drive). Another friend, Kevan helped me and suggested to do &lt;code&gt;npm install&lt;/code&gt; inside the directory. It created a package.json and I did &lt;code&gt;npm i &amp;lt;packagename&amp;gt;&lt;/code&gt; again, then I finally had the files inside the directory🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  Modified README and CONTRIBUTING file
&lt;/h2&gt;

&lt;p&gt;I modified those files and their contents to match by installing the npm package. The installation and usage became simpler. When I modified the README file, I didn't pay attention enough and realized that I had to change the CONTRIBUTING file as well. Because of my small changes, my release number grew to &lt;code&gt;v1.0.4&lt;/code&gt;. I learned that I needed to think more about the affected area😅&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I didn't expect that I could release a npm package in public. Through this course, I'm having good opportunities to communicate with other programmers(students, people online, professors) and experiences to publish in public such as this blog, a npm package, my open source project, and PRs. I'm a shy person so all of these social aspects are new to me, but I feel I'm getting more comfortable with all of it(I hope!)🌟&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;My npm package: &lt;a href="https://www.npmjs.com/package/pajama-ssg"&gt;pajama-ssg&lt;/a&gt;&lt;br&gt;
All you need is &lt;code&gt;npm i pajama-ssg&lt;/code&gt;, and run &lt;code&gt;npx pajama-ssg -i &amp;lt;file name&amp;gt;&lt;/code&gt;.&lt;br&gt;
File name is your text or markdown files that you would like to convert to html. Please store a file(s) inside the project folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/pajama-ssg"&gt;My GitHub repo&lt;/a&gt; | &lt;a href="https://www.npmjs.com/package/gmot-ssg"&gt;Gustavo's npm package&lt;/a&gt; | &lt;a href="https://www.npmjs.com/package/text-ssg"&gt;Kevan's npm package&lt;/a&gt;&lt;br&gt;
My friends' SSGs are great! Check them out👀✨&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>npm</category>
      <category>devops</category>
      <category>git</category>
    </item>
    <item>
      <title>Code Reviews</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 20 Nov 2021 07:13:18 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/code-reviews-2n44</link>
      <guid>https://dev.to/okimotomizuho/code-reviews-2n44</guid>
      <description>&lt;p&gt;After I contributed to an internal project, I experienced reviewing 2 pull requests and they were in the repository I contributed to. This project is for an online note for C language in my college, and uses Docusaurus.&lt;br&gt;
🔗Repository: &lt;a href="https://github.com/Seneca-ICTOER/IPC144"&gt;IPC144&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I contributed to the project, I audited and fixed the markdown page and was familiar with each task, so I reviewed the Pull Requests of other students who did it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review1.
&lt;/h3&gt;

&lt;p&gt;🔗Issue: &lt;a href="https://github.com/Seneca-ICTOER/IPC144/pull/95"&gt;https://github.com/Seneca-ICTOER/IPC144/pull/95&lt;/a&gt;&lt;br&gt;
I reviewed Reza9472's work, where he worked on not only the markdown file but also modified css and package.json file. He did a good job but I found some extra spaces similar to how I did it, so I made a comment about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review2.
&lt;/h3&gt;

&lt;p&gt;🔗Issue: &lt;a href="https://github.com/Seneca-ICTOER/IPC144/pull/84"&gt;https://github.com/Seneca-ICTOER/IPC144/pull/84&lt;/a&gt;&lt;br&gt;
I read the markdown file line by line and found an extra comment, so I asked rclee91 to delete it. I wondered if we needed to delete extra indentations in the code blocks because I thought it wasn't user-friendly.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qjQd3EJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0j6hxw9ujhit275hmfn8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qjQd3EJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0j6hxw9ujhit275hmfn8.png" alt="code block and the mobile display" width="880" height="505"&gt;&lt;/a&gt;&lt;br&gt;
I checked C language code format, and the generator fixed the extra indentations, also some other students deleted the indentations in their PR. However, the original course note (&lt;a href="https://ict.senecacollege.ca/~ipc144/pages/content/valid.html"&gt;IPC144&lt;/a&gt;)has the same indentations so I just suggested him to change it.&lt;br&gt;
rclee91 said the indentations are the same for all of the code example in the md file. The owners of the repo didn't say anything, so I was driven by the desire to have all the formatting the same, but decided to overlook it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;I experienced getting reviews and also reviewing through this assignment. By comparing what I did with what other people did along the same task, it was helpful to be able to know what I was missing.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>github</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Audit and Fix a Markdown Page</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 20 Nov 2021 05:05:12 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/audit-and-fix-a-markdown-page-42l5</link>
      <guid>https://dev.to/okimotomizuho/audit-and-fix-a-markdown-page-42l5</guid>
      <description>&lt;p&gt;My recent contribution to an open source project is the improvement of the online course notes for the C language course (IPC144) in my college. The online note uses Docusaurus, and I had the opportunity to study Docusaurus a while back, so this contribution deepened my knowledge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Issue
&lt;/h3&gt;

&lt;p&gt;The issue I worked on was the Audit and Fix a Markdown Page. Each chapter of that online note consists of its own md file. My professor file an issue with a list of all of the md files and 19 tasks for improving each page. I selected the "output-functions" page in it, filed a new issue, and worked on the tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Checking display
&lt;/h3&gt;

&lt;p&gt;I set everything up locally and checked for problems with the display. Such as: typo, markdown, the Light and Dark mode, and the desktop and mobile.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using tools for improving the quality of web pages
&lt;/h3&gt;

&lt;p&gt;As my professor mentioned, I tried running the page through Lighthouse and Web Hint.&lt;br&gt;
I had never used them, but it was easy to check with those tools.&lt;br&gt;
Lighthouse checked if the page is optimized for each item, and showed me there is no alt tag for images. After I added alt, performance, accessibility, best practices, SEO scores went up.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mCRBQQz4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zhep3fujffzdjtucze6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mCRBQQz4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zhep3fujffzdjtucze6m.png" alt="lighthouse" width="639" height="244"&gt;&lt;/a&gt;&lt;br&gt;
When I checked the page using Web Hint, I got 55 hints, but nothing about the page I was working on.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FSEDFfzE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rgtft6p0kwlmig1z9hwq.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FSEDFfzE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rgtft6p0kwlmig1z9hwq.JPG" alt="Web Hint" width="880" height="390"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Fixing Frontmatter for the page
&lt;/h3&gt;

&lt;p&gt;Markdown documents can use the Markdown FrontMatter metadata fields, enclosed by a line --- on either side.(&lt;a href="https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-frontmatter"&gt;Docusaurus official page&lt;/a&gt;)&lt;br&gt;
I added the FrontMatter below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
sidebar_position: 5
title: Output Functions
id: output-functions
slug: modularity/output-functions
desctiption: This chapter on output functions is about invoking standard library procedures to stream data to users
---
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Reviewed from other students
&lt;/h3&gt;

&lt;p&gt;I made a PR, other students reviewed it and gave me some requests.&lt;br&gt;
They were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Removing extra space I missed in the md file&lt;/li&gt;
&lt;li&gt;Adding a hyperlink to a related page&lt;/li&gt;
&lt;li&gt;Adding Description to the page(as a Frontmatter)&lt;/li&gt;
&lt;li&gt;Adding backticks to function names&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;I thought there were a lot of tasks, but it wasn't too difficult. It was good to be able to contribute to the project that actually used Docusaurus and to experience the improvement of the page using Lighthouse and Web Hint. This time, my professor listed the tasks and provided them to us, which made the contribution easier, and I would like to use the task when working on external issues myself in the future.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗Links
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Seneca-ICTOER/IPC144"&gt;IPC144 Project repo&lt;/a&gt; | &lt;a href="https://github.com/Seneca-ICTOER/IPC144/issues/87"&gt;Issue&lt;/a&gt; | &lt;a href="https://github.com/Seneca-ICTOER/IPC144/pull/100"&gt;Pull Request&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Photo by Glenn Carstens-Peters on Unsplash)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>c</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Adding Continuous Integration: GitHub Actions Workflow</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 20 Nov 2021 03:14:43 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/add-continuous-integration-github-actions-workflow-2d9h</link>
      <guid>https://dev.to/okimotomizuho/add-continuous-integration-github-actions-workflow-2d9h</guid>
      <description>&lt;p&gt;During the Hactoberfest, I had a problem with GitHub Actions Workflow. This week I learned about it, so this is my introduction.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅Why do I need CI (Continuous Integration)?
&lt;/h3&gt;

&lt;p&gt;Testing is very important because many people are involved in an open source project. I used Jest last week to test my Static Site Generator(SSG), but I might forget testing when I push or merge pull requests. CI is a way to automatically build and run tests (integrate everything into our project) whenever something is pushed to the repository or a new pull request is made. Therefore, adding CI to my project is very useful for managing and making it work all the time.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅How did I implement CI?
&lt;/h3&gt;

&lt;p&gt;I used GitHub Action Workflow for it. You can use actions to automate your workflow in response to events in your GitHub repository. I chose to build Node.js from the Actions tab in my SSG repository. The following &lt;code&gt;yaml&lt;/code&gt; file (config file) was automatically generated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Node.js CI
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  build:
    runs-on: ubuntu-latest
  strategy:
    matrix:
      node-version: [10.x, 12.x, 14.x, 16.x]
      # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;on: specify when this workflow is triggered.&lt;/li&gt;
&lt;li&gt;jobs: run on ubuntu (can add/change mac or Windows' OS)&lt;/li&gt;
&lt;li&gt;matrix: for all of the different versions of node that it's going to run against.&lt;/li&gt;
&lt;li&gt;steps: compile code and test code. I also can add any steps that I have to do or if I need to install other dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅How did I test my CI?
&lt;/h3&gt;

&lt;p&gt;I added a new test code to my project, ran Jest to make sure it passed, then pushed and created a PR. Then, on GitHub, the pull request triggered the CI workflow and it looks like the image below.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tEu1Tsbw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds4v89hijh1nboybjgc7.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tEu1Tsbw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds4v89hijh1nboybjgc7.JPG" alt="success workflow" width="880" height="385"&gt;&lt;/a&gt;&lt;br&gt;
For practice, I went back to the test code again to see how this workflow was interrupted. I rewrote the code so that the test failed, and I pushed to my repo from the same test branch. As I expected, CI failed this time as shown below.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y8UIMo3C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yv8v9lttloq08jt035ez.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y8UIMo3C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yv8v9lttloq08jt035ez.JPG" alt="failed workflow" width="880" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅Adding tests to another Project
&lt;/h3&gt;

&lt;p&gt;I added a test code to my partner Jun's project and sent a pull request.&lt;br&gt;
Jun used a mock file that I couldn't implement last week. It was difficult to think and add some test code to his project, but it was a very good experience and I also would like to use his idea/code for my SSG project. Jun added almost the same &lt;code&gt;yaml&lt;/code&gt; file as I did, but since he deployed his project with Netlify, Netlify's CI was also run.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HNuG0iOe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wq0pby7m1v7w65d2ee19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HNuG0iOe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wq0pby7m1v7w65d2ee19.png" alt="jun's workflow" width="880" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅Conclusion
&lt;/h3&gt;

&lt;p&gt;I learned about unit testing and e2e testing last week and found testing was very difficult, but GitHub Actions CI Workflow was very easy to set up by following my professor's lecture.&lt;br&gt;
I will continue to study testing. This time I used Node.js for my JavaScript project, but I hope I can practice in different languages ​​and different construction environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗Links
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg"&gt;My SSG repo&lt;/a&gt; | &lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg/pull/25"&gt;My PR to test my CI&lt;/a&gt; | &lt;a href="https://github.com/juuuuuuun/jun-ssg"&gt;Jun's SSG repo&lt;/a&gt; | &lt;a href="https://github.com/juuuuuuun/jun-ssg/pull/21"&gt;My PR on Jun's repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>github</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Testing my Static Site Generator with Jest</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 13 Nov 2021 04:50:56 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/test-my-static-site-generator-with-jest-4o4f</link>
      <guid>https://dev.to/okimotomizuho/test-my-static-site-generator-with-jest-4o4f</guid>
      <description>&lt;p&gt;Up until now, I've focused on adding new features and code to my &lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg"&gt;Static Site Generator(SSG)&lt;/a&gt;, but this time I've implemented a test. Testing helps you manage and evolve your software.&lt;br&gt;
I've learned about Jasmine, Karma, and Mocha in the past, but my SSG uses simple JavaScript so I decided to do a unit test by using &lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;I already installed npm, so I used &lt;code&gt;npm i jest --save-dev&lt;/code&gt; to install Jest.&lt;/p&gt;

&lt;p&gt;I also added the following npm scripts to run a test on the command line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
    "test": "jest --",
    "test:watch": "jest --watch --",
    "coverage": "jest --collectCoverage --"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Jest test
&lt;/h2&gt;

&lt;p&gt;First, I created a test file and wrote about when the style path is not specified.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Argument match tests&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no specified style&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nx"&gt;tempGenerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;language&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;titleName&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;argv_s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&amp;lt;link rel="stylesheet" type="text/css" href="please_add_your_css_path" /&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;describe&lt;/code&gt; can create a block that groups some related tests, so I had two blocks: "Argument match tests" and "Function argument tests", for the file containing the HTML template.&lt;br&gt;
Jest requires using &lt;code&gt;test&lt;/code&gt; which is the actual test block, so I wrote what to &lt;code&gt;expect&lt;/code&gt; to get as an output inside of it.&lt;br&gt;
I added other tests such as: no arguments, missing one argument, argument is a null, and so on.&lt;br&gt;
When I worked on missing one argument my test didn't pass, and I had to change my template JavaScript file and add the code &lt;code&gt;let body = text ?&lt;/code&gt;${text}&lt;code&gt;: "";&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Once all the tests passed, I got this screen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;PS C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\M&lt;/span&gt;izuho&lt;span class="se"&gt;\D&lt;/span&gt;esktop&lt;span class="se"&gt;\O&lt;/span&gt;SD600&lt;span class="se"&gt;\p&lt;/span&gt;ajama-ssg&amp;gt; npm &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; node-ssg@1.0.0 &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; jest &lt;span class="nt"&gt;--&lt;/span&gt;
 PASS  ./tempGenerator.test.js
  Argument match tests
    √ no specified style &lt;span class="o"&gt;(&lt;/span&gt;2 ms&lt;span class="o"&gt;)&lt;/span&gt;
    √ no specified laungage &lt;span class="o"&gt;(&lt;/span&gt;1 ms&lt;span class="o"&gt;)&lt;/span&gt;
    √ no specified title
    √ no specified text &lt;span class="o"&gt;(&lt;/span&gt;1 ms&lt;span class="o"&gt;)&lt;/span&gt;
  Function argument tests
    √ input all arguments &lt;span class="o"&gt;(&lt;/span&gt;1 ms&lt;span class="o"&gt;)&lt;/span&gt;
    √ missing style
    ...
    √ missing all arguments
    √ null arguments
Test Suites: 1 passed, 1 total
Tests:       12 passed, 12 total
Time:        1.046 s
Ran all &lt;span class="nb"&gt;test &lt;/span&gt;suites.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Coverage
&lt;/h2&gt;

&lt;p&gt;I tried Coverage, which I added to the package.json script to make sure it contained as many code path test cases as possible.(&lt;code&gt;npm run coverage&lt;/code&gt;) By running Coverage, you can see how much of the implementation is running during the test run, and more importantly, what parts are missing. I had the following result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;------------------&lt;/span&gt;|---------|----------|---------|---------|-------------------
File              | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line &lt;span class="c"&gt;#s&lt;/span&gt;
&lt;span class="nt"&gt;------------------&lt;/span&gt;|---------|----------|---------|---------|-------------------
All files         |     100 |      100 |     100 |     100 |
 tempGenerator.js |     100 |      100 |     100 |     100 |
&lt;span class="nt"&gt;-----------------------&lt;/span&gt;|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests:       12 passed, 12 total
Snapshots:   0 total
Time:        0.934 s, estimated 1 s
Ran all &lt;span class="nb"&gt;test &lt;/span&gt;suites.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Got stuck 📌
&lt;/h2&gt;

&lt;p&gt;I wanted to try to test if my file system passes the test, so I attempted to implement mock and also _&lt;em&gt;mock&lt;/em&gt;_ folder and fs.js file inside. However, I had this error and it didn't work.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  ● Test suite failed to run
    TypeError: Cannot &lt;span class="nb"&gt;read &lt;/span&gt;properties of undefined &lt;span class="o"&gt;(&lt;/span&gt;reading &lt;span class="s1"&gt;'forEach'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
      54 |
      55 | // Read files/lines
    &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 56 | argv.i.forEach&lt;span class="o"&gt;((&lt;/span&gt;input&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
         |        ^
      57 |   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(!&lt;/span&gt;fs.existsSync&lt;span class="o"&gt;(&lt;/span&gt;input&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      58 |     console.error&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Input is not a file or directory!"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      59 |     &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I searched around but I couldn't find any solutions, I just found npm mock-fs is one of the options to use mock easier. I hope I can figure it out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I have done testing for React components before, but I received feedback that testing wasn't enough. I learned testing is very important but difficult depending on the situation. I only added small unit testing this time, so I would like to try integration testing too. I'm going to be a Quality Assurance Analyst as a Co-op from January, so I will definitely continue to work on this👩‍💻&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>programming</category>
      <category>testing</category>
    </item>
    <item>
      <title>Use Static Analysis tools to my Static Site Generator</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 06 Nov 2021 03:16:58 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/use-static-analysis-tools-to-my-static-site-generator-7bj</link>
      <guid>https://dev.to/okimotomizuho/use-static-analysis-tools-to-my-static-site-generator-7bj</guid>
      <description>&lt;p&gt;Static analysis tools help maintain the quality of your source code by fixing formatting issues, finding suspicious coding structures, and alerting you to common errors.&lt;br&gt;
I added &lt;a href="https://prettier.io/"&gt;Prettier&lt;/a&gt; and &lt;a href="https://eslint.org/"&gt;ESLint&lt;/a&gt; to my Static Site Generator(SSG) using JavaScript, so I would like to show how I implemented them step by step.&lt;/p&gt;
&lt;h2&gt;
  
  
  1️⃣Add a Source Code Formatter: Prettier
&lt;/h2&gt;

&lt;p&gt;Prettier is one of the tools for applying a consistent code style throughout your code base.&lt;br&gt;
First of all, I set it up as follows using npm.&lt;br&gt;
&lt;code&gt;npm install --save-dev --save-exact prettier&lt;/code&gt;&lt;br&gt;
Second, I created a prettierignore file directly under the project and added the following files that do not need to be formatted.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Ignore artifacts:
build
coverage
node_modules
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also created prettierrc.json file and added a Basic Configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "trailingComma": "es5",
  "tabWidth": 4,
  "semi": false,
  "singleQuote": true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Third, I added the following script inside my package.json so that Prettier can be executed in one step from the command line.&lt;br&gt;
&lt;code&gt;"prettier": "npx prettier --write ."&lt;/code&gt; &lt;br&gt;
Finally, I ran Prettier with &lt;code&gt;npm run prettier&lt;/code&gt;, and it fixed my format based on the configurations above.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; node-ssg@1.0.0 prettier
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; npx prettier &lt;span class="nt"&gt;--write&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
dist&lt;span class="se"&gt;\t&lt;/span&gt;est.html 137ms
doc&lt;span class="se"&gt;\t&lt;/span&gt;est.md 84ms
index.html 471ms
package-lock.json 172ms
package.json 17ms
pajama-ssg.js 271ms
README.md 101ms
tempGenerator.js 11ms
yargsConfig.js 17ms
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After I checked if my program still worked, and it was perfect! Yay!😇&lt;/p&gt;

&lt;h2&gt;
  
  
  2️⃣Add a Linter: ESList
&lt;/h2&gt;

&lt;p&gt;ESLint aims to improve code consistency and avoid bugs. Open Source projects can involve multiple people in a project so it's a very useful tool.&lt;br&gt;
Again, I started with the installation with npm.&lt;br&gt;
&lt;code&gt;npm install eslint --save-dev&lt;/code&gt;&lt;br&gt;
Next, I set the configuration file using the --init flag(&lt;code&gt;npx eslint --init&lt;/code&gt;).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;PS C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\M&lt;/span&gt;izuho&lt;span class="se"&gt;\D&lt;/span&gt;esktop&lt;span class="se"&gt;\O&lt;/span&gt;SD600&lt;span class="se"&gt;\p&lt;/span&gt;ajama-ssg&amp;gt; npx eslint &lt;span class="nt"&gt;--init&lt;/span&gt;
√ How would you like to use ESLint? · problems
√ What &lt;span class="nb"&gt;type &lt;/span&gt;of modules does your project use? · esm
√ Which framework does your project use? · none
√ Where does your code run? · browser
√ What format &lt;span class="k"&gt;do &lt;/span&gt;you want your config file to be &lt;span class="k"&gt;in&lt;/span&gt;? · JavaScript
Successfully created .eslintrc.js file &lt;span class="k"&gt;in &lt;/span&gt;C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\M&lt;/span&gt;izuho&lt;span class="se"&gt;\D&lt;/span&gt;esktop&lt;span class="se"&gt;\O&lt;/span&gt;SD600&lt;span class="se"&gt;\p&lt;/span&gt;ajama-ssg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From  --init flag, it created .eslintrc.js file for me with the code below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;browser&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;commonjs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;es2021&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;extends&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;eslint:recommended&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;parserOptions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;ecmaVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I added this &lt;code&gt;"semi": ["error", "always"]&lt;/code&gt; inside the &lt;code&gt;rules&lt;/code&gt; to enforce consistent use of semicolons.&lt;/p&gt;

&lt;p&gt;Like Prettier, by creating .eslintignore file in the root directory, I instructed ESLint to ignore certain files and directories.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Ignore the build directories for next
build
coverage
package.json
package-lock
node_modules
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And I added the following to the package.json file to easily run ESLint from the command line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"eslint": "eslint --config .eslintrc.js",
"lint": "npm run eslint",
"eslint-fix": "eslint --config .eslintrc.js --fix"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I used the above options based on the official site, and a lecture by my professor. &lt;br&gt;
&lt;code&gt;--f&lt;/code&gt;: "This option instructs ESLint to try to fix as many issues as possible. The fixes are made to the actual files themselves and only the remaining unfixed issues are output."&lt;br&gt;
&lt;code&gt;-c, --config&lt;/code&gt;: "This option allows you to specify an additional configuration file for ESLint (see Configuring ESLint for more)." There are many other options on the official site: &lt;a href="https://eslint.org/docs/user-guide/command-line-interface"&gt;https://eslint.org/docs/user-guide/command-line-interface&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I ran ESLint &lt;code&gt;npx eslint .&lt;/code&gt;, and I got many errors...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   19:11  error  &lt;span class="s1"&gt;'removeDir'&lt;/span&gt; is not defined  no-undef
   49:5   error  &lt;span class="s1"&gt;'process'&lt;/span&gt; is not defined    no-undef
   64:5   error  &lt;span class="s1"&gt;'files'&lt;/span&gt; is not defined      no-undef
   89:17  error  &lt;span class="s1"&gt;'process'&lt;/span&gt; is not defined    no-undef
   97:13  error  &lt;span class="s1"&gt;'lines'&lt;/span&gt; is already defined  no-redeclare
   98:13  error  &lt;span class="s1"&gt;'title'&lt;/span&gt; is already defined  no-redeclare
    ...
   2:18  error  &lt;span class="s1"&gt;'tempGenerate'&lt;/span&gt; is not defined  no-undef
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I didn't notice that I already declared 'lines' and 'title', so I deleted &lt;code&gt;var&lt;/code&gt; for the error.&lt;br&gt;
I added &lt;code&gt;/* global process, files process */&lt;/code&gt; on top of the main JavaScript file. However, 'removeDir' became an error and my program had an error and couldn't run.&lt;br&gt;
I've searched everywhere to fix the problem and I decided to add this instead &lt;code&gt;/* eslint-disable no-undef */&lt;/code&gt;, and it ran without errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  3️⃣Editor Integration: adding .vscode folder
&lt;/h2&gt;

&lt;p&gt;I created a .vscode folder that shares settings, task configurations, and debug configurations and integrates tools with the Visual Studio Code. I stored extensions.json and settings.json in it. In extensions.json, I added extensions inside the  Recommendation and added user and workspace settings to settings.json.(my .vscode folder&lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg/tree/main/.vscode"&gt;https://github.com/MizuhoOkimoto/pajama-ssg/tree/main/.vscode&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  4️⃣Add a CINTRIBUTING.md and Update README.md
&lt;/h2&gt;

&lt;p&gt;For future contributors, I added a CONTRIBUTING.md file and updated README.md file as well. &lt;/p&gt;

&lt;h2&gt;
  
  
  5️⃣Squash, Commit, Merge, Push
&lt;/h2&gt;

&lt;p&gt;I checked if my project still worked and pushed it. However, I was working on this project after I finished 3 jobs and it was very late. My brain didn't work properly and I made mistakes again when I rebase and I even lost my changes 🙉 I have decided to watch some lectures again and check the documents as well. Phew... I had to make other commits and squash, but I could implement tools and configurations!😇&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅Conclusion
&lt;/h2&gt;

&lt;p&gt;I installed Prettier and ESLint as a extension on my Visual Studio Code, but I didn't know how they work or how to use/share them with other people. I'm really enjoying to keep my project updated. I would like to add huskey(Git Pre-Commit Hook) too, at some point! &lt;/p&gt;

&lt;p&gt;Links🔗&lt;br&gt;
&lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg"&gt;Pajama-ssg&lt;/a&gt; | &lt;a href="https://prettier.io/"&gt;Prettier&lt;/a&gt; | &lt;a href="https://eslint.org/"&gt;ESLint&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.toConfiguring%20ESLint"&gt;Configuring ESLint&lt;/a&gt; | &lt;a href="https://code.visualstudio.com/docs/getstarted/settings"&gt;VSC:User and Workspace Settings&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Photo by Dan-Cristian Pădureț on Unsplash)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>git</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Hacktoberfest 2021! My third contribution</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Mon, 01 Nov 2021 02:47:30 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/hacktoberfest-2021-my-third-contribution-5h51</link>
      <guid>https://dev.to/okimotomizuho/hacktoberfest-2021-my-third-contribution-5h51</guid>
      <description>&lt;p&gt;It's the final week of October, and I finally found an issue that I could work on. I would like to introduce this project and what I have learned from it, as it's a little larger than my two previous organizations that I have contributed to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project
&lt;/h2&gt;

&lt;p&gt;This project is called &lt;a href="https://github.com/cisco-sbg-ui/atomic-react"&gt;Atomic-React&lt;/a&gt; which is a React library that implements UI components according to Atomic design specifications. Developers are able to have features such as Flexible, tree-shakable components, Full documentation, Auto-import, and many others.&lt;/p&gt;

&lt;h2&gt;
  
  
  Issue
&lt;/h2&gt;

&lt;p&gt;The issue (&lt;a href="https://github.com/cisco-sbg-ui/atomic-react/issues/987"&gt;#987&lt;/a&gt;) pointed out was about displaying scroll tabs, where when you clicked on a tab, the line at the top disappeared.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z8xDhnPg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/45c1yimkk1er2fy0p2a4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z8xDhnPg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/45c1yimkk1er2fy0p2a4.png" alt="Issue" width="524" height="89"&gt;&lt;/a&gt; One of the repository's owners specified how to make the change, so it wasn't difficult to fix except finding the particular file.&lt;/p&gt;
&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;I added padding top 1px to the SCSS below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nt"&gt;--scrolling&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="err"&gt;.a-tab-group__tab-wrapper&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt;
      &lt;span class="nl"&gt;white-space&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;nowrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;hidden&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;nowrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The padding fixed the issue:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FvJWtJcS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wf6alw8t0wnx0xyfneyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FvJWtJcS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wf6alw8t0wnx0xyfneyi.png" alt="after adding the code" width="817" height="372"&gt;&lt;/a&gt;&lt;br&gt;
I've never used SCSS, so I was a little confused about how to use &amp;amp;(ampersand).　My understanding is SCSS(Sassy Cascading Style Sheets) is a special type of file for SASS, a program written in Ruby that assembles CSS style sheets for a browser. SCSS is like CSS with better formatting. SASS's &amp;amp; (ampersand) is basically a function that allows you to "reference the parent selector". Parent selector reference is a function that describes in CSS after compilation so that when written using the "nested function", the "selector one level above" is copied as it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make a Pull Request
&lt;/h2&gt;

&lt;p&gt;This time, I was careful about branch/commit/push. Their link to the contribution was broken, but I was able to find how people made commit messages.&lt;br&gt;
However, I had a question about the contents of the issue. &lt;br&gt;
It said "&lt;em&gt;Additional context: After the change is made, the GitHub action workflow Update Snapshots needs run on the published branch, and that should update the visual regression test assets.&lt;/em&gt;"&lt;/p&gt;

&lt;p&gt;I couldn't understand the meaning so I asked the person who filed the issue. The person kindly explained to me how to check:&lt;/p&gt;

&lt;p&gt;"&lt;em&gt;So when you add the PR the tests will run and should fail because the snapshot images will be different. Those snapshot images are updated via GitHub action. I took a screenshot from over in the Actions tab. On the left side, click "Update Snapshots" and then on the right side choose your branch. When the workflow runs, it'll update the snapshots and commit the change to the branch you selected.&lt;/em&gt;"&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1nGGgIg8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/grpp1cusgq4pnvvqm1h0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1nGGgIg8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/grpp1cusgq4pnvvqm1h0.jpg" alt="Explain for the workflow" width="753" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I still wasn't sure, but as the person said I made a PR, and checked Action, and updated the snapshot.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cujYJNzx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zvsus258h4wta8eh685b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cujYJNzx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zvsus258h4wta8eh685b.png" alt="snapshot" width="880" height="268"&gt;&lt;/a&gt;&lt;br&gt;
I searched about workflow, but do not fully understand it yet, so please share your knowledge about it with me. After I ask my professor, I will update here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This time, both the filing issue and making a PR had some rules to maintain for the project. It was interesting, but I also thought I needed to expand my knowledge. I was surprised that people in this open-source community were nice. Even though Hactoberfest is almost over, but contribution never ends. I'm still looking for one more issue to complete my goal(4PRs) this month. If you have any recommendations to find repos or know something helpful about it (especially JavaScript), please feel free to comment below💌&lt;/p&gt;

&lt;p&gt;(Photo by Tony Hand on Unsplash)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>hacktoberfest</category>
      <category>github</category>
    </item>
    <item>
      <title>Open Source: Copy a Cool Feature from Docusaurus</title>
      <dc:creator>MizuhoOkimoto</dc:creator>
      <pubDate>Sat, 30 Oct 2021 02:52:18 +0000</pubDate>
      <link>https://dev.to/okimotomizuho/open-source-copy-a-cool-feature-from-docusaurus-f74</link>
      <guid>https://dev.to/okimotomizuho/open-source-copy-a-cool-feature-from-docusaurus-f74</guid>
      <description>&lt;p&gt;Has anyone used Docusaurus before? I hadn't until this week!🙉&lt;br&gt;
I would like to introduce what Docusaurus is, what I learned and implemented from it, and next steps for the future.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Docusaurus?
&lt;/h2&gt;

&lt;p&gt;Docusaurus is a Open Source project built by Facebook(Meta?) which provides a great Static Site Generator(SSG). According to the &lt;a href="https://docusaurus.io/blog/2017/12/14/introducing-docusaurus"&gt;official website&lt;/a&gt;, Docusaurus is a "tool designed to make it easy for teams to publish documentation websites without having to worry about the infrastructure and design details." &lt;br&gt;
Those teams would create the document website which is built on the same SSG, so each team does not have to build styles and navigation with different specifications, and makes it consistent and easy to maintain. Docusaurus also has a lot of features, so it's very flexible.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tried Docusaurus tutorials and features!
&lt;/h2&gt;

&lt;p&gt;It has a walk-through style tutorial that lets you build a website in less than 5 minutes(I took 10 mins😂). Using a classic template, I created a React page easily. The main features are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a Document&lt;/li&gt;
&lt;li&gt;Create a Blog Post&lt;/li&gt;
&lt;li&gt;Markdown Features &lt;/li&gt;
&lt;li&gt;Configurable Sidebar&lt;/li&gt;
&lt;li&gt;Deploy your site&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, it has more features such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Theme&lt;/li&gt;
&lt;li&gt;Search Engine Optimization (SEO), including meta tags in the HTML head&lt;/li&gt;
&lt;li&gt;Static Assets for images, stylesheets, favicons etc.&lt;/li&gt;
&lt;li&gt;Plugins&lt;/li&gt;
&lt;li&gt;Versioning &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The list goes on and on, so I will post a link &lt;a href="https://docusaurus.io/docs/markdown-features"&gt;here&lt;/a&gt; again.&lt;/p&gt;
&lt;h2&gt;
  
  
  Plan my Feature and File Issues
&lt;/h2&gt;

&lt;p&gt;I planned what I would implement to my &lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg"&gt;SSG&lt;/a&gt; by copying one of their features. I decided to work on Full Markdown support, changing the theme, static assets for stylesheets, and filed those issues on my repo.&lt;/p&gt;
&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;I searched "node markdown to html" and I found &lt;a href="https://www.npmjs.com/package/markdown-it"&gt;markdown-it&lt;/a&gt;. It said "Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins &amp;amp; high speed(&lt;a href="https://github.com/markdown-it/markdown-it"&gt;GitHub repo&lt;/a&gt;)". It was perfect for mine, so I installed it and implemented their "classic" way on my main js file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;MarkdownIt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;markdown-it&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;md&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;MarkdownIt&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="c1"&gt;// when input .md file&lt;/span&gt;
&lt;span class="nx"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;md&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;template&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tempGenerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;l&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;titleName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Comparing to the previous code, I was able to reduce some code below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;line&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))).&lt;/span&gt;&lt;span class="nx"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
   &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="kd"&gt;get&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s2"&gt;`\n&amp;lt;i&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/i&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;line&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))).&lt;/span&gt;&lt;span class="nx"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="kd"&gt;get&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s2"&gt;`\n&amp;lt;b&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/b&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;---&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="kd"&gt;get&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;---&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;&amp;lt;hr&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s2"&gt;`\n&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
     &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s2"&gt;`\n&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/p&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;npm has what I'm looking for and it's very interesting. This time it was markdown support, but I thought there might be something else I could use for my SSG.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployment
&lt;/h2&gt;

&lt;p&gt;When I deployed my Docusaurus sample page, even though I was following this &lt;a href="https://docusaurus.io/docs/deployment"&gt;deployment guide&lt;/a&gt;, I got the 404 page. The reasons why it didn't work were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I had &amp;lt; &amp;gt; when I set up GIT_USER, like this: &lt;code&gt;cmd /C "set "GIT_USER=&amp;lt;MizuhoOkimoto&amp;gt;" &amp;amp;&amp;amp; yarn deploy"&lt;/code&gt;. The correct command was &lt;code&gt;cmd /C "set "GIT_USER=MizuhoOkimoto" &amp;amp;&amp;amp; yarn deploy"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;When I run the above command, it created &lt;code&gt;gh-pages&lt;/code&gt; branch automatically like below, and I needed to set up the source from that branch instead of the main branch.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Deploy &lt;span class="nb"&gt;command &lt;/span&gt;invoked...
main
organizationName: MizuhoOkimoto
projectName: Docusaurus_sample
deploymentBranch: gh-pages
Remote branch: https://MizuhoOkimoto@github.com/MizuhoOkimoto/Docusaurus_sample.git
https://github.com/MizuhoOkimoto/Docusaurus_sample.git
e088072c3fdc9f7fec6d107c52acdbe7e66fc659
...
Website is live at &lt;span class="s2"&gt;"https://MizuhoOkimoto.github.io/Docusaurus_sample/"&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Done &lt;span class="k"&gt;in &lt;/span&gt;70.97s.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the Pages setting on my repo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MCoNN3yt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6fneff6zi105k5gf1ab6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MCoNN3yt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6fneff6zi105k5gf1ab6.png" alt="page setting" width="880" height="481"&gt;&lt;/a&gt; I appreciate your help again, Anatoliy🌟&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I planned implementing another 2 features as well which are adding themes and SEO within 2 weeks, but they were tougher than I thought. For the SEO, I'm working on changing my template(tempGenerator.js). However, I have no clue for the theme since I was going to copy from Docusaurus, but that was for React, so I will try to implement it in a different way.&lt;br&gt;
If you have any good ideas, please message me or you're welcome to Pull Request! 🙋&lt;/p&gt;

&lt;h3&gt;
  
  
  👀Links👀
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;My pajama-ssg repo: &lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg"&gt;https://github.com/MizuhoOkimoto/pajama-ssg&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Issue: &lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg/issues/21"&gt;Issue-21&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Commit: &lt;a href="https://github.com/MizuhoOkimoto/pajama-ssg/commit/a4433b494c3b14738b800a551d504bc6c80016a7"&gt;a4433b4&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;My Docusaurus sample page: &lt;a href="https://mizuhookimoto.github.io/Docusaurus_sample/"&gt;https://mizuhookimoto.github.io/Docusaurus_sample/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;My Docusaurus repo: &lt;a href="https://github.com/MizuhoOkimoto/Docusaurus_sample"&gt;https://github.com/MizuhoOkimoto/Docusaurus_sample&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(Photo by Daniel Cheung on Unsplash)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>git</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
