https://github.com/abought/swc-site
Software Carpentry web site.
Science Score: 18.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.2%) to scientific vocabulary
Repository
Software Carpentry web site.
Basic Info
- Host: GitHub
- Owner: abought
- License: other
- Language: TeX
- Default Branch: master
- Size: 80.7 MB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Software Carpentry Web Site
This repository holds the source for
the Software Carpentry web site.
Home pages for workshops are not stored in this repository:
if you want to create one,
please see the instructions in the bc repository.
Contributing
Software Carpentry is an open source/open access project, and we welcome contributions of all kinds. By contributing, you are agreeing that Software Carpentry may redistribute your work under these licenses.
Software Carpentry uses a development workflow similar to that of AstroPy and many other open source projects. The AstroPy docs have excellent sections on:
Cloning
To build this web site,
you will need to clone git@github.com:swcarpentry/site.git,
and then clone the submodule https://github.com/swcarpentry/v4.git.
Note: this repository takes up roughly 360 MBytes
(including what's in .git),
and the Version 4 lesson materials add another 300 MBytes.
Building
Building the web site requires:
Python packages can be installed using:
~~~ $ pip install -r requirements.txt ~~~
We use Jekyll because it's what GitHub uses; we use Python because most of our volunteers speak it.
- Type
maketo see a list of all available commands. - Type
make cacheto fetch information about upcoming workshops. This must be done before building the web site. - Type
make siteto build everything in_sitefor testing. (Depending on your machine, this takes about 10-15 seconds.) - Type
make cleanbefore re-doingmake site, to prepare the environment to build again.
We try to use the same MarkDown interpreters as GitHub does for consistency. On OS X, we suggest you use a recent Ruby to get access to these. If you don't have Homebrew or MacPorts installed, here's a quick recipe to get started using HomeBrew.
~~~ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install ruby gem install jekyll gem install RedCloth ~~~
Design Notes
- We generate our own RSS feed (in
feed.xml) and blog home page because Jekyll insists on using_posts/YYYY-MM-DD-name.html, and we don't want to have hundreds of files in one directory. - Workshop pages for old workshops
are stored in the
workshopsdirectory of this repository, since there's little point in creating repos for them. New workshops should be created using the process described below.
Adding Workshops
Old workshops' home pages are stored in workshops/yyyy-mm-dd-site/index.html.
Newer workshops' home pages are stored in their own repositories on GitHub.
The make target make cache runs the program bin/get_workshop_info.py
which reads a list of GitHub repository URLs from the file config/workshop_urls.yml
and (re-)creates the file ./_workshop_cache.yml.
That file is then used to build ./index.html, workshops/index.html, and so on.
To add another GitHub-hosted workshop to this web site,
simply add a line to config/workshop_urls.yml.
Please keep these ordered by date.
Blogging
To create a new blog post:
- Fork this repository on GitHub, and clone that to your desktop.
- Create a file
blog/YYYY/MM/post-name.html, whereYYYYis a four-digit year andMMis a two-digit month. - Fill in the metadata at the top of the file:
-
layoutmust beblog. -
authormust be the author's name. (It does not need to be quoted.) -
titleis the post title. -
datethe date of the post (in YYYY-MM-DD format). -
timemust be an HH:MM:TT clock time. Use 09:00:00 for the first post on a particular day, 10:00:00 for the second, and so on, so that posts can be ordered. -
categorymust be a list of category identifiers, e.g.,["Euphoric State University", "Assessment"]You can run the commandmake categoriesto get a list of existing category names.
-
- Use HTML to write the post.
- Use
<!-- start excerpt -->and<!-- end excerpt -->to mark a paragraph or two at the start as the excerpt to show in feed readers. - If you need to refer to our email address, it is
{{page.contact}}. - If you need to another post, or something else on the site, use
{{page.root}}/path/to/file. - We also provide
{{site.site}}(the base URL for the site),{{site.twitter_name}},{{site.twitter_url}},{{site.facebook_url}},{{site.google_plus_url}}, and{{site.rss_url}}(all of which should be self-explanatory), and{{site.msl_url}}for the Mozilla Science Lab's web site.
- Use
- Please add any images your blog post needs to the same blog/YYYY/MM directory as the post itself. Please use lower-case names without special characters for image files.
-
makein the root directory will list available commands;make sitewill rebuild the web site in the_sitedirectory. Open_site/index.htmlto see your post on the blog's home page,_site/blog/index.htmlto see it on the blog home page, and_site/YYYY/MM/post-name.htmlto see the post itself. - When you're satisfied with your post,
git add path/to/postandgit commit -m "Adding a blog post about something or other"will commit it to your local copy (on your laptop). -
git push origin masterwill push it to your clone on GitHub (assuming you've added your fork on GitHub as a remote calledorigin). - Go to GitHub and issue a pull request from your clone to
swcarpentry/website, then assign it to@gvwilsonor@amyrbrownfor proof-reading.
Available Commands
-
archive_verb: collect and archive workshop information from GitHub and store in local cache (verbose). -
archive: collect and archive workshop information from GitHub and store in local cache. -
authors: list all blog post authors. -
biblio: make HTML and PDF of bibliography. -
cache_verb: collect workshop information from GitHub and store in local cache (verbose). -
cache: collect workshop information from GitHub and store in local cache. - `categories : list all blog category names.
-
check: check consistency of workshop info, urls and other. -
clean: clean up. -
commands: show all commands (the default). -
dev: build into development directory on server. -
install: build into installation directory on server. -
links: check links. -
sterile: really clean up. -
site: build locally into _site directory for checking. -
valid: check validity of HTML.
The Details
make site, make dev, and make install do the following:
- Run
bin/preprocess.pyto create the./_config.ymlfile required by Jekyll and the_includes/recent_blog_posts.htmlfile containing excerpts of recent blog posts. This tool collects metadata about blog posts and workshops and combines it with static configuration information. - Run Jekyll to build the web site.
- Run
bin/make_rss_feed.pyto generate the RSS feed filefeed.xml. - Run
bin/make_calendar.pyto generate the ICal calendar fileworkshops.ics. - Copy
./_htaccessto create the.htaccessfile for the web site.
Badges
Software Carpentry uses Open Badges to recognize people's skills and accomplishments. To create badges, you must install PyPNG module:
~~~ $ pip install pypng ~~~
Use bin/badge-create.py to create a new badge:
~~~ $ python bin/badge-create.py --username abbrev.name --email name@site.com --kind instructor ~~~
The badges scripts in bin should be compatible with Python2 and Python3.
To bake the badge we use bin/badgebakery.py which was provided by the Open Badge Team.
To validate a badge:
- Build this repository.
- Setup a local copy of Open Badges Validator.
- Setup a virtual server that responde to http://software-carpentry.org with the
content of
_site. - Add "127.0.1.1 software-carpentry.org localhost" to
/etc/hosts. - Open your local copy of Open Badges Validator with a web browser and follow the steps.
Owner
- Name: Andy Boughton
- Login: abought
- Kind: user
- Location: United States
- Company: @statgen
- Repositories: 27
- Profile: https://github.com/abought
Citation (CITATION)
To reference Software Carpentry in publications, please cite both of the following:
Greg Wilson: "Software Carpentry: Getting Scientists to Write Better
Code by Making Them More Productive". Computing in Science &
Engineering, Nov-Dec 2006.
Greg Wilson: "Software Carpentry: Lessons Learned". arXiv:1307.5448,
July 2013.
@article{wilson-software-carpentry-2006,
author = {Greg Wilson},
title = {Software Carpentry: Getting Scientists to Write Better Code by Making Them More Productive},
journal = {Computing in Science \& Engineering},
month = {November--December},
year = {2006},
}
@online{wilson-software-carpentry-2013,
author = {Greg Wilson},
title = {Software Carpentry: Lessons Learned},
version = {1},
date = {2013-07-20},
eprinttype = {arxiv},
eprint = {1307.5448}
}