From 1c5c86c721a5935e89065246d49506f1d4cf9567 Mon Sep 17 00:00:00 2001 From: Schalk Neethling Date: Wed, 3 Aug 2022 19:40:02 +0200 Subject: [PATCH] Move new contrib docs (#18041) (#19117) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move new contrib docs (#18041) * Move new contrib docs * underscores * renaming * removing redirect about * creating moving * experimental * does belong * editorial * code style guide * writing style guide * howto and seo * related_criteria for inclusion * file rename, link update * Updated Syntax for fetch-related pages (#17914) * Updated Syntax * port changes Co-authored-by: Joshua Chen * Fix wrong example quote (#18458) * Unshorten code in method definition (#18457) * fixes https://github.com/mdn/content/issues/18444 * Update index.md Co-authored-by: Joshua Chen * fix: correct the language of code examples (#18455) * Add `const` var declaration to FileSystemFileHandle sample code (#17930) * Add `const` var declaration * Update index.md * Update index.md Co-authored-by: Joshua Chen * Update dom-examples links (#18462) * MediaRecorder: Update dom-examples links (#18464) * Update dom-example link (#18465) * update a broken link (#18466) * remove a broken link (#18467) * Update a broken link (#18468) * Fixes broken live sample (#18456) * Intl.NumberFormat - flyby fixes (#18258) * Fix `channelCount` semantics in `MediaStreamAudioSourceNode`. (#18472) * Fix `channelCount` semantics. This sparked confusion, e.g. in https://github.com/WebAudio/web-audio-api/issues/2496. Source: I am this specification's editor. * Fix markup. * Fix parenthesis * Fix `channelCount` semantics. (#18473) * Fix `channelCount` semantics. This sparked confusion, e.g. in https://github.com/WebAudio/web-audio-api/issues/2496. Source: I am this specification's editor. * Fix markup. * Fix parenthesis * Remove a few pointless references to internal slots (#18461) * Remove a few pointless references to internal slots * Update index.md * Apply suggestions from code review Co-authored-by: Jean-Yves Perrier * simplify description Co-authored-by: Jean-Yves Perrier * Fix syntax errors (#18475) * Fix syntax error Reported in https://github.com/orgs/mdn/discussions/158 (PR11) The macro just prints `Deprected` on the next line. * Fix in blobbuilder * Remove js annotation for webidl blocks Co-authored-by: Jean-Yves Perrier * fix: syntax errors in JS example sections (v5) (#18442) * syntax fixes * fix remaining syntax errors * Adapt syntax box Co-authored-by: Jean-Yves Perrier * Use diff instead of js to mark a diff block (#18477) * Update good vs bad example * fix a typo * marking it as diff * Bump @mdn/yari from 1.10.0 to 1.10.2 (#18479) * Correct a few usage of internal methods (#18476) * Change 'nodes' link to link directly to DOM nodes (#18480) The link to DOM 'nodes' currently links to the 'nodes' glossary page. I changed the link to DOM 'nodes' to directly link to the DOM nodes page. * Shorten Global object glossary entry (#18474) * FF103 Native Error types are serializable (#18384) * FF104 Native Error types are serializable * Fix error - this is in FF103, not 104 * Update files/en-us/web/api/web_workers_api/structured_clone_algorithm/index.md Co-authored-by: Joshua Chen * Remove stack info from release note * Update files/en-us/mozilla/firefox/releases/103/index.md Co-authored-by: Joshua Chen * Demix invalid event from GlobalEventHandlers (#18451) * Demix slotchange from GlobalEventHandlers (#18225) * fix: various typos (#18483) * Fix typo (#18486) Remove stray 'a' in "contain a separator characters like the following" -> "contain separator characters like the following" * Fix link text (#18488) * Add missing period (#18487) * fix broken link (#18490) * Remove continuity descriptions from `steps(...)` (#18482) As per the spec (https://drafts.csswg.org/css-easing/#step-easing-functions), Figure 5, all step functions are right-continuous (i.e. You'd encounter solid dots approaching discontinuity from the right side). The `direction` keyword should strictly describe when the jumps (i.e. discontinuities) happen. * OpenType guide: font-variant-position is not mutually exclusive with / (#18459) Thank you! * Fix links for other references (#18501) * update a broken link (#18500) * Comment out ellipsis in code blocks (#18496) * Comment out ellipsis in code blocks (#18498) * Comment out ellipsis in code blocks (#18497) * Elaborate on destructuring assignment (#18495) * Elaborate on destructuring assignment * add headings * Mark kumascript code blocks js -> plain (#18493) * remove a broken link (#18499) * remove a broken link * Apply suggestions from code review Co-authored-by: Jean-Yves Perrier Co-authored-by: Jean-Yves Perrier * Demix pointer capture events from GlobalEventHandlers (#18450) * Demix pointer capture events from GlobalEventHandlers * Update files/en-us/web/api/element/lostpointercapture_event/index.md Co-authored-by: Jean-Yves Perrier * Add event properties section (still seems redundant...) * Add additional event properties section Co-authored-by: Jean-Yves Perrier * Improvements to a few Number APIs (#18502) * Minor spread syntax rewrite (#18503) * Minor spread syntax rewrite * Update files/en-us/web/javascript/reference/operators/spread_syntax/index.md Co-authored-by: Jean-Yves Perrier Co-authored-by: Jean-Yves Perrier * Window.open() rework (#18118) * first pass linting: remove xref macros, fix examples, fix code words * 2nd pass: remove broken/insecure links, fix remaining typos * Third pass - rework * fix flaws * Apply 1st set of suggestions Co-authored-by: Jean-Yves Perrier * Taking @teoli2003 review into account Co-authored-by: Jean-Yves Perrier * Fix broken block code in `Bracket notation` section (#18507) Add three missing backticks at ending of block code * Fix typo (#18508) * Fix missing parenthesis (#18509) * Mention string iteration goes by Unicode characters (#18504) * Mention string iteration goes by Unicode characters * add a flag example * Fix "repository of wavetables" text's broken link (#18510) * Add TBD content to files frontmatter and macros * Add TBD content to more empty files * TBD content * Add missing front matter data to files * Fix slug * Fix slugs * fix remaining writing guideline docs Co-authored-by: Ruth John Co-authored-by: Prajwal Borkar Co-authored-by: Joshua Chen Co-authored-by: Davide Briano <36935593+buondevid@users.noreply.github.com> Co-authored-by: Xavi Lee Co-authored-by: A1lo Co-authored-by: Zhang Yi Jiang Co-authored-by: Onkar Ruikar <87750369+OnkarRuikar@users.noreply.github.com> Co-authored-by: Hamish Willee Co-authored-by: Paul Adenot Co-authored-by: Jean-Yves Perrier Co-authored-by: Lion Ralfs Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: simonvarey <88859869+simonvarey@users.noreply.github.com> Co-authored-by: Queen Vinyl Da.i'gyu-Kazotetsu Co-authored-by: Nick Schonning Co-authored-by: kokke Co-authored-by: de-oz <101826623+de-oz@users.noreply.github.com> Co-authored-by: Christopher Dignam Co-authored-by: dshin-moz <102040459+dshin-moz@users.noreply.github.com> Co-authored-by: J. S. Choi Co-authored-by: Masahiro FUJIMOTO Co-authored-by: SphinxKnight Co-authored-by: Minh-Thuan Nguyen Co-authored-by: Remco van 't Veer Co-authored-by: Jeremy Pearson Co-authored-by: Schalk Neethling * Page structures (#18644) Co-authored-by: Schalk Neethling * docs: community docs (#18787) * docs: community docs Adds community docs to the `mdn` folder * Update files/en-us/mdn/community/contributing/getting-started/index.md * updating folder names Co-authored-by: Ruth John Co-authored-by: Ruth John * Contrib docs readthrough part 1 (#18994) * test change * Readthrough of contrib docs part1 * Move folders to howto and remove the duplicate inclusion_criteria (#19020) * Readthrough of contrib docs part2 (#19036) * chore: delete and redirect community docs (#19069) Deletes older documents and adds redirects to the new community docs. * adding sidebar for community docs (#19112) * adding sidebar for community docs * Update files/en-us/mdn/community/contributing/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/contributing/our_repositories/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/contributing/security_vulnerability_response/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/contributing/translated_content/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/discussions/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/issues/content_suggestions_feature_proposals/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/pull_requests/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/index.md Co-authored-by: Gabe <66077254+MrBrain295@users.noreply.github.com> * Update files/en-us/mdn/writing_guidelines/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/users_teams/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/contributing/getting_started/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/issues/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/mdn_content/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/learn_forum/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/mdn_content/pull_requests/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/mdn_content/issues/index.md Co-authored-by: Jean-Yves Perrier * Update files/en-us/mdn/community/open_source_etiquette/index.md Co-authored-by: Jean-Yves Perrier Co-authored-by: Jean-Yves Perrier Co-authored-by: Gabe <66077254+MrBrain295@users.noreply.github.com> * fix macros redirect * fix macros redirect * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects * fix redirects Co-authored-by: Dipika Bhattacharya Co-authored-by: Ruth John Co-authored-by: Prajwal Borkar Co-authored-by: Joshua Chen Co-authored-by: Davide Briano <36935593+buondevid@users.noreply.github.com> Co-authored-by: Xavi Lee Co-authored-by: A1lo Co-authored-by: Zhang Yi Jiang Co-authored-by: Onkar Ruikar <87750369+OnkarRuikar@users.noreply.github.com> Co-authored-by: Hamish Willee Co-authored-by: Paul Adenot Co-authored-by: Jean-Yves Perrier Co-authored-by: Lion Ralfs Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: simonvarey <88859869+simonvarey@users.noreply.github.com> Co-authored-by: Queen Vinyl Da.i'gyu-Kazotetsu Co-authored-by: Nick Schonning Co-authored-by: kokke Co-authored-by: de-oz <101826623+de-oz@users.noreply.github.com> Co-authored-by: Christopher Dignam Co-authored-by: dshin-moz <102040459+dshin-moz@users.noreply.github.com> Co-authored-by: J. S. Choi Co-authored-by: Masahiro FUJIMOTO Co-authored-by: SphinxKnight Co-authored-by: Minh-Thuan Nguyen Co-authored-by: Remco van 't Veer Co-authored-by: Jeremy Pearson Co-authored-by: Ruth John Co-authored-by: Gabe <66077254+MrBrain295@users.noreply.github.com> --- files/en-us/_redirects.txt | 257 ++-- files/en-us/_wikihistory.json | 1283 ++++------------- files/en-us/mdn/about/index.md | 67 - .../contributing/getting_started/index.md | 54 + .../en-us/mdn/community/contributing/index.md | 15 + .../contributing/our_repositories/index.md | 85 ++ .../security_vulnerability_response/index.md | 42 + .../contributing/translated_content}/index.md | 21 +- .../en-us/mdn/community/discussions/index.md | 212 +++ files/en-us/mdn/community/index.md | 51 + .../index.md | 48 + files/en-us/mdn/community/issues/index.md | 125 ++ .../issues/issue_triage}/index.md | 18 +- .../learn_forum}/index.md | 54 +- .../mdn_content}/index.md | 23 +- .../mdn/community/mdn_content/issues/index.md | 13 + .../mdn_content/pull_requests/index.md | 62 + .../open_source_etiquette/index.md | 60 +- .../mdn/community/pull_requests/index.md | 133 ++ .../en-us/mdn/community/users_teams/index.md | 111 ++ files/en-us/mdn/contribute/feedback/index.md | 57 - .../mdn/contribute/getting_started/index.md | 56 - .../branch-button-new-branch.png | Bin 1407 -> 0 bytes .../github_beginners/branch-button.png | Bin 916 -> 0 bytes .../github_beginners/branch-menu.png | Bin 9755 -> 0 bytes .../github_beginners/code-popup.png | Bin 10106 -> 0 bytes .../compare-and-pull-request.png | Bin 4260 -> 0 bytes .../github_beginners/fork-button.png | Bin 1309 -> 0 bytes .../mdn/contribute/github_beginners/index.md | 432 ------ .../github_beginners/new-branch.png | Bin 8359 -> 0 bytes .../github_beginners/open-pull-request.png | Bin 24954 -> 0 bytes .../contribute/github_best_practices/index.md | 39 - .../mdn/contribute/github_cheatsheet/index.md | 103 -- .../convert_code_samples_to_be_live/index.md | 30 - .../index.md | 127 -- .../howto/create_and_edit_pages/index.md | 39 - .../howto/document_a_css_property/index.md | 36 - .../howto/document_an_http_header/index.md | 66 - .../howto/document_web_errors/index.md | 50 - .../migrate_external_content_to_mdn/index.md | 55 - .../howto/report_a_problem/index.md | 22 - files/en-us/mdn/contribute/howto/tag/index.md | 198 --- .../contribute/howto/write_for_seo/index.md | 63 - .../contribute/where_is_everything/index.md | 30 - .../guidelines/code_guidelines/css/index.md | 274 ---- .../code_guidelines/general/index.md | 168 --- .../guidelines/code_guidelines/html/index.md | 190 --- .../mdn/guidelines/code_guidelines/index.md | 55 - .../code_guidelines/javascript/index.md | 549 ------- .../guidelines/code_guidelines/shell/index.md | 35 - .../conventions_definitions/index.md | 227 --- .../does_this_belong_on_mdn/index.md | 84 -- files/en-us/mdn/guidelines/editorial/index.md | 40 - files/en-us/mdn/guidelines/index.md | 13 - .../guidelines/writing_style_guide/index.md | 572 -------- .../attrib_copyright_license/index.md | 64 + .../experimental_deprecated_obsolete/index.md | 108 ++ .../howto/creating_moving_deleting/index.md | 177 +++ .../howto/document_a_css_property/index.md | 40 + .../howto/document_an_http_header/index.md | 60 + .../howto/document_web_errors/index.md | 46 + .../howto/images_media}/index.md | 93 +- .../mdn/writing_guidelines/howto/index.md | 16 + .../howto}/json_structured_data/index.md | 9 +- .../howto}/markdown_in_mdn/index.md | 10 +- .../howto/research_technology/index.md | 120 ++ .../mdn/writing_guidelines/howto/tag/index.md | 194 +++ .../index.md | 17 +- .../write_an_api_reference/apiref-links.png | Bin .../howto/write_an_api_reference/index.md | 10 +- .../index.md | 15 +- .../write_an_api_reference/sidebars/index.md | 14 +- files/en-us/mdn/writing_guidelines/index.md | 68 + .../banners_and_notices/index.md | 8 +- .../code_examples/console-example.png | Bin .../page_structures}/code_examples/index.md | 107 +- .../compatibility_tables/index.md | 10 +- .../page_structures}/index.md | 3 +- .../page_structures}/live_samples/index.md | 24 +- .../macros/commonly_used_macros}/index.md | 9 +- .../page_structures}/macros/index.md | 10 +- .../page_structures}/macros/other/index.md | 7 +- .../api_constructor_subpage_template/index.md | 11 +- .../api_event_subpage_template/index.md | 11 +- .../api_landing_page_template/index.md | 9 +- .../api_method_subpage_template/index.md | 11 +- .../api_property_subpage_template/index.md | 11 +- .../api_reference_page_template/index.md | 9 +- .../page_types/aria_page_template/index.md | 12 +- .../css_property_page_template/index.md | 9 +- .../css_selector_page_template/index.md | 9 +- .../glossary_page_template/index.md | 8 +- .../html_element_page_template/index.md | 9 +- .../http_header_page_template/index.md | 9 +- .../page_structures}/page_types/index.md | 10 +- .../svg_element_page_template/index.md | 9 +- .../page_structures}/quicklinks/index.md | 8 +- .../specification_tables/index.md | 9 +- .../page_structures}/syntax_sections/index.md | 12 +- .../criteria_for_inclusion/index.md | 181 +++ .../writing_guidelines/what_we_write/index.md | 134 ++ .../code_style_guide/css/index.md | 223 +++ .../code_style_guide/html/index.md | 163 +++ .../code_style_guide/index.md | 206 +++ .../code_style_guide/javascript/index.md | 483 +++++++ .../code_style_guide/shell/index.md | 31 + .../writing_style_guide/index.md | 603 ++++++++ .../related/criteria_for_inclusion/index.md | 56 - .../related/process_for_selection/index.md | 51 - .../en-us/related/project_guidelines/index.md | 124 -- 110 files changed, 4608 insertions(+), 5396 deletions(-) delete mode 100644 files/en-us/mdn/about/index.md create mode 100644 files/en-us/mdn/community/contributing/getting_started/index.md create mode 100644 files/en-us/mdn/community/contributing/index.md create mode 100644 files/en-us/mdn/community/contributing/our_repositories/index.md create mode 100644 files/en-us/mdn/community/contributing/security_vulnerability_response/index.md rename files/en-us/mdn/{contribute/localize => community/contributing/translated_content}/index.md (77%) create mode 100644 files/en-us/mdn/community/discussions/index.md create mode 100644 files/en-us/mdn/community/index.md create mode 100644 files/en-us/mdn/community/issues/content_suggestions_feature_proposals/index.md create mode 100644 files/en-us/mdn/community/issues/index.md rename files/en-us/mdn/{contribute/processes/content_bug_triage => community/issues/issue_triage}/index.md (97%) rename files/en-us/mdn/{contribute/help_beginners => community/learn_forum}/index.md (51%) rename files/en-us/mdn/{contribute/fixing_mdn_content_bugs => community/mdn_content}/index.md (90%) create mode 100644 files/en-us/mdn/community/mdn_content/issues/index.md create mode 100644 files/en-us/mdn/community/mdn_content/pull_requests/index.md rename files/en-us/mdn/{contribute => community}/open_source_etiquette/index.md (69%) create mode 100644 files/en-us/mdn/community/pull_requests/index.md create mode 100644 files/en-us/mdn/community/users_teams/index.md delete mode 100644 files/en-us/mdn/contribute/feedback/index.md delete mode 100644 files/en-us/mdn/contribute/getting_started/index.md delete mode 100644 files/en-us/mdn/contribute/github_beginners/branch-button-new-branch.png delete mode 100644 files/en-us/mdn/contribute/github_beginners/branch-button.png delete mode 100644 files/en-us/mdn/contribute/github_beginners/branch-menu.png delete mode 100644 files/en-us/mdn/contribute/github_beginners/code-popup.png delete mode 100644 files/en-us/mdn/contribute/github_beginners/compare-and-pull-request.png delete mode 100644 files/en-us/mdn/contribute/github_beginners/fork-button.png delete mode 100644 files/en-us/mdn/contribute/github_beginners/index.md delete mode 100644 files/en-us/mdn/contribute/github_beginners/new-branch.png delete mode 100644 files/en-us/mdn/contribute/github_beginners/open-pull-request.png delete mode 100644 files/en-us/mdn/contribute/github_best_practices/index.md delete mode 100644 files/en-us/mdn/contribute/github_cheatsheet/index.md delete mode 100644 files/en-us/mdn/contribute/howto/convert_code_samples_to_be_live/index.md delete mode 100644 files/en-us/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.md delete mode 100644 files/en-us/mdn/contribute/howto/create_and_edit_pages/index.md delete mode 100644 files/en-us/mdn/contribute/howto/document_a_css_property/index.md delete mode 100644 files/en-us/mdn/contribute/howto/document_an_http_header/index.md delete mode 100644 files/en-us/mdn/contribute/howto/document_web_errors/index.md delete mode 100644 files/en-us/mdn/contribute/howto/migrate_external_content_to_mdn/index.md delete mode 100644 files/en-us/mdn/contribute/howto/report_a_problem/index.md delete mode 100644 files/en-us/mdn/contribute/howto/tag/index.md delete mode 100644 files/en-us/mdn/contribute/howto/write_for_seo/index.md delete mode 100644 files/en-us/mdn/contribute/where_is_everything/index.md delete mode 100644 files/en-us/mdn/guidelines/code_guidelines/css/index.md delete mode 100644 files/en-us/mdn/guidelines/code_guidelines/general/index.md delete mode 100644 files/en-us/mdn/guidelines/code_guidelines/html/index.md delete mode 100644 files/en-us/mdn/guidelines/code_guidelines/index.md delete mode 100644 files/en-us/mdn/guidelines/code_guidelines/javascript/index.md delete mode 100644 files/en-us/mdn/guidelines/code_guidelines/shell/index.md delete mode 100644 files/en-us/mdn/guidelines/conventions_definitions/index.md delete mode 100644 files/en-us/mdn/guidelines/does_this_belong_on_mdn/index.md delete mode 100644 files/en-us/mdn/guidelines/editorial/index.md delete mode 100644 files/en-us/mdn/guidelines/index.md delete mode 100644 files/en-us/mdn/guidelines/writing_style_guide/index.md create mode 100644 files/en-us/mdn/writing_guidelines/attrib_copyright_license/index.md create mode 100644 files/en-us/mdn/writing_guidelines/experimental_deprecated_obsolete/index.md create mode 100644 files/en-us/mdn/writing_guidelines/howto/creating_moving_deleting/index.md create mode 100644 files/en-us/mdn/writing_guidelines/howto/document_a_css_property/index.md create mode 100644 files/en-us/mdn/writing_guidelines/howto/document_an_http_header/index.md create mode 100644 files/en-us/mdn/writing_guidelines/howto/document_web_errors/index.md rename files/en-us/mdn/{guidelines/video => writing_guidelines/howto/images_media}/index.md (70%) create mode 100644 files/en-us/mdn/writing_guidelines/howto/index.md rename files/en-us/mdn/{guidelines => writing_guidelines/howto}/json_structured_data/index.md (98%) rename files/en-us/mdn/{contribute => writing_guidelines/howto}/markdown_in_mdn/index.md (98%) create mode 100644 files/en-us/mdn/writing_guidelines/howto/research_technology/index.md create mode 100644 files/en-us/mdn/writing_guidelines/howto/tag/index.md rename files/en-us/mdn/{contribute => writing_guidelines}/howto/write_a_new_entry_in_the_glossary/index.md (95%) rename files/en-us/mdn/{contribute => writing_guidelines}/howto/write_an_api_reference/apiref-links.png (100%) rename files/en-us/mdn/{contribute => writing_guidelines}/howto/write_an_api_reference/index.md (99%) rename files/en-us/mdn/{contribute => writing_guidelines}/howto/write_an_api_reference/information_contained_in_a_webidl_file/index.md (98%) rename files/en-us/mdn/{contribute => writing_guidelines}/howto/write_an_api_reference/sidebars/index.md (97%) create mode 100644 files/en-us/mdn/writing_guidelines/index.md rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/banners_and_notices/index.md (94%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/code_examples/console-example.png (100%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/code_examples/index.md (85%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/compatibility_tables/index.md (99%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/index.md (90%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/live_samples/index.md (92%) rename files/en-us/mdn/{structures/macros/commonly-used_macros => writing_guidelines/page_structures/macros/commonly_used_macros}/index.md (99%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/macros/index.md (96%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/macros/other/index.md (96%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/api_constructor_subpage_template/index.md (97%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/api_event_subpage_template/index.md (98%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/api_landing_page_template/index.md (98%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/api_method_subpage_template/index.md (97%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/api_property_subpage_template/index.md (97%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/api_reference_page_template/index.md (98%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/aria_page_template/index.md (96%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/css_property_page_template/index.md (97%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/css_selector_page_template/index.md (97%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/glossary_page_template/index.md (91%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/html_element_page_template/index.md (98%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/http_header_page_template/index.md (98%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/index.md (98%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/page_types/svg_element_page_template/index.md (97%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/quicklinks/index.md (96%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/specification_tables/index.md (94%) rename files/en-us/mdn/{structures => writing_guidelines/page_structures}/syntax_sections/index.md (99%) create mode 100644 files/en-us/mdn/writing_guidelines/what_we_write/criteria_for_inclusion/index.md create mode 100644 files/en-us/mdn/writing_guidelines/what_we_write/index.md create mode 100644 files/en-us/mdn/writing_guidelines/writing_style_guide/code_style_guide/css/index.md create mode 100644 files/en-us/mdn/writing_guidelines/writing_style_guide/code_style_guide/html/index.md create mode 100644 files/en-us/mdn/writing_guidelines/writing_style_guide/code_style_guide/index.md create mode 100644 files/en-us/mdn/writing_guidelines/writing_style_guide/code_style_guide/javascript/index.md create mode 100644 files/en-us/mdn/writing_guidelines/writing_style_guide/code_style_guide/shell/index.md create mode 100644 files/en-us/mdn/writing_guidelines/writing_style_guide/index.md delete mode 100644 files/en-us/related/criteria_for_inclusion/index.md delete mode 100644 files/en-us/related/process_for_selection/index.md delete mode 100644 files/en-us/related/project_guidelines/index.md diff --git a/files/en-us/_redirects.txt b/files/en-us/_redirects.txt index 8a8ddfc942100f8..7db243883020fe9 100644 --- a/files/en-us/_redirects.txt +++ b/files/en-us/_redirects.txt @@ -2710,7 +2710,7 @@ /en-US/docs/Detecting_device_orientation /en-US/docs/Web/Events/Detecting_device_orientation /en-US/docs/Determining_the_dimensions_of_elements /en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements /en-US/docs/DeviceAcceleration /en-US/docs/Web/API/DeviceMotionEventAcceleration -/en-US/docs/Devmo:How_to_Help /en-US/docs/MDN/Contribute/Getting_started +/en-US/docs/Devmo:How_to_Help /en-US/docs/MDN/Community/Contributing/Getting_started /en-US/docs/Distribution_options https://extensionworkshop.com/documentation/publish/signing-and-distribution-overview/ /en-US/docs/Distribution_options/Add-ons_for_desktop_apps https://extensionworkshop.com/documentation/publish/distribute-for-desktop-apps/ /en-US/docs/Distribution_options/Add-ons_in_the_enterprise https://extensionworkshop.com/documentation/enterprise/ @@ -3580,7 +3580,7 @@ /en-US/docs/Games/Workflows/Touch_Event_Horizon /en-US/docs/Games/Tutorials/Touch_Event_Horizon /en-US/docs/Games/visual_typescript_game_engine /en-US/docs/Games /en-US/docs/Getting_Started_With_NSS https://firefox-source-docs.mozilla.org/security/nss/index.html -/en-US/docs/Getting_started_on_MDN /en-US/docs/MDN/Contribute/Getting_started +/en-US/docs/Getting_started_on_MDN /en-US/docs/MDN/Community/Contributing/Getting_started /en-US/docs/Glossary/404 /en-US/docs/Web/HTTP/Status/404 /en-US/docs/Glossary/502 /en-US/docs/Web/HTTP/Status/502 /en-US/docs/Glossary/AOM /en-US/docs/Glossary/Accessibility_tree @@ -4006,7 +4006,7 @@ /en-US/docs/How_to_Turn_Off_Form_Autocompletion /en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion /en-US/docs/How_to_check_the_security_state_of_an_XMLHTTPRequest_over_SSL /en-US/docs/Web/API/XMLHttpRequest /en-US/docs/How_to_create_a_DOM_tree /en-US/docs/Web/API/Document_object_model/How_to_create_a_DOM_tree -/en-US/docs/How_to_start_contributions_to_Mozilla /en-US/docs/MDN/Contribute/Getting_started +/en-US/docs/How_to_start_contributions_to_Mozilla /en-US/docs/MDN/Community/Contributing/Getting_started /en-US/docs/ICC_color_correction_in_Firefox /en-US/docs/Mozilla/Firefox/Releases/3.5/ICC_color_correction_in_Firefox /en-US/docs/IMAP /en-US/docs/Glossary/IMAP /en-US/docs/IPv6 /en-US/docs/Glossary/IPv6 @@ -5391,106 +5391,145 @@ /en-US/docs/Link_prefetching_FAQ /en-US/docs/Web/HTTP/Link_prefetching_FAQ /en-US/docs/Localization /en-US/docs/Glossary/Localization /en-US/docs/MDC:How_to_Help /en-US/docs/MDN/Contribute +/en-US/docs/MDN/About /en-US/docs/MDN/Writing_guidelines /en-US/docs/MDN/At_ten/Contributing_to_MDN /en-US/docs/MDN/Contribute -/en-US/docs/MDN/Contribute/Code_sample_guidelines /en-US/docs/MDN/Guidelines/Code_guidelines -/en-US/docs/MDN/Contribute/Content /en-US/docs/MDN/Guidelines -/en-US/docs/MDN/Contribute/Content/Content_blocks /en-US/docs/MDN/Contribute/Markdown_in_MDN -/en-US/docs/MDN/Contribute/Content/Custom_macros /en-US/docs/MDN/Structures/Macros/Commonly-used_macros -/en-US/docs/MDN/Contribute/Content/Layout/API_landing_page /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference -/en-US/docs/MDN/Contribute/Content/Layout/Reference_page /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference -/en-US/docs/MDN/Contribute/Content/Layout/Reference_subpage /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference -/en-US/docs/MDN/Contribute/Content/Macros /en-US/docs/MDN/Structures/Macros -/en-US/docs/MDN/Contribute/Content/Quicklinks /en-US/docs/MDN/Structures/Quicklinks -/en-US/docs/MDN/Contribute/Content/Specification_tables /en-US/docs/MDN/Structures/Specification_tables -/en-US/docs/MDN/Contribute/Content/Style_guide /en-US/docs/MDN/Guidelines/Writing_style_guide -/en-US/docs/MDN/Contribute/Creating_and_editing_pages /en-US/docs/MDN/Contribute/Howto/Create_and_edit_pages +/en-US/docs/MDN/Contribute/Code_sample_guidelines /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide +/en-US/docs/MDN/Contribute/Content /en-US/docs/MDN/Writing_guidelines +/en-US/docs/MDN/Contribute/Content/Content_blocks /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Contribute/Content/Custom_macros /en-US/docs/MDN/Writing_guidelines/Page_structures/Macros/Commonly_used_macros +/en-US/docs/MDN/Contribute/Content/Layout/API_landing_page /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference +/en-US/docs/MDN/Contribute/Content/Layout/Reference_page /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference +/en-US/docs/MDN/Contribute/Content/Layout/Reference_subpage /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference +/en-US/docs/MDN/Contribute/Content/Macros /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Content/Quicklinks /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Content/Specification_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Content/Style_guide /en-US/docs/MDN/Writing_guidelines/Writing_style_guide +/en-US/docs/MDN/Contribute/Creating_and_editing_pages /en-US/docs/MDN/Writing_guidelines/Howto/Creating_moving_deleting /en-US/docs/MDN/Contribute/Documentation_priorities https://mdn-contributor-docs.mozilla.org/legacy/documentation-priorities/ -/en-US/docs/MDN/Contribute/Does_this_belong /en-US/docs/MDN/Guidelines/Does_this_belong_on_MDN -/en-US/docs/MDN/Contribute/Editor/Live_samples /en-US/docs/MDN/Structures/Live_samples +/en-US/docs/MDN/Contribute/Does_this_belong /en-US/docs/MDN/Writing_guidelines/What_we_write +/en-US/docs/MDN/Contribute/Editor/Live_samples /en-US/docs/MDN/Writing_guidelines/Page_structures /en-US/docs/MDN/Contribute/FAQ /en-US/docs/MDN/Contribute -/en-US/docs/MDN/Contribute/Guidelines /en-US/docs/MDN/Guidelines -/en-US/docs/MDN/Contribute/Guidelines/Best_practices /en-US/docs/MDN/Guidelines/Conventions_definitions -/en-US/docs/MDN/Contribute/Guidelines/CSS_style_guide /en-US/docs/MDN/Contribute/Markdown_in_MDN -/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines /en-US/docs/MDN/Guidelines/Code_guidelines -/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/CSS /en-US/docs/MDN/Guidelines/Code_guidelines/CSS -/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/General /en-US/docs/MDN/Guidelines/Code_guidelines/General -/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/HTML /en-US/docs/MDN/Guidelines/Code_guidelines/HTML -/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/JavaScript /en-US/docs/MDN/Guidelines/Code_guidelines/JavaScript -/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/Shell /en-US/docs/MDN/Guidelines/Code_guidelines/Shell -/en-US/docs/MDN/Contribute/Guidelines/Code_samples /en-US/docs/MDN/Guidelines/Code_guidelines -/en-US/docs/MDN/Contribute/Guidelines/Content /en-US/docs/MDN/Guidelines/Does_this_belong_on_MDN -/en-US/docs/MDN/Contribute/Guidelines/Content_blocks /en-US/docs/MDN/Contribute/Markdown_in_MDN -/en-US/docs/MDN/Contribute/Guidelines/Conventions_definitions /en-US/docs/MDN/Guidelines/Conventions_definitions -/en-US/docs/MDN/Contribute/Guidelines/Custom_macros /en-US/docs/MDN/Structures/Macros/Commonly-used_macros -/en-US/docs/MDN/Contribute/Guidelines/Does_this_belong_on_MDN /en-US/docs/MDN/Guidelines/Does_this_belong_on_MDN -/en-US/docs/MDN/Contribute/Guidelines/Editorial /en-US/docs/MDN/Guidelines/Editorial -/en-US/docs/MDN/Contribute/Guidelines/Layout/API_landing_page /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference -/en-US/docs/MDN/Contribute/Guidelines/Layout/Reference_page /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference -/en-US/docs/MDN/Contribute/Guidelines/Layout/Reference_subpage /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference -/en-US/docs/MDN/Contribute/Guidelines/Macros /en-US/docs/MDN/Structures/Macros -/en-US/docs/MDN/Contribute/Guidelines/Quicklinks /en-US/docs/MDN/Structures/Quicklinks -/en-US/docs/MDN/Contribute/Guidelines/Specification_tables /en-US/docs/MDN/Structures/Specification_tables -/en-US/docs/MDN/Contribute/Guidelines/Style_guide /en-US/docs/MDN/Guidelines/Writing_style_guide -/en-US/docs/MDN/Contribute/Guidelines/Video /en-US/docs/MDN/Guidelines/Video -/en-US/docs/MDN/Contribute/Guidelines/Writing_style_guide /en-US/docs/MDN/Guidelines/Writing_style_guide -/en-US/docs/MDN/Contribute/How_to_document_a_CSS_property /en-US/docs/MDN/Contribute/Howto/Document_a_CSS_property -/en-US/docs/MDN/Contribute/Howto/Compatibility_tables /en-US/docs/MDN/Structures/Compatibility_tables -/en-US/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web/distant_example /en-US/docs/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web -/en-US/docs/MDN/Contribute/Howto/How_to_document_a_CSS_property /en-US/docs/MDN/Contribute/Howto/Document_a_CSS_property -/en-US/docs/MDN/Contribute/Howto/Notices /en-US/docs/MDN/Structures/Banners_and_notices +/en-US/docs/MDN/Contribute/Feedback /en-US/docs/MDN/Community +/en-US/docs/MDN/Contribute/Fixing_MDN_content_bugs /en-US/docs/MDN/Community/MDN_content +/en-US/docs/MDN/Contribute/Getting_started /en-US/docs/MDN/Community/Contributing/Getting_started +/en-US/docs/MDN/Contribute/GitHub_beginners /en-US/docs/MDN/Community/Contributing/Getting_started +/en-US/docs/MDN/Contribute/GitHub_best_practices /en-US/docs/MDN/Community/Issues +/en-US/docs/MDN/Contribute/GitHub_cheatsheet /en-US/docs/MDN/Community/Issues +/en-US/docs/MDN/Contribute/Guidelines /en-US/docs/MDN/Writing_guidelines +/en-US/docs/MDN/Contribute/Guidelines/Best_practices /en-US/docs/MDN/Writing_guidelines/Experimental_deprecated_obsolete +/en-US/docs/MDN/Contribute/Guidelines/CSS_style_guide /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide +/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/CSS /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/CSS +/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/General /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide +/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/HTML /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/HTML +/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/JavaScript /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/JavaScript +/en-US/docs/MDN/Contribute/Guidelines/Code_guidelines/Shell /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/Shell +/en-US/docs/MDN/Contribute/Guidelines/Code_samples /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide +/en-US/docs/MDN/Contribute/Guidelines/Content /en-US/docs/MDN/Writing_guidelines/What_we_write +/en-US/docs/MDN/Contribute/Guidelines/Content_blocks /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Contribute/Guidelines/Conventions_definitions /en-US/docs/MDN/Writing_guidelines/Experimental_deprecated_obsolete +/en-US/docs/MDN/Contribute/Guidelines/Custom_macros /en-US/docs/MDN/Writing_guidelines/Page_structures/Macros/Commonly_used_macros +/en-US/docs/MDN/Contribute/Guidelines/Does_this_belong_on_MDN /en-US/docs/MDN/Writing_guidelines/What_we_write +/en-US/docs/MDN/Contribute/Guidelines/Editorial /en-US/docs/MDN/Writing_guidelines/What_we_write +/en-US/docs/MDN/Contribute/Guidelines/Layout/API_landing_page /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference +/en-US/docs/MDN/Contribute/Guidelines/Layout/Reference_page /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference +/en-US/docs/MDN/Contribute/Guidelines/Layout/Reference_subpage /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference +/en-US/docs/MDN/Contribute/Guidelines/Macros /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Guidelines/Quicklinks /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Guidelines/Specification_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Guidelines/Style_guide /en-US/docs/MDN/Writing_guidelines/Writing_style_guide +/en-US/docs/MDN/Contribute/Guidelines/Video /en-US/docs/MDN/Writing_guidelines/Howto/Images_media +/en-US/docs/MDN/Contribute/Guidelines/Writing_style_guide /en-US/docs/MDN/Writing_guidelines/Writing_style_guide +/en-US/docs/MDN/Contribute/Help_beginners /en-US/docs/MDN/Community/Learn_forum +/en-US/docs/MDN/Contribute/How_to_document_a_CSS_property /en-US/docs/MDN/Writing_guidelines/Howto/Document_a_CSS_property +/en-US/docs/MDN/Contribute/Howto/Compatibility_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Howto/Convert_code_samples_to_be_live /en-US/docs/MDN/Writing_guidelines/Page_structures/Live_samples +/en-US/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web/distant_example /en-US/docs/MDN/Writing_guidelines/Page_structures/Live_samples +/en-US/docs/MDN/Contribute/Howto/Create_and_edit_pages /en-US/docs/MDN/Writing_guidelines/Howto/Creating_moving_deleting +/en-US/docs/MDN/Contribute/Howto/Document_a_CSS_property /en-US/docs/MDN/Writing_guidelines/Howto/Document_a_CSS_property +/en-US/docs/MDN/Contribute/Howto/Document_an_HTTP_header /en-US/docs/MDN/Writing_guidelines/Howto/Document_an_HTTP_header +/en-US/docs/MDN/Contribute/Howto/Document_web_errors /en-US/docs/MDN/Writing_guidelines/Howto/Document_web_errors +/en-US/docs/MDN/Contribute/Howto/How_to_document_a_CSS_property /en-US/docs/MDN/Writing_guidelines/Howto/Document_a_CSS_property +/en-US/docs/MDN/Contribute/Howto/Migrate_external_content_to_MDN /en-US/docs/MDN/Community/Issues/Content_suggestions_feature_proposals +/en-US/docs/MDN/Contribute/Howto/Notices /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Howto/Report_a_problem /en-US/docs/MDN/Community/Issues +/en-US/docs/MDN/Contribute/Howto/Tag /en-US/docs/MDN/Writing_guidelines/Howto/Tag +/en-US/docs/MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary /en-US/docs/MDN/Writing_guidelines/Howto/Write_a_new_entry_in_the_Glossary +/en-US/docs/MDN/Contribute/Howto/Write_an_API_reference /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference +/en-US/docs/MDN/Contribute/Howto/Write_an_API_reference/Information_contained_in_a_WebIDL_file /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference/Information_contained_in_a_WebIDL_file +/en-US/docs/MDN/Contribute/Howto/Write_an_API_reference/Sidebars /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference/Sidebars +/en-US/docs/MDN/Contribute/Howto/Write_for_SEO /en-US/docs/MDN/Writing_guidelines/Writing_style_guide +/en-US/docs/MDN/Contribute/Localize /en-US/docs/MDN/Community/Contributing/Translated_content +/en-US/docs/MDN/Contribute/Markdown_in_MDN /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Contribute/Open_source_etiquette /en-US/docs/MDN/Community/Open_source_etiquette +/en-US/docs/MDN/Contribute/Processes/Content_bug_triage /en-US/docs/MDN/Community/Issues/Issue_triage /en-US/docs/MDN/Contribute/Processes/Locating_browser-specific_information /en-US/docs/MDN/Contribute/Processes/Matching_features_to_browser_version /en-US/docs/MDN/Contribute/Processes/Matching_features_to_browser_versiosn /en-US/docs/MDN/Contribute/Processes/Matching_features_to_browser_version -/en-US/docs/MDN/Contribute/Sample_app_coding_guidelines /en-US/docs/MDN/Guidelines/Code_guidelines +/en-US/docs/MDN/Contribute/Sample_app_coding_guidelines /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide /en-US/docs/MDN/Contribute/Sample_server /en-US/docs/MDN/Tools/Sample_server -/en-US/docs/MDN/Contribute/Structures /en-US/docs/MDN/Structures +/en-US/docs/MDN/Contribute/Structures /en-US/docs/MDN/Writing_guidelines/Page_structures /en-US/docs/MDN/Contribute/Structures/:-ms-input-placeholder_pseudo-class /en-US/docs/Web/CSS/:placeholder-shown -/en-US/docs/MDN/Contribute/Structures/API_references/API_reference_sidebars /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference/Sidebars -/en-US/docs/MDN/Contribute/Structures/Banners_and_notices /en-US/docs/MDN/Structures/Banners_and_notices -/en-US/docs/MDN/Contribute/Structures/Code_examples /en-US/docs/MDN/Structures/Code_examples -/en-US/docs/MDN/Contribute/Structures/Compatibility_tables /en-US/docs/MDN/Structures/Compatibility_tables -/en-US/docs/MDN/Contribute/Structures/Content_blocks /en-US/docs/MDN/Contribute/Markdown_in_MDN -/en-US/docs/MDN/Contribute/Structures/Live_samples /en-US/docs/MDN/Structures/Live_samples -/en-US/docs/MDN/Contribute/Structures/Macros /en-US/docs/MDN/Structures/Macros -/en-US/docs/MDN/Contribute/Structures/Macros/Commonly-used_macros /en-US/docs/MDN/Structures/Macros/Commonly-used_macros -/en-US/docs/MDN/Contribute/Structures/Macros/Other /en-US/docs/MDN/Structures/Macros/Other -/en-US/docs/MDN/Contribute/Structures/Page_layouts /en-US/docs/MDN/Structures/Page_types -/en-US/docs/MDN/Contribute/Structures/Page_types /en-US/docs/MDN/Structures/Page_types -/en-US/docs/MDN/Contribute/Structures/Page_types/API_constructor_subpage_template /en-US/docs/MDN/Structures/Page_types/API_constructor_subpage_template -/en-US/docs/MDN/Contribute/Structures/Page_types/API_event_subpage_template /en-US/docs/MDN/Structures/Page_types/API_event_subpage_template -/en-US/docs/MDN/Contribute/Structures/Page_types/API_landing_page_template /en-US/docs/MDN/Structures/Page_types/API_landing_page_template -/en-US/docs/MDN/Contribute/Structures/Page_types/API_method_subpage_template /en-US/docs/MDN/Structures/Page_types/API_method_subpage_template -/en-US/docs/MDN/Contribute/Structures/Page_types/API_property_subpage_template /en-US/docs/MDN/Structures/Page_types/API_property_subpage_template -/en-US/docs/MDN/Contribute/Structures/Page_types/API_reference_page_template /en-US/docs/MDN/Structures/Page_types/API_reference_page_template -/en-US/docs/MDN/Contribute/Structures/Page_types/ARIA_Page_Template /en-US/docs/MDN/Structures/Page_types/ARIA_Page_Template -/en-US/docs/MDN/Contribute/Structures/Page_types/CSS_property_page_template /en-US/docs/MDN/Structures/Page_types/CSS_property_page_template -/en-US/docs/MDN/Contribute/Structures/Page_types/CSS_selector_page_template /en-US/docs/MDN/Structures/Page_types/CSS_selector_page_template -/en-US/docs/MDN/Contribute/Structures/Page_types/Glossary_page_template /en-US/docs/MDN/Structures/Page_types/Glossary_page_template -/en-US/docs/MDN/Contribute/Structures/Page_types/HTML_element_page_template /en-US/docs/MDN/Structures/Page_types/HTML_element_page_template -/en-US/docs/MDN/Contribute/Structures/Page_types/HTTP_header_page_template /en-US/docs/MDN/Structures/Page_types/HTTP_header_page_template -/en-US/docs/MDN/Contribute/Structures/Page_types/SVG_element_page_template /en-US/docs/MDN/Structures/Page_types/SVG_element_page_template -/en-US/docs/MDN/Contribute/Structures/Quicklinks /en-US/docs/MDN/Structures/Quicklinks -/en-US/docs/MDN/Contribute/Structures/Specification_tables /en-US/docs/MDN/Structures/Specification_tables -/en-US/docs/MDN/Contribute/Structures/Syntax_sections /en-US/docs/MDN/Structures/Syntax_sections -/en-US/docs/MDN/Contribute/Style_guide /en-US/docs/MDN/Guidelines -/en-US/docs/MDN/Contribute/Style_guide/Compatibility_tables /en-US/docs/MDN/Structures/Compatibility_tables -/en-US/docs/MDN/Contribute/Style_guide/Content_blocks /en-US/docs/MDN/Contribute/Markdown_in_MDN -/en-US/docs/MDN/Contribute/Style_guide/Custom_macros /en-US/docs/MDN/Structures/Macros/Commonly-used_macros -/en-US/docs/MDN/Contribute/Style_guide/Live_samples /en-US/docs/MDN/Structures/Live_samples -/en-US/docs/MDN/Contribute/Style_guide/Macros /en-US/docs/MDN/Structures/Macros -/en-US/docs/MDN/Contribute/Style_guide/Quicklinks /en-US/docs/MDN/Structures/Quicklinks -/en-US/docs/MDN/Contribute/Style_guide/Specification_tables /en-US/docs/MDN/Structures/Specification_tables -/en-US/docs/MDN/Contribute/Tagging /en-US/docs/MDN/Contribute/Howto/Tag -/en-US/docs/MDN/Contribute/Tasks /en-US/docs/MDN/Contribute/Getting_started +/en-US/docs/MDN/Contribute/Structures/API_references/API_reference_sidebars /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference/Sidebars +/en-US/docs/MDN/Contribute/Structures/Banners_and_notices /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Code_examples /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Compatibility_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Content_blocks /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Contribute/Structures/Live_samples /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Macros /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Macros/Commonly-used_macros /en-US/docs/MDN/Writing_guidelines/Page_structures/Macros/Commonly_used_macros +/en-US/docs/MDN/Contribute/Structures/Macros/Other /en-US/docs/MDN/Writing_guidelines/Page_structures/Macros/Other +/en-US/docs/MDN/Contribute/Structures/Page_layouts /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Page_types /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Page_types/API_constructor_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_constructor_subpage_template +/en-US/docs/MDN/Contribute/Structures/Page_types/API_event_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_event_subpage_template +/en-US/docs/MDN/Contribute/Structures/Page_types/API_landing_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_landing_page_template +/en-US/docs/MDN/Contribute/Structures/Page_types/API_method_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_method_subpage_template +/en-US/docs/MDN/Contribute/Structures/Page_types/API_property_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_property_subpage_template +/en-US/docs/MDN/Contribute/Structures/Page_types/API_reference_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_reference_page_template +/en-US/docs/MDN/Contribute/Structures/Page_types/ARIA_Page_Template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/ARIA_Page_Template +/en-US/docs/MDN/Contribute/Structures/Page_types/CSS_property_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/CSS_property_page_template +/en-US/docs/MDN/Contribute/Structures/Page_types/CSS_selector_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/CSS_selector_page_template +/en-US/docs/MDN/Contribute/Structures/Page_types/Glossary_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/Glossary_page_template +/en-US/docs/MDN/Contribute/Structures/Page_types/HTML_element_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/HTML_element_page_template +/en-US/docs/MDN/Contribute/Structures/Page_types/HTTP_header_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/HTTP_header_page_template +/en-US/docs/MDN/Contribute/Structures/Page_types/SVG_element_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/SVG_element_page_template +/en-US/docs/MDN/Contribute/Structures/Quicklinks /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Specification_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Structures/Syntax_sections /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Style_guide /en-US/docs/MDN/Writing_guidelines +/en-US/docs/MDN/Contribute/Style_guide/Compatibility_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Style_guide/Content_blocks /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Contribute/Style_guide/Custom_macros /en-US/docs/MDN/Writing_guidelines/Page_structures/Macros/Commonly_used_macros +/en-US/docs/MDN/Contribute/Style_guide/Live_samples /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Style_guide/Macros /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Style_guide/Quicklinks /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Style_guide/Specification_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Contribute/Tagging /en-US/docs/MDN/Writing_guidelines/Howto/Tag +/en-US/docs/MDN/Contribute/Tasks /en-US/docs/MDN/Community/Contributing/Getting_started /en-US/docs/MDN/Contribute/Tools /en-US/docs/MDN/Tools /en-US/docs/MDN/Contribute/Tools/Document_parameters /en-US/docs/MDN/Tools/Unsupported_GET_API /en-US/docs/MDN/Contribute/Tools/KumaScript /en-US/docs/MDN/Tools/KumaScript /en-US/docs/MDN/Contribute/Tools/KumaScript/Troubleshooting /en-US/docs/MDN/Tools/KumaScript/Troubleshooting /en-US/docs/MDN/Contribute/Tools/Sample_server /en-US/docs/MDN/Tools/Sample_server +/en-US/docs/MDN/Contribute/Where_is_everything /en-US/docs/MDN/Community/Contributing/Our_repositories /en-US/docs/MDN/Doc_status/NSPR https://firefox-source-docs.mozilla.org/nspr/index.html -/en-US/docs/MDN/Feedback /en-US/docs/MDN/Contribute/Feedback -/en-US/docs/MDN/Getting_started /en-US/docs/MDN/Contribute/Getting_started -/en-US/docs/MDN/Guidelines/CSS_style_guide /en-US/docs/MDN/Contribute/Markdown_in_MDN -/en-US/docs/MDN/Guidelines/Content /en-US/docs/MDN/Guidelines/Does_this_belong_on_MDN +/en-US/docs/MDN/Feedback /en-US/docs/MDN/Community +/en-US/docs/MDN/Getting_started /en-US/docs/MDN/Community/Contributing/Getting_started +/en-US/docs/MDN/Guidelines /en-US/docs/MDN/Writing_guidelines +/en-US/docs/MDN/Guidelines/CSS_style_guide /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Guidelines/Code_guidelines /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide +/en-US/docs/MDN/Guidelines/Code_guidelines/CSS /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/CSS +/en-US/docs/MDN/Guidelines/Code_guidelines/General /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide +/en-US/docs/MDN/Guidelines/Code_guidelines/HTML /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/HTML +/en-US/docs/MDN/Guidelines/Code_guidelines/JavaScript /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/JavaScript +/en-US/docs/MDN/Guidelines/Code_guidelines/Shell /en-US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/Shell +/en-US/docs/MDN/Guidelines/Content /en-US/docs/MDN/Writing_guidelines/What_we_write +/en-US/docs/MDN/Guidelines/Conventions_definitions /en-US/docs/MDN/Writing_guidelines/Experimental_deprecated_obsolete +/en-US/docs/MDN/Guidelines/Does_this_belong_on_MDN /en-US/docs/MDN/Writing_guidelines/What_we_write +/en-US/docs/MDN/Guidelines/Editorial /en-US/docs/MDN/Writing_guidelines/What_we_write +/en-US/docs/MDN/Guidelines/JSON_Structured_Data /en-US/docs/MDN/Writing_guidelines/Howto/JSON_Structured_data +/en-US/docs/MDN/Guidelines/Video /en-US/docs/MDN/Writing_guidelines/Howto/Images_media +/en-US/docs/MDN/Guidelines/Writing_style_guide /en-US/docs/MDN/Writing_guidelines/Writing_style_guide /en-US/docs/MDN/JavaScript /en-US/docs/Web/JavaScript /en-US/docs/MDN/Kuma /en-US/docs/MDN/Yari /en-US/docs/MDN/Kuma/API /en-US/docs/MDN/Tools/Unsupported_GET_API @@ -5504,13 +5543,41 @@ /en-US/docs/MDN/MDN_Product_Avisory_Board /en-US/docs/MDN/MDN_Product_Advisory_Board /en-US/docs/MDN/MDN_Product_Avisory_Board/Members /en-US/docs/MDN/MDN_Product_Advisory_Board/Members /en-US/docs/MDN/MDN_Product_Avisory_Board/Membership /en-US/docs/MDN/MDN_Product_Advisory_Board/Membership -/en-US/docs/MDN/Quick_start /en-US/docs/MDN/Contribute/Getting_started +/en-US/docs/MDN/Quick_start /en-US/docs/MDN/Community/Contributing/Getting_started +/en-US/docs/MDN/Structures /en-US/docs/MDN/Writing_guidelines/Page_structures /en-US/docs/MDN/Structures/:-ms-input-placeholder_pseudo-class /en-US/docs/Web/CSS/:placeholder-shown -/en-US/docs/MDN/Structures/API_references/API_reference_sidebars /en-US/docs/MDN/Contribute/Howto/Write_an_API_reference/Sidebars -/en-US/docs/MDN/Structures/Content_blocks /en-US/docs/MDN/Contribute/Markdown_in_MDN +/en-US/docs/MDN/Structures/API_references/API_reference_sidebars /en-US/docs/MDN/Writing_guidelines/Howto/Write_an_API_reference/Sidebars +/en-US/docs/MDN/Structures/Banners_and_notices /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Code_examples /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Compatibility_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Content_blocks /en-US/docs/MDN/Writing_guidelines/Howto/Markdown_in_MDN +/en-US/docs/MDN/Structures/Live_samples /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Macros /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Macros/Commonly-used_macros /en-US/docs/MDN/Writing_guidelines/Page_structures/Macros/Commonly_used_macros +/en-US/docs/MDN/Structures/Macros/Other /en-US/docs/MDN/Writing_guidelines/Page_structures/Macros/Other +/en-US/docs/MDN/Structures/Page_types /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Page_types/API_constructor_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_constructor_subpage_template +/en-US/docs/MDN/Structures/Page_types/API_event_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_event_subpage_template +/en-US/docs/MDN/Structures/Page_types/API_landing_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_landing_page_template +/en-US/docs/MDN/Structures/Page_types/API_method_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_method_subpage_template +/en-US/docs/MDN/Structures/Page_types/API_property_subpage_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_property_subpage_template +/en-US/docs/MDN/Structures/Page_types/API_reference_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/API_reference_page_template +/en-US/docs/MDN/Structures/Page_types/ARIA_Page_Template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/ARIA_Page_Template +/en-US/docs/MDN/Structures/Page_types/CSS_property_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/CSS_property_page_template +/en-US/docs/MDN/Structures/Page_types/CSS_selector_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/CSS_selector_page_template +/en-US/docs/MDN/Structures/Page_types/Glossary_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/Glossary_page_template +/en-US/docs/MDN/Structures/Page_types/HTML_element_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/HTML_element_page_template +/en-US/docs/MDN/Structures/Page_types/HTTP_header_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/HTTP_header_page_template +/en-US/docs/MDN/Structures/Page_types/SVG_element_page_template /en-US/docs/MDN/Writing_guidelines/Page_structures/Page_types/SVG_element_page_template +/en-US/docs/MDN/Structures/Quicklinks /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Specification_tables /en-US/docs/MDN/Writing_guidelines/Page_structures +/en-US/docs/MDN/Structures/Syntax_sections /en-US/docs/MDN/Writing_guidelines/Page_structures /en-US/docs/MDN/Tools/Document_parameters /en-US/docs/MDN/Tools/Unsupported_GET_API /en-US/docs/MDN/User_guide /en-US/docs/MDN/Tools /en-US/docs/MDN/User_guide/Troubleshooting_KumaScript_errors /en-US/docs/MDN/Tools/KumaScript/Troubleshooting +/en-US/docs/MDN/Writing_guidelines/Creating_moving_deleting /en-US/docs/MDN/Writing_guidelines/Howto/Creating_moving_deleting +/en-US/docs/MDN/Writing_guidelines/Research_technology /en-US/docs/MDN/Writing_guidelines/Howto/Research_technology +/en-US/docs/MDN/Writing_guidelines/What_we_write/Inclusion_criteria /en-US/docs/MDN/Writing_guidelines/What_we_write/Criteria_for_inclusion /en-US/docs/MDN_at_ten /en-US/docs/MDN/At_ten /en-US/docs/MDN_at_ten/Contributing_to_MDN /en-US/docs/MDN/Contribute /en-US/docs/MDN_at_ten/History /en-US/docs/MDN/At_ten/History_of_MDN @@ -6355,9 +6422,12 @@ /en-US/docs/Range/toString /en-US/docs/Web/API/range/toString /en-US/docs/ReadableStream /en-US/docs/Web/API/ReadableStream /en-US/docs/Regexp/match /en-US/docs/Web/EXSLT/regexp/match +/en-US/docs/Related/Criteria_for_inclusion /en-US/docs/MDN/Writing_guidelines/What_we_write/Criteria_for_inclusion /en-US/docs/Related/IMSC/Layout_in_IMSC /en-US/docs/Related/IMSC/Subtitle_placement /en-US/docs/Related/IMSC/Mapping_Time_Code_to_IMSC /en-US/docs/Related/IMSC/Mapping_video_time_codes_to_IMSC /en-US/docs/Related/IMSC/Using_imscJS_as_polyfill /en-US/docs/Related/IMSC/Using_the_imscJS_polyfill +/en-US/docs/Related/Process_for_selection /en-US/docs/MDN/Writing_guidelines/What_we_write/Criteria_for_inclusion +/en-US/docs/Related/Project_guidelines /en-US/docs/MDN/Writing_guidelines/What_we_write/Criteria_for_inclusion /en-US/docs/Resource_Timing_API /en-US/docs/Web/API/Resource_Timing_API /en-US/docs/SGML /en-US/docs/Glossary/SGML /en-US/docs/SMTP /en-US/docs/Glossary/SMTP @@ -12950,6 +13020,7 @@ /en-US/docs/layerY /en-US/docs/Web/API/MouseEvent/layerY /en-US/docs/length /en-US/docs/Web/CSS/length /en-US/docs/localName /en-US/docs/Web/API/Element/localName +/en-US/docs/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web /en-US/docs/MDN/Writing_guidelines/Page_structures/Live_samples /en-US/docs/metaKey /en-US/docs/Web/API/MouseEvent/metaKey /en-US/docs/mfs_temp /en-US/docs/Web/API/Document/fullscreen /en-US/docs/msFrameStep /en-US/docs/Web/API/HTMLVideoElement/msFrameStep diff --git a/files/en-us/_wikihistory.json b/files/en-us/_wikihistory.json index 8569bfbcfdd08ba..1c01687015ecfa8 100644 --- a/files/en-us/_wikihistory.json +++ b/files/en-us/_wikihistory.json @@ -13011,55 +13011,6 @@ "ziyunfei" ] }, - "MDN/About": { - "modified": "2020-04-22T17:54:34.199Z", - "contributors": [ - "jswisher", - "SphinxKnight", - "rana.dadu.77", - "mfuji09", - "cogpark", - "darby", - "AlemFarid", - "Grae-Drake", - "chrisdavidmills", - "Mirinth", - "envisioncodes", - "9999472", - "wbamberg", - "Sheppy", - "asmforce", - "jwhitlock", - "Jenna59", - "CrazyChick63", - "rbg3434", - "fitojb", - "Slawek37", - "leandroruel", - "LimeClover", - "serv-inc", - "dvincent", - "adminisrator", - "groovecoder", - "teoli", - "lewiscartman", - "microsoft", - "Sanantananda", - "wakka27", - "fscholz", - "moh.sugiarta", - "Jeremie", - "onei", - "eddyng23", - "cherrylover85", - "altigere", - "davidsuisse1", - "cdac", - "BenB", - "ethertank", - "Gerv" - ] - }, "MDN/At_ten": { "modified": "2020-12-14T11:30:31.427Z", "contributors": [ @@ -13120,238 +13071,6 @@ "Mars" ] }, - "MDN/Contribute/Feedback": { - "modified": "2020-12-12T03:21:30.655Z", - "contributors": [ - "sideshowbarker", - "cmiley656", - "chrisdavidmills", - "antinya21", - "SphinxKnight", - "tykfmfocm", - "apselivi", - "jswisher", - "iamshawna1812", - "cheknarin7", - "chinikes", - "tadsan", - "skssagor", - "sohbetxx", - "xsss", - "markwood87", - "ben-turner", - "wbamberg", - "evolmichelle", - "walka69", - "123hpsetupprinters", - "baccarattoyer", - "behnammodi", - "kosta1869", - "Bigbang123", - "anasroubi", - "Sheppy", - "WordConsultant", - "rajkumar0011", - "PareshParmar", - "Greatness", - "fscholz", - "polball", - "hnvgbrt7k", - "nobitaorama", - "Ravi7284", - "MR46DAYAT59", - "Montanacby", - "bartuspan", - "shahin0555", - "anandhv02", - "Ryan_Christian", - "cube1988", - "abogala85", - "seyaka", - "altigere", - "groovecoder", - "openjck", - "teoli", - "kosikfl" - ] - }, - "MDN/Contribute/Fixing_MDN_content_bugs": { - "modified": "2020-10-24T07:21:11.097Z", - "contributors": [ - "chrisdavidmills", - "mdsearle" - ] - }, - "MDN/Contribute/Getting_started": { - "modified": "2020-11-30T06:58:46.025Z", - "contributors": [ - "chrisdavidmills", - "officialsolarstreet11", - "sol07ab", - "SphinxKnight", - "dolunayiki", - "nguyenthanhdanh", - "jhastings", - "jungleboysweed1", - "sideshowbarker", - "k.kant.kumar933", - "sex-doll", - "AdrianaDJ", - "eljawara79", - "mfuji09", - "mercijoel2", - "itsbritime", - "sapnab500", - "jswisher", - "CloudWave_Inc", - "saleva80", - "pergolaimalat", - "oyyunttt", - "pamtentcm", - "aerocityescorts12", - "akshaysv63343", - "Coder-Adam", - "canticleindia", - "RainSlide", - "mrebrahim", - "Iftiahmed2", - "airwawekz", - "ZozoLaFlesh", - "ketoyemek", - "ExE-Boss", - "Backroads", - "Satta-kingdelhi", - "bediroglucom", - "junnydelacruz", - "peterbe", - "shh0884", - "DannyBaobei", - "alattalatta", - "KLIWONJagung", - "Tcw40", - "dcompcoder", - "FIFACOINSZONE", - "TrevTag", - "BohdanLesyk", - "jjjerrmmmy", - "iamvector", - "Akh-rman", - "ariscb10", - "aed1988", - "hercial61", - "Sherina69", - "totoro4sam", - "manalipankaj", - "Sp342h", - "avigdor21", - "Text.8013884634.Me", - "mukhtar-github", - "theanalogueman", - "bminard", - "Tauta2", - "Parziva_1", - "RafeyIqbalRahman", - "bnhassin", - "suravi-afroz", - "wbamberg", - "ruchisin9", - "PerseveranceMbewe", - "0zxo", - "a0989422508", - "Jayman2000", - "avllyx", - "iswanto1", - "Sheppy", - "BranislavGG", - "suterj", - "ptrpov", - "Piyagit", - "artorr", - "tarekanowar", - "varunnagpal12345", - "italktocomputers", - "hphuochung", - "robd4kk", - "KristaOliv", - "Jeremie", - "hidaytrahman", - "LOCAL0325", - "deju233", - "madupenyuburkandungan", - "iaahmed220", - "Fatama-Khanam+880-01741581419", - "jwhitlock", - "Dataware", - "SheehansSyndrome", - "bjohnson", - "amuntner-test", - "NameChangedAsItWasSpam", - "chinju1497", - "saranya", - "faradzhev_t", - "anand01", - "gedex", - "Eric_Anderson", - "mrenty", - "madusa294983", - "hosttor", - "jsx", - "teoli", - "microspeed", - "ebnaysina", - "x2357", - "migmecyber", - "Mrjaydude", - "gaviota", - "RASEl123_ahammed", - "Dnyaneshwar", - "groovecoder", - "80gregistratioin-7", - "vaas786786", - "dvincent", - "Tanzil", - "AmeerAssadi1", - "Umeaboy", - "warner", - "davmagikman", - "aamiryan23", - "udakpakembim", - "klez", - "dayenu", - "eellover", - "q8032482", - "Kathrincolyn", - "Ongkang763", - "mykhael", - "amita", - "MrCreepyGhost", - "apjanke", - "anoopgeorge91", - "samruda", - "tenorioming@yahoo.com", - "herstand", - "TechnoAyan", - "loslch", - "MauricioGil", - "LeoHirsch", - "Chandan1002", - "Vovan", - "kaustavdm", - "Priyanka13" - ] - }, - "MDN/Contribute/GitHub_best_practices": { - "modified": "2020-10-21T05:23:39.270Z", - "contributors": [ - "chrisdavidmills" - ] - }, - "MDN/Contribute/Help_beginners": { - "modified": "2020-10-09T11:27:17.278Z", - "contributors": [ - "chrisdavidmills" - ] - }, "MDN/Contribute/Howto": { "modified": "2020-12-14T11:30:11.910Z", "contributors": [ @@ -13360,403 +13079,31 @@ "khizarbhatti080", "ExE-Boss", "wbamberg", - "Sheppy", - "jswisher", - "klez", - "Brian102413" - ] - }, - "MDN/Contribute/Howto/Add_or_update_browser_compatibility_data": { - "modified": "2020-02-27T09:10:11.323Z", - "contributors": [ - "valgrimm", - "ExE-Boss", - "wbamberg", - "jswisher" - ] - }, - "MDN/Contribute/Howto/Convert_code_samples_to_be_live": { - "modified": "2020-09-28T14:41:41.230Z", - "contributors": [ - "mfuji09", - "SphinxKnight", - "atu6581", - "chrisdavidmills", - "AleksandrK69", - "wbamberg", - "jswisher", - "daisyrowley777", - "BM802", - "ErvisTusha", - "audiodude", - "stephaniehobson", - "Sheppy", - "ilyakamens" - ] - }, - "MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web": { - "modified": "2019-05-03T10:17:52.496Z", - "contributors": [ - "wbamberg", - "Sheppy", - "xfq", - "ifilin", - "jswisher", - "markg", - "hbloomer", - "Jeremie" - ] - }, - "MDN/Contribute/Howto/Create_and_edit_pages": { - "modified": "2020-12-14T11:30:49.881Z", - "contributors": [ - "SphinxKnight", - "rathore.solar", - "Sultanlido", - "sideshowbarker", - "osshomes2", - "Vfikr", - "chrisdavidmills", - "fahimsahriarfahad", - "fahimfahad35", - "Cancan", - "bestfitnessgear4u", - "nowseoagency", - "Bali", - "netnedir", - "ali78ahmed89", - "alattalatta", - "igomarta", - "televisiontadka219", - "bullrider78", - "puqlunk", - "qureshiashraf207", - "stevehendrym95", - "mrsumantabagh", - "pamtentcm", - "Bülteni", - "soujanyatelebu", - "PeterParker", - "learnearnguru", - "sosyaladres", - "safetycargopackers", - "yilmazolak35", - "jswisher", - "mandyakrs333", - "RomeRoot", - "kshitizp11", - "mfuji09", - "kokselvinc1", - "silkroadpharmacy01", - "Anonymous", - "prayagch", - "Hairistanbul", - "avasamedu", - "thesourcing.co", - "zhaoy88", - "Iam4re4L", - "CorfinaCapital", - "rajninegi786", - "sachinksamad", - "astrologylover", - "Yazid-CH", - "sudewadewi", - "aditya966560", - "Gururobert", - "Nawaf91", - "ij-startcanonco", - "abiebdragx", - "WEBSARB", - "xanderdb", - "Sumi_Oneness", - "ludochat", - "amiexporter", - "BURSASEO", - "sjsudan", - "subha7595", - "thesid01", - "sandeeppushp", - "kogei1", - "wbamberg", - "carterehc", - "10yendama", - "Romadmin", - "bebo2019", - "WIPocket", - "david_ross", - "adonthis", - "dafoeuf", - "Sheppy", - "himanshuxd", - "hannah3745", - "shubhamArora15", - "amanmahendra00", - "MrPj2u", - "charliecalvert", - "Milena2a", - "AppireddyT", - "stephaniehobson", - "Purnima-Ahirao", - "Gregjarvez", - "Alvey_oo5", - "ankitkamboj0", - "apoorvasingh17", - "Pratul1997", - "Teleburna", - "sebastianross", - "adirapinjamandana", - "timvuon", - "pcat", - "jwhitlock", - "SCO", - "rjanjic", - "Phe0nix", - "Coconut35101", - "villaalina", - "carrbrian180", - "KadirTopal", - "meganioe01lis", - "artistics-weddings", - "Herve-Mention", - "Vemaybaygiare-avia.vn", - "tonnywilliams", - "sandymillerSM", - "liuhy46", - "jsx", - "zerohost", - "nadiraltinbas", - "bhardwaj_75", - "aje44rseyscz", - "ZoroarkShade", - "cristianeramalho", - "Cassanta", - "DineshMv", - "netbun", - "ihsibosmonaj", - "Freelancer.MK", - "dek", - "teoli", - "tvchaska12", - "jakovkacan", - "astromechology", - "armukul", - "juan-castano", - "apoorva", - "Sharath_George_M", - "sreejith_sreedhar", - "arefin", - "Shafayet101", - "mothasimroman", - "sarthak.s", - "SandyStorm", - "byhorror", - "ajeya", - "mnedrow", - "jncraton", - "adeelimtiaz90", - "watership", - "Jack_Duthen", - "Mehmet_Kani", - "akhilnaik", - "trevorh", - "VarunKaushik", - "geek14", - "canisssius", - "arkapravamajumder", - "maybe", - "Graham2k13", - "crazy4years", - "williamr", - "SHELI", - "freebirdmrk", - "mgnrsb" - ] - }, - "MDN/Contribute/Howto/Document_a_CSS_property": { - "modified": "2020-02-18T19:54:27.563Z", - "contributors": [ - "jswisher", - "SphinxKnight", - "wbamberg", - "mfluehr", - "fscholz", - "teoli", - "Sebastianz", - "stephaniehobson", - "dharkness", - "FredB", - "Sheppy" - ] - }, - "MDN/Contribute/Howto/Document_an_HTTP_header": { - "modified": "2020-10-15T21:47:59.093Z", - "contributors": [ - "jpmedley", - "wbamberg", - "Jeremie", - "fscholz" - ] - }, - "MDN/Contribute/Howto/Document_web_errors": { - "modified": "2019-01-16T22:58:13.741Z", - "contributors": [ - "wbamberg", - "fscholz" - ] - }, - "MDN/Contribute/Howto/Migrate_external_content_to_MDN": { - "modified": "2019-07-15T08:26:43.504Z", - "contributors": [ - "Sheppy", - "wbamberg", - "jswisher", - "chrisdavidmills" - ] - }, - "MDN/Contribute/Howto/Report_a_problem": { - "modified": "2019-12-31T16:24:19.538Z", - "contributors": [ - "peterbe", - "jswisher", - "wbamberg", - "hamasaki" - ] - }, - "MDN/Contribute/Howto/Tag": { - "modified": "2020-03-25T16:30:08.477Z", - "contributors": [ - "Sheppy", - "jswisher", - "FeRDNYC", - "kenj115188", - "sideshowbarker", - "ExE-Boss", - "mfuji09", - "wbamberg", - "lucian95", - "johnjago", - "KadirTopal", - "pqpace", - "SphinxKnight", - "Bodo1445", - "helperman", - "devanshmanu", - "dkocho4", - "Uemmra3", - "ganshenhai", - "Jeremie", - "kiloan.com", - "Riyaj786", - "Andrew_Pfeiffer", - "dio", - "dwj83624", - "marowilson", - "fscholz", - "Newser", - "vernvernvern", - "maybe", - "teoli", - "markg" - ] - }, - "MDN/Contribute/Howto/Update_the_CSS_JSON_DB": { - "modified": "2019-03-23T22:47:20.816Z", - "contributors": [ - "wbamberg", - "Sebastianz", - "d4rkne55", - "mrstork", - "prayash", - "jswisher", - "teoli" - ] - }, - "MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary": { - "modified": "2020-12-14T04:30:45.303Z", - "contributors": [ - "mfuji09", - "ohaver", - "cadorej", - "wbamberg", - "Sheppy", - "jswisher", - "Aleksej", - "fscholz", - "Andrew_Pfeiffer", - "Jeremie", - "hbloomer", - "nasifmdtanjim" - ] - }, - "MDN/Contribute/Howto/Write_an_API_reference": { - "modified": "2019-05-03T10:17:00.872Z", - "contributors": [ - "Sheppy", - "wbamberg", - "stephaniehobson", - "Jedipedia", - "jpmedley", - "chrisdavidmills", - "fscholz", - "Sebastianz", - "jswisher", - "essymo", - "maybe", - "ifilin", - "AFBarstow", - "teoli", - "ChrisL" - ] - }, - "MDN/Contribute/Howto/Write_an_API_reference/Information_contained_in_a_WebIDL_file": { - "modified": "2019-10-01T06:57:46.015Z", - "contributors": [ - "chrisdavidmills", - "Bzbarsky", - "fscholz", - "wbamberg", - "Sheppy", - "xfq", - "teoli", - "overholt", - "markg", - "jswisher", - "jryans" - ] - }, - "MDN/Contribute/Howto/Write_an_API_reference/Sidebars": { - "modified": "2020-09-30T09:04:08.085Z", - "contributors": [ - "chrisdavidmills", - "Zearin_Galaurum", - "Sheppy", - "wbamberg", - "Thw0rted" + "Sheppy", + "jswisher", + "klez", + "Brian102413" ] }, - "MDN/Contribute/Howto/Write_for_SEO": { - "modified": "2020-04-29T13:47:45.328Z", + "MDN/Contribute/Howto/Add_or_update_browser_compatibility_data": { + "modified": "2020-02-27T09:10:11.323Z", "contributors": [ - "arjenlgill", + "valgrimm", + "ExE-Boss", "wbamberg", - "Sheppy", - "Havvy" + "jswisher" ] }, - "MDN/Contribute/Localize": { - "modified": "2020-12-12T05:45:10.381Z", + "MDN/Contribute/Howto/Update_the_CSS_JSON_DB": { + "modified": "2019-03-23T22:47:20.816Z", "contributors": [ - "SphinxKnight", - "irvinfly", - "chrisdavidmills", "wbamberg", - "pascalchevrel", - "jwhitlock", + "Sebastianz", + "d4rkne55", + "mrstork", + "prayash", "jswisher", - "mstanke", - "Sheppy", - "ethertank", - "FredB" + "teoli" ] }, "MDN/Contribute/Processes": { @@ -13834,15 +13181,6 @@ "jswisher" ] }, - "MDN/Guidelines": { - "modified": "2020-09-30T15:27:11.839Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "jswisher", - "Sheppy" - ] - }, "MDN/Guidelines/Code_guidelines": { "modified": "2020-09-30T15:27:12.089Z", "contributors": [ @@ -13930,111 +13268,6 @@ "jswisher" ] }, - "MDN/Guidelines/Video": { - "modified": "2020-09-30T15:27:13.970Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "Sheppy" - ] - }, - "MDN/Guidelines/Writing_style_guide": { - "modified": "2020-11-29T07:56:57.741Z", - "contributors": [ - "david.cdb004", - "SphinxKnight", - "nasseralzafer", - "chrisdavidmills", - "Zearin_Galaurum", - "Sheppy", - "mfuji09", - "Koavf", - "as.dillidonau.schrottmetalle", - "jswisher", - "televators", - "sideshowbarker", - "junnydelacruz", - "bershanskiy", - "ronald115188", - "wbamberg", - "horndoc", - "jenlouie", - "eToThePi-i", - "mfluehr", - "karlstolley", - "zfJames", - "coolmanishks", - "zedlambrecht", - "Tomche", - "xfq", - "Cthutq1", - "Clusker", - "247flashgames", - "akqj10", - "Sebastianz", - "WynnChen", - "PeterCapek", - "rolfedh", - "teoli", - "frbi", - "hoosteeno", - "Kovu", - "viny0972", - "takto", - "MandyChong", - "katarzyna1212.77", - "StephenKelly", - "OlingCat", - "Somnlent", - "SpyrosGkliatis", - "williamr", - "dbs", - "CJarie", - "enderandpeter", - "ethertank", - "madarche", - "jenzed", - "jackblack", - "Havvy", - "Lanoxx", - "markg", - "grendel", - "syssgx", - "SamB", - "P.A.", - "fscholz", - "Naesten", - "mgrassotti", - "George3", - "Racemoza", - "Edburns@acm.org", - "Mook", - "Mattg", - "Warddr", - "Yujin hong", - "BenoitL", - "Nc15", - "Nickolay", - "Ali h", - "Okome", - "Callek", - "Vilas", - "Ptak82", - "Cab", - "Leandro Mercês Xavier", - "Mw22", - "Dria", - "Skierpage", - "Gema", - "Kakurady", - "Csentis", - "Shimono", - "Yor.feix", - "GrandeBuzina", - "Pitchum", - "Tuqui" - ] - }, "MDN/MDN_Product_Advisory_Board": { "modified": "2019-06-05T12:41:23.682Z", "contributors": [ @@ -14070,187 +13303,217 @@ "KadirTopal" ] }, - "MDN/Structures": { - "modified": "2020-09-30T09:04:05.517Z", + "MDN/Tools": { + "modified": "2020-09-30T16:47:37.562Z", "contributors": [ "chrisdavidmills", "wbamberg", - "jswisher" + "ExE-Boss", + "jswisher", + "Sheppy" ] }, - "MDN/Structures/Banners_and_notices": { - "modified": "2020-09-30T09:04:05.678Z", + "MDN/Tools/KumaScript": { + "modified": "2020-11-30T12:49:14.386Z", "contributors": [ "chrisdavidmills", + "mfuji09", + "ExE-Boss", + "fscholz", "wbamberg", + "AndreDea", + "jwhitlock", + "pcat", + "jswisher", + "Sebastianz", + "xfq", + "escattone", "Sheppy", - "jswisher" + "AFBarstow", + "florent.maitralain", + "maybe", + "trevorh", + "lmorchard", + "groovecoder", + "Nickolay", + "kscarfone", + "edymtt", + "ashish_dgp", + "ethertank", + "teoli", + "Inkbug", + "markg" ] }, - "MDN/Structures/Code_examples": { - "modified": "2020-09-30T09:04:12.637Z", + "MDN/Tools/KumaScript/Troubleshooting": { + "modified": "2020-09-30T16:47:38.105Z", "contributors": [ "chrisdavidmills", - "onurbasturk", + "jwhitlock", "wbamberg", + "asmforce", "Sheppy", + "usernamealreadyis", "jswisher", - "KadirTopal" + "wyrewolwerowany", + "maybe", + "armukul", + "stephaniehobson" ] }, - "MDN/Structures/Compatibility_tables": { - "modified": "2020-10-15T21:08:46.049Z", + "MDN/Tools/Sample_server": { + "modified": "2020-09-30T16:47:39.734Z", "contributors": [ - "ryokohbato", "chrisdavidmills", - "mfuji09", + "wbamberg", "Sheppy", - "valgrimm", - "fscholz", - "yumetodo", + "jswisher" + ] + }, + "MDN/Writing_guidelines/Howto/Document_a_CSS_property": { + "modified": "2020-02-18T19:54:27.563Z", + "contributors": [ "jswisher", - "Akh-rman", - "ExE-Boss", + "SphinxKnight", "wbamberg", - "paul-mitchell", - "raju_dasa", - "germain", - "tyreer", - "abrahamwilliams", - "jpmedley", - "ddbeck", - "Sebastianz", + "mfluehr", + "fscholz", "teoli", - "Julee", - "LuisArt", - "Wladimir_Palant", - "GijsKruitbosch", - "Manuel_Strehl", - "paul.irish", - "dbruant" + "Sebastianz", + "stephaniehobson", + "dharkness", + "FredB", + "Sheppy" ] }, - "MDN/Structures/Live_samples": { - "modified": "2020-09-30T09:04:06.295Z", + "MDN/Writing_guidelines/Howto/Document_an_HTTP_header": { + "modified": "2020-10-15T21:47:59.093Z", "contributors": [ - "chrisdavidmills", + "jpmedley", + "wbamberg", + "Jeremie", + "fscholz" + ] + }, + "MDN/Writing_guidelines/Howto/Document_web_errors": { + "modified": "2019-01-16T22:58:13.741Z", + "contributors": [ + "wbamberg", + "fscholz" + ] + }, + "MDN/Writing_guidelines/Howto/Tag": { + "modified": "2020-03-25T16:30:08.477Z", + "contributors": [ + "Sheppy", "jswisher", - "garvitmangal", + "FeRDNYC", + "kenj115188", + "sideshowbarker", + "ExE-Boss", + "mfuji09", "wbamberg", + "lucian95", + "johnjago", + "KadirTopal", + "pqpace", "SphinxKnight", - "dima74", - "sideshowbarker", - "ajith913", - "Purnima-Ahirao", - "xfq", - "mfluehr", - "jwhitlock", - "pra92", - "duncanmcdonald", - "jsx", - "vidhi1902", + "Bodo1445", + "helperman", + "devanshmanu", + "dkocho4", + "Uemmra3", + "ganshenhai", + "Jeremie", + "kiloan.com", + "Riyaj786", + "Andrew_Pfeiffer", + "dio", + "dwj83624", + "marowilson", + "fscholz", + "Newser", + "vernvernvern", + "maybe", + "teoli", + "markg" + ] + }, + "MDN/Writing_guidelines/Howto/Write_a_new_entry_in_the_Glossary": { + "modified": "2020-12-14T04:30:45.303Z", + "contributors": [ + "mfuji09", + "ohaver", + "cadorej", + "wbamberg", "Sheppy", - "technoAri", - "trevorh", - "DevVikram", - "dbs", - "prasannamoharana", - "Rupesh", - "codepo8" + "jswisher", + "Aleksej", + "fscholz", + "Andrew_Pfeiffer", + "Jeremie", + "hbloomer", + "nasifmdtanjim" ] }, - "MDN/Structures/Macros": { - "modified": "2020-09-30T09:04:05.878Z", + "MDN/Writing_guidelines/Howto/Write_an_API_reference": { + "modified": "2019-05-03T10:17:00.872Z", "contributors": [ - "chrisdavidmills", + "Sheppy", "wbamberg", - "xfq", + "stephaniehobson", + "Jedipedia", + "jpmedley", + "chrisdavidmills", + "fscholz", + "Sebastianz", "jswisher", - "Sheppy" + "essymo", + "maybe", + "ifilin", + "AFBarstow", + "teoli", + "ChrisL" ] }, - "MDN/Structures/Macros/Commonly-used_macros": { - "modified": "2020-09-30T09:04:07.403Z", + "MDN/Writing_guidelines/Howto/Write_an_API_reference/Information_contained_in_a_WebIDL_file": { + "modified": "2019-10-01T06:57:46.015Z", "contributors": [ "chrisdavidmills", - "mfuji09", - "escattone", - "sideshowbarker", - "jswisher", - "hinell", - "walonge", - "ExE-Boss", - "wbamberg", + "Bzbarsky", "fscholz", - "teoli", - "jameshkramer", - "jwhitlock", - "david_ross", - "arai", + "wbamberg", "Sheppy", - "Nickolay", - "AFBarstow", - "pcat", - "jpmedley", - "cdr", - "trevorh", - "madarche", - "ethertank", - "lmorchard", - "myakura", + "xfq", + "teoli", + "overholt", "markg", - "SamB", - "Ruakh", - "IgorKitsa", - "mattmccutchen", - "Potappo", - "Jürgen Jeka", - "jenzed", - "Mook", - "Waldo", - "Jorend", - "Sevenspade", - "Diablownik", - "Yorfeix", - "Nc15", - "Taken", - "Okome", - "Leandro Mercês Xavier", - "Dria", - "Brcrgw", - "Banan", - "Maian", - "Prodoc", - "Wladimir_Palant" + "jswisher", + "jryans" ] }, - "MDN/Structures/Macros/Other": { - "modified": "2020-09-30T09:04:07.313Z", + "MDN/Writing_guidelines/Howto/Write_an_API_reference/Sidebars": { + "modified": "2020-09-30T09:04:08.085Z", "contributors": [ "chrisdavidmills", - "wbamberg", - "SphinxKnight", - "alattalatta", - "fscholz", + "Zearin_Galaurum", "Sheppy", - "jswisher" + "wbamberg", + "Thw0rted" ] }, - "MDN/Structures/Page_types": { - "modified": "2020-09-30T09:04:07.040Z", + "MDN/Writing_guidelines/Page_structures": { + "modified": "2020-09-30T09:04:08.762Z", "contributors": [ "chrisdavidmills", "mfuji09", "ExE-Boss", - "wbamberg", - "SphinxKnight", - "MrZhangJunShuai", "Sheppy", - "jswisher", - "david_ross" + "jpmedley", + "wbamberg" ] }, - "MDN/Structures/Page_types/API_constructor_subpage_template": { + "MDN/Writing_guidelines/Page_structures/API_constructor_subpage_template": { "modified": "2020-10-15T21:57:17.349Z", "contributors": [ "chrisdavidmills", @@ -14258,7 +13521,7 @@ "wbamberg" ] }, - "MDN/Structures/Page_types/API_event_subpage_template": { + "MDN/Writing_guidelines/Page_structures/API_event_subpage_template": { "modified": "2020-10-15T22:16:13.572Z", "contributors": [ "chrisdavidmills", @@ -14266,7 +13529,7 @@ "Zearin_Galaurum" ] }, - "MDN/Structures/Page_types/API_landing_page_template": { + "MDN/Writing_guidelines/Page_structures/API_landing_page_template": { "modified": "2020-10-15T21:56:39.044Z", "contributors": [ "chrisdavidmills", @@ -14275,7 +13538,7 @@ "Sheppy" ] }, - "MDN/Structures/Page_types/API_method_subpage_template": { + "MDN/Writing_guidelines/Page_structures/API_method_subpage_template": { "modified": "2020-10-15T21:57:18.954Z", "contributors": [ "chrisdavidmills", @@ -14284,7 +13547,7 @@ "wbamberg" ] }, - "MDN/Structures/Page_types/API_property_subpage_template": { + "MDN/Writing_guidelines/Page_structures/API_property_subpage_template": { "modified": "2020-10-15T21:57:15.719Z", "contributors": [ "chrisdavidmills", @@ -14293,7 +13556,7 @@ "wbamberg" ] }, - "MDN/Structures/Page_types/API_reference_page_template": { + "MDN/Writing_guidelines/Page_structures/API_reference_page_template": { "modified": "2020-10-15T21:57:16.658Z", "contributors": [ "chrisdavidmills", @@ -14302,7 +13565,7 @@ "wbamberg" ] }, - "MDN/Structures/Page_types/ARIA_Page_Template": { + "MDN/Writing_guidelines/Page_structures/ARIA_Page_Template": { "modified": "2020-09-30T09:04:12.619Z", "contributors": [ "chrisdavidmills", @@ -14312,7 +13575,7 @@ "yatil" ] }, - "MDN/Structures/Page_types/CSS_property_page_template": { + "MDN/Writing_guidelines/Page_structures/CSS_property_page_template": { "modified": "2020-10-15T21:57:23.996Z", "contributors": [ "chrisdavidmills", @@ -14321,7 +13584,7 @@ "wbamberg" ] }, - "MDN/Structures/Page_types/CSS_selector_page_template": { + "MDN/Writing_guidelines/Page_structures/CSS_selector_page_template": { "modified": "2020-10-15T21:57:24.149Z", "contributors": [ "chrisdavidmills", @@ -14330,142 +13593,103 @@ "wbamberg" ] }, - "MDN/Structures/Page_types/Glossary_page_template": { - "modified": "2020-09-30T09:04:10.557Z", + "MDN/Writing_guidelines/Page_structures/Commonly-used_macros": { + "modified": "2020-09-30T09:04:07.403Z", "contributors": [ "chrisdavidmills", - "wbamberg" + "mfuji09", + "escattone", + "sideshowbarker", + "jswisher", + "hinell", + "walonge", + "ExE-Boss", + "wbamberg", + "fscholz", + "teoli", + "jameshkramer", + "jwhitlock", + "david_ross", + "arai", + "Sheppy", + "Nickolay", + "AFBarstow", + "pcat", + "jpmedley", + "cdr", + "trevorh", + "madarche", + "ethertank", + "lmorchard", + "myakura", + "markg", + "SamB", + "Ruakh", + "IgorKitsa", + "mattmccutchen", + "Potappo", + "Jürgen Jeka", + "jenzed", + "Mook", + "Waldo", + "Jorend", + "Sevenspade", + "Diablownik", + "Yorfeix", + "Nc15", + "Taken", + "Okome", + "Leandro Mercês Xavier", + "Dria", + "Brcrgw", + "Banan", + "Maian", + "Prodoc", + "Wladimir_Palant" ] }, - "MDN/Structures/Page_types/HTML_element_page_template": { - "modified": "2020-10-15T21:57:28.232Z", + "MDN/Writing_guidelines/Page_structures/Glossary_page_template": { + "modified": "2020-09-30T09:04:10.557Z", "contributors": [ "chrisdavidmills", - "Zearin_Galaurum", "wbamberg" ] }, - "MDN/Structures/Page_types/HTTP_header_page_template": { - "modified": "2020-10-15T21:57:21.725Z", + "MDN/Writing_guidelines/Page_structures/HTML_element_page_template": { + "modified": "2020-10-15T21:57:28.232Z", "contributors": [ "chrisdavidmills", "Zearin_Galaurum", - "jpmedley", "wbamberg" ] }, - "MDN/Structures/Page_types/SVG_element_page_template": { - "modified": "2020-10-15T21:57:23.797Z", + "MDN/Writing_guidelines/Page_structures/HTTP_header_page_template": { + "modified": "2020-10-15T21:57:21.725Z", "contributors": [ "chrisdavidmills", "Zearin_Galaurum", - "wbamberg" - ] - }, - "MDN/Structures/Quicklinks": { - "modified": "2020-09-30T09:04:06.614Z", - "contributors": [ - "chrisdavidmills", - "mfuji09", - "ExE-Boss", - "wbamberg", - "jswisher", - "Sheppy" - ] - }, - "MDN/Structures/Specification_tables": { - "modified": "2020-09-30T09:04:06.743Z", - "contributors": [ - "chrisdavidmills", - "TrevorKarjanis", - "mfuji09", - "wbamberg", - "krosylight", - "Sheppy", - "SphinxKnight", - "fscholz", - "jswisher", - "Ms2ger", - "Sebastianz", - "teoli" - ] - }, - "MDN/Structures/Syntax_sections": { - "modified": "2020-09-30T09:04:08.762Z", - "contributors": [ - "chrisdavidmills", - "mfuji09", - "ExE-Boss", - "Sheppy", "jpmedley", "wbamberg" ] }, - "MDN/Tools": { - "modified": "2020-09-30T16:47:37.562Z", + "MDN/Writing_guidelines/Page_structures/Other": { + "modified": "2020-09-30T09:04:07.313Z", "contributors": [ "chrisdavidmills", "wbamberg", - "ExE-Boss", - "jswisher", - "Sheppy" - ] - }, - "MDN/Tools/KumaScript": { - "modified": "2020-11-30T12:49:14.386Z", - "contributors": [ - "chrisdavidmills", - "mfuji09", - "ExE-Boss", + "SphinxKnight", + "alattalatta", "fscholz", - "wbamberg", - "AndreDea", - "jwhitlock", - "pcat", - "jswisher", - "Sebastianz", - "xfq", - "escattone", - "Sheppy", - "AFBarstow", - "florent.maitralain", - "maybe", - "trevorh", - "lmorchard", - "groovecoder", - "Nickolay", - "kscarfone", - "edymtt", - "ashish_dgp", - "ethertank", - "teoli", - "Inkbug", - "markg" - ] - }, - "MDN/Tools/KumaScript/Troubleshooting": { - "modified": "2020-09-30T16:47:38.105Z", - "contributors": [ - "chrisdavidmills", - "jwhitlock", - "wbamberg", - "asmforce", "Sheppy", - "usernamealreadyis", - "jswisher", - "wyrewolwerowany", - "maybe", - "armukul", - "stephaniehobson" + "jswisher" ] }, - "MDN/Tools/Sample_server": { - "modified": "2020-09-30T16:47:39.734Z", + "MDN/Writing_guidelines/Page_structures/SVG_element_page_template": { + "modified": "2020-10-15T21:57:23.797Z", "contributors": [ "chrisdavidmills", - "wbamberg", - "Sheppy", - "jswisher" + "Zearin_Galaurum", + "wbamberg" ] }, "MDN/Yari": { @@ -23410,12 +22634,6 @@ "chrisdavidmills" ] }, - "Related/Criteria_for_inclusion": { - "modified": "2019-03-18T21:27:13.650Z", - "contributors": [ - "chrisdavidmills" - ] - }, "Related/IMSC": { "modified": "2019-03-26T05:50:28.680Z", "contributors": [ @@ -23488,19 +22706,6 @@ "tairt" ] }, - "Related/Process_for_selection": { - "modified": "2019-03-18T21:27:06.862Z", - "contributors": [ - "chrisdavidmills" - ] - }, - "Related/Project_guidelines": { - "modified": "2019-03-18T21:27:02.057Z", - "contributors": [ - "tairt", - "chrisdavidmills" - ] - }, "Web": { "modified": "2020-12-10T17:35:24.113Z", "contributors": [ diff --git a/files/en-us/mdn/about/index.md b/files/en-us/mdn/about/index.md deleted file mode 100644 index 2f19e938d28fc2a..000000000000000 --- a/files/en-us/mdn/about/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: About MDN Web Docs -slug: MDN/About -tags: - - Collaborating - - Community - - Copyright - - Documentation - - Guide - - Licenses - - MDN Meta ---- -{{MDNSidebar}} - -MDN Web Docs (previously known as MDN — the Mozilla Developer Network) is an evolving learning platform for Web technologies and the software that powers the Web, including [CSS](/en-US/docs/Web/CSS), [HTML](/en-US/docs/Web/HTML), and [JavaScript](/en-US/docs/Web/JavaScript). We also have a detailed set of beginner's learning material — see [Learn Web development](/en-US/docs/Learn). - -## Using MDN Web Docs content - -MDN's content is available free of charge, and under open source licenses. - -### Copyrights and licenses - -MDN's content is entirely available under various open source licenses. This section covers the types of content we provide and what licenses are in effect for each. - -#### Documentation and articles - -> **Note:** MDN content has been prepared with the contributions of authors from both inside and outside Mozilla. Unless otherwise indicated, the content is available under the terms of the [Creative Commons Attribution-ShareAlike license](https://creativecommons.org/licenses/by-sa/2.5/) (CC-BY-SA), v2.5 or any later version. - -When reusing MDN content, you need to ensure two things: - -1. Attribution is given to the original content. - - Please attribute "Mozilla Contributors" and include a hyperlink (online) or URL (in print) to the specific wiki page for the content being sourced. For example, to provide attribution for this article, you can write: - - > [About MDN](/en-US/docs/MDN/About) by [Mozilla Contributors](/en-US/docs/MDN/About/contributors.txt) is licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). - - Note that in the example, "Mozilla Contributors" links to the history of the cited page. See [Best practices for attribution](https://wiki.creativecommons.org/wiki/Marking/Users) for further explanation. - -2. Your reuse is published under the same license as the original content—CC-BY-SA v2.5 or any later version. - -#### Code samples and snippets - -Code samples added on or after August 20, 2010 are in the [public domain](https://creativecommons.org/publicdomain/zero/1.0/) ([CC0](https://creativecommons.org/publicdomain/zero/1.0/)). No licensing notice is necessary, but if you need one, you can use: "Any copyright is dedicated to the Public Domain. http\://creativecommons.org/publicdomain/zero/1.0/". - -Code samples added before August 20, 2010 are available under the [MIT license](https://opensource.org/licenses/mit-license.php); you should insert the following attribution information into the MIT template: "© \ \". - -Since the launch of the new Yari MDN platform on December 14 2020, there is currently no way to determine which one you need. We are working on this and will update this content soon. - -#### Contributions - -If you wish to contribute to this wiki, you must make your documentation available under the Attribution-ShareAlike license (or occasionally an alternative license already specified by the page you are editing), and your code samples available under [Creative Commons CC-0](https://creativecommons.org/publicdomain/zero/1.0/) (a Public Domain dedication). Adding to this wiki means you agree that your contributions will be made available under those licenses. - -Some older content was made available under a license other than those described above; these are indicated at the bottom of each page by way of an _Alternate License Block_. - -> **Warning:** No new pages may be created using alternate licenses. - -**Copyright for contributed materials remains with the author unless the author assigns it to someone else**. - -If you have any questions or concerns about anything discussed here, please contact [the MDN administrators](mailto:mdn-admins@mozilla.org?subject=MDN%20licensing%20question). - -#### Logos, trademarks, service marks and wordmarks - -The rights in the trademarks, logos, and service marks of the Mozilla Foundation, as well as the look and feel of this website, are not licensed under the Creative Commons license, and to the extent they are works of authorship (like logos and graphic design), they are not included in the work that is licensed under those terms. If you use the text of documents, and wish to also use any of these rights, or if you have any other questions about complying with our licensing terms for this collection, you should contact the Mozilla Foundation here: [licensing@mozilla.org](mailto:licensing@mozilla.org "mailto:licensing@mozilla.org"). - -### Linking to MDN - -We regularly get users asking us questions about how to link to MDN, or even if doing so is allowed. The short answer is: **yes, you can link to MDN!** Not only is the hypertext link the essence of the Web, it is both a way to point your users to valuable resources and a show of trust toward the work our community does. diff --git a/files/en-us/mdn/community/contributing/getting_started/index.md b/files/en-us/mdn/community/contributing/getting_started/index.md new file mode 100644 index 000000000000000..62a3faaee4145a2 --- /dev/null +++ b/files/en-us/mdn/community/contributing/getting_started/index.md @@ -0,0 +1,54 @@ +--- +title: Getting started with MDN Web Docs +slug: MDN/Community/Contributing/Getting_started +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +We are an open community of developers, technical writers, and learners building resources for a better Web, regardless of brand, browser, or platform. Anyone can contribute, and each person who does contribute makes us stronger. Together we can continue to drive innovation on the Web to serve the greater good. It starts here, with you. + +[Join us!](https://github.com/mdn/mdn-community/) + +## What can I do to help? + +There are multiple avenues you can take to contribute to MDN, depending on your skill set and interests. Therefore, along with each task, we provide a short description and an approximate time each type of task typically takes. + +> If unsure what to do, you are always welcome to [ask for help](https://github.com/mdn/mdn-community/). +> Also note that our small, but mighty docs team maintains this repo, to preserve our bandwidth, off topic conversations will be closed. + +## Primary contribution types + +We have created a [contributors task board](https://github.com/orgs/mdn/projects/25/views/1) to help you find contribution opportunities that will meaningfully impact the project. The board has an overview and separate views for specific contribution types. + +### Getting ready to contribute + +To contribute, you will need a GitHub account. If you do not already have one, go ahead and [sign up](https://github.com/signup) for an account before continuing. If you are new to GitHub, we encourage you to take the following free, self-paced courses and reading material offered by GitHub. With this knowledge, you can focus on your contributions and not learn a new tool at the same time. + +> NOTE: Do not feel overwhelmed or like you have to read through and complete _all_ of the course work. With the knowledge gained from the "Introduction to GitHub" course, you will be well on your way. + +- [Introduction to GitHub](https://github.com/skills/introduction-to-github) +- [Setting up Git](https://docs.github.com/en/get-started/quickstart/set-up-git) +- [GitHub workflow](https://docs.github.com/en/get-started/quickstart/github-flow) +- [Using Markdown](https://github.com/skills/communicate-using-markdown) + +### Additional reading and learning material + +- [Basic etiquette for open source projects](/en_US/docs/MDN/Community/Open_source_etiquette): If you've never contributed to an open source project before, we encourage you to read this document. +- [Learn web development](https://developer.mozilla.org/docs/Learn): If you are new to HTML, CSS, JavaScript, we have some great content to help you get started. +- [Deep dive into collaborating with pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) + +Some writing-specific contribution opportunities will require a reasonable understanding of the English language. That said, do not let perfect be the enemy of “good enough.” Even if your grammar isn’t good, don’t worry about it! We have a team of people who aim to ensure that MDN’s contents are as good as possible. In addition, someone will be along to ensure your work is tidy and well-written. + +Once you’ve decided what kind of task you want to work on, it is time to head over to the [contributors task board](https://github.com/orgs/mdn/projects/25/views/1), pick an issue, and let us know by commenting on the issue and tagging the `@mdn/mdn-community-engagement` team. Someone from the team will respond and assign the issue to you. + +This ensures that two people do not work on the same issue, and you will know who to contact should you get stuck. + +### Contributions + +When contributing, you agree to make your contributions available under the [Attribution-ShareAlike license](https://creativecommons.org/licenses/by-sa/4.0/) (or an alternative license already specified by the page you are editing). In addition, code samples are available under [Creative Commons CC-0](https://creativecommons.org/share-your-work/public-domain/cc0/) (a Public Domain dedication). + +> If you have any questions or concerns about anything discussed here, please [open a discussion](https://github.com/mdn/mdn-community/discussions/categories/content) and let us know. diff --git a/files/en-us/mdn/community/contributing/index.md b/files/en-us/mdn/community/contributing/index.md new file mode 100644 index 000000000000000..8d204ecf55bd097 --- /dev/null +++ b/files/en-us/mdn/community/contributing/index.md @@ -0,0 +1,15 @@ +--- +title: Contributing to MDN Web Docs +slug: MDN/Community/Contributing +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +- [Getting started](/en-US/docs/MDN/Community/Contributing/Getting-Started) +- [Our repositories](/en-US/docs/MDN/Community/Contributing/Our_repositories) +- [Translated content](/en-US/docs/MDN/Community/Contributing/Translated_content) +- [Security vulnerability response](/en-US/docs/MDN/Community/Contributing/Security_vulnerability_response) diff --git a/files/en-us/mdn/community/contributing/our_repositories/index.md b/files/en-us/mdn/community/contributing/our_repositories/index.md new file mode 100644 index 000000000000000..8383752605b4065 --- /dev/null +++ b/files/en-us/mdn/community/contributing/our_repositories/index.md @@ -0,0 +1,85 @@ +--- +title: MDN Web Docs Repositories +slug: MDN/Community/Contributing/Our_repositories +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +[MDN Web Docs](https://developer.mozilla.org) is a complex project with lots of moving parts. It's a good idea to get familiar with the projects different repositories. This document intends to help you find the different repositories (repos) you may need when contributing to different parts of the MDN Web Docs project. + +## Repository tiers + +### Tier 1 + +Code in these repositories are core to the MDN Web Docs project and runs on https://developer.mozilla.org, or another Mozilla owned domain. + +- [mdn/content](https://github.com/mdn/content) +- [Yari](https://github.com/mdn/yari) +- [rumba](https://github.com/mdn/rumba) +- [browser-compat-data](https://github.com/mdn/browser-compat-data) +- [interactive-examples](https://github.com/mdn/interactive-examples) +- [bob](https://github.com/mdn/bob) + +A Tier 1 project should have at least 3 members, including at least two with admin permissions. + +### Tier 2 + +These repositories are mainly concentrated on supporting content such as code examples, the MDN Web Docs learn area, localisation, and examples projects. Examples include: + +- [dom-examples](https://github.com/mdn/dom-examples) +- [translated-content](https://github.com/mdn/translated-content) +- [learning-area](https://github.com/mdn/learning-area) + +A Tier 2 project should have at least 2 members, including at least one with admin permissions. + +### Tier 3 + +These are repository used for project planning, documenting the project itself, and community engagement. Examples include: + +- [mdn-community](https://github.com/mdn/mdn-community) +- [mdn/mdn](https://github.com/mdn/mdn) +- [content-team-projects](https://github.com/mdn/content-team-projects). + +A Tier 3 project needs 1 admin. + +## Core repos + +- **Core content**: . The most important repo for MDN Web Docs content — this is where all the core English content of the site is stored, and where you'll make all standard changes to page content. +- **MDN Web Docs Platform**: . This is where the MDN Web Docs platform is stored, and where you'll go if you want to make changes to our high level page structure or rendering machinery. +- **Browser compatibility data**: . This is where the data used to generate the browser compatibility tables found on our reference pages is stored ([example](/en-US/docs/Web/HTML/Element/progress#browser_compatibility)). If you have information about browser compatibility of Web features — or are willing and able to do some research and/or experimentation — you can help update MDN's [Browser Compatibility Data](https://github.com/mdn/browser-compat-data/blob/main/docs/contributing.md) +- **Interactive examples**: . This repo stores the example code blocks that are found at the top of many of our reference pages ([example](/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)). Edit those examples here. +- **Bob** aka Builder of Bits: + This repo stores the rendering code that produce the nice editable, copyable examples found at the top of many of our reference pages ([example](/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)). +- **Translated content**: . This is where localized content lives. Go here if you want to help translate pages into any of our [actively maintained locales](https://github.com/mdn/translated-content#locales). +- **Workflows**: + A growing collection of reusable GitHub Actions for use on MDN Web Docs repositories. + +## Code example + +### Code examples and demos + +[//]: # "TODO: UPDATE WITH REPO TRIAGE" + +The MDN Web Docs GitHub org contains a huge number of example repos. These generally contain free-standing code examples that are often linked to from our pages, but occasionally you’ll find one of these examples embedded into a page using a macro call like this — `{{EmbedGHLiveSample("css-examples/learn/tasks/grid/grid1.html", '100%', 700)}}`. + +Always remember, if you are updating the code on any given page, you'll need to update the corresponding example repo as well. + +- [**dom-examples**](https://github.com/mdn/dom-examples) +- [**css-examples**](https://github.com/mdn/css-examples) +- [**webaudio-examples**](https://github.com/mdn/webaudio-examples) +- [**webassembly-examples**](https://github.com/mdn/webassembly-examples) +- [**indexeddb-examples**](https://github.com/mdn/indexeddb-examples) +- [**js-examples**](https://github.com/mdn/js-examples) +- [**html-examples**](https://github.com/mdn/html-examples) +- [**web-components-examples**](https://github.com/mdn/web-components-examples) +- [**webextension-examples**](https://github.com/mdn/webextensions-examples) +- [**webgl-examples**](https://github.com/mdn/webgl-examples) +- [**pwa-examples**](https://github.com/mdn/pwa-examples) +- [**houdini-examples**](https://github.com/mdn/houdini-examples) +- [**headless-examples**](https://github.com/mdn/headless-examples) +- [**perf-examples**](https://github.com/mdn/perf-examples) +- [**devtools-examples**](https://github.com/mdn/devtools-examples) diff --git a/files/en-us/mdn/community/contributing/security_vulnerability_response/index.md b/files/en-us/mdn/community/contributing/security_vulnerability_response/index.md new file mode 100644 index 000000000000000..db6f19e90e31c20 --- /dev/null +++ b/files/en-us/mdn/community/contributing/security_vulnerability_response/index.md @@ -0,0 +1,42 @@ +--- +title: Security Vulnerability Response Steps +slug: MDN/Community/Contributing/Security_vulnerability_response +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +## A little history + +On ~27 November 2018 an NPM security vulnerability was announced for all users that depend, either directly or indirectly, on the [event-stream](https://snyk.io/blog/malicious-code-found-in-npm-package-event-stream) package. It was a very targeted attack, that only activated if the Copay bitcoin wallet was installed, whereupon it tried to steal the contents. + +Two of our projects, namely [interactive-examples](https://github.com/mdn/interactive-examples/) and [BoB](https://github.com/mdn/bob/), depend on an NPM package called [npm-run-all](https://www.npmjs.com/package/npm-run-all), which in turn depended on the event-stream package. + +This meant that not only was staff at risk, but people who have forked either of these repositories might have been affected as well. Thankfully the maintainers of the affected package reacted swiftly and released an update to address the issue. Because we have the [Renovate bot](https://github.com/marketplace/renovate) running against these repositories, there was a [pull request](https://github.com/mdn/interactive-examples/pull/1239/) ready to merge. + +This only resolved one part of the problem though. Our users still needed to be notified. + +## Steps taken + +The community for especially the interactive-examples project was rather large, and not everyone active, but we still needed a way to reach out to everyone. The first step was then to open an issue against each of the repositories detailing the problem: + +- [interactive-examples](https://github.com/mdn/interactive-examples/issues/1242) +- [bob](https://github.com/mdn/bob/issues/184) + +That by itself is not enough as users do not necessarily actively monitor issues. We therefore, needed to look at all of the forks of the project, for example: https://github.com/mdn/interactive-examples/network/members + +We then copied all of the usernames for these users and pinged them on the above issue, for example: https://github.com/mdn/interactive-examples/issues/1242#issuecomment-442110598 + +This was very effective from the response we received in the issue, but we could not leave it there. The next step was to post a comment on each of the open pull requests informing the user of the problem, and what their next steps should be: +https://github.com/mdn/interactive-examples/pull/1144 + +With this, we felt rather confident that between us reaching out, and coverage of the issue online by NPM and other channels, would ensure that we ensured our users are safe. + +As a final step, @schalkneethling posted a message on Twitter which was in turn retweeted by the [MDN Web Docs Twitter account](https://twitter.com/schalkneethling/status/1067436637385179136). + +### In closing + +Hopefully, these types of incidents will be few and far between. Should this happen again however, the above provides a solid guideline on how to respond. diff --git a/files/en-us/mdn/contribute/localize/index.md b/files/en-us/mdn/community/contributing/translated_content/index.md similarity index 77% rename from files/en-us/mdn/contribute/localize/index.md rename to files/en-us/mdn/community/contributing/translated_content/index.md index 25e2aa9a3adefd3..e57326e322299cd 100644 --- a/files/en-us/mdn/contribute/localize/index.md +++ b/files/en-us/mdn/community/contributing/translated_content/index.md @@ -1,10 +1,11 @@ --- -title: Localizing MDN -slug: MDN/Contribute/Localize +title: MDN Web Docs Localisation +slug: MDN/Community/Contributing/Translated_content +page-type: mdn-community-guide tags: - - Localization - - MDN Meta - - l10n + - meta + - community-guidelines + - governance --- {{MDNSidebar}} @@ -19,12 +20,12 @@ We have frozen all localized content (meaning that we won't accept any edits to ### Brazilian Portuguese (pt-BR) - Discussions: [Telegram (MDN localization in Brazilian Portuguese)](https://t.me/mdn_l10n_pt_br) -- Current contributors: [Nathália Pissuti](https://github.com/nathipg), [Josiel Rocha](https://github.com/josielrocha), [Clóvis Lima Júnior](https://github.com/clovislima) +- Current contributors: [Luisa Migueres](https://github.com/lumigueres), [Julio Sampaio](https://github.com/juliosampaio), [Josiel Rocha](https://github.com/josielrocha), [Clóvis Lima Júnior](https://github.com/clovislima) ### Chinese (zh-CN, zh-TW) - Discussions: [Telegram (MozTW L10n channel)](https://moztw.org/community/telegram/) -- Current contributors: [Irvin](https://github.com/irvin), [t7yang](https://github.com/t7yang), [yin1999](https://github.com/yin1999) +- Current contributors: [Irvin](https://github.com/irvin), [t7yang](https://github.com/t7yang), [dibery](https://github.com/dibery) ### French (fr) @@ -39,17 +40,17 @@ We have frozen all localized content (meaning that we won't accept any edits to ### Korea (ko) - Discussions: [Kakao Talk (#MDN Korea)](https://open.kakao.com/o/gdfG288c) -- Current contributors: [hochan222](https://github.com/hochan222), [yechoi42](https://github.com/yechoi42), [cos18](https://github.com/cos18), [GwangYeol-Im](https://github.com/GwangYeol-Im), [pje1740](https://github.com/pje1740), [yujo11](https://github.com/yujo11) +- Current contributors: [hochan222](https://github.com/hochan222), [yechoi42](https://github.com/yechoi42), [cos18](https://github.com/cos18), [GwangYeol-Im](https://github.com/GwangYeol-Im), [pje1740](https://github.com/pje1740), [nKiNk](https://github.com/nKiNk), [yujo11](https://github.com/yujo11) ### Russian (ru) - Discussions: [Matrix (#mdn-l10n-ru channel)](https://chat.mozilla.org/#/room/#mdn-l10n-ru:mozilla.org) -- Current contributors: [armanpwnz](https://github.com/armanpwnz), [captainspring](https://github.com/captainspring), [myshov](https://github.com/myshov), [Saionaro](https://github.com/Saionaro), [sashasushko](https://github.com/sashasushko), [lex111](https://github.com/lex111) +- Current contributors: [armanpwnz](https://github.com/armanpwnz), [captainspring](https://github.com/captainspring), [mpstv](https://github.com/mpstv), [myshov](https://github.com/myshov), [Saionaro](https://github.com/Saionaro), [sashasushko](https://github.com/sashasushko), [lex111](https://github.com/lex111) ### Spanish (es) - Discussions: [Matrix (#mdn-l10n-es channel)](https://chat.mozilla.org/#/room/#mdn-l10n-es:mozilla.org) -- Current maintainers: [JuanVqz](https://github.com/JuanVqz), [davbrito](https://github.com/davbrito), [Graywolf9](https://github.com/Graywolf9), [Vallejoanderson](https://github.com/Vallejoanderson), [marcelozarate](https://github.com/marcelozarate), [Jalkhov](https://github.com/Jalkhov) +- Current maintainers: [@JuanVqz](https://github.com/JuanVqz), [@dacalderonp](https://github.com/dacalderonp), [@lasr21](https://github.com/lasr21), [@tuxxy](https://github.com/tuxxy) > **Note:** If you want to discuss unfreezing a currently frozen locale, the [guidelines on what is required can be found here](https://github.com/mdn/translated-content/blob/main/PEERS_GUIDELINES.md#activating-a-locale). diff --git a/files/en-us/mdn/community/discussions/index.md b/files/en-us/mdn/community/discussions/index.md new file mode 100644 index 000000000000000..2592d161b4397a4 --- /dev/null +++ b/files/en-us/mdn/community/discussions/index.md @@ -0,0 +1,212 @@ +--- +title: MDN Web Docs Community Discussions +slug: MDN/Community/Discussions +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +On MDN Web Docs, we encourage our community to start and/or engage in discussions around topics related to the overall project. Discussions are categorized by different topic areas. We ask that you keep each discussion focused on the topic at hand instead of covering multiple topics in one discussion. + +_NOTE:_ mdn-community/discussions is not the place to report problems. For any problems you encounter on MDN Web Docs, it is best to raise issues against the [relevant project](https://github.com/mdn/). If you're ever in doubt about whether to open an issue or a discussion, consider the following guidelines: + +- Issues are for reporting a bug or a work item with clearly defined and actionable tasks and outcomes. +- Discussions are the right place if the issue needs a discussion to agree upon a course of action or define an actionable piece of work. + +Check out the definition of each discussion category below so that you can start your discussion in the proper place. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Discussion CategoryDiscussion Subject
+ 📣 + Announcements + + This category is reserved for MDN Web Docs staff. While there is nothing + in place to prevent others from posting here, we ask that you choose one + of the other available categories. +
+ 🔮 + Browser compatibility data + + Discussions related to the + browser-compat-data + project. +
+ ✏️ + Content + + Discussions related to the + content on MDN Web Docs. + Note: This is not the place to ask for help with code examples. + For code-related help, please + join our community on Discourse. +
+ 🙋 + Content suggestions + + Discussions related to ideas for new content or improvements to existing + content on MDN Web Docs. You can propose your ideas here along with a + description of how the change will be useful to our readers and/or links + to relevant resources. We commonly label these as opportunity + assessments. +
+ 🎨 + Design system + + Discussions related to design improvements. Design is subjective, but we + are always open to suggestions from the community. Any improvement that + can help the MDN Web Docs experience even better for a wider audience is + welcome. If you have constructive feedback around the design, user + experience, and accessibility of MDN Web Docs, we'd love to hear from + you. +
+ 👩‍💻 + Code examples + + Discussions related to all code examples on MDN Web Docs. This includes + interactive examples, live samples and static code examples. For help + with general coding challenges on MDN Web Docs, please + join our community on Discourse. +
+ 🌐 + Translated content + + Discussions related to the + translated-content + repository covering our + supported locales. This is also typically where + announcements of macro deprecation + will happen. +
+ 👾 + MDN Plus + + Discussions related to the existing + MDN Plus feature set + as well as feature ideas. For MDN Plus support such as subscriptions, + please refer to our + official support channel. +
+ 🛠️ + Platform + + Discussions related to the + core MDN Web Docs platform. + Your suggestions to improve the architecture and existing features, such + as navigation and search, are welcome. However, if you believe you found + a bug related to the platform, please + report it + on the Yari repository. This is also the place for discussions related + to existing tooling, such as + BoB, + markdown, + reusable workflows, etc. + NOTE: This category is not for MDN Plus-related feature discussions. + There is a separate discussion category for MDN Plus. +
+ 🤖 + Polls + + This category is meant for use by the MDN Web Docs staff. We will use + this category to run polls around topics where we need your input. So, + keep your eyes peeled. 👀 +
diff --git a/files/en-us/mdn/community/index.md b/files/en-us/mdn/community/index.md new file mode 100644 index 000000000000000..73e38ab1107ab83 --- /dev/null +++ b/files/en-us/mdn/community/index.md @@ -0,0 +1,51 @@ +--- +title: MDN Web Docs Community Guidelines +slug: MDN/Community +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +👋 Welcome to MDN Web Docs on GitHub! MDN Web Docs is an open-source, collaborative project that documents web platform technologies, including [HTML](/en-US/docs/Web/HTML), [CSS](/en-US/docs/Web/CSS), [JavaScript](/en-US/docs/Web/JavaScript), and [Web APIs](/en-US/docs/Web/API). We also provide extensive [learning resources](/en-US/docs/Learn) for early-stage developers and students. + +## Ways to contribute + +[//]: # "TODO: Remember to update these links as we move the documentation around." + +- [Fixing known high impact issues](https://github.com/orgs/mdn/projects/25/views/1) +- [Reviewing pull requests](/en-US/docs/MDN/Community/Pull_requests/) +- [Help beginners to learn on MDN Web Docs](/en-US/docs/MDN/Community/Learn_forum/) +- [Contribute to MDN Web Docs interactive examples](https://github.com/mdn/interactive-examples/blob/main/CONTRIBUTING.md) +- [Help translate MDN Web Docs](/en-US/docs/MDN/Community/Contributing/Translated_content) +- [Help fix known platform issues](https://github.com/mdn/yari/issues) +- [Help us keep browser compatibility data up to date.](https://github.com/mdn/browser-compat-data) + +## Quick Links + +- [Our repositories overview](contributing/our-repositories/) +- [Users and teams](users-teams/) +- [If you are familiar with Git and GitHub](./contributing/getting-started/general/index.md) +- [Get Started with Git and GitHub](./contributing/getting-started/beginners/index.md) + +## Code of conduct + +By participating in and contributing to our projects and discussions, you acknowledge that you have read and agree to the [Mozilla community participation guidelines](https://github.com/mdn/mdn-community/blob/main/CODE_OF_CONDUCT.md). + +## Get in touch + +You can communicate with the MDN Web Docs team and community through our [Matrix channel](https://chat.mozilla.org/#/room/#mdn:mozilla.org), forums on [Discourse](https://discourse.mozilla.org/c/mdn/236), and discussions on [GitHub](https://github.com/mdn/mdn-community/discussions). + +- If you are learning web development and are stuck on a coding problem, we have [active forums](https://discourse.mozilla.org/c/mdn/learn/250) where you can ask questions and get help. + +### General support questions + +We are a small team working hard to keep up with the documentation demands of a continuously changing web ecosystem. Unfortunately, we just can't help with general support questions. For general help while learning to code, please refer to the following resources: + +- [Learn web development](https://developer.mozilla.org/docs/Learn) +- [MDN Web Docs learn forum](https://discourse.mozilla.org/c/mdn/learn/250) +- [Stackoverflow](https://stackoverflow.com/questions/) + +Any issues, discussions, or pull requests opened on repositories requesting support will be directed here, then closed and locked. diff --git a/files/en-us/mdn/community/issues/content_suggestions_feature_proposals/index.md b/files/en-us/mdn/community/issues/content_suggestions_feature_proposals/index.md new file mode 100644 index 000000000000000..21c51adee35b097 --- /dev/null +++ b/files/en-us/mdn/community/issues/content_suggestions_feature_proposals/index.md @@ -0,0 +1,48 @@ +--- +title: Proposing new content or features for MDN Web Docs +slug: MDN/Community/Issues/Content_suggestions_feature_proposals +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +We are always interested in hearing from our community about new content or feature suggestions you may have for MDN Web Docs. However, even though we are open to suggestions, we have to keep the following in mind: + +- MDN Web Docs is run and managed by a small internal team. We also rely heavily on our partners and community to help us keep MDN Web Docs the best resource for web developers on the web. As such, we will sometimes have to say no to new content or features because we will simply not be unable to maintain them long-term. +- MDN Web Docs is also focused on documenting open web standards; some content might not be a good fit. This does not mean the idea or content is not good, just that MDN Web Docs is not the best place for it. + +Keeping that in mind, if you _do_ want to propose content or features for MDN Web Docs, please follow the below steps. + +## Open a content suggestions and feature proposal issue + +When you go to open a [new issue](https://github.com/mdn/mdn/issues/new/choose), you will find a template called "New content or feature suggestions." This is the issue template to use when suggesting new content or features. The issue template does require quite a bit of information but is very deliberate. + +1. It ensures we have all the information we need to review your proposal without much back and forth. +2. It helps you to think through your proposal as you complete the form. + +Once you have completed the form and submitted the issue, a core team member will get back to you within a week to two weeks, depending on the complexity of your proposal. + +## Participate in the discussion and wait for approval + +If we feel the proposal might be a good fit, we will [start a discussion](https://github.com/mdn/mdn-community/dicsussions) on our MDN community discussions repository. This is to get input from our partners and the wider community. We encourage you to monitor the discussion and join in as appropriate. + +## Opening an issue + +Suppose a consensus is reached that this is content we want to add or a feature we want to build. In that case, we will open an issue against the appropriate repository referencing the original proposal and the discussion and fill in any gaps so the issue is clearly actionable. + +## Work is assigned + +At this point, the work will be prioritized and assigned to those responsible for ensuring it is implemented and reviewed. + +## Open pull request + +Once the work is ready for review, a pull request should be opened, which again references the proposal, discussion, and issue. This ensures that we always have the full context of the work. Finally, the required people will be assigned, and the review process will start. + +## Work is reviewed and merged + +Here again, depending on the complexity of the content or feature, the review stage can be lengthy. We ask for your patience and that you continue to be involved as appropriate. Once we have approval from at least two internal team members, we are ready to merge the pull request. + +This will conclude the entire process, and the content or feature will be available on MDN Web Docs. diff --git a/files/en-us/mdn/community/issues/index.md b/files/en-us/mdn/community/issues/index.md new file mode 100644 index 000000000000000..21b4300347732d0 --- /dev/null +++ b/files/en-us/mdn/community/issues/index.md @@ -0,0 +1,125 @@ +--- +title: Using GitHub Issues on MDN Web Docs +slug: MDN/Community/Issues +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +[Issues](https://docs.github.com/en/github/managing-your-work-on-github/about-issues) are used to track all bugs and work that has a clear actionable outcome. If you have found a bug with either our content or the platform, please search current open issues against the [relavant repository](/en_US/docs/MDN/Community/Contributing/Our_repositories/) to ensure someone has not already reported the issue. If the issue is new, please file an issue using the relavant template available in the repository. + +> NOTE: If an issue has a triage label, we haven't reviewed it yet, and you shouldn't begin work on it. + +If the issue you are filing is not to report a bug, please ensure that it lists actionable tasks or a clear outcome. For example: + +```markdown +## Remove {{ warning }} macro from documents + +We should no longer be using the `{{ warning }}` macro in our documentation. + +### Task description + +We should therefore replace all instances of the `{{ warning }}` macro with the following: + +> **Warning:** Main subject line +> +> Details of the warning. +> It can have multiple paragraphs. + +### Actionable outcome + +- [ ] There are no more instances of the ``{{ warning }}` macro in the `mdn/content` repository. +- [ ] Deprecate `{{ warning }}` macro +- [ ] Notify localisation team leads of the change. +``` + +## Opening an issue + +What info should be included +What we accept and don't accept + +Discussions should be here + + + +Priority: + +- `p0` Urgent: Something is broken and needs to be fixed immediately. +- `p1` High priority: This is needed, but not something that's broken and affecting our users. +- `p2` Medium priority: It would be great to get this done if there aren't any other high priority tasks, chances are this issue will escalate to high priority soon enough. +- `p3` Low priority: This is a nice to have. Small chance of it escalating, but something we should consider. + +## Make progress, not noise + +Think carefully about the way you handle communication in the project — make sure it is useful, and that it doesn’t make other contributors jobs harder. Submitting pull requests to fix issues is great, but are they truly useful, and easy to review? Filing issues and joining in other conversations is fine, but are your issues and comments on topic, or are they just adding noise? + +As a rule, do: + +- Use [GitHub discussion](https://github.com/mdn/mdn-community/discussions) before filing an issue. This helps to keep issues focused and productive. +- Ask questions using other mechanisms like [chat rooms](https://chat.mozilla.org/#/room/#mdn:mozilla.org) or [forums](<(https://discourse.mozilla.org/c/mdn/236)>) if you are not sure whether something is useful or have a simple question. +- Read the [contributor documentation]() and [how to write documentation]() first to try to solve the issue yourself. + +Don’t: + +- Complicate issues by trying to discuss multiple topics at once, or making off-topic comments. +- Open lots of issues asking vague questions. +- Ask questions without trying to solve the problem yourself first. + +## Working on an issue + +All repositories have an issue tracker, where you can find tasks to help contribute + +Most repositories have a `help-wanted` label or `good-first-issue` label. Some do not, but this is not a pre-requisite and you are welcome to browse and pick something that is suitable for your skill set. + +Once you've found an issue you'd like to work on, make sure no one else is assigned to the issue. Add a comment saying you would like to work on it and assign the issue to yourself. + +Most issues need some investigation before work can start, if you need to ask questions ask for help in the [MDN Web Docs chat room](https://chat.mozilla.org/#/room/#mdn:mozilla.org) on [Matrix](https://wiki.mozilla.org/Matrix). + +If you take on an issue we expect work to happen in a timely manner. If you can no longer take on the task, leave a comment and unassign yourself. + +Fork and branch the repository, do your work and open a [pull request](/en_US/docs/MDN/Community/Pull_requests). + +_(more stuff)_ + +Now and then, you may run into problems while using MDN. Whether it's a problem with site infrastructure or an error in documentation content, you can either try to fix it yourself or report the problem. While the former is preferred, the latter is sometimes the best you can manage, and that's okay too. + +The best thing you can possibly do is fix problems you spot yourself — this is done by updating the site source: + +- The MDN content itself is found in the [content](https://github.com/mdn/content) repo. +- The MDN platform code, which renders the content as MDN, is found in the [yari](https://github.com/mdn/yari) repo. + +Both repos include useful information to guide you on how to contribute. + +However, maybe you don't know the answer or are in the middle of a deadline on your own project, and need to jot down the problem so someone can look at it later. + +The way to report a documentation problem by filing an [documentation issue](https://github.com/mdn/content/issues) or [platform issue](https://github.com/mdn/yari/issues), depending on what the problem you've discovered relates to. + +## When choosing a GitHub issue to work on + +1. Write a comment in the issue saying that you would like to take it on, and we'll assign you to it. + + - If someone else is already assigned to the issue: + + 1. If this was more than one week ago, and there has not been much activity, @mention them and ask them if you can take it over, or otherwise help get it to completion. + + - If they agree for you to take it, we'll assign you to it and remove them. + - If they agree for you to take it and some work has been done already, or the agreement is to help them out with it, we'll assign you to it alongside them. + + 2. If it was less than one week ago, then have some patience, and give them a chance to work on it. + +2. If the issue has been marked as complete but needing a review, and you want to review it, @mention them in the comments and say you'll review it. + +## When you've been assigned to an issue + +1. Scope out the remainder of the work that needs to be done. + + - If the issue is well-described, and the work is pretty obvious, go ahead and do it. + - If the issue is not well-described, and/or you are not sure what is needed, feel free to @mention the poster and ask for more information. + - If you are not still sure who to ask, ask for help in the [MDN Web Docs chat room](https://chat.mozilla.org/#/room/#mdn:mozilla.org) on [Matrix](https://wiki.mozilla.org/Matrix). + +2. Once you think you've fixed an issue, ask for a review in the comments. +3. Once an issue has been successfully reviewed and comments answered, you can mark it as closed. +4. If you no longer have time to work on an issue, let us know in a comment so we can assign it someone else. diff --git a/files/en-us/mdn/contribute/processes/content_bug_triage/index.md b/files/en-us/mdn/community/issues/issue_triage/index.md similarity index 97% rename from files/en-us/mdn/contribute/processes/content_bug_triage/index.md rename to files/en-us/mdn/community/issues/issue_triage/index.md index 439086908bf4410..0cbf1cacc493e5b 100644 --- a/files/en-us/mdn/contribute/processes/content_bug_triage/index.md +++ b/files/en-us/mdn/community/issues/issue_triage/index.md @@ -1,16 +1,12 @@ --- -title: Triage process for MDN content bugs -slug: MDN/Contribute/Processes/Content_bug_triage +title: Issue triage on MDN Web Docs +slug: MDN/Community/Issues/Issue_triage +page-type: mdn-community-guide tags: - - MDN - - MDN Meta - - Meta - - Meta Docs - - Content bugs - - Process - - Triage + - meta + - community-guidelines + - governance --- -{{MDNSidebar}} This document looks at the process for triaging content bugs and getting them ready for contributors to effectively work on. @@ -18,7 +14,7 @@ This document looks at the process for triaging content bugs and getting them re Anyone can report a content bug by writing an issue at using the "Content bug" issue template, or by using the "Report a problem with this content on GitHub" link at the bottom of each MDN page. -Once reported, content bugs are listed at , and are designed to be done by individuals with minimal process requirements. Anyone is welcome to work on a content bug, using the process outlined at [Fixing MDN content bugs](/en-US/docs/MDN/Contribute/Fixing_MDN_content_bugs). +Once reported, content bugs are listed at , and are designed to be done by individuals with minimal process requirements. Anyone is welcome to work on a content bug, using the process outlined at [Fixing MDN content bugs](/en_US/docs/MDN/Community/Issues). ## Overall triage process diff --git a/files/en-us/mdn/contribute/help_beginners/index.md b/files/en-us/mdn/community/learn_forum/index.md similarity index 51% rename from files/en-us/mdn/contribute/help_beginners/index.md rename to files/en-us/mdn/community/learn_forum/index.md index c39ab31539b69f6..f4a518c287ae4cd 100644 --- a/files/en-us/mdn/contribute/help_beginners/index.md +++ b/files/en-us/mdn/community/learn_forum/index.md @@ -1,12 +1,11 @@ --- -title: Help beginners to learn on MDN! -slug: MDN/Contribute/Help_beginners +title: MDN Web Docs Learn Forum +slug: MDN/Community/Learn_forum +page-type: mdn-community-guide tags: - - Beginner - - Contribute - - HELP - - Learning - - MDN + - meta + - community-guidelines + - governance --- {{MDNSidebar}} @@ -32,37 +31,36 @@ In the [MDN learning forum](https://discourse.mozilla.org/c/mdn/learn/250), ther ## How to help -1. First of all, [sign up for an MDN account](/en-US/docs/MDN/Contribute/Getting_started#step_1_create_an_account_on_mdn), if you don't already have one. You don't absolutely need to do this to help in the learning area, but it will be useful in the long run. -2. Also sign up for [Mozilla Discourse](https://discourse.mozilla.org/), if you haven't already. -3. Have a look at [Learn web development](/en-US/docs/Learn) section and gain a basic level of familiarity with what's there, if you haven't already (see the [Structure of the MDN Learning Area](#structure_of_the_mdn_learning_area) section below for help). +1. Sign up for [Mozilla Discourse](https://discourse.mozilla.org/), if you haven't already. +2. Have a look at [Learn web development](/en-US/docs/Learn) section and gain a basic level of familiarity with what's there, if you haven't already (see the [Structure of the MDN Learning Area](#structure_of_the_mdn_learning_area) section below for help). ### Once you are set up 1. Have a look at the [learning forum](https://discourse.mozilla.org/c/mdn/learn/250) and see if there are any posts that have no replies — this is the best place to start. - - Hint: If you can't find any that have no replies, check some of the other ones that were recently updated and see if you can add anything useful that has not already been said. + - Hint: If you can't find any that have no replies, check some of the other ones that were recently updated and see if you can add anything useful that has not already been said. 2. If the post you are replying to is a general ask for help, reply to them, and give them as much help as you've got time for. 3. If the post you are replying to is requesting an assessment for one of the "test your skill"/"assessment" tasks: - 1. Identify which article/task is being assessed, and find the associated marking guide for it. It is totally OK to ask the person who submitted the post if they can give you the link to the assessment/skill test. - 2. Identify the person's code — they should give it to you in the form of a codepen/jsfiddle/jsbin link, or similar. If they don't provide it in a form that is easy to assess, it is perfectly OK to ask them to put it in codepen, jsfiddle, or similar. + 1. Identify which article/task is being assessed, and find the associated marking guide for it. It is totally OK to ask the person who submitted the post if they can give you the link to the assessment/skill test. + 2. Identify the person's code — they should give it to you in the form of a codepen/jsfiddle/jsbin link, or similar. If they don't provide it in a form that is easy to assess, it is perfectly OK to ask them to put it in codepen, jsfiddle, or similar. - - A common problem is when people post their code directly into a discourse message — discourse renders HTML elements and turns quotes into smartquotes, which breaks code. It is much better to get it sent over as a URL to a shareable code editor app. + - A common problem is when people post their code directly into a discourse message — discourse renders HTML elements and turns quotes into smartquotes, which breaks code. It is much better to get it sent over as a URL to a shareable code editor app. - 3. Read through the code and assess it + 3. Read through the code and assess it - 1. Does it work, and does it give you the result that it should give? - 2. If not, why doesn't it work? - 3. Are there any tips you can give the person to make the code better (more efficient, best practice, etc.)? + 1. Does it work, and does it give you the result that it should give? + 2. If not, why doesn't it work? + 3. Are there any tips you can give the person to make the code better (more efficient, best practice, etc.)? - 4. Give them a report on how they did: + 4. Give them a report on how they did: - 1. Some of the marking guides suggest a marking scheme with points for each bit of the question, but you don't need to be that accurate. - 2. If the person did great except for a few nitpicks, tell them the nitpicks, but give them lots of praise too. - 3. If the person was nearly there but it wasn't quite right, tell them they did great, but then share the fixes they'd need to make it work, and perhaps even link to the marking guide so they can see what we did. - 4. If the person is not really anywhere near a working solution, be kind and encouraging and try to give them a few clues as to what direction they should go in. Give them another chance to try to do it better. - 5. If you need assistance with anything, ask for help in the [MDN Web Docs chat room](https://chat.mozilla.org/#/room/#mdn:mozilla.org) on [Matrix](https://wiki.mozilla.org/Matrix). + 1. Some of the marking guides suggest a marking scheme with points for each bit of the question, but you don't need to be that accurate. + 2. If the person did great except for a few nitpicks, tell them the nitpicks, but give them lots of praise too. + 3. If the person was nearly there but it wasn't quite right, tell them they did great, but then share the fixes they'd need to make it work, and perhaps even link to the marking guide so they can see what we did. + 4. If the person is not really anywhere near a working solution, be kind and encouraging and try to give them a few clues as to what direction they should go in. Give them another chance to try to do it better. + 5. If you need assistance with anything, ask for help in the [MDN Web Docs chat room](https://chat.mozilla.org/#/room/#mdn:mozilla.org) on [Matrix](https://wiki.mozilla.org/Matrix). > **Note:** Important: Above all, be patient, be friendly, be kind. Remember — most of these folks are beginners. @@ -73,14 +71,14 @@ When helping answer questions related to the [Learn web development](/en-US/docs 1. Have a look through the page structure in general. 2. Especially look at the types of assessments available, - - from the numerous "test your skills" articles available (e.g. see [/en-US/docs/Learn/JavaScript/Building_blocks/conditionals#Test_your_skills!](/en-US/docs/Learn/JavaScript/Building_blocks/conditionals#test_your_skills!)) - - to the more in-depth assessments at the end of some modules (e.g. see [/en-US/docs/Learn/JavaScript/Building_blocks/Image_gallery](/en-US/docs/Learn/JavaScript/Building_blocks/Image_gallery)) + - from the numerous "test your skills" articles available (e.g. see [/en-US/docs/Learn/JavaScript/Building_blocks/conditionals#Test_your_skills!](/en-US/docs/Learn/JavaScript/Building_blocks/conditionals#test_your_skills!)) + - to the more in-depth assessments at the end of some modules (e.g. see [/en-US/docs/Learn/JavaScript/Building_blocks/Image_gallery](/en-US/docs/Learn/JavaScript/Building_blocks/Image_gallery)) 3. Have a look at the GitHub repos associated with the learning area (most of the files are available in , some are in ). Most of the examples learners will want help with are contained here. 4. Each assessment/skill test has an associated marking guide and recommended solution available, to help you assess their work. 5. There are patterns that make it easier to find these resources, for example: - - The above "test your skills" marking guide and resources are available at . - - The above assessment marking guide and resources are available at . + - The above "test your skills" marking guide and resources are available at . + - The above assessment marking guide and resources are available at . It will seem tricky to navigate around all this to begin with, but you'll find it easier in time, as you become more familiar with the exercises. diff --git a/files/en-us/mdn/contribute/fixing_mdn_content_bugs/index.md b/files/en-us/mdn/community/mdn_content/index.md similarity index 90% rename from files/en-us/mdn/contribute/fixing_mdn_content_bugs/index.md rename to files/en-us/mdn/community/mdn_content/index.md index 12eeed2e9da41ec..b535f981ebcb55c 100644 --- a/files/en-us/mdn/contribute/fixing_mdn_content_bugs/index.md +++ b/files/en-us/mdn/community/mdn_content/index.md @@ -1,10 +1,12 @@ --- -title: Fixing MDN content bugs -slug: MDN/Contribute/Fixing_MDN_content_bugs +title: Contributing to MDN Web Docs content +slug: MDN/Community/MDN_content +page-type: mdn-community-guide tags: - - Bugs - - Contribute - - MDN + - meta + - community-guidelines + - governance + - mdn-content --- {{MDNSidebar}} @@ -18,11 +20,11 @@ To help you choose what content issues to work on, we've sorted them using GitHu The labels below help you find tasks based on how much time you have available. -| Label | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | -| [Less-than-30-minute tasks on the content repo](https://github.com/mdn/content/issues?q=is%3Aissue+is%3Aopen+label%3A%22time%3A+-30mins%22) | A task that will probably take less than 30 minutes. | -| [Less-than-3-hour tasks on the content repo](https://github.com/mdn/content/issues?q=is%3Aissue+is%3Aopen+label%3A%22time%3A+-3hr%22) | A task that will probably take less than 3 hours. | -| [Less-than-2-day tasks on the content repo](https://github.com/mdn/content/issues?q=is%3Aissue+is%3Aopen+label%3A%22time%3A+-2days%22) | A task that will probably take less than 2 days. | +| Label | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| [Less-than-30-minute tasks on the content repo](https://github.com/mdn/content/issues?q=is%3Aissue+is%3Aopen+label%3A%22time%3A+-30mins%22) | A task that will probably take less than 30 minutes. | +| [Less-than-3-hour tasks on the content repo](https://github.com/mdn/content/issues?q=is%3Aissue+is%3Aopen+label%3A%22time%3A+-3hr%22) | A task that will probably take less than 3 hours. | +| [Less-than-2-day tasks on the content repo](https://github.com/mdn/content/issues?q=is%3Aissue+is%3Aopen+label%3A%22time%3A+-2days%22) | A task that will probably take less than 2 days. | If you'd prefer to browse your tasks and choose by technology category instead, you can also find content type labels on [issues in the content repository](https://github.com/mdn/content/issues). @@ -49,4 +51,3 @@ If you'd prefer to browse your tasks and choose by technology category instead, 3. Once you've fixed an issue, ask the submitter for a review and, hopefully, they will tell you whether they think more work is required. We will get involved if needed. 4. Once the issue is verified fixed, it can be closed. The person closing the issue can be either the original issue submitter, or an MDN staff member. -> **Note:** When choosing and working on an issue, you might also find our [GitHub best practices](/en-US/docs/MDN/Contribute/GitHub_best_practices) and [Getting started on MDN](/en-US/docs/MDN/Contribute/Getting_started) guides useful. diff --git a/files/en-us/mdn/community/mdn_content/issues/index.md b/files/en-us/mdn/community/mdn_content/issues/index.md new file mode 100644 index 000000000000000..217264f6b60e181 --- /dev/null +++ b/files/en-us/mdn/community/mdn_content/issues/index.md @@ -0,0 +1,13 @@ +--- +title: Using Issues on MDN Content +slug: MDN/Community/MDN_content/Issues +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance + - mdn-content +--- +{{MDNSidebar}} + +TBD diff --git a/files/en-us/mdn/community/mdn_content/pull_requests/index.md b/files/en-us/mdn/community/mdn_content/pull_requests/index.md new file mode 100644 index 000000000000000..bb7adb83974b72c --- /dev/null +++ b/files/en-us/mdn/community/mdn_content/pull_requests/index.md @@ -0,0 +1,62 @@ +--- +title: Pull Request Etiquette and Process for MDN Content +slug: MDN/Community/MDN_content/Pull_requests +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance + - mdn-content +--- +{{MDNSidebar}} + +## Overall process + +This section describes how contributors make changes on MDN Web Docs and how the changes are reviewed and land on the site. + +### Types of content changes on MDN Web Docs + +Content changes we get on MDN Web Docs are related to a variety of work streams, some of which include: + +- **Day-to-day content improvement work**: This includes documentation of new APIs, new CSS properties, and other significant content additions. This is usually done by MDN Web Docs staff working for Mozilla, Google, Open Web Docs, Samsung, etc., but also sometimes by community volunteers. +- **"Drive-by” fixes**: This includes small updates done to the site to fix typos, grammatical issues, and technical inaccuracies. These issues are usually found by users of MDN Web Docs. +- **Content bug fixes**: These are usually done by volunteers to close issues on mdn/content repo. + +### How content changes are reviewed + +Regardless of how content changes are done, they will be submitted as pull requests on this repo, which requires rapid reviewing and merging to ensure that the site does not get out-of-date. This is managed in the following way: + +1. **Reviewer assignment**: Different MDN staff members and volunteers have been assigned as "topic review owners", meaning that when a pull request related to a particular topic area of the site (e.g. the CSS reference, or the learning area) is opened, it will be assigned to that area's topic review owner(s). This is handled using the CODEOWNERS file, in which particular content directories are assigned to the respective reviewing team. +2. **Review, approval, merge**: Once the review has been done and the pull request has been approved, the assigned reviewer merges the pull request. +3. **Content update on the site**: The site is rebuilt once every 24 hours to ensure that the content does not get too stale. So volunteers can see their changes go live after 24 hours. + +### Things to consider before opening a pull request + +These guidelines apply to anyone opening a PR to make a change on MDN Web Docs. + +- **Open issue or discussion before opening PR**: If your PR would contain any kind of significant complexity (for example, it contains technical changes and isn't just a typo fix, grammatical improvement, or a formatting/structural change), please open an [issue](https://github.com/mdn/content/issues/new/choose) or [discussion](https://github.com/mdn/mdn-community) to describe why you're making the change, how the change would improve the content, and anything else we need to know about the change. Specifically for content suggestions or feature proposals, we have a [well documented](../../issues/content-suggestions-feature-proposals/) process to follow. +- **Keep the PR short (1 issue per PR)**: Each PR should contain a single logical change or a related set of changes that make sense to submit together. If a PR becomes too large or contains too many unrelated changes, it becomes too difficult to review, and may begin to look suspicious (it is easier to hide malicious changes in a large PR. In such cases, the reviewer has the right to close your PR, and ask that you submit a separate PR for each logical set of changes that belong together. It is also good practice to reference the relevant issue in your PR description using [GitHub’s special syntax](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue). This helps maintenance as GitHub will automatically close linked issues once the PR is merged. +- **PR to update grammar**: PRs should not contain large amounts of grammar updates. Seemingly insignificant changes can change the meaning of technical content, so these need a careful review. Keep in mind that MDN Web Docs contains technical documentation; you should not report basic improvements in the grammar but only cases where the grammar is clearly incorrect. +- **PR to update a demo repository**: For PRs that update API usage, there needs to be an accompanying PR on the mdn/content repository to update the corresponding relevant documentation. Such a PR can be rejected if there is no corresponding content PR. +- **Only enable auto-merge for approved PRs**: It is not a recommended practice to select the “Enable auto-merge (squash)” checkbox on your PRs that are waiting to be reviewed or approved. + +### Guidelines for after submitting a pull request + +We have general guidelines for what to do and expect after a PR has been opened. Please [refer to these guidelines](../../pull-requests/). + +### Guidelines for pull request review assignments + +These guidelines apply to anyone who is tasked with reviewing MDN content PRs. + +#### If you are the assigned reviewer + +- **Add a starting comment**: Add a comment as soon as possible that you are aware of the PR and will start the review soon. This is an important step to avoid someone else reviewing the PR at the same time as you and so that others know it’s on your radar for review. +- **Ask for information from the PR author**: You can request more information to help with your review if the PR author has not explained why they are making this change. Ideally, they should reference an issue that they’re trying to fix in this PR. +- **Ask for help**: If you’re open to receiving or want technical help with the review, add the `review-help-needed` label. + +If you don't understand a content change that you've been selected to review or feel that it is too large and complex for you to deal with, don't panic! Feel free to reach out to someone else to ask for help, like a colleague or someone else in your group of topic review owners (if you know who they are). If you are not sure who to approach for help, then ping our `@mdn/core-yari-content` group to ask for help. + +Related to the above point, it is rare that you'll be required to review a large, complex content change with no warning, like a complete page rewrite, or the addition of several new reference pages or tutorials. Usually such changes are done as part of specific work streams where the content has been approved for addition and reviewer(s) have been assigned already. In such cases, the PR should be linked to an issue that explains all these details. If you are not sure, ask the PR author if they need a review of the content, and where the rationale behind the change is explained. Ping our team on [MDN Web Docs chat room](https://chat.mozilla.org/#/room/#mdn:mozilla.org) to ask for help if you are still not sure or if you think the content is suspicious. + +- **Close PR with unrelated changes**: You have the right to close a PR if it is too complex and/or contains multiple unrelated changes and ask the PR author to submit their changes in smaller atomic chunks. +- **Ask for load balancing help**: If your plate is full at the moment and you don’t think you will be able to complete the review in a timely manner, copy the `@mdn/core-yari-content` team and ask if someone else can take up the review. diff --git a/files/en-us/mdn/contribute/open_source_etiquette/index.md b/files/en-us/mdn/community/open_source_etiquette/index.md similarity index 69% rename from files/en-us/mdn/contribute/open_source_etiquette/index.md rename to files/en-us/mdn/community/open_source_etiquette/index.md index d852bf146f12672..d1064ec2a96df28 100644 --- a/files/en-us/mdn/contribute/open_source_etiquette/index.md +++ b/files/en-us/mdn/community/open_source_etiquette/index.md @@ -1,50 +1,44 @@ --- -title: Basic etiquette for open source projects -slug: MDN/Contribute/Open_source_etiquette +title: Open Source Etiquette +slug: MDN/Community/Open_source_etiquette +page-type: mdn-community-guide tags: - - Best practices - - Community - - Open source - - MDN - - Beginners + - meta + - community-guidelines + - governance + - open-source --- {{MDNSidebar}} -If you've not worked on an open-source project (OSP) before, it is a good idea to read this article before starting to contribute to MDN (or other open-source projects). There are a few best practices to adopt that will help ensure that you and the other project contributors feel valued and safe, and stay productive. +If you've not worked on an open source project (OSP) before, it is a good idea to read this article before starting to contribute to MDN Web Docs (or other open source projects). There are a few best practices to adopt that will help ensure that you and the other project contributors feel valued and safe, and stay productive. This article won't teach you everything about contributing to open source; the aim here is more to give you some good starting points to think about as you get started with open source contributions. ## Think about why you are contributing to an OSP -Before you start contributing to an open-source project, ask yourself why you want to do that. It is fine if the answer to this question is just "I'm bored and I want to find something productive to do with my time", but you can probably go deeper than that. +Before you start contributing to an open source project, ask yourself why you want to do that. It is fine if the answer to this question is just "I'm bored and I want to find something productive to do with my time", but you can probably go deeper than that. Even better reasons might include: - I use this tool all the time and found a bug in it/want to help make it better. - I want to help other people use the tool more successfully. - I want to help other people contribute to the project more successfully. -- I want to improve my skills. -- I want to publicly demonstrate my skills as part of my college or university course. -- I want to publicly demonstrate my skills to improve my chances of getting a job. +- I want to improve my own skills. +- I want to publicly demonstrate my own skills as part of my college or university course. +- I want to publicly demonstrate my own skills to improve my chances of getting a job. Some of these reasons are self-serving, and that's OK — if you are spending your time working on a project for free, then it is fair to expect to get something out of it. In addition, having a clear set of reasons for contributing will make it easier to decide what to work on first. -Some not-so-good reasons to start contributing are: - -- I want someone to talk to. -- I want some people to troll/boss around. -- I want to show off how amazing I am. - Your presence on the project should be productive, and it shouldn't stop others from being so too. -## Be polite, be kind, and avoid incendiary or offensive language +## Be polite, be kind, avoid incendiary or offensive language We could abbreviate this to "be kind". This is our number one bit of advice for anyone starting open source contributions. Be kind to the other contributors on the project, and it will be a happier and more productive place. This includes: - Thanking people if they help you. -- Congratulating people where appropriate (for example, when they land their first pull request or fix a particularly difficult bug). +- Congratulating people where appropriate (for example if they land their first ever pull request, or fix a particularly difficult bug). - Always responding respectfully to people, even if you feel like the answer to their question was a bit obvious, or that they are repeating themselves. - Trying to help people to do better next time, in a supportive way, e.g. during pull request reviews or as you answer their questions. Saying "this is wrong" or "here is the answer" is nowhere near as helpful as saying "This is OK, but I feel that this would be better if you tried doing it more like this, here's a blog post for more ideas" or "you can find the answer here; also check out this link for more common answers". @@ -52,26 +46,26 @@ You and the other contributors are (or should be) here because they want to make - Knowledge of the project and the technologies used to build it - Gender, sexuality, age, languages spoken, location, political views, religion, or other personal attributes -- Experience with open-source projects +- Experience with open source projects - Confidence - Expectations - Sense of humor -You should therefore keep what you write on the topic as much as possible, staying away from potential controversial off-topic subjects like religion or politics, and being supportive and respectful even if you disagree with someone, or don't like a decision they've made. +You should therefore keep what you write on topic as much as possible, staying away from potential controversial off-topic subjects like religion or politics, and being supportive and respectful even if you disagree with someone, or don't like a decision they've made. -Also, you should refrain from any swearing / offensive language on MDN, even if it is not directed at anyone in particular. It is not needed for participation, and some people are really sensitive to it. +Also, you should refrain from any swearing / offensive language, even if it is not directed at anyone in particular. It is not needed for participation, and some people are really sensitive to it. Be aware that there are rules in place in any good OSP to protect its contributors against being made to feel uncomfortable while contributing. This usually comes in the form of a CODE_OF_CONDUCT.md file on GitHub. -For example, MDN's repos are governed by the wide-reaching [Mozilla Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/). Usually, mildly offensive behavior on MDN repos (such as constantly being off-topic/disruptive, or being rude) will usually be first responded to by a warning on the repo, followed by a final warning, then a temporary or permanent ban. More serious behavioral problems such as hate speech or threats against another contributor will not be tolerated, and will likely result in an instant ban. +For example, MDN's repos are governed by the wide-reaching [Mozilla Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/). Usually mildly offensive behavior on MDN Web Docs repos (such as constantly being off-topic/disruptive, or being rude) will usually be first responded to by a warning on the repo, followed by a final warning, then a temporary or permanent ban. More serious behavioral problems such as hate speech or threats against another contributor will not be tolerated, and will likely result in an instant ban. If you receive anything that makes you feel uncomfortable, you should always report it using the mechanism provided on the code of conduct. ## Choose effective contributions -Think about what you want to do on the project. For example, we have a large list of issues filed at , broken up by various GitHub labels into estimated time to fix, technology categories, and more. Another good label to look for is "good first issue", which is generally given to issues that are quite simple and good for beginners to get started with. We are also soon going to start triaging our issues more extensively, by adding other labels such as priority indicators. Try picking some issues that you think you can manage with the time you have available, and ask to be assigned to them. +Think about what you want to do on the project. For example, we have a large list of issues filed at on the [contributtors task board](https://github.com/orgs/mdn/projects/25/views/1), broken up by various task types. -You could also contribute by opening pull requests to fix problems that you come across while reading MDN articles. +You could also contribute by opening [pull requests](/en_US/docs/MDN/Community/Pull_requests) to fix problems that you come across while reading MDN articles. A lot of the work on MDN revolves around writing documentation and code examples, but there are other ways to contribute too: @@ -85,26 +79,26 @@ Every fix is useful, no matter how small, and we won't turn any fix away. Nevert - Updating code styling just because "you like that style better". - Updating language style "just because you like that style better". - Changing pages from US English to British English. -- Adding or removing a bunch of punctuation when there's not anything wrong. +- Adding or removing a bunch of punctuation when there's not really anything wrong. - Changing the testing framework we are using for something else because you prefer it. -In many cases, things are like they are on OSPs for a reason. You should read their style guides if they have one and if in doubt about whether something is productive, always ask first! +In many cases, things are like they are on OSPs for a reason. You should read their style guides if they have one, and if in doubt about whether something is productive, always ask first! ## Read the manual -Good OSPs will always make contributor documentation readily available. On GitHub projects, it is usually in the repo's CONTRIBUTING.md file, or sometimes in the project's README.md file. Being a documentation project, MDN content has a [README](https://github.com/mdn/content/blob/main/README.md) and a decent set of contributor docs on the site itself (see [Contributing to MDN](/en-US/docs/MDN/Contribute)). +Good OSPs will always make contributor documentation readily available. On GitHub projects, it is usually in the repo's CONTRIBUTING.md file, or sometimes in the project's README.md file. Being a documentation project, MDN content has a [README](https://github.com/mdn/content/blob/main/README.md) and a decent set of contributor docs on the site itself (see [Contributing to MDN](/en-US/docs/MDN/Community)). -Don't be afraid to ask for help, but ALWAYS try to find the answer to your question first before asking. This way you build up your knowledge of the project and become more independent, and don't put an unnecessary burden on the other contributors. +Don't be afraid to ask for help, but ALWAYS try to find the answer to your question first before asking. This way you build up your knowledge of the project and become more independent, and don't put unnecessary burden on the other contributors. Of course, the docs won't always be perfect. If an explanation is hard to find or not described very well, file an issue, or create a pull request to try to fix it yourself. ## Find out where to ask questions -Always find out where the best place is to ask questions. Good OSPs will always make this clear in their docs (see [ask for help on MDN](/en-US/docs/MDN/Contribute/Getting_started#step_4_ask_for_help)). If you want to ask general questions, then always make use of these channels. Don't just file an issue on GitHub for every question, as it adds noise to the project (see "Make progress, not noise" below). +Always find out where the best place is to ask questions. Good OSPs will always make this clear in their docs (see [ask for help on MDN](/en-US/docs/MDN/Community)). If you want to ask general questions, then always make use of these channels. Don't just file an issue on GitHub for every question, as it adds noise to the project (see "Make progress, not noise" below). ## Make progress, not noise -Think carefully about the way you handle communication in the project — make sure it is useful, and that it doesn't make other contributors' jobs harder. Submitting pull requests to fix bugs is great, but are they truly useful, and easy to review? Filing issues and joining in other conversations is fine, but are your issues and comments on topic, or are they just adding noise? +Think carefully about the way you handle communication in the project — make sure it is useful, and that it doesn't make other contributor's jobs harder. Submitting pull requests to fix bugs is great, but are they truly useful, and easy to review? Filing issues and joining in other conversations is fine, but are your issues and comments on topic, or are they just adding noise? As a rule, do: @@ -117,7 +111,7 @@ As a rule, do: Don't: - Complicate issues by trying to discuss multiple topics at once, or making off-topic comments. -- Try to cram multiple fixes into a single pull request. It makes it a lot harder to review and raises suspicions (some people might think you are trying to hide some malicious code in between the valid changes). +- Try to cram multiple fixes into a single pull request. It makes it a lot harder to review, and raises suspicions (some people might think you are trying to hide some malicious code in between the valid changes). - Open lots of issues asking vague questions. - Ask questions without trying to solve the problem yourself first. diff --git a/files/en-us/mdn/community/pull_requests/index.md b/files/en-us/mdn/community/pull_requests/index.md new file mode 100644 index 000000000000000..909961dbe58b918 --- /dev/null +++ b/files/en-us/mdn/community/pull_requests/index.md @@ -0,0 +1,133 @@ +--- +title: MDN Web Docs Pull Request Guidelines +slug: MDN/Community/Pull_requests +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +## Guidelines for after submitting a pull request + +- **Handle test failures**: When you submit a PR, a number of tests are automatically run as [GitHub Actions](https://github.com/features/actions). If one or more of these tests fail, it is your responsibility to try and resolve the underlying issue(s). If you don't know how to resolve the underlying issue(s), you can ask for help. Your PR will not be approved and merged if there are failing tests. +- **Resolve merge conflicts**: If your PR has [merge conflicts](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts) with the main branch (GitHub checks for this automatically and notifies you), you are responsible for resolving them. You have two options here: + - For simple merge conflicts, you can use the [GitHub UI](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github) to resolve the conflicts. + - For more complex merge conflicts, you should use the [command line(terminal)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line) to resolve the conflicts. +- **Don’t reopen closed PRs**: Don’t re-open a PR that a reviewer has closed unless there has been a discussion and a consensus reached to do so. In most cases it is best to open a new PR and reference the previous PR. + +## Reviewing pull requests + +This document describes the review process for content changes on MDN Web Docs, and is for use by those who have been tasked with reviewing MDN content PRs. + +## Process for reviewing content changes + +Content changes we get on MDN are related to a variety of work streams, +for example: + +- Day-to-day content improvement work — new APIs, new CSS properties, and + other significant platform updates and content additions, usually done + by MDN staff working for Mozilla, Google, Open Web Docs, Samsung, etc., + but also sometimes by community volunteers. +- "Drive-by fixes" — small updates done to the site to fix typos, grammatical issues, and technical inaccuracies, usually as they are found by readers of MDN Web Docs. +- MDN content bug fixes, usually done by volunteers to close issues on this repo. + +Regardless of how a content change is done, they will be submitted as +[pull requests](https://github.com/mdn/content/pulls) on this repo, which will require rapid reviewing and merging to ensure that the site does not get out-of-date. This is being handled as follows: + +1. Different MDN staff members and volunteers have been assigned as "topic + review owners", meaning that when a pull request comes in related to a + particular topic area of the site (e.g. the CSS reference, or the learning area), it will be assigned to that area's topic review owner(s) and they will receive an e-mail notification asking for a review. This is being handled using a [CODEOWNERS](https://github.com/mdn/content/blob/main/.github/CODEOWNERS) file, in which particular content directories are assigned to the topics review owner's GitHub usernames. +1. Once the review has been done and the pull request has been approved, the + reviewer should also merge the pull request. +1. The site will be rebuilt once every 24 hours to ensure that the content + does not get too stale. + +## Review guidelines + +If you are reviewing mdn content changes, read through the following +guidelines. There’s quite a lot here, but don’t worry if you don’t review +perfectly in accordance with all of these points immediately. It is more +important to make sure the content is readable, useful, correct, and not +inappropriate, than it is to follow every guideline to the letter. + +1. Familiarize yourself with the [MDN Code example guidelines](/en_US/docs/MDN/Writing_guidelines/Writing_style_guide/Code_example_guidelines) and make sure that code examples follow the guidelines. You’ll get used to them eventually, and we are intending to automatically lint against our guidelines at some point in the future. +1. Familiarize yourself with the [MDN Writing style guide](/en_US/docs/MDN/Writing_guidelines/Writing_style_guide), and use it to inform your reviews of new text content. +1. Familiarize yourself with the MDN [pull request guidelines](https://github.com/mdn/content/blob/main/README.md#pull-request-etiquette). + The key points here are + - You have the right to request more information to help your review if the submitter has not explained why they are making this change. + - You have the right to close a pull request if it is too complex and/or contains multiple unrelated changes and ask the submitter to submit their changes in smaller atomic chunks. +1. When reviewing a pull request, use the [GitHub review tools](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews). Use "Request changes" when submitting a review that will require the submitter to do some more work, or "Approve" if the submission is ready to add and you want to merge it. [Reviewing proposed changes in a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request) is also useful if you want more information. +1. Be polite and constructive at all times when writing review comments, or otherwise interacting with the submitter and other community members. We are all bound by our Code of Conduct when contributing to MDN, which means adhering to Mozilla's [Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/). If anyone has engaged in behavior that is potentially illegal or makes you or someone else feel unsafe, unwelcome, or uncomfortable, you are encouraged to [report it](https://www.mozilla.org/en-US/about/governance/policies/participation/reporting/). We want MDN to be a welcoming, friendly community that we can all be proud of. +1. If a pull request is fine apart from a small typo or some other minor issue, you might want to just fix the issue yourself rather than ask the submitter to change it. You can do this provided the PR has been set up to allow changes (see [Allowing changes to a pull request branch created from a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) for more details). If you are not sure how to make changes to someone else’s pull request, [@vkWeb](https://github.com/vkWeb/) wrote some nice simple instructions on how to do this on the command line; see [ReviewPRCommands](https://gist.github.com/vkWeb/dcec82b079f1edc19478ddb58b0ffc5e). + - Alternatively, you can edit files using the GitHub UI — go to the pull request’s "Files changed" tab, find the file you want to edit, and choose "three dot" menu (...) > Edit file. +1. If you don’t understand a content change that you’ve been selected to review, or feel that it is too large and complex for you to deal with, don’t panic! Feel free to reach out to someone else to ask for help, like a colleague, or someone else in your group of topic review owners (if you know who they are). If you are not sure who to approach for help, then ping our `@core-yari-content` group to ask for help. +1. Related to the above point, it is rare that you’ll be required to review a large, complex content change with no warning, like a complete page rewrite, or the addition of several new reference pages or tutorials. Usually such changes are done as part of specific work streams where the content has been approved for addition, and reviewer(s) have been assigned already. In such cases, the PR should be linked to an issue that explains all these details. If you are not sure, ask the submitter if they need a review of the content, and where the rationale behind the change is explained. Ping our team on [MDN Web Docs chat room](https://chat.mozilla.org/#/room/#mdn:mozilla.org) to ask for help if you are still not sure, or if you think the content is suspicious. + +Note: You may encounter merge conflicts as you review pull requests, if a another pull request that touches some of the same files got merged before the one you are reviewing. [Addressing merge conflicts](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts) is a useful resource to help you. Feel free also to ask your team(s) for help if you need it. + +## Specific reviewer overrides on pull requests + +Some of the pull requests submitted on the `content` repo relate to specific workstreams being undertaken by browser vendors or other organizations that have a defined set of writers and reviewers. In these cases, the submitter of the PR will include the username of the reviewer in a line at the bottom of the pull request description, for example: + +`reviewer: @jpmedley` + +Upon submitting the pull request, they will request a review from the reviewer specified in the pull request description. Once that reviewer has approved the new content, they will then ask you for an approval as required by the `CODEOWNERS` system for the pull request to be mergeable. + +Therefore, if you receive a pull request review request and then see that you have been overridden with another reviewer in the manner described above, then don't review the pull request — just wait for an approval request. + +## Topic review owners + +The following specific topic areas are being reviewed by the kind souls listed underneath them. Be kind to them, and thank them for all the help they give to this project. If you would like to help with MDN content reviews, +[get in touch with us](https://developer.mozilla.org/en-US/docs/MDN/Contribute/Getting_started#Step_4_Ask_for_help). + +Note that changes to any content areas not explicitly listed below will be handled by the [@core-yari-content](https://github.com/orgs/mdn/teams/core-yari-content) team. + +- [Web accessibility content](https://github.com/orgs/mdn/teams/yari-content-accessibility) +- [General learning content](https://github.com/orgs/mdn/teams/yari-content) +- [CSS learning content](https://github.com/orgs/mdn/teams/yari-content-css) +- [Server-side learning content](https://github.com/orgs/mdn/teams/yari-content) +- [MDN meta docs](https://github.com/orgs/mdn/teams/yari-content) +- [Firefox Developer Tools content](https://github.com/orgs/mdn/teams/yari-content) +- [Mozilla Add-ons reference content](https://github.com/orgs/mdn/teams/yari-content-mozilla-add-ons) +- [HTTP reference content](https://github.com/orgs/mdn/teams/yari-content-http) +- [CSS reference content](https://github.com/orgs/mdn/teams/yari-content-css) +- [HTML reference content](https://github.com/orgs/mdn/teams/yari-content-html) +- [JavaScript reference content](https://github.com/orgs/mdn/teams/yari-content-javascript) +- [Web API reference content](https://github.com/orgs/mdn/teams/yari-content-web-api) +- [SVG reference content](https://github.com/orgs/mdn/teams/yari-content-svg) +- [WebAssembly reference content](https://github.com/orgs/mdn/teams/content-webassembly) + +### Reviewer alumni + +The following folks used to be in one or more of our review teams, but no +longer have the time to contribute; we want to give them our sincere thanks +for all their help. + +- [@vkWeb](https://github.com/vkWeb/) +- [@ericwbailey](https://github.com/ericwbailey) +- [@chrisdavidmills](https://github.com/chrisdavidmills/) +- [@mirunacurtean](https://github.com/mirunacurtean) + +## Make progress, not noise + +Think carefully about the way you handle communication in the project — make sure it is useful, and that it doesn’t make other contributors jobs harder. Submitting pull requests to fix issues is great, but are they truly useful, and easy to review? Filing issues and joining in other conversations is fine, but are your issues and comments on topic, or are they just adding noise? + +As a rule, do: + +- Fix one issue per PR — it may be slightly more work for you, but it is much easier to review a single clear fix. +- Ask questions using other mechanisms like [chat rooms](https://chat.mozilla.org/#/room/#mdn:mozilla.org) or [forums](<(https://discourse.mozilla.org/c/mdn/236)>) if you are not sure whether something is useful or have a simple question. +- Read the [contributor documentation]() and [how to write documentation]() first to try to answer the question yourself before filing a pr. + +Don’t: + +- Try to cram multiple fixes into a single pull request. It makes it a lot harder to review, and raises suspicions (some people might think you are trying to hide some malicious code in between the valid changes). + +## Opening a pull request + +## Reviewing a pull request + +## Pull requests we accept + +## `idle` pull requests diff --git a/files/en-us/mdn/community/users_teams/index.md b/files/en-us/mdn/community/users_teams/index.md new file mode 100644 index 000000000000000..5daeb1bfc4c626a --- /dev/null +++ b/files/en-us/mdn/community/users_teams/index.md @@ -0,0 +1,111 @@ +--- +title: MDN Web Docs Users and Teams +slug: MDN/Community/Users_teams +page-type: mdn-community-guide +tags: + - meta + - community-guidelines + - governance +--- +{{MDNSidebar}} + +The success and growth of MDN Web Docs is thanks, in large part, to our community of contributors. There are also employees, contractors and a network of partners who are dedicated to the health, growth and maintenance of the project as a whole. There are also some individuals who have committed a portion of their time to assist with the daily tasks of running MDN Web Docs. These people are part of our invited experts program. To manage all these different groups, we rely heavily on roles and teams within our GitHub organisation. + +A list of the members of the organisation can be [found here](https://github.com/orgs/mdn/people). + +## Teams + +- **Core**: Core MDN Web Docs Team. +- **Localisation team leads**: The people who lead our individual localisation teams. +- **MDN Community Engagement**: People responsible for community engagement across our repositories. +- **MDN Product**: People responsible for the MDN Plus product. +- **OWD**: Contributors from the Open Web Docs non-profit organisation. +- **SRE**: The site reliability engineers that support MDN Web Docs. +- **Yari content**: The umbrella team for all MDN Web Docs content reviewers. + - **Yari content MDN**: Responsible for reviewing docs under /en-US/docs + - **Yari content Mozilla Add-ons**: Responsible for reviewing docs under /en-US/docs/Mozilla/Add-ons + - **Yari content JavaScript**: Responsible for reviewing docs under /en-US/docs/Web/JavaScript + - **Yari content HTML**: Responsible for reviewing docs under /en-US/docs/Web/HTML + - **Yari content Web API**: Responsible for reviewing docs under /en-US/docs/Web/API + - **Yari content HTTP**: Responsible for reviewing docs under /en-US/docs/Web/HTTP + - **Yari content CSS**: Responsible for reviewing docs under /en-US/docs/Web/CSS + - **Yari content accessibility**: Responsible for reviewing docs under /en-US/docs/Web/Accessibility + - **Yari content SVG**: Responsible for reviewing docs under /en-US/docs/Web/SVG + - **Yari content Web Assembly**: Responsible for reviewing docs related to WebAssembly +- **Yari content ES**: Responsible for reviewing `es` docs on MDN +- **Yari content ES**: Responsible for reviewing `fr` docs on MDN +- **Yari content JA**: Responsible for reviewing `ja` docs on MDN +- **Yari content KO**: Responsible for reviewing `ko` docs on MDN +- **Yari content PT-BR**: Responsible for reviewing `pt-br` docs on MDN +- **Yari content RU**: Responsible for reviewing `ru` docs on MDN +- **Yari content ZH**: Responsible for reviewing `zh` docs on MDN + +### What it means to be in a team + +We manage teams using the [GitHub teams feature](https://docs.github.com/en/organizations/organizing-members-into-teams/about-teams). When you are added to a team it means that you have communicated your intent to be more closely involved in the project. This also means that you have some additional responsibilities and rights. + +1. A person on a team is commonly added to the [CODEOWNERS](https://github.com/mdn/content/blob/main/.github/CODEOWNERS) file for their respective area(s) as detailed above. +2. Based on the CODEOWNERS file, you will be automatically assigned to pull requests using a [load-balancing algorithm](https://docs.github.com/en/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team#routing-algorithms) when a pull request touches files in your area of responsibility. +3. Members of a team have higher level repository access assigned. Repository permissions are assigned to only those repositories a member need access to. + +## Requesting to be added to a team + +If you wish to become a member of a team you should start by [filing an issue in this repository](https://github.com/mdn/mdn/issues/new/choose). + +To become a member of a team, you are required to: + +- Agree to abide by our [Code of conduct](https://www.mozilla.org/en-US/about/governance/policies/participation/). +- Agree to Mozilla's [Commit Access Requirements](https://www.mozilla.org/en-US/about/governance/policies/commit/requirements/). +- Set up [Two factor authentication](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) on your GitHub account. + +Once you have filed your issue, someone from our team will review it, and give you the necessary privileges provided our requirements are satisfied. + +## Invited experts + +On MDN Web Docs we have a commitment to document the open web. Not only does this mean that there is a large base of constantly evolving documentation to write and maintain, but we cannot possibly have intimate knowledge of all areas of the open web. To help fill in the gaps we started the invited experts program. + +Invited experts are individuals that have demonstrated in depth knowledge in a particular area, were nominated by the community, our partners, or the MDN Web Docs internal team. + +Invited experts should: + +- Agree to abide by our [Code of conduct](https://www.mozilla.org/en-US/about/governance/policies/participation/). +- Agree to Mozilla's [Commit Access Requirements](https://www.mozilla.org/en-US/about/governance/policies/commit/requirements/). +- Set up [Two factor authentication](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) on your GitHub account. + +Invited experts are also: + +- Invited to our weekly MDN Web Docs editorial call. +- Invited to our invited experts channel on Matrix. +- Added to the relevant topic team(s) for automatic PR assignments. +- Assigned merge privileges to the repositories where they will review pull requests. + +If you wish to nominate someone to be considered as an invited expert, start by [filing an issue in this repository](https://github.com/mdn/mdn/issues/new/choose). + +## Volunteer and partner maintainers + +MDN Web Docs also have volunteers and partners who are assigned maintainer rights to certain repositories. This is the highest level of access afforded to volunteers and partner contributors. Volunteer maintainers are [nominated](https://github.com/mdn/mdn/issues/new/choose) by our partners or the MDN Web Docs team because they demonstrated a deep understanding of the area of responsibility. These individuals have also demonstrated their comittment to being responisve, reliable, trustworthy and able to interact in a manner that forsters a welcoming and friendly environment. + +Mantainers should: + +- Agree to abide by our [Code of conduct](https://www.mozilla.org/en-US/about/governance/policies/participation/). +- Agree to Mozilla's [Commit Access Requirements](https://www.mozilla.org/en-US/about/governance/policies/commit/requirements/). +- Set up [Two factor authentication](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) on your GitHub account. +- Have a vouched [Mozillians](https://people.mozilla.org) profile in the [NDA group](https://people.mozilla.org/a/nda/). + +## Owners + +Owners have wide permissions to manage users, teams, maintainer access across repositories in the MDN organisation, maintain repository settings and deploy to production. Owners are currently limited to Mozilla staff and are also bound by all the requirements of the other user levels. In addition to all the responsibilities of the other user levels, owners have the following additional responsibilities: + +- Follow and enforce MDN team norms, including the [code of conduct](https://www.mozilla.org/en-US/about/governance/policies/participation/) and [Mozilla Policies](https://www.mozilla.org/en-US/about/governance/policies/). +- Follow and contribute to issues and discussions across the MDN organisation. +- Ensure that an issue or pull request gets feedback from one or more members within one week. +- Follow MDN organization policies described in this repo, and lead by example. +- Suggest, document, and implement new policies through the pull request process. +- Add and remove collaborators to repositories as needed. +- [Archive](https://help.github.com/articles/about-archiving-repositories/) or delete unmaintained repositories. +- Discuss GitHub features, decide which to use, and document decisions in this repository. + +In addition, Owners should: + +- Add and remove organization owners and members as needed. +- Add repositories (as fresh projects or transfers) as needed. diff --git a/files/en-us/mdn/contribute/feedback/index.md b/files/en-us/mdn/contribute/feedback/index.md deleted file mode 100644 index 1e72301d2c6b629..000000000000000 --- a/files/en-us/mdn/contribute/feedback/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Send feedback about MDN Web Docs -slug: MDN/Contribute/Feedback -tags: - - Documentation - - Guide - - MDN - - MDN Meta ---- -{{MDNSidebar}} - -Welcome to MDN Web Docs! If you have suggestions for, or are having problems using the MDN Web Docs, this is the right place to be. The very fact that you're interested in offering feedback makes you even more a part of the Mozilla community, and we thank you in advance for your interest. - -You have several options for offering your insight; this article will help you do so. - -## Update the documentation - -First of all, if you've seen a problem with the documentation, you should always feel free to correct it yourself. Start by reading about the [specific steps for getting set up to make contributions](https://github.com/mdn/content/#making-contributions). - -The sources for the documentation here are [stored in GitHub](https://github.com/mdn/content/), and curated by a team of volunteers and paid staff, so don't be shy — your grammar doesn't have to be perfect. We'll review your changes and help you fix any mistakes; no harm done! - -For more information about contributing to MDN documentation, see: - -- [Getting started](/en-US/docs/MDN/Contribute/Getting_started), for more details on how to begin. -- [Contributing to MDN](/en-US/docs/MDN/Contribute), for ideas of specific tasks you can do to help. - -## Join the conversation - -Talk to us! There are a few ways to get in touch with other people who work on MDN content. - -### (Synchronous) Chat - -We use [Matrix](https://wiki.mozilla.org/Matrix) to converse about MDN and its content. You can join in the conversation! - -[MDN Web Docs](https://chat.mozilla.org/#/room/#mdn:mozilla.org) - -This room is for general discussion of MDN: using the site, reading content on the site, and contributing to the site's content. If you have questions or comments about article content, new articles you'd like to see or create, or just want to talk with the writing team, this is the place to be. - -### (Asynchronous) Discussions - -Longer-term discussions happen on our [MDN discussion forum](https://discourse.mozilla.org/c/mdn/236). You can post to the forum via email to [mdn@mozilla-community.org](mailto://mdn@mozilla-community.org). If you join the forum, you can choose to have notifications about discussions sent to you via email as well. - -## Report an issue - -### Documentation issues - -If you see a problem in the documentation and can't fix it yourself for any reason, you can [report the issue](https://github.com/mdn/content/issues/new/choose)! For some problems of translation, you can [report to translated content](https://github.com/mdn/translated-content/issues/new/choose "Report a translation problem."). You can use this form for any documentation issue at all, for example: - -- a simple correction -- a request for an entirely new piece of content -- reporting inappropriate content (including spam and misplaced translations) - -As mentioned before, we invite you to contribute the changes yourself, but this option is available for you as well. - -### Site issues - -If you encounter problems with the MDN website, or have ideas for new features for the site, you can [submit a ticket to the MDN development team](https://github.com/mdn/yari/issues). diff --git a/files/en-us/mdn/contribute/getting_started/index.md b/files/en-us/mdn/contribute/getting_started/index.md deleted file mode 100644 index 287f792a784f238..000000000000000 --- a/files/en-us/mdn/contribute/getting_started/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Getting started on MDN -slug: MDN/Contribute/Getting_started -tags: - - Documentation - - Getting Started - - Guide - - MDN - - MDN Project - - New Contributors ---- -{{MDNSidebar}} - -We are an open community of developers building resources for a better Web, regardless of brand, browser, or platform. Anyone can contribute, and each person who does contribute makes us stronger. Together we can continue to drive innovation on the Web to serve the greater good. It starts here, with you. - -Every part of MDN (docs, demos, and the site itself) is created by an open community of developers. Please, join us! - -## 4 simple steps to MDN - -MDN is an open-source resource where **anyone** can add and edit content. You don't need to be a programmer or know a lot about technologies. There are plenty of things that need to be done, from the simple (proofreading and correcting typos) to the complex (writing API documentation). - -Contributing is easy and safe. Even if you make a mistake, it's easily fixed. Even if you don't know exactly how things should look, or your grammar isn't all that good, don't worry about it! We have a team of people whose job is to make sure that MDN's contents are as good as possible. Someone will be along to make sure your work is tidy and well-written. Share what you know and follow your strengths. - -### Step 1: Create a GitHub account - -To begin your contributions to MDN, you need to [create a GitHub account](https://github.com/mdn/content/#setup). - -### Step 2: Pick a task to complete - -Now that you are logged in, read the descriptions of the different task types available on the [main Contribute page](/en-US/docs/MDN/Contribute), and decide which one most appeals to you. You can pick any task you like and begin your contribution. - -### Step 3: Do the task - -Once you've decided what kind of task you want to do, find a specific page, code example, etc. to work on, and just do it! - -### Step 4: Ask for help - -If you are not sure what to do at any point, then you are more than welcome to ask for help. There are a few different help options: - -- If you want to talk to us synchronously and ask questions about MDN itself, join the discussion on the [MDN Web Docs chat room](https://chat.mozilla.org/#/room/#mdn:mozilla.org) on [Matrix](https://wiki.mozilla.org/Matrix). -- You can also drop us an email at . -- If you are learning web development and are stuck on a coding problem, we have [active forums](https://discourse.mozilla.org/c/mdn/learn/250) where you can ask questions and get help. - -Don't worry about doing it perfectly; other MDN contributors are here to help fix errors that slip through. - -## Useful complete beginner's guides - -We expect contributors to MDN to have a certain amount of prerequisite knowledge -before they start working on the content. If you are new to the following -topics, we'd advise you to look at the provided links to help you get up to -speed: - -- Web technologies: If you are new to HTML, CSS, JavaScript, etc., check out our [Learn web development](/en-US/docs/Learn) tutorials. -- Open source: If you've never contributed to an open-source project before, have a read of [Basic etiquette for open source projects](/en-US/docs/MDN/Contribute/Open_source_etiquette). -- Git and GitHub: If you are unfamiliar with these tools, [GitHub for complete beginners](/en-US/docs/MDN/Contribute/GitHub_beginners) will get you started. -- MDN's repo structures: If you are not sure what repos to edit to make changes to the different parts of MDN's content, [Where is everything on MDN?](/en-US/docs/MDN/Contribute/Where_is_everything) will point you towards the correct places. diff --git a/files/en-us/mdn/contribute/github_beginners/branch-button-new-branch.png b/files/en-us/mdn/contribute/github_beginners/branch-button-new-branch.png deleted file mode 100644 index cfd7bc61de6b3408135283a6b891c6647e41b8c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1407 zcmV-_1%UdAP))a00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px$_)tt#MgRZ*CoC~pU13jCSN8VyBq=UfU}^gM{Mp;v z`~3a*`TD7?vNSn8aCCV2`ui&|G{3>aqHru<-HnuCcS$*xB*&^QEV%>+J1ob9FN=~Y+uU}(l zIX*&tfQ0n*_VxDnpP{7p`TDT4wKh9I_V@TiNKH#nRJFIdTwr8qY;WD(;80ar?CtIQ z`~3Fy_w@Ai>+9_E^!4B2;raRc^YirV?Ck#j{`>s=Ox0Lgold8$jWSRbDf}~+}+=(s;$n@ z(#XophX4QrB}qg z^WN=hVz1e{U#V$r?SZ=JX|*a7H@87;w3!vT?>hkXabRDtW*F2+n5L;|{==HKLgA{n zjm;>usaP{V%O%7BF@h_raQ)wW>Fj!{jyHr%Qy8=f;Xt@xa|!<5-pfanrRSo2hdSeW zexJpKOfyyxvLb=VEJ29%_wJx5Wof*)d73B?BE3zdP~h(?agfsvm}XerOQ7nT$Qlz+ zOjPRjX;#~f)9>(1JYGyg*=2UNGzm#um^Rk$;+HQJvwOT{Cug0;8==t*U(VX*9ib~+ zkE59vSY$OL^;Ckhlr$we%8xo(+36KcVh_(yi)127Ov-7Zh%siA^xhLjhv6psm`Elt zvKx%l7b49J!OOLS2nzi(eME(02}$$=)`q-Qp%eeJ8mZYt-ds%yz<1iMr2x|H!+D~g?(*fa`G7dLxn>0rMdwU3 z&Z}!13|~trT~A+tMas;kTffJq4!A=RSmhc0SD~*)*8IfMI3M&#Z{lM$N7kG$a1ywt z9+;HEtF_z@oE}?-IO`BV#f9W`T$Mju4Va0Qz%&T5zs`#z}q*NXoj>v)rdC+ zgwAs|(0f_)2qgiteocs_1ISK$qSQog?#36S45jBWvXAqy>#JY!!PiLc1Rb5iDBVBh z({xUik-bXR%pu3?ISSA`N<~-B@VTed-1zeDl9%^j`iX!_2T{>6G$#_VN?=m-O@|`! zCZoE?I4y_nX5<{Dr?O@rU4+!nh>b{mK?<2>e#T(nQsiTx*86#)LO#hkvD{fM`3tIs z{m1&d((1dVUMa+{9{GV!AMHg>)7&IYOR5SjQ!T-oU1k+(n!AEEJ(fJxS>{Px$R!~e-MgRZ*Pg7Ul;o_;SviA1&Bq=UfU}^gM{Mp;v z`~3an<>ueu;Yvg7h?Q3&;l$xNNpQ3DZ zdt6{-O;J|!^!5Av{Py+9_E^Yrxe^xxs(?CtIQ`~3O&`u_g@?Ck9C@$!n1m&nS@ zKuaKkM4^BdaNqZRse3n=_t+=QDp|H<9>a;O;v(Cg)K~}zF)f*` zeXf5TYh!}vE!DwP^PsYhvJa+DV4ZHK9IU85V93_w=3DlJ4yL}|u&;qPWh~N_)Cb&B)!7vN!hSUt>2$ph zP(rQAex{#$a#gn8yF2~KM}mVcytZ>DuEcqAp_Cs;qD}8a3^R89seXM}+r2&2-P^k}(>*mi5$dY)IGALZ007`9D#&O807&Bb;y?#Kx2V!9Qam$cOGy<; z0I2?ob#H?5EQ4G$<)wg%QHosv00Zi8wPc^3p4K-1-QC^&`t|Ga@$vTd_Tk~-{Nifw z;J9Yu9I&0ay}diTxV*o=r)S|rAa1U%u5WH`udfj|x3^dSv75`QtNZ(hyZd_^7vH

J32Yv-#^ebwq|1I+1uSc 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 E0|IWVB>(^b diff --git a/files/en-us/mdn/contribute/github_beginners/code-popup.png b/files/en-us/mdn/contribute/github_beginners/code-popup.png deleted file mode 100644 index 233c741bec186473610fb93f7d47268b1bab01e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10106 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 TB38jv00000NkvXXu0mjfX|lz{ diff --git a/files/en-us/mdn/contribute/github_beginners/index.md b/files/en-us/mdn/contribute/github_beginners/index.md deleted file mode 100644 index 9f84209e1d3f53c..000000000000000 --- a/files/en-us/mdn/contribute/github_beginners/index.md +++ /dev/null @@ -1,432 +0,0 @@ ---- -title: GitHub for complete beginners -slug: MDN/Contribute/GitHub_beginners -tags: - - Best practices - - Community - - GitHub - - MDN - - Beginners ---- -{{MDNSidebar}} - -[Git](https://git-scm.com/) and [GitHub](https://github.com/) are challenging tools to learn and master, but with a few simple commands and some good advice, you should be able to do enough to start contributing to MDN without too much trouble. The aim of this article is not to help you master Git or GitHub, but to give you just enough to be productive with it at a basic level and contribute to MDN. - -If you are familiar with Git/GitHub basics already, you probably won't learn anything new here, but you may still find this article useful as a reference. There is a [GitHub cheatsheet](/en-US/docs/MDN/Contribute/GitHub_cheatsheet) available too, with just the commands and none of the long explanations. - -## Essential concepts - -The following are essential concepts that you must be familiar with to get the most out of Git and GitHub. - -- Git is a _version control system_ tool — an essential class of tools in any development workflow. It allows a group of developers to work on the same code base without getting in each other's way, stores the code base safely in a remote location, allows developers to roll the code back to previous states if required, and more. -- GitHub is a web application that provides useful tools on top of Git for working with stored codebases, as well as server space to store the codebases. Its functions are similar to those of other applications, such as [GitLab](https://about.gitlab.com/) or [Bitbucket](https://bitbucket.org/). -- Each codebase is stored in a container called a _repository_, or _repo_. -- Making a change to a repository minimally involves: - - - Creating your own copy of that repo (called a _fork_). - - Creating a different version of the code in your fork of the repo (called a _branch_) and adding your changes to that alternative version. - - Proposing to make that change in the original copy of the repo via a _pull request_. You'll be learning all of these steps in this guide. - -## Assumptions made by this article - -This article assumes that: - -- You are already comfortable with using the command line/terminal. If you are new to the command line, have a read of our [Command line crash course](/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line). -- You are working on a system that understands standard Unix-style command line commands. macOS/Linux have this available out of the box; [Windows isn't quite as simple](/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line#windows) in this regard, but there are useful applications that emulate this functionality on Windows, such as Gitbash. -- You'll be using the command line to interact with Git/GitHub. There are a number of GUI tools available for Git and GitHub, but they won't work with this guide. - -## Initial setup - -Before you get started with working on any particular repo, follow these steps: - -1. Install Git on your computer. Go to the [Git downloads page](https://git-scm.com/downloads), download the latest version for your computer, and install it. If you are a Windows user, you should also install the [Git for Windows](https://gitforwindows.org/) package, which includes Gitbash. -2. While you are at it, install the other required dependencies for working locally with MDN — [Node.js](https://nodejs.org/en/download/) and [yarn](https://classic.yarnpkg.com/en/docs/install). - - 1. Install Node.js by following the above link and downloading and installing the latest version for your computer. - 2. Once you've installed Node.js, install Yarn by running `npm install --global yarn`. - -3. Create a separate directory somewhere on your computer to store all of your Git repos in, which is easy to find and navigate to on the command line. A directory called mdn-git inside your home/user directory would be suitable. -4. [Sign up for a GitHub account](https://github.com/join) if you don't already have one. You'll need this to contribute to MDN's repos. - -### Setting up SSH authentication on GitHub - -At this point you need to set up an SSH key on your GitHub account. This is basically a security mechanism that identifies you to GitHub, and means that you don't have to authenticate each time you use GitHub services. - -GitHub has created a useful guide to setting this up — see the starting point at [Connecting to GitHub with SSH](https://docs.github.com/en/authentication/connecting-to-github-with-ssh). Follow each of the steps here to get set up with SSH on GitHub. - -If you don't do this, you'll still be able to contribute to MDN, but you'll have to enter your username and password every time you interact with GitHub (e.g. whenever you submit a pull request, as seen below). - -## Setting up to work on a specific repo - -There are a number of different repos you may have to update as you work on different MDN tasks (see [Where is everything on MDN? A guide to our repos](/en-US/docs/MDN/Contribute/Where_is_everything)), but there are a number of setup steps you should follow on every repo you work on, to make things easier and more consistent. - -### Forking and cloning - -_Forking_ and _cloning_ are two terms you'll come across often in the world of Git: - -- Forking means creating your own copy of a repo on GitHub. -- Cloning means making a local copy of a repo for you to work on (i.e. on your local hard drive). - -It is possible to do the two things separately, but in practice you will nearly always do them together when contributing to other people's projects. You should first make a fork of each repo you want to work on. This is required for you to submit change requests to the main version of the repo (we'll learn how to create a pull request later on). Due to security reasons, you can't submit changes directly to the main version of the repo. So to submit changes, first fork the main repo, then push the changes to your fork, and then create a pull request to get the changes from your fork merged into the main repo. - -Let's fork right now; you'll definitely be contributing to this repo at some point. Follow these steps: - -1. Locate the Fork button at the top-right-hand corner of the content repo's page, and press it: - - ![Button labeled fork, with the number 609 next to it](fork-button.png) - -2. A modal window will appear, asking you where you want to fork the repo to. Select your personal GitHub account. - - A message will appear saying something like "Forking mdn/content. It should only take a few seconds." Once GitHub has finished forking, your browser should redirect to the page for the new fork. As an example, my fork of is available at . - -Now you've forked the repo, it is time to clone your fork locally. To do this: - -1. Go to your fork's page on github.com (e.g. `https://github.com//content`). -2. Press the green "Code" button at the top of the files list. Something similar to the following popup should appear as a result: - - ![Popup window showing a clone URL along with options to open with GitHub Desktop and download zip](code-popup.png) - -3. If you set up SSH authentication as instructed above, click the "SSH" tab and copy the `git@github.com:/content.git` URL from the text field in the box. If you didn't set up SSH authentication, copy the URL from the text field on the "HTTPS" tab instead, which should look like this: `https://github.com//content.git`. -4. Now open up the command line on your computer, and navigate into the directory you set up earlier to store your local git repo clones in using the cd command, e.g. - - ```bash - cd git - ``` - -5. Clone your fork by entering a command with the following form: - - ```bash - git clone the-url-you-copied - ``` - - So for example my cloning command looked like this: - - ```bash - git clone git@github.com:chrisdavidmills/content.git - ``` - -You should now find a content directory inside your git directory, containing the contents of the repo. - -### Setting up a remote to point to the main version of the repo - -One last thing to do before moving on is set up a _remote_ to point to the main version of the repo, e.g. in the case of our example. A remote is basically a pointer to a specific remote repo location on GitHub, and is most commonly used to update your local clone so it is up-to-date with the latest main repo, as we'll see below. - -Setting up a remote is done with the `git remote add` command, which looks like this: - -```bash -git remote add remote-name repo-you-want-to-point-to -``` - -- _remote-name_ is a name that you decide on, which is used to refer to the remote later on. It is good to stick to a consistent name for remotes across different repos that have the same purpose, so the same remote name will do the same thing everywhere, and you are less likely to get confused. So for example, the main version of the repo that you forked your version from is often called the "upstream repo", therefore people often use "upstream" as the name of the remote upstream location. I usually call my upstream remotes "mozilla", to signify that they point to Mozilla's main copy of the repo. -- _repo-you-want-to-point-to_ is the SSH (or HTTPS) URL of the repo you want to point to, retrieved in the same way as we did when we were cloning our fork earlier. - -So, to add your remote: - -1. Go to the github.com page for the main version of the repo ( in this example) and retrieve the SSH or HTTPS URL as appropriate, from the "Code" popup. -2. In your command line, `cd` into your content directory: - - ```bash - cd content - ``` - -3. Now run a command along the following lines, replacing _remote-name_ and _repo-you-want-to-point-to_ as appropriate: - - ```bash - git remote add remote-name repo-you-want-to-point-to - ``` - - So for example, I used the SSH URL and called my remote "mozilla": - - ```bash - git remote add mozilla git@github.com:mdn/content.git - ``` - -Your remote should now be set up. You can verify it by running the command `git remote -v` in your terminal, which outputs a list of your remote names and where they point to. You should see something a bit like this: - -```plain -mozilla git@github.com:mdn/content.git (fetch) -mozilla git@github.com:mdn/content.git (push) -origin git@github.com:chrisdavidmills/content.git (fetch) -origin git@github.com:chrisdavidmills/content.git (push) -``` - -## Preparing to make a change to the repo - -Now you've got your local fork clone all set up to work with, there is a set of commands you should get in the habit of running before you attempt to make any new changes. - -### Switch to the main branch - -Each repo has a number of different branches, which are basically different versions of the codebase inside the same repo. The idea is that for each change to a codebase, you make the change on a separate branch and test it there first, before then pushing the changes to the main copy of the code. - -The main branch of the content repo is called "main" (it might be called something else like "master" in other repos, and if so you'll have to update the name of it in all commands shown below). You'll be on this branch by default if you've just cloned the repo, but if you've already done some work you'll likely be on a different branch. -Make sure you run the following to switch to the main branch before doing anything else: - -```bash -git switch main -``` - -> **Note:** In other tutorials you may have seen `git checkout` used to change branches in a repo. That works fine most of the time, but can sometimes have unintended side-effects, therefore in this tutorial we are recommending the newer `git switch` command, which is designed purely for switching branches and has less chance of going wrong. If you are interested in how these commands are related, and the differences between them, [Highlights from Git 2.23 > Experimental alternatives for git checkout](https://github.blog/2019-08-16-highlights-from-git-2-23/#experimental-alternatives-for-git-checkout) provides a good summary. - -### Update your main branch - -Next up, you should update your main branch so that it contains the same content as the main branch of the main repo. The content repo is updated many times every day by a large number of contributors, so if you don't do this, your version will get out-of-date, and this will cause problems when you try to submit your updates. This is where your remote will come in handy! - -To update your repo: - -1. First fetch the updated contents of your remote with the following command: - - ```bash - git fetch remote-name - ``` - - So for example: - - ```bash - git fetch mozilla - ``` - -2. Next, replace the contents of your main branch with the remote repo's main branch. There are many different ways you could do this, but I tend to use the `rebase` command, like this: - - ```bash - git rebase remote-name/main-branch-name - ``` - - So for example: - - ```bash - git rebase mozilla/main - ``` - -3. Finally, push those changes up to the remote version of your fork using: - - ```bash - git push - ``` - -You'll know if your updates worked properly by looking at the github.com page for your fork (i.e. mine is ). It should say something like "This branch is even with mdn:main." somewhere near the top. If it says your main branch is behind mdn:main by a number of commits, then you'll need to try it again, or [troubleshoot](#troubleshooting). - -### Create a new branch to do your work in - -Once you've got your main branch up to date in your fork, you must always create a new branch to make a change in. You should _never_ do your work in the main branch and submit it from there — it can get messy very quickly, trust us. It is a lot cleaner and less error-prone to do all work in separate branches. - -To create a new branch: - -1. Go to your fork's page on github.com (i.e. mine is ) and find the branch button at the top left-hand corner of the file list, which should say "main" on it: - - ![Button labeled main](branch-button.png) - -2. Click on this, and you'll be presented with a list of branches and a text field that says "Find or create a branch…": - - ![menu showing list of branch names with a text box labeled find or create a branch](branch-menu.png) - -3. If you enter part of an existing branch name in the text field, it will filter the list of branches against that string, allowing you to search for existing branches easily. However, we want to create a new branch. Enter a branch name that doesn't already exist (try something like test-branch) and the display will change to give you a button labelled "Create branch: test-branch from 'main'": - - ![menu showing a new branch name test-branch entered into a text box, with a create branch button below it](new-branch.png) - -4. Once you are happy with your branch name, click on this button, and the display will update to show the branch name in the branch button: - - ![Button labeled test-branch](branch-button-new-branch.png) - -That's it! You have now created a new branch to do your work in. This branch is identical to the main branch's state at the time that you created it. A good starting point to do our work from. - -Tips: - -- Make sure that you always update your main branch to be in sync with the mozilla main branch, as discussed in the previous section, before creating a new branch. -- Make sure that you always create your new branch based on main, and not some other branch. To do this, make sure that the branch button shows "main" before starting the process. If you don't, your new branch will likely be really out of date, which will create content problems. - -### Get your branch locally and switch to it - -The previous section taught you how to create a new branch in your fork, but it currently only exists in your remote version of the fork. To work on it, you need to get it into your local version. - -To do this, go back to your terminal and, making sure you are inside the repo directory you are working with (`content` for this example): - -1. Pull remote changes to your local clone by running the command `git pull` -2. You should get a message along the lines of `* [new branch] test-branch -> origin/test-branch` -3. To switch to your branch (meaning change over from "main", to work in that branch instead) run the command `git switch test-branch` - -If you were successful, git should tell you something like this: - -```plain -Branch 'test-branch' set up to track remote branch 'test-branch' from 'origin'. -Switched to a new branch 'test-branch' -``` - -Note that you can check the status of your repo, including what branch you are on, at any time by running the command `git status`. Try this now, and git should tell you something like this: - -```plain -On branch test-branch -Your branch is up to date with 'origin/test-branch'. - -nothing to commit, working tree clean -``` - -This sounds about right. We are on the "test-branch" branch, and we've made no changes yet. - -## Adding, committing, and pushing changes - -At this point you are ready to make changes to the repo you are working on — to fix a bug on MDN or whatever it is that you are doing. We will mostly skip this part, as that's not the point of the tutorial. If you want to fix a real problem on MDN, go and choose a bug to fix from our [content issues list](https://github.com/mdn/content/issues/), or read [Contributing to MDN](/en-US/docs/MDN/Contribute) for more guidance. - -If you just want to follow along with this tutorial for example's sake, let's do something simple. - -1. Go into the `content/README.md` file, and add a single letter into the top heading of the README. -2. Now go back to your command line and enter the `git status` command again. This time git should tell you something like this: - - ```plain - Your branch is up to date with 'origin/test-branch'. - - Changes not staged for commit: - (use "git add ..." to update what will be committed) - (use "git restore ..." to discard changes in working directory) - modified: README.md - - no changes added to commit (use "git add" and/or "git commit -a") - ``` - -3. So at this point it is telling you what files you have modified. The next stage is to "add" them, which means add them to a list of files that you want to commit to push up to the remote fork. To add this file to the commit list, type the following: - - ```bash - git add README.md - ``` - - > **Note:** `README.md` is the path to the file you have changed, not just its name. If it were inside a subdirectory, you'd have to write the full path to the file. - -4. If you run `git status` again, you'll now see this: - - ```plain - On branch test-branch - Your branch is up to date with 'origin/test-branch'. - - Changes to be committed: - (use "git restore --staged ..." to unstage) - modified: README.md - ``` - -5. Git is telling us that `README.md` is now in our commit list. To include all the files in the commit list in a commit (a single set of changes that we will later try to send to the main branch), enter the following (the `-m` option is short for message"): - - ```bash - git commit -m 'my first commit' - ``` - - Git will tell you this: - - ```plain - [test-branch 44b207ef6] my first commit - 1 file changed, 1 insertion(+), 1 deletion(-) - ``` - - To show that it has registered that you've made a commit. - -6. Run `git status` again, and you'll get this information: - - ```plain - On branch test-branch - Your branch is ahead of 'origin/test-branch' by 1 commit. - (use "git push" to publish your local commits) - - nothing to commit, working tree clean - ``` - -The information readout has basically reset — it is telling us that there are no changes to commit, because we've now sent our previous change into the system as a commit. The key difference from before is the line "Your branch is ahead of 'origin/test-branch' by 1 commit." — our local version of the "test-branch" branch is now ahead of the remote version of "test-branch" by one commit — in other words, we've made a change locally that the remote branch doesn't have. - -Let's send our local change to the remote branch. You can do this by running the command `git push` — try this now. If there are no errors, you should get a readout like this: - -```plain -Enumerating objects: 5, done. -Counting objects: 100% (5/5), done. -Delta compression using up to 8 threads -Compressing objects: 100% (3/3), done. -Writing objects: 100% (3/3), 292 bytes | 292.00 KiB/s, done. -Total 3 (delta 2), reused 0 (delta 0) -remote: Resolving deltas: 100% (2/2), completed with 2 local objects. -To github.com:chrisdavidmills/content.git - 77215e31e..44b207ef6 test-branch -> test-branch -``` - -## Creating a pull request - -At this point, go back to your remote fork's github.com page. You should see a message along the lines of "This branch is 1 commit ahead of mdn:main. " meaning that our fork's content has a content change (commit) in it that mozilla's "main" branch doesn't have. - -1. To send our change up to the main copy of the repo, we need to create a pull request. This can be easily done using the "Compare & pull request" button that you should see up the top of the files list, once the branch has had a change pushed to it. - - ![Banner with text test branch had recent pushes, and a button labeled compare and pull request](compare-and-pull-request.png) - - Press this button, and you should get a new screen appearing along these lines: - - ![open pull request form, which includes text fields for title and description](open-pull-request.png) - - > **Warning:** Only follow the rest of these steps if you have a real change to make to the repo! Please do not actually submit test PRs to our repos. - -2. At this point, enter a useful title and description for your PR, saying exactly what it changed, why this is a good thing, and what related issue it fixed, if appropriate. Specifically, include a line saying `Fixes issue-url`. GitHub automatically renders this as a link to the issue number, e.g. `Fixes #1234` and, in addition, automatically closes the related issue once the pull request is merged. -3. Once you are ready to send your pull request, click the "Create pull request" button. This will cause your pull request (PR) to appear in the repo's [Pull requests list](https://github.com/mdn/content/pulls), where it'll be reviewed by our review teams, and hopefully merged into the main codebase. - - If the review team has changes they want you to make, they'll tell you in comments in the pull request thread (you should receive an email notification to tell you this). - -4. If you want to make further changes to the same pull request you've already submitted, you can do so by making more commits on the same local branch and then pushing them as explained previously. There is no need to create a completely new pull request. **Just make sure you are making them on the same branch as before**. - -## Troubleshooting - -The above tutorial is aimed at providing you with the basics of git and GitHub that you'll need to contribute to GitHub repos at a basic level. We hope it was helpful! We'd also like to discuss the fact that, despite being the industry standard version control system for the web industry, Git has a kind of mythical/legendary reputation as a painfully difficult tool to learn and use. - -We're not sure this is entirely fair. Git has a lot of commands that are sometimes fairly cryptic in their use, and does take a long time to master. It is also fair to say that if you forget some of the commands or do things in the wrong order you can find yourself in some interesting messes that are hard to get out of. However, as long as you get yourself into some good habits as described above, you shouldn't go too far wrong. It is also worth mentioning that Git is much easier to use than it was 10 years ago. - -This section will be added to over time, and includes some useful commands/sequences to help you fix common problems. - -### Reverting a change you made to a file that you haven't yet added to the commit list - -If you've changed a file, but have not yet run the `git add file-path` command to add it to the commit list, you can revert it to the state it was when you first checked out the branch by running - -```bash -git restore file-path -``` - -### Removing a file from the commit list - -If you've already run the `git add file-path` command to add a file to the commit list, but now want to remove it from the commit list, you can use the command - -```bash -git restore --staged file-path -``` - -### Reversing a commit - -If you've committed the commit list using `git commit -m 'my commit message'`, and not yet pushed it, but now realized that you put something in there that you want to remove, you can reverse your local commit using - -```bash -git reset HEAD~1 -``` - -This will take it back to the state when the changes in that commit are not yet added to the commit list (you would need to git add them again after figuring out the problem). Note that this gets you back to the state before you started committing anything in this session. This won't help you if you need to do something more complex, like only revert the middle commit out of a set of three. We'll leave it there for this lesson. - -### Reversing a commit that has been pushed to the remote fork - -At this point, there is not really any going back, or rewinding. Instead, you need to push another commit to reverse the effects of the one you want to get rid of. You could do this manually using some of the tools we've already given you above, but there is a built-in command that makes this easier — `git revert`. This can be used to automatically create a commit that reverts changes back to the point you specify. - -1. At its simplest, you can run the following command to create a commit that will get your remote branch back to the state you were in before you started committing: - - ```bash - git revert HEAD - ``` - -2. This will result in a commit message file being opened up in your default text editor that you need to check to make sure you are happy with it. Close this, and git will finalize creating the commit. -3. Now you just need to push it: - - ```bash - git push - ``` - -If you look at your remote fork's github.com page again, you'll see the commit that you wanted to reverse, plus the commit that reverses it. - -> **Note:** Another way to handle getting rid of files that have ended up in pull requests that you don't want to be there is to use the GitHub UI. Go to your pull request's page on github.com, go to the "Files changed" tab, and find the file you want to remove from the pull request. At the top right of the file's box in the page there will be a "three dot" (`...`) menu. Press this button and choose "Delete file". In the confirmation page, enter a title for the new commit, make sure the "Commit directly…" checkbox is selected, and press the "Commit changes" button. -> -> It is usually a good idea to get the rest of the pull request looking exactly how you want it before you make changes via the GitHub UI. If you do something like this and then end up having to make more changes, you'll need to remember to pull the changes you made to your remote branch down to your local branch (e.g. with `git pull`) before you can push more commits. - -### Want to see more? - -If you think this troubleshooting guide should contain more information, please [create an issue](https://github.com/mdn/content/issues/new) to suggest what you think we should include. - -## See also - -- [MDN Learn > Git and GitHub](/en-US/docs/Learn/Tools_and_testing/GitHub) -- [Dangit, Git](https://dangitgit.com/en) — additional useful troubleshooting techniques -- [45 GitHub Issues Dos and Don'ts](https://hackernoon.com/45-github-issues-dos-and-donts-dfec9ab4b612) -- [gh CLI tool](https://cli.github.com/) — once you are used to using the vanilla git CLI commands to control your repos, you might want to consider installing GitHub's own gh CLI tool, which provides commands to speed up a number of the processes discussed above. diff --git a/files/en-us/mdn/contribute/github_beginners/new-branch.png b/files/en-us/mdn/contribute/github_beginners/new-branch.png deleted file mode 100644 index 7b1ff4abc7dd8b92cc0f4a61ce562f198a204ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8359 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

)K(P`+k3;pEd^mKQ0l_R(pqDaUC z3VVo-T=C!kJaFLT$&<(5(tx8B>9t;bl&l!I;(iGuuu>HJIqFMUF>uB2L`H`q zEk(Ycy((VsxbC)|*5$VP`i}EsL)DvohRI&-^-EEq)t2oI_Lm-E*;6l7O#E)YvlziS zDpJJHJrrY_5iwWtG3GE$DJ&QpV@1;y{)3fO zS9;tO6J5m!&Qgr}GQm@E9S8p$c6=8}D7jEL<@m_|$5G6~gwtr>&c#^87^|*Sxpnjx z&SGSWl2Q!!P;9_uP?W!}(Y8X8_73D#gpJ;g)uJXB`m;5ucjKtyn6j)=P#jKImgT_h z-eKjd{;^aIE#ccs50py_0A07R=@C_IZP8Ndiw#NxT`b(f-t+W{w@R}#X!s4zXJ88* zAMT7QhYJfKVNj#V{eAl|Za}1pl+jU)z|SpgRHUVN(nGNt4X0WArlvzS-i5j)(3Jg@ zi|JXAfy0Hk4q8lazy?7Pv$L@jE~EB#WiHm{(h|Omqd#I3?b*7#RAp!qYK9Hi0qI!Y zj9m&%OIL=nAChr>Ap>u}%26)0YLy{1O6A=;`kZT+wvM&iry4gP!XD09j7-tl(4U9@ z)kCp6kB*B=#gMB6O~q(8JuFQb-_aLw3>39Vpw))Js8Ud*&HXkAU>zM=e?4ayi_g%FlBr@VmM;%Q zZzIJN55+I|k&(4DQxqCH!J8s&zZ>Z|2wivw&(MGQ4#iXWy)Z6juy5%JiVxTrSA3b7 z-nm8fn}PkDhB@g?6gMd@G`O2Tu-zA47W7$0(x5 zL%u$hQ}Vj!eRGQ4XtjB9DxwH}p-RKIO!7uo8y36i9GyDsuegBvX#vakN9x5k;dzOW z9Eug;I&of4XY+5RA{|x?SBp{${pOYhiY5aoWmeLe>my&*K?JBGVS4}*q|DmKKpdY@ zyo3EB`U6l(i*Ja$$=68Fi6S_76sl%QG?bH%8puYHv_<(0NmqQ#k9t!Oc{`TF@VIW! zSq*2&PJUNXD88|1uY2=MktP-6tYYq_-*3%Yq+XnI9bLFlp&$>f3+EKh^-R)RW8P54 z&W0G1(o~p8GKOGyf4Y^<*EwiuB-FIkpQ=ylGr)O@QsW{O=&b+!d9gdqM*VZ3>gq7X zl`DQqnir)3mH&){Np6Qk-uv zvc=*CDb!cwDLy1wv6G1{7M&zBK9r|O+Lk@6PF%ch+(X(Id5Wa$Z(v}H#|DDK6xW3! zGDW7y6q8)hRU~7lfyR_qELu1l#T1$y)>y>LIJ&Vk3R!N9{NOnO@yvJ#Pjh z8Z@O?k?JM7x1TPqH4T1}1p}^_5{=IRs?c3bXA7hkHv?GhM9~DG>x1WX-5wiJ)TTii z??`dQGz|KDKGZ`k`YjdVdNEx~;yO{hNHQ$iis_^)n5yhIY74-jCC`0U@Mt6TqLn-p z^ryJuQM6h}kX%>NuEmg~sHi0|KorvfE~2IwCjm0GLc2al6zO_BW-APeQLW2(YAZeh zaMIPuChC=w7a_gWNfgWHN^~(@18zi8)X+J)1#^m3G=mn`GDRXdK0+$GB9|VA(*$W3F=)QoKtMp2A_1(8LjJ1@$ZqKKVu@V*Ucj++j!(J0Q@K- zo+Nr?C#Z)5q0+}o+7)G zx@1J%NsXt-?&>cYQFry@DY6kJOGWeulX!}3wA12sV(e(AxQcA#os5xpaTVDpP#L2@ z<14Ze$?-=d%TQ#a$?4{n#JC=HiZ{;1?wYrDh zbtLbtR8!2$Sp5TMNW|Q)G&-hGMSG#1!KxdJs|Q%UwEE6Ar9Iv4N8!MHKb?{gUfZ>j18n;{ClhxuLzI zDWgbdsd=EyXT{bLJMXkXxmc^yJp-sW@}h$%di+{Fz?hMD66_K$j$e{hqW5v%0DS&b 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 diff --git a/files/en-us/mdn/contribute/github_beginners/open-pull-request.png b/files/en-us/mdn/contribute/github_beginners/open-pull-request.png deleted file mode 100644 index f944edb1d5a424373c92c92c3434daabdb0cb34c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24954 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

@`6u*QX-^+%v`O6iXLm0Lc%q6Ndt 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 gc+z(lGY|0X9dL|ujcusgpC{m{DgqVC- **Note:** Another way to handle getting rid of files that have ended up in pull requests that you don't want to be there is to use the GitHub UI. Go to your pull request's page on github.com, go to the "Files changed" tab, and find the file you want to remove from the pull request. At the top right of the file's box in the page there will be a "three dot" (`...`) menu. Press this button and choose "Delete file". In the confirmation page, enter a title for the new commit, make sure the "Commit directly…" checkbox is selected, and press the "Commit changes" button. - -## Want to see more? - -If you think this cheatsheet should contain more commands, please [create an issue](https://github.com/mdn/content/issues/new) to suggest what you think we should include. diff --git a/files/en-us/mdn/contribute/howto/convert_code_samples_to_be_live/index.md b/files/en-us/mdn/contribute/howto/convert_code_samples_to_be_live/index.md deleted file mode 100644 index fe4513e82ff823f..000000000000000 --- a/files/en-us/mdn/contribute/howto/convert_code_samples_to_be_live/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: How to convert code samples to be "live" -slug: MDN/Contribute/Howto/Convert_code_samples_to_be_live -tags: - - Beginner - - Howto - - MDN Meta ---- -{{MDNSidebar}} - -MDN has a "[live sample](/en-US/docs/MDN/Structures/Live_samples)" system, where the code sample shown on a page is directly used to display the output of that same sample. However, many existing articles have code samples that do not yet use this system, and need to be converted. - -Live samples, which let you see what a sample's output looks like, make documentation more dynamic and instructive. This guide covers how to take existing samples and add "live" functionality to them. - -## Where does it need to be done? - -Any article that has a static code example (just blocks of HTML, CSS, JavaScript) that you think would benefit from being shown running live. - -## What do you need to know to do the task? - -- Understanding of HTML, CSS and/or JavaScript, depending on the code sample. -- Ability to use [KumaScript](/en-US/docs/MDN/Tools/KumaScript) macros within MDN articles. - -## What are the steps to do the task? - -1. Find a code example that you think should be converted to be "live". -2. Convert the code sample to be "live". -3. Delete any code or image that was previously used to display the output of the sample. - -For more information on creating and editing Live Samples, see [Using the live sample system](/en-US/docs/MDN/Structures/Live_samples) diff --git a/files/en-us/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.md b/files/en-us/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.md deleted file mode 100644 index 3c3b94599589431..000000000000000 --- a/files/en-us/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: How to create an interactive learning exercise -slug: MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web -tags: - - Guide - - Howto - - Intermediate - - Learning - - MDN Meta - - Tutorial ---- -{{MDNSidebar}} - -When learning the web, it's important to rely on active learning content. Such content is made to help with learning something pro-actively. It can be exercises, live hackable examples, tasks to perform, assessments, etc. In short, anything that can help someone to actively understand something. - -There is no straightforward way to create such content. For example many third party tools exist that can help you create live hackable examples (see: [JSFiddle](https://jsfiddle.net/), [CodePen](https://codepen.io/), [Dabblet](https://dabblet.com/), etc.) that you can link from MDN articles. If you want to create more advanced comprehensible exercises, you can easily use [Glitch](https://glitch.com/) from the WebMaker project. - -Currently, MDN does not have an easy tool to author such active content. However, if you are a coder you can use the current MDN features to create custom active learning content. - -## MDN live samples - -MDN has a very cool feature called **live samples**. It's a mechanism that turns any HTML, CSS, and JavaScript code inside an MDN page into its executed equivalent. Before using it, you should read over [Using the live sample system](/en-US/docs/MDN/Structures/Live_samples), which is our complete documentation for building them. While they're easy to create, there are quirks and tricks you'll learn along the way. - -What is interesting is that it's really easy to tweak that feature to use it in order to embed any kind of tool or utility you want into an MDN page. - -### Hidden code - -The first way to use a code sample to create active learning content is to edit the page where you want to add your content. Use the Live Sample feature to create your content as you wish. Don't bother with the code complexity you could write; just create what you need. Once your code example is ready, surround it with a simple {{HTMLElement('div')}} element with an appropriate `id` attribute. Add the class `hidden` to any {{HTMLElement('pre')}} elements that surround this code. By doing so, your code won't be displayed but your live sample remains accessible and displayable. - -Let's see a simple example: - -Click on the following square to randomly change its color: - -

- -{{EmbedLiveSample('hidden_code_example', 120, 125)}} - -If you take a look at the source code of this page, you'll see the following HTML code: - -```html -

Click on the following square to randomly change its color or just type an hexadecimal code color

- -
- - - - - - -
- -\{{EmbedLiveSample('hidden_code_example', 120, 125)}} -``` - -You can see a more advanced example of such a tweak on [the Canvas API page](/en-US/docs/Web/API/Canvas_API#javascript). diff --git a/files/en-us/mdn/contribute/howto/create_and_edit_pages/index.md b/files/en-us/mdn/contribute/howto/create_and_edit_pages/index.md deleted file mode 100644 index 74743d73672b5ec..000000000000000 --- a/files/en-us/mdn/contribute/howto/create_and_edit_pages/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: How to create and edit pages -slug: MDN/Contribute/Howto/Create_and_edit_pages -tags: - - Beginner - - Guide - - Howto - - Intro - - MDN Meta ---- -{{MDNSidebar}} - -This article introduces new contributors to the process of editing existing pages and creating new ones. - -## Editing an existing page - -To edit a page, you need to find the page source in our [content](https://github.com/mdn/content) repo. The easiest way to find it is to navigate to the page you want to edit, go to the bottom of the page, and click on the "Source on GitHub" link. - -Once you've found the source to edit, go to our README and work through our [Making contributions](https://github.com/mdn/content#making-contributions) guide. - -### Preview changes - -If you are editing the page locally, to see what your changes look like you can go to the content repo folder, execute the CLI command `yarn start`, go to `localhost:5042` in your browser, and navigate to page and view it. Enter the title in the search box to find it easily. The previewed page will update in the browser live as you edit the source. - -### Tags - -You can add or remove tags, which describe the page's content and purpose, in the "tags" list at the top of the page source. See [How to properly tag pages](/en-US/docs/MDN/Contribute/Howto/Tag), for information on which tags to apply. - -### Attach files - -To attach a file to your article, you just need to include it in the same directory as the article's `index.md` or `index.html` file, and include it in your page, typically via a link. - -## Creating a new page - -To create a new page, see our [Adding a new document](https://github.com/mdn/content#adding-a-new-document) instructions. - -## See also - -- [MDN style guide](/en-US/docs/MDN/Guidelines/Writing_style_guide) diff --git a/files/en-us/mdn/contribute/howto/document_a_css_property/index.md b/files/en-us/mdn/contribute/howto/document_a_css_property/index.md deleted file mode 100644 index cfd0e7b3797d68f..000000000000000 --- a/files/en-us/mdn/contribute/howto/document_a_css_property/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: How to document a CSS property -slug: MDN/Contribute/Howto/Document_a_CSS_property -tags: - - CSS - - Guide - - Howto - - MDN Meta ---- -{{MDNSidebar}} - -As the [CSS](/en-US/docs/Web/CSS) standards evolve, new properties are always being added. The MDN [CSS Reference](/en-US/docs/Web/CSS/Reference) needs to be kept up-to-date with these developments. This document gives step-by-step instructions for creating a CSS property reference page. - -Each CSS property reference page follows the same structure. This helps readers find information more easily, especially once they are familiar with the standard reference page format. - -## Step 1 — Decide which property to document - -First, you will need to decide which property to document. You might have noticed that a page is missing, or you might have seen missing content reported in our [issues list](https://github.com/mdn/content/issues). For details about the CSS property you will need to find a relevant specification for it (e.g., a [W3C specification](https://www.w3.org/Style/CSS/), or a bug report for a non-standard property used in rendering engines like Gecko or Blink). - -> **Note:** When using a W3C spec, always use the **Editor's Draft** (note the red banner on the left side) and not a published version (e.g. Working Draft). The Editor's Draft is always closer to the final version! - -If the implementation and spec diverge, feel free to mention it in the implementation bug: it may be a bug in the implementation (and a follow-up bug will be filed), a delay in the publication of a new spec, or an error in the spec (in which case a spec bug is worth filing). - -## Step 2 — Check the database of CSS properties - -Several characteristics of a CSS property, such as its syntax or if it can be animated, are mentioned in several pages and are therefore stored in an ad-hoc database. Macros that you'll use on the page need information about the property that is stored there, so start by [checking that this information is there](/en-US/docs/MDN/Contribute/Howto/Update_the_CSS_JSON_DB). - -## Step 3 — Creating the CSS property page - -Preparations finished! Now we can add the actual CSS property page. The easiest way to create a new CSS property page is to copy the content of an existing page and to edit it to suit the new property. You can find out how to add a new page in our [GitHub README](https://github.com/mdn/content#adding-a-new-document). - -When creating a reference page, you'll want to add _Examples_. To do that follow this [tutorial about live samples](/en-US/docs/MDN/Structures/Live_samples). Don't forget that we are in a document explaining one single property: you need to add examples that show how this property is working in isolation, not how the whole specification is used. That means that examples for `list-style-type` should show what the different property values generate, not how to combine it with other properties, pseudo-classes, or pseudo-elements to generate nice effects. Tutorials and guides can be written to show more. - -## Step 4 — Getting a review - -Once your page is created, submit it as a PR, and a member of our review team will be assigned automatically to review your page. diff --git a/files/en-us/mdn/contribute/howto/document_an_http_header/index.md b/files/en-us/mdn/contribute/howto/document_an_http_header/index.md deleted file mode 100644 index 0b465dc3f1fcee6..000000000000000 --- a/files/en-us/mdn/contribute/howto/document_an_http_header/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: How to document an HTTP header -slug: MDN/Contribute/Howto/Document_an_HTTP_header -tags: - - Howto - - MDN - - Meta ---- -{{MDNSidebar}} - -The MDN [HTTP header reference](/en-US/docs/Web/HTTP/Headers) documents HTTP header fields are components of the header section of request and response messages in the Hypertext Transfer Protocol ([HTTP](/en-US/docs/Web/HTTP)). They define the operating parameters of an HTTP transaction. This page explains how to create a new MDN reference page for an HTTP header. - -## Prerequisites - -- You will need an [MDN account](/en-US/docs/MDN/Contribute/Getting_started#step_1_create_an_account_on_mdn). -- You will need to know or be able to dive into some [HTTP](/en-US/docs/Web/HTTP). - -## Step 1 – find an HTTP header to document - -- There are many HTTP headers defined in various IETF standards. -- IANA maintains a [registry of headers](https://www.iana.org/assignments/message-headers/message-headers.xhtml) and Wikipedia lists [known header fields](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields), but not all are relevant to web developers or part of an official standard. -- If there are **red links** on the current [MDN header reference overview page](/en-US/docs/Web/HTTP/Headers), these headers are a good choice to document. -- If in doubt, [ask an MDN contributor](/en-US/docs/MDN/Contribute/Getting_started#step_4_ask_for_help) if you are unsure whether or not it makes sense to write about the header you have chosen. - -## Step 2 – look at existing header reference pages - -- Existing HTTP headers are documented [here](/en-US/docs/Web/HTTP/Headers). -- There are different header categories: {{Glossary("Request header")}}, {{Glossary("Response header")}}, and {{Glossary("Representation header")}}. -- Find the category of the header you are about to document (note that some headers can be both request and response headers, depending on context). -- Go to an existing header reference page that has the same category. - -## Step 3 – create a new page - -- All header pages live under this tree: [/docs/Web/HTTP/Headers/](/en-US/docs/Web/HTTP/Headers) -- To create a new page, see the instructions in our [GitHub README](https://github.com/mdn/content#adding-a-new-document). - -## Step 4 – write content - -- Either start from our [template HTTP header page](/en-US/docs/MDN/Structures/Page_types#http_header_reference_page) or use a copied structure from one of the existing HTTP header documents that you found in step 2. It's your choice. -- Write about your new HTTP header. -- Make sure you have these sections: - - - Introductory text where the first sentence mentions the header name (bold) and summarizes its purpose. - - Information box containing at least the header type and if the header is a {{Glossary("Forbidden header name")}}. - - A syntax box containing all possible directives/parameters/values of the HTTP header. - - A section that explains these directives/values. - - An example section that contains a practical use case for this header or shows where and how it occurs usually. - - A specification section listing relevant RFC standard documents. - - A "See also" section listing relevant resources. - -## Step 4a – add tags to the page - -All HTTP header pages should at least have these tags: "HTTP", "Header", "Reference". - -## Step 5 – add browser compatibility information - -- If you have looked at other HTTP header pages, you will see that there is a \\{{compat}} macro that will fill in a browser table for you. -- The compatibility table page is generated from structured data. If you'd like to contribute to the data, please check out and send us a pull request. - -## Step 6 – add the header to the HTTP header list - -- Make sure your header is listed in an appropriate category on the [HTTP header reference overview page](/en-US/docs/Web/HTTP/Headers). - -## Step 7 – get a review - -Once your page is created, submit it as a PR, and a member of our review team will be assigned automatically to review your page. diff --git a/files/en-us/mdn/contribute/howto/document_web_errors/index.md b/files/en-us/mdn/contribute/howto/document_web_errors/index.md deleted file mode 100644 index 142516c3d847eb8..000000000000000 --- a/files/en-us/mdn/contribute/howto/document_web_errors/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: How to document web errors -slug: MDN/Contribute/Howto/Document_web_errors -tags: - - Howto - - MDN - - Meta ---- -{{MDNSidebar}} - -The MDN [JavaScript error reference](/en-US/docs/Web/JavaScript/Reference/Errors) is a project aiming to help web developers with errors occurring in the [Developer Console](https://firefox-source-docs.mozilla.org/devtools-user/web_console/index.html). You can see this feature in action in Firefox — JavaScript errors contain a "Learn more" link that takes you to the JavaScript error reference containing additional advice for fixing issues. - -In order to help this project, we need to write more error documentation on MDN so that we can add more links to the tools where the messages are thrown. - -## Prerequisites - -- You will need an [MDN account](/en-US/docs/MDN/Contribute/Getting_started#step_1_create_an_account_on_mdn). -- You will need to know or able to dive into some [JavaScript](/en-US/docs/Web/JavaScript). - -## Step 1 – find an error to document - -- Firefox/Gecko's error messages: -- Edge/Chakra's error messages: -- Chrome/v8's error messages: - -## Step 2 – look at existing error docs - -- Look at the existing [JavaScript error reference](/en-US/docs/Web/JavaScript/Reference/Errors) and see how errors are documented. -- Depending on which type of error you want to write about, you can take a closer look at these pages. -- You might want to copy the content of an existing page to kick off your new page. - -## Step 3 – create a new page - -- All error pages live under this tree: [/docs/Web/JavaScript/Reference/Errors](/en-US/docs/Web/JavaScript/Reference/Errors) -- To create a new page, see the instructions in our [GitHub README](https://github.com/mdn/content#adding-a-new-document). - -## Step 4 – write some content - -- Either use a copied structure from one of the existing error documents or start from scratch. Your choice! -- You should have at least: - - - A syntax box containing the message as thrown in different browsers. - - The error type. - - A text that explains why this error happened, what its consequences are. Go beyond the thrown message. - - Examples showcasing the error (there might be more than one!) and an example showing how to fix the code. - - Pointers to other reference material on MDN. - -## Step 5 – get a review - -Once your page is created, submit it as a PR, and a member of our review team will be assigned automatically to review your page. diff --git a/files/en-us/mdn/contribute/howto/migrate_external_content_to_mdn/index.md b/files/en-us/mdn/contribute/howto/migrate_external_content_to_mdn/index.md deleted file mode 100644 index 6bc4ee2f3af7793..000000000000000 --- a/files/en-us/mdn/contribute/howto/migrate_external_content_to_mdn/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: How to migrate external content to MDN Web Docs -slug: MDN/Contribute/Howto/Migrate_external_content_to_MDN -tags: - - Content migration - - MDN Meta ---- -{{MDNSidebar}} - -You will sometimes identify already-existing content that would make sense to migrate onto MDN Web Docs from elsewhere. This article covers what kinds of content potentially make sense to migrate, whether you should migrate content or not, and what workflow to use to undertake the migration. - -## What content would make sense to migrate? - -There are a number of content types that it would potentially make sense to migrate onto MDN Web Docs: - -- Tutorials/Guides: Practical information on using a technology. These are useful on MDN Web Docs in a variety of places depending on level and coverage (e.g. [Using Fetch](/en-US/docs/Web/API/Fetch_API/Using_Fetch), [Creating hyperlinks](/en-US/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks)). -- Explainers/concept articles: These generally deal with explaining high-level concepts such as why an API is structured like it is, what problems it is designed to solve, etc. These would make sense as "Concepts" articles (for example [WebVR concepts](/en-US/docs/Web/API/WebVR_API/Concepts)). -- Code examples: MDN Web Docs really values good code examples, whether it is code snippets to put inside reference articles or full examples to link to. We are happy to welcome good code examples into our GitHub repos, either as standalone examples, or part of our [interactive-examples repo](https://github.com/mdn/interactive-examples). - -Content that doesn't make sense to migrate to MDN Web Docs: - -- Lengthy case studies -- Product documentation -- Promotional content - -## Why would you migrate the content? - -If good developer content exists already, it makes sense to migrate it to MDN Web Docs for a number of reasons: - -- SEO: MDN Web Docs is a very popular site — putting your content on there is a good way to make it more findable. -- Not reinventing the wheel: MDN Web Docs documentation is prided on being complete, meaning that we'll need to write all essential references and tutorials on site rather than linking off to other places. Putting an existing tutorial on here means that we won't have to write it ;-) -- Revisions and maintenance: If you put your content on MDN Web Docs, you'll have the full support of our writer's team and community in helping to review, edit and maintain the work. - -## Should you migrate the content? - -If the content is high quality and meets the above content type criteria, then it sounds like a good thing to migrate it. However, you should consider the below points first before you make a move: - -- Duplicating content: Does the resource you want to move duplicate content that is already on MDN Web Docs? If so, it might make sense to help improve the existing resource instead of moving another resource over. If the external resource is much better than the existing resource, then move it over and make sure the old resource is redirected to the new one. -- Where to put it: If you are not sure where to move a resource, talk to us about it first so we can help you (see [Join the conversation](/en-US/docs/MDN/Contribute/Feedback#join_the_conversation)). -- Ownership: If you do not own the rights to the content, then you cannot just move it without getting permission from the owners. You should contact them and talk about it first. If the content is published under some kind of permissive license scheme (e.g. Creative Commons or GPL) then make sure the license conditions are satisfied. Feel free to ask us for advice also. -- Keeping community happy: Even if you own the content, if there is a community built around it you should consult them — get their input, make sure they understand what is going on, minimize any confusion or annoyance that can result in moving the content. -- Redirects: When you move a content resource, you will usually want to redirect the old content to the new location, so that links do not break. In a few cases where this doesn't make sense — for example if the moved content is a copy of an original template, and both make sense in the context they are found in — it often still makes sense to provide a link somewhere to the new version, so the relationship between the two is clear. -- Making sense: When the content has been moved, do the resources in the old and new locations still make sense? You might need to update descriptions or navigation menus to ensure this. - -## Workflow for migration - -What follows is a sample workflow for migrating content onto MDN Web Docs. We migrated some W3C Payment Request code to MDN, as recorded in [this GitHub issue](https://github.com/w3c/payment-request-info/issues/4). - -1. Identify the resource to be migrated. -2. Identify who owns the content, and talk to them and their associated community to make sure moving the content is not going to be a problem. -3. Identify an MDN Web Docs contact who can help you with the migration. If in doubt, [ask for help](/en-US/docs/MDN/Contribute/Getting_started#step_4_ask_for_help). -4. Looking at [our GitHub content repo](https://github.com/mdn/content), identify the location where the content should be put, making sure that it doesn't duplicate existing content (see above). -5. Move the content over, making changes as necessary so it fits MDN style. -6. Request a review from the MDN team/community -7. Redirect the old resource to the new location, as appropriate. diff --git a/files/en-us/mdn/contribute/howto/report_a_problem/index.md b/files/en-us/mdn/contribute/howto/report_a_problem/index.md deleted file mode 100644 index 28fa6b9af001c2f..000000000000000 --- a/files/en-us/mdn/contribute/howto/report_a_problem/index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: How to report a problem on MDN -slug: MDN/Contribute/Howto/Report_a_problem -tags: - - Guide - - Howto - - MDN Meta ---- -{{MDNSidebar}} - -Now and then, you may run into problems while using MDN. Whether it's a problem with site infrastructure or an error in documentation content, you can either try to fix it yourself or report the problem. While the former is preferred, the latter is sometimes the best you can manage, and that's okay too. - -The best thing you can possibly do is fix problems you spot yourself — this is done by updating the site source: - -- The MDN content itself is found in the [content](https://github.com/mdn/content) repo. -- The MDN platform code, which renders the content as MDN, is found in the [yari](https://github.com/mdn/yari) repo. - -Both repos include useful information to guide you on how to contribute. - -However, maybe you don't know the answer or are in the middle of a deadline on your own project, and need to jot down the problem so someone can look at it later. - -The way to report a documentation problem by filing an [documentation issue](https://github.com/mdn/content/issues) or [platform issue](https://github.com/mdn/yari/issues), depending on what the problem you've discovered relates to. diff --git a/files/en-us/mdn/contribute/howto/tag/index.md b/files/en-us/mdn/contribute/howto/tag/index.md deleted file mode 100644 index e4e03452a49f20a..000000000000000 --- a/files/en-us/mdn/contribute/howto/tag/index.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: How to properly tag pages -slug: MDN/Contribute/Howto/Tag -tags: - - Beginner - - Contribute - - Glossary - - Guide - - Howto - - Intro - - MDN Meta - - Tutorial ---- -{{MDNSidebar}} - -**Article tags** are an important way to put visitors in touch with helpful content. Each page should normally have several tags to help keep content organized. This page explains the best way to tag pages so that our readers can find information and we can keep ourselves organized. - -Please use tags properly as explained below. If you don't, our automated tools will not correctly generate lists of content, landing pages, and cross-linking of articles. - -> **Warning:** Note to translators and localizers: You should *not* translate any tags listed on this page. They are used for specific purposes such as certain site management tasks and automated data processing, and translating them would break these processes. - -## How MDN uses tags - -Tags get used on MDN several ways: - -- [Document categorization](#document_category) - - : What type of document is it? Is it a reference? A tutorial? A landing page? Our visitors can use these tags to filter searches, so they're really important! -- [Topic identification](#topic) - - : What is the article about? Is it about an API? The DOM? Graphics? Again, these tags are important because they can filter searches. -- [API identification](#api_identification) - - : Reference pages about an API need to identify the specific component of the API being documented (that is, what interface it's a part of, and what property or method the page covers, if applicable). -- [Technology status](#technology_status) - - : What's the status of the technology? Is it non-standard? Deprecated? Experimental? -- [Skill level](#skill_level) - - : For tutorials and guides, how advanced is the material covered by the article? -- [Document metadata](#document_metadata) - - : The writing community uses tags to keep track of which pages need what kind of work. - -## Tag type guide - -Here's a quick guide to the types of tags and possible values for them. - -### Document category - -When you tag an article with one of these categories, you help the automated tools more accurately generate landing pages, tables of contents, and so on. Our new search system will also use these terms so that our visitors can locate reference or guide information at will. - -We use the following category names as standard tagging terms: - -- `Intro` - - : The article provides introductory material about a topic. Ideally each technology area should have only one "Intro" -- `Reference` - - : The article contains reference material about an API, element, attribute, property, or the like. -- `Landing` - - : The page is a landing page. -- `Guide` - - : The article is a how-to or guide page. -- `Example` - - : The article is a code sample page, or has code samples (that is, actual snippets of useful code, not one-line "syntax examples"). - -### Topic - -By identifying the article's topic area, you are helping generate better search results (and landing pages and navigation as well). - -While there's some room for flexibility here as we identify new topic areas, we try to limit ourselves to the names of APIs or technologies. Some useful examples: - -- `HTML` -- `CSS` -- `JavaScript` (notice the capital "S"!) -- `Document` -- `DOM` -- `API` for each API's overview, interface, method, and property. -- `Method` for each method of an API -- `Property` for each property of an API -- `Graphics` -- `SVG` -- `WebGL` -- `Tools` -- `Web` -- `Element` -- `Extensions` and `WebExtensions` for WebExtension documentation. - -In general, your topic identification tag should be the name of an interface with a number of related pages (like [Node](/en-US/docs/Web/API/Node), which has many pages for its various properties and methods), or the name of an overall technology type. You might tag a page about WebGL with `Graphics` and `WebGL`, for example, but a page about {{HTMLElement("canvas")}} with `HTML`, `Element`, `Canvas`, and `Graphics`. - -#### Mozilla-specific content - -These tags are used in Mozilla-specific content only: - -- `Mozilla` -- `Firefox` -- `Gecko` -- `XUL` -- `XPCOM` - -### API identification - -Within the API reference, each article should identify which part of the API it covers: - -- `Interface` - - : The main article for an interface should have this tag. For example, {{DOMxRef("RTCPeerConnection")}}. -- `Constructor` - - : Each interface may have up to one page tagged "Constructor"; this is the interface's constructor. The page should have the same name as the interface, like {{DOMxRef("RTCPeerConnection.RTCPeerConnection()", "RTCPeerConnection()")}}. -- `Property` - - : Every article describing a particular property within an interface needs this tag. See {{DOMxRef("RTCPeerConnection.connectionState")}}, for example. -- `Method` - - : Each article documenting an interface method needs this tag. See {{DOMxRef("RTCPeerConnection.createOffer()")}} for example. - -In addition, the reference pages need to include interface, property, and method names among their tags. Some examples: - -- The interface {{DOMxRef("RTCPeerConnection")}} - - : Include the tag `RTCPeerConnection` along with the other relevant tags (`Interface`, `WebRTC`, `WebRTC API`, `API`, `Reference`, and so forth). -- The method {{DOMxRef("RTCPeerConnection.createOffer()")}} - - : Include the tags `RTCPeerConnection` and `createOffer` (note _no_ parentheses in tag names!) along with the other relevant tags, including `Method`, `WebRTC`, `WebRTC API`, `API`, `Reference`, and so forth. Consider including things like `Offer` and `SDP`, which are also relevant here. -- The property {{DOMxRef("RTCPeerConnection.iceConnectionState")}} - - : Include the tags `RTCPeerConnection` and `iceConnectionState` along with the other relevant tags, including `Property`, `WebRTC`, `WebRTC API`, `API` and `Reference`. Also consider including `ICE`. - -### Technology status - -To help the reader understand how viable a technology is, we use tags to label pages as to the status of the technology's specification. This isn't as detailed as actually explaining what the spec is and how far the technology has come in the specification process (that's what the Specifications table is for), but it helps the reader judge, at a glance, whether it's a good idea to use the technology described in the article. - -Here are possible values for these tags: - -- `Read-only` - - : Apply this tag to reference pages which describe a property or attribute which is read-only. -- `Non-standard` - - : Indicates that the technology or API described on the page is not part of a standard, whether it's stable or not in any browsers which implement it (if it's not stable, it should also be Experimental). If you don't use this tag, your readers will assume the technology is standard. The compatibility table on the page should clarify which browser(s) support this technology or API. -- `Deprecated` - - : The technology or API covered on the page is no longer recommended. It might be removed in the future or might only be kept for compatibility purposes. Avoid using this functionality. -- `Experimental` - - : The technology is not standardized, and is an experimental technology or API that may or may not ever become part of a standard. It is also subject to change in the browser engine (typically only one) that implements it. If the technology isn't part of any specification (even in draft form), it should also have the Non-standard tag. -- `Needs Privileges` - - : The API requires privileged access to the device on which the code is running. -- `Certified Only` - - : The API only works in certified code. - -These tags are no excuse to leave out the [compatibility table](/en-US/docs/MDN/Structures/Compatibility_tables) in your article! That should always be present. - -### Skill level - -Use the skill-level tag type only for guides and tutorials (that is, pages tagged `Guide`) to help users choose tutorials based on how familiar they are with a technology. There are three values for this: - -- `Beginner` - - : Articles designed to introduce the reader to a technology they've never used or have only a passing familiarity with. -- `Intermediate` - - : Articles for users who have gotten started with the technology but aren't experts. -- `Advanced` - - : Articles about stretching the capabilities of a technology and of the reader. - -### Document metadata - -The writing community uses tags to label articles as requiring specific types of work. Here's a list of the ones we use most: - -- `Draft` - - : The article is not complete, and is at least in theory still actively being updated (although it's also possible it's been forgotten about). Try to check with the most recent contributors before making changes, in order to avoid potential content collisions. -- `NeedsCompatTable` - - : The article needs a table to specify compatibility of a feature across browsers. [See here](/en-US/docs/MDN/Structures/Compatibility_tables) for a guide on contributing to browser compatibility. -- `NeedsContent` - - : The article is a stub, or is otherwise lacking information. This tag means that someone should review the content and add more details and/or finish writing the article. -- `NeedsExample` - - : The article needs one or more examples created to help illustrate the article's point. These examples should use one of the [code example styles](/en-US/docs/MDN/Structures/Code_examples). -- `NeedsLiveSamples` - - : The article has one or more examples that need to be updated to use the [live sample system](/en-US/docs/MDN/Structures/Live_samples). -- `NeedsMarkupWork` - - : The article needs improvement to the page markup (usually because the page content consists mostly or entirely of {{HTMLElement("p")}} tags). -- `NeedsSpecTable` - - : The article needs a table to indicate on which specification document(s) the feature was defined. -- `NeedsUpdate` - - : The content is out of date and needs to be updated. -- `l10n:exclude` - - : The content is not really worth localizing and will not appear on localization status pages. -- `l10n:priority` - - : The content is important and should be marked as a priority for MDN translators. Shows up in an extra priority table on localization status pages. - -## Putting it all together - -So to each page you assign tags from several tag types, for example - -- A tutorial about WebGL for beginners - - : WebGL, Graphics, Guide, Beginner -- Reference page for {{HTMLElement("canvas")}} - - : Canvas, HTML, Element, Graphics, Reference -- A landing page for Firefox developer tools - - : Tools, Firefox, Landing - -## Tagging problems you can fix - -There are several kinds of tag problems you can help fix: - -- No tags - - : Generally articles should have at _least_ a "[category](#document_category)" tag and a "[topic](#topic)" tag. Usually other tags are appropriate as well, but if you can help us ensure that the minimum tags are present, you'll be a documentation hero! -- Tags that don't follow our tagging standards - - : Please fix any documents whose tags don't follow the standards on this page. - Note that you may occasionally see some localized tags (such as `Référence`) showing up on some English pages. This was due to a [bug in Kuma](https://bugzilla.mozilla.org/show_bug.cgi?id=776048), which caused the tags to reappear even if they were deleted. That bug has [since been fixed](https://bugzilla.mozilla.org/show_bug.cgi?id=776048#c37), so any remaining localized tags can be cleaned up if they're spotted. -- Incorrect tags - - : If you're looking at an article about HTML and it's tagged "JavaScript", that's probably wrong! Likewise, if an article discusses Mozilla internals but has a "Web" tag, that's probably wrong too. Remove these tags and add the right tags if they aren't already there. Please also correct misspelled tags (e.g., "Javascript" will still match, since tags are case-insensitive, but let's not be sloppy!). -- Missing tags - - : If an article has some but not all of the tags it needs, feel free to add more. For example, if a page in JavaScript reference is (correctly) tagged "JavaScript" but nothing else, you're invited to tag the page "Reference" or [another category tag](#document_category) as well! -- Tag spam - - : This insidious beast is the most revolting tag problem of all: some Web vermin has deposited its droppings in the page tags (like "Free warez!" or "Hey I was browsing your site and wanted to ask you if you could help me solve this problem I'm having with Flash crashing all the time"). We've got to delete these right away! They're ugly, they're hard to manage if they're allowed to linger too long, and they're terrible for {{Glossary("SEO")}}. diff --git a/files/en-us/mdn/contribute/howto/write_for_seo/index.md b/files/en-us/mdn/contribute/howto/write_for_seo/index.md deleted file mode 100644 index 6e90448079f699f..000000000000000 --- a/files/en-us/mdn/contribute/howto/write_for_seo/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: How to write with SEO in mind on MDN Web Docs -slug: MDN/Contribute/Howto/Write_for_SEO -tags: - - Contributing to MDN - - Documentation - - MDN - - MDN Meta - - MDN Web Docs - - SEO - - Search Engine Optimization ---- -{{MDNSidebar}} - -This guide covers our standard practices, recommendations, and requirements for content to help ensure that search engines can easily categorize and index our material in order to ensure that users can easily reach what they need. - -## Introduction - -While the primary goal of any writing on MDN should always be to explain and inform about open web technology so developers can quickly learn to do what they want, or to find the little details they need to know in order to perfect their code, it's important that they be able to _find_ the material we write. - -Since most readers reach content on MDN through search engines, as writers, we have to keep that in mind while we work. To do that, we are establishing a selection of "SEO guidelines," to help writers and editors on MDN ensure that each page they work on is reasonably well designed, written, and marked up to give search engines the context and clues they need to properly index articles. - -## SEO checklist - -The following is a list of things you should check while writing and reviewing content to help ensure that the page and its neighbors will be indexed properly by search engines. - -- Make sure the page's contents are [different enough from other pages](#ensure_pages_aren't_too_similar) that search engines don't assume they're about the same thing. -- [Avoid pages that are too short](#avoid_pages_that_are_too_short). Articles that are too short (called "thin pages" in SEO parlance) are difficult to catalog accurately. Whenever possible, pages on MDN should avoid being shorter than around 300 words or so. - -## Ensure pages aren't too similar - -Each article should be as unique as possible. Articles that look similar to one another textually will wind up being considered to be about roughly the same thing, even if they aren't. For example, if an interface has the properties `width` and `height`, it's easy for the text to be surprisingly similar, with just a few words swapped out, and using the same example. This makes it hard for search engines to know which is which, and they wind up sharing page rank, resulting in both being harder to find than they ought to be. - -Understandably, writers confronted with two related properties like `width` and `height` (or any other set of functionally related features) are tempted to write the article on `width`, then copy that article and paste it into the one on `height`, replacing a few words. Done! - -Unfortunately, the result is two pages that, as far as search engines are concerned, may as well be the same thing. - -It's important, then, to ensure that every page has its own content. Here are some suggestions to help you accomplish that: - -- Consider use cases where there might be more differences than one would think. For instance, in the case of `width` and `height`, perhaps consider ways horizontal space and vertical space are used differently, and provide a discussion about the appropriate concepts. Perhaps you mention the use of width in terms of making room for a sidebar, while using height to handle vertical scrolling or footers or similar. Including information about accessibility issues is a useful and important idea as well. -- Use entirely different examples on each page. Examples in these situations are often even more similar than the body text, since the examples may use both (or all) of the similar methods or properties to begin with, thereby requiring no real changes when reused. So throw out the example and write a new one, or at least provide multiple examples, with at least some of them different. -- Include descriptions of each example. Both an overview of what the example does as well as coverage of how it works, in an appropriate level of detail given the complexity of the topic and the target audience, should be included. - -The easiest way to avoid being overly similar is of course to write each article from scratch if time allows. - -## Avoid pages that are too short - -Articles that are too short (called "thin pages" in SEO parlance) are difficult to catalog accurately. Whenever possible, pages on MDN should avoid being shorter than around 300 words or so. Here are some basic guidelines to help you create pages that have enough content to be properly searchable without resorting to cluttering them up with unnecessary text. - -- Obviously, if the article is a stub, or is missing material, add it. We try to avoid outright "stub" pages on MDN, although they do exist, but there are plenty of pages that are missing large portions of their content. -- Generally review the page to ensure that it's structured properly for the [type of page](/en-US/docs/MDN/Structures/Page_types) it is. Be sure every section that it should have is present and has appropriate content. -- Make sure every section is complete and up-to-date, with no information missing. Are all parameters listed and explained? Make sure any exceptions are covered (this is a particularly common place where content is missing). -- Be sure everything is fully fleshed-out. It's easy to give a quick explanation of something, but make sure that all the nuances are covered. Are there special cases? Known restrictions that the reader might need to know about? -- There should be examples covering all parameters or at least the parameters (or properties, or attributes) that users from the beginner through intermediate range are likely to use, as well as any advanced ones that require extra explanation. Each example should be preceded with an overview of what the example will do, what additional knowledge might be needed to understand it, and so forth. After the example (or interspersed among pieces of the example) should be text explaining how the code works. Don't skimp on the details and the handling of errors in examples; readers _will_ copy and paste your example to use in their own projects, and your code _will_ wind up used on production sites! See [code examples](/en-US/docs/MDN/Structures/Code_examples) and our [code example guidelines](/en-US/docs/MDN/Guidelines/Code_guidelines) for more useful information. -- If there are particularly common use cases for the feature being described, talk about them! Instead of assuming the reader will figure out that the method being documented can be used to solve a common development problem, actually add a section about that use case with an example and text explaining how the example works. -- Include proper {{htmlattrxref("alt", "img")}} text on all images and diagrams; this text counts, as do captions on tables and other figures, because spiders can't crawl images, and so {{htmlattrxref("alt", "img")}} text tells search engine crawlers what content the embedded media contains. Note: it is not best practice to include too many keywords, or feature unrelated keywords in an attempt to manipulate search engine rankings; this type of behavior is easy to spot and tends to be penalized. -- Likewise, do *not* descend into adding repetitive, unhelpful material, or blobs of keywords within the actual page, in an attempt to improve the page's size and search ranking. This does more harm than good, both to content readability and to our search results. -- With Google's Hummingbird update in 2013, there has been an increasing focus on the use of natural language to convey information. This means that it is far better to write content around the topic of the article, than a specific keyword. It is highly likely that there will be many keywords you could include for a given topic; in fact, many SEOs compile a list of 5-100 different keywords (varying between short, medium, and long-tail keywords) to include within their article, depending on the length. Doing so will diversify your wording, leading to less repetition. - -## See also - -- [Contributing to MDN](/en-US/docs/MDN/Contribute) -- [Writing style guide](/en-US/docs/MDN/Guidelines/Writing_style_guide) diff --git a/files/en-us/mdn/contribute/where_is_everything/index.md b/files/en-us/mdn/contribute/where_is_everything/index.md deleted file mode 100644 index cd975175c98c878..000000000000000 --- a/files/en-us/mdn/contribute/where_is_everything/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Where is everything on MDN? A guide to our repos -slug: MDN/Contribute/Where_is_everything -tags: - - Best practices - - Community - - GitHub - - MDN - - Beginners - - Repos ---- -{{MDNSidebar}} - -MDN is a complex project with lots of moving parts. Contributing to the site is easy to begin with if you have a bit of GitHub knowledge and are starting out on some simple typo fixes or code snippet improvements. However, when you start making more significant contributions such as adding entirely new pages, you'll notice that there are quite a few bits of the content that aren't stored in the page sources and instead come from somewhere else. - -This article acts as a quick guide to finding the different repos you need to edit to update the different parts of MDN content. - -## Core repos - -- **Core content**: . The most important repo for MDN content — this is where all the core English content of the site is stored, and where you'll make all standard changes to page content. -- **MDN Platform**: . This is where the MDN platform is stored, and where you'll go if you want to make changes to MDN's high level page structure or rendering machinery. -- **Browser compat data**: . This is where the data used to generate the browser compatibility tables found on our reference pages is stored ([example](/en-US/docs/Web/HTML/Element/progress#browser_compatibility)). Go here to make compat data changes! -- **Interactive examples**: . This repo stores the rendering code and example code blocks that together produce the nice editable, copyable examples found at the top of many of our reference pages ([example](/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)). Edit those examples here. -- **Translated content**: . This is where localized content lives. Go here if you want to help translate pages into any of our actively maintained locales. -- **CSS data**: . Originally envisaged as a hold-all repo for general purpose MDN data, the data repo now serves the purpose of holding data about CSS features such as formal syntax, inheritance, computed value, animation type, etc. This is used to generate sections on CSS reference pages such as formal definition ([example](/en-US/docs/Web/CSS/font-variant-caps#formal_definition)) and formal syntax ([example](/en-US/docs/Web/CSS/font-variant-caps#formal_syntax)). - -## Other repos - -- **Demo repos**. The MDN GitHub org contains a huge number of demo repos, for example [css-examples](https://github.com/mdn/css-examples), [dom-examples](https://github.com/mdn/dom-examples), [webaudio-examples](https://github.com/mdn/webaudio-examples). These generally contain free-standing examples that are often linked to from MDN pages, but occasionally you'll find one of these examples embedded into a page using a macro call like this — \\{{EmbedGHLiveSample("css-examples/learn/tasks/grid/grid1.html", '100%', 700)}}. If you want to edit a standalone live example, it will always be found in one of these example repos. -- **MDN-minimalist**: . The base styling information for MDN. If you want to help improve MDN's CSS styling, this is the place to visit. diff --git a/files/en-us/mdn/guidelines/code_guidelines/css/index.md b/files/en-us/mdn/guidelines/code_guidelines/css/index.md deleted file mode 100644 index 1799aeb1f0dc2f2..000000000000000 --- a/files/en-us/mdn/guidelines/code_guidelines/css/index.md +++ /dev/null @@ -1,274 +0,0 @@ ---- -title: CSS guidelines -slug: MDN/Guidelines/Code_guidelines/CSS -tags: - - CSS - - Code - - Guide - - Guidelines - - MDN Meta ---- -{{MDNSidebar}} - -The following guidelines cover how to write CSS for MDN code examples. - -## In this article - -- [High-level guidelines](#high-level_guidelines) - - - [Don't use preprocessors](#dont_use_preprocessors) - - [Don't use specific CSS methodologies](#dont_use_specific_css_methodologies) - - [Use flexible/relative units](#use_flexiblerelative_units) - - [Don't use resets](#dont_use_resets) - - [Plan your CSS — avoid overriding](/en-US/docs/MDN/Guidelines/Code_guidelines/CSS#plan_your_css_%e2%80%94_avoid_overriding) - -- [General CSS coding style](#general_css_coding_style) - - - [Use expanded syntax](#use_expanded_syntax) - - [Favor longhand rules over terse shorthand](#favor_longhand_rules_over_terse_shorthand) - - [Use double quotes around values](#use_double_quotes_around_values) - - [Spacing around function parameters](#spacing_around_function_parameters) - - [CSS comments](#css_comments) - - [Don't use !important](#dont_use_!important) - -- [Specific CSS syntax points](#specific_css_syntax_points) - - - [Turning off borders and other properties](#turning_off_borders_and_other_properties) - - [Use "mobile first" media queries](#use_mobile_first_media_queries) - -- [Selectors](#selectors) - - - [Don't use ID selectors](#dont_use_id_selectors) - - [Put multiple selectors on separate lines](#put_multiple_selectors_on_separate_lines) - -## High-level guidelines - -### Don't use preprocessors - -Don't use preprocessor syntax, e.g. [Sass](https://sass-lang.com/), [Less](https://lesscss.org/), or [Stylus,](https://stylus-lang.com/) in your MDN example code. MDN documents the vanilla CSS language, and using preprocessors only serves to raise the bar to understanding the examples, potentially confusing readers. - -### Don't use specific CSS methodologies - -In the same spirit as the previous guideline, don't write MDN example code using a specific CSS methodology such as [BEM](http://getbem.com/naming/) or [SMACSS](http://smacss.com/). Even though they are valid CSS syntax, the naming conventions can be confusing to people not familiar with those methodologies. - -### Use flexible/relative units - -For maximum flexibility over the widest possible range of devices, it is a good idea to size containers, padding, etc. using relative units like ems and rems, or percentages and viewport units if you want them to vary depending on viewport width. You can read some more about this in our [Responsive design building blocks](/en-US/docs/Web/Progressive_web_apps/Responsive/responsive_design_building_blocks#fluid_grids) article. - -### Don't use resets - -For maximum control over CSS across platforms, a lot of people used to use CSS resets to remove every style, before then building things back up themselves. This certainly has its merits, but especially in the modern world CSS resets can be overkill, resulting in lots of extra time spent reimplementing things that weren't completely broken in the first place, like default margins, list styles, etc. - -If you really feel like you need to use a reset, consider using [normalize.css by Nicolas Gallagher](https://necolas.github.io/normalize.css/), which aims to just make things more consistent across browsers, get rid of some default annoyances that we always remove (the margins on ``, for example) and fix a few bugs. - -### Plan your CSS — avoid overriding - -Before diving in and writing huge chunks of CSS, plan your styles carefully. What general styles are going to be needed, what different layouts do you need to create, what specific overrides need to be created, and are they reusable? Above all, you need to try to avoid too much overriding. If you keep finding yourself writing styles and then cancelling them again a few rulesets down, you probably need to rethink your strategy. - -## General CSS coding style - -### Use expanded syntax - -There are a variety of CSS writing styles you can use, but we prefer the expanded style, with the selector/opening brace, close brace, and each declaration on a separate line. This maximizes readability, and again, promotes consistency on MDN. - -Use this: - -```css example-good -p { - color: white; - background-color: black; - padding: 1rem; -} -``` - -Not this: - -```css example-bad -p { color: white; background-color: black; padding: 1rem; } -``` - -In addition, keep these specifics in mind: - -- Include a space between the selector(s) and the opening curly brace. -- Always include a semi-colon at the end of the last declaration, even though it isn't strictly necessary. -- Put the closing curly brace on a new line. -- In each declaration, put a space after the separating colon, but not before. -- Use 2 spaces for code indentation. - -### Favor longhand rules over terse shorthand - -Usually when teaching the specifics of CSS syntax, it is clearer and more obvious to use longhand properties, rather than terse shorthand (unless of course teaching the shorthand is the point of the example). Remember that the point of MDN examples is to teach people, not to be clever or efficient. - -To start with, it is often harder to understand what the shorthand is doing. It takes a while to pick apart exactly what {{cssxref("font")}} syntax is doing, for example: - -```css -font: small-caps bold 2rem/1.5 sans-serif; -``` - -Whereas this is more immediate in terms of understanding: - -```css -font-variant: small-caps; -font-weight: bold; -font-size: 2rem; -line-height: 1.5; -font-family: sans-serif; -``` - -Second, CSS shorthand comes with potential added pitfalls — default values are set for parts of the syntax that you don't explicitly set, which can produce unexpected resets of values you've set earlier in the cascade, or other expected effects. The {{cssxref("grid")}} property for example sets all of the following default values for items that are not specified: - -- {{cssxref("grid-template-rows")}}: `none` -- {{cssxref("grid-template-columns")}}: `none` -- {{cssxref("grid-template-areas")}}: `none` -- {{cssxref("grid-auto-rows")}}: `auto` -- {{cssxref("grid-auto-columns")}}: `auto` -- {{cssxref("grid-auto-flow")}}: `row` -- {{cssxref("column-gap")}}: `0` -- {{cssxref("row-gap")}}: `0` -- {{cssxref("column-gap")}}: `normal` -- {{cssxref("row-gap")}}: `normal` - -In addition, some shorthands only work as expected if you include the different value components in a certain order. In CSS animations for example: - -```css -/* duration | timing-function | delay | iteration-count - direction | fill-mode | play-state | name */ -animation: 3s ease-in 1s 2 reverse both paused slidein; -``` - -As an example, the first value that can be parsed as a [`