245 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			245 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html lang="en">
 | |
|   <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"
 | |
|       href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"
 | |
|       integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ=="
 | |
|       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,
 | |
| 
 | |
|         // 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: {
 | |
|           note: {
 | |
|             label: {
 | |
|               '/i18n/chinese/': '注意',
 | |
|               '/i18n/espanol/': 'Nota',
 | |
|               '/i18n/italian/': 'Nota',
 | |
|               '/i18n/portuguese/': 'Observação',
 | |
|               '/': 'Note'
 | |
|             }
 | |
|           },
 | |
|           tip: {
 | |
|             label: {
 | |
|               '/i18n/chinese/': '提示',
 | |
|               '/i18n/espanol/': 'Sugerencia',
 | |
|               '/i18n/italian/': 'Suggerimento',
 | |
|               '/i18n/portuguese/': 'Dica',
 | |
|               '/': 'Tip'
 | |
|             }
 | |
|           },
 | |
|           warning: {
 | |
|             label: {
 | |
|               '/i18n/chinese/': '警告',
 | |
|               '/i18n/espanol/': 'Advertencia',
 | |
|               '/i18n/italian/': 'Avviso',
 | |
|               '/i18n/portuguese/': 'Aviso',
 | |
|               '/': 'Warning'
 | |
|             }
 | |
|           },
 | |
|           attention: {
 | |
|             label: {
 | |
|               '/i18n/chinese/': '注意',
 | |
|               '/i18n/espanol/': 'Atención',
 | |
|               '/i18n/italian/': 'Attenzione',
 | |
|               '/i18n/portuguese/': 'Atenção',
 | |
|               '/': 'Attention'
 | |
|             }
 | |
|           }
 | |
|         },
 | |
| 
 | |
|         pagination: {
 | |
|           crossChapter: true
 | |
|         },
 | |
| 
 | |
|         remoteMarkdown: {
 | |
|           tag: 'remote-markdown-url'
 | |
|         },
 | |
| 
 | |
|         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.';
 | |
|               }
 | |
| 
 | |
|               // -- 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 +
 | |
|                   ')';
 | |
|               }
 | |
| 
 | |
|               // 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';
 | |
|                 }
 | |
|               }
 | |
| 
 | |
|               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';
 | |
|                 }
 | |
|               }
 | |
| 
 | |
|               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
 | |
|       src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js"
 | |
|       integrity="sha512-Tn2m0TIpgVyTzzvmxLNuqbSJH3JP8jm+Cy3hvHrW7ndTDcJ1w5mBiksqDBb8GpE2ksktFvDB/ykZ0mDpsZj20w=="
 | |
|       crossorigin="anonymous"
 | |
|     ></script>
 | |
|   </body>
 | |
| </html>
 |