diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..6cc9e52 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,9 @@ +Please delete the text below before submitting your contribution. + +--- + +Thanks for contributing! If this contribution is for instructor training, please send an email to checkout@carpentries.org with a link to this contribution so we can record your progress. You’ve completed your contribution step for instructor checkout just by submitting this contribution. + +Please keep in mind that lesson maintainers are volunteers and it may be some time before they can respond to your contribution. Although not all contributions can be incorporated into the lesson materials, we appreciate your time and effort to improve the curriculum. If you have any questions about the lesson maintenance process or would like to volunteer your time as a contribution reviewer, please contact Kate Hertweck (k8hertweck@gmail.com). + +--- diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..6cc9e52 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +Please delete the text below before submitting your contribution. + +--- + +Thanks for contributing! If this contribution is for instructor training, please send an email to checkout@carpentries.org with a link to this contribution so we can record your progress. You’ve completed your contribution step for instructor checkout just by submitting this contribution. + +Please keep in mind that lesson maintainers are volunteers and it may be some time before they can respond to your contribution. Although not all contributions can be incorporated into the lesson materials, we appreciate your time and effort to improve the curriculum. If you have any questions about the lesson maintenance process or would like to volunteer your time as a contribution reviewer, please contact Kate Hertweck (k8hertweck@gmail.com). + +--- diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2ab1593..9de5a12 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,18 +45,22 @@ and to meet some of our community members. ## Where to Contribute -1. If you wish to change this example lesson, - please work in . - This lesson documents the format of our lessons, +1. If you wish to change this lesson, + please work in , + which can be viewed at . + +2. If you wish to change the example lesson, + please work in , + which documents the format of our lessons and can be viewed at . -2. If you wish to change the template used for workshop websites, +3. If you wish to change the template used for workshop websites, please work in . The home page of that repository explains how to set up workshop websites, while the extra pages in provide more background on our design choices. -3. If you wish to change CSS style files, tools, +4. If you wish to change CSS style files, tools, or HTML boilerplate for lessons or workshops stored in `_includes` or `_layouts`, please work in . @@ -102,8 +106,7 @@ you may want to look at [How to Contribute to an Open Source Project on GitHub][how-contribute]. In brief: -1. The published copy of the lesson is in the [episodes][episodes] directory - in the `gh-pages` branch of the repository +1. The published copy of the lesson is in the `gh-pages` branch of the repository (so that GitHub will regenerate it automatically). Please create all branches from that, and merge the [master repository][repo]'s `gh-pages` branch into your `gh-pages` branch @@ -137,14 +140,12 @@ You can also [reach us by email][contact]. [dc-lessons]: http://datacarpentry.org/lessons/ [dc-site]: http://datacarpentry.org/ [discuss-list]: http://lists.software-carpentry.org/listinfo/discuss -[example-site]: https://swcarpentry.github.io/lesson-example/ [github]: http://github.com [github-flow]: https://guides.github.com/introduction/flow/ [github-join]: https://github.com/join [how-contribute]: https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github -[issues]: https://github.com/swcarpentry/lesson-example/issues/ -[repo]: https://github.com/swcarpentry/lesson-example/ +[issues]: https://github.com/swcarpentry/FIXME/issues/ +[repo]: https://github.com/swcarpentry/FIXME/ [swc-issues]: https://github.com/issues?q=user%3Aswcarpentry [swc-lessons]: http://software-carpentry.org/lessons/ [swc-site]: http://software-carpentry.org/ -[episodes]: _episodes diff --git a/_includes/dc/intro.html b/_includes/dc/intro.html new file mode 100644 index 0000000..741aeeb --- /dev/null +++ b/_includes/dc/intro.html @@ -0,0 +1,18 @@ +

+ Data Carpentry + aims to help researchers get their work done + in less time and with less pain + by teaching them basic research computing skills. + This hands-on workshop will cover basic concepts and tools, + including program design, version control, data management, + and task automation. + Participants will be encouraged to help one another + and to apply what they have learned to their own research problems. +

+

+ + For more information on what we teach and why, + please see our paper + "Best Practices for Scientific Computing". + +

diff --git a/_includes/dc/schedule.html b/_includes/dc/schedule.html new file mode 100644 index 0000000..6894a19 --- /dev/null +++ b/_includes/dc/schedule.html @@ -0,0 +1,24 @@ +
+
+

Day 1

+ + + + + + + +
09:00 Automating tasks with the Unix shell
10:30 Coffee
12:00 Lunch break
13:00 Building programs with Python
14:30 Coffee
16:00 Wrap-up
+
+
+

Day 2

+ + + + + + + +
09:00 Version control with Git
10:30 Coffee
12:00 Lunch break
13:00 Managing data with SQL
14:30 Coffee
16:00 Wrap-up
+
+
diff --git a/_includes/dc/syllabus.html b/_includes/dc/syllabus.html new file mode 100644 index 0000000..a325cee --- /dev/null +++ b/_includes/dc/syllabus.html @@ -0,0 +1,96 @@ +
+
+

The Unix Shell

+
    +
  • Files and directories
  • +
  • History and tab completion
  • +
  • Pipes and redirection
  • +
  • Looping over files
  • +
  • Creating and running shell scripts
  • +
  • Finding things
  • +
  • Reference...
  • +
+
+
+

Programming in Python

+
    +
  • Using libraries
  • +
  • Working with arrays
  • +
  • Reading and plotting data
  • +
  • Creating and using functions
  • +
  • Loops and conditionals
  • +
  • Defensive programming
  • +
  • Using Python from the command line
  • +
  • Reference...
  • +
+
+ + +
+ +
+
+

Version Control with Git

+
    +
  • Creating a repository
  • +
  • Recording changes to files: add, commit, ...
  • +
  • Viewing changes: status, diff, ...
  • +
  • Ignoring files
  • +
  • Working on the web: clone, pull, push, ...
  • +
  • Resolving conflicts
  • +
  • Open licenses
  • +
  • Where to host work, and why
  • +
  • Reference...
  • +
+
+ +
+

Open Refine

+
    +
  • Introduction to OpenRefine
  • +
  • Importing data
  • +
  • Basic functions
  • +
  • Advanced Functions
  • +
  • Reference...
  • +
+
+
diff --git a/_includes/dc/who.html b/_includes/dc/who.html new file mode 100644 index 0000000..2d8e94a --- /dev/null +++ b/_includes/dc/who.html @@ -0,0 +1,8 @@ +

+ Who: + The course is aimed at graduate students and other researchers. + + You don't need to have any previous knowledge of the tools + that will be presented at the workshop. + +

diff --git a/_includes/episode_navbar.html b/_includes/episode_navbar.html index 1f6e033..b9f85f6 100644 --- a/_includes/episode_navbar.html +++ b/_includes/episode_navbar.html @@ -14,7 +14,6 @@

{% if include.episode_navbar_title %}

{{ site.title }}

-

{{ page.title }}

{% endif %}
diff --git a/_includes/episode_title.html b/_includes/episode_title.html new file mode 100644 index 0000000..d0abc65 --- /dev/null +++ b/_includes/episode_title.html @@ -0,0 +1,9 @@ +
+
+
+
+

{{ page.title }}

+
+
+
+
diff --git a/_includes/lc/intro.html b/_includes/lc/intro.html new file mode 100644 index 0000000..6794b54 --- /dev/null +++ b/_includes/lc/intro.html @@ -0,0 +1,19 @@ +

+ Library Carpentry + is made by librarians, for librarians to help you: +

+
    +
  • automate repetitive, boring, error-prone tasks
  • +
  • create, maintain and analyse sustainable and reusable data
  • +
  • work effectively with IT and systems colleagues
  • +
  • better understand the use of software in research
  • +
  • and much more...
  • +
+

+ + Library Carpentry introduces you to the fundamentals of computing + and provides you with a platform for further self-directed learning. + For more information on what we teach and why, please see our paper + "Library Carpentry: software skills training for library professionals". + +

diff --git a/_includes/lc/schedule.html b/_includes/lc/schedule.html new file mode 100644 index 0000000..cc2b592 --- /dev/null +++ b/_includes/lc/schedule.html @@ -0,0 +1,24 @@ +
+
+

Day 1

+ + + + + + + +
09:00 Data Intro for Librarians
10:30 Coffee
12:00 Lunch break
13:00 Shell Lessons for Libraries
14:30 Coffee
16:00 Wrap-up
+
+
+

Day 2

+ + + + + + + +
09:00 Git Intro for Librarians
10:30 Coffee
12:00 Lunch break
13:00 OpenRefine for Librarians
14:30 Coffee
16:00 Wrap-up
+
+
diff --git a/_includes/lc/syllabys.html b/_includes/lc/syllabys.html new file mode 100644 index 0000000..4dc2077 --- /dev/null +++ b/_includes/lc/syllabys.html @@ -0,0 +1,69 @@ +
+
+

Data Intro

+
    +
  • Intro to data
  • +
  • Jargon busting
  • +
  • Keyboard shortcuts
  • +
  • Plain text formats
  • +
  • Naming files
  • +
  • Regular expressions
  • +
  • Reference...
  • +
+
+
+

The Unix Shell

+
    +
  • Files and directories
  • +
  • History and tab completion
  • +
  • Counting and sorting contents in files
  • +
  • Pipes and redirection
  • +
  • Mining or searching in files
  • +
  • Reference...
  • +
+
+ +
+ +
+
+

Version Control with Git

+
    +
  • Creating a repository
  • +
  • Configuring git
  • +
  • Recording changes to files: add, commit, ...
  • +
  • Viewing state changes with status
  • +
  • Working on the web: clone, pull, push, ...
  • +
  • Where to host work, and why
  • +
  • Reference...
  • +
+
+
+
+

Open Refine

+
    +
  • Introduction to OpenRefine
  • +
  • Importing data
  • +
  • Basic functions
  • +
  • Advanced Functions
  • +
  • Reference...
  • +
+
+
+
+ diff --git a/_includes/lc/who.html b/_includes/lc/who.html new file mode 100644 index 0000000..fd9b38c --- /dev/null +++ b/_includes/lc/who.html @@ -0,0 +1,8 @@ +

+ Who: + The course is for librarians, archivists, and other information workers. + + You don't need to have any previous knowledge of the tools that + will be presented at the workshop. + +

diff --git a/_includes/links.md b/_includes/links.md index 7a2fd43..a163786 100644 --- a/_includes/links.md +++ b/_includes/links.md @@ -31,3 +31,5 @@ [training]: http://swcarpentry.github.io/instructor-training/ [workshop-repo]: {{ site.workshop_repo }} [yaml]: http://yaml.org/ +[coc]: https://software-carpentry.org/conduct/ +[coc-reporting]: https://software-carpentry.org/CoC-reporting/ \ No newline at end of file diff --git a/_includes/navbar.html b/_includes/navbar.html index 6b21afc..7782c9d 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -22,19 +22,7 @@ {% elsif page.carpentry == "lc" %} - - - {% elsif site.carpentry == "swc" %} - - - - {% elsif site.carpentry == "dc" %} - - - - {% elsif site.carpentry == "lc" %} - - + {% endif %} @@ -57,6 +45,8 @@ {% for episode in site.episodes %}
  • {{ episode.title }}
  • {% endfor %} + +
  • All in one page (Beta)
  • {% endif %} diff --git a/_includes/sc/intro.html b/_includes/sc/intro.html new file mode 100644 index 0000000..7b9fbf5 --- /dev/null +++ b/_includes/sc/intro.html @@ -0,0 +1,18 @@ +

    + Software Carpentry + aims to help researchers get their work done + in less time and with less pain + by teaching them basic research computing skills. + This hands-on workshop will cover basic concepts and tools, + including program design, version control, data management, + and task automation. + Participants will be encouraged to help one another + and to apply what they have learned to their own research problems. +

    +

    + + For more information on what we teach and why, + please see our paper + "Best Practices for Scientific Computing". + +

    diff --git a/_includes/sc/schedule.html b/_includes/sc/schedule.html new file mode 100644 index 0000000..6894a19 --- /dev/null +++ b/_includes/sc/schedule.html @@ -0,0 +1,24 @@ +
    +
    +

    Day 1

    + + + + + + + +
    09:00 Automating tasks with the Unix shell
    10:30 Coffee
    12:00 Lunch break
    13:00 Building programs with Python
    14:30 Coffee
    16:00 Wrap-up
    +
    +
    +

    Day 2

    + + + + + + + +
    09:00 Version control with Git
    10:30 Coffee
    12:00 Lunch break
    13:00 Managing data with SQL
    14:30 Coffee
    16:00 Wrap-up
    +
    +
    diff --git a/_includes/sc/syllabus.html b/_includes/sc/syllabus.html new file mode 100644 index 0000000..a325cee --- /dev/null +++ b/_includes/sc/syllabus.html @@ -0,0 +1,96 @@ +
    +
    +

    The Unix Shell

    +
      +
    • Files and directories
    • +
    • History and tab completion
    • +
    • Pipes and redirection
    • +
    • Looping over files
    • +
    • Creating and running shell scripts
    • +
    • Finding things
    • +
    • Reference...
    • +
    +
    +
    +

    Programming in Python

    +
      +
    • Using libraries
    • +
    • Working with arrays
    • +
    • Reading and plotting data
    • +
    • Creating and using functions
    • +
    • Loops and conditionals
    • +
    • Defensive programming
    • +
    • Using Python from the command line
    • +
    • Reference...
    • +
    +
    + + +
    + +
    +
    +

    Version Control with Git

    +
      +
    • Creating a repository
    • +
    • Recording changes to files: add, commit, ...
    • +
    • Viewing changes: status, diff, ...
    • +
    • Ignoring files
    • +
    • Working on the web: clone, pull, push, ...
    • +
    • Resolving conflicts
    • +
    • Open licenses
    • +
    • Where to host work, and why
    • +
    • Reference...
    • +
    +
    + +
    +

    Open Refine

    +
      +
    • Introduction to OpenRefine
    • +
    • Importing data
    • +
    • Basic functions
    • +
    • Advanced Functions
    • +
    • Reference...
    • +
    +
    +
    diff --git a/_includes/sc/who.html b/_includes/sc/who.html new file mode 100644 index 0000000..2d8e94a --- /dev/null +++ b/_includes/sc/who.html @@ -0,0 +1,8 @@ +

    + Who: + The course is aimed at graduate students and other researchers. + + You don't need to have any previous knowledge of the tools + that will be presented at the workshop. + +

    diff --git a/_includes/syllabus.html b/_includes/syllabus.html index 86b69c3..95ec2e1 100644 --- a/_includes/syllabus.html +++ b/_includes/syllabus.html @@ -18,7 +18,7 @@

    Schedule

    {% if multiday %}{% endif %} Setup - Dowload files used on the lesson. + Download files required for the lesson {% for episode in site.episodes %} {% if episode.start %} {% comment %} Starting a new day? {% endcomment %} diff --git a/_includes/workshop_footer.html b/_includes/workshop_footer.html index 3ae63e6..897e421 100644 --- a/_includes/workshop_footer.html +++ b/_includes/workshop_footer.html @@ -3,14 +3,22 @@ {% endcomment %} diff --git a/_layouts/break.html b/_layouts/break.html index 6e2a6a0..ac58232 100644 --- a/_layouts/break.html +++ b/_layouts/break.html @@ -2,6 +2,9 @@ layout: base --- {% include episode_navbar.html episode_navbar_title=true %} +
    +{% include episode_title.html %} {% include episode_break.html %} {{content}} +
    {% include episode_navbar.html episode_navbar_title=false %} diff --git a/_layouts/episode.html b/_layouts/episode.html index d774a68..0b276e7 100644 --- a/_layouts/episode.html +++ b/_layouts/episode.html @@ -2,7 +2,10 @@ layout: base --- {% include episode_navbar.html episode_navbar_title=true %} +
    +{% include episode_title.html %} {% include episode_overview.html %} {{content}} {% include episode_keypoints.html %} +
    {% include episode_navbar.html episode_navbar_title=false %} diff --git a/aio.md b/aio.md new file mode 100644 index 0000000..6d93852 --- /dev/null +++ b/aio.md @@ -0,0 +1,36 @@ +--- +layout: page +permalink: /aio/ +--- + +{% comment %} +Create anchor for each one of the episodes. +{% endcomment %} +{% for episode in site.episodes %} +
    +{% endfor %} diff --git a/assets/img/lc-icon-black.png b/assets/img/lc-icon-black.png new file mode 100644 index 0000000..e49c6d5 Binary files /dev/null and b/assets/img/lc-icon-black.png differ diff --git a/assets/js/lesson.js b/assets/js/lesson.js index c51dca6..185da92 100644 --- a/assets/js/lesson.js +++ b/assets/js/lesson.js @@ -3,7 +3,7 @@ $("table").addClass("table table-striped"); // Handle foldable challenges and solutions (on click and at start). -$(".challenge,.discussion,.solution").click(function(event) { +$(".solution").click(function(event) { var trigger = $(event.target).has(".fold-unfold").size() > 0 || $(event.target).filter(".fold-unfold").size() > 0; if (trigger) { @@ -12,7 +12,7 @@ $(".challenge,.discussion,.solution").click(function(event) { event.stopPropagation(); } }); -$(".challenge,.discussion,.solution").each(function() { +$(".solution").each(function() { $(">*:not(h2)", this).toggle(); var h2 = $("h2:first", this); h2.append(""); diff --git a/bin/generate_md_episodes.R b/bin/generate_md_episodes.R index 6d8a2d7..f2a40ba 100644 --- a/bin/generate_md_episodes.R +++ b/bin/generate_md_episodes.R @@ -6,12 +6,12 @@ generate_md_episodes <- function() { if (!require("stringr")) stop("The package stringr is required for generating the lessons.") - if (require("checkpoint")) { + if (require("checkpoint") && packageVersion("checkpoint") >= '0.4.0') { required_pkgs <- - checkpoint:::projectScanPackages(project = "_episodes_rmd", - verbose=FALSE, use.knitr = TRUE)$pkgs + checkpoint:::scanForPackages(project = "_episodes_rmd", + verbose=FALSE, use.knitr = TRUE)$pkgs } else { - stop("The checkpoint package is required to build the lessons.") + stop("The checkpoint package (>= 0.4.0) is required to build the lessons.") } missing_pkgs <- required_pkgs[!(required_pkgs %in% rownames(installed.packages()))] @@ -22,7 +22,7 @@ generate_md_episodes <- function() { install.packages(missing_pkgs) } - ## find all the Rmd files, and generates the paths for their respective outputs + ## find all the Rmd files, and generate the paths for their respective outputs src_rmd <- list.files(pattern = "??-*.Rmd$", path = "_episodes_rmd", full.names = TRUE) dest_md <- file.path("_episodes", gsub("Rmd$", "md", basename(src_rmd))) diff --git a/bin/lesson_initialize.py b/bin/lesson_initialize.py index 540bb08..fc7baf7 100755 --- a/bin/lesson_initialize.py +++ b/bin/lesson_initialize.py @@ -278,6 +278,45 @@ FIXME ''' +ROOT_AIO_MD = '''\ +--- +layout: page +permalink: /aio/ +--- + +{% comment %} +Create anchor for each one of the episodes. +{% endcomment %} +{% for episode in site.episodes %} +
    +{% endfor %} +''' + EPISODES_INTRODUCTION_MD = '''\ --- title: "Introduction" @@ -340,6 +379,7 @@ ('index.md', ROOT_INDEX_MD), ('reference.md', ROOT_REFERENCE_MD), ('setup.md', ROOT_SETUP_MD), + ('aio.md', ROOT_AIO_MD), ('_episodes/01-introduction.md', EPISODES_INTRODUCTION_MD), ('_extras/about.md', EXTRAS_ABOUT_MD), ('_extras/discuss.md', EXTRAS_DISCUSS_MD),