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"
|
|
|
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
|
|
|
|
integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
|
|
|
|
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
|
|
|
|
src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/js/all.min.js"
|
|
|
|
integrity="sha512-RXf+QSDCUQs5uwRKaDoXt55jygZZm2V++WUZduaU/Ui/9EGp3f/2KZVahFZBKGH0s774sd3HmrhUy+SgOFQLVQ=="
|
|
|
|
crossorigin="anonymous"
|
|
|
|
></script>
|
|
|
|
</body>
|
2021-03-08 22:00:31 -08:00
|
|
|
</html>
|