{"id":28780982,"url":"https://github.com/andreww/2016-01-01-dummyloc","last_synced_at":"2026-02-02T01:04:51.189Z","repository":{"id":23143256,"uuid":"26498457","full_name":"andreww/2016-01-01-dummyloc","owner":"andreww","description":"A dummy SWC website using the new template","archived":false,"fork":false,"pushed_at":"2014-11-11T18:45:04.000Z","size":132,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"gh-pages","last_synced_at":"2025-09-09T07:26:32.835Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreww.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-11T18:31:43.000Z","updated_at":"2014-11-11T18:31:43.000Z","dependencies_parsed_at":"2022-08-21T19:31:13.416Z","dependency_job_id":null,"html_url":"https://github.com/andreww/2016-01-01-dummyloc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andreww/2016-01-01-dummyloc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreww%2F2016-01-01-dummyloc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreww%2F2016-01-01-dummyloc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreww%2F2016-01-01-dummyloc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreww%2F2016-01-01-dummyloc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreww","download_url":"https://codeload.github.com/andreww/2016-01-01-dummyloc/tar.gz/refs/heads/gh-pages","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreww%2F2016-01-01-dummyloc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28998208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T23:10:54.274Z","status":"ssl_error","status_checked_at":"2026-02-01T23:10:47.298Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-17T18:09:02.315Z","updated_at":"2026-02-02T01:04:51.182Z","avatar_url":"https://github.com/andreww.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# workshop-template\n\nThis repository is the template for\n[Software Carpentry](http://software-carpentry.org) workshop websites.\nDo *not* fork it directly on GitHub to create a website for your\nworkshop; instead, follow the instructions below.\n\n**Note:**\n\n1.  If you are teaching Git in your workshop, you should create *two*\n    repositories: one for your workshop's website, and one for\n    learners to clone and update during your lessons.  You should not\n    try to use the same repo for both purposes because:\n\n    1.  your workshop website probably contains a lot of files that\n        most learners don't need to see during the lesson, and\n\n    2.  you probably don't want to accidentally merge a damaging pull\n        request from a novice Git user into your workshop's website\n        while you are using it to teach.\n\n2.  You will need to install Jekyll 1.0.3 or later in order to preview\n    things locally.  If you have Ruby installed on your computer, this\n    *should* be as simple as:\n\n    ~~~\n    $ gem install github-pages\n    ~~~\n\n    or if that doesn't work:\n\n    ~~~\n    $ gem install jekyll\n    $ gem install kramdown\n    ~~~\n\n    (We use Kramdown for translating Markdown instead of the default\n    Redcarpet because Kramdown will handle Markdown inside HTML\n    blocks).\n\n## Summary\n\n**Note: the website creation script mentioned below does not work properly yet.  Please follow the \"by hand\" instructions instead.**\n\n1.   Download the workshop website creation script from [http://files.software-carpentry.org/create](http://files.software-carpentry.org/create).  **Note:** this script has *not* been uploaded yet, since we're waiting for a few bugs to be fixed first.\n2.   Make sure that you are *not* inside another Git repository.\n3.   Run that script with no parameters - it will print a help message telling you what parameters it needs.\n4.   Run the script with those parameters.\n5.   Go into your newly-created repository.\n6.   Edit `index.html`.  (Hints are embedded in the file, and full instructions are below.)\n7.   Check your changes by running `tools/check` inside your repository.\n8.   Preview your changes by running `tools/preview` and looking at `_site/index.html`.\n9.   When it all looks good, commit your changes and push to the `gh-pages` branch of your repository.\n10.  Send the workshop coordinators the URL for your GitHub repository (*not* the URL for the workshop website).\n\nIf the identifier for your workshop is `2015-07-01-esu`, and your\nGitHub username is `ghopper`, your workshop repository will be\n`https://github.com/ghopper/2015-07-01-esu` and the website for your\nworkshop will be `https://ghopper.github.io/2015-07-01-esu`.\n\n## If You Want To Do Things By Hand\n\nYou can set up your repository manually instead of using the `create`\nscript.  As above, we will assume that your user ID is `ghopper` and\nthe identifier for your workshop is `2015-07-01-esu`.\n\n1.   Create an empty repository on GitHub called `2015-07-01-esu`.\n2.   Clone it to your desktop using `git clone git@github.com:/ghopper/2015-07-01-esu`.\n3.   Go into that directory using `cd 2015-07-01-esu`.\n4.   Add this repository as a remote called `upstream` using `git remote add upstream git@github.com:swcarpentry/workshop-template`.\n5.   Checkout a branch called `gh-pages` using `git checkout -b gh-pages`.\n6.   Pull content from this repository using `git pull upstream gh-pages`.\n7.   Edit `index.html`.  (Hints are embedded in the file, and full instructions are below.)\n8.   Check your changes by running `tools/check` inside your repository.\n9.   Preview your changes by running `tools/preview` and looking at `_site/index.html`.\n10.  When it all looks good, commit your changes and push to the `gh-pages` branch of your repository.\n11.  Manually add the other instructors as collaborators to your Github repository.\n12.  Send the workshop coordinators the URL for your GitHub repository (*not* the URL for the workshop website).\n\n## Background\n\nThere are a few things you need to know in order to understand why we\ndo things the way we do.  Some of them are specific to GitHub, rather\nthan Git itself.\n\n1.  Git uses the term \"clone\" to mean \"a copy of a repository\".\n    GitHub uses the term \"fork\" to mean, \"a copy of a GitHub-hosted\n    repo that is also hosted on GitHub\", and the term \"clone\" to mean\n    \"a copy of a GitHub-hosted repo that's located on someone else's\n    machine\".  In both cases, the duplicate has a remote called\n    `origin` that points to the original repo; other remotes can be\n    added manually.\n\n2.  A user on GitHub can only have one fork of a particular repo.\n    This is a problem for us because an instructor may be involved in\n    several workshops, each of which has its own website repo.  Those\n    website repositories ought to be forks of this one, but since\n    GitHub doesn't allow that, we've had to find a workaround.\n\n3.  If a repository has a file called `README.md` in its root\n    directory, GitHub displays that file on the repository's home\n    page.\n\n4.  If a repository has a branch called `gh-pages` (which stands for\n    \"GitHub pages\"), then GitHub uses the HTML and Markdown files in\n    that branch to create a website for the repository.  If the\n    repository's URL is `http://github.com/darwin/finches`, the URL\n    for the website is `http://darwin.github.io/finches`.\n\n5.  If an HTML or Markdown file has a header consisting of three\n    dashes, some data about the page, and three more dashes:\n\n    ~~~\n    ---\n    key: value\n    other_key: other_value\n    ---\n    stuff in the page\n    ~~~\n\n    then GitHub doesn't just copy the file over verbatim.  Instead, it\n    runs the file through a translator called\n    [Jekyll](https://en.wikipedia.org/wiki/Jekyll_%28software%29) that\n    looks for specially-formatted commands embedded in the file and uses\n    them to fill in the page.\n\n6.  Commands can be embedded in the body of a page.  One is\n    {% raw %}{% include something.html %}{% endraw %}, which tells\n    Jekyll to copy the contents of `something.html` into the file\n    being translated; this is used to create standard headers and\n    footers for pages.  Another is `{{variable}}`: when Jekyll sees\n    this, it replaces it with the value of `variable`.  This is used\n    to insert things like a contact email address and the URL for our\n    Twitter account.\n\n7.  Jekyll gets variables from two places: a file called `_config.yml`\n    located in the repo's root directory, and the header of each\n    individual page.  Variables from `_config.yml` are put in an\n    object called `site`, and referred to as `site.variable`, so\n    `{{site.twitter_name}}` in a page is replaced by `@swcarpentry`.\n    Variables from the page's header are put in an object called\n    `page`, and referred to as `page.variable`, so if a page's header\n    defines a variable called `venue`, `{{page.venue}}` is replaced by\n    \"Euphoric State University\" (or whatever value the variable has).\n\n8.  If a page uses {% raw %}{% include something.html %}{% endraw %}\n    to include a snippet of HTML, Jekyll looks in a directory called\n    `_includes` to find `something.html`.  It always looks there, and\n    nowhere else, so anything we want people to be able to include in\n    their pages has to be stored in `_includes`.\n\n9.  A repository can have another special directory called `_layouts`.\n    If a page like `index.html` has a variable called `layout`, and\n    that variable's value is `standard.html`, Jekyll loads the file\n    `_layouts/standard.html` and copies the content of `index.html`\n    into it, then expands the result.  This is used to give the pages\n    in a site a uniform appearance.\n    We have created two layouts for workshop pages:\n\n    * `workshop.html` is used for workshops' home pages, and is the\n      layout for the `index.html` page in your repo's root directory.\n      That `index.html` page's header must [define several\n      variables](#variables) in order for your workshop to be included\n      in our main website.\n\n    * `page.html` is used for any other pages you want to create.\n\n## Variables\n\nYour workshop's `index.html` page *must* define the following values\nin its header:\n\n*   `layout` must be `workshop`.\n\n*   `root` must the path to the repository's root directory.  This is\n    '.' if the page is in the root directory (which `index.html` is).\n    In other pages, `root` is '..' if the page is one directory down,\n    '../..' if it is two levels down, and so on.\n\n*   `venue` is the short name of the institution or group hosting the\n    workshop, like \"Euphoric State University\".  It should *not*\n    include the address or other details, since this value is \n    displayed in a table on the main\n    [Software Carpentry](http://software-carpentry.org) website.\n\n*   `address` is the workshop's address (including details like the\n    room number.\n\n*   `country` must be a hyphenated title-cased country name like\n    'United-States'.  This is used to look up flags for display in the\n    main web site.\n\n*   `latlng` is the latitude and longitude of the workshop site (so we\n    can put a pin on our map).  You can use\n    [this site](http://itouchmap.com/latlong.html) to find these\n    values.  You can *not* put spaces around the comma separating the\n    latitude from the longitude.\n\n*   `humandate` is the human-friendly dates for the workshop.  Please\n    use three-letter month names and abbreviations (e.g., `Jul`\n    instead of `July`), since these values are displayed in a table on\n    the [Software Carpentry](http://software-carpentry.org) website.\n\n*   `startdate` is the workshop's starting date in YYYY-MM-DD format,\n    such as `2015-07-01`.  You must use four digits for the year and\n    two each for the month and day.\n\n*   `enddate` is the workshop's ending date in the same format.  If your\n    workshop is only one day long, the `enddate` field should be deleted.\n    If your workshop has a more complicated schedule (e.g., a half day a\n    week for four weeks), please delete the `enddate` field and only tell\n    us its start date.\n\n*   `instructor` is a comma-separated list of instructor names.  The\n    list must be enclosed in square brackets, and each name must be in\n    double quotes, as in `[\"Alan Turing\",\"Grace Hopper\"]`.  Do not\n    include other information (such as the word \"instructor\") in these\n    values.\n\n*   `helper` is a comma-separated list of helper names formatted in the\n    same way as the instructor names.  If there are no helpers, use an\n    empty list `[]`.\n\n*   `contact` is the contact email address to use for your workshop.\n    If you do not provide a contact email address, your website will\n    display the address for the workshop coordinators (who probably\n    won't be able to answer questions about the specific details of\n    your workshop).\n\nThe header may optionally define the following:\n\n*   `eventbrite` is the multi-digit Eventbrite registration key.  If you\n    are using Eventbrite, the admins will set this key for you.  If\n    you are using something else for registration, it may be deleted.\n    Note: this value must be given as a string in double quotes, rather\n    than as a number.\n\n*   `etherpad` is the URL for the Etherpad for your workshop.  If you are\n    not using an Etherpad, you can delete this value.\n\n## FAQ\n\n*   *Where can I get help?*\n\n    Mail us at [admin@software-carpentry.org](mailto:admin@software-carpentry.org),\n    or join our [discussion list](http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org)\n    and ask for help there.\n\n*   *Where can I report problems or suggest improvements?*\n\n    Please file an issue against [https://github.com/swcarpentry/workshop-template](this repository)\n    or [mail us](mailto:admin@software-carpentry.org).\n\n*   *Why does the workshop repository have to be created from scratch? Why not fork `workshop-template` on GitHub?*\n\n    Because any particular user can only have one fork of a repository,\n    but instructors frequently need to work on several workshops at once.\n\n*   *Why use Jekyll?  Why not some other markup language and some other converter?*\n\n    Because it's the default on GitHub.  If we're going to teach\n    people to use that site, we should teach them to use it as it is,\n    not as we wish it was.\n\n*   *What do I do if I see a `invalid byte sequence in ...` error when I run `tools/check`?*\n\n    Declare the `en_US.UTF-8` locale in your shell:\n\n    ~~~\n    $ export LC_ALL=en_US.UTF-8\n    $ export LANG=en_US.UTF-8\n    ~~~\n\n*   *What do I do if I see a `Conversion error` when I run `tools/check`?*\n\n    The error message may look something like this:\n\n    ~~~\n    Configuration file: d:/OpenCourses/swc/2013-10-17-round6.4/_config.yml\n            Source: d:/OpenCourses/swc/2013-10-17-round6.4\n       Destination: _site\n      Generating... c:/Ruby193/lib/ruby/gems/1.9.1/gems/posix-spawn-0.3.6/lib/posix/spawn.rb:162: wa\n    rning: cannot close fd before spawn\n    Conversion error: There was an error converting 'lessons/misc-biopython/fastq.md'.\n    done.\n    ~~~\n        \n    This is a [problem in Pygments.rb](http://stackoverflow.com/questions/17364028/jekyll-on-windows-pygments-not-working).\n    Uninstall pygments.rb 0.5.1 or 0.5.2, install 0.5.0.  For example, here's how you would\n    uninstall pygments 0.5.2 and restore version 0.5.0:\n\n    ~~~\n    $ gem uninstall pygments.rb --version \"=0.5.2\"\n    $ gem install pygments.rb --version \"=0.5.0\"\n    ~~~\n\n*   *Where should pages go if multiple workshops are running at a site simultaneously?*\n\n    Use subdirectories like `2015-07-01-esu/beginners`, so that main\n    directory names always follow our four-part convention.\n\n*   *What if I want to add more values to the page, like `address1` and `address2` for different rooms on different days?*\n\n    Go ahead, but you *must* have \n    [the variables described above](#variables).\n\n*   *What is the \"Windows installer\"?*\n\n    We have built a small installation helper for Windows that\n    installs `nano` and `sqlite`, adds R to the path, and so on.  It\n    is maintained in\n    [https://github.com/swcarpentry/windows-installer](https://github.com/swcarpentry/windows-installer),\n    which also has an up-to-date description of what it actually does.\n    The latest version is always available at\n    [http://files.software-carpentry.org/SWCarpentryInstaller.exe](http://files.software-carpentry.org/SWCarpentryInstaller.exe),\n    and contributions are always welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreww%2F2016-01-01-dummyloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreww%2F2016-01-01-dummyloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreww%2F2016-01-01-dummyloc/lists"}