From b6ebc5f88ffe9fb442238f160879ad47dd713d11 Mon Sep 17 00:00:00 2001 From: name Date: Fri, 11 Aug 2023 05:09:24 +0000 Subject: 2023-08-10 --- docusaurus/.dockerignore | 26 +++ docusaurus/.gitignore | 26 +++ docusaurus/babel.config.js | 12 ++ docusaurus/docs/acknowledgment.mdx | 87 +++++++++ docusaurus/docs/community.mdx | 41 +++++ docusaurus/docs/dmca.mdx | 12 ++ docusaurus/docs/index.mdx | 109 +++++++++++ docusaurus/docs/mirror.mdx | 50 +++++ docusaurus/docs/source.mdx | 32 ++++ docusaurus/docusaurus.config.js | 102 +++++++++++ docusaurus/package.json | 51 ++++++ docusaurus/sidebars.js | 29 +++ docusaurus/src/components/ButtonLink.tsx | 27 +++ docusaurus/src/components/FormCTA.tsx | 23 +++ docusaurus/src/components/FormQuickStart.tsx | 35 ++++ docusaurus/src/components/InputMathProblems.tsx | 33 ++++ docusaurus/src/components/ShowStepButton.tsx | 25 +++ docusaurus/src/css/custom.css | 21 +++ docusaurus/src/functions/submitMathInputForm.tsx | 23 +++ docusaurus/src/theme/Footer/InputPreloader.tsx | 43 +++++ docusaurus/src/theme/Footer/index.tsx | 21 +++ docusaurus/src/theme/NotFound/DDoSProtection.tsx | 34 ++++ docusaurus/src/theme/NotFound/index.tsx | 28 +++ docusaurus/src/theme/NotFound/redirectInput.tsx | 70 +++++++ docusaurus/static/.gitlab-ci.yml | 19 ++ docusaurus/static/.nojekyll | 0 .../ajax/libs/wolfree/23.7.8/css/Placeholder.css | 90 +++++++++ .../ajax/libs/wolfree/23.7.8/css/PodsParser.css | 125 +++++++++++++ .../static/ajax/libs/wolfree/23.7.8/js/AJAX.js | 56 ++++++ .../static/ajax/libs/wolfree/23.7.8/js/AppID.js | 57 ++++++ .../ajax/libs/wolfree/23.7.8/js/Entrypoint.js | 26 +++ .../ajax/libs/wolfree/23.7.8/js/Placeholder.js | 69 +++++++ .../static/ajax/libs/wolfree/23.7.8/js/Pods.js | 56 ++++++ .../ajax/libs/wolfree/23.7.8/js/PodsParser.js | 201 +++++++++++++++++++++ .../ajax/libs/wolfree/23.7.8/js/PostProcessor.js | 63 +++++++ .../ajax/libs/wolfree/23.7.8/js/Preprocessor.js | 29 +++ .../ajax/libs/wolfree/23.7.8/js/Processor.js | 54 ++++++ .../ajax/libs/wolfree/23.7.8/js/SearchParams.js | 44 +++++ .../static/ajax/libs/wolfree/23.7.8/js/onload.js | 51 ++++++ docusaurus/static/instances.json | 41 +++++ docusaurus/static/n/v1/api/autocomplete/index.html | 0 docusaurus/static/n/v1/api/randomizer | 0 .../static/n/v1/api/samplefiles/fileinput/examples | 0 docusaurus/static/n/v1/api/sourcer/dataSources | 0 docusaurus/static/n/v1/api/sourcer/index.html | 0 docusaurus/static/users/me/account | 0 docusaurus/tsconfig.json | 18 ++ 47 files changed, 1959 insertions(+) create mode 100644 docusaurus/.dockerignore create mode 100644 docusaurus/.gitignore create mode 100644 docusaurus/babel.config.js create mode 100644 docusaurus/docs/acknowledgment.mdx create mode 100644 docusaurus/docs/community.mdx create mode 100644 docusaurus/docs/dmca.mdx create mode 100644 docusaurus/docs/index.mdx create mode 100644 docusaurus/docs/mirror.mdx create mode 100644 docusaurus/docs/source.mdx create mode 100644 docusaurus/docusaurus.config.js create mode 100644 docusaurus/package.json create mode 100644 docusaurus/sidebars.js create mode 100644 docusaurus/src/components/ButtonLink.tsx create mode 100644 docusaurus/src/components/FormCTA.tsx create mode 100644 docusaurus/src/components/FormQuickStart.tsx create mode 100644 docusaurus/src/components/InputMathProblems.tsx create mode 100644 docusaurus/src/components/ShowStepButton.tsx create mode 100644 docusaurus/src/css/custom.css create mode 100644 docusaurus/src/functions/submitMathInputForm.tsx create mode 100644 docusaurus/src/theme/Footer/InputPreloader.tsx create mode 100644 docusaurus/src/theme/Footer/index.tsx create mode 100644 docusaurus/src/theme/NotFound/DDoSProtection.tsx create mode 100644 docusaurus/src/theme/NotFound/index.tsx create mode 100644 docusaurus/src/theme/NotFound/redirectInput.tsx create mode 100644 docusaurus/static/.gitlab-ci.yml create mode 100644 docusaurus/static/.nojekyll create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/css/Placeholder.css create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/css/PodsParser.css create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/AJAX.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/AppID.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/Entrypoint.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/Pods.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/PostProcessor.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/Preprocessor.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/Processor.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/SearchParams.js create mode 100644 docusaurus/static/ajax/libs/wolfree/23.7.8/js/onload.js create mode 100644 docusaurus/static/instances.json create mode 100644 docusaurus/static/n/v1/api/autocomplete/index.html create mode 100644 docusaurus/static/n/v1/api/randomizer create mode 100644 docusaurus/static/n/v1/api/samplefiles/fileinput/examples create mode 100644 docusaurus/static/n/v1/api/sourcer/dataSources create mode 100644 docusaurus/static/n/v1/api/sourcer/index.html create mode 100644 docusaurus/static/users/me/account create mode 100644 docusaurus/tsconfig.json (limited to 'docusaurus') diff --git a/docusaurus/.dockerignore b/docusaurus/.dockerignore new file mode 100644 index 0000000..019391a --- /dev/null +++ b/docusaurus/.dockerignore @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +# This file is part of Wolfree. +# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +package-lock.json diff --git a/docusaurus/.gitignore b/docusaurus/.gitignore new file mode 100644 index 0000000..019391a --- /dev/null +++ b/docusaurus/.gitignore @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +# This file is part of Wolfree. +# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +package-lock.json diff --git a/docusaurus/babel.config.js b/docusaurus/babel.config.js new file mode 100644 index 0000000..e4fb2e2 --- /dev/null +++ b/docusaurus/babel.config.js @@ -0,0 +1,12 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +// @ts-check + +module.exports = { + presets: [require.resolve("@docusaurus/core/lib/babel/preset")], +}; diff --git a/docusaurus/docs/acknowledgment.mdx b/docusaurus/docs/acknowledgment.mdx new file mode 100644 index 0000000..e711148 --- /dev/null +++ b/docusaurus/docs/acknowledgment.mdx @@ -0,0 +1,87 @@ +# Acknowledgment + +We extend our heartfelt gratitude to the communities and projects that promote diversity, equity, and inclusion on the Internet. Their efforts have been instrumental in distributing our free and open-source software. + +## The Fediverse + +Our community distributes source code on the Fediverse. + +The Fediverse is a federation of numerous independently hosted servers that connect various social media platforms. It enables seamless interactions across compatible platforms, encompassing social media services for blogging, photo sharing, and video sharing. + +Discover the Fediverse with these resources: + +- [**Fediverse Info**](https://fediverse.info/): A beginner-friendly introduction to the Fediverse. +- [**FediDB**](https://fedidb.org/): Visualized network statistics of the Fediverse. +- [**Mastodon Documentation**](https://docs.joinmastodon.org/): Comprehensive documentation for Mastodon, a self-hosted social networking service similar to Twitter. +- [**JoinFediverse Wiki**](https://joinfediverse.wiki/): An informative encyclopedia for the Fediverse. +- [**FediList**](http://demo.fedilist.com/): A simple website to explore instances on the Fediverse and facilitate discovery and connections. +- [**The Federation**](https://the-federation.info/): Indexed instances and statistics for the Fediverse. + +## ForgeFed + +Our community hosts source code on web services compatible with ForgeFed. + +ForgeFed specifies an essential federation protocol for version control services, promoting collaboration and cooperation. + +Explore ForgeFed and related projects: + +- [**ForgeFed**](https://forgefed.org/): The canonical website to learn more about the benefits and workings of ForgeFed. +- [**Gitea**](https://about.gitea.com/): A self-hosted Git service powering numerous instances across the Fediverse. +- [**Forgejo**](https://forgejo.org/): A soft fork of Gitea maintained by an inclusive community. + +## Copyleft + +Our community releases source code under a copyleft license. + +Copyleft is a legal technique that safeguards the freedom to copy and modify derivative works. + +Discover the significance of copyleft through these resources: + +- [**Blue Oak Council**](https://blueoakcouncil.org/primer): A comprehensive guide to open software licensing, making it accessible and understandable. +- [**What is Copyleft**](https://www.gnu.org/licenses/copyleft.html.en): An explanation of copyleft, reinforcing the importance of free software. +- [**Why Copyleft**](https://www.gnu.org/philosophy/why-copyleft.html.en): A showcase of the benefits of copyleft licenses to inspire more creators to embrace copyleft licensing. +- [**Why I Use the GPL and Not Cuck Licenses**](https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuck-licenses/): An elaboration on the advantages of copyleft. + +## Anna's Archive + +Anna's Archive is a non-profit online shadow library metasearch engine that provides access to a curated collection of book resources managed by anonymous archivists. Anna's Archive keeps backups of popular shadow libraries like Sci-Hub, Library Genesis, and Z-Library. + +- [**Anna's Archive - Wikipedia**](https://en.wikipedia.org/wiki/Anna's_Archive): A wiki page about Anna's Archive on the free encyclopedia. + +## The Internet Archive + +Our community archives source code on the Internet Archive. + +The Internet Archive is a non-profit library that lends digital copies of books. Despite facing challenges related to copyright issues, they continue to fight for the rights of libraries to own and lend ebooks. + +Learn more about their ongoing efforts through these articles: + +- [**Hachette v. Internet Archive**](https://www.eff.org/cases/hachette-v-Internet-archive) +- [**Fair Use Creep Is A Feature, Not a Bug**](https://www.eff.org/deeplinks/2023/01/fair-use-creep-feature-not-bug) +- [**The Fight Continues**](https://blog.archive.org/2023/03/25/the-fight-continues/) + +## Censorship Circumvention + +Safely circumventing censorship is crucial in fostering diversity, equity, and inclusion on the Internet. + +Enhance your knowledge of safety measures for censorship circumvention with these resources: + +- [**Privacy Guides**](https://privacyguides.org/): A user-friendly guide promoting data security and privacy. +- [**Mullvad Browser**](https://mullvad.net/en/browser): A privacy-focused web browser developed in collaboration between Mullvad VPN and the Tor Project. +- [**Tor Browser**](https://torproject.org/): A web browser capable of accessing the Tor network. +- [**Tails**](https://tails.net/): A Linux distribution aimed at preserving privacy and anonymity. +- [**Qubes OS**](https://qubes-os.org/): A Linux distribution that provides security through isolation. +- [**The Hitchhiker's Guide to Online Anonymity**](https://anonymousplanet.org/): An in-depth guide detailing online anonymity methods. + +## Net Neutrality + +Upholding net neutrality is pivotal in nurturing diversity, equity, and inclusion on the Internet. It ensures that broadband Internet access services do not impair or degrade lawful Internet traffic based on content, application, or service, subject to reasonable network management. + +Learn more about net neutrality and its importance through these articles: + +- [**We Need to Talk About Infrastructure**](https://www.eff.org/deeplinks/2022/12/we-need-talk-about-infrastructure): The importance of content-neutral essential Internet infrastructure and the challenges in defining what falls under this category. +- [**The Internet Is Not Facebook: Why Infrastructure Providers Should Stay Out of Content Policing**](https://www.eff.org/deeplinks/2022/10/Internet-not-facebook-why-infrastructure-providers-should-stay-out-content): The content policing of infrastructure providers due to complex challenges and potential harm to marginalized communities. +- [**International Coalition of Rights Groups Call on Internet Infrastructure Providers to Avoid Content Policing**](https://www.eff.org/press/releases/international-coalition-rights-groups-call-Internet-infrastructure-providers-avoid): Urging Internet infrastructure providers to avoid content policing, citing harm to users and human rights risks. +- [**Where the Sidewalk Ends: The Death of the Internet**](https://madattheInternet.substack.com/p/where-the-sidewalk-ends-the-death): The fragmenting of the Internet as national borders and government regulations stifle its openness and connectivity. + + diff --git a/docusaurus/docs/community.mdx b/docusaurus/docs/community.mdx new file mode 100644 index 0000000..aebf053 --- /dev/null +++ b/docusaurus/docs/community.mdx @@ -0,0 +1,41 @@ +# Community + +Welcome to our diverse and inclusive community! We encourage open discussions and warmly invite you to join the conversations. 🎉 + +:::note + +Our community thrives on the Fediverse, a decentralized social network that encompasses various platforms such as: + +- [Mastodon](https://joinmastodon.org/) +- [Pleroma](https://pleroma.social/) +- [Gitea](https://about.gitea.com/) +- [Forgejo](https://forgejo.org/) + +::: + +## Mastodon and Pleroma + +We would love to hear your thoughts! Express yourself freely on Mastodon and Pleroma. + +1. https://poa.st/@wolfree +2. https://sb.bae.st/@wolfree +3. https://kiwifarms.cc/wolfree +4. https://spinster.xyz/@wolfree +5. https://freespeechextremist.com/wolfree + +## Gitea and Forgejo + +Feel free to contribute and [report issues](https://docs.github.com/en/issues) on Gitea and Forgejo. + +1. https://try.gitea.io/wolfree/issues/issues +2. https://codeberg.org/wolfree/issues/issues +3. https://git.disroot.org/wolfree/issues/issues +4. https://next.forgejo.org/wolfree/issues/issues +5. https://git.kiwifarms.net/wolfree/issues/issues +6. http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/wolfree/issues/issues + +## Diversity, Equity, and Inclusion + +At our core, we strive to cultivate an environment that celebrates diversity, promotes equity, and upholds inclusion on the Internet. ❤️ We value and respect every voice. Let's connect and build a healthy, supportive community! + + diff --git a/docusaurus/docs/dmca.mdx b/docusaurus/docs/dmca.mdx new file mode 100644 index 0000000..4bffc1e --- /dev/null +++ b/docusaurus/docs/dmca.mdx @@ -0,0 +1,12 @@ +# DMCA takedown + +Below are some of the DMCA takedown notices issued by Wolfram Alpha LLC: + +1. [2021-08-11-wolfram.md](https://github.com/github/dmca/blob/master/2021/08/2021-08-11-wolfram.md) +2. [2021-08-16-wolfram.md](https://github.com/github/dmca/blob/master/2021/08/2021-08-16-wolfram.md) +3. [2022-09-22-wolfram.md](https://github.com/github/dmca/blob/master/2022/09/2022-09-22-wolfram.md) + +If you believe someone is using your copyrighted content unauthorizedly on GitHub or npm.js, please fill out the [Copyright claims form](https://github.com/contact/dmca) to submit a DMCA takedown notice to request that the content be changed or removed. +Before you begin, please read [GitHub's Copyright - DMCA Takedown Policy](https://docs.github.com/en/site-policy/content-removal-policies/dmca-takedown-policy). + +As with all legal matters, it is always best to consult a professional about your questions or situation. We strongly encourage you to do so before taking action that might impact your rights. This guide isn't legal advice. diff --git a/docusaurus/docs/index.mdx b/docusaurus/docs/index.mdx new file mode 100644 index 0000000..487c0b8 --- /dev/null +++ b/docusaurus/docs/index.mdx @@ -0,0 +1,109 @@ +--- +slug: / +title: Home page +--- + +#
Free Wolfram Alpha Step-by-Step Solutions + +Get free access to **step-by-step** solutions. Unlock the power of **Wolfram|Alpha Pro** for free. Wolfree is **free** and **open-source** software. Thousands of learners use Wolfree to bypass paywalls. + +import FormCTA from "../src/components/FormCTA.tsx"; +import FormQuickStart from "../src/components/FormQuickStart.tsx"; +import ButtonLink from "../src/components/ButtonLink.tsx"; + + + +
+
+ +## How To Use Wolfree + + + +
+
+ +## Mirror Sites + +Wolfree operates through a network of mirror sites to ensure uninterrupted access to step-by-step solutions. If you can't access this web page, visit one of our [mirror sites](/mirror) to continue your learning journey. + +

+ +

+ +
+
+ +## Source Code + +Wolfree is **free** and **open-source** software. Our inclusive community welcomes individuals from diverse backgrounds to collaborate on our [source code](/source). Let's foster diversity, equity, and inclusion on the Internet. ❤️ + +

+ +

+ +
+
+ +## How Wolfree Works + +Here's a simplified breakdown of how Wolfree works: + +1. Programmers distribute the Dockerfile on Fediverse, including platforms compatible with ForgeFed, like Forgejo and Gitea. +2. Website operators install and run Docker. +3. Docker automatically downloads the Dockerfile from Fediverse and builds a Docker image. +4. Web hosting service providers deploy Wolfree mirror sites. +5. Internet service providers allow your web browser to connect to Wolfree mirror sites. +6. You gain **free** access to the computational capabilities of **Wolfram|Alpha Pro**. 🎉 + +Wolfree leverages a [shadow library](https://en.wikipedia.org/wiki/Shadow_library) that shares **step-by-step** solutions, ensuring you have free access to the learning resources you need. + +
+
+ +## Testimonials + +Here's what our community has to say about Wolfree: + +> "Wolfree has been a transformative addition to my academic journey. The **step-by-step** solutions powered by **Wolfram|Alpha Pro** have profoundly enriched my understanding of complex math concepts. Thanks to Wolfree, my grades have seen remarkable improvement. I now approach math confidently." - Olivia (they/them), Student. + +> "As a math teacher, I wholeheartedly endorse Wolfree for my students. The **step-by-step** solutions promote genuine comprehension of math concepts. By incorporating the computational capabilities of **Wolfram|Alpha Pro** into my classroom, Wolfree has significantly elevated my students' learning experiences." - Mx. Smith (they/them), Educator. + +
+
+ +## What You'll Get with Wolfree + +By using Wolfree, you'll get **free** access to the full potential of **Wolfram|Alpha Pro**, including: + +- Get answers and hints for your math homework problems. +- Use **step-by-step** calculators for chemistry, calculus, algebra, trigonometry, and equation solving. +- Develop a deeper understanding of your homework with detailed steps and hints guiding you from problems to answers. + +Unleash the full potential of your learning with Wolfree and elevate your studies to a whole new level. 🚀 + +It's **free**! Type your math problem and click "**Show Steps**" now! + + + +
+
+ + + + + + + + diff --git a/docusaurus/docs/mirror.mdx b/docusaurus/docs/mirror.mdx new file mode 100644 index 0000000..8af5f77 --- /dev/null +++ b/docusaurus/docs/mirror.mdx @@ -0,0 +1,50 @@ +--- +title: Mirror site +--- + +# Mirror Sites: Alternative Instances + +Wolfree operates through a network of mirror sites to ensure uninterrupted access to step-by-step solutions. If you can't access this web page, visit one of our mirror sites to continue your learning journey. + +1. https://wolfree.chickenkiller.com/ +2. https://wolfree.crabdance.com/ +3. https://wolfree.gitlab.io/ +4. https://wolfree.glitch.me/ +5. https://wolfree.ignorelist.com/ +6. https://wolfree.jumpingcrab.com/ +7. https://wolfree.my.to/ +8. https://wolfree.netlify.app/ +9. https://wolfree.on.fleek.co/ +10. https://wolfree.onrender.com/ +11. https://wolfree.pages.dev/ +12. https://wolfree.privatedns.org/ +13. https://wolfree.strangled.net/ +14. https://wolfree.twilightparadox.com/ +15. https://wolfree.uk.to/ +16. https://wolfree.us.to/ +17. https://wolfreealpha.chickenkiller.com/ +18. https://wolfreealpha.crabdance.com/ +19. https://wolfreealpha.gitlab.io/ +20. https://wolfreealpha.glitch.me/ +21. https://wolfreealpha.ignorelist.com/ +22. https://wolfreealpha.jumpingcrab.com/ +23. https://wolfreealpha.my.to/ +24. https://wolfreealpha.netlify.app/ +25. https://wolfreealpha.on.fleek.co/ +26. https://wolfreealpha.onrender.com/ +27. https://wolfreealpha.pages.dev/ +28. https://wolfreealpha.privatedns.org/ +29. https://wolfreealpha.strangled.net/ +30. https://wolfreealpha.twilightparadox.com/ +31. https://wolfreealpha.uk.to/ +32. https://wolfreealpha.us.to/ + +:::note +Please note that Internet Service Providers may block access to this website without prior notice. Therefore, we recommend bookmarking the mirror sites in advance to ensure easier access. +::: + +If you cannot access any of the mirror sites, we recommend installing the [Tor Browser](https://www.torproject.org/) to bypass censorship. + +If you have programming knowledge, you can deserialize the [instances.json](pathname://../instances.json) file. + + diff --git a/docusaurus/docs/source.mdx b/docusaurus/docs/source.mdx new file mode 100644 index 0000000..e9d0192 --- /dev/null +++ b/docusaurus/docs/source.mdx @@ -0,0 +1,32 @@ +--- +title: Source code +--- + +# Access and Download the Source Code of Wolfree + +Wolfree is free and open-source software. You can access and download the source code from the following websites: + +1. https://try.gitea.io/wolfree +2. https://codeberg.org/wolfree +3. https://git.disroot.org/wolfree +4. https://next.forgejo.org/wolfree +5. https://git.kiwifarms.net/wolfree +6. http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/wolfree + +## The Unreliability of GitHub + +We do not recommend pushing the source code to GitHub. Their [DMCA Takedown Policy](https://docs.github.com/en/site-policy/content-removal-policies/dmca-takedown-policy) makes storing the source code on GitHub unreliable. + +## The High Availability of ForgeFed + +For a more reliable and collaborative development experience, we recommend using [Gitea](https://about.gitea.com/) and [Forgejo](https://forgejo.org/). These platforms support [ActivityPub](https://www.w3.org/TR/activitypub/) and [ForgeFed](https://forgefed.org/) protocols, enabling seamless collaboration and communication among developers. + +:::note +If you cannot access Gitea or Forgejo, we recommend installing the [Tor Browser](https://www.torproject.org/). The Tor Browser is a reputable tool designed to bypass censorship. +::: + +## License + +SPDX-License-Identifier: AGPL-3.0-or-later + +This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. diff --git a/docusaurus/docusaurus.config.js b/docusaurus/docusaurus.config.js new file mode 100644 index 0000000..1cb19b7 --- /dev/null +++ b/docusaurus/docusaurus.config.js @@ -0,0 +1,102 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +// @ts-check + +/** @type {import('@docusaurus/types').Config} */ +module.exports = { + title: "Wolfree - Free WolframAlpha step-by-step solution", + url: "http://example.com", + baseUrl: "/", + favicon: "data:,", + presets: [ + [ + "classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + { + docs: { + sidebarPath: require.resolve("./sidebars.js"), + routeBasePath: "/", + breadcrumbs: false, + }, + blog: false, + pages: false, + theme: { + customCss: [require.resolve("./src/css/custom.css")], + }, + }, + ], + ], + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + themeConfig: { + colorMode: { + disableSwitch: true, + }, + docs: { + sidebar: { + hideable: true, + }, + }, + navbar: { + hideOnScroll: true, + items: [ + { + to: "/", + label: "Wolfree", + position: "left", + }, + { + to: "pathname:///input/", + label: "Input", + position: "right", + target: "_self", + }, + { + to: "/mirror", + label: "Mirror", + position: "right", + }, + { + to: "/source", + label: "Source", + position: "right", + }, + ], + }, + footer: { + links: [ + { + label: "Home page", + href: "/", + }, + { + html: 'Input math problems', + }, + { + label: "Mirror site", + href: "/mirror", + }, + { + label: "Source code", + href: "/source", + }, + { + label: "Community", + href: "/community", + }, + { + label: "Acknowledgment", + href: "/acknowledgment", + }, + { + label: "DMCA takedown", + href: "/dmca", + }, + ], + }, + }, +}; diff --git a/docusaurus/package.json b/docusaurus/package.json new file mode 100644 index 0000000..2e58a5e --- /dev/null +++ b/docusaurus/package.json @@ -0,0 +1,51 @@ +{ + "name": "docusaurus", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc" + }, + "dependencies": { + "@docusaurus/core": "2.4.1", + "@docusaurus/preset-classic": "2.4.1", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@mdx-js/react": "^1.6.22", + "@mui/material": "^5.14.1", + "@types/dompurify": "^3.0.2", + "@types/jquery": "^3.5.16", + "clsx": "^1.2.1", + "prism-react-renderer": "^1.3.5", + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.4.1", + "@tsconfig/docusaurus": "^1.0.5", + "typescript": "^4.7.4" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "engines": { + "node": ">=16.14" + } +} diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js new file mode 100644 index 0000000..3a62009 --- /dev/null +++ b/docusaurus/sidebars.js @@ -0,0 +1,29 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +// @ts-check + +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +module.exports = { + sidebarId: [ + "index", + { + type: "html", + value: 'Input math problems', + className: "menu__list-item", + }, + "mirror", + "source", + { + type: "category", + label: "Detail", + collapsible: true, + collapsed: true, + items: ["community", "acknowledgment", "dmca"], + }, + ], +}; diff --git a/docusaurus/src/components/ButtonLink.tsx b/docusaurus/src/components/ButtonLink.tsx new file mode 100644 index 0000000..12fc559 --- /dev/null +++ b/docusaurus/src/components/ButtonLink.tsx @@ -0,0 +1,27 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +import React from "react"; +import Link from "@docusaurus/Link"; +import { Button } from "@mui/material"; + +const ButtonLink = ({ to = String(), text = String() }) => ( + + + +); + +export default ButtonLink; + +// Typography - MUI System +// https://mui.com/system/typography/ + +// Docusaurus Client API | Docusaurus +// https://docusaurus.io/docs/docusaurus-core#link diff --git a/docusaurus/src/components/FormCTA.tsx b/docusaurus/src/components/FormCTA.tsx new file mode 100644 index 0000000..1b5a81e --- /dev/null +++ b/docusaurus/src/components/FormCTA.tsx @@ -0,0 +1,23 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +import React from "react"; +import submitMathInputForm from "../functions/submitMathInputForm"; +import InputMathProblems from "./InputMathProblems"; +import ShowStepButton from "./ShowStepButton"; + +const FormCTA = ({ autoFocus = Boolean() }) => ( +
+

+ +

+ +

+ +); + +export default FormCTA; diff --git a/docusaurus/src/components/FormQuickStart.tsx b/docusaurus/src/components/FormQuickStart.tsx new file mode 100644 index 0000000..60589fb --- /dev/null +++ b/docusaurus/src/components/FormQuickStart.tsx @@ -0,0 +1,35 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +import React from "react"; +import submitMathInputForm from "../functions/submitMathInputForm"; +import InputMathProblems from "./InputMathProblems"; +import ShowStepButton from "./ShowStepButton"; + +const FormQuickStart = () => ( +
+
    +
  1. +

    Type your math problem in the text box.

    + +
  2. +
  3. +

    + Click the "Show Steps" button. +

    + +
  4. +
  5. +

    + Explore the step-by-step solution provided. 🎉 +

    +
  6. +
+
+); + +export default FormQuickStart; diff --git a/docusaurus/src/components/InputMathProblems.tsx b/docusaurus/src/components/InputMathProblems.tsx new file mode 100644 index 0000000..c7b49ce --- /dev/null +++ b/docusaurus/src/components/InputMathProblems.tsx @@ -0,0 +1,33 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +import React from "react"; +import TextField from "@mui/material/TextField"; +// TextField API - Material UI +// https://mui.com/material-ui/api/text-field/ + +const InputMathProblems = ({ + autoFocus = Boolean(), + defaultValue = String(), +}) => ( + +); + +export default InputMathProblems; diff --git a/docusaurus/src/components/ShowStepButton.tsx b/docusaurus/src/components/ShowStepButton.tsx new file mode 100644 index 0000000..3ae7ba3 --- /dev/null +++ b/docusaurus/src/components/ShowStepButton.tsx @@ -0,0 +1,25 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +import React from "react"; +import { Button } from "@mui/material"; + +const ShowStepButton = () => ( + +); + +export default ShowStepButton; + +// Typography - MUI System +// https://mui.com/system/typography/ diff --git a/docusaurus/src/css/custom.css b/docusaurus/src/css/custom.css new file mode 100644 index 0000000..a027863 --- /dev/null +++ b/docusaurus/src/css/custom.css @@ -0,0 +1,21 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +:root { + --ifm-menu-link-padding-vertical: calc(var(--ifm-menu-link-padding-horizontal) * 1.5); + --ifm-color-primary: blue; + --ifm-color-gray-900: var(--ifm-color-gray-900); + --ifm-color-secondary-contrast-foreground: var(--ifm-color-gray-900); +} + +.footer__link-item { + line-height: 3; +} + +.alert { + --ifm-link-color: unset; +} \ No newline at end of file diff --git a/docusaurus/src/functions/submitMathInputForm.tsx b/docusaurus/src/functions/submitMathInputForm.tsx new file mode 100644 index 0000000..a90894e --- /dev/null +++ b/docusaurus/src/functions/submitMathInputForm.tsx @@ -0,0 +1,23 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +import { FormEventHandler } from "react"; + +const submitMathInputForm: FormEventHandler = (event) => { + event.preventDefault(); + const form = event.currentTarget; + const formData = new FormData(form); + + const i = formData.get("i") || ""; + if (i instanceof File) return; + + const url = new URL("/input/", window.location.href); + url.searchParams.set("i", i); + window.location.href = url.href; +}; + +export default submitMathInputForm; diff --git a/docusaurus/src/theme/Footer/InputPreloader.tsx b/docusaurus/src/theme/Footer/InputPreloader.tsx new file mode 100644 index 0000000..325f8a7 --- /dev/null +++ b/docusaurus/src/theme/Footer/InputPreloader.tsx @@ -0,0 +1,43 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +import React, { useEffect, useState } from "react"; + +const InputPreloader = () => { + const [showIframe, setShowIframe] = useState(false); + + useEffect(() => { + const handleIframeLoad = () => { + // Show the iframe after a 3000ms delay + const timerId = setTimeout(() => setShowIframe(true), 3000); + // Cleanup the timer when the component unmounts + return () => clearTimeout(timerId); + }; + + window.scroll(0, 0); + + window.addEventListener("load", handleIframeLoad); + + // Cleanup the event listener when the component unmounts + return () => window.removeEventListener("load", handleIframeLoad); + }, []); // Empty dependency array means the effect runs only once after initial render + + return ( + <> + {/* Use a descriptive title for accessibility */} + {showIframe && ( +