Skip to content
The Origami website
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Fix the build-tools command (#100) Apr 15, 2019
_components Add branding to the spec. (#106) Apr 29, 2019
_data Update component data [ci skip] Mar 13, 2019
_emails
_includes Update header.html (#105) Apr 15, 2019
_layouts
_posts Correct o-video link (#108) Apr 30, 2019
_principles Update external links. (#89) Mar 8, 2019
_services
_specification-v1
_tutorials Fix the build-tools command (#100) Apr 15, 2019
assets
pages Easter egg (#102) Apr 15, 2019
scripts
.gitignore Add blogpost to announce new design/content. (#92) Mar 11, 2019
.pa11yci.js Add the structure for a blog (#22) Nov 14, 2018
CNAME
Gemfile Manual build tutorial (#10) Aug 15, 2018
Gemfile.lock Principles (#47) Feb 11, 2019
Makefile Fix the Pa11y tests (#103) Apr 15, 2019
README.md use correct extension in the steps Mar 29, 2019
Rakefile
_config.yml
app.json Add Heroku generated app.json Aug 10, 2018
package-lock.json Fix the Pa11y tests (#103) Apr 15, 2019
package.json Fix the Pa11y tests (#103) Apr 15, 2019
static.json Create static.json Aug 10, 2018

README.md

Origami CircleCI MIT licensed

This is the source code for the Origami website as well as a place to open up issues on Origami as a whole. Please visit origami.ft.com if you're looking for the documentation.

Editing this site

This is a rough guide to editing this site, and where the content lives.

Static pages

Single static pages live in the pages folder. These each have permalink frontmatter set to indicate where the rendered page will live on the site. We store them in this folder to avoid cluttering up the root path of the repo.

Technical documentation pages

The actual documentation for Origami lives in the _components, _services, _principles, and _tutorials folders. This should contain an easier-to-digest version of the Origami specification as well as in depth guides on how to use Origami.

Specification pages

The formal Origami specification lives in the _specification folder.

Blog posts

Blog posts live in the _posts folder and the file names are prefixed with the post date. Posts can include an author frontmatter value to signify who wrote the post, and an array of tags which are displayed alongside the post. The description frontmatter is particularly important for blog posts as it is displayed as a preview on the blog listing.

Newsletter blog posts must have an accompanying email, this is outlined in the section "Authoring and sending a newsletter".

Authoring and sending a newsletter

Writing the Origami monthly newsletter extends the instructions for blog posts, as we also publish an email to the FT's Product and Technology department. The guide here won't cover the content of the newsletter, see the original proposal for that.

The process:

  1. Branch off of master and create the required files. The format for the newsletter is strict, and you should probably copy an older newsletter to make sure it's correct. You need to create two files in this repo, replacing the date as appropriate (set to the expected published date): - _posts/YYYY-MM-DD-newsletter.md: for the blog post on the website - _emails/newsletter-YYYY-MM.html: for the email we distribute

  2. Write the newsletter. This is best done in the blog post, as this is standard Markdown. The email newsletter relies on some pretty gross Liquid templating to ensure that we avoid copy/paste errors in the HTML. Sorry. The email also has required front-matter: a title which becomes the subject of the email, and companion_post_url which is used to link to the blog post and should be the full URL.

  3. Open a pull-request on this repo, and get it approved by another member of the team. Once approved, merge into master. This must be done on or after the publish date indicated by the post file name. The blog post is now published, check it on the live site.

  4. Now you'll need to review and publish the email, this is done in a locally cloned copy of the repo (this step may be automated later when we have confidence in the email format). You'll need to have npm dependencies installed: npm install

  5. Run the following command: EMAIL_SOURCE_HTML=YYYY-MM make email-generate, where YYYY and MM correspond to the year and month of the newsletter. This will output details of the email that is to be sent including links to review the conent. It is very important to review these files, the HTML in-browser and the plain text in a text editor. If you want to test the newsletter email prior to publishing, you can use the a EMAIL_LOCAL=true environment variable, though it is not possible to actually send an email with this variable added.

  6. Once reviewed, run the following command to send the email: EMAIL_SOURCE_HTML=YYYY-MM EMAIL_RECIPIENTS=XX@XX EMAIL_API_KEY=XXXXXX make email-generate-and-send, where YYYY and MM correspond to the year and month of the newsletter, XX@XX is the recipient email, and XXXXXX is an email platform API key (you can find this in the shared Origami lastpass).

  7. The email is sent! Enjoy

Running locally

You'll need Ruby, Bundler and Node.js installed for this.

  1. Install dependencies: make install
  2. Build and serve the site: make serve
  3. Visit http://localhost:4000/
You can’t perform that action at this time.