<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Nam Hoang Le</title>
    <description>The latest articles on Forem by Nam Hoang Le (@namhle).</description>
    <link>https://forem.com/namhle</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%2F403097%2F484054a9-fc4c-4172-8fa0-f609715dde1c.jpeg</url>
      <title>Forem: Nam Hoang Le</title>
      <link>https://forem.com/namhle</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/namhle"/>
    <language>en</language>
    <item>
      <title>The best Wikipedia Clone</title>
      <dc:creator>Nam Hoang Le</dc:creator>
      <pubDate>Wed, 01 Jul 2020 05:22:17 +0000</pubDate>
      <link>https://forem.com/namhle/wikipedia-clone-3a0</link>
      <guid>https://forem.com/namhle/wikipedia-clone-3a0</guid>
      <description>&lt;h2&gt;
  
  
  About The Project
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/strong&gt; is a multilingual online encyclopedia created and maintained as an open collaboration project by a community of volunteer editors using a wiki-based editing system. It is the largest and most popular general reference work on the World Wide Web. - Wikipedia&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To make it more readable and useful, I decided to redesign it completely with the knowledge I learned when use React.&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7IqwhdFk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/28835226/86202185-c1883980-bb8b-11ea-9a58-88e7713f875d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7IqwhdFk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/28835226/86202185-c1883980-bb8b-11ea-9a58-88e7713f875d.png" width="880" height="485"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HUpS4TvL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/28835226/86202426-61de5e00-bb8c-11ea-8816-292aba527c26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HUpS4TvL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/28835226/86202426-61de5e00-bb8c-11ea-8816-292aba527c26.png" width="512" height="1110"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Live Tooltip for quick references&lt;/li&gt;
&lt;li&gt;Syntax highlighting&lt;/li&gt;
&lt;li&gt;Dark/Light mode&lt;/li&gt;
&lt;li&gt;Mobile/desktop mode&lt;/li&gt;
&lt;li&gt;Bottom Navigation Bar&lt;/li&gt;
&lt;li&gt;Live Search Bar&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;Fetch &lt;a href="https://en.wikipedia.org/wiki/Help:Wikitext"&gt;Wikitext&lt;/a&gt; format (unparsed) from &lt;a href="https://www.mediawiki.org/wiki/API:Main_page"&gt;MediaWiki API&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Feed content into self-implemented &lt;a href="https://develop"&gt;Wikitext Parser&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Use awesome &lt;a href="https://reactjs.org"&gt;React&lt;/a&gt; library to render real web pages.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Installation &amp;amp; Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To clone and run this application, you'll need &lt;a href="https://git-scm.com"&gt;Git&lt;/a&gt; and &lt;a href="https://nodejs.org/en/download/"&gt;Node.js&lt;/a&gt; (which comes with &lt;a href="http://npmjs.com"&gt;npm&lt;/a&gt;) installed on your computer. From your command line:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone this repository&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/nam288/WikiClonia.git

&lt;span class="c"&gt;# Go into the repository&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;WikiClonia

&lt;span class="c"&gt;# Install dependencies&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Run the app&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Open favorite browser and go to &lt;code&gt;http://localhost:3000/[article-name]&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://master.d1sss67267jb3h.amplifyapp.com/JavaScript"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;p&gt;See the &lt;a href="https://github.com/nam288/WikiClonia/issues"&gt;open issues&lt;/a&gt; for a list of proposed features (and known issues).&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are &lt;strong&gt;greatly appreciated&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork the Project&lt;/li&gt;
&lt;li&gt;Create your Feature Branch (&lt;code&gt;git checkout -b feature/AmazingFeature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Commit your Changes (&lt;code&gt;git commit -m 'Add some AmazingFeature'&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Push to the Branch (&lt;code&gt;git push origin feature/AmazingFeature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Open a Pull Request&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.wikipedia.org"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://reactjs.org"&gt;React JS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://prettier.io"&gt;Prettier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://prismjs.com"&gt;Prism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/convert-units"&gt;Convert Unit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/react-spinners"&gt;React Spinners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/lazysizes"&gt;Lazysizes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  React
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How to use React hooks: useState, useEffect and its dependencies to subcribe event and make APIs call, self-implemented custom hooks as well as Context API, DOM Element API&lt;/li&gt;
&lt;li&gt;How React Router really works.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  CSS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;CSS variables&lt;/li&gt;
&lt;li&gt;Responsive Typography&lt;/li&gt;
&lt;li&gt;Dynamic grid&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  DevOps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Testing with Jest&lt;/li&gt;
&lt;li&gt;Custom Webpack&lt;/li&gt;
&lt;li&gt;Deploy with AWS Amplify with custom Redirects&lt;/li&gt;
&lt;li&gt;Git for developing new features&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Source Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/nam288/WikiClonia"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>parser</category>
    </item>
  </channel>
</rss>
