Giter Club home page Giter Club logo

docs's Introduction

seL4 Documentation site.

These are the sources for the seL4 Documentation site located at https://docs.sel4.systems. It is for cooperatively developing and sharing documentation on seL4.

See CONTRIBUTING.md for information on how to contribute. TL;DR click edit on the page in GitHub, make your changes and then submit a pull request.

Ask on the mailing list or open an issue if something doesn't make sense.

We've tried to make sure the hosted site is WCAG 2.0 AA compliant. Please let us know if we have missed something. This is how we test it.

Diagnosing a problem

Our documentation is contained in a collection of Markdown files stored in this repository. We use Jekyll to generate a static html website that is then hosted on GitHub pages. Our continuous integration is configured to regenerate and update the live site whenever a pull request is merged. There is a timestamp in the source that indicates when it was last generated. Additionally, each page has a timestamp and revision hash from when it was last updated located in the footer based on the git history.

Our markdown pages are rendered using Kramdown, a ruby based markdown converter that is configured to interpret the markdown files (.md) as GitHub flavoured markdown (GFM). We are currently using the jekyll-theme-bootstrap theme that provides a sass implementation of bootstrap. Our custom styling is contained in assets/css/style.scss. HTML templates are in either _layouts or _includes.

Requirements

Building the site

  • ruby-bundler must be installed

Linters

Linting checks require the linters to be installed.

  • HTML output checking using tidy: make check_html_output
  • Liquid syntax checking using liquid-linter: make check_liquid_syntax

Building the docsite

To build and host locally:

git submodule init
git submodule update

# If this doesn't work see: https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/
bundle install

make serve
#   Server address: http://127.0.0.1:4000/
#   Server running... press ctrl-c to stop.

Or with docker:

make docker_build
make docker_serve

Makefile and JEKYLL_ENV=production version

Jekyll provides an environment flag for providing some content only in a production environment.

One way we use this is to show data generated by rules in the Makefile and saved in _data/generated.yml. If you want to serve the site locally in production mode there are make rules for this. You will need to call the make rule to generate the _data/generated.yml also.

Quick compliance, style and formatting checks

WCAG 2.0 AA conformance

There is a make rule to check conformance to all testable statements from the guidelines. make check_conformance. It requires the site to be hosted locally (using make serve) and a local server of Automated Accessibility Testing Tool (AATT).

make check_conformance will output a file named conformance_results.xml which is a junit testsuite output file that will contain a testcase for each generated html file of the site. A make rule make check_conformance_errors will grep for failing testcases and output the html page name. The idea here is to detect if any pages are failing and then manually using the AATT tool's webinterface to check what parts of the page violate the guidelines.

docs's People

Contributors

kent-mcleod avatar pingerino avatar latentprion avatar gridbugs avatar ikuz avatar lsf37 avatar gernotheiser avatar wom-bat avatar ajaysusarla avatar yyshen avatar xurtis avatar branden-data61 avatar dependabot[bot] avatar mbrcknl avatar szhuang avatar wellmcgarnicle avatar ivan-velickovic avatar podhrmic avatar juli1 avatar axel-h avatar gnustomp avatar fourkbomb avatar michaelsproul avatar ridale avatar ratmice avatar fabriziobertocci avatar furao avatar richardhabeeb avatar xaphiosis avatar metebalci avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.