This repository contains the code for the Bitwarden contributing docs site. The site is built using Docusaurus which is a static website generator. The latest version of the documentation is available at https://contributing.bitwarden.com/.
npm cinpm startThis command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
By default, npm start will attempt to start your local instance with SSL enabled using
certificates referenced in your local dotfile (.env).
- copy the provided
.env.exampleto.envand update the values as needed - (requires OpenSSL) Generate your self-signed certs with
npm run setup:ssland follow the instructions.- Alternatively use mkcert to generate and add certs to your trust store
- run
npm start!
If the script fails to find your .env or the required values within, docusaurus will start
normally without SSL.
If you need to explicitly develop without SSL, simply delete your .env file or use the command
npm start:insecure instead.
npm run buildThis command generates static content into the build directory and can be served using any static
contents hosting service.
The documentation is written in Markdown and can be found in the docs directory. The docs
directory consists of three sections:
- Getting started - instructions on how to build and run the different projects.
- Contribute - information on how to contribute to the project.
- Architecture - high-level architecture documentation.
Please follow the following (very brief) style guide:
- Use numbered paragraphs for all instructions or procedures. Start each paragraph with a verb (“click”, “type”, “restart”, etc).
- Use code blocks for all commands. Don't write them in-line.
- Avoid long paragraphs - this documentation should be to-the-point and instructional.
We use cspell for spellchecking. It will run as a pre-commit hook and in the CI pipeline.
Spellchecking ignores single and multi-line code snippets. If required, you can add custom words
(e.g. proper nouns and technical terms) to custom-words.txt.
The Contributing Docs site is used both for internal and external contributors. To this end we've facilitated a mean to conditionally show content for either group. This is primarily to keep the external docs simple.
As an end user you can switch the mode using the dropdown in the navigation bar. This will persist across sessions.
In order to write content that targets different context please use the <Community> and
<Bitwarden> tags as demonstrated below.
<Community>
This content is shown only to community contributors.
</Community>
<Bitwarden>
This content is shown only to bitwarden contributors.
</Bitwarden>The technical implementation uses a custom context called devMode which is persisted to local
storage, and is exposed as a dropdown in the navigation bar.
It's also possible to conditionally hide pages from the navigation using frontMatter. This is
easiest done using the access property, which can be either community or bitwarden.
---
sidebar_custom_props:
access: bitwarden
---Documentation (docs folder) is Creative Commons BY-NC-ND licensed.
Code is GPL licensed.
