Go to file
Anna Lyons 13515ab1ab
Add instructions for creating a guest linux
2019-08-05 17:23:08 +10:00
CAmkES trivial: Fix typo build instructions 2019-02-26 10:25:54 +11:00
CMA34DBMC Add missing alt attributes to images 2018-03-22 14:02:40 +11:00
Developing/Building Update index.md 2019-05-29 22:58:44 +10:00
Hardware Clean up beaglebone documentation 2019-06-24 12:21:56 +10:00
LevelConverter Add missing alt attributes to images 2018-03-22 14:02:40 +11:00
Tutorials aenum and pyelftools python modules are required 2019-03-07 05:28:05 +10:00
VM Add instructions for creating a guest linux 2019-08-05 17:23:08 +10:00
VisualCAmkES Consistent code block ``` 2018-05-11 15:27:31 +10:00
_camkes_release Release seL4 10.1.1 and camkes-3.7.0 2018-11-13 04:29:25 +11:00
_data maintained.yml: Added cakeml_libs 2018-10-26 11:42:58 +11:00
_includes Release seL4 10.1.0 and camkes-3.6.0 2018-11-07 20:43:12 +11:00
_layouts Include nav-sidebar in page layouts 2018-05-14 17:09:06 +10:00
_plugins Add jekyll-include-absolute-plugin 2018-05-02 13:33:43 +10:00
_sel4_release Add MCS release notes for 10.1.1-mcs 2019-01-08 17:00:31 +11:00
assets/css Make external link icons automatic 2018-05-28 16:30:11 +10:00
dependencies Add jekyll-include-absolute-plugin 2018-05-02 13:33:43 +10:00
logos Add initial jekyll site files 2018-02-26 13:33:47 +11:00
seL4DriverAPI Driver_Management.md -> DriverManagement.md 2018-04-09 09:32:39 +10:00
tools Add custom dockerfile for extra dependencies, and modify makefile to match 2018-05-04 14:28:06 +10:00
.gitignore api: Makefile rule to generate API docs 2018-05-03 17:08:37 +10:00
.gitmodules Add jekyll-include-absolute-plugin 2018-05-02 13:33:43 +10:00
404.html Add initial jekyll site files 2018-02-26 13:33:47 +11:00
ApiDoc.md api: Added API docs page 2018-05-03 17:17:32 +10:00
BenchmarkingGuide.md Consistent code block ``` 2018-05-11 15:27:31 +10:00
CAmkESCLI.md CAmkESCLI: Fix syntax 2018-03-19 13:58:19 +11:00
CAmkESDifferences.md CAmkESDifferences: fix style 2018-03-19 13:58:19 +11:00
CAmkESInternals.md CAmkESInternals: Fix syntax 2018-03-19 13:58:19 +11:00
CAmkESNext.md Remove tempita references 2018-06-13 15:55:02 +10:00
CapDL.md Consistent code block ``` 2018-05-11 15:27:31 +10:00
CodeReview.md Fix broken links 2018-04-24 22:39:31 +10:00
CommunityProjects.md CommunityProjects: add title 2018-03-13 19:11:51 +11:00
Conduct.md Consolidate attributions 2018-03-23 15:11:48 +11:00
Contributing.md Link RFC in Contributing 2019-03-01 12:52:08 +10:00
DebuggingGuide.md DebuggingUserspace: link and update 2018-11-06 09:18:35 +11:00
DebuggingUserspace.md DebuggingUserspace: link and update 2018-11-06 09:18:35 +11:00
Docker.md Initial docker docs 2018-07-11 11:41:23 +10:00
DocsContributing.md remove unrequired line from DocsContributing 2018-04-11 15:46:46 +10:00
Documentation.md remove outdated Isabelle tutorial link 2018-06-12 15:24:34 +02:00
FrequentlyAskedQuestions.md FrequentlyAskedQuestions.md: Fix Hardware.lhs link 2019-05-29 23:01:24 +10:00
Gemfile Jekyll: Bump version number 2018-11-17 00:49:37 +10:00
Gemfile.lock Jekyll: Bump version number 2018-11-17 00:49:37 +10:00
GettingStarted.md Remove stale vm project infomation. 2018-11-06 09:18:35 +11:00
GitConventions.md Add git_conventions.md 2018-04-06 11:24:33 +10:00
HardwareHacks.md HardwareHacks: Fix syntax 2018-03-13 18:53:18 +11:00
HostDependencies.md Add protobuf dependencies 2019-07-11 09:38:50 +10:00
IRCChannel.md IRCChannel: Fix syntax 2018-03-13 18:49:10 +11:00
LICENSE.txt Add BSD2 LICENSE.txt 2018-03-23 15:50:03 +11:00
MaintainedRepositories.md Add a page for list of maintained GitHub repos 2018-04-12 10:28:39 +10:00
Makefile Makefile remove double quotes from make rule 2018-10-15 19:58:34 +11:00
PortingSeL4.md sel4 porting guide 2019-07-18 18:11:17 +10:00
README.md README: make requirements clearer 2018-05-11 15:13:41 +10:00
ReleaseProcess.md Update ReleaseProcess.md 2018-04-12 10:47:20 +10:00
RepoCheatsheet.md Update RepoCheatsheet.md 2019-06-01 07:59:36 +10:00
RfcProcess.md Clarify links and use of mailing list. 2019-03-29 15:34:26 +11:00
Rust.md Remove old dependency docs 2018-06-13 15:54:07 +10:00
SeL4Libraries.md Fixup bulletpoint spacing 2018-03-08 14:11:49 +11:00
Status.md Link to latest MCS release 2018-04-17 11:22:05 +10:00
StyleGuide.md Update StyleGuide.md 2019-03-01 15:34:58 +10:00
SuggestedProjects.md Suggested_projects.md -> SuggestedProjects.md 2018-04-09 09:32:30 +10:00
UserlandComponents.md Userland_components_and_drivers.md -> UserlandComponents.md 2018-04-09 09:32:32 +10:00
_config.yml Add MCS release notes for 10.1.1-mcs 2019-01-08 17:00:31 +11:00
favicon.ico Add initial jekyll site files 2018-02-26 13:33:47 +11:00
index.md Rationalise VM docs 2018-11-06 10:47:30 +11:00
seL4ManualAPIGeneration.md Consistent code block ``` 2018-05-11 15:27:31 +10:00
seL4SharedDataWithCaps.md seL4SharedDataWithCaps: fix syntax 2018-03-14 16:30:04 +11:00
seL4Test.md seL4Test: Renamed Testing.md to seL4Test.md 2018-05-28 16:30:11 +10:00
sitemap.md Add sitemap.html page to top level 2018-03-22 14:02:40 +11:00

README.md

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

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

Or with docker:

docker run --network=host -v $PWD:/host -w /host -it ruby bash -c 'bundle install && bundle exec jekyll 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.