| 
									
										
										
										
											2020-04-06 17:47:40 +05:30
										 |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html lang="en"> | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |   <head> | 
					
						
							|  |  |  |     <meta charset="UTF-8" /> | 
					
						
							|  |  |  |     <title>Contribution Guidelines | freeCodeCamp.org</title> | 
					
						
							|  |  |  |     <link rel="icon" href="images/branding/favicon.ico" /> | 
					
						
							|  |  |  |     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> | 
					
						
							|  |  |  |     <meta name="description" content="Description" /> | 
					
						
							|  |  |  |     <meta | 
					
						
							|  |  |  |       name="viewport" | 
					
						
							|  |  |  |       content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" | 
					
						
							|  |  |  |     /> | 
					
						
							|  |  |  |     <!--social--> | 
					
						
							|  |  |  |     <meta content="freeCodeCamp.org" name="og:title" /> | 
					
						
							|  |  |  |     <meta content="Learn to code — for free." name="og:description" /> | 
					
						
							|  |  |  |     <meta | 
					
						
							|  |  |  |       content="https://cdn.freecodecamp.org/platform/universal/fcc_meta_1920x1080-indigo.png" | 
					
						
							|  |  |  |       property="og:image" | 
					
						
							|  |  |  |     /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <meta | 
					
						
							|  |  |  |       content="summary_large_image" | 
					
						
							|  |  |  |       key="twitter:card" | 
					
						
							|  |  |  |       name="twitter:card" | 
					
						
							|  |  |  |     /> | 
					
						
							|  |  |  |     <meta | 
					
						
							|  |  |  |       content="https://cdn.freecodecamp.org/platform/universal/fcc_meta_1920x1080-indigo.png" | 
					
						
							|  |  |  |       name="twitter:image:src" | 
					
						
							|  |  |  |     /> | 
					
						
							|  |  |  |     <meta content="freeCodeCamp.org" name="twitter:title" /> | 
					
						
							|  |  |  |     <meta content="Learn to code — for free." name="twitter:description" /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <link | 
					
						
							|  |  |  |       rel="stylesheet" | 
					
						
							| 
									
										
										
										
											2021-08-09 12:50:16 +02:00
										 |  |  |       href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" | 
					
						
							|  |  |  |       integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |       crossorigin="anonymous" | 
					
						
							|  |  |  |     /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- Theme --> | 
					
						
							|  |  |  |     <!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple.css"> --> | 
					
						
							|  |  |  |     <link | 
					
						
							|  |  |  |       rel="stylesheet" | 
					
						
							|  |  |  |       href="https://cdn.jsdelivr.net/npm/docsify/themes/vue.css" | 
					
						
							|  |  |  |     /> | 
					
						
							|  |  |  |     <!-- Custom theme stylesheet --> | 
					
						
							|  |  |  |     <link rel="stylesheet" href="_theme.css" /> | 
					
						
							|  |  |  |   </head> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <body class="close"> | 
					
						
							|  |  |  |     <!-- Navigation (we are using a div, instead of nav to avoid conflict with docsify's nav) --> | 
					
						
							|  |  |  |     <div class="universal-nav"> | 
					
						
							|  |  |  |       <a class="app-name-link" data-nosearch="" href="/"> | 
					
						
							|  |  |  |         <img alt="freeCodeCamp.org" src="images/branding/primary_logo.svg" /> | 
					
						
							|  |  |  |       </a> | 
					
						
							|  |  |  |       <a class="translations-link" data-nosearch="" href="/#/i18n"> | 
					
						
							|  |  |  |         Translations | 
					
						
							|  |  |  |       </a> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- App with its own nav, search and sidebar --> | 
					
						
							|  |  |  |     <div id="app"></div> | 
					
						
							|  |  |  |     <script> | 
					
						
							|  |  |  |       window.$docsify = { | 
					
						
							|  |  |  |         homepage: 'index', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         relativePath: true, | 
					
						
							|  |  |  |         // common aliases | 
					
						
							|  |  |  |         alias: { | 
					
						
							|  |  |  |           '.*/_navbar.md': '/_navbar.md', | 
					
						
							|  |  |  |           '/i18n/?': '/_translations.md' | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // break the caching | 
					
						
							|  |  |  |         requestHeaders: { | 
					
						
							|  |  |  |           'cache-control': 'no-cache' | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Cover Page | 
					
						
							|  |  |  |         coverpage: true, | 
					
						
							|  |  |  |         onlyCover: true, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Navigation | 
					
						
							|  |  |  |         autoHeader: true, | 
					
						
							|  |  |  |         auto2top: true, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         loadSidebar: true, | 
					
						
							|  |  |  |         maxLevel: 2, | 
					
						
							|  |  |  |         subMaxLevel: 2, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         topMargin: 90, | 
					
						
							| 
									
										
										
										
											2020-04-06 17:47:40 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |         // we do not use the built in navbar other then in mobile view | 
					
						
							|  |  |  |         loadNavbar: true, | 
					
						
							|  |  |  |         mergeNavbar: true, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Plugins | 
					
						
							|  |  |  |         search: { | 
					
						
							|  |  |  |           depth: 3, | 
					
						
							|  |  |  |           noData: 'No results!', | 
					
						
							|  |  |  |           placeholder: 'Search...' | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Add languages here for message box translations | 
					
						
							|  |  |  |         flexibleAlerts: { | 
					
						
							| 
									
										
										
										
											2021-03-08 22:00:31 -08:00
										 |  |  |           note: { | 
					
						
							|  |  |  |             label: { | 
					
						
							|  |  |  |               '/i18n/chinese/': '注意', | 
					
						
							|  |  |  |               '/i18n/espanol/': 'Nota', | 
					
						
							| 
									
										
										
										
											2021-06-25 20:08:23 +02:00
										 |  |  |               '/i18n/italian/': 'Nota', | 
					
						
							| 
									
										
										
										
											2021-08-04 12:06:27 -03:00
										 |  |  |               '/i18n/portuguese/': 'Observação', | 
					
						
							| 
									
										
										
										
											2021-03-08 22:00:31 -08:00
										 |  |  |               '/': 'Note' | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |           }, | 
					
						
							|  |  |  |           tip: { | 
					
						
							|  |  |  |             label: { | 
					
						
							|  |  |  |               '/i18n/chinese/': '提示', | 
					
						
							|  |  |  |               '/i18n/espanol/': 'Sugerencia', | 
					
						
							| 
									
										
										
										
											2021-06-25 20:08:23 +02:00
										 |  |  |               '/i18n/italian/': 'Suggerimento', | 
					
						
							| 
									
										
										
										
											2021-08-04 12:06:27 -03:00
										 |  |  |               '/i18n/portuguese/': 'Dica', | 
					
						
							| 
									
										
										
										
											2021-03-08 22:00:31 -08:00
										 |  |  |               '/': 'Tip' | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |           }, | 
					
						
							|  |  |  |           warning: { | 
					
						
							|  |  |  |             label: { | 
					
						
							|  |  |  |               '/i18n/chinese/': '警告', | 
					
						
							|  |  |  |               '/i18n/espanol/': 'Advertencia', | 
					
						
							| 
									
										
										
										
											2021-06-25 20:08:23 +02:00
										 |  |  |               '/i18n/italian/': 'Avviso', | 
					
						
							| 
									
										
										
										
											2021-08-04 12:06:27 -03:00
										 |  |  |               '/i18n/portuguese/': 'Aviso', | 
					
						
							| 
									
										
										
										
											2021-03-08 22:00:31 -08:00
										 |  |  |               '/': 'Warning' | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |           }, | 
					
						
							|  |  |  |           attention: { | 
					
						
							|  |  |  |             label: { | 
					
						
							|  |  |  |               '/i18n/chinese/': '注意', | 
					
						
							|  |  |  |               '/i18n/espanol/': 'Atención', | 
					
						
							| 
									
										
										
										
											2021-06-25 20:08:23 +02:00
										 |  |  |               '/i18n/italian/': 'Attenzione', | 
					
						
							| 
									
										
										
										
											2021-08-04 12:06:27 -03:00
										 |  |  |               '/i18n/portuguese/': 'Atenção', | 
					
						
							| 
									
										
										
										
											2021-03-08 22:00:31 -08:00
										 |  |  |               '/': 'Attention' | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2020-04-06 17:47:40 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |         pagination: { | 
					
						
							|  |  |  |           crossChapter: true | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2020-10-04 03:54:52 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |         remoteMarkdown: { | 
					
						
							|  |  |  |           tag: 'remote-markdown-url' | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2020-10-02 04:07:20 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |         plugins: [ | 
					
						
							|  |  |  |           function (hook, vm) { | 
					
						
							|  |  |  |             hook.beforeEach(function (markdown) { | 
					
						
							|  |  |  |               // -- ignore the translations list page | 
					
						
							|  |  |  |               if (vm.route.file === '_translations.md') return markdown; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |               // -- add "Update this translation" link for all i18n language pages | 
					
						
							|  |  |  |               if (vm.route.path.search('i18n') !== -1) { | 
					
						
							|  |  |  |                 var dynamicText = | 
					
						
							|  |  |  |                   '[<i class="far fa-edit"></i> Update the translation](' + | 
					
						
							|  |  |  |                   'https://translate.freecodecamp.org/contributing-docs' + | 
					
						
							|  |  |  |                   ') or [visit the English version](' + | 
					
						
							|  |  |  |                   '/' + | 
					
						
							|  |  |  |                   vm.route.path.split('/').pop() + | 
					
						
							|  |  |  |                   ') of this guide to update instructions.'; | 
					
						
							| 
									
										
										
										
											2020-10-04 04:40:56 +05:30
										 |  |  |               } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |               // -- add "Edit this guide on GitHub" link for all English language pages | 
					
						
							|  |  |  |               if (vm.route.path.search('i18n') === -1) { | 
					
						
							|  |  |  |                 var dynamicText = | 
					
						
							|  |  |  |                   '[<i class="far fa-edit"></i> Edit this guide on GitHub](' + | 
					
						
							|  |  |  |                   'https://github.com/freeCodeCamp/freeCodeCamp/blob/main/docs/' + | 
					
						
							|  |  |  |                   vm.route.file + | 
					
						
							|  |  |  |                   ')'; | 
					
						
							| 
									
										
										
										
											2020-11-30 00:30:30 +07:00
										 |  |  |               } | 
					
						
							| 
									
										
										
										
											2020-04-21 06:56:45 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |               // Used from https://github.com/ckoliber/docsify-rtl/blob/master/build/docsify-rtl.js, | 
					
						
							|  |  |  |               // Currently this is a hack because can't use the plugin as is. | 
					
						
							|  |  |  |               if ( | 
					
						
							|  |  |  |                 vm.route.path.search('Arabic') !== -1 || | 
					
						
							|  |  |  |                 vm.route.path.search('Hebrew') !== -1 | 
					
						
							|  |  |  |               ) { | 
					
						
							|  |  |  |                 for ( | 
					
						
							|  |  |  |                   var counter = 0, | 
					
						
							|  |  |  |                     elements = | 
					
						
							|  |  |  |                       document.getElementsByClassName('markdown-section'); | 
					
						
							|  |  |  |                   counter < elements.length; | 
					
						
							|  |  |  |                   counter++ | 
					
						
							|  |  |  |                 ) { | 
					
						
							|  |  |  |                   var item = elements[counter]; | 
					
						
							|  |  |  |                   item.dir = 'rtl'; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |               } | 
					
						
							| 
									
										
										
										
											2020-04-06 17:47:40 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |               if ( | 
					
						
							|  |  |  |                 vm.route.path.search('Arabic') === -1 && | 
					
						
							|  |  |  |                 vm.route.path.search('Hebrew') === -1 | 
					
						
							|  |  |  |               ) { | 
					
						
							|  |  |  |                 for ( | 
					
						
							|  |  |  |                   var counter = 0, | 
					
						
							|  |  |  |                     elements = | 
					
						
							|  |  |  |                       document.getElementsByClassName('markdown-section'); | 
					
						
							|  |  |  |                   counter < elements.length; | 
					
						
							|  |  |  |                   counter++ | 
					
						
							|  |  |  |                 ) { | 
					
						
							|  |  |  |                   var item = elements[counter]; | 
					
						
							|  |  |  |                   item.dir = 'ltr'; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |               } | 
					
						
							| 
									
										
										
										
											2020-10-22 16:08:04 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |               return markdown + '\n----\n' + dynamicText; | 
					
						
							|  |  |  |               // -- do not add logic below this line -- | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |     </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- Theme --> | 
					
						
							|  |  |  |     <!-- <script src="https://cdn.jsdelivr.net/npm/docsify-themeable@0"></script> --> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- Plugins --> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.min.js"></script> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.min.js"></script> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/docsify-copy-code@2"></script> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.js"></script> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/docsify-plugin-flexible-alerts@1"></script> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/components/prism-jsx.min.js"></script> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/components/prism-typescript.min.js"></script> | 
					
						
							|  |  |  |     <script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/components/prism-tsx.min.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <script src="https://unpkg.com/docsify-pagination/dist/docsify-pagination.min.js"></script> | 
					
						
							|  |  |  |     <script src="https://unpkg.com/docsify-remote-markdown/dist/docsify-remote-markdown.min.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <script | 
					
						
							| 
									
										
										
										
											2021-08-09 12:50:16 +02:00
										 |  |  |       src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js" | 
					
						
							|  |  |  |       integrity="sha512-Tn2m0TIpgVyTzzvmxLNuqbSJH3JP8jm+Cy3hvHrW7ndTDcJ1w5mBiksqDBb8GpE2ksktFvDB/ykZ0mDpsZj20w==" | 
					
						
							| 
									
										
										
										
											2021-07-06 15:30:09 +01:00
										 |  |  |       crossorigin="anonymous" | 
					
						
							|  |  |  |     ></script> | 
					
						
							|  |  |  |   </body> | 
					
						
							| 
									
										
										
										
											2021-03-08 22:00:31 -08:00
										 |  |  | </html> |