Skip to content

Commit f347cb6

Browse files
author
Ayres, Andrew
committed
add bin
1 parent 54fba34 commit f347cb6

29 files changed

+2295
-0
lines changed

bin/_test/bs4test.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import unittest
2+
from bs4 import BeautifulSoup
3+
import os
4+
from pathlib import Path
5+
from git_root import git_root
6+
7+
class beautifulSoupTests(unittest.TestCase):
8+
"""
9+
This test sets up a bs4 (https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-beautiful-soup)
10+
runner for tests of index.md that do not require a web browser.
11+
"""
12+
13+
#https://github.com/jtilly/git_root
14+
soup = BeautifulSoup("", 'html.parser')
15+
def setUp(self):
16+
with open(Path(git_root()) / 'index.md', "r") as index:
17+
indexpage = index.read()
18+
self.soup = BeautifulSoup(indexpage , 'html.parser')
19+
20+
def test_for_active_css_in_tabs(self):
21+
"""
22+
As per https://github.com/carpentries/workshop-template/pull/573/files
23+
all tab divs need to have the active class in index.md
24+
"""
25+
for article in self.soup.find_all("article"):
26+
self.assertIn('active', article['class'])
27+
self.assertIn('tab-pane', article['class'])
28+
29+
30+
if __name__ == '__main__':
31+
unittest.main()

bin/_travis.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import yaml
2+
import datetime
3+
# We need to split the incoming file
4+
with open("index.md", 'r') as reader:
5+
# There are multiple yaml documents in the index.md
6+
7+
blankbit, yaml_to_load, text = reader.read().split("---")
8+
9+
yaml_data = yaml.load(yaml_to_load, Loader=yaml.Loader) # To deal with depreciation warnings, we need Loader=Loader
10+
11+
12+
yaml_data['venue']="Foo"
13+
yaml_data['address']="Room 123"
14+
yaml_data['country']="us"
15+
yaml_data['language']="en"
16+
yaml_data['latitude']="0"
17+
yaml_data['longitude']="0"
18+
yaml_data['humandate']="Jan 01-02, 2020"
19+
yaml_data['humantime']="9:00 am - 4:30 pm"
20+
yaml_data['startdate']= datetime.datetime.today()
21+
yaml_data['enddate']= datetime.datetime.today()
22+
yaml_data['instructor']=["Foo"]
23+
yaml_data['helper']=["Foo"]
24+
yaml_data['email']=["[email protected]"]
25+
yaml_data['collaborative_notes'] = "http://foo.bar"
26+
yaml_data['eventbrite']="1234567890AB"
27+
28+
with open("index.md", "w") as writer:
29+
writer.write("---\n") #blankbit is technically a yaml document
30+
yaml.dump(yaml_data, writer)
31+
writer.write("---\n")
32+
writer.write(text)

bin/boilerplate/AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FIXME: list authors' names and email addresses.

bin/boilerplate/CITATION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FIXME: describe how to cite this lesson.

bin/boilerplate/CONTRIBUTING.md

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# Contributing
2+
3+
[The Carpentries][c-site] ([Software Carpentry][swc-site], [Data Carpentry][dc-site], and [Library Carpentry][lc-site]) are open source projects,
4+
and we welcome contributions of all kinds:
5+
new lessons,
6+
fixes to existing material,
7+
bug reports,
8+
and reviews of proposed changes are all welcome.
9+
10+
## Contributor Agreement
11+
12+
By contributing,
13+
you agree that we may redistribute your work under [our license](LICENSE.md).
14+
In exchange,
15+
we will address your issues and/or assess your change proposal as promptly as we can,
16+
and help you become a member of our community.
17+
Everyone involved in [The Carpentries][c-site]
18+
agrees to abide by our [code of conduct](CODE_OF_CONDUCT.md).
19+
20+
## How to Contribute
21+
22+
The easiest way to get started is to file an issue
23+
to tell us about a spelling mistake,
24+
some awkward wording,
25+
or a factual error.
26+
This is a good way to introduce yourself
27+
and to meet some of our community members.
28+
29+
1. If you do not have a [GitHub][github] account,
30+
you can [send us comments by email][email].
31+
However,
32+
we will be able to respond more quickly if you use one of the other methods described below.
33+
34+
2. If you have a [GitHub][github] account,
35+
or are willing to [create one][github-join],
36+
but do not know how to use Git,
37+
you can report problems or suggest improvements by [creating an issue][issues].
38+
This allows us to assign the item to someone
39+
and to respond to it in a threaded discussion.
40+
41+
3. If you are comfortable with Git,
42+
and would like to add or change material,
43+
you can submit a pull request (PR).
44+
Instructions for doing this are [included below](#using-github).
45+
46+
## Where to Contribute
47+
48+
1. If you wish to change this lesson,
49+
please work in <https://github.com/swcarpentry/FIXME>,
50+
which can be viewed at <https://swcarpentry.github.io/FIXME>.
51+
52+
2. If you wish to change the example lesson,
53+
please work in <https://github.com/carpentries/lesson-example>,
54+
which documents the format of our lessons
55+
and can be viewed at <https://carpentries.github.io/lesson-example>.
56+
57+
3. If you wish to change the template used for workshop websites,
58+
please work in <https://github.com/carpentries/workshop-template>.
59+
The home page of that repository explains how to set up workshop websites,
60+
while the extra pages in <https://carpentries.github.io/workshop-template>
61+
provide more background on our design choices.
62+
63+
4. If you wish to change CSS style files, tools,
64+
or HTML boilerplate for lessons or workshops stored in `_includes` or `_layouts`,
65+
please work in <https://github.com/carpentries/styles>.
66+
67+
## What to Contribute
68+
69+
There are many ways to contribute,
70+
from writing new exercises and improving existing ones
71+
to updating or filling in the documentation
72+
and submitting [bug reports][issues]
73+
about things that do not work, are not clear, or are missing.
74+
If you are looking for ideas, please see the 'Issues' tab for
75+
a list of issues associated with this repository,
76+
or you may also look at the issues for [Data Carpentry][dc-issues],
77+
[Software Carpentry][swc-issues], and [Library Carpentry][lc-issues] projects.
78+
79+
Comments on issues and reviews of pull requests are just as welcome:
80+
we are smarter together than we are on our own.
81+
Reviews from novices and newcomers are particularly valuable:
82+
it is easy for people who have been using these lessons for a while
83+
to forget how impenetrable some of this material can be,
84+
so fresh eyes are always welcome.
85+
86+
## What *Not* to Contribute
87+
88+
Our lessons already contain more material than we can cover in a typical workshop,
89+
so we are usually *not* looking for more concepts or tools to add to them.
90+
As a rule,
91+
if you want to introduce a new idea,
92+
you must (a) estimate how long it will take to teach
93+
and (b) explain what you would take out to make room for it.
94+
The first encourages contributors to be honest about requirements;
95+
the second, to think hard about priorities.
96+
97+
We are also not looking for exercises or other material that will only run on one platform.
98+
Our workshops typically contain a mixture of Windows, macOS, and Linux users;
99+
in order to be usable,
100+
our lessons must run equally well on all three.
101+
102+
## Using GitHub
103+
104+
If you choose to contribute via GitHub, you may want to look at
105+
[How to Contribute to an Open Source Project on GitHub][how-contribute].
106+
To manage changes, we follow [GitHub flow][github-flow].
107+
Each lesson has at least two maintainers who review issues and pull requests or encourage others to do so.
108+
The maintainers are community volunteers and have final say over what gets merged into the lesson.
109+
To use the web interface for contributing to a lesson:
110+
111+
1. Fork the originating repository to your GitHub profile.
112+
2. Within your version of the forked repository, move to the `gh-pages` branch and
113+
create a new branch for each significant change being made.
114+
3. Navigate to the file(s) you wish to change within the new branches and make revisions as required.
115+
4. Commit all changed files within the appropriate branches.
116+
5. Create individual pull requests from each of your changed branches
117+
to the `gh-pages` branch within the originating repository.
118+
6. If you receive feedback, make changes using your issue-specific branches of the forked
119+
repository and the pull requests will update automatically.
120+
7. Repeat as needed until all feedback has been addressed.
121+
122+
When starting work, please make sure your clone of the originating `gh-pages` branch is up-to-date
123+
before creating your own revision-specific branch(es) from there.
124+
Additionally, please only work from your newly-created branch(es) and *not*
125+
your clone of the originating `gh-pages` branch.
126+
Lastly, published copies of all the lessons are available in the `gh-pages` branch of the originating
127+
repository for reference while revising.
128+
129+
## Other Resources
130+
131+
General discussion of [Software Carpentry][swc-site], [Data Carpentry][dc-site], and [Library Carpentry][lc-site]
132+
happens on the [discussion mailing list][discuss-list],
133+
which everyone is welcome to join.
134+
You can also [reach us by email][email].
135+
136+
[email]: mailto:[email protected]
137+
[dc-issues]: https://github.com/issues?q=user%3Adatacarpentry
138+
[dc-lessons]: http://datacarpentry.org/lessons/
139+
[dc-site]: http://datacarpentry.org/
140+
[discuss-list]: https://carpentries.topicbox.com/groups/discuss
141+
[github]: https://github.com
142+
[github-flow]: https://guides.github.com/introduction/flow/
143+
[github-join]: https://github.com/join
144+
[how-contribute]: https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github
145+
[issues]: https://guides.github.com/features/issues/
146+
[swc-issues]: https://github.com/issues?q=user%3Aswcarpentry
147+
[swc-lessons]: https://software-carpentry.org/lessons/
148+
[swc-site]: https://software-carpentry.org/
149+
[c-site]: https://carpentries.org/
150+
[lc-site]: https://librarycarpentry.org/
151+
[lc-issues]: https://github.com/issues?q=user%3Alibrarycarpentry

bin/boilerplate/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# FIXME Lesson title
2+
3+
[![Create a Slack Account with us](https://img.shields.io/badge/Create_Slack_Account-The_Carpentries-071159.svg)](https://slack-invite.carpentries.org/)
4+
5+
This repository generates the corresponding lesson website from [The Carpentries](https://carpentries.org/) repertoire of lessons.
6+
7+
## Contributing
8+
9+
We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any
10+
questions, concerns, or experience any difficulties along the way.
11+
12+
We'd like to ask you to familiarize yourself with our [Contribution Guide](CONTRIBUTING.md) and have a look at
13+
the [more detailed guidelines][lesson-example] on proper formatting, ways to render the lesson locally, and even
14+
how to write new episodes.
15+
16+
Please see the current list of [issues][FIXME] for ideas for contributing to this
17+
repository. For making your contribution, we use the GitHub flow, which is
18+
nicely explained in the chapter [Contributing to a Project](http://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project) in Pro Git
19+
by Scott Chacon.
20+
Look for the tag ![good_first_issue](https://img.shields.io/badge/-good%20first%20issue-gold.svg). This indicates that the maintainers will welcome a pull request fixing this issue.
21+
22+
23+
## Maintainer(s)
24+
25+
Current maintainers of this lesson are
26+
27+
* FIXME
28+
* FIXME
29+
* FIXME
30+
31+
32+
## Authors
33+
34+
A list of contributors to the lesson can be found in [AUTHORS](AUTHORS)
35+
36+
## Citation
37+
38+
To cite this lesson, please consult with [CITATION](CITATION)
39+
40+
[lesson-example]: https://carpentries.github.io/lesson-example

bin/boilerplate/_config.yml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
#------------------------------------------------------------
2+
# Values for this lesson.
3+
#------------------------------------------------------------
4+
5+
# Which carpentry is this ("swc", "dc", "lc", or "cp")?
6+
# swc: Software Carpentry
7+
# dc: Data Carpentry
8+
# lc: Library Carpentry
9+
# cp: Carpentries (to use for instructor traning for instance)
10+
# incubator: Carpentries Incubator
11+
carpentry: "swc"
12+
13+
# Overall title for pages.
14+
title: "Lesson Title"
15+
16+
# Life cycle stage of the lesson
17+
# See this page for more details: https://cdh.carpentries.org/the-lesson-life-cycle.html
18+
# Possible values: "pre-alpha", "alpha", "beta", "stable"
19+
#
20+
# Lessons that are going through the transition to the
21+
# Carpentries Workbench will go through 3 steps:
22+
# 'transition-step-1': notice indicating a new version
23+
# 'transition-step-2': notice encouraging to use new version
24+
# 'transition-step-3': notice indicating the lesson is deprecated,
25+
# with automated redirect
26+
life_cycle: "pre-alpha"
27+
28+
# For lessons in the life stages in 'transition-step-1' or later:
29+
# - 'transition_url' holds the URL for the version of the lesson that
30+
# uses the Workbench (needed for all 3 steps)
31+
# - 'transition_date' (in yyyy-mm-dd format) is the date when the lesson
32+
# will transition to being deprecated. The date only needs to be decided
33+
# when the lesson is in 'transition-step-2'.
34+
transition_url:
35+
transition_date:
36+
37+
#------------------------------------------------------------
38+
# Generic settings (should not need to change).
39+
#------------------------------------------------------------
40+
41+
# What kind of thing is this ("workshop" or "lesson")?
42+
kind: "lesson"
43+
44+
# Magic to make URLs resolve both locally and on GitHub.
45+
# See https://help.github.com/articles/repository-metadata-on-github-pages/.
46+
# Please don't change it: <USERNAME>/<PROJECT> is correct.
47+
repository: <USERNAME>/<PROJECT>
48+
49+
# Email address, no mailto:
50+
51+
52+
# Sites.
53+
coc: "https://docs.carpentries.org/policies/coc/"
54+
amy_site: "https://amy.carpentries.org/"
55+
carpentries_github: "https://github.com/carpentries"
56+
carpentries_pages: "https://carpentries.github.io"
57+
carpentries_site: "https://carpentries.org/"
58+
dc_site: "https://datacarpentry.org"
59+
example_repo: "https://github.com/carpentries/lesson-example"
60+
example_site: "https://carpentries.github.io/lesson-example"
61+
lc_site: "https://librarycarpentry.org/"
62+
swc_github: "https://github.com/swcarpentry"
63+
swc_pages: "https://swcarpentry.github.io"
64+
swc_site: "https://software-carpentry.org"
65+
template_repo: "https://github.com/carpentries/styles"
66+
training_site: "https://carpentries.github.io/instructor-training"
67+
workshop_repo: "https://github.com/carpentries/workshop-template"
68+
workshop_site: "https://carpentries.github.io/workshop-template"
69+
cc_by_human: "https://creativecommons.org/licenses/by/4.0/"
70+
71+
# Surveys.
72+
pre_survey: "https://carpentries.typeform.com/to/wi32rS#slug="
73+
post_survey: "https://carpentries.typeform.com/to/UgVdRQ#slug="
74+
instructor_pre_survey: "https://carpentries.typeform.com/to/QVOarK#slug="
75+
instructor_post_survey: "https://carpentries.typeform.com/to/cjJ9UP#slug="
76+
77+
# Set to 'true' for instructor training websites only.
78+
instructor_training: false
79+
80+
# Start time in minutes (0 to be clock-independent, 540 to show a start at 09:00 am).
81+
start_time: 0
82+
83+
# Specify that things in the episodes collection should be output.
84+
collections:
85+
episodes:
86+
output: true
87+
permalink: /:path/index.html
88+
extras:
89+
output: true
90+
permalink: /:path/index.html
91+
92+
# Set the default layout for things in the episodes collection.
93+
defaults:
94+
- values:
95+
root: .
96+
layout: page
97+
- scope:
98+
path: ""
99+
type: episodes
100+
values:
101+
root: ..
102+
layout: episode
103+
- scope:
104+
path: ""
105+
type: extras
106+
values:
107+
root: ..
108+
layout: page
109+
110+
# Files and directories that are not to be copied.
111+
exclude:
112+
- Makefile
113+
- bin/
114+
- .Rproj.user/
115+
- .vendor/
116+
- vendor/
117+
- .docker-vendor/
118+
119+
# Turn on built-in syntax highlighting.
120+
highlighter: rouge

0 commit comments

Comments
 (0)