-
Notifications
You must be signed in to change notification settings - Fork 228
File Management
Contents of this page:
Lesson materials are saved in the following directories on ph-submissions:
EN:
/en
/en/drafts
/en/drafts/originals
/en/drafts/translations
/en/published
/en/published/originals
/en/published/translations
ES:
/es
/es/borradores
/es/borradores/originales
/es/borradores/traducciones
/es/publicadas
/es/publicadas/originales
/es/publicadas/traducciones
FR:
/fr
/fr/en-cours
/fr/en-cours/originales
/fr/en-cours/traductions
/fr/publiees
/fr/publiees/originales
/fr/publiees/traductions
PT:
/pt
/pt/esbocos
/pt/esbocos/originais
/pt/esbocos/traducoes
/pt/publicadas
/pt/publicadas/originais
/pt/publicadas/traducoes
As part of our commitment to global accessibility, we keep content on our site 'light' to avoid slow-loading for readers with lower internet speeds or less computing power. We've agreed on a maximum image size of 840 pixels on the longest edge.
Originals
- Create an images directory named to match the
lesson-slug
exactly - Note of the order of images in the lesson, rename each one in sequence following our Image Naming Conventions
- Check image sizes, resize if necessary (max. 840px on longest edge)
- Upload directory to /images
- Return to the Markdown file, update filenames in liquid syntax as necessary
Translations
- Navigate to the original lesson's /images directory (named to match the
original-lesson-slug
) - Note any new images created for the translation, rename each one in sequence following our Image Naming Conventions
- Check any new image sizes, resize if necessary (max. 840px on longest edge)
- Upload new images to the original lesson's /images directory
- Return to the Markdown file, update filenames in liquid syntax as necessary
Sub-directories should be named to match the lesson-file-name (slug:
) exactly.
Datasets include for example a CSV file, or a directory of images for analysis. The maximum size of data assets hosted on our GitHub repository is 25 MB.
Notebooks
If authors choose, they may create a notebook as a supplementary resource to support teaching and learning, after Phase 4 Open Peer Review is complete. Notebooks associated with lessons are hosted within our infrastructure so that we can manage them as assets and ensure their sustainability.
To support this, we’ve developed some guidelines for authors who choose to integrate notebooks in their lessons. Our aim is to ensure effective maintenance, future translatability, and flexible usability.
These guidelines are based on a key understanding that we want our readers to be able to make the choice to work either in Google Colab, in their preferred alternative cloud-based development environment, or opt to run the code locally.
If authors provide notebooks to accompany their lesson, we ask that notebooks:
- Consist of the code + essential line comments only (do not replicate nor extend commentary from the lesson)
- Mirror the headings and subheadings of the lesson, to support readers' navigation
Notebooks in ph-submissions:
- Authors may share with us an
.ipynb
file or a link to their notebook in Google Colab. If the latter, we download it from Google Colab as an.ipynb
file. Authors should ensure they have cleared all cell outputs before preparing their file. - We upload this file to the lesson's assets folder by copy and pasting the raw code from a local text editor (TextEdit on Mac, Atom...), and name the file
lesson-slug.ipynb
. - Before committing this first upload, we insert a snippet of code which will generate the
Open in Colab
button at the top of the file:
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "view-in-github"
},
"source": [
"<a href=\"https://colab.research.google.com/github/programminghistorian/ph-submissions/blob/gh-pages/assets/lesson-slug/lesson-slug.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
Remember to change the
lesson-slug
placeholder in the link!
- The snippet of code above should be pasted in directly after the first two lines of raw code of the original notebook, which should look like this:
{
"cells": [
- If the code appears different in a particular notebook, we may need to experiment with the positioning of the Button code. In all cases, it can be helpful to paste the code into a JSON validator to ensure everything is formatted correctly.
- The notebook can then be committed to
/assets/lesson-slug
alongside any other assets (as part of the work that the Publishing Assistant and Publishing Manager do to process new lesson materials) - Links to the notebook within draft lessons will take the form:
https://github.com/programminghistorian/ph-submissions/blob/gh-pages/assets/lesson-slug/lesson-slug.ipynb
Editing notebooks in ph-submissions
- Although it's possible to edit the notebooks' raw code directly in GitHub by clicking Edit File (or the pen icon), this is not intuitive or easily navigable. This option should be reserved for small changes that can be searched through using
control + F
(e.g. typos, single words, etc.). - For complex edits, authors are encouraged to either download the
.ipynb
file from the assets or click theOpen in Colab
button, make their changes in their preferred environment, and send a new copy of the.ipynb
file to the Publishing Assistant via email. - The Publishing Assistant can upload the new file by copy and pasting the raw code: this will ensure the changes are visible through GitHub's 'rich diff' function.
Notebooks in Jekyll:
- The
.ipynb
file is uploaded to/assets/lesson-slug
in a PR that precedes the PR to publish the lesson. This is important, because we want to be able to include an external, live link to this file in the lesson: so the notebook must already be published before that build. - During this first PR, the link in the
Open in Colab
button must be edited slightly to replaceph-submissions
withjekyll
. - The live link is rendered using https://nbviewer.org/: links to the notebook within published lessons will take the form:
https://nbviewer.org/github/programminghistorian/jekyll/blob/gh-pages/assets/lesson-slug/lesson-slug.ipynb
. This must be edited throughout the lesson during the second PR to publish the lesson and its other associated files.
--
- Copyediting
- Copyedit comments
- Typesetting
- Archival Hyperlinks
- Copyright
- DOI
- Gallery image
- Checklist comment
- Handover comment
- Closing comment
- Opening comment Phase 0
- Phase change comment 1 to 2
- Phase change comment 2 to 3
- Phase change comment 3 to 4
- Opening comment Phase 4
- Phase change comment 4 to 5
- Phase change comment 5 to 6
- Phase change comment 6 to 7
- Tracking lesson phase changes
- Organisational Structure
- Trustee Responsibilities
- Trustee and Staff Roles
- Services to Publications
- Funding
Training
- Onboarding-Process-for-New-Editors
- Leading-a-Shadowing-process
- Board-of-Director---Continuing-Development
The Ombudsperson Role
Technical Guidance
- Making Technical Contributions
- Creating Blog Posts
- Service Integrations
- Brand Guidelines
- French Translation Documentation
- Technical Tutorial on Translation Links
- Technical Tutorial on Setting Up a New Language
- Technical Tutorial on Search
- Twitter Bot
- Achieving-Accessibility-Alt-text-Colour-Contrast
- Achieving-Accessibility:-Training-Options
Editorial Guidance
- Achieving Sustainability: Copyediting, Typesetting, Archival Links, Copyright Agreements
- Achieving Sustainability: Lesson Maintenance Workflow
- Achieving Sustainability-Agreed-terminology-PH-em-português
- Training and Support for Editorial Work
- The-Programming-Historian-Digital-Object-Identifier-Policy-(April-2020)
- How to Request a New DOI
- Service-Agreement-Publisher-and-Publications
- ProgHist-services-to-Publications
- Technical Tutorial on Setting Up a New Language
- Editorial Recruitment
Social Guidance
Finances
- Project Costs
- Spending-Requests-and-Reimbursement
- Funding Opportunities
- Invoice Template
- Donations and Fundraising Policies
Human Resources
- Privileges-and-Responsibilities-of-Membership
- Admin-when-team-members-step-down
- Team-Leader-Selection-Process
- Managing-Editor-Handover
- Checklist-for-Sabbaticals
- New Publications Policy
- Parental-Leave-Policy
Project Management
Project Structure
Board of Trustees