-
Notifications
You must be signed in to change notification settings - Fork 227
Making Technical Contributions
If you intend to make a technical contribution to the underlying templates for this site, please make sure you follow the best practices outlined here.
(If you are looking to make a contribution or edit to the content of a lesson, see our contributor guidelines instead.)
These best practices assume that you are generally familiar with git, GitHub, and Jekyll.
We welcome contributions from everyone via Pull Request.
NOTE FOR CURRENT EDITORS: If you are already added as collaborators to this repository and are able to push commits directly, please feel free to commit minor changes (typo fixes etc.) directly. However, major additions involving moving or erasing files, editing Jekyll layouts or includes, or making structural changes to any YAML files, should be done via PR, so that another member of the team can review them before merging.
If you have any questions, create an issue and tag @mdlincoln.
This site is built via Jekyll, using GitHub Pages as a hosting service. This means that all code in this GitHub repo is processed by GitHub servers to produce the HTML pages that readers see. If you want to preview what this generated site looks like on your own computer, you need to make sure you are using the same versions of Jekyll and its dependencies that GitHub does.
- Set up Jekyll dependencies.
- Fork the programming historian repository, and clone that fork to your local machine.
- Ensure you have the "bundler" gem installed by running the command:
gem install bundler
-
cd
into your clone of the PH repository, and install all the necessary dependencies with the commandbundle install
- Run
bundle exec jekyll serve --watch
to generate the site and start a local webserver. You can then preview the local version of the site by going tohttp://localhost:4000
in your web browser.
If you only need to preview your modifications on your own local machine, then you do not need to make any edits to _config.yml
However, you may want to push changes on to your online fork of the repository in order to create a live preview of your site shareable with others.
If so you will need to temporarily add a baseurl
value to _config.yml
that matches the name of your forked repository. By default, your fork will be named jekyll
. (If you changed that fork name in your own repo settings, you will need to put that name in baseurl
instead.) Add the following line:
...
url: http://programminghistorian.org
basurl: jekyll
...
This will allow image links and redirect links to correctly point to your own published fork.
When submitting your pull request, be sure to remove the baseurl
line from _config.yml
Some files in this repository have non-ASCII characters such as ñ
. Some earlier versions of Git and OS X get confused by these Unicode characters, and will register that a file has changed when, in fact, none has. These errors can be addressed by running the following command:
git config --global core.precomposeunicode true
When in doubt, do not git add
files with special characters unless you are certain that you have created or modified them.
We use Travis CI and htmlproofer to check that the site builds properly, and that none of the internal or external links on the site are broken. When you make a pull request (and, as a collaborator, if you push any commit), Travis will automatically try to build the site and check for problems. This usually takes a minute or two after you push your work online, and the results will appear as a green check mark, or a red X.
If your build has an error, you can click on the "Details" button to view the build logs. If you scroll to the bottom, you'll see an error report that may list URLs that led to unresponsive pages. If you can see how to fix it, then do! Otherwise, one of the PH editors will help resolve the problem. All build and broken-link errors must be fixed before any changes can be merged in to the site.
- 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