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>
 |