2020-04-19 11:14:52 +01:00
# Style guide
2017-10-28 11:24:15 +01:00
2020-05-11 00:23:54 +01:00
This page lists specific formatting instructions for `tldr` pages.
2017-10-28 11:24:15 +01:00
## Layout
The basic format of each page should match the following template:
```
# command-name
> Short, snappy description.
> Preferably one line; two are acceptable if necessary.
2019-05-30 21:07:00 +01:00
> More information: <https://example.com>.
2017-10-28 11:24:15 +01:00
- Example description:
`command -opt1 -opt2 -arg1 {{arg_value}}`
- Example description:
`command -opt1 -opt2`
```
There actually is a linter/formatter that enforces the format above.
It is run automatically on every pull request,
but you may install it to test your contributions locally before submitting them:
```
npm install tldr-lint
tldrl -f {{page.md}}
```
For other ways to use `tldrl` , such as linting an entire directory, check out (what else!)
[`tldr tldrl` ](https://github.com/tldr-pages/tldr/blob/master/pages/common/tldrl.md )
2020-05-11 00:23:54 +01:00
If you're using the Node.js client of tldr-pages, you can preview a page locally using the `-f` flag (aka `--render` ):
2018-01-30 06:15:22 +00:00
```
tldr -f {{page.md}}
```
2017-10-28 11:24:15 +01:00
## Token syntax
User-provided values should use the `{{token}}` syntax
in order to allow `tldr` clients to highlight them.
Keep the following guidelines in mind when choosing tokens:
1. Use short but descriptive tokens,
ex. `{{source_file}}` or `{{wallet.txt}}` .
2. Use [`snake_case` ](https://en.wikipedia.org/wiki/Snake_case ) for multi-word tokens.
2020-05-22 13:31:24 +01:00
3. Use `{{filename}}` rather than `{{file_name}}` .
4. For any reference to paths to files or directories, use the format `{{path/to/<placeholder>}}` .
2017-10-28 11:24:15 +01:00
For example, `ln -s {{path/to/file}} {{path/to/symlink}}` .
2019-02-08 00:24:02 +00:00
In case of a possible reference both to a file or a directory, use `{{path/to/file_or_directory}}`
2020-05-22 13:31:24 +01:00
5. Follow the `{{path/to/<placeholder>}}` convention for all path-related commands, except when the
2017-10-28 11:24:15 +01:00
file location is implicit.
2020-05-22 13:31:24 +01:00
6. If a command expects the file to have a particular extension, use it.
2017-10-28 11:24:15 +01:00
For example, `unrar x {{compressed.rar}}` .
In case a generic extension is needed, use `{{.ext}}` , but **only** if an extension is required.
For instance, in find.md's example "Find files by extension" (`find {{root_path}} -name '{{*.ext}}'`)
using `{{*.ext}}` explains the command without being unnecessarily specific;
But in a command like `wc -l {{file}}` , using `{{file}}` (without extension) is sufficient.
2020-05-22 13:31:24 +01:00
7. If the example is clearer with an actual value rather than a generic placeholder, use the actual value.
2017-10-28 11:24:15 +01:00
For example, use `iostat {{2}}` rather than `iostat {{interval_in_secs}}` .
2021-03-29 13:21:55 +01:00
8. If a command performs irreversible changes to a file system or to user's devices, then write every example in a way that they cannot be unmindfully copy-pasted by the user.
For example, instead of `ddrescue --force --no-scrape /dev/sda /dev/sdb` write `ddrescue --force --no-scrape {{/dev/sdX}} {{/dev/sdY}}` and use the `{{/dev/sdXY}}` placeholder for *block devices* instead of `/dev/sda1` .
2017-10-28 11:24:15 +01:00
In general, tokens should make it as intuitive as possible
2018-01-30 06:15:22 +00:00
to figure out how to use the command and fill it in with values.
2021-01-10 13:11:45 +00:00
More technical wording on description lines should use the `backtick` syntax.
Use backticks on the following:
2021-01-10 16:40:23 +00:00
1. Paths, ex. `package.json` , `/etc/package.json` .
2. Extensions, ex. `.dll` .
3. Commands, ex. `ls` .