From c3cdab20aae41ac05b926ce6567b6dd5ce1af3a0 Mon Sep 17 00:00:00 2001 From: Leo McArdle Date: Fri, 6 Dec 2024 13:57:15 +0000 Subject: [PATCH] chore: move copy to external generic-content repo (#12068) https://mozilla-hub.atlassian.net/browse/MP-1627 --- .env-dist | 1 + .github/workflows/prod-build.yml | 7 + .github/workflows/stage-build.yml | 8 +- .github/workflows/test-build.yml | 8 +- build/spas.ts | 38 +++--- copy/community/community.md | 160 ---------------------- copy/config.json | 29 ---- copy/observatory/faq.md | 183 ------------------------- copy/observatory/tests_and_scoring.md | 60 -------- copy/plus/faq.md | 103 -------------- copy/plus/features/ai-help.md | 89 ------------ copy/plus/features/collections.md | 190 -------------------------- copy/plus/features/offline.md | 60 -------- copy/plus/features/overview.md | 16 --- copy/plus/features/playground.md | 72 ---------- copy/plus/features/updates.md | 83 ----------- docs/envvars.md | 6 + libs/env/index.d.ts | 1 + libs/env/index.js | 4 + 19 files changed, 51 insertions(+), 1067 deletions(-) delete mode 100644 copy/community/community.md delete mode 100644 copy/config.json delete mode 100644 copy/observatory/faq.md delete mode 100644 copy/observatory/tests_and_scoring.md delete mode 100644 copy/plus/faq.md delete mode 100644 copy/plus/features/ai-help.md delete mode 100644 copy/plus/features/collections.md delete mode 100644 copy/plus/features/offline.md delete mode 100644 copy/plus/features/overview.md delete mode 100644 copy/plus/features/playground.md delete mode 100644 copy/plus/features/updates.md diff --git a/.env-dist b/.env-dist index fde17baddea9..bcb00ecc0760 100644 --- a/.env-dist +++ b/.env-dist @@ -1,6 +1,7 @@ CONTENT_ROOT=../content/files #CONTENT_TRANSLATED_ROOT=../translated-content/files #CONTRIBUTOR_SPOTLIGHT_ROOT=../mdn-contributor-spotlight/contributors +#GENERIC_CONTENT_ROOT=../generic-content/files REACT_APP_DEV_MODE=true diff --git a/.github/workflows/prod-build.yml b/.github/workflows/prod-build.yml index 676efa7af157..99d983398106 100644 --- a/.github/workflows/prod-build.yml +++ b/.github/workflows/prod-build.yml @@ -89,6 +89,12 @@ jobs: lfs: true token: ${{ secrets.MDN_STUDIO_PAT }} + - uses: actions/checkout@v4 + if: ${{ ! vars.SKIP_BUILD }} + with: + repository: mdn/generic-content + path: mdn/generic-content + - uses: actions/checkout@v4 if: ${{ ! vars.SKIP_BUILD }} with: @@ -189,6 +195,7 @@ jobs: CONTRIBUTOR_SPOTLIGHT_ROOT: ${{ github.workspace }}/mdn/mdn-contributor-spotlight/contributors BLOG_ROOT: ${{ github.workspace }}/mdn/mdn-studio/content/posts CURRICULUM_ROOT: ${{ github.workspace }}/mdn/curriculum + GENERIC_CONTENT_ROOT: ${{ github.workspace }}/mdn/generic-content/files BASE_URL: "https://developer.mozilla.org" # The default for this environment variable is geared for writers diff --git a/.github/workflows/stage-build.yml b/.github/workflows/stage-build.yml index e177747a9047..ce8d912a774e 100644 --- a/.github/workflows/stage-build.yml +++ b/.github/workflows/stage-build.yml @@ -124,6 +124,12 @@ jobs: lfs: true token: ${{ secrets.MDN_STUDIO_PAT }} + - uses: actions/checkout@v4 + if: ${{ ! vars.SKIP_BUILD }} + with: + repository: mdn/generic-content + path: mdn/generic-content + - uses: actions/checkout@v4 if: ${{ ! vars.SKIP_BUILD }} with: @@ -220,11 +226,11 @@ jobs: CONTRIBUTOR_SPOTLIGHT_ROOT: ${{ github.workspace }}/mdn/mdn-contributor-spotlight/contributors BLOG_ROOT: ${{ github.workspace }}/mdn/mdn-studio/content/posts CURRICULUM_ROOT: ${{ github.workspace }}/mdn/curriculum + GENERIC_CONTENT_ROOT: ${{ github.workspace }}/mdn/generic-content/files BASE_URL: "https://developer.allizom.org" # rari BUILD_OUT_ROOT: "client/build" - GENERIC_CONTENT_ROOT: "copy" LIVE_SAMPLES_BASE_URL: https://live.mdnyalp.dev INTERACTIVE_EXAMPLES_BASE_URL: https://interactive-examples.mdn.allizom.net ADDITIONAL_LOCALES_FOR_GENERICS_AND_SPAS: de diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index be04b8677820..68aed969c984 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -58,6 +58,12 @@ jobs: lfs: true token: ${{ secrets.MDN_STUDIO_PAT }} + - uses: actions/checkout@v4 + if: ${{ ! vars.SKIP_BUILD }} + with: + repository: mdn/generic-content + path: mdn/generic-content + - uses: actions/checkout@v4 if: ${{ ! vars.SKIP_BUILD }} with: @@ -130,11 +136,11 @@ jobs: CONTRIBUTOR_SPOTLIGHT_ROOT: ${{ github.workspace }}/mdn/mdn-contributor-spotlight/contributors BLOG_ROOT: ${{ github.workspace }}/mdn/mdn-studio/content/posts CURRICULUM_ROOT: ${{ github.workspace }}/mdn/curriculum + GENERIC_CONTENT_ROOT: ${{ github.workspace }}/mdn/generic-content/files BASE_URL: "https://test.developer.allizom.org" # rari BUILD_OUT_ROOT: "client/build" - GENERIC_CONTENT_ROOT: "copy" LIVE_SAMPLES_BASE_URL: https://live.test.mdnyalp.dev INTERACTIVE_EXAMPLES_BASE_URL: https://interactive-examples.mdn.allizom.net ADDITIONAL_LOCALES_FOR_GENERICS_AND_SPAS: de diff --git a/build/spas.ts b/build/spas.ts index b7440fc41f6f..62e52645f654 100644 --- a/build/spas.ts +++ b/build/spas.ts @@ -1,6 +1,5 @@ import fs from "node:fs"; import path from "node:path"; -import { fileURLToPath } from "node:url"; import frontmatter from "front-matter"; import { fdir, PathsOutput } from "fdir"; @@ -22,6 +21,7 @@ import { CONTRIBUTOR_SPOTLIGHT_ROOT, BUILD_OUT_ROOT, DEV_MODE, + GENERIC_CONTENT_ROOT, } from "../libs/env/index.js"; import { isValidLocale } from "../libs/locale-utils/index.js"; import { DocFrontmatter, DocParent, NewsItem } from "../libs/types/document.js"; @@ -271,7 +271,7 @@ export async function buildSPAs(options: { async function buildStaticPages( dirpath: string, slugPrefix?: string, - title = "MDN" + title?: string ) { const crawler = new fdir() .withFullPaths() @@ -282,7 +282,7 @@ export async function buildSPAs(options: { for (const filepath of filepaths) { const file = filepath.replace(dirpath, ""); - const page = file.split(".")[0]; + const page = file.split(".")[0].slice(1); const locale = DEFAULT_LOCALE; const pathLocale = locale.toLowerCase(); @@ -320,9 +320,9 @@ export async function buildSPAs(options: { }; const context: HydrationData = { hyData, - pageTitle: frontMatter.attributes.title + pageTitle: title ? `${frontMatter.attributes.title} | ${title}` - : title, + : frontMatter.attributes.title, url, }; @@ -343,21 +343,19 @@ export async function buildSPAs(options: { } } - await buildStaticPages( - fileURLToPath(new URL("../copy/plus/", import.meta.url)), - "plus/docs", - "MDN Plus" - ); - await buildStaticPages( - fileURLToPath(new URL("../copy/observatory/", import.meta.url)), - "observatory/docs", - OBSERVATORY_TITLE - ); - await buildStaticPages( - fileURLToPath(new URL("../copy/community/", import.meta.url)), - "", - "Contribute to MDN" - ); + if (GENERIC_CONTENT_ROOT) { + await buildStaticPages( + path.join(GENERIC_CONTENT_ROOT, "plus"), + "plus/docs", + "MDN Plus" + ); + await buildStaticPages( + path.join(GENERIC_CONTENT_ROOT, "observatory"), + "observatory/docs", + OBSERVATORY_TITLE + ); + await buildStaticPages(path.join(GENERIC_CONTENT_ROOT, "community")); + } // Build all the home pages in all locales. // Fetch merged content PRs for the latest contribution section. diff --git a/copy/community/community.md b/copy/community/community.md deleted file mode 100644 index a0f35e196761..000000000000 --- a/copy/community/community.md +++ /dev/null @@ -1,160 +0,0 @@ ---- -title: Contribute to MDN ---- - -# MDN Community - -Where web enthusiasts learn, collaborate, and create - -- [Start contributing](#join_us_in_shaping_a_better_web) -- [Join MDN Discord](https://mdn.dev/discord) - - - -- **45K+** Total contributors -- **200+** Weekly commits -- **7** Language communities - -## MDN's community powers the web - -MDN’s strength comes from the passion and dedication of our global community. -Since our founding in 2005, we’ve grown into a thriving network. Together, we’ve -created a comprehensive, open, and free resource that serves web developers -across the globe. With volunteers leading translation efforts in -[7 languages](/en-US/docs/MDN/Community/Contributing/Translated_content), we’re -truly international. - -## Meet our contributors - -We are an open-source community dedicated to building resources for a better -web. Our diverse contributors, including developers, technical writers, -students, educators, designers, and more, come from various backgrounds and -platforms. Anyone can contribute, and each contribution strengthens our -community, driving innovation and improving this vital resource for developers -worldwide. - -- [Join us](/en-US/docs/MDN/Community/Contributing/Getting_started) -- [View all contributors](https://github.com/mdn/content/graphs/contributors) - - - -- Jason Lam, 林家祥 https://github.com/JasonLamv-t Grantit -- Nicolò Ribaudo https://github.com/nicolo-ribaudo Igalia -- Joshua Chen https://github.com/Josh-Cena -- Kimchanmin https://github.com/c17an SK Planet -- Gibbeum Yoon https://github.com/givvemee -- Jongha Kim https://github.com/wisedog -- Qizhe ZHANG https://github.com/PassionPenguin -- Artem Shibakov https://github.com/saionaro Bright Data -- HoChan Lee https://github.com/hochan222 11STREET -- Sangchul Lee https://github.com/1ilsang WoowaBros -- Park Sunhee https://github.com/sunhpark42 WoowaBros -- FU CHUNHUI https://github.com/fuchunhui Baidu -- Estelle Weyl https://github.com/estelle Open Web Docs -- Yitao Yin https://github.com/yin1999 Northwestern Polytechnical University -- Florian Scholz https://github.com/Elchi3 Open Web Docs - - - -## Contributor spotlight - -- > There are many other things I like about MDN: the openness of its - > governance, the respect for contributors' work, the professional - > conversations, and the always timely reviews. MDN has consistently - > demonstrated the ideal form of an open-source project. - - [Joshua Chen](/en-US/community/spotlight/joshua-chen) (MDN contributor) - -- > MDN Web Docs has the most up-to-date and accurate information and the - > content is presented in an easy-to-understand manner. I also like that it's - > available in many languages (very important!). - - [Yuji](/en-US/community/spotlight/yuji) (MDN contributor) - -- > There are millions of web developers in China, and many of them begin their - > developer journey at MDN Web Docs. Contributing to MDN Web Docs is an - > excellent way to help people who are starting out. - - [YiTao Yin](/en-US/community/spotlight/yitao-yin) (MDN contributor) - -If you wish to be a part of the featured contributors here, -[let us know](https://forms.gle/7yk13Nn1WRLnuLvy5).
If you’re featured here -and would like to opt-out, -[please file an issue on GitHub](https://github.com/mdn/content/issues/new?assignees=&labels=needs+triage&projects=&template=content-bug.yml). - -## Learn how to get started - -We collaborate on [GitHub](https://github.com/mdn), our project's home, on -various tasks such as writing and improving documentation, fixing bugs, and -providing review feedback. It starts here, with you. Want to start right away, -but not sure how? Follow -[our guide](https://github.com/mdn/content/blob/main/CONTRIBUTING.md#mdn-web-docs-contribution-guide) -to make your first contribution. - -Watch this video on -[how to get started with contributing to MDN](https://www.youtube.com/watch?v=Xnhnu7PViQE). - -[Video from the community team on contributing to MDN](https://www.youtube.com/watch?v=Xnhnu7PViQE) - -## Join us in shaping a better web - -Become part of this globally cherished group that’s dedicated to documenting web -technologies. Whether you’re an expert or a beginner, there’s a place for you in -our inclusive community. Check out some of the ways you can contribute and -engage. - -- ### Fix issues - - Submit pull requests to fix reported issues. - - [Squash bugs](https://github.com/mdn/content/issues) - -- ### Improve content - - Fix inaccuracies and fill in missing information. - - [Start writing](https://github.com/mdn/content/#readme) - -- ### Localize content - - Participate in translating content into one of our supported languages. - - [Find your locale](/en-US/docs/MDN/Community/Contributing/Translated_content#active_locales) - -- ### Answer questions - - Share your knowledge and expertise and guide fellow learners. - - [Help on Discord](https://mdn.dev/discord) - -## Help us fix open issues - -New to MDN or open-source projects? Tackle our beginner-friendly issues to help -improve MDN. - -## Join the conversation - -- ### Chat with us on Discord - - Connect with the community. Engage with domain experts. Help others learn. - - [Join MDN Discord](https://mdn.dev/discord) - -- ### Join our Community Call - - Every month, get exclusive updates from the MDN team. Share your ideas and - contributions. - - [RSVP to the next community call](https://github.com/mdn/community-meetings?tab=readme-ov-file#mdn-community-meetings) - -While working in Mozilla spaces and communities, please adhere to the -[Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/), -which promote respect, inclusion, and a harassment-free environment for all -community members. - -## Licensing and reuse - -MDN's resources are freely available under various open-source licenses. For -detailed information on reusing MDN content, check out our -[Attribution and Copyright Licensing](https://developer.mozilla.org/en-US/docs/MDN/About#using_mdn_web_docs_content) -page. diff --git a/copy/config.json b/copy/config.json deleted file mode 100644 index 6438b35bbbc1..000000000000 --- a/copy/config.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "pages": { - "community": { - "titleSuffix": "Contribute to MDN" - }, - "plus": { - "slugPrefix": "plus/docs", - "titleSuffix": "MDN Plus" - }, - "observatory": { - "slugPrefix": "observatory/docs", - "titleSuffix": "HTTP Observatory" - } - }, - "spas": { - "about": { - "slug": "about", - "pageTitle": "About MDN" - }, - "advertising": { - "slug": "advertising", - "pageTitle": "Advertise with us" - }, - "plus": { - "slug": "plus", - "pageTitle": "MDN Plus" - } - } -} diff --git a/copy/observatory/faq.md b/copy/observatory/faq.md deleted file mode 100644 index be1491e5c6e4..000000000000 --- a/copy/observatory/faq.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: FAQ ---- - -# Frequently asked questions - -## Should I implement all recommendations? - -Yes, you should do it if possible. There is no way to programmatically determine -the risk level of any given site. However, while your site may not be high-risk, -it is still worth learning about the defensive security standards highlighted by -Observatory, and implementing them wherever you can. - -## If I get an A+ grade, does that mean my site is secure? - -We'd love to say that any site that gets an A+ Observatory grade is perfectly -secure, but there are a lot of security considerations that we can't test. -Observatory tests for preventative measures against -[Cross-site scripting (XSS)](/en-US/docs/Glossary/Cross-site_scripting) attacks, -[manipulator-in-the-middle (MiTM)](/en-US/docs/Glossary/MitM) attacks, -cross-domain information leakage, insecure -[cookies](/en-US/docs/Web/HTTP/Cookies), -[Content Delivery Network](/en-US/docs/Glossary/CDN) (CDN) compromises, and -improperly issued certificates. - -However, it does not test for outdated software versions, -[SQL injection](/en-US/docs/Glossary/SQL_Injection) vulnerabilities, vulnerable -content management system plugins, improper creation or storage of passwords, -and more. These are just as important as the issues Observatory _does_ test for, -and site operators should not be neglectful of them simply because they score -well on Observatory. - -## Can I scan non-websites, such as API endpoints? - -The HTTP Observatory is designed for scanning websites, not API endpoints. It -can be used for API endpoints, and the security headers expected by Observatory -shouldn't cause any negative impact for APIs that return exclusively data, such -as JSON or XML. However, the results may not accurately reflect the security -posture of the API. API endpoints generally should only be accessible over -HTTPS. The recommended configuration for API endpoints is: - -```http -Content-Security-Policy: default-src 'none'; frame-ancestors 'none' -Strict-Transport-Security: max-age=63072000 -X-Content-Type-Options: nosniff -``` - -## Can other people see my test results? - -Anyone can choose to scan any domain, and the scan history for each domain is -public. However, HTTP Observatory does not store user data related to each scan. -In the old version of HTTP Observatory, users could choose to set their scan to -"public" or keep it private (the default), and there was a "recent scans" list -where domain names were listed. "Recent scans" was the main feature that users -would potentially wish to opt-out from, but it is no longer supported, hence -there is now no reason to provide the "public" flag. - -## When did the move occur? - -The new HTTP Observatory was launched on MDN on July 2, 2024. The old Mozilla -Observatory — containing HTTP Observatory plus other tools like TLS Observatory, -SSH Observatory, and Third-party tests — has been sunset in October 2024. - -> **Note:** Historic scan data has been preserved, and is included in the -> provided scan history for each domain. - -## What has changed after the migration? - -The MDN team has: - -- Updated the user experience to improve the site's look and make it easier to - use. For example, the recommendations highlighted by the test results are all - shown together, instead of one at a time. -- Updated the - [accompanying documentation](/en-US/docs/Web/Security/Practical_implementation_guides#content_security_fundamentals) - to bring it up to date and improve legibility. -- Changed the "rescan" checkbox and its underlying mechanics: - - There is no longer a rescan parameter. - - A site can only be scanned and a new result returned every 60 seconds. - - Deep-linking into a report initiates a rescan if the previous scan data is - older than 24 hours. -- Updated the - [tests](/en-US/observatory/docs/tests_and_scoring#tests-and-score-modifiers) - to bring them up-to-date with latest security best practices: - - Removed the out-of-date `X-XSS-Protection` test. - - Removed the out-of-date Flash and Silverlight (`clientaccesspolicy.xml` and - `crossdomain.xml`) embedding tests. - - Added a - [`Cross-Origin-Resource-Policy`](/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy) - (CORP) test. - - Updated the - [`Referrer-Policy`](/en-US/docs/Web/HTTP/Headers/Referrer-Policy) test to - update the score modifier for `referrer-policy-unsafe` and remove the - `referrer-policy-no-referrer-when-downgrade` result. - -## Has the HTTP Observatory API been updated to use the new tests? - -Yes. The new v2 API is available at an updated URL — -`https://observatory-api.mdn.mozilla.net/api/v2/scan` — and the response is now -more concise. For example, a [`POST`](/en-US/docs/Web/HTTP/Methods/POST) request -to `https://observatory-api.mdn.mozilla.net/api/v2/scan?host=mdn.net` will -return a JSON payload like this: - -```json -{ - "id": 53494870, - "details_url": "https://developer.mozilla.org/en-US/observatory/analyze?host=mdn.dev", - "algorithm_version": 4, - "scanned_at": "2024-10-11T13:21:36.453Z", - "error": null, - "grade": "A+", - "score": 105, - "status_code": 200, - "tests_failed": 0, - "tests_passed": 10, - "tests_quantity": 10 -} -``` - -We have removed several fields that were of limited use for CI integration, like -the complete response header listing. The important metrics like `score` and -`grade` are still included. We encourage you to migrate to the new API as soon -as possible: The v1 endpoint will be shut down on October 31, 2024. - -For reference, the v1 API returned a JSON payload with the following structure: - -```json -{ - "algorithm_version": 3, - "end_time": "Fri, 11 Oct 2024 13:19:31 GMT", - "grade": "A+", - "hidden": false, - "likelihood_indicator": "LOW", - "response_headers": { - "Accept-Ranges": "none", - "Another-Header": "another-value" - }, - "scan_id": 56728847, - "score": 100, - "start_time": "Fri, 11 Oct 2024 13:19:30 GMT", - "state": "FINISHED", - "status_code": 200, - "tests_failed": 0, - "tests_passed": 10, - "tests_quantity": 10 -} -``` - -## Does the new HTTP Observatory provide specific TLS and certificate data? - -The previous Observatory site included specific results tabs containing TLS and -certificate analysis data. The new one does not, and there are currently no -plans to include these features: it provides a clear focus on HTTP data. - -## (Redirection) What is the HTTP redirection test assessing? - -This test is checking whether your web server is making its -[initial redirection from HTTP to HTTPS](/en-US/docs/Web/Security/Practical_implementation_guides/TLS#http_redirection), -on the same hostname, before doing any further redirections. This allows the -HTTP -[`Strict-Transport-Security`](/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) -(HSTS) header to be applied properly. - -For example, this redirection order is correct: - -`http://example.com` → `https://example.com` → `https://www.example.com` - -An incorrect (and penalized) redirection looks like this: - -`http://example.com` → `https://www.example.com` - -## (X-Frame-Options) What if I want to allow my site to be framed? - -As long as you are explicit about your preference by using the -[`Content-Security-Policy`](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) -[`frame-ancestors`](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors) -directive, you will pass the -[`X-Frame-Options`](/en-US/docs/Web/HTTP/Headers/X-Frame-Options) test. For -example, to allow your site to be framed by any HTTPS site: - -```http -Content-Security-Policy: frame-ancestors https: -``` diff --git a/copy/observatory/tests_and_scoring.md b/copy/observatory/tests_and_scoring.md deleted file mode 100644 index 47cb05afd439..000000000000 --- a/copy/observatory/tests_and_scoring.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Tests & Scoring ---- - -# HTTP Observatory Scoring Methodology - -It is difficult to assign an objective value to a subjective question such as -"How bad is not implementing HTTP Strict Transport Security?" In addition, what -may be unnecessary for one site — such as implementing Content Security Policy — -might mitigate important risks for another. The scores and grades offered by the -Mozilla Observatory are designed to alert developers when they're not taking -advantage of the latest web security features. Individual developers will need -to determine which ones are appropriate for their sites. - -This page outlines the scoring methodology and grading system Observatory uses, -before listing all of the specific tests along with their score modifiers. - -## Scoring Methodology - -All websites start with a baseline score of 100, which is then modified with -penalties and/or bonuses resulting from the tests. The scoring is done across -two rounds: - -1. The baseline score has the penalty points deducted from it. -2. If the resulting score is 90 (A) or greater, the bonuses are then added to - it. You can think of the bonuses as extra credit for going above and beyond - the call of duty in defending your website. - -Each site tested by Observatory is awarded a grade based on its final score -after the two rounds. The minimum score is 0, and the highest possible score in -the HTTP Observatory is currently 145. - -## Grading Chart - -| Scoring Range | Grade | -| :-----------: | :-----------: | -| 100+ |  A+ | -| 90-99 |  A  | -| 85-89 |  A- | -| 80-84 |  B+ | -| 70-79 |  B  | -| 65-69 |  B- | -| 60-64 |  C+ | -| 50-59 |  C  | -| 45-49 |  C- | -| 40-44 |  D+ | -| 30-39 |  D  | -| 25-29 |  D- | -| 0-24 |  F  | - -The letter grade ranges and modifiers are essentially arbitrary, however, they -are based on feedback from industry professionals on how important passing or -failing a given test is likely to be. - -## Tests and Score Modifiers - -> **Note:** Over time, the modifiers may change as baselines shift or new -> cutting-edge defensive security technologies are created. The bonuses -> (positive modifiers) are specifically designed to encourage people to adopt -> new security technologies or tackle difficult implementation challenges. diff --git a/copy/plus/faq.md b/copy/plus/faq.md deleted file mode 100644 index 3afb52ce160d..000000000000 --- a/copy/plus/faq.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: FAQ ---- - -# Frequently asked questions - -## What is MDN Plus? - -MDN Plus is a premium subscription service launched in March 2022 by Mozilla. -The service allows users to customize their MDN Web Docs experience through -premium features such as [Updates](/en-US/plus/docs/features/updates), -[Collections](/en-US/plus/docs/features/collections) and -[MDN Offline](/en-US/plus/docs/features/offline). - -## Why are we working on premium features on MDN? - -The extensive research we have done in 2020 and 2021 showed us that MDN users -would appreciate a customized experience on MDN. We’ve got information on what -you would find useful and what you would be interested in. All the premium -features we propose today reflect that feedback. MDN Plus is an initial step -towards making the experience on the site more interactive and helpful for our -users. - -## How much does MDN Plus cost? - -A three-tiered pricing model has been put in place in order to try and -accommodate our users’ needs as much as possible: - -- _MDN Core_ - A free plan, for those ones who want to try out a limited version - of the premium features. -- _MDN Plus 5_ - A $5/month or $50/year plan that offers unlimited access to the - premium features included in MDN Plus. -- _MDN Supporter 10_ - A $10/month or $100/year plan for users who want to - support MDN with a higher amount. On top of the MDN Plus premium features, MDN - supporters will be able to contribute and shape the product moving forward, by - having early access to premium features and a direct feedback channel with the - MDN team. - -Subscribing for a yearly plan activates a 20% discount for all the paid options. - -## Can I upgrade/downgrade my plan? - -Currently, you can only upgrade your plan. For getting a downgrade, please -cancel your current subscription first and then activate the new one. - -## What is happening with the existing MDN Web Docs? - -Nothing. We will continue to develop & maintain our web documentation that will -remain free and accessible for everyone. There will be no change there. Even -more, we believe that MDN Web Docs will benefit from MDN Plus, as we plan to -reinvest part of the gains from MDN Plus and improve our documentation as well -as the overall user experience on the website. - -## Are we violating any OS license obligation by adding a paid product to MDN? - -MDN content is made available under a CC BY-SA 2.5 license. That license doesn't -preclude Mozilla (or other users of MDN content) from having a paid product. MDN -Plus adds premium features like updates and collections on top of the free -content. Regular users can still access and reuse MDN content under the Creative -Commons license. - -## Where will the money from MDN Plus go? - -Since its beginning in 2005, MDN Web Docs has been a project hosted and provided -by Mozilla. Mozilla covers the cost of infrastructure, development and -maintenance of the MDN platform, including a team of engineers and its own team -of dedicated writers. - -Mozilla wants MDN Plus to help ensure that MDN's open source content continues -to be supported into the future. MDN Plus has been built only with Mozilla -resources, and any revenue generated by MDN Plus will stay within Mozilla. We -are looking into ways to reinvest some of these additional funds into open -source projects contributing to MDN but it is still in the early stages. - -## Does the launch of MDN Plus impact the relationship with partners like OWD? - -The existence of a new subscription model will not detract from MDN's current -free Web Docs offering in any way. The current experience of accessing web -documentation will not change for users who do not wish to sign up for a premium -subscription. Open Web Docs (OWD) and Mozilla will continue to work closely -together on MDN for the best possible web platform documentation for everyone. -For more information about how our organizations work together, please check -[this article](https://hacks.mozilla.org/2022/03/mozilla-and-open-web-docs-working-together-on-mdn/). - -## What regions is MDN Plus available in? - -The free version of MDN Plus is available worldwide. Anyone can create an MDN -Plus account and try out a limited version of the premium features. As for the -paid plans, they are currently available as follows: in the United States, -Canada (since March 24th, 2022), Austria, Belgium, Finland, France, the United -Kingdom, Germany, Ireland, Italy, Malaysia, the Netherlands, New Zealand, Puerto -Rico, Sweden, Singapore, Switzerland, Spain (since April 28th, 2022), Estonia, -Greece, Latvia, Lithuania, Portugal, Slovakia and Slovenia (since June 15th, -2022). We are working on expanding this list even further. - -## I have an idea for MDN Plus, who should I contact? - -In case you have an idea you would like to share about MDN Plus, you can add -your suggestions to our [mdn-community](https://github.com/mdn/mdn-community) -repo. - -If a subscriber, you can also leave us feedback by accessing the ‘Feedback’ -option in the user menu. diff --git a/copy/plus/features/ai-help.md b/copy/plus/features/ai-help.md deleted file mode 100644 index 1197939e2667..000000000000 --- a/copy/plus/features/ai-help.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: AI Help ---- - -# AI Help - -> Get real-time assistance and support - -AI Help, available for both free and paid MDN Plus subscribers, utilizes OpenAI -GPT-4o mini for free users and GPT-4o for paying subscribers to enhance the MDN -experience. It offers quick and effective access to MDN's broad database. It -specializes in searching and summarizing MDN content to directly address your -queries. Additionally, for web development queries not covered in MDN, AI Help -draws on its external knowledge, always indicating when the sources are from -outside MDN. - -## Key Features - -- **Asking Questions**: You can ask your web development related questions - directly on MDN, in AI Help. -- **Content Search**: AI Help locates relevant articles from MDN's pages and - presents them to you. -- **Summary Generation**: It offers concise summaries as answers to your - questions, providing the option to explore the sources directly, read the - summary, or both. -- **Code Testing**: When articles include code examples, you can test the code - directly in the [MDN Playground](/en-US/play), allowing you to immediately - check the code accuracy. - -## How to Use AI Help - -Navigate to [AI Help](/en-US/plus/ai-help) via the top menu bar on MDN pages. - -If you're not logged in or don't have an MDN Plus account, you'll be prompted to -sign up or log in using your Mozilla Account. - -![Screenshot of AI Help page as non-logged in user, AI Help button highlighted as well as the Log in/Sign up options](/assets/plus-docs/ai-help/login-signup.png) - -Once logged in, you'll access AI Help's main page where you can select from the -suggested questions or input your own. - -AI Help will search MDN and display the consulted pages in real time with -summary links. - -![Screenshot of logged-in AI Help page, AI Help Search highlighted, questions inserted and answer generated](/assets/plus-docs/ai-help/example-question-answering.png) - -You’ll be able to **Edit** your question by using the edit option, and AI Help -will provide you with a new answer. - -![Screenshot of logged-in AI Help page, AI Help Edit option opened and highlighted, on the same question as above](/assets/plus-docs/ai-help/example-question-editing.png) - -### Chat History - -Enable chat history to save your interactions and come back later to them. - -![Screenshot of same logged-in AI Help page, AI Help Chat History highlighted with click on button ‘Enable History’](/assets/plus-docs/ai-help/history-banner.png) - -You can also manage your history directly from your Account Settings, and -disable or delete it at any time. - -![Screenshot of Account Settings page, with Chat History Enable and Delete highlighted’](/assets/plus-docs/ai-help/history-settings.png) - -### Code Testing - -Select code examples and test them in the MDN Playground for a quick check of -code accuracy and a seamless coding experience. - -![Screenshot of an AI Help answer with code examples that are being added to a list for sending them to the Playground](/assets/plus-docs/ai-help/code-examples-queue.png) - -![Screenshot with code examples opened in the Playground](/assets/plus-docs/ai-help/code-examples-playground.png) - -### Feedback - -You can rate answers using the thumbs-up/down mechanism. - -![Screenshot with thumbs up/down highlighted](/assets/plus-docs/ai-help/rate-answers.png) - -If you think an answer is incorrect or unhelpful, file an issue using the -provided template, and one of our engineers will look into it and get back to -you quickly. - -![Screenshot with Github issue template open](/assets/plus-docs/ai-help/issue-template.png) - -You can also use the dedicated feedback link on the AI Help page for general -feedback about the feature. - -![Screenshot with the general feedback link highlighted](/assets/plus-docs/ai-help/report-feedback.png) - -Thank you for using AI Help to enhance your MDN experience! diff --git a/copy/plus/features/collections.md b/copy/plus/features/collections.md deleted file mode 100644 index 50b301f9891f..000000000000 --- a/copy/plus/features/collections.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Collections ---- - -# Collections - -> MDN. Hand _selected_ by you. -> -> Collections allow you to save MDN articles and share your library across -> devices. We also automatically save for you the pages you visit most -> frequently. They will help you find what you need quicker by showing first in -> your search results when looking for a relevant topic and you’ll be able to -> curate the lists to your liking. - -## Getting started - -To start creating your Collections, **Save a page** first. - -### Desktop - -1. Select **Save** at the top of the page. - ![Screenshot showing save button highlighted at the top right of the page.](/assets/plus-docs/collections/desktop-saving-page.png) -2. Click **Save** in the dialog that opens. - ![Screenshot showing collections dialog with save button highlighted.](/assets/plus-docs/collections/desktop-page-dialog-save.png) - -### Mobile - -1. **Open the ⋮ menu** - ![Screenshot showing three dot button highlighted at the top right of the page.](/assets/plus-docs/collections/mobile-open-article-actions.png) -2. Tap on **Save**. - ![Screenshot showing the save menu entry highlighted.](/assets/plus-docs/collections/mobile-save-page.png) -3. In the next view that opens, tap **Save** - ![Screenshot showing the save collection item view. This contains two inputs and two buttons one of which is the save button.](/assets/plus-docs/collections/mobile-save-page-step-one.png) - -## Reaching the Collections page - -When an article is saved, it appears in **Collections**. - -### Desktop - -1. Click on your avatar at the top-right and select **Collections**. - ![Screenshot showing the user menu entry expanded. This reveals a number of options the second of which is Collections.](/assets/plus-docs/collections/desktop-collections-user-menu.png) - -### Mobile - -1. Open the main menu by tapping on the **burger menu icon** at the top right of - the page. - ![Screenshot showing the burger menu icon highlighted.](/assets/plus-docs/collections/mobile-burger-menu.png) -2. Click on your avatar / email address at the bottom of the menu. - ![Screenshot showing the expanded user menu.](/assets/plus-docs/collections/mobile-menu.png) -3. From the submenu, tap on **Collections**. - ![Screenshot showing the expanded submenu with Collections highlighted.](/assets/plus-docs/collections/mobile-collections-menu-item.png) - -## The Collections page overview - -Your saved articles will appear on the collections dashboard accessible from the -**MDN Plus → Collections** link. - -### Desktop - -![Screenshot showing the collections dashboard. The dashboard shows a list of all pages you have saved.](/assets/plus-docs/collections/collections-dashboard.png) - -### Mobile - -![Screenshot showing the collections dashboard on mobile. The dashboard shows a list of all pages you have saved.](/assets/plus-docs/collections/mobile-collections-dashboard.png) - -## Adding notes - -### Desktop - -Add notes from **an article page** - -1. Select **Saved** at the top of the page. - ![Screenshot showing and article page that has been saved to your collections. The saved button located at the top right of the page is highlighted.](/assets/plus-docs/collections/desktop-page-dialog-save.png) -2. Type the note you’d like to add in the **Note** field and select **Save**. - ![Screenshot showing the collection dialog. It contains two input fields and two buttons. The second input field is for notes.](/assets/plus-docs/collections/desktop-page-add-note.png) - -Add notes from **Collections** - -1. Click the **⋮ menu** to the right of the bookmark and select **Edit**. - ![Screenshot showing the collection dashboard. On the right of an entry is a three dot menu item which is highlighted](/assets/plus-docs/collections/desktop-collections-three-dot-menu.png) -2. Select **Edit**. - ![Screenshot showing the expanded three dot menu. This reveals two options, the first of which is edit.](/assets/plus-docs/collections/desktop-collections-edit-menu.png) -3. Type the note you’d like to add in the **Note** field and select **Save**. - ![Screenshot showing the edit collection entry dialog. It contains two input fields and two buttons. The second input field is for notes.](/assets/plus-docs/collections/desktop-collections-edit-dialog-add-note.png) - -### Mobile - -Add notes from **an article page** - -1. Click the **⋮ menu** to the right of the saved article - ![Screenshot showing the three dot menu at the top right.](/assets/plus-docs/collections/mobile-open-article-actions.png) -2. Select **Saved**. - ![Screenshot showing the article actions menu with the saved menu entry highlighted.](/assets/plus-docs/collections/mobile-saved-page.png) -3. Type the note you’d like to add in the **Note** field and select **Save**. - ![Screenshot showing the edit saved collection entry view. It contains two input fields and two buttons. The second input field is for notes.](/assets/plus-docs/collections/mobile-add-note.png) - -Add notes from **Collections** - -1. Click the **⋮ menu** to the right of the saved article and select **Edit**. - ![Screenshot showing the expanded three dot menu located to the right of a collection entry. The first option is edit.](/assets/plus-docs/collections/mobile-collections-dashboard-edit.png) -2. Type the note you’d like to add in the **Note** field and select **Save**. - ![Screenshot showing the edit saved collection entry view. It contains two input fields and two buttons. The second input field is for notes.](/assets/plus-docs/collections/mobile-add-note.png) - -## Removing a saved page - -### Desktop - -Remove a saved page from **an article page** - -1. Select **Saved** at the top of the page. - ![Screenshot showing and article page that has been saved to your collections. The saved button located at the top right of the page is highlighted.](/assets/plus-docs/collections/desktop-page-dialog-save.png) -2. Select **Delete**. - ![Screenshot showing the collection dialog. It contains two input fields and two buttons. The second button is delete, which is also highlighted](/assets/plus-docs/collections/desktop-remove-saved-delete.png) - -Remove a saved page from **Collections** - -1. Click the **⋮ menu** to the right of the saved page and select **Delete**. - ![Screenshot showing the expanded three dots icon. There are two options, the second of which is delete.](/assets/plus-docs/collections/desktop-collections-dashboard-delete.png) -2. Your saved page has now been removed. Select **Undo** in the notification at - the bottom of the screen to revert this action. - ![Screenshot showing the undo toast dialog at the bottom of the page. The undo button located on the right is highlighted](/assets/plus-docs/collections/desktop-collections-undo.png) - -### Mobile - -Remove a saved page from **an article page** - -1. Click the **⋮ menu** to the right of the saved article - ![Screenshot showing the three dot menu at the top right.](/assets/plus-docs/collections/mobile-open-article-actions.png) -2. Select **Saved**. - ![Screenshot showing the article actions menu with the saved menu entry highlighted.](/assets/plus-docs/collections/mobile-saved-page.png) -3. Select **Delete**. - ![Screenshot showing the edit view on mobile. It contains two input fields and two buttons. The second button is delete, which is also highlighted](/assets/plus-docs/collections/mobile-collections-delete-entry.png) - -Remove a saved page from **Collections** - -1. Click the **⋮ menu** to the right of the saved page and select **Delete**. - ![Screenshot showing the expanded three dots icon. There are two options, the second of which is delete.](/assets/plus-docs/collections/mobile-collections-dashboard-delete-entry.png) -2. Your saved page has now been removed. Select **Undo** in the notification at - the bottom of the screen to revert this action. - ![Screenshot showing the undo toast dialog at the bottom of the page. The undo button located on the right is highlighted](/assets/plus-docs/collections/mobile-collections-undo.png) - -## Filtering saved pages - -Saved pages can be filtered by searching Title keywords through the page search -bar. - -![Screenshot showing collections dashboard highlighting text inside the filter input element.](/assets/plus-docs/collections/desktop-collections-filter.png) - -## Sorting saved pages - -Saved pages can be sorted by Date added and Title. The input element is located -to the right of the Collections search input. - -![Screenshot showing collections dashboard with sort element expanded showing the date and title sorting options.](/assets/plus-docs/collections/desktop-collections-sort.png) - -## Frequently viewed articles - -These are collections we automatically create for you, based on your activity -while being logged into MDN Plus. As an MDN Plus user, you are automatically -opted into this feature. - -![Screenshot showing collections dashboard with the frequently viewed articles tab active.](/assets/plus-docs/collections/desktop-collections-fva.png) - -## How are these articles generated? - -Frequently viewed pages are articles you visit most frequently while logged into -MDN Plus. We will always show you your most recent top viewed 20 pages. - -## Remove a saved page from Frequently viewed articles - -### Desktop - -1. Click the **⋮ menu** to the right of the saved page and select **Delete**. - ![Screenshot showing the expanded three dots icon. There are two options, the second of which is delete.](/assets/plus-docs/collections/desktop-collections-delete-fva.png) -2. Your saved page has now been removed. Select **Undo** in the notification at - the bottom of the screen to revert this action. - ![Screenshot showing the undo toast dialog at the bottom of the page. The undo button located on the right is highlighted](/assets/plus-docs/collections/desktop-collections-undo.png) - -### Mobile - -Click the **⋮ menu** to the right of the saved page and select **Delete**. Your -saved page has now been removed. Select **Undo** in the notification at the -bottom of the screen to revert this action. - -1. Click the **⋮ menu** to the right of the saved page and select **Delete**. - ![Screenshot showing the expanded three dots icon. There are two options, the second of which is delete.](/assets/plus-docs/collections/desktop-collections-delete-fva.png) -2. Your saved page has now been removed. Select **Undo** in the notification at - the bottom of the screen to revert this action. - ![Screenshot showing the undo toast dialog at the bottom of the page. The undo button located on the right is highlighted](/assets/plus-docs/collections/mobile-collections-fva-undo.png) diff --git a/copy/plus/features/offline.md b/copy/plus/features/offline.md deleted file mode 100644 index 9a42178d726c..000000000000 --- a/copy/plus/features/offline.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: MDN Offline ---- - -# MDN Offline - -> _Web docs without web access_: the full power of MDN, offline -> -> Leverage the offline capability of our **MDN PWA** to work on the go. Whether -> you're in a high-speed train, a cabin in the woods or just looking to save -> some data, MDN Offline gives you access to the full power of your favorite dev -> resource, so your projects aren't interrupted. The site is snappier and your -> experience better. - -When you need access to MDN even without an internet connection, **MDN Offline** -allows you to browse the most up to date version of the site, or simply to have -a faster experience while saving data. - -## Getting started - -To start using MDN Offline, you must first **Enable offline storage**. - -1. Click on your avatar(top-right) and open the **user menu → My Settings** - ![Screenshot showing expanded user menu revealing the MDN Offline menu option.](/assets/plus-docs/offline/desktop-offline-user-menu.png) -2. Under **MDN Offline** use the **Enable offline storage** switch. - ![Screenshot showing MDN Offline page with the enable offline toggle highlighted.](/assets/plus-docs/offline/desktop-offline-enable-offline.png) - -You can also add it to your homescreen for an experience similar to using a -native app. - -## Choose how to stay up-to-date - -1. Enable offline storage - ![Screenshot showing MDN Offline page with the enable offline toggle highlighted.](/assets/plus-docs/offline/desktop-offline-enable-offline.png) -2. Choose how to update -3. Manually update by clicking **Update now** or **Enable auto-update** - ![Screenshot showing MDN Offline page with the auto update toggle highlighted.](/assets/plus-docs/offline/desktop-offline-enable-auto-update.png) -4. Clicking **Update now** will start the download of the latest version of MDN - Web Docs. - ![Screenshot showing MDN Offline page with the update now button highlighted.](/assets/plus-docs/offline/desktop-offline-manual-update.png) -5. The date of the last update is also shown. - -## Clear stored data - -Open the user menu → MDN Offline → Clear data - -![Screenshot showing MDN Offline page with the clear data button highlighted.](/assets/plus-docs/offline/desktop-offline-clear-data.png) - -## Supported Features - -Some insight into what can be expected from using MDN Offline - -### Browsing Content - -If offline mode is enabled, offline content is preferred. All content works -without an internet connection, with the exception of a few github-based -examples and large video files. You can also indicate you prefer offline content -even when online. - -> NOTE: MDN Offline cannot be used while in a private or incognito window. diff --git a/copy/plus/features/overview.md b/copy/plus/features/overview.md deleted file mode 100644 index a6d91f6c9fa3..000000000000 --- a/copy/plus/features/overview.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Feature Overview ---- - -# Overview - -> More MDN. Your MDN. _Get started_. -> -> This page is an overview of the MDN Plus documentation and related resources. - -MDN Plus is a premium subscription service launched by Mozilla. The service -allows users to customize their MDN Web Docs experience through premium features -such as Collections, filtering Updates and MDN Offline. - -Learn more about MDN Plus on our [website](/) or in this -[blogpost](https://hacks.mozilla.org/2022/03/introducing-mdn-plus-make-mdn-your-own/). diff --git a/copy/plus/features/playground.md b/copy/plus/features/playground.md deleted file mode 100644 index 98acf32f6f23..000000000000 --- a/copy/plus/features/playground.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Playground ---- - -# Playground - -> Write,Test and _Share_ your code - -## What is the Playground? - -The Playground is the new web development tool provided by MDN. It serves as a -platform for web developers to preview and experiment with HTML, CSS, and -JavaScript code. The Playground offers features like basic autocomplete, code -formatting using the popular "prettier" tool, and the ability to share your work -with others. By integrating the Playground into our web docs, MDN aims to -provide an enhanced learning and coding experience for developers. - -## Key Features - -The MDN Playground comes packed with several key features, including: - -**Preview:** Instantly see the results of your HTML, CSS, and JavaScript code. - -**Autocomplete:** Benefit from basic code suggestions and auto-completion to -speed up your coding process. - -**Code Formatting:** Utilize the powerful "prettier" tool to automatically -format your code for better readability. - -**Sharing:** Share your amazing work with others by publishing your code and -sharing the generated link. - -**Integration within MDN:** Seamlessly access the Playground within MDN, -enabling a comprehensive learning experience. - -## How to Access the MDN Playground - -Accessing the MDN Playground is quick and easy. Follow these steps to start -using the Playground: - -1. There are two ways to access the playground: a. directly from the MDN menu by - clicking on “Play” b. by accessing any MDN documentation page including code - samples and clicking on the playground icon within the code samples - ![Screenshot of top menu with play highlighted](/assets/plus-docs/playground/playground-menu.png) - ![Screenshot of a code example with play highlighted](/assets/plus-docs/playground/playground-sample.png) -2. Clicking the "Playground" button will launch the Playground in a new tab. -3. Start coding, previewing, and experimenting with HTML, CSS, and JavaScript - right away! - ![Screenshot of the playground](/assets/plus-docs/playground/playground-example.png) - -## Join the Community - -The MDN Playground is not just a tool; it's a community of passionate developers -eager to learn and collaborate. We encourage you to join the MDN Playground -community and become part of this vibrant ecosystem. Here's how you can get -involved: - -Sign up for an MDN Plus account if you haven't already. - -1. Participate in discussions, share ideas, and seek help on - [Discord](/discord). -2. Contribute to the improvement of the Playground by - [reporting issues](https://github.com/mdn/yari/issues/new?template=bug-report.yml) - or - [suggesting new features](https://github.com/mdn/mdn/issues/new?template=content-or-feature-suggestion.yml). -3. Showcase your projects, share your knowledge, and inspire others by - contributing code examples to MDN. - -## Under the Hood - -Curious about how the Playground works? Visit our blog and read more about the -technical details, architecture, and design choices we made to build it. diff --git a/copy/plus/features/updates.md b/copy/plus/features/updates.md deleted file mode 100644 index 5c23532a8469..000000000000 --- a/copy/plus/features/updates.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Updates ---- - -# Updates - -> Stay _up to date_ with MDN Updates -> -> Whether Web APIs, JavaScript, CSS, HTTP, or HTML, MDN Web Docs reflects the -> ever-changing landscape for features across the most popular browsers and -> devices with detailed documentation and guidance geared towards developers. - -When you're developing for the Web, you need to make sure you're building -applications with well-supported features to give your users the best -experience. Choosing new Web features means that you need to keep an eye on -compatibility changes as vendors frequently add, update, or remove support for -Web platform technologies. - -MDN Updates is a feature that helps you navigate and curate Web platform -technology support via a stream of updates. The results organized in the stream -of updates show compatibility by feature across fourteen different browser -engines, from iOS and Android to desktop and server platforms. - -Features are categorized by technology like CSS, HTML, JavaScript, HTTP, and -others to let you focus on the technologies that impact your development -projects. - -MDN Plus Updates lets you quickly get an overview of new, experimental, and -upcoming browser support, new sub-features under a major feature, deprecated or -removed support, and changes to existing browser compatibility data entries. - -## Using MDN Plus Updates - -To use Updates, navigate to the [MDN Plus Updates](/en-US/plus/updates) page, -where you can see a list of all changes in browser support for features on MDN -Web Docs listed by date. - -![Screenshot of default view](/assets/plus-docs/updates/updates.png) - -For each feature, updates display the release version and the date when browser -support changed. Expanding the update shows Browser Compatibility Tables to -indicate support across all browsers and devices. The feature update includes -links to MDN Web Docs pages with clear documentation and guidance on how to use -it. - -![Expanded feature screenshot with the table, link to docs, watch and save](/assets/plus-docs/updates/updates_bcd.png) - -## Filtering and searching web platform updates - -By default, the list of updates shows all changes grouped by browser release -version and date. Selecting a browser from the dropdown menu will filter the -list of changes to only show changes for that browser. You can select a category -from the dropdown menu to only show changes for that technology category or -combine that with a browser filter to show only changes for a specific browser -and technology category. - -![Filtered screenshot, browser and category](/assets/plus-docs/updates/updates_filter.png) - -You can also search for a specific feature by name or keyword to find the -functionality you're looking for. - -![Search screenshot"](/assets/plus-docs/updates/updates_filter.png) - -## Curating your own collection of updates - -Aside from Browser Compatibility Tables and links to the MDN Web Docs pages, -expanding feature details provides an additional option to **Save** the feature. -Saving a feature will add it to a curated collection of features you want to -track. You can create multiple collections to organize and group features that -matter most for your applications and projects. - -Saving a feature to a collection allows you to add the feature to a collection -of saved features. You can create multiple collections to organize and group -features you want to track. - -![Screenshot of multiple collections](/assets/plus-docs/updates/collections.png) - -To view your collection of saved features, click the **Saved** tab at the top of -the Updates page. - -![Screenshot showing the multiple collections on the updates page](/assets/plus-docs/updates/updates_collection.png) - -Visit the [MDN Plus Updates](/en-US/plus/updates) page and give us feedback. diff --git a/docs/envvars.md b/docs/envvars.md index 128ab565590f..2f600f9bec9e 100644 --- a/docs/envvars.md +++ b/docs/envvars.md @@ -50,6 +50,12 @@ https://github.com/mdn/mdn-contributor-spotlight. Path to the curriculum content, cloned from https://github.com/mdn/curriculum. +### `GENERIC_CONTENT_ROOT` + +**Default: `../generic-content/files`** + +Path to the generic content. + ### `BUILD_FOLDERSEARCH` **Default: ``** (meaning, none) diff --git a/libs/env/index.d.ts b/libs/env/index.d.ts index f57b38a5ed1b..f29865853a34 100644 --- a/libs/env/index.d.ts +++ b/libs/env/index.d.ts @@ -16,6 +16,7 @@ export const CONTENT_TRANSLATED_ROOT: string; export const CONTRIBUTOR_SPOTLIGHT_ROOT: string; export const BLOG_ROOT: string; export const CURRICULUM_ROOT: string; +export const GENERIC_CONTENT_ROOT: string; export const REPOSITORY_URLS: { [path: string]: string; }; diff --git a/libs/env/index.js b/libs/env/index.js index 7f9e65be1a13..5b976a14be24 100644 --- a/libs/env/index.js +++ b/libs/env/index.js @@ -92,6 +92,10 @@ export const BLOG_ROOT = correctContentPathFromEnv("BLOG_ROOT"); export const CURRICULUM_ROOT = correctPathFromEnv("CURRICULUM_ROOT"); +export const GENERIC_CONTENT_ROOT = correctContentPathFromEnv( + "GENERIC_CONTENT_ROOT" +); + // This makes it possible to know, give a root folder, what is the name of // the repository on GitHub. // E.g. `'https://github.com/' + REPOSITORY_URLS[document.fileInfo.root]`