From df55bc661f238993be79ee910987d62606023486 Mon Sep 17 00:00:00 2001 From: Perceval Date: Thu, 29 Feb 2024 10:55:42 +0000 Subject: [PATCH] changed upstream branch --- Gemfile.lock | 277 +++++ _data/course.yml | 13 +- img/_config.yml | 39 + img/africacdc_logo.svg | 565 +++++++++ img/african_union_logo.svg | 1043 +++++++++++++++++ img/cbio_logo.png | Bin 0 -> 20911 bytes img/favicon.ico | Bin 8200 -> 32038 bytes img/sanbi_logo.svg | 96 ++ img/uct-logo.svg | 320 +++++ img/uwc_logo.svg | 948 +++++++++++++++ index.md | 155 ++- modules/README.md | 29 - .../_posts/2024-02-23-Cholera-Case-Study.md | 61 + .../_posts/2024-02-23-Containers.md | 60 + .../_posts/2000-01-01-markdown-and-media.md | 188 --- modules/content/_posts/2000-01-02-homepage.md | 69 -- modules/content/_posts/2000-01-03-modules.md | 58 - .../content/_posts/2000-01-04-submodules.md | 55 - .../_posts/2000-01-01-single-pages.md | 24 - .../customize/_posts/2000-01-02-top-menu.md | 41 - .../_posts/2000-01-03-custom-domain.md | 22 - .../_posts/2000-01-04-google-analytics.md | 16 - .../customize/_posts/2000-01-05-favicon.md | 27 - .../customize/_posts/2000-01-06-licensing.md | 9 - .../_posts/2024-02-23-Galaxy.md | 61 + .../nextflow/_posts/2024-02-23-nextflow.md | 61 + .../2024-02-23-Package-Management-Conda.md | 61 + .../_posts/2024-02-23-R-Programming.md | 61 + .../_posts/2000-01-01-getting-started.md | 20 - .../setup/_posts/2000-01-02-required-setup.md | 32 - .../_posts/2000-01-03-course-template.md | 37 - .../_posts/2024-02-23-intro-to-cli.md | 61 + 32 files changed, 3856 insertions(+), 653 deletions(-) create mode 100644 Gemfile.lock create mode 100644 img/_config.yml create mode 100755 img/africacdc_logo.svg create mode 100755 img/african_union_logo.svg create mode 100644 img/cbio_logo.png create mode 100755 img/sanbi_logo.svg create mode 100644 img/uct-logo.svg create mode 100755 img/uwc_logo.svg delete mode 100644 modules/README.md create mode 100644 modules/cholera-case-study/_posts/2024-02-23-Cholera-Case-Study.md create mode 100644 modules/containers/_posts/2024-02-23-Containers.md delete mode 100644 modules/content/_posts/2000-01-01-markdown-and-media.md delete mode 100644 modules/content/_posts/2000-01-02-homepage.md delete mode 100644 modules/content/_posts/2000-01-03-modules.md delete mode 100644 modules/content/_posts/2000-01-04-submodules.md delete mode 100644 modules/customize/_posts/2000-01-01-single-pages.md delete mode 100644 modules/customize/_posts/2000-01-02-top-menu.md delete mode 100644 modules/customize/_posts/2000-01-03-custom-domain.md delete mode 100644 modules/customize/_posts/2000-01-04-google-analytics.md delete mode 100644 modules/customize/_posts/2000-01-05-favicon.md delete mode 100644 modules/customize/_posts/2000-01-06-licensing.md create mode 100644 modules/galaxy-introduction/_posts/2024-02-23-Galaxy.md create mode 100644 modules/nextflow/_posts/2024-02-23-nextflow.md create mode 100644 modules/package-management-conda/_posts/2024-02-23-Package-Management-Conda.md create mode 100644 modules/r-programming/_posts/2024-02-23-R-Programming.md delete mode 100644 modules/setup/_posts/2000-01-01-getting-started.md delete mode 100644 modules/setup/_posts/2000-01-02-required-setup.md delete mode 100644 modules/setup/_posts/2000-01-03-course-template.md create mode 100644 modules/unix-linux-introduction/_posts/2024-02-23-intro-to-cli.md diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..7ddce4e74 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,277 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.1.3.2) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + base64 (0.2.0) + bigdecimal (3.1.6) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + colorator (1.1.0) + commonmarker (0.23.10) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) + dnsruby (1.70.0) + simpleidn (~> 0.2.1) + drb (2.2.0) + ruby2_keywords + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.9.1) + faraday (2.8.1) + base64 + faraday-net_http (>= 2.0, < 3.1) + ruby2_keywords (>= 0.0.4) + faraday-net_http (3.0.2) + ffi (1.16.3) + forwardable-extended (2.6.0) + gemoji (4.1.0) + github-pages (231) + github-pages-health-check (= 1.18.2) + jekyll (= 3.9.5) + jekyll-avatar (= 0.8.0) + jekyll-coffeescript (= 1.2.2) + jekyll-commonmark-ghpages (= 0.4.0) + jekyll-default-layout (= 0.1.5) + jekyll-feed (= 0.17.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.16.1) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.13.0) + kramdown (= 2.4.0) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.30.0) + terminal-table (~> 1.4) + github-pages-health-check (1.18.2) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (>= 4, < 8) + public_suffix (>= 3.0, < 6.0) + typhoeus (~> 1.3) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.8.0) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + jekyll (3.9.5) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (>= 0.7, < 2) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.8.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.2.2) + coffee-script (~> 2.2) + coffee-script-source (~> 1.12) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) + jekyll-default-layout (0.1.5) + jekyll (>= 3.0, < 5.0) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-figure (0.2.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.16.1) + jekyll (>= 3.4, < 5.0) + octokit (>= 4, < 7, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-pdf-embed (1.1.3) + jekyll + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + mini_portile2 (2.8.5) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.22.2) + mutex_m (0.2.0) + nokogiri (1.15.5) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.4) + racc (1.7.3) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.6) + rouge (3.30.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + simpleidn (0.2.1) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.9.1) + unicode-display_width (1.8.0) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + jekyll-figure + jekyll-pdf-embed + +BUNDLED WITH + 2.1.4 diff --git a/_data/course.yml b/_data/course.yml index 5f560bb09..10f3c63fd 100644 --- a/_data/course.yml +++ b/_data/course.yml @@ -1,3 +1,10 @@ -title: Course-in-a-Box -description: An open-source project for creating online courses, built by P2PU -modules: ["setup", "content", "customize"] +title: Bioinformatics for Genomic Epidemiology March 2024 +description: An introductory course on Pathogen Bioinformatics for Genomic Epidemiology +modules: + - "unix-linux-introduction" + - "package-management-conda" + - "containers" + - "nextflow" + - "r-programming" + - "galaxy-introduction" + - "cholera-case-study" \ No newline at end of file diff --git a/img/_config.yml b/img/_config.yml new file mode 100644 index 000000000..099dca741 --- /dev/null +++ b/img/_config.yml @@ -0,0 +1,39 @@ +# basic configuration +markdown: kramdown +permalink: /:categories/:title/ + +# Change this tracking code with your own tracking code +ga_tracking_code: G-Z7RMVPYZ5K +# Please leave this code here for us to see how Course in a Box get used +p2pu_ga_tracking_code: UA-55722824-1 + +# Some files we need to exclude, so Github can build the site +exclude: [Gemfile, Gemfile.lock, README.md] + +defaults: + - + scope: + path: "modules" # an empty string here means all files in the project + values: + layout: "course_page" + +prose: + media: img + ignore: + - /_includes + - /_layouts + - /_sass + - /fonts + - /js + - /css + +# Set some personal styles and logo for your course +# this is a hex value http://www.w3schools.com/tags/ref_colorpicker.asp +jumbotron_color: "#348F41" +jumbotron_image: "img/bacteria.svg" +jumbotron_mask: "img/jumbotron-mask.svg" +# jumbotron_icon: "img/box-icon.png" + +plugins: + - jekyll-figure + - jekyll-pdf-embed \ No newline at end of file diff --git a/img/africacdc_logo.svg b/img/africacdc_logo.svg new file mode 100755 index 000000000..93c7d67e5 --- /dev/null +++ b/img/africacdc_logo.svg @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/african_union_logo.svg b/img/african_union_logo.svg new file mode 100755 index 000000000..f150d3429 --- /dev/null +++ b/img/african_union_logo.svg @@ -0,0 +1,1043 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/cbio_logo.png b/img/cbio_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..143a2298af54dca073ea0c028d048f4edf678283 GIT binary patch literal 20911 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

Rth#1NU*6>$RoQ&12Bsg3XLrH_s0dJ5nb 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 + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/img/uct-logo.svg b/img/uct-logo.svg new file mode 100644 index 000000000..4b6299d7f --- /dev/null +++ b/img/uct-logo.svg @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/uwc_logo.svg b/img/uwc_logo.svg new file mode 100755 index 000000000..59aca6d7f --- /dev/null +++ b/img/uwc_logo.svg @@ -0,0 +1,948 @@ + + + +UNIVERSITYWESTERN CAPEESRPICEPROSPICE diff --git a/index.md b/index.md index d69316a4d..d3e524e1b 100644 --- a/index.md +++ b/index.md @@ -3,36 +3,145 @@ layout: index published: true --- -Course-in-a-Box is a free tool for building and publishing online courses—no prior coding experience required. This guide was made using Course-in-a-Box, so what you see here is what you’ll start with. There are three modules that walk through the course creation process, all linked in the nav bar at the top of the page: -* **[Setup](/modules/setup/getting-started/)** - Get your instance of Course-in-a-Box up and running -* **[Content](/modules/content/markdown-and-media)** - Update the course structure and add your copy & media -* **[Customize](/modules/customize/favicon)** - Add some (optional) finishing touches +Week 1 Overview: Fundamental bioinformatics, programming, HPC, Basic computer skills. Introducing the Shell. Navigating Files & Directories. Github and version control. Data carpentry, data analysis, different workflows and containerization. Data curation group. Sharing, ethical and legal considerations. ECBI, NCBI database training. The difference between INSDC and GISAID. Some bioinformatic tools, R tools. -
+Week 2 Overview: Running handson workshops. Get hands on with pathogen bioinformatics focusing on cholera examples. -#### Course-in-a-Box Courses We Love ❤️ -Here are some examples of Course-in-a-Box in the wild: +## Programme -* [We Are AI](https://dataresponsibly.github.io/we-are-ai/) by Center for Responsible AI -* [How to Talk about Race](https://how-to-talk-about-race.p2pu.org/) by Amrita Patel and Denise LaForce -* [Leveraging Learning for Life](https://leveraging-learning.p2pu.org/) by College Unbound -* [Making and Learning](http://p2pu.github.io/makingandlearning/) by Children’s Museum of Pittsburgh -* [Designing for Documentation and Assessment](https://playfulmit.github.io/beyond-rubrics/) by MIT Playful Journey Lab -* [ExplOERer Course](http://www.exploerercourse.org/en/) by Gothenburg University, Open University, and CC Poland -* [Learning about Learning Circles](https://p2pu.github.io/learning-about-learning-circles/) by P2PU -* [Queer Cinema for High School](https://queercinema.net/) by Sarah Schrag +The course is a two week (10 days) programme of in-person instruction combining theoretical back with practical instruction and opporunity for hands-on practice of the skills presented. -
+ -#### Need some help? -Our [community forum](https://community.p2pu.org/c/tech/course-in-a-box/78) is a great place to ask questions or find help when you get stuck. Feel free to post there anytime! + -You can also hire P2PU to provide support with learning design, technical setup, course customizations, or web hosting. If you’re interested in collaborating on a project, reach out to us at thepeople@p2pu.org + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Week 1 +
Day 1 (Mon)Day 2 (Tue)Day 3 (Wed)Day 4 (Thu)Day 5 (Fri)
09h00Introduction Unix/linux, command line, shell scripting +Introduction Unix/linux, command line, shell scripting cont... + + Package management with Conda Containers workflow, theory, codingNextflow theory, coding
09h30Package management with Conda Nextflow theory, coding
11h00Tea Break
11h30Introduction Unix/linux, command line, shell scripting Introduction Unix/linux, command line, shell scripting cont... Package management with Conda Containers workflow, theory, codingNextflow theory, coding
13h00Lunch Break
14h00Introduction Unix/linux, command line, shell scriptingIntroduction Unix/linux, command line, shell scripting cont... Package management with CondaContainers workflow, theory, coding
-
+


-#### About Course-in-a-Box + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Week 2
Day 6 (Mon)Day 7 (Tue)Day 8 (Wed)Day 9 (Thu)Day 10 (Fri)
09h00R programming R programming cont...Galaxy introduction Cholera case studyCholera case study cont...
09h30R programming cont..Galaxy introductionCholera case study
11h00Tea Break
11h30R programming R programming cont...Galaxy introductionCholera case studyCholera case study cont...
13h00Lunch Break
14h00R programmingR programming cont...Galaxy introductionCholera case studyCholera case study cont ...
-P2PU created Course-in-a-Box in 2014 as a free and lightweight tool for building online courses. We wanted to preserve the modular structure of MOOCs outside of the bulky (and often proprietary) environment of learning/content management systems. Course-in-a-Box is open-source, and we welcome contributions [on our Github repo](https://github.com/p2pu/course-in-a-box). + -p.s. Designing a course for learning circles? [Check out the Learning Circle Course Creation guide](https://docs.p2pu.org/courses/creating-courses) for some best practices on course design. +## Partners + +This course is being organised by [SANBI](https://www.sanbi.ac.za/) (the South African National Bioinformatics Institute) at the +[University of the Western Cape (UWC)](https://www.uwc.ac.za/) in collaboration with [Africa CDC](https://africacdc.org) (the Africa Centres for Disease Control and Prevention), part of the African Union (AU), [CBIO](https://health.uct.ac.za/computational-biology/) (the Computational Biology Department at the University of Cape Town) + +

+ + + + + +

\ No newline at end of file diff --git a/modules/README.md b/modules/README.md deleted file mode 100644 index 192464cd1..000000000 --- a/modules/README.md +++ /dev/null @@ -1,29 +0,0 @@ -This folder is where you should put the content for your course. Every module in your course should have a subfolder inside this folder, eg. `setup`. - -Inside every module folder, you should create a special folder called `_posts`, eg. `setup/_posts`. Inside the folder called `_posts`, you should create a file for every section in the module. The name of the file should start with the date in the format `YYYY-MM-DD-sectionname.md`. The date determines the order of the sections in your module. - -An example of the file layout for this course: - -``` -modules/community/_posts/2000-01-01-concepts.markdown -modules/community/_posts/2000-01-02-projects.markdown -modules/community/_posts/2000-01-03-resources.markdown -modules/community/_posts/2000-01-04-tools.markdown -modules/community/_posts/2000-01-05-reflect.markdown -modules/start/_posts/2000-01-01-about-this-course.markdown -modules/learning/_posts/2000-01-01-concepts.markdown -modules/learning/_posts/2000-01-02-projects.markdown -modules/learning/_posts/2000-01-03-resources.markdown -modules/references/_posts/2000-01-01-introduction.markdown -modules/references/_posts/2000-01-02-github-cheatsheet.markdown -modules/references/_posts/2000-01-02-markdown-cheatsheet.markdown -modules/references/_posts/2000-01-03-glossary.markdown -modules/references/_posts/2000-01-04-course-template.markdown -modules/references/_posts/2000-01-05-resources.markdown -modules/feedback/_posts/2000-01-01-concepts.markdown -modules/feedback/_posts/2000-01-02-projects.markdown -modules/feedback/_posts/2000-01-03-resources.markdown -modules/content/_posts/2000-01-01-concepts.markdown -modules/content/_posts/2000-01-02-projects.markdown -modules/content/_posts/2000-01-03-resources.markdown -``` diff --git a/modules/cholera-case-study/_posts/2024-02-23-Cholera-Case-Study.md b/modules/cholera-case-study/_posts/2024-02-23-Cholera-Case-Study.md new file mode 100644 index 000000000..644b82fc5 --- /dev/null +++ b/modules/cholera-case-study/_posts/2024-02-23-Cholera-Case-Study.md @@ -0,0 +1,61 @@ +--- +title: Introduction to Cholera Case Study +--- +### Introduction to Cholera case study + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + + + +### Introduction to Cholera Case Study - Hands On + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + +#### Connecting to the Learning Environment + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ +#### Additional Learning Resources + + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ diff --git a/modules/containers/_posts/2024-02-23-Containers.md b/modules/containers/_posts/2024-02-23-Containers.md new file mode 100644 index 000000000..0421844dc --- /dev/null +++ b/modules/containers/_posts/2024-02-23-Containers.md @@ -0,0 +1,60 @@ +--- +title: Introduction to Containers +--- +### Introduction to Containers +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + + + +### Introduction to Containers - Hands On + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + +#### Connecting to the Learning Environment + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ +#### Additional Learning Resources + + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ diff --git a/modules/content/_posts/2000-01-01-markdown-and-media.md b/modules/content/_posts/2000-01-01-markdown-and-media.md deleted file mode 100644 index 5fc529661..000000000 --- a/modules/content/_posts/2000-01-01-markdown-and-media.md +++ /dev/null @@ -1,188 +0,0 @@ ---- -title: Markdown & Media ---- - -## Formatting Text with Markdown - -Course-in-a-Box uses **Markdown**, a text-to-HTML conversion tool which uses different combinations of punctuation marks to add emphasis and formatting to content written for the web. Any file name in your GitHub project that ends in `.md` will be interpreted using Markdown rules. (Markdown also supports HTML tags which are used for embedding media or more complicated formatting if needed.) - -This guide focuses on editing your course directly through GitHub, which offers a Preview tab above the code editor so you can see how your Markdown edits look before you commit your changes and wait for them to appear live: - -
screenshot of github's Preview Changes function
- -If you want to write your text in other software before bringing it into Course-in-a-Box, here are a few options to convert your formatting into Markdown before bringing it into Course-in-a-Box: -* [GSuite Tool: Google Docs to Markdown](https://github.com/evbacher/gd2md-html/wiki#installing-docs-to-markdown) -* [Microsoft Word to Markdown Converter](https://word2md.com/) -* [StackEdit: a visual Markdown editor](https://stackedit.io/app#) - -
- -## Markdown Cheatsheet -Below are previews of Markdown formatting options and the code needed to make them happen. We've added the most common options here — for more, check out [Mastering Markdown](https://guides.github.com/features/mastering-markdown/). - -
- ----- -#### Emphasis - -``` -Emphasis, aka italics, with *asterisks* or _underscores_. - -Strong emphasis, aka bold, with double **asterisks** or __underscores__. - -Combined emphasis with **_asterisks and underscores_**. - -Strikethrough uses two tildes. ~~Scratch this.~~ -``` - -Emphasis, aka italics, with *asterisks* or _underscores_. - -Strong emphasis, aka bold, with double **asterisks** or __underscores__. - -Combined emphasis with **_asterisks and underscores_**. - -Strikethrough uses two tildes. ~~Scratch this.~~ - -
- ----- - -#### Headings - -``` -# Heading 1 -## Heading 2 -### Heading 3 -#### Heading 4 -##### Heading 5 -###### Heading 6 -``` - -# Heading 1 -## Heading 2 -### Heading 3 -#### Heading 4 -##### Heading 5 -###### Heading 6 - -
- ----- - -#### Bulleted + Numbered Lists - -``` -* list item -* list item - * indented list item (two spaces before the *) - * secondary indented list item (four spaces before the *) -``` - -* list item -* list item - * indented list item - * secondary indented list item - -``` -1. numbered list item 1 -1. numbered list item 2 -1. numbered list item 3 - * mixed list 1 - * mixed list 2 -``` - -1. numbered list item 1 -1. numbered list item 2 -1. numbered list item 3 - * mixed list 1 - * mixed list 2 - -
- ----- - -#### Links - -Markdown supports a few types of links, but we're just sharing the most common version here. For more details, see [Markdown Links](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). - -``` -[External link](https://p2pu.org) -``` - -[External link](https://p2pu.org) - -
- ----- -#### Fancy Buttons -(This is HTML, not Markdown, but just in case you want to get fancy...) - -``` - A fancy button -``` - - A fancy button - -
- ----- - -
- -## Media cheetsheat - -While Markdown supports adding images, its capacities for media are generally limited. Fortunately, Markdown is designed to support and work alongside HTML, which has vast options for customizing your course content with images, videos, and other interactive features. - -
- ----- -##### Using Existing Images -If you're using an image that is already uploaded somewhere, you can copy the URL and use it like in the example below: - -``` -![alt](https://www.p2pu.org/assets/images/p2pu-logo.png) -``` - -![alt text for image](https://www.p2pu.org/assets/images/p2pu-logo.png) - -
- ----- -##### Hosting Images on Github - -You can also host images for your course for free through GitHub. Head to the `img` folder, click *Add File > Upload Files* (top right above the list of files), and use the upload tool to add your images. When you add an image to your course, you'll link to it with the code below and replace `logo.png` with the name of the image. - - -``` -![alt]({{site.baseurl}}/img/logo.png) -``` - -![alt]({{site.baseurl}}/img/logo.png) - -
- ----- -##### YouTube Videos -If you want to place a video in your course, the easiest way is to upload it to YouTube and grab the automatically-generated embed code† from the **Share** button on the video's YouTube page. You can plop this directly into a submodule's `.md` file: - - - -``` - -``` - -The code above includes specific values for width and height which lets you control exactly how big your video will appear. This can be helpful in many cases, but it can also make it harder for mobile users to view the video. If you want your video size to be "responsive" (aka changing its size relative to the size of the browser window), you can copy the URL† to your YouTube video into the code below: - -
- -
- -``` -
- -
-``` - -† Note that these codes use an _embed_ version of a YouTube video's URL and won't work with the normal link to a video page. If you copy these codes directly, you'll want to replace `watch?v=` with `embed/` in your video's URL before you add them to the code block. - -
diff --git a/modules/content/_posts/2000-01-02-homepage.md b/modules/content/_posts/2000-01-02-homepage.md deleted file mode 100644 index 336c9b49d..000000000 --- a/modules/content/_posts/2000-01-02-homepage.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Homepage ---- - -## Homepage - -The homepage is the part of your course that most people will see first. By default, it shows a "jumbotron" (large banner with the course title, headline, and icon) and an open space to describe the materials inside the course. This information can be changed at any time without affecting other parts of your course. - -
- -#### Customize the Jumbotron - -![default Course-in-a-Box Jumbotron](/img/example-jumbotron.png) - -Settings for the background of the Jumbotron banner at the top of the page are made in the `_config.yml` file. If you've uploaded the images into the `img` folder, you can replace the text after `img/` with the file name for the image you want to use. You can also replace the link with an externally-hosted image. - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_config.yml](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_config.yml) - - -``` -jumbotron_color: "#FFF" -jumbotron_image: "img/jumbotron-image.svg" -jumbotron_mask: "img/jumbotron-mask.svg" -jumbotron_icon: "img/box-icon.png" -``` - -- `jumbotron_color` is the background color that will be used if nothing else is defined. -- `jumbotron_image` is the image that will be used as the background. If it’s a repeating pattern, it must be saved as an SVG file. All other image types will stretch to fit the space. -- `jumbotron_mask` is an optional dark tint that can be applied over your background image to improve legibility. By default, this is not enabled—to add it, remove the `# ` at the beginning of the line of code. (To turn it off, add the `# ` back in.) -- `jumbotron_icon` is the image that appears at the top of the jumbotron. - -
- -#### Set the Course Title + Headline - -The name of a course is set by editing the `course.yml` in the `_data/` folder: - -[https://github.com/your-github-username/course-in-a-box/blog/gh-pages/_data/course.yml](https://github.com/your-github-username/course-in-a-box/edit/gh-pages/_data/course.yml) - -By default, the information in this file will read: - -``` -title: Course-in-a-Box -description: An open-source project for creating online courses, built by P2PU -modules: [tutorial, resources, references] -``` - -- **Title:** This text appears as the title of the page in your browser. -- **Description:** This text appears as the headline in the large banner on the course landing page. -- **Modules:** This list controls the modules that appear in the top menu of your course. (See the [Modules](../modules) section for more information). - -Commit the changes when you’re finished and refresh your course page after a few minutes to see the edits appear. - -
- -#### Update the Course Description - -The `index.md` file in the main folder of the course holds the information that appears on the bottom half of the homepage. - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/index.md](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/index.md) - -``` ---- -layout: index -published: true ---- -``` - -You can leave this text alone (it’s called “front matter”—more about that in [Submodules](../submodules)) at the top of the document. Using Markdown formatting, add your content underneath. This is a good place to explain a basic overview of the course material, materials required, or instructions for sign-up. diff --git a/modules/content/_posts/2000-01-03-modules.md b/modules/content/_posts/2000-01-03-modules.md deleted file mode 100644 index be8956a34..000000000 --- a/modules/content/_posts/2000-01-03-modules.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Modules -published: true ---- - -## Modules - -Course-in-a-Box organizes course content using **modules** and **submodules** which exist respectively as folders and Markdown (`.md`) files within those folders. - -**Modules** index your course material into broad sections (topic, weeks, etc.) and appear in the top bar of the website to guide learners through the material. **Submodules** make up the modules and hold the content. - -
- -#### Default Modules - -The default modules for Course-in-a-Box are *Setup*, *Content*, and *Customize* which will appear in the menu bar above. In your GitHub repository, there's a folder called `modules` which contains a folder corresponding to each of these default modules. Inside each of these folders is another folder called `_posts` which contains your submodules (`.md` files). - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/modules/](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/modules/) - -
- -#### Creating New Modules - -To add a new module, start by creating the first file that will live within that module. - -To create a module called **introduction**: -* Open the `modules` folder (link above) -* Click the *Add File* > *Create new file* button which will take you to a page with a text box asking you to name your file -* Enter the text `introduction/_posts/2000-01-01-test.md` into the box (You should see "introduction" and "_posts" convert to folders while `2000-01-01-test.md` remains as the file name) -* Scroll to the bottom of the page and commit your change - -This will generate a new hidden module called "introduction" with a subfolder called "_posts" that contains a file (aka a submodule) called `2000-01-01-test.md`. 🎉! - -
- -#### Updating Modules in the Menu -New modules will remain hidden from public view until you add them to the course menu. To edit the modules that appear in the menu across the top of your Course-in-a-Box website, you'll manually update the list of module names in `_data/course.yml`. - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_data/course.yml](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_data/course.yml) - -Change the line containing: - -`modules: [tutorial, resources, references]` - -to include the name of your new module: - -`modules: [introduction, tutorial, resources, reference]` - -You can also remove or rearrange these however you'd like. Commit your changes, wait a minute or two, then refresh your course website to see the updated menu! - -
- -#### Deleting Modules - -The primary way to delete a folder on GitHub is to clear out all of its files: as soon as a folder is empty, it will automatically disappear. To delete a module, you'll need to remove all of the files inside one-by-one by opening them, hitting the trash icon, and committing the change. - -Fortunately, a module won't appear if its name isn't listed in your `course.yml` file, so you can leave P2PU's default folders in your GitHub repository without impacting the way your course looks on the web. - diff --git a/modules/content/_posts/2000-01-04-submodules.md b/modules/content/_posts/2000-01-04-submodules.md deleted file mode 100644 index f4cb8466a..000000000 --- a/modules/content/_posts/2000-01-04-submodules.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Submodules ---- - -## Submodules - -**Submodules** are the subsections of a module where your learning content lives. What you're looking at right now is a submodule about submodules. Meta! - -
- -#### Naming Submodules - -All submodule files need to follow a specific naming convention to work correctly: - -`YYYY-MM-DD-your-section-name.md` - -* **YYYY-MM-DD** - Each file name starts with a valid date in the format `YYYY-MM-DD`—the actual date doesn't matter, but the order of the submodules will be determined by chronological date (for these purposes, you can think of each submodule as a blog post, where the earliest post appears first). We use `2000-01-01` for the first submodule and increment the day (01, 02, 03, etc.) to define the order. - -* **your-section-name** - This is a short title for your submodule and will appear in the URL linking to it. You can hyphenate between multiple words if needed and edit this anytime. - -* **.md** – Typing `.md` at the end of your name will set the file type as a Markdown document which tells the course how to read the content that's inside. - -
- -#### Creating Submodules - -To add a new blank submodule, open the `modules` folder in your GitHub repository. - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/modules/](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/modules/) - -Find the module folder you want to create content for and click into it, then into its `_posts` subfolder. (If these doesn't exist yet, check out [Creating New Modules](../modules).) Click the *Add File* > *Create new file* button and enter your personalized version of `YYYY-MM-DD-your-section-name.md` into the "Name your file..." field. - -Below the name, you'll see a vast white space, full of possibility and eagerly awaiting your learning content! If you're not ready to add text yet, you can scroll to the bottom to commit the change and create a blank page. - -
- -#### Adding a Page Title - -To set the name of your submodule in the left-hand side bar, you’ll need to add something called “front matter” to the top of your document. This sets meta-information about your page – while it won't be visible on the page itself, it will establish the information that shows up in bookmarks, link previews, and search results. We primarily use `title` in Course-in-a-Box — all you need to do is plop the text below into the beginning of your `.md.` files and replace the word(s) after `title:` with the name of your page. - -``` ---- -title: Submodules ---- -``` - -
- -#### Add Your Content - -After that, it's all you! Below the title, add in your learning content using Markdown and (optionally) HTML. Keep the [Markdown & Media](../markdown-and-media) guide handy to speed up the process. - -If you're learning this as you go, it can be immensely helpful to peek under the hood of other projects to see how they're made. To compare this page with its Markdown guts, check out `2000-01-04-submodules.md`: - -[https://github.com/your-github-username/course-in-a-box/tree/gh-pages/modules/content/_posts/2000-01-04-submodules.md](https://github.com/your-github-username/course-in-a-box/tree/gh-pages/modules/content/_posts/2000-01-04-submodules.md) diff --git a/modules/customize/_posts/2000-01-01-single-pages.md b/modules/customize/_posts/2000-01-01-single-pages.md deleted file mode 100644 index ef7a7b9ba..000000000 --- a/modules/customize/_posts/2000-01-01-single-pages.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Add Single Pages ---- - -## Add Single Pages - -If you have extra content that you don’t want to fit within a course module (contact page, credits, reference guides, etc), you can also set up single pages. These pages will appear with no left-hand sidebar, just a top navigation and a central space to fill with your content. - -
Screenshot of an example single page
-
- -Adding a single page is similar to [making a submodule](../../content/submodules/). Create a new `.md` file in the root folder of your project. You can name it anything you want—the name of the file will turn into its URL in the browser. (Ex: `single-page.md` turns into `https://course-in-a-box.p2pu.org/single-page`) - -Add this chunk of code (aka front matter) at the top of your file: - -``` ---- -layout: page ---- -``` - -Underneath that, you can add your Markdown-formatted content however you’d like. 😎 - -Note that this file won’t automatically appear in the top navigation bar of your course or anywhere else unless you specifically link to it. For information on adding links, see the [Markdown and Media](../../content/markdown-and-media) page. To add a link to your nav bar, head to the next section, [Add Links to the Top Menu](../top-menu). diff --git a/modules/customize/_posts/2000-01-02-top-menu.md b/modules/customize/_posts/2000-01-02-top-menu.md deleted file mode 100644 index cf6368c12..000000000 --- a/modules/customize/_posts/2000-01-02-top-menu.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Add Links to the Top Menu ---- - -## Add Links to the Top Menu - -Course-in-a-Box automatically fills the top navigation bar with a link to the course’s homepage and every module that is added to the `_data/course.yml` file. If you want to further customize the top nav with links to external websites (like a forum or your org’s website), you can do that by editing some HTML. - -Head to `_includes/navigation.html`: - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_includes/navigation.html](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_includes/navigation.html) - -Near the bottom of the code, you’ll see text that looks like this: - -``` - -``` - -This code is “commented out”—in HTML, you can add `` around a block of code to instruct the computer to ignore it. (This function is typically used for leaving messages about what specific code is used for—you can see that at the top of this file where it says ``) In this case, we’ve pre-built a space for you to add a link to the top menu and ignored it by default. You’ll only need to delete the `` and update the link information to your own information. - -By default, the nav bar should look like this: - -![Screenshot of the top navigation bar without an extra link](/img/example-top-nav-no-link.png) - -Once you delete the `` from the code above and commit your changes, it should look like: - -![Screenshot of the top navigation bar with an extra link](/img/example-top-nav-link.png) - -To customize the link and title, you’ll replace these parts of the code: -``` -Example Link -``` - -* `https://www.p2pu.org/en/` – Delete this, then paste your web link here. -* `Example Link` - Change this text to be the name of your link. - -Commit your changes and your new link should appear at the end shortly! diff --git a/modules/customize/_posts/2000-01-03-custom-domain.md b/modules/customize/_posts/2000-01-03-custom-domain.md deleted file mode 100644 index 9a9d597e2..000000000 --- a/modules/customize/_posts/2000-01-03-custom-domain.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Set a Custom Domain ---- - -## Set a Custom Domain - -Your course will live freely and indefinitely at the following link which will be automatically generated when you fork Course-in-a-Box: - -[https://your-github-username.github.io/course-in-a-box/](https://your-github-username.github.io/course-in-a-box/) - -If you’d prefer to share your course on a different website, you can set it up under a custom domain name. -If you or your organization don’t already own the domain name where you want to host your course, you’ll need to buy one. Domains typically start at $10–15 per year. There are hundreds of services for this, many of which offer discounts or specialty domains. We recommend starting with [namecheap](https://www.namecheap.com/) or [gandi](https://www.gandi.net/en-US). - -#### Linking the Custom Domain - -Once you’ve registered the domain, there are two steps needed to route it to your course: adding a CNAME and configuring your DNS record. - -Remember that CNAME file you deleted when you first forked your course? Er, well, you’ll have to make that again in order to use a custom domain. In the main repository of your course, create a new file titled `CNAME` and paste your custom domain into the file. - -[https://your-github-username.github.io/course-in-a-box/CNAME](https://your-github-username.github.io/course-in-a-box/CNAME.) - -Finally, you need to configure your new domain to point to your course on GitHub. For this, we recommend following [GitHub’s official documentation](https://docs.github.com/en/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site#configuring-a-subdomain). diff --git a/modules/customize/_posts/2000-01-04-google-analytics.md b/modules/customize/_posts/2000-01-04-google-analytics.md deleted file mode 100644 index d227ea73a..000000000 --- a/modules/customize/_posts/2000-01-04-google-analytics.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Use Google Analytics ---- - -## Use Google Analytics - -Google Analytics is a free web analytics service that tracks and reports website traffic. If you're interested in seeing information like how people are finding your course, what country they live in, and how long they spend on different pages, you'll like Google Analytics! - -1. Head to [analytics.google.com](https://analytics.google.com/) and sign in with or create a Google account -1. Create a new property ([more info](https://support.google.com/analytics/answer/1042508)) for your Course-in-a-Box website (You'll need to enter the URL it lives at, so if you want to set up a custom domain, you should do that first) -1. Copy the Tracking ID information (should look like "UA-000000000-0") -1. Add your tracking code after the `ga_tracking_code:` line of `_config.yml` - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_config.yml](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/_config.yml) - -This will take a while to update and won't look very exciting until you start widely sharing your course. If you want to test it now, send the link to a few friends and check the analytics dashboard 24 hours later to make sure things are functioning properly. diff --git a/modules/customize/_posts/2000-01-05-favicon.md b/modules/customize/_posts/2000-01-05-favicon.md deleted file mode 100644 index 0f2c89b82..000000000 --- a/modules/customize/_posts/2000-01-05-favicon.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Add a Favicon ---- - -## Add a Favicon - -A **favicon** is the small image associated with a particular website. Most browsers display these as a visual reminder of the website in the address bar or in tabs. By default, the favicon for Course-in-a-Box courses is the box emoji pictured below. - -![box emoji]({{site.baseurl}}/img/favicon.ico) - -
- -#### Creating a Favicon - -Head to [favicon.io](https://favicon.io/), a free and extensive resource that offers tools to quickly generate the correct files using an image, text, or emoji. - -Once you've generated the favicon you'd like, the website will download a .ZIP folder called `favicon_io` that contains 6 different images. For Course-in-a-Box purposes, you'll only need the one titled `favicon.ico` - -
- -#### Uploading a Favicon - -As long as your file is named `favicon.ico`, you don't need to make any code changes for this one. Head to the `img` folder, click *Add File* > *Upload Files* (top right above the list of files), and use the upload tool to add your image. Once your file has uploaded, commit your changes and wait a few minutes to see the updated favicon appear. - -[https://github.com/your-github-username/course-in-a-box/tree/gh-pages/img](https://github.com/your-github-username/course-in-a-box/tree/gh-pages/img) - -You can update the favicon anytime by following this same process. Uploading a file with the same name will overwrite the previous version so you don't need to worry about deleting old versions. diff --git a/modules/customize/_posts/2000-01-06-licensing.md b/modules/customize/_posts/2000-01-06-licensing.md deleted file mode 100644 index f4fa753a0..000000000 --- a/modules/customize/_posts/2000-01-06-licensing.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Choose a Course License ---- - -## Choose a Course License - -We license our course content (including this very sentence) with a [Creative Commons BY-SA](https://creativecommons.org/licenses/by-sa/4.0/legalcode) license, which means that anybody can reuse or remix content so long as they attribute us (BY) and share their derivative work with the same license (SA=Share Alike). You are free to choose any license that you like: Creative Commons [offers a number of licenses](https://creativecommons.org/licenses/), and there are alternative licenses as well. To change your course license, you need to update text in two places: the website footer and the README file. - -You may also have noticed a `LICENSE` file in your repository: this license is for Course-in-a-Box software, not for the content that you create. Do not edit the `LICENSE` file when changing the content license. diff --git a/modules/galaxy-introduction/_posts/2024-02-23-Galaxy.md b/modules/galaxy-introduction/_posts/2024-02-23-Galaxy.md new file mode 100644 index 000000000..27c7c9a57 --- /dev/null +++ b/modules/galaxy-introduction/_posts/2024-02-23-Galaxy.md @@ -0,0 +1,61 @@ +--- +title: Introduction to Galaxy +--- +### Introduction to Galaxy + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + + + +### Introduction to Galaxy - Hands On + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + +#### Connecting to the Learning Environment + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ +#### Additional Learning Resources + + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ diff --git a/modules/nextflow/_posts/2024-02-23-nextflow.md b/modules/nextflow/_posts/2024-02-23-nextflow.md new file mode 100644 index 000000000..5a6b68b08 --- /dev/null +++ b/modules/nextflow/_posts/2024-02-23-nextflow.md @@ -0,0 +1,61 @@ +--- +title: Nextflow +--- +### Introduction to Nextflow + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + + + +### Introduction to Nextflow - Hands On + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + +#### Connecting to the Learning Environment + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ +#### Additional Learning Resources + + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ diff --git a/modules/package-management-conda/_posts/2024-02-23-Package-Management-Conda.md b/modules/package-management-conda/_posts/2024-02-23-Package-Management-Conda.md new file mode 100644 index 000000000..2dc3f8615 --- /dev/null +++ b/modules/package-management-conda/_posts/2024-02-23-Package-Management-Conda.md @@ -0,0 +1,61 @@ +--- +title: Packagemanagement with Conda +--- +### Introduction to Package Management + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + + + +### Introduction to Package Management - Hands On + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + +#### Connecting to the Learning Environment + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ +#### Additional Learning Resources + + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ diff --git a/modules/r-programming/_posts/2024-02-23-R-Programming.md b/modules/r-programming/_posts/2024-02-23-R-Programming.md new file mode 100644 index 000000000..28488a504 --- /dev/null +++ b/modules/r-programming/_posts/2024-02-23-R-Programming.md @@ -0,0 +1,61 @@ +--- +title: R programming +--- +### Introduction to R + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + + + +### Introduction to R - Hands On + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + +#### Connecting to the Learning Environment + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ +#### Additional Learning Resources + + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ diff --git a/modules/setup/_posts/2000-01-01-getting-started.md b/modules/setup/_posts/2000-01-01-getting-started.md deleted file mode 100644 index 931c66379..000000000 --- a/modules/setup/_posts/2000-01-01-getting-started.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Getting Started with GitHub ---- - -## Getting Started with GitHub - -Course-in-a-Box courses are websites that are edited and hosted through GitHub, a web-based service for managing code and collaborating on projects. To start, you'll need a (free) [GitHub account](https://github.com/join). - -For a great basic primer on GitHub, check out [Hello World](https://guides.github.com/activities/hello-world/) and the [GitHub Term Glossary](https://docs.github.com/en/github/getting-started-with-github/github-glossary). If you get stuck at any point in the setup process, head to our [community forum](https://community.p2pu.org/c/tech/course-in-a-box/78) and someone can help you out! - -We can automatically generate all of the links in this guide if you type your GitHub username into the box below. You can also copy the links directly into your browser’s URL bar, though you’ll have to manually replace the text “your-github-username” with your GitHub username. - - -[your-github-username](https://github.com/your-github-username-set/course-in-a-box/) - -This guide is a cohesive companion for building a course directly in GitHub’s web interface with minimal coding knowledge. While this is the simplest way to get started, please note that you will generally have to wait a few minutes before changes will appear on your live course website. - -Optionally, if you’re comfortable setting up and working in local dev environments, you can [install and run Jekyll](https://nicolas-van.github.io/bootstrap-4-github-pages#run-jekyll-on-your-computer-to-speed-up-testing) to build your course locally and speed up testing. diff --git a/modules/setup/_posts/2000-01-02-required-setup.md b/modules/setup/_posts/2000-01-02-required-setup.md deleted file mode 100644 index 8fce888f1..000000000 --- a/modules/setup/_posts/2000-01-02-required-setup.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Required Setup ---- - -## Required Setup - -Once you’re logged in to GitHub, the first step of creating a course is to copy ( “fork”) the Course-in-a-Box project folder ( “repository”) from P2PU’s account to yours. This will make an identical copy of this website and its content in your account library. (Making your course is essentially a matter of editing out our content and customizing it with your own.) - -To start, head to [P2PU’s course-in-a-box project](https://github.com/p2pu/course-in-a-box) and click “Fork” in the top right, or simply click the button below: - - Fork this repository on GitHub - -
- -#### Delete CNAME -Once you’ve forked the project, you’ll need to remove the **CNAME** file that appears in the main list of folders and files. This file is specific to P2PU’s web hosting for this tutorial website, and it’ll prevent your site from working if you keep it. (If you’ve already got a custom domain that you want to use for your course, you can edit this instead of deleting it—see [Set a Custom Domain](../../customize/custom-domain/) for more information.) - -Click the file to open it: - -[https://github.com/your-github-username/course-in-a-box/blob/gh-pages/CNAME](https://github.com/your-github-username/course-in-a-box/blob/gh-pages/CNAME) - -Once open, click the trash can icon in the upper right side of the code section to delete the file. On the confirmation page, click the green “Commit changes” button to update (“commit”) your change and return you to the file list. - -
- -#### Your course is now live! - -You can view it by going to - -[https://your-github-username.github.io/course-in-a-box/](https://your-github-username.github.io/course-in-a-box/) - -Note: it can take between 2–20 minutes for your course to show up for the first time. diff --git a/modules/setup/_posts/2000-01-03-course-template.md b/modules/setup/_posts/2000-01-03-course-template.md deleted file mode 100644 index 4b49e3841..000000000 --- a/modules/setup/_posts/2000-01-03-course-template.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Understanding the Course Template ---- - -## Understanding the Course Template -
- -
Screenshot of the course template in GitHub
- -
- -Once you’ve forked the course, you’ll see the course's guts as a list of folders and file names. This list contains all of the learning content for the course as well as the code that holds it all together. This guide will always tell you exactly where to look to update different parts of your course, so you don’t need to read or memorize this section in order to proceed. - -
- -#### Directory layout explanation - -``` -📁 _data - course metadata -📁 _includes - html for page components -📁 _layouts - html for various page layouts -📁 _sass - styling code -📁 css - more styling code -📁 fonts - font files (including icons!) -📁 img - image files -📁 js - JavaScript for interactive components of the site -📁 modules - folder for the actual course content -.gitignore - a git file (for keeping this directory tidy) -404.html - error text that appears on broken links or nonexistent pages -CNAME - use for setting custom domains -Gemfile - used by jekyll/GitHub pages -LICENSE - Course-in-a-Box is licensed under the MIT License (do not edit) -README.md - a text file to introduce and explain the project -_config.yml - Jekyll/GitHub pages configuration & settings -index.md - landing page content -single-page.md - an example single page of content -``` diff --git a/modules/unix-linux-introduction/_posts/2024-02-23-intro-to-cli.md b/modules/unix-linux-introduction/_posts/2024-02-23-intro-to-cli.md new file mode 100644 index 000000000..cd588677d --- /dev/null +++ b/modules/unix-linux-introduction/_posts/2024-02-23-intro-to-cli.md @@ -0,0 +1,61 @@ +--- +title: Introduction to Linux and the Bash shell +--- +### Introduction to Linux + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + + + +### Introduction to Linux - Hands On + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ + + +#### Connecting to the Learning Environment + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+ +#### Additional Learning Resources + + +
+
+
+ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. + +
+
+
+