Certbot Website
Website for EFF's Certbot project. Uses Jekyll for static site generation.
Development
With Docker
- Clone this repo and cd into the project directory.
- Get the documentation submodule:
git submodule init
git submodule update
docker-compose up
Docker-compose serves the site with nginx to more closely mirror production.
Without Docker
Install
- Install
ruby 2.0+
,node 8.0+
, andnpm 2.0+
. gem install jekyll
(requires v3.0 or higher)sudo npm install gulp-cli -g
npm install
If you want to build a copy of the documentation for your local mirror of the Cerbot website, also do:
git submodule init
git submodule update
./_docs.sh depend
- Install
pdflatex
e.g. viasudo apt install texlive texlive-latex-extra
Run
To watch for changes and reload assets as needed via BrowserSync:
gulp watch
To build the site once:
gulp build
To build for production (minified javascript, no source maps):
gulp build --env production
The environment can also be set in the NODE_ENV environment variable. See https://github.com/gunpowderlabs/gulp-environments.
Editing content
Basic pages
Most pages can be edited as markdown files.
Use /index.html
to edit the homepage.
Use /[RELATIVE_URL]/index.html
to edit internal pages.
Hosting providers list
- Make sure to fill out the
name
,link
,category
, andreviewed
fields. reviewed
should be a date in format2019.7.11
.link
is usually a link to the provider's main page; it's where clicking on the name will go.- for
category
, see descriptions here. - for
full
/partial
categories, one of the links provided should have evidence of being in that category. - only one of
tutorial
,announcement
,plan
will show up, in that order. partial
should havetutorial
.full
providers shouldn't need a tutorial to turn on https. an exception might include instructions of what to do if something goes wrong and the automatic https doesn't work.- if one provider offers multiple products, either split into two entries or note it in the
note
field. - the
note
field is good for things like noting which products have https, or that the site is available only in certain languages. it's not meant for advertising. - all unused fields should be
""
Installation instructions
Are generated by JavaScript with
Mustache, and can be edited in
_scripts/instruction-widget
.
FAQ
FAQ entries are a Jekyll collection. Add FAQ entries (question and answer pairs) as markdown files to the _faq_entries
directory.
FAQ entries require two variables to be set in the front matter:
- title: the "Question" the FAQ entry answers
- weight: the position of this entry on the page - lighter FAQ entries will float to the top.
Testing
Certbot/website uses html-proofer to validate the html output of the build.
To install:
gem install html-proofer
To run the tests:
npm test
(Files with known issues are ignored.)
Travis Builds
All branches and pull requests and built and tested by Travis.
For branches, the built assets are pushed to an analagous branch in certbot/website-builds. Built assets from PRs are not saved because Travis doesn't provide a mechanism to securely push to a Github repo after PRs across forks.
To view the build of any branch, checkout that branch from certbot/website-builds and run some server to serve the files. For example,
python -m SimpleHTTPServer 8000