Announcements
+ +Stay informed with the latest updates, project developments, and key +milestones within the TOPST community.
+diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 0000000..41f8482 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 23fe8ce170da64e3cba15de60a2f85e6 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/_documentation/_about-us/announcements.doctree b/.doctrees/_documentation/_about-us/announcements.doctree new file mode 100644 index 0000000..e3c77a3 Binary files /dev/null and b/.doctrees/_documentation/_about-us/announcements.doctree differ diff --git a/.doctrees/_documentation/_about-us/how-to-get-involved.doctree b/.doctrees/_documentation/_about-us/how-to-get-involved.doctree new file mode 100644 index 0000000..5ae2edb Binary files /dev/null and b/.doctrees/_documentation/_about-us/how-to-get-involved.doctree differ diff --git a/.doctrees/_documentation/_about-us/vision-mission.doctree b/.doctrees/_documentation/_about-us/vision-mission.doctree new file mode 100644 index 0000000..64cfd1d Binary files /dev/null and b/.doctrees/_documentation/_about-us/vision-mission.doctree differ diff --git a/.doctrees/_documentation/_community/becoming-reviewer.doctree b/.doctrees/_documentation/_community/becoming-reviewer.doctree new file mode 100644 index 0000000..3b8f679 Binary files /dev/null and b/.doctrees/_documentation/_community/becoming-reviewer.doctree differ diff --git a/.doctrees/_documentation/_community/contributor-guidelines.doctree b/.doctrees/_documentation/_community/contributor-guidelines.doctree new file mode 100644 index 0000000..67c3ff9 Binary files /dev/null and b/.doctrees/_documentation/_community/contributor-guidelines.doctree differ diff --git a/.doctrees/_documentation/_community/meet-the-team.doctree b/.doctrees/_documentation/_community/meet-the-team.doctree new file mode 100644 index 0000000..635453a Binary files /dev/null and b/.doctrees/_documentation/_community/meet-the-team.doctree differ diff --git a/.doctrees/_documentation/_community/upcoming-events.doctree b/.doctrees/_documentation/_community/upcoming-events.doctree new file mode 100644 index 0000000..501209a Binary files /dev/null and b/.doctrees/_documentation/_community/upcoming-events.doctree differ diff --git a/.doctrees/_documentation/_modules/_001-water-module/water-module.doctree b/.doctrees/_documentation/_modules/_001-water-module/water-module.doctree new file mode 100644 index 0000000..78aab7e Binary files /dev/null and b/.doctrees/_documentation/_modules/_001-water-module/water-module.doctree differ diff --git a/.doctrees/_documentation/_modules/_001-water-module/water-research.doctree b/.doctrees/_documentation/_modules/_001-water-module/water-research.doctree new file mode 100644 index 0000000..46274b9 Binary files /dev/null and b/.doctrees/_documentation/_modules/_001-water-module/water-research.doctree differ diff --git a/.doctrees/_documentation/_modules/modules-overview.doctree b/.doctrees/_documentation/_modules/modules-overview.doctree new file mode 100644 index 0000000..9635d8b Binary files /dev/null and b/.doctrees/_documentation/_modules/modules-overview.doctree differ diff --git a/.doctrees/_documentation/_more-resources/external-resources.doctree b/.doctrees/_documentation/_more-resources/external-resources.doctree new file mode 100644 index 0000000..4308e6b Binary files /dev/null and b/.doctrees/_documentation/_more-resources/external-resources.doctree differ diff --git a/.doctrees/_documentation/_more-resources/glossary.doctree b/.doctrees/_documentation/_more-resources/glossary.doctree new file mode 100644 index 0000000..3c13f76 Binary files /dev/null and b/.doctrees/_documentation/_more-resources/glossary.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/open-science-101.doctree b/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/open-science-101.doctree new file mode 100644 index 0000000..2c0791e Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/open-science-101.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/preparing-workspace.doctree b/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/preparing-workspace.doctree new file mode 100644 index 0000000..dec4887 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/preparing-workspace.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/setting-up-accounts.doctree b/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/setting-up-accounts.doctree new file mode 100644 index 0000000..64361c1 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_001-open-science-101/setting-up-accounts.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_002-contributing/code-review-workflow.doctree b/.doctrees/_documentation/_tutorials-guides/_002-contributing/code-review-workflow.doctree new file mode 100644 index 0000000..6e122e8 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_002-contributing/code-review-workflow.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_002-contributing/contributing-research.doctree b/.doctrees/_documentation/_tutorials-guides/_002-contributing/contributing-research.doctree new file mode 100644 index 0000000..25229ca Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_002-contributing/contributing-research.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_002-contributing/contributing-topst.doctree b/.doctrees/_documentation/_tutorials-guides/_002-contributing/contributing-topst.doctree new file mode 100644 index 0000000..eeaa00e Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_002-contributing/contributing-topst.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_002-contributing/forking-cloning.doctree b/.doctrees/_documentation/_tutorials-guides/_002-contributing/forking-cloning.doctree new file mode 100644 index 0000000..80dcf9f Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_002-contributing/forking-cloning.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_002-contributing/submitting-pr.doctree b/.doctrees/_documentation/_tutorials-guides/_002-contributing/submitting-pr.doctree new file mode 100644 index 0000000..774115f Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_002-contributing/submitting-pr.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/data-management.doctree b/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/data-management.doctree new file mode 100644 index 0000000..73f0104 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/data-management.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/open-science-repos.doctree b/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/open-science-repos.doctree new file mode 100644 index 0000000..c4edef0 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/open-science-repos.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/organizing-data.doctree b/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/organizing-data.doctree new file mode 100644 index 0000000..56e70c9 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_003-open-science-dm/organizing-data.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/advanced-cfg.doctree b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/advanced-cfg.doctree new file mode 100644 index 0000000..623fcc2 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/advanced-cfg.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/github-ssh.doctree b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/github-ssh.doctree new file mode 100644 index 0000000..830a7e0 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/github-ssh.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/setting-venv.doctree b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/setting-venv.doctree new file mode 100644 index 0000000..0c5e6cf Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/setting-venv.doctree differ diff --git a/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/updating.doctree b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/updating.doctree new file mode 100644 index 0000000..c777996 Binary files /dev/null and b/.doctrees/_documentation/_tutorials-guides/_004-advanced-configurations/updating.doctree differ diff --git a/.doctrees/_tags/announcements.doctree b/.doctrees/_tags/announcements.doctree new file mode 100644 index 0000000..69d53d0 Binary files /dev/null and b/.doctrees/_tags/announcements.doctree differ diff --git a/.doctrees/_tags/contributing.doctree b/.doctrees/_tags/contributing.doctree new file mode 100644 index 0000000..7632b87 Binary files /dev/null and b/.doctrees/_tags/contributing.doctree differ diff --git a/.doctrees/_tags/contributors.doctree b/.doctrees/_tags/contributors.doctree new file mode 100644 index 0000000..ffe9434 Binary files /dev/null and b/.doctrees/_tags/contributors.doctree differ diff --git a/.doctrees/_tags/data-management.doctree b/.doctrees/_tags/data-management.doctree new file mode 100644 index 0000000..fa5ab72 Binary files /dev/null and b/.doctrees/_tags/data-management.doctree differ diff --git a/.doctrees/_tags/documentation.doctree b/.doctrees/_tags/documentation.doctree new file mode 100644 index 0000000..bf8ca4d Binary files /dev/null and b/.doctrees/_tags/documentation.doctree differ diff --git a/.doctrees/_tags/getting-started.doctree b/.doctrees/_tags/getting-started.doctree new file mode 100644 index 0000000..5b3ff91 Binary files /dev/null and b/.doctrees/_tags/getting-started.doctree differ diff --git a/.doctrees/_tags/github.doctree b/.doctrees/_tags/github.doctree new file mode 100644 index 0000000..9b62dad Binary files /dev/null and b/.doctrees/_tags/github.doctree differ diff --git a/.doctrees/_tags/modules.doctree b/.doctrees/_tags/modules.doctree new file mode 100644 index 0000000..2b8439a Binary files /dev/null and b/.doctrees/_tags/modules.doctree differ diff --git a/.doctrees/_tags/open-science-101.doctree b/.doctrees/_tags/open-science-101.doctree new file mode 100644 index 0000000..446f534 Binary files /dev/null and b/.doctrees/_tags/open-science-101.doctree differ diff --git a/.doctrees/_tags/open-science.doctree b/.doctrees/_tags/open-science.doctree new file mode 100644 index 0000000..2923eeb Binary files /dev/null and b/.doctrees/_tags/open-science.doctree differ diff --git a/.doctrees/_tags/preparing-workspace.doctree b/.doctrees/_tags/preparing-workspace.doctree new file mode 100644 index 0000000..d3e23a0 Binary files /dev/null and b/.doctrees/_tags/preparing-workspace.doctree differ diff --git a/.doctrees/_tags/research.doctree b/.doctrees/_tags/research.doctree new file mode 100644 index 0000000..edc1cf3 Binary files /dev/null and b/.doctrees/_tags/research.doctree differ diff --git a/.doctrees/_tags/tagsindex.doctree b/.doctrees/_tags/tagsindex.doctree new file mode 100644 index 0000000..3aa5f4f Binary files /dev/null and b/.doctrees/_tags/tagsindex.doctree differ diff --git a/.doctrees/_tags/water-module.doctree b/.doctrees/_tags/water-module.doctree new file mode 100644 index 0000000..284e017 Binary files /dev/null and b/.doctrees/_tags/water-module.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle new file mode 100644 index 0000000..3ccf95a Binary files /dev/null and b/.doctrees/environment.pickle differ diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree new file mode 100644 index 0000000..8bc1e6e Binary files /dev/null and b/.doctrees/index.doctree differ diff --git a/_documentation/_about-us/announcements.html b/_documentation/_about-us/announcements.html new file mode 100644 index 0000000..3b2427e --- /dev/null +++ b/_documentation/_about-us/announcements.html @@ -0,0 +1,203 @@ + + + +
+ + + + + + + + +Stay informed with the latest updates, project developments, and key +milestones within the TOPST community.
+Learn about the various ways to actively participate in the TOPST +community, including contributing to research, attending events, and +joining collaborative projects.
+Understand the purpose and goals driving the TOPST SCHOOL program, and +explore how we aim to transform science through openness and +inclusivity.
+Understand the review and approval process, ensuring your +contributions meet TOPST's high standards for inclusion in the project.
+Follow the contributor guidelines to participate in NASA's TOPST +projects, ensuring your work aligns with community standards and +expectations.
+Our Alumni, Open Science, Consultation, and Development Team +collaborate to democratize access to scientific knowledge, ensuring +that everyone can contribute to Open Science.
+The SCHOOL project is an ambitious and innovative initiative designed +to advance education in the field of data science, specifically within the +context of NASA’s Earth Science Applied Sciences Program. This project +is not just another online learning platform; it represents a comprehensive +effort to democratize access to scientific knowledge and foster a new +generation of learners equipped to tackle some of the most pressing challenges +in Earth Science.
+SCHOOL was conceived with the idea of bridging the gap between complex +scientific research and accessible, practical education. At its core, it is +about making the intricate processes of Data Science and Earth Science not +only understandable but also engaging and relevant to a broad audience. The +project’s guiding principle is to ensure that everyone, regardless of their +background or prior experience, can participate in and contribute to the world +of Open Science.
+Our dedicated Open Science Team Members are at the heart of our mission. +Each member brings their unique expertise to drive forward the vision of +open and accessible science.
+Navin Aade
+Open Science Team
+Emanuel Agú
+Open Science Team
+Jinyi Cai
+Open Science Team
+Hazem Mahmoud
+Open Science Team
+Josie Morkin
+Open Science Team
+Arina Moroz
+Open Science Team
+Alber Sánchez
+Open Science Team
+Hieu Tran
+Open Science Team
+Aneese Williams
+Open Science Team
+Xuan Zhou
+Open Science Team
+Our Consultation Team and Subject Matter Experts (SMEs) provide invaluable +insights and guidance, ensuring that our projects are grounded in the +latest research and best practices.
+Deborah Balk
+Director at the CUNY Institute for Demographic Research and Professor at Baruch College
+Nancy Degan
+Senior Advisor for Education at Columbia Water Center
+Laureline Josset
+Associate Research Scientist at Columbia Water Center
+Dr. Antonio Tovar
+Assistant Professor of Computer Science and Information Systems at National Louis University
+Qian Huang
+Research Assistant Professor at East Tennessee State University, Center for Rural Health Research
+Maggi Glasscoe
+Research Associate at the University of Alabama-Huntsville and Disasters Coordinator for NASA’s Applied Sciences Disasters Program
+Ryan Meade
+Coordinator of Academic Support Services for the Educational Opportunity Program at SUNY Binghamton
+Dave Jones
+Founder and CEO at StormCenter Communications, Inc.
+Thomas Parris
+President at iSciences
+Our Development Team is responsible for bringing our technical vision to +life. Their skills and dedication ensure that we deliver high-quality +tools and solutions.
+Our alumni have played a significant role in shaping our journey. Their +achievements and continued contributions in the field of Open Science +reflect the impact of our shared mission.
+Explore upcoming events and webinars where you can learn, collaborate, +and connect with the TOPST open science community.
+Explore the water module and delve into the critical topics related to +water systems, climate impacts, and the role of open data in solving +global water challenges.
+Explore the water module and delve into the critical topics related to +water systems, climate impacts, and the role of open data in solving +global water challenges.
+Get an overview of the learning modules that form the backbone of the +TOPST SCHOOL program, and see how each module contributes to open +science.
+Access a curated collection of external tools, guides, and +repositories that support your journey in open science.
+A quick reference to all the terms, phrases, and links you'll encounter +on this site, your one-stop guide to navigating with ease.
+Alternative metrics used to measure the impact and reach of research +outputs beyond traditional citation counts. Altmetrics include social +media mentions, downloads, and media coverage, reflecting a broader +range of impact.
+The involvement of non-professional scientists in the collection, +analysis, and dissemination of data for scientific research. Citizen +science engages the public in the scientific process and enhances open +science through crowdsourcing and collaboration.
+Research conducted by multiple researchers or teams working together, +often across institutions or disciplines. Collaborative research is a +key aspect of open science, facilitating the sharing of +expertise and resources.
+Research initiatives led or heavily influenced by the needs and +interests of a particular community or public group. This approach +fosters collaboration between researchers and the public, enhancing +the relevance and impact of research.
+A nonprofit organization that provides free legal tools to enable the +sharing and reuse of creative works. Creative Commons licenses are +often used to publish open access research, allowing others to +build upon or share the work under specific conditions.
+A formal document outlining how research data will be collected, +managed, and shared throughout the project lifecycle. DMPs ensure that +data is organized, maintained, and preserved in alignment with +open science principles.
+Data processing tools are software applications used to collect, +transform, analyze, and visualize data. These tools help researchers +and analysts handle large datasets, perform statistical analysis, and +generate insights. Examples of popular data processing tools are +Pandas, +NumPy, +MATLAB, etc.
+A centralized database or archive where datasets are stored and +managed. Repositories ensure data is preserved, accessible, and +discoverable. Examples include Zenodo, Dryad, and the OpenICPSR.
+The practice of making data available to others, typically through a +data repository or public platforms. Data sharing enhances +collaboration, transparency, and the potential for new +discoveries by allowing others to access and use research data.
+The principles and guidelines that govern the responsible conduct of +research, ensuring respect for human and animal subjects, data +privacy, and the integrity of scientific work. Ethical considerations +are central to open science practices.
+An acronym that stands for Findable, Accessible, Interoperable, and +Reusable. These principles guide data management to ensure that +research outputs can be easily shared, discovered, and reused across +different platforms and communities. Learn more here
+A web-based platform for version control using Git, enabling +collaborative software development. It allows users to host, review, +and manage code repositories, track changes, and collaborate across +distributed teams.
+A metric used to measure the influence or importance of a scientific +journal based on citation frequency of its articles. While impact +factor is a common measure of journal quality, open science promotes +alternative metrics and broader measures of impact.
+An IDE is a software application that provides comprehensive +facilities to computer programmers for software development. It +typically includes a code editor, a debugger, a build automation tool, +and other tools to facilitate coding and debugging. Examples of +popular IDEs include +Visual Studio Code, +PyCharm, and +RStudio.
+The legal framework that dictates how research outputs can be used, +shared, and distributed. Open Science often involves using open +licenses, such as Creative Commons (CC), to facilitate the +reuse and dissemination of research.
+Data that provides information about other data, such as descriptions, +formats, and source information. Metadata enhances the discoverability +and usability of datasets by providing context and details about the +data’s origin and structure.
+National Aeronautics and Space Administration. The United States +government agency responsible for civilian space exploration, +aeronautics research, and scientific discovery related to space. NASA +leads missions to explore space, develop space technology, and enhance +our understanding of Earth and the universe.
+A publishing model that makes research articles freely accessible to +the public online, bypassing paywalls and subscription fees. Open +access fosters the dissemination of knowledge and equal access to +scientific findings.
+Data that is freely available for anyone to access, use, modify, and +share without restrictions. Open data plays a crucial role in +enhancing transparency and collaboration in scientific +research.
+Teaching and learning materials that are freely accessible and openly +licensed. OER supports open science by providing educational content +that can be freely used, adapted, and shared.
+A collaborative approach to innovation that involves sharing ideas, +knowledge, and technologies across organizational and disciplinary +boundaries. Open innovation accelerates research and development +through collective problem-solving.
+The practice of sharing detailed descriptions of research methods and +procedures to allow others to replicate or build upon the research. +Open methodology ensures that research processes are transparent and +reproducible.
+A practice where researchers make their lab notebooks, including raw +data, experimental details, and ongoing research notes, openly +available. This approach promotes transparency and real-time +collaboration.
+A review process in which the identities of both the authors and +reviewers are made public, and the reviews themselves may be shared. +Open peer review promotes transparency and accountability in +the scientific evaluation process.
+A broad term encompassing practices and principles aimed at increasing +transparency, collaboration, and accessibility in research. +Open research includes open data, open access, +open methodologies, and open peer review.
+An approach to scientific research that promotes transparency, +accessibility, and collaboration by sharing data, methods, and results +openly with the broader community. The goal is to make research more +efficient, reproducible, and impactful.
+ORCID (Open Researcher and Contributor ID) is an essential tool for +researchers and contributors in the Open Science community. It helps +establish a unique digital identifier that distinguishes you from +other researchers and ensures that your work is properly attributed.
+Package managers are tools that automate the process of installing, +updating, configuring, and managing software packages and +dependencies. They simplify the management of libraries and tools +needed for development and data analysis. Examples include +pip, +conda, +npm, +yarn, +apt, etc.
+A version of a research paper that is shared publicly before it has +been peer-reviewed. Preprints allow for faster dissemination of +research and the opportunity for community feedback before formal +publication.
+The principle of making research outputs available to the public +without subscription or paywalls. Public access ensures that research +findings are widely disseminated and accessible to a global audience.
+The ability to replicate or verify the results of a study using the +same methods and data. Reproducibility is a key aspect of +open science, ensuring that research findings are credible and +reliable.
+The Science Core Heuristics for Open Science Outcomes in Learning +(SCHOOL) is part of the NASA's Transform to Open Science (TOPS) Training initiative, +designed to generate an inclusive culture of open science.
+The process and tools used to conduct and document scientific +research, from data collection to analysis and publication. +Open Science encourages transparent and reproducible +workflows, often facilitated by digital tools and platforms.
+NASA's Transform to Open Science (TOPS) initiative which provides the visibility, advocacy, and +community resources to support and enable the shift to open science.
+The principle of making all aspects of research methods, data, and +findings openly available and understandable. Transparency fosters +trust and reproducibility in scientific research.
+A system that records changes to files over time, allowing teams to +collaborate and track the history of changes in code or documents. Git +is one of the most widely used version control systems in open science.
+Discover the transformative world of Open Science and learn how +SCHOOL program is empowering researchers and learners to contribute to +global challenges through open science.
+Open Science is a global movement that aims to make scientific +research more accessible, transparent, and collaborative. At NASA, +we’re embracing this transformation through our TOPS [1] initiative, +which seeks to democratize scientific knowledge and empower individuals from +all walks of life to engage with and contribute to the research process.
+The SCHOOL program which stands for Science Core Heuristics for Open +Science Outcomes in Learning — is an essential part of NASA’s TOPS +initiative. It provides a structured, immersive curriculum designed to +introduce students, researchers, and science enthusiasts to the core +principles of Open Science. Whether you’re just starting out or already +well-versed in scientific research, our mission is to help you harness the +power of Open Science to drive meaningful change.
+You are about to embark on a journey into the heart of Open Science — +a movement that’s transforming how we explore, share, and contribute to +scientific knowledge. At NASA’s TOPS SCHOOL program, we believe that +science should be accessible to everyone, and we’re excited to have you join +this global mission. Whether you’re a student, a seasoned researcher, or just +curious about science, you have something valuable to contribute.
+At SCHOOL, your voice matters. Your work, your insights, your curiosity +— they all play a crucial role in shaping the future of scientific +discovery. Open Science is not just about opening doors; it’s about +inviting you to walk through them, to take part in groundbreaking work that +has the power to change the world.
+At its core, Open Science seeks to remove the barriers traditionally +associated with scientific research. In contrast to conventional research +models — where data, methodologies, and findings are often limited +to a select few — Open Science promotes the idea that all aspects of +the research process should be openly shared and accessible to everyone.
+Sharing Data. Making raw data available for others to use, analyze, +and build upon.
Transparent Methods. Sharing methodologies, tools, and software +openly to enhance reproducibility.
Open Access. Providing access to scientific publications and research +outputs to ensure that knowledge reaches a wider audience.
Open Science promotes transparency, encourages collaboration, and +accelerates scientific discovery by allowing others to replicate studies, +validate results, and build upon previous work. By adopting Open Science +principles, the research community can collectively tackle the world’s most +pressing challenges — from climate change and environmental +degradation to public health crises and social inequalities.
+ +The importance of Open Science goes far beyond academia. In today’s +interconnected world, scientific challenges are increasingly global and +complex. Problems like climate change, environmental justice, and natural +disasters demand cross-disciplinary solutions that involve many collaborators. +Open Science breaks down silos, enabling diverse teams of researchers, +policymakers, and citizens to work together in solving real-world problems.
+Transparency and Trust. By making research processes visible and +open to scrutiny, Open Science enhances trust in scientific findings.
Collaboration Across Borders. Open Science fosters collaboration by +removing barriers to information sharing, allowing researchers from +across the globe to work together seamlessly.
Faster Innovation. Open access to data and research outputs reduces +duplication of effort, speeds up discoveries, and fosters innovation.
Inclusive Knowledge. Open Science ensures that knowledge is not +limited to specific groups or regions, promoting equity in access to +information and fostering a more inclusive research community.
Citizen Science Initiatives and Engagement: Open Science +allows for greater participation from the public, enabling +citizen scientists to contribute to research efforts and engage +with scientific discoveries.
Lifesaving Access to Medical and Scientific Information: Open +Science ensures that critical medical and scientific information +is accessible to everyone, potentially saving lives by providing +timely and accurate data.
Democratization of the Scientific Process: By making research +accessible to all, Open Science democratizes the scientific +process, giving everyone chance to contribute to and benefit +from scientific advancements.
Increased Earth Observation Accessibility: Open Science +expands access to Earth observation data, allowing more people +to monitor and understan our planet.
Cleaner, More Secure Code with More Contributors: Open-source +science invites a broader community to contribute to and improve +scientific software, leading to cleaner, more secure code.
Long-Term Maintenance Assistance: The open-source model +encourages long-term maintenance and support from the community, +ensuring that tools and resources remain up-to-date and +functional.
New Monetized Offices and Data Centers: Open Science can +lead to the creation of new monetized opportunities, such as +data centers, that support and enhance scientific research.
Transparent Research Spending: Open Science promotes +transparency in research spending, making the allocation of funds +more efficient and accountable.
Increased Transparency of Research Results: Open Science +makes research results more transparent, allowing for easier +verification and replication of studies.
Reliable Results Through Confirmation: The open sharing of +data and methodologies enables other researchers to confirm +findings, leading to more reliable and robust scientific +outcomes.
Reduced Pressure for “Exciting” Research: By focusing on +reproducibility and transparency, Open Science reduces the +pressure to produce “exciting” results just to get published, +fostering a more honest and rigorous scientific process.
More Robust Scientific Products: Open Science enhances the +overall quality of scientific research, leading to more +trustworthy and impactful results.
International Accessibility: Open Science ensures that +scientific knowledge is accessible to researchers around the +world, regardless of their location or resources.
Breaking Down Financial Barriers: Open Science helps to +dismantle systemic financial barriers, allowing more people to +participate in and benefit from scientific research.
Diversity Among Researchers: By making science more +accessible, open science encourages greater diversity among +researchers, leading to a richer and more inclusive scientific +community.
Equitable Distribution of Opportunity: Open Science ensures +that opportunities for research and collaboration are +distributed more equitably, fostering a more inclusive and +diverse scientific environment.
At NASA’s TOPST SCHOOL program, we’re not just exercising Open Science +— we’re living it. We are committed to fostering an inclusive +culture where everyone, regardless of background or expertise, has the +opportunity to contribute to the world’s most pressing scientific challenges.
+You are now part of this mission, and your contributions are vital.
+Open Science isn’t just about making research available — +it’s about making a difference. By participating in Open Science, you are +contributing to a global movement that seeks to democratize knowledge, break +down silos, and create a more equitable world. When scientists, researchers, +and learners like you come together to share knowledge openly, we amplify our +ability to solve complex problems and create a future where science benefits +everyone.
+Imagine the ripple effect your contributions could have: a dataset you share +could lead to a breakthrough in environmental protection, the method you +develop could improve public health outcomes, or your insights into climate +change could help shape policies that protect vulnerable communities. Open +Science allows you to play a part in something far bigger than yourself.
+The TOPST SCHOOL program is NASA’s bold commitment to fostering a +culture of Open Science. As part of the broader TOPS initiative, +SCHOOL is designed to equip learners with the tools, skills, and knowledge +they need to actively participate in and contribute to the Open Science +movement. The program is more than just a training initiative — it’s +a community. A community built on the principles of transparency, +collaboration, and equity. Our goal is to empower you with the tools, +knowledge, and support you need to not only engage with Open Science +but to lead the way in making science more open and accessible to everyone.
+In this program, you’ll dive into interactive, interdisciplinary modules that +explore some of today’s most critical issues: from water systems to climate +change, environmental justice to health and air quality. Each module is +designed to inspire you, challenge you, and equip you with practical skills +you can apply in real-world contexts. As you progress, you’ll learn not just +how to access and use open data, but how to think critically about the impact +of your work on society and the planet. The program consists of five immersive +modules, each offering 2.5 hours of interdisciplinary, hands-on learning.
+ +Water Systems. Explore water cycles, the impact of climate change on +water resources, and how open data can be used to manage these vital +systems. Learn more
Health and Air Quality. Dive into the science of air pollution and +its effects on public health, using open datasets to analyze +environmental health risks. Learn more
Environmental Justice. Understand the intersection between science +and social equity, and learn how open research can promote environmental +justice. Learn more
Natural Disasters and Climate Change. Investigate the science behind +natural disasters and the role of open data in mitigating the impacts of +climate change. Learn more
Agriculture and Wildfires. Discover how open science principles can +be applied to address challenges related to agriculture and wildfire +management. Learn more
Whether you’re passionate about environmental justice, intrigued by climate +change, or interested in public health, the SCHOOL program offers a +wealth of opportunities to engage with the world of Open Science. By +participating in the program, you’ll gain hands-on experience with open +datasets, learn how to apply Open Science principles, and contribute to +solving some of the world’s most pressing scientific challenges.
+ +Before diving into the modules, it’s important to understand the foundations +of Open Science — not just as a concept, but as a movement you are +now helping to shape. Every step you take in this program is a step toward +making science more inclusive, impactful, and accessible to all.
+As you learn, we encourage you to think about how you can apply these +principles in your work, in your community, and in your life. By the end of +this program, you will not only have gained new skills but also a deeper sense +of purpose in the scientific endeavor.
+Images by freepik.
+Equip yourself with the essential tools required for efficient coding, +data analysis, and collaboration in Open Science. This guide will walk +you through installing and configuring the key tools you'll need.
+In the world of Open Science, collaboration and innovation go +hand-in-hand. Scientists, researchers, and contributors from across the globe +come together to share data, insights, and breakthroughs. However, this +collaboration requires more than just ideas — it requires the right +set of tools. These tools serve as the backbone for everything from coding and +data analysis to version control and publishing. Without them, the journey +from concept to contribution would be slow, error-prone, and often +overwhelming.
+In this context, tools refer to a collection of software programs, +platforms, and environments that allow you to efficiently work with code, +manage versions, handle data, and even collaborate in real time. Each tool +plays a specific role in the research and development process, addressing +different challenges:
+Version Control System (VCS) like Git allow you to track changes +in code, ensuring you never lose work and can collaborate seamlessly with +others.
Integrated Development Environment (IDE) like Visual Studio Code provide a +space to write, debug, and test code with features that make your +workflow faster and more intuitive.
Data processing tools like Jupyter Notebook facilitate +interactive data analysis, letting you run code in chunks, visualize +outputs, and document results in one place.
Package managers like Conda help you manage software libraries +and environments, ensuring that you’re working with the right versions +of the tools for your project.
These tools are more than just software — they are the enablers +of Open Science. They streamline workflows, reduce friction, and +help build a shared language across diverse disciplines. By mastering +these tools, you become empowered to focus more on your research and less +on the technical overhead. They allow you to engage in the spirit of Open +Science — transparently, collaboratively, and efficiently.
+Imagine trying to contribute to a global research project without a +Version Control System (VCS). Every small change would need to be +communicated manually, resulting in conflicting edits, lost progress, and +massive inefficiencies. Or think about analyzing vast datasets without the +help of specialized software — it would be an overwhelming task +that could consume precious time and energy. These tools solve exactly +these types of problems:
+Faster Workflows. Automate repetitive tasks and offering smart +suggestions.
Enhance Collaboration. Allowing teams to work on the same projects +without stepping on each other’s toes.
Security. Maintain a history of changes and protecting your work +from accidental loss.
In essence, these tools equip you with the digital infrastructure to excel in +the world of open research, and the best part? Most of them are free +and open-source, aligning perfectly with the principles of Open Science.
+Integrated Development Environments (IDEs) are powerful tools designed to +simplify the process of writing, testing, and debugging code. An IDE provides +a cohesive workspace where all essential features — such as a text +editor, debugger, compiler, and version control — are bundled into a +single platform. For programmers and data scientists, an IDE can significantly +boost productivity by offering intelligent code completion, syntax +highlighting, and project management tools.
+Common Misconceptions
+IDEs Are Only for Professional Programmers. Many assume that IDEs +are complicated and reserved for advanced users, but the truth is that +modern IDEs like Visual Studio Code are beginner-friendly and versatile.
IDEs Are Resource-Intensive. Another misconception is that IDEs are +slow and consume a lot of system resources. While some older IDEs might +have been resource-heavy, newer ones like Visual Studio Code are +lightweight and optimized for performance across various platforms.
You Only Need a Text Editor. While text editors can suffice for +writing code, an IDE offers much more — debugging tools, +project management, and integrated version control, making the +development process more streamlined and efficient.
To begin this journey into mastering the essential tools for Open Science, +we’ll start with one of the most popular and powerful IDEs available: Visual +Studio Code.
+Whether you’re writing Python scripts, working on Jupyter notebooks, or +managing documentation, Visual Studio Code provides a feature-rich yet +lightweight environment tailored to your needs. It’s highly customizable and +integrates smoothly with version control, making it the perfect starting point +for any coding or data analysis tasks you’ll encounter in NASA’s TOPS +SCHOOL program.
+Download the latest Visual Studio Code for Windows, +run the installer and select your preferences.
Pro Tip
+Make sure to check the box for “Add to PATH” if you want to +access Visual Studio Code from the command line.
+Click Install and wait for the process to complete. +Once done, click Finish to launch Visual Studio Code +for the first time.
Download the latest Visual Studio Code for macOS,
+open the .dmg
file and drag the Visual Studio Code app to your
+Applications folder.
Open Visual Studio Code, press Command+Shift+P,
+and type: Shell Command
, select the option to Install.
Open a terminal and run the following command to update your +system’s package index:
+sudo apt update \
+&& apt upgrade \
+&& apt install \
+ software-properties-common
+ apt-transport-https
+ wget
+
Windows Stuff
+macOS Stuff
+Linux Stuff
+Set up essential accounts needed to contribute to Open Science. Follow +these easy, step-by-step guides to create and configure the accounts +required for working within SCHOOL program and beyond.
+GitHub is one of the most powerful tools in the world of collaborative +research, open science, and software development. It’s more than just a +platform for storing code — it’s a vibrant community where you can +contribute to projects, share data, and collaborate with fellow researchers +from all over the world. Whether you’re a beginner or a seasoned coder, GitHub +provides the tools you need to manage projects, contribute to +Open Science, and share your findings.
+At its core, GitHub is a hosting service for version control using Git. This +means it helps you track changes in your work, collaborate with others +seamlessly, and manage multiple versions of a project. Many of NASA’s open +science projects, including the TOPS SCHOOL initiative, use +GitHub to share their work and invite contributions from the global community. +So, setting up a GitHub account is the first step toward being part of this +exciting, inclusive movement.
+Let’s walk through how to create your personal GitHub account and get started +with open science!
+Hint
+If you already have a GitHub account, you can skip this guide and checkout +things to do to secure your GitHub account below.
+Creating a GitHub account is the gateway to becoming a part of a collaborative +world of scientific discovery and contribution. Follow these simple steps to +get started. Don’t worry if you’re new to GitHub — this guide will +walk you through each step with empathy and clarity, so you feel supported +from start to finish.
+Go to GitHub.
In the upper-right corner of the page, click on the Sign Up button to +start creating your personal account. GitHub will guide you through the +process, one step at a time.
You will be asked for a username, email address, and to create a +password.
Important
+Your username will be your unique identity on GitHub, and it’s how +others will find and recognize you on the platform. Your email address +is important because GitHub will use it to communicate with you. Make sure +it’s an email address you check regularly. Choose a strong password to +protect your account. GitHub recommends using a combination of upper and +lower-case letters, numbers, and symbols for added security.
+Once you’ve entered your details, GitHub will send a verification +email to the address you provided.
Check your inbox (and your spam folder if you don’t see it) and click the +link to verify your email address.
Without verifying your email, you won’t be able to perform certain tasks +like creating repositories, so this step is important!
You’ll be asked to complete a simple CAPTCHA (a quick task to confirm +you’re not a robot). Just follow the instructions, and you’re good to go.
GitHub will prompt you to choose a plan. For most users just starting with +Open Science, the Free plan is more than enough. You can always +upgrade later if you need advanced features like private repositories, but +for now, you’re all set with the free option!
Once your account is set up, you’ll land on your GitHub dashboard. This is +your home base for creating projects, exploring repositories, and +contributing to open science. GitHub offers a helpful tutorial called +“Hello World” to get you started with the basics — like +creating your first repository and understanding essential concepts like +branching, commits, and pull requests.
Tip
+For added security, it’s recommended that you set up Two-Factor +Authentication (2FA). This provides an extra layer of protection for your +account. You can enable 2FA from your account settings by following this +guide.
+Now that your account is ready, you’re all set to explore the world of +Open Science and contribute to exciting projects. In the next section, +we’ll dive deeper into using GitHub, setting up repositories, and learning how +to collaborate on NASA’s open science initiatives.
+ +But before you move on, take a moment to congratulate yourself! You’ve just +taken a significant step toward being part of the open science community.
+Multi-Factor Authentication (MFA) adds an extra layer of security +to your GitHub account by requiring a second form of verification +beyond just your password. Here’s how to set it up:
+Navigate to Security Settings by clicking on to your Profile +
Under the “Two-factor authentication” section, click the button +to begin the setup process. Choose your authentication method. +GitHub offers several MFA options.
Follow the setup instructions and remaining prompts to complete +the MFA setup. Ensure you test the MFA method to confirm it’s +working properly.
SSH keys provide a secure way to access your GitHub repositories +without needing to enter your username and password each time.
+GPG keys are used for signing commits and tags to verify the +authenticity of your work.
+In this section, you’ll learn how to create your ORCID account, an +important step to ensure that your research and contributions are easily +identifiable and accessible in the Open Science community. Don’t worry if this +is your first time doing this — the process is straightforward, and +this guide will help you through each step.
+Before we dive into the steps, let’s talk about why having an ORCID account is +important.
+ORCID provides a unique, persistent identifier for researchers, +ensuring that your contributions are correctly attributed to you, regardless +of any changes Open Science, where collaboration and transparency are +key. Your ORCID profile becomes your digital fingerprint in the world of +research, linking your work to your name in a global, accessible database.
+Go to ORCID.
You’ll see a form asking for some basic information. No worries, this will +only take a minute or two. Enter your information like your first and +last name, primary email address (this is where all your +notifications will be sent), possibly a secondary email address +(optional but recommended, to ensure you don’t lose access in case you +forget your credentials).
Next would be the password, make sure your password is something +memorable but secure. Instructions about the password requirements would be +mentioned while entering the password.
Tip
+Set your visibility preferences. ORCID gives you control over the +privacy of your information. You can set your profile to be:
+Public. Anyone can see your information.
Limited. Only trusted parties (like your institution) can view your +profile.
Private. Only you can see your information.
It is best to keep it Public to maximize visibility for your work in +Open Science, but you can always change it later.
+Before you complete the registration, you’ll need to agree to ORCID’s terms. +These are pretty straightforward and ensure that your data is used +responsibly.
Now that your account is created, ORCID will send a verification email to +primary email address you provided. It’s important to verify your email to +complete the setup. Check your inbox (and your spam folder if you don’t see +it) and click the link to verify your email address.
And there you go! You’ve officially created your ORCID account!
+This step is crucial in making sure your ORCID profile represents you well. +The more information you provide, the easier it will be for collaborators +and institutions to find you and recognize your work.
+ORCID supports integration with various platforms, including GitHub and +LinkedIn. You can link your ORCID profile to your GitHub account to create +a cohesive professional identity across platforms.
+Your ORCID profile is a living document. As your career progresses, be +sure to keep it updated with your latest contributions, projects, and +affiliations. This is especially important in Open Science, where +collaboration and visibility are key.
+Tip
+Set a reminder to check and update your profile every few months. That +way, your information stays fresh and accurate.
+Now that you’ve created and set up your ORCID account, you’re ready to start +using your ORCID ID in your research. Include it in your CV, +Research papers, Articles, Conference presentations and Grant +applications. This unique identifier will ensure that all your work is +properly attributed to you, wherever it’s shared.
+With your ORCID account ready, you’re now one step closer to engaging fully +with the Open Science community. Remember, Open Science is all about +transparency, accessibility, and collaboration. By taking the time to set up +your ORCID account, you’re contributing to a global movement dedicated to +making science open to all.
+Master the processes behind contributing code and research, from +review protocols to maintaining quality control in your submissions.
+Learn how to effectively engage in research and outputs that align +with open science principles and TOPST goals.
+Unlock your potential to contribute to TOPST projects, understanding +the process and best practices for contributing to open science.
+Grasp the methods of forking and cloning repositories on GitHub, +ensuring your contributions are aligned with best practices.
+Understand the critical steps to submit pull requests, helping to +streamline collaboration and integrate your work into the main project.
+SCHOOL program is a key initiative by NASA aimed at advancing Open +Science principles, which emphasize transparency, collaboration, and +inclusivity in research.
+Learn to identify and use repositories that meet open science +standards, ensuring your data is accessible, shareable, and +transparent.
+SCHOOL program is a key initiative by NASA aimed at advancing Open +Science principles, which emphasize transparency, collaboration, and +inclusivity in research.
+Secure your GitHub contributions with SSH keys, ensuring your work +remains safe and authenticated.
+Set up virtual environments to manage dependencies and ensure +consistent results across different platforms and collaborators.
+Discover best practices for creating comprehensive, accessible +documentation that aligns with open science standards.
+Short
+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: .2em; + font-size: .8em; + left: -.2em; + background: grey; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/_static/copybutton.js b/_static/copybutton.js new file mode 100644 index 0000000..2ea7ff3 --- /dev/null +++ b/_static/copybutton.js @@ -0,0 +1,248 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = `` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = `` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for a moment, then changes it back +// We want the timeout of our `success` class to be a bit shorter than the +// tooltip and icon change, so that we can hide the icon before changing back. +var timeoutIcon = 2000; +var timeoutSuccessClass = 1500; + +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + // Remove success a little bit sooner than we change the tooltip + // So that we can use CSS to hide the copybutton first + setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) + setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const COPYBUTTON_SELECTOR = 'div.highlight pre'; + const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + + // get filtered text + let exclude = '.linenos'; + + let text = filterText(target, exclude); + return formatCopyText(text, '', false, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/_static/copybutton_funcs.js b/_static/copybutton_funcs.js new file mode 100644 index 0000000..dbe1aaa --- /dev/null +++ b/_static/copybutton_funcs.js @@ -0,0 +1,73 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +export function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/_static/css/override.css b/_static/css/override.css new file mode 100644 index 0000000..21d0e95 --- /dev/null +++ b/_static/css/override.css @@ -0,0 +1,22 @@ +/* #school h1 { + text-align: center !important; + width: auto !important; +} + +#topst-science-core-heuristics-for-open-science-outcomes-in-learning h2, +#topst-science-core-heuristics-for-open-science-outcomes-in-learning p, +#get-started h2, +#get-started p { + padding: 0rem 3rem; + text-align: center !important; + width: auto !important; +} */ + +.custom-footer { + background-color: #f8f9fa; + padding: 10px; + border-top: 1px solid #dee2e6; + text-align: center; + position: relative; + z-index: 10; +} diff --git a/_static/design-tabs.js b/_static/design-tabs.js new file mode 100644 index 0000000..b25bd6a --- /dev/null +++ b/_static/design-tabs.js @@ -0,0 +1,101 @@ +// @ts-check + +// Extra JS capability for selected tabs to be synced +// The selection is stored in local storage so that it persists across page loads. + +/** + * @type {Record