Compare commits

..

No commits in common. "main" and "v1.5b" have entirely different histories.
main ... v1.5b

14338 changed files with 13500 additions and 177454 deletions

View File

@ -5,7 +5,7 @@ indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = false
trim_trailing_whitespace = true
insert_final_newline = true
[*.py]

View File

@ -1,5 +0,0 @@
[flake8]
max-line-length = 88
# We ignore E501 as black handles it for us, and in a way that ignores strings
# that go over the line length, as opposed to flake8 which flags such strings.
extend-ignore = E203,E501

7
.gitattributes vendored
View File

@ -1,5 +1,8 @@
# https://github.com/tldr-pages/tldr/issues/7097
* text=auto eol=lf
# This ensures that the line endings in any files added or modified are
# normalized before being committed. On Windows they will automatically
# be checked-out as CRLF, and re-converted to LF before check-in.
# See https://git-scm.com/docs/gitattributes for more information.
* text=auto
# GitHub linguist ignores markdown files by default, but tldr-pages
# is mostly markdown, so we explicitly make the pages detectable

37
.github/CODEOWNERS vendored
View File

@ -1,37 +0,0 @@
/pages.de/ @pixelcmtd @gutjuri
/pages.es/ @navarroaxel @kant
/pages.hi/ @kbdharun
/pages.id/ @reinhart1010
/pages.it/ @mebeim @yutyo @Magrid0
/pages.ko/ @IMHOJEONG
/pages.nl/ @sebastiaanspeck @leonvsc @Waples
/pages.pl/ @acuteenvy
/pages.pt_BR/ @waldyrious @isaacvicente
/pages.pt_PT/ @waldyrious
/pages.ta/ @kbdharun
/pages.tr/ @yutyo
/pages.zh/ @blueskyson @einverne
/pages.zh_TW/ @blueskyson
/pages/linux/ @sbrl
/*.md @sbrl @kbdharun
/.github/workflows/* @sbrl @kbdharun @sebastiaanspeck
/scripts/* @sebastiaanspeck
/contributing-guides/maintainers-guide.md @sbrl @kbdharun
/contributing-guides/style-guide.md @sbrl @kbdharun
/contributing-guides/*.de.md @pixelcmtd @gutjuri
/contributing-guides/*.es.md @navarroaxel @kant
/contributing-guides/*.hi.md @kbdharun
/contributing-guides/*.id.md @reinhart1010
/contributing-guides/*.it.md @mebeim @yutyo @Magrid0
/contributing-guides/*.ko.md @IMHOJEONG
/contributing-guides/*.nl.md @sebastiaanspeck @leonvsc @Waples
/contributing-guides/*.pl.md @acuteenvy
/contributing-guides/*.pt_BR.md @waldyrious @isaacvicente
/contributing-guides/*.pt_PT.md @waldyrious
/contributing-guides/*.ta.md @kbdharun
/contributing-guides/*.tr.md @yutyo
/contributing-guides/*.zh.md @blueskyson @einverne
/contributing-guides/*.zh_TW.md @blueskyson

9
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,9 @@
<!--
Thank you for reporting an issue! Please review the following notes before submitting it.
Most issues on this repo are requests for new commands. If it's the case, make sure to use the standard title ("page request: <command name>"), and include a link to a web page about the command, and if possible, to an existing source of example-style documentation.
If your issue is with a particular client of tldr-pages, please raise the issue in the repo for that client. For example, if you are using the node client, you would report the issue here: https://github.com/tldr-pages/tldr-node-client/issues
If you have a general question or are not sure whether to open an issue, please feel free to ask in our Gitter channel: https://gitter.im/tldr-pages/tldr
-->

View File

@ -1,5 +0,0 @@
blank_issues_enabled: true
contact_links:
- name: Chat room
url: https://matrix.to/#/#tldr-pages:matrix.org
about: Consider joining the chat room to discuss your issue, question or suggestion with the community before opening an issue.

View File

@ -1,46 +0,0 @@
name: 📄 Let's document
title: "Let's document: "
description: Request creation of multiple related pages (e.g. a utility with multiple subcommands).
labels: new command, help wanted, let's document
body:
- type: textarea
attributes:
label: Command description
description: Describe the commands you want to create.
placeholder: Tell us about the commands!
validations:
required: true
- type: input
attributes:
label: Documentation
description: Link to the official documentation.
placeholder: https://example.com
- type: dropdown
attributes:
label: Platform
description: What platform does the program run on? (Select "Common" if the program works on more than one platform)
options:
- Android
- Common
- FreeBSD
- Linux
- macOS (OS X)
- NetBSD
- OpenBSD
- SunOS
- Windows
validations:
required: true
- type: textarea
attributes:
label: Additional information
description: Provide additional information if the command differs between platforms.
- type: textarea
attributes:
label: Commands
description: List out all the pages you want to create.
placeholder: |
- [] command1
- [] command2
validations:
required: true

View File

@ -1,42 +0,0 @@
name: 📄 Page modification request
title: "Page modification request: "
description: Request modification of a page.
labels: page edit, help wanted
body:
- type: textarea
attributes:
label: Command description
description: Describe the command you want the page(s) to be modified.
placeholder: Tell us about the changes in the command!
validations:
required: true
- type: input
attributes:
label: Command details
description: Describe any details related to a command.
placeholder: e.g. command version
- type: input
attributes:
label: Documentation
description: Link to the official documentation.
placeholder: https://example.com
- type: dropdown
attributes:
label: Platform
description: What platform does the program run on? (Select "Common" if the program works on more than one platform)
options:
- Android
- Common
- FreeBSD
- Linux
- macOS (OS X)
- NetBSD
- OpenBSD
- SunOS
- Windows
validations:
required: true
- type: textarea
attributes:
label: Additional information
description: Provide additional information if the command differs between platforms.

View File

@ -1,42 +0,0 @@
name: 📄 Page request
title: "Page request: "
description: Request creation of a page.
labels: new command, help wanted
body:
- type: textarea
attributes:
label: Command description
description: Describe a command you want to be summarized.
placeholder: Tell us about the command!
validations:
required: true
- type: input
attributes:
label: Command details
description: Describe any details related to a command.
placeholder: e.g. command version
- type: input
attributes:
label: Documentation
description: Link to the official documentation.
placeholder: https://example.com
- type: dropdown
attributes:
label: Platform
description: What platform does the program run on? (Select "Common" if the program works on more than one platform)
options:
- Android
- Common
- FreeBSD
- Linux
- macOS (OS X)
- NetBSD
- OpenBSD
- SunOS
- Windows
validations:
required: true
- type: textarea
attributes:
label: Additional information
description: Provide additional information if the command differs between platforms.

View File

@ -1,12 +0,0 @@
name: 📄 Page translation request
title: "Page translation request: "
description: Request translation of a page.
labels: translation, help wanted
body:
- type: textarea
attributes:
label: Command description
description: Describe the command to get translated for your language.
placeholder: Tell us what TLDR page you want to see in your language!
validations:
required: true

View File

@ -1,12 +1,10 @@
<!--
Thank you for contributing!
Please fill in the following checklist, removing items that do not apply.
See also https://github.com/tldr-pages/tldr/blob/main/CONTRIBUTING.md
-->
<!-- Thank you for sending a PR! -->
<!-- Please perform the following checks and mark all the boxes accordingly. -->
<!-- You can remove the checklist items that don't apply to your PR. -->
- [ ] The page(s) are in the correct platform directories: `common`, `linux`, `osx`, `windows`, `sunos`, `android`, etc.
- [ ] The page(s) have at most 8 examples.
- [ ] The page description(s) have links to documentation or a homepage.
- [ ] The page(s) follow the [content guidelines](/tldr-pages/tldr/blob/main/CONTRIBUTING.md#guidelines).
- [ ] The page (if new), does not already exist in the repo.
- [ ] The page is in the correct platform directory (`common/`, `linux/`, etc.)
- [ ] The page has 8 or fewer examples.
- [ ] The PR title conforms to the recommended [templates](/tldr-pages/tldr/blob/main/CONTRIBUTING.md#commit-message).
- **Version of the command being documented (if known):**
- [ ] The page follows the [content guidelines](/tldr-pages/tldr/blob/main/CONTRIBUTING.md#guidelines).
- [ ] The page description includes a link to documentation or a homepage (if applicable).

View File

@ -1 +0,0 @@
crate

View File

@ -1,18 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "monthly"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
- package-ecosystem: "pip"
directory: "/scripts/pdf"
schedule:
interval: "monthly"

View File

@ -2,9 +2,6 @@ name: CI
on: ['push', 'pull_request']
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
ci:
runs-on: ubuntu-latest
@ -12,20 +9,12 @@ jobs:
name: CI
steps:
- uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'npm'
- name: Set up PR environment
if: github.event.number != null
run: echo "PULL_REQUEST_ID=${{ github.event.number }}" >> $GITHUB_ENV
@ -33,19 +22,24 @@ jobs:
- name: Install npm dependencies
run: npm ci
- name: Install pip dependencies
run: pip install -r requirements.txt -r scripts/pdf/requirements.txt
- name: Test
run: npm test
- name: Build
run: bash scripts/build.sh
- name: Setup Python for PDF generation
if: github.repository == 'tldr-pages/tldr' && github.ref == 'refs/heads/main'
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Build PDF
if: github.repository == 'tldr-pages/tldr' && github.ref == 'refs/heads/main'
working-directory: ./scripts/pdf
run: bash build-pdf.sh
run: |
cd scripts/pdf/
pip3 install -r requirements.txt
python3 render.py ../../pages -c solarized-light
- name: Deploy
if: github.repository == 'tldr-pages/tldr' && github.ref == 'refs/heads/main'

View File

@ -1,36 +0,0 @@
name: Codespell
on:
pull_request:
# Ignore all other languages except English
paths-ignore:
- 'pages.*/*/*'
- 'contributing-guides/style-guide.*.md'
- 'package-lock.json'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40.2.0
with:
# Ignore all other languages except English
files_ignore: |
pages.*/*/*
contributing-guides/style-guide.*.md
package-lock.json
- uses: codespell-project/actions-codespell@v2
with:
ignore_words_file: .github/codespell-ignore
# Exit with 0 regardless of typos.
only_warn: 1
# Skip non-English pages
skip: ./pages.*/*/*.md,./contributing-guides/style-guide.*.md
# Only check files in the PR
path: ${{ steps.changed-files.outputs.all_changed_files }}

View File

@ -1,11 +0,0 @@
name: PR Labeler
on: pull_request_target
permissions:
pull-requests: write
jobs:
labeler:
runs-on: ubuntu-latest
steps:
- uses: tldr-pages/tldr-labeler-action@v0
with:
token: "${{ secrets.GITHUB_TOKEN }}"

14
.github/workflows/mirror.yml vendored Normal file
View File

@ -0,0 +1,14 @@
name: Main Mirror
on:
push:
branches: ['main']
jobs:
mirror:
runs-on: ubuntu-latest
steps:
- uses: zofrex/mirror-branch@v1
with:
target-branch: master

40
.github/workflows/stale.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: 'Manage stale issues'
on:
schedule:
- cron: '0 0 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- name: Stale Bot
uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# Number of days of inactivity before an issue or PR is considered stale
days-before-stale: 15
# Number of days of inactivity before a stale issue or PR is closed
days-before-close: 30
# Issues or PRs with these labels will never be considered stale
exempt-pr-labels: stalebot ignore
# Label to use when marking an issue or PR as stale
stale-pr-label: waiting
# Comment to post when marking an issue or PR as stale
stale-pr-message: |
Hi all! This thread has not had any recent activity.
Are there any updates? Thanks!
# Comment to post when closing a stale issue or PR
close-pr-message: |
Hi everyone.
This thread is being closed as there was no response to the previous prompt.
However, please leave a comment whenever you're ready to resume,
so the thread can be reopened. Thanks again!

5
.gitignore vendored
View File

@ -1,9 +1,6 @@
# VS Code
.vscode/
# Jetbrains IDE
.idea/
# macOS filesystem custom folder attributes
.DS_Store
@ -27,4 +24,4 @@ scripts/pdf/tldr-pages.pdf
# Python venv for testing the PDF script
# Create it with: python3 -m venv scripts/pdf/venv/
venv
scripts/pdf/venv/

1
.husky/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
_

View File

@ -1,14 +1,15 @@
# tldr-pages client specification
**Current Specification Version:** 2.1
**Current Specification Version:** 1.5
This document contains the official specification for tldr-pages clients. It is _not_ a specification of the format of the pages themselves - only a specification of how a user should be able to interface with an official client. For a list of previous versions of the specification, see the [changelog section](#changelog) below.
This document contains the official specification for tldr-pages clients. It is _not_ a specification of the format of the pages themselves - only a specification of how a user should be able to interface with an official client. For a list of previous versions of the specification, see the [changelog section](#Changelog) below.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
## Terminology
This section defines key terms that are relevant for understanding this specification document.
In order to aid the understanding of this specification document, a number of terms will be defined in this section.
### Page
@ -19,33 +20,34 @@ tldr-pages consists of multiple _pages_ - each of which describes a specific com
Pages are grouped by platform, i.e. operating systems — for example, `windows`, `linux`, `osx`.
The special platform `common` contains pages for commands that work identically across more than one platform.
If a page is common across multiple platforms, but slightly different on a given platform, then the page is still stored in the `common` directory, but a copy tailored for the differing platform is placed in that platform's specific folder.
If a page is common across multiple platforms, but slightly differently on a given platform, then the page is still stored in `common`, but a copy tailored for the differing platform is placed in that platform's specific folder.
For example, if the command `foo` is common to `mac`, `windows`, and `linux` but functions differently on `windows`, then the main page will be stored in `common`, and a copy will be placed in `windows` that's altered to match the different functionality.
## Command-line interface
This section describes the standardised command-line interface (CLI) for clients implementing one. Clients that do not provide a CLI can ignore this section.
### Arguments
The following command-line options MUST be supported (unless otherwise specified) if a CLI is implemented:
A number of command-line options MUST be supported (unless otherwise specified) if a CLI is implemented:
Option | Required? | Meaning
-------------------|-------------|----------
`-v`, `--version` | Yes | Shows the current version of the client, and the version of this specification that it implements.
`-p`, `--platform` | Yes | Specifies the platform to be used to perform the action (either listing or searching) as an argument. If this option is specified, the selected platform MUST be checked first instead of the current platform as described below.
`-u`, `--update` | Conditional | Updates the offline cache of pages. MUST be implemented if caching is supported.
`-l`, `--list` | No | Lists all the pages in the current platform to the standard output.
`-u`, `--update` | Conditional | Updates the offline cache of pages. MUST be implemented if cache is supported.
`-l`, `--list` | No | Lists all the pages in the current platform to the standard output. If the special platform `all` is specified a list of all pages in all platforms MUST be displayed.
`-L`, `--language` | No | Specifies the preferred language for the page returned. Overrides other language detection mechanisms. See the [language section](#language) for more information.
Clients MUST implement both the short and long versions of an option.
Clients MAY choose to only implement the short version of an option, ignoring the long form.
Additional decoration MAY be printed if the standard output is a [TTY](http://www.linusakesson.net/programming/tty/index.php). If not, then the output MUST not contain any additional decorations. For example, a page list MUST be formatted with one page name per line (to enable easy manipulation using standard CLI tools such as `grep` etc.).
Additional decoration MAY be printed if the standard output is a [TTY](http://www.linusakesson.net/programming/tty/index.php). If not, then the output MUST not contain any additional decorations. For example a page list MUST be formatted with 1 page name per line (to enable easy manipulation using standard CLI tools such as `grep` etc.).
Clients MAY support additional custom arguments and syntax not documented here.
Here are some examples of invocations using the above flags:
Here are some examples invocations using the above flags:
```bash
tldr --update
@ -76,16 +78,14 @@ This section documents the directory structure that contains the pages themselve
The main version of every page is stored inside (but not directly) the `pages` directory. Inside this directory, there is a folder for each platform - for example `windows`, `linux`, and the special `common` platform:
- `pages/`
- `common/`
- `linux/`
- `windows/`
- `osx/`
- ...etc.
- `pages/`
- `common/`
- `linux/`
- `windows/`
- `osx/`
- ...etc.
It is RECOMMENDED that clients support `macos` as an alias for `osx`.
While clients do not need to support new platforms automatically (though such support is RECOMMENDED), they MUST NOT break if additional platforms are added to tldr-pages.
Additional platforms MAY be added in the future. Clients MAY NOT support new platforms (though such support is RECOMMENDED), but MUST NOT break if additional platforms are added.
The pages themselves reside inside the appropriate platform folder, with the extension `.md`. Here are some example mappings:
@ -95,30 +95,27 @@ Command name | Mapped name | Filename
`git checkout` | `git-checkout` | `git-checkout.md`
`tar` | `tar` | `tar.md`
### Translations
Other directories sit alongside the main `pages` directory, and contain translations of the main versions of every page - though pages MAY NOT have a translation available for a given language yet. Furthermore, a given language MAY NOT have a folder yet either. The format of these directories is `pages.<locale>`, where `<locale>` is a [POSIX Locale Name](https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html#Locale-Names) in the form of `<language>_<country>`, where:
- `<language>` is the shortest [ISO 639](https://en.wikipedia.org/wiki/ISO_639) language code for the chosen language (see [here](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) for a complete list).
- `<country>` is the two-letter [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code for the chosen region (see [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a complete list).
- `<language>` is the shortest [ISO 639](https://en.wikipedia.org/wiki/ISO_639) language code for the chosen language (see [here](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) for a complete list).
- `<country>` is the two-letter [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code for the chosen region (see [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a complete list).
Some examples:
- Chinese (Taiwan): `pages.zh_TW`.
- Portuguese (Brazil): `pages.pt_BR`.
- Italian: `pages.it`.
- Chinese (Taiwan): `pages.zh_TW`.
- Portuguese (Brazil): `pages.pt_BR`.
- Italian: `pages.it`.
The structure inside these translation folders is identical to that of the main `pages` folder.
## Page structure
Although this specification is about the interface that clients must provide, it is also worth noting that pages are written in standard [CommonMark](https://commonmark.org/), with the exception of the non-standard `{{` and `}}` placeholder syntax, which surrounds values in an example that users may edit. Clients MAY highlight the placeholders and MUST remove the surrounding curly braces. Clients MUST NOT treat them as the placeholder syntax if they are escaped using `\` (i.e. `\{\{` and `\}\}`) and MUST instead display literal braces, without backslashes. Placeholder escaping applies only when both braces are escaped (e.g. in `\{` or `\{{`, backslashes MUST be displayed). Clients MUST NOT break if the page format is changed within the _CommonMark_ specification.
Although this specification is about the interface that clients must provide, it is also worth noting that pages are written in standard [CommonMark](https://commonmark.org/), which the exception of the non-standard `{{` and `}}` syntax, which surrounds values in an example that users may edit. Clients MUST NOT break if the page format is changed within the _CommonMark_ specification.
### Examples
- `ping {{example.com}}` MUST be rendered as "ping example.com"
- `docker inspect --format '\{\{range.NetworkSettings.Networks\}\}\{\{.IPAddress\}\}\{\{end\}\}' {{container}}` MUST be rendered as "docker inspect --format '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container"
- `mount \\{{computer_name}}\{{share_name}} Z:` MUST be rendered as "mount \\\\computer_name\share_name Z:"
## Page resolution
@ -126,21 +123,20 @@ This section defines the algorithm by which a client can decide which page a use
After transparently replacing spaces (` `) with dashes (`-`) and lowercasing the name, clients have several decisions to make:
- The language of a page to display to a client
- The platform to display a page from
- The language of a page to display to a client
- The platform to display a page from
### Platform
Clients MUST default to displaying the page associated with the platform on which the client is running.
For example, a client running on _Windows 11_ will default to displaying pages from the `windows` platform.
For example, a client running on _Windows 10_ will default to displaying pages from the `windows` platform.
Clients MAY provide a user-configurable option to override this behaviour, however.
If a page is not available for the host platform, clients MUST fall back to the special `common` platform.
If a page is not available for the host platform, clients MUST fallback to the special `common` platform.
If a page is not available for either the host platform or the `common` platform, then clients SHOULD search other platforms and display a page from there - along with a warning message.
For example, a user has a client on Windows and requests the `apt` page. The client consults the platforms in the following order:
For example, a user has a client on windows, and requests the `apt` page. The client consults the platforms in the following order:
1. `windows` - Not available
2. `common` - Not available
@ -151,8 +147,6 @@ Steps #3 and #4 may be done in either order.
It is possible that due to this page resolution logic, the client may show a page which does not belong to the host platform because a page can reside in `common`, and not be present on the host platform. Clients must not assume that a given command is always executable on the host platform.
It is RECOMMENDED that clients detect new platforms added to the relevant `pages` directory automatically.
#### If a page is not found
If a page cannot be found in _any_ platform, then it is RECOMMENDED that clients display an error message with a link to create a new issue against the `tldr-pages/tldr` GitHub repository. Said link might take the following form:
@ -167,13 +161,14 @@ where `{command_name}` is the name of the command that was not found. Clients th
If multiple versions of a page were found for different platforms, then a client MAY choose to display a notice to the user notifying them of this.
## Language
Pages can be written in multiple languages. If a client has access to environment variables, it MUST use them to derive the preferred user language as described in the next paragraphs. If not, then clients MUST make reasonable assumptions based on the information provided by the environment in which they operate (e.g. consulting `navigator.languages` in a browser, etc.).
Pages can be written in multiple languages. If a client has access to environment variables, it MUST use them derive the preferred user language as described in the next paragraphs. If not, then clients MUST make reasonable assumptions based on the information provided by the environment in which they operate (e.g. consulting `navigator.languages` in a browser, etc.).
The [`LANG` environment variable](https://www.gnu.org/software/gettext/manual/html_node/Locale-Environment-Variables.html) specifies the user's preferred locale (in the form `ll[_CC][.encoding]`). The [`LANGUAGE` environment variable](https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html) specifies a priority list of locales (in the form `l1:l2:...`) that can be used if the locale defined by `LANG` is not available. Both `LANG` and `LANGUAGE` may contain the values `C` or `POSIX`, which should be ignored.
The [`LANG` environment variable](https://www.gnu.org/software/gettext/manual/html_node/Locale-Environment-Variables.html) specifies the user preferred locale (in the form `ll[_CC][.encoding]`). The [`LANGUAGE` environment variable](https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html) specifies a priority list of locales (in the form `l1:l2:...`) that can be used if the locale defined by `LANG` is not available. Both `LANG` and `LANGUAGE` may contain the values `C` or `POSIX`, which should be ignored.
To determine the display language, a client MUST:
In order to determine the display language, a client MUST:
1. Check the value of `LANG`. If not set, then skip to step 5.
2. Extract the priority list from `LANGUAGE`. If not set, start with an empty priority list.
@ -191,31 +186,29 @@ Examples:
unset |`it:cz` | `en`
unset |unset | `en`
Regardless of the language determined through the environment, clients MUST always attempt to fall back to English if the page does not exist in the user's preferred language. Clients MAY notify the user when a page in their preferred language cannot be found (optionally including a link to the [translations section of the contributing guide](https://github.com/tldr-pages/tldr/blob/main/CONTRIBUTING.md#translations)).
Regardless of the language determined through the environment, clients MUST always attempt to fallback to English if the page does not exist in the user preferred language. Clients MAY notify the user when a page in their preferred language cannot be found (optionally including a link to the [translations section of the contributing guide](https://github.com/tldr-pages/tldr/blob/main/CONTRIBUTING.md#translations)).
It is also RECOMMENDED to make the language configurable, to not only rely on the environment. Clients SHOULD offer options to configure or override the language using configuration files or even command-line options (like `-L, --language` as suggested in the [arguments section](#arguments) above). If such a command-line option is specified, a client must strictly adhere to its value, and MUST NOT show pages in a different language, failing with an appropriate error message instead.
It is also RECOMMENDED to make the language configurable, as to not only rely on the environment. Clients SHOULD offer options to configure or override the language using configuration files or even command line options (like `-L, --language` as suggested in the [arguments section](#arguments) above). If such a command-line option is specified, a client must strictly adhere to its value, and MUST NOT show pages in a different language, failing with an appropriate error message instead.
The [`LC_MESSAGES` environment variable](https://www.gnu.org/software/gettext/manual/html_node/Locale-Environment-Variables.html) MAY be present. If the client itself is localized and this environment variable is present, it MUST use its value to determine the language in which interface text is shown (separately from the language used for pages). In the absence of `LC_MESSAGES`, then `LANG` and `LANGUAGE` MUST be used for this purpose instead.
The [`LC_MESSAGES` environment variable](https://www.gnu.org/software/gettext/manual/html_node/Locale-Environment-Variables.html) MAY be present. If the client itself is localized and this environment variable is present, it MUST use its value in order to determine the language in which interface text is shown (separately from the language used for pages). In absence of `LC_MESSAGES`, then `LANG` and `LANGUAGE` MUST be used for this purpose instead.
> [!IMPORTANT]
> For page lookup it is highly RECOMMENDED to give precedence to the platform over the language. In other words, look for a platform under each language, before checking the next preferred language. This ensures a meaningful and correct page resolution.
**Note that** for page lookup it is highly RECOMMENDED to give precedence to the platform over the language. In other words, look for a platform under each language, before checking the next preferred language. This ensures a meaningful and correct page resolution.
Here's an example of how the lookup should be done on `linux` having set `LANG=it` and `LANGUAGE="it:fr:en"`:
Step | Path checked | Outcome
------|--------------------------------|-----------------------
1 | pages.it/linux/some-page.md | does not exist
2 | pages.fr/linux/some-page.md | does not exist
3 | pages/linux/some-page.md | does not exist
4 | pages.it/common/some-page.md | does not exist
5 | pages.fr/common/some-page.md | does not exist
6 | pages/common/some-page.md | FOUND!
1. pages.it/linux/some-page.md -> does not exist
2. pages.fr/linux/some-page.md -> does not exist
3. pages/linux/some-page.md -> does not exist
4. pages.it/common/some-page.md -> does not exist
5. pages.fr/common/some-page.md -> does not exist
6. pages/common/some-page.md -> FOUND!
## Caching
If appropriate, it is RECOMMENDED that clients implement a cache of pages. If implemented, clients MUST download the entire archive either as a whole from **[https://tldr.sh/assets/tldr.zip](https://tldr.sh/assets/tldr.zip)** (Which redirects to [https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/main/assets/tldr.zip](https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/main/assets/tldr.zip)) or download language-specific translation archives in the format `https://tldr.sh/assets/tldr-pages.{{language-code}}.zip` (Which redirects to [https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/main/assets/tldr-pages.{{language-code}}.zip](https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/main/assets)), along with the archive for English from **[https://tldr.sh/assets/tldr-pages.zip](https://tldr.sh/assets/tldr-pages.zip)** (It redirects to [https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/main/assets/tldr-pages.zip](https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/main/assets/tldr-pages.zip)).
If appropriate, it is RECOMMENDED that clients implement a cache of pages. If implemented, clients MUST download the archive either from **[https://tldr.sh/assets/tldr.zip](https://tldr.sh/assets/tldr.zip)** or [https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/master/assets/tldr.zip](https://raw.githubusercontent.com/tldr-pages/tldr-pages.github.io/master/assets/tldr.zip) (which is pointed to by the first link).
Caching SHOULD be done according to the user's language configuration (if any), as to not waste unneeded space for unused languages. Additionally, clients MAY automatically update the cache on a regular basis.
Caching SHOULD be done according to the user's language configuration (if any), to not waste unneeded space for unused languages. Additionally, clients MAY automatically update the cache regularly.
## Changelog
@ -231,39 +224,26 @@ the form `vX.Y`) should be done immediately AFTER merging the version bump, as
the commit hash changes when merging with squash or rebase.
-->
- Unreleased
- [v1.5, March 17th 2021](https://github.com/tldr-pages/tldr/blob/v1.5/CLIENT-SPECIFICATION.md) ([#5428](https://github.com/tldr-pages/tldr/pull/5428))
- Add requirement for converting command names to lowercase before running the page resolution algorithm.
- Use HTTPS for archive links.
- [v2.1, November 30th 2023](https://github.com/tldr-pages/tldr/blob/v2.1/CLIENT-SPECIFICATION.md) ([#11523](https://github.com/tldr-pages/tldr/pull/11523))
- Add requirement to support escaping the placeholder syntax in certain pages ([#10730](https://github.com/tldr-pages/tldr/pull/10730))
- Add suggestion to detect new platforms added to the relevant `pages` directory automatically ([#11523](https://github.com/tldr-pages/tldr/pull/11523))
- [v1.4, August 13th 2020](https://github.com/tldr-pages/tldr/blob/v1.4/CLIENT-SPECIFICATION.md) ([#4246](https://github.com/tldr-pages/tldr/pull/4246))
- Add requirement for CLI clients to use non-zero exit code on failing to find a page.
- [v2.0, September 10th 2023](https://github.com/tldr-pages/tldr/blob/v2.0/CLIENT-SPECIFICATION.md) ([#10148](https://github.com/tldr-pages/tldr/pull/10148))
- Add recommendation to support `macos` alias for `osx` ([#7514](https://github.com/tldr-pages/tldr/pull/7514))
- Drop the special "all" platform from the `--list` flag ([#7561](https://github.com/tldr-pages/tldr/pull/7561))
- Drop the `master` branch from the assets link. ([#9668](https://github.com/tldr-pages/tldr/pull/9668))
- Require support for long options ([#9651](https://github.com/tldr-pages/tldr/pull/9651))
- Add recommendation to support caching individual translation archives ([#10148](https://github.com/tldr-pages/tldr/pull/10148))
- [v1.3, June 11th 2020](https://github.com/tldr-pages/tldr/blob/v1.3/CLIENT-SPECIFICATION.md) ([#4101](https://github.com/tldr-pages/tldr/pull/4101))
- Clarified fallback to English in the language resolution algorithm.
- Update `LANG` and `LANGUAGE` environment variable to conform to the GNU spec.
- [v1.5, March 17th 2021](https://github.com/tldr-pages/tldr/blob/v1.5/CLIENT-SPECIFICATION.md) ([#5428](https://github.com/tldr-pages/tldr/pull/5428))
- Add requirement for converting command names to lowercase before running the page resolution algorithm.
- Use HTTPS for archive links.
- [v1.2, July 3rd 2019](https://github.com/tldr-pages/tldr/blob/v1.2/CLIENT-SPECIFICATION.md) ([#3168](https://github.com/tldr-pages/tldr/pull/3168))
- Addition of a new `-L, --language` recommended command-line option.
- Rewording of the language section also encouraging the use of configuration files for language.
- Shift from BCP-47 to POSIX style locale tags, with consequent **deprecation of previous versions of the spec**.
- Clearer clarification about the recommended caching functionality.
- Correction of the usage of the term "arguments" in the homonym section.
- [v1.4, August 13th 2020](https://github.com/tldr-pages/tldr/blob/v1.4/CLIENT-SPECIFICATION.md) ([#4246](https://github.com/tldr-pages/tldr/pull/4246))
- Add requirement for CLI clients to use non-zero exit code on failing to find a page.
- [v1.1, April 1st 2019](https://github.com/tldr-pages/tldr/blob/v1.1/CLIENT-SPECIFICATION.md) (deprecated) ([#2859](https://github.com/tldr-pages/tldr/pull/2859))
- Clarified platform section.
- [v1.3, June 11th 2020](https://github.com/tldr-pages/tldr/blob/v1.3/CLIENT-SPECIFICATION.md) ([#4101](https://github.com/tldr-pages/tldr/pull/4101))
- Clarified fallback to English in the language resolution algorithm.
- Update the `LANG` and `LANGUAGE` environment variables to conform to the GNU spec.
- [v1.2, July 3rd 2019](https://github.com/tldr-pages/tldr/blob/v1.2/CLIENT-SPECIFICATION.md) ([#3168](https://github.com/tldr-pages/tldr/pull/3168))
- Addition of a new `-L, --language` recommended command-line option.
- Rewording of the language section, also encouraging the use of configuration files for language.
- Shift from BCP-47 to POSIX style locale tags, with consequent **deprecation of previous versions of the spec**.
- Clearer clarification about the recommended caching functionality.
- Correction of the usage of the term "arguments" in the homonym section.
- [v1.1, April 1st 2019](https://github.com/tldr-pages/tldr/blob/v1.1/CLIENT-SPECIFICATION.md) (deprecated) ([#2859](https://github.com/tldr-pages/tldr/pull/2859))
- Clarified platform section.
- [v1.0, January 23rd 2019](https://github.com/tldr-pages/tldr/blob/v1.0/CLIENT-SPECIFICATION.md) (deprecated) ([#2706](https://github.com/tldr-pages/tldr/pull/2706))
- Initial release.
- [v1.0, January 23rd 2019](https://github.com/tldr-pages/tldr/blob/v1.0/CLIENT-SPECIFICATION.md) (deprecated) ([#2706](https://github.com/tldr-pages/tldr/pull/2706))
- Initial release.

View File

@ -46,9 +46,8 @@ exceptions can always be considered, via open community discussion.)
This means they will be able to
push commits to all of the organization's repositories,
merge PRs, label and close issues, among other things.
> [!NOTE]
> All members of the tldr-pages organization
> must make their membership public.
_Note_: All members of the tldr-pages organization
must make their membership public.
- **Organization members who remain active for a while should become organization owners.**
Specifically: members of the tldr-pages organization
@ -79,9 +78,8 @@ exceptions can always be considered, via open community discussion.)
## How to change roles
> [!NOTE]
> This section is aimed at owners in the tldr-pages organization
> (i.e. the group of people who are able to perform these changes).
*Note: this section is aimed at owners in the tldr-pages organization
(i.e. the group of people who are able to perform these changes).*
If you notice a contributor being particularly active,
review their recent contributions to check whether a role transition is due,
@ -128,10 +126,10 @@ using one of the template messages below as a base.
According to our [community roles documentation](https://github.com/tldr-pages/tldr/blob/main/COMMUNITY-ROLES.md), you've now met the thresholds to be effectively considered an active maintainer of the project.
To publicly acknowledge that fact, we'd like to add you to the tldr-pages organization.
If you accept the invitation, we ask you to make your membership public, and (in case you don't already) start hanging out in our [Matrix chat room](https://matrix.to/#/#tldr-pages:matrix.org).
If you accept the invitation, we ask you to make your membership public, and (in case you don't already) start hanging out in our Gitter chat room.
Additionally, consider subscribing to the notifications from the various repositories under the [tldr-pages organization](https://github.com/tldr-pages).
As one of the public faces of the tldr-pages project, it's also especially important that you follow and encourage the [project
governance principles](https://github.com/tldr-pages/tldr/blob/main/GOVERNANCE.md).
governance principles](https://github.com/tldr-pages/tldr/blob/main/COMMUNITY-ROLES.md).
How does that sound? Are you up for it?
```
@ -193,27 +191,14 @@ using one of the template messages below as a base.
go to https://github.com/orgs/tldr-pages/people, click the gear icon in their row,
and select the "Convert to outside collaborator" menu entry.
3. Open a PR moving their name to the "Past organization members" section
3. Open a PR moving their name to the "Past organization owners" section
in [MAINTAINERS.md](MAINTAINERS.md).
Make sure to include `Closes #<issue number>` in the PR description.
The issue will then be automatically closed once the PR is merged.
## Who can change roles
Any member of the community can (and is encouraged to) propose role changes
by following the process outlined [above](#how-to-change-roles).
[Owners of the tldr-pages organization](MAINTAINERS.md#organization-owners)
[Owners of the tldr-pages organization](MAINTAINERS.md#current-organization-owners)
can then perform the actual role changes.
## CODEOWNERS
The [`.github/CODEOWNERS` file](https://github.com/tldr-pages/tldr/blob/main/.github/CODEOWNERS) allows contributors with write access to the [tldr-pages/tldr repository](https://github.com/tldr-pages/tldr) to get automatic review request notifications for given files and directories.
If they wish to, contributors can open a pull request to add themselves to this file as desired.
Example uses include (but are not limited to):
- Contributors who speak a specific language and want to assist with reviewing translations in those specific languages.
- Contributors with specific expertise who wish to review pull requests for specific platforms.
- Contributors interested in reviewing [client specification](https://github.com/tldr-pages/tldr/blob/main/CLIENT-SPECIFICATION.md) updates.
> [!NOTE]
> This mechanism is purely for automatic review requests for PRs and doesn't grant collaborators additional copyright over the code-owned files. View the [LICENSE](https://github.com/tldr-pages/tldr/blob/main/LICENSE.md) file for more information.

View File

@ -1,47 +1,45 @@
# Contributing
[![Matrix chat][matrix-image]][matrix-url]
[![Gitter chat][gitter-image]][gitter-url]
[![Merged PRs][prs-merged-image]][prs-merged-url]
[![GitHub contributors][contributors-image]][contributors-url]
[![CLA assistant][cla-assistant-image]][cla-assistant-url]
[![license][license-image]][license-url]
[matrix-url]: https://matrix.to/#/#tldr-pages:matrix.org
[matrix-image]: https://img.shields.io/matrix/tldr-pages:matrix.org?label=Chat+on+Matrix
[gitter-url]: https://gitter.im/tldr-pages/tldr
[gitter-image]: https://img.shields.io/badge/chat-on_gitter-deeppink
[prs-merged-url]: https://github.com/tldr-pages/tldr/pulls?q=is:pr+is:merged
[prs-merged-image]: https://img.shields.io/github/issues-pr-closed-raw/tldr-pages/tldr.svg?label=Merged+PRs&color=green
[prs-merged-image]: https://img.shields.io/github/issues-pr-closed-raw/tldr-pages/tldr.svg?label=merged+PRs&color=green
[contributors-url]: https://github.com/tldr-pages/tldr/graphs/contributors
[contributors-image]: https://img.shields.io/github/contributors/tldr-pages/tldr.svg?label=Contributors
[contributors-image]: https://img.shields.io/github/contributors/tldr-pages/tldr.svg
[cla-assistant-url]: https://cla-assistant.io/tldr-pages/tldr
[cla-assistant-image]: https://cla-assistant.io/readme/badge/tldr-pages/tldr
[license-url]: https://github.com/tldr-pages/tldr/blob/main/LICENSE.md
[license-image]: https://img.shields.io/badge/license-CC_BY_4.0-blue.svg?label=License
[license-image]: https://img.shields.io/badge/license-CC_BY_4.0-blue.svg
Contributions to the tldr-pages project are [most welcome](GOVERNANCE.md)!
All `tldr` pages are stored in Markdown right here on GitHub. Just open an issue or send a pull request, and we'll incorporate it as soon as possible.
All `tldr` pages are stored in Markdown right here on GitHub.
Just open an issue or send a pull request and we'll incorporate it as soon as possible.
To get started, please [sign](https://cla-assistant.io/tldr-pages/tldr) the
[Contributor License Agreement](https://gist.github.com/waldyrious/e50feec13683e565769fbd58ce503d4e).
> [!NOTE]
> When submitting a new command, please base your PR against the `main` branch and check if there's already a pull request in progress for it.
*Note*: when submitting a new command, don't forget to check if there's already a pull request in progress for it.
## Guidelines
The basic format of a `tldr` page is a set of concrete usage examples.
Here are a few guidelines to get started:
1. Try to keep pages at around 5 examples. Pages can be longer or shorter when appropriate, but don't exceed the maximum of eight examples.
1. Try to keep pages at around 5 examples. Pages can be longer or shorter when appropriate, but don't exceed 8 examples.
Remember, it's OK if the page doesn't cover everything; that's what `man` is for.
2. When in doubt, keep new command-line users in mind. Err on the side of clarity rather than terseness.
For example, commands that require `sudo` should include it directly in the examples.
3. Try to incorporate the spelled-out version of single-letter options in the example's description.
The goal is to allow people to *understand* the syntax of the commands, not just *memorize* it.
4. Introduce options gradually, starting with the simplest command invocations and using more complex examples progressively.
5. Focus on details specific to the command and avoid explaining general UNIX concepts that could apply to any command
(i.e. relative/absolute paths, glob patterns/wildcards, special character escaping, ...).
4. Introduce options gradually, starting with the simplest command invocations,
and using more complex examples progressively.
5. Focus on details specific to the command, and avoid explaining general UNIX concepts that could apply to any command
(ex: relative/absolute paths, glob patterns/wildcards, special character escaping...).
These are all guidelines, not strict rules.
Use proper judgement, keeping simplicity and user-friendliness as the top priorities.
@ -52,7 +50,7 @@ When in doubt, have a look at a few existing pages :).
As a quick reference, the format of each page should match the following template:
```md
```
# command-name
> Short, snappy description.
@ -61,159 +59,83 @@ As a quick reference, the format of each page should match the following templat
- Example description:
`command --option`
`command -opt1 -opt2 -arg1 {{arg_value}}`
- Example description:
`command --option1 --option2 {{arg_value}}`
`command -opt1 -opt2`
```
For page descriptions, you can additionally use ``See also: `command`.`` and [subcommand reference](#subcommands).
> [!NOTE]
> While we suggest only two lines for the page description, it is acceptable to have more than two lines if it necessary to add additional information (i.e. [`pacman`](https://github.com/tldr-pages/tldr/blob/main/pages/linux/pacman.md)).
To see some examples of preexisting pages, you can look at:
- [pwd](https://github.com/tldr-pages/tldr/blob/main/pages/common/pwd.md) - one of the simplest command examples
- [tar](https://github.com/tldr-pages/tldr/blob/main/pages/common/tar.md) - page with placeholders
In our pages, we use placeholders defined as being tokens within curly brackets. For example, in `sleep {{5}}`, the user can change 5 to any number.
Other examples but not limited to of our placeholder syntax are:
- `{{path/to/directory}}`
- `{{path/to/directory1 path/to/directory2 ...}}`
For more detailed formatting guidelines,
For more detailed page formatting guidelines,
refer to the [style guide](contributing-guides/style-guide.md).
## Subcommands
Many programs use subcommands for separating functionality, which may require their own separate pages.
For instance, `git commit` has its own page, as well as `git push` and many others.
To create a page for a subcommand, the program and subcommand need to be separated with a dash (`-`), so `git-commit.md` is shown when calling `tldr git commit`.
You should always add a base page (e.g. `git`) that describes the program and basic switches like `--version` or `--help`.
To let others know about the subcommand, add a note saying ``Some subcommands such as `example command` have their own usage documentation`` to the base page.
You should always add a base page (e.g. `git`) that describes the program and basic switches like `--version` or `help`.
See these examples for reference:
- [git](pages/common/git.md)
- [git-commit](pages/common/git-commit.md)
- [aws](pages/common/aws.md)
- [aws-s3](pages/common/aws-s3.md)
* [git](pages/common/git.md)
* [git-commit](pages/common/git-commit.md)
* [aws](pages/common/aws.md)
* [aws-s3](pages/common/aws-s3.md)
## Translations
Translation of pages can be done by simply creating the corresponding page within the appropriate language-specific directory, creating that as well if it does not already exist.
> [!IMPORTANT]
> Translations of pages should be done based on the English (US) page in the `pages` directory. If the English pages doesn't exist for the command, it should be added first in a PR before creating a translation.
Language specific directories must follow the pattern `pages.<locale>`, where `<locale>` is a [POSIX Locale Name](https://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html#Locale-Names) in the form of `<language>[_<country>]`, where:
- `<language>` is the shortest [ISO 639](https://en.wikipedia.org/wiki/ISO_639) language code for the chosen language (see [here](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) for a complete list).
- `<country>` is the two-letter [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code for the chosen region (see [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a complete list).
- `<language>` is the shortest [ISO 639](https://en.wikipedia.org/wiki/ISO_639) language code for the chosen language (see [here](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) for a complete list).
- `<country>` is the two-letter [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code for the chosen region (see [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a complete list).
The `<country>` code is optional and should only be added when it is needed. In other words, only when there is a valid reason to distinguish between a language (`ll`) and its regional dialects (`ll_CC1`, `ll_CC2`, etc.). For example, both `fr_FR` and `fr_BE` should fall under the same `pages.fr` directory since there virtually is no difference in writing between standard French and Belgian French.
> [!IMPORTANT]
> When adding a new language to `tldr`, it is suggested to add it to the [translation templates](contributing-guides/translation-templates) along with any page additions.
The `<country>` code is optional and should only be added when it is needed. In other words, only when there is a valid reason to distinguish between a language (`ll`) and its regional dialects (`ll_CC1`, `ll_CC2`, etc.). As an example, both `fr_FR` and `fr_BE` should fall under the same `pages.fr` directory, since there virtually is no difference in writing between standard French and Belgian French.
To see the current progress of all translations, you can visit <https://lukwebsforge.github.io/tldri18n/>, which provides a dynamically updated table of all pages and their translations.
Some examples of valid locale tags:
- French: `fr`.
- Chinese: `zh`.
- Chinese (Singapore): `zh_SG`.
- Portuguese (Brazil): `pt_BR`.
- French: `fr`.
- Chinese: `zh`.
- Chinese (Singapore): `zh_SG`.
- Portuguese (Brazil): `pt_BR`.
A list of translated templates for alias pages can be found [here](contributing-guides/translation-templates/alias-pages.md).
### Default language for newly added pages
It is acceptable for several pages to get translated in one pull request.
For more information about language specific rules, refer to the [style guide](contributing-guides/style-guide.md#language-specific-rules).
The default language used for pages is English (US). Pages written in English are stored in the default `pages` directory (notice the absence of a specific language tag). Although not strictly required, if you'd like to add a new page in a different language, please consider creating the English page too.
## Inclusive language
Where possible, use inclusive language in the content of pages. For example, prefer terms like "denylist"/"allowlist" instead of "blacklist"/"whitelist", "primary"/"secondary" instead of "master"/"slave", "they" instead of "him"/"her", etc.
Of course, this shouldn't sacrifice content clarity, such as when documenting tools where this terminology has specific technical meanings and its usage is central to explaining the involved concepts.
Of course, this shouldn't sacrifice content clarity, such as when documenting tools where this terminology has specific technical meanings, and its usage is central to explaining the involved concepts.
## Submitting a pull request
### Testing pages locally
Once you have written a `tldr` page, you can test its syntax locally using [`tldr-lint`](https://github.com/tldr-pages/tldr-lint).
The latest version of [NodeJS](https://nodejs.org) is required to install `tldr-lint` with the following command:
```sh
npm install --global tldr-lint
```
Once its installed, you can test your page by running the following command:
```sh
tldr-lint {{path/to/page.md}}
```
Now, you are ready to submit a pull request!
> [!TIP]
> Additionally, inside the `tldr` directory you can install the dependencies using `npm install` command and now when you commit your changes, the tests will run automatically via the pre-commit hook.
### Submitting changes
The easiest way to submit a change is to edit the page directly on the GitHub interface.
The easiest way to submit a change is to just edit the page directly on the GitHub interface.
Check out the step-by-step instructions (with screenshots) on
[GitHub Help](https://help.github.com/articles/editing-files-in-another-user-s-repository/).
Alternatively, you can do most of the process
[using Git on the command-line](contributing-guides/git-terminal.md).
> [!TIP]
> After creating a pull request, it is suggested to enable the "Allow edits by maintainers" option (This only needs to be done once the first time you create a PR). It allows maintainers to make changes to your pull request and assist you in getting it merged.
### Accepting suggestions within a pull request
The easiest way to apply suggested changes is to accept the suggestion made on your pull request. Refer to the [GitHub docs](https://docs.github.com/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request) for more details.
To commit a suggestion to your pull request, click on `Commit suggestion`:
![Commit suggestion button in Github](./images/commit-suggestion-button.png)
If you want to commit multiple suggestions, go to the "Files changed" tab and batch all suggestions. Now, click `Commit suggestions` button and enter a commit message to create a single commit.
[using Git on the command line](contributing-guides/git-terminal.md).
### Commit message
For the commit message of page changes, use the following format:
For the commit message, use the following format:
`{{command}}: type of change`
<command>: type of change
Where `{{command}}` is the name of the command being modified, and `type of change` can be (but not limited to) one of the following examples:
- For a new page addition: `ls: add page`, `docker-container-rm: add alias page`
- For a page edit: `cat: fix typo`, `git-push: add --force example`
- For a new translation of an existing page: `cp: add Tamil translation`
- For a modification to the translation of an existing page: `cp: fix typo in Tamil translation`
- For related changes to several pages: `grep, find, locate: synchronize format of wildcards`
- For multiple subcommand page additions: `git-{add, push, ...}: add page`
- For modifying multiple pages in a language: `pages.<locale>/*: update pages`
---
For other cases, its suggested to follow <https://www.conventionalcommits.org/> as much as possible.
Examples:
- For a new page addition: `ls: add page`
- For a page edit: `cat: fix typo`, `git-push: add --force example`
- For a new translation of an existing page: `cp: add Tamil translation`
- For related changes to several pages: `grep, find, locate: synchronize format of wildcards`
## Licensing
This repository is licensed under the [Creative Commons Attribution 4.0 International License](LICENSE.md).
The contents of the `scripts/` directory are licensed under the [MIT license](LICENSE.md).
Any contributions to this project are governed by the

View File

@ -38,7 +38,7 @@ Community members are asked to abide by the following principles:
e.g. when setting up services that require passwords,
but otherwise all communications that impact the project
will either happen in issue and PR discussions,
or in the [Matrix chat room](https://matrix.to/#/#tldr-pages:matrix.org)
or in the [Gitter chat room](https://gitter.im/tldr-pages/tldr)
(which is open to all, and publicly logged).
4. **All decisions are made by community consensus**.

View File

@ -1,10 +1,8 @@
# Maintainers
This file contains a list of the maintainers of the tldr-pages project.
> [!NOTE]
> Only the people marked with **bold** are currently in the indicated role.
> The other entries are kept for historical record.
Note: only the people marked with **bold** are currently in the indicated role.
The other entries are kept for historical record.
There are three types of maintainers, as described in
[COMMUNITY-ROLES.md](https://github.com/tldr-pages/tldr/blob/main/COMMUNITY-ROLES.md#when-to-change-roles):
@ -26,6 +24,8 @@ If you are an owner of the organization, you can see an automated list
[12 March 2017](https://github.com/tldr-pages/tldr/issues/1209#issuecomment-285924778) — present
- **Max Xu ([@jsonbruce](https://github.com/jsonbruce))**:
[11 January 2018](https://github.com/tldr-pages/tldr/issues/1885) — present
- **Muhammad Falak R Wani ([@mfrw](https://github.com/mfrw))**:
[6 September 2018](https://github.com/tldr-pages/tldr/issues/2306) — present
- **David Bialik ([@AnimiVulpis](https://github.com/AnimiVulpis))**:
[5 November 2018](https://github.com/tldr-pages/tldr/issues/2556) — present
- **Andrik Albuquerque ([@andrik](https://github.com/andrik))**:
@ -40,46 +40,16 @@ If you are an owner of the organization, you can see an automated list
[19 October 2020](https://github.com/tldr-pages/tldr/issues/4763) — present
- **Sahil Dhiman ([@sahilister](https://github.com/sahilister))**:
[27 November 2020](https://github.com/tldr-pages/tldr/issues/4994) - present
- **Florian Benscheidt ([@Waples](https://github.com/Waples))**:
[16 April 2021](https://github.com/tldr-pages/tldr/issues/5774) - present
- **Adam Herst ([@aherst](https://github.com/aherst))**:
[21 April 2021](https://github.com/tldr-pages/tldr/issues/5810) — present
- **Nicolas Kosinski ([@nicokosi](https://github.com/nicokosi))**:
[03 May 2021](https://github.com/tldr-pages/tldr/issues/5873) — present
- **Patrice Denis ([@patricedenis](https://github.com/patricedenis))**:
[10 May 2021](https://github.com/tldr-pages/tldr/issues/5919) — present
- **Reinhart Previano Koentjoro ([@reinhart1010](https://github.com/reinhart1010))**:
[23 November 2021](https://github.com/tldr-pages/tldr/issues/7404) — present
- **258204 ([@258204](https://github.com/258204))**:
[10 December 2021](https://github.com/tldr-pages/tldr/issues/7522) — present
- **Nicolas Hansse ([@Nico385412](https://github.com/Nico385412))**:
[19 July 2022](https://github.com/tldr-pages/tldr/issues/8224) — present
- **Adrien Thebo ([@adrienthebo](https://github.com/adrienthebo))**:
[17 August 2022](https://github.com/tldr-pages/tldr/issues/8321) — present
- **Cairn ([@CairnThePerson](https://github.com/CairnThePerson))**:
[1 September 2022](https://github.com/tldr-pages/tldr/issues/8438) — present
- **Managor ([@Managor](https://github.com/Managor))**:
[4 September 2023](https://github.com/tldr-pages/tldr/issues/10611) — present
- **Lucas Schneider ([@schneiderl](https://github.com/schneiderl))**:
[11 April 2019](https://github.com/tldr-pages/tldr/issues/2898) — [17 January 2020](https://github.com/tldr-pages/tldr/issues/3764), [7 February 2023](https://github.com/tldr-pages/tldr/issues/10674) — present
- **Isaac Vicente ([@isaacvicente](https://github.com/isaacvicente))**:
[20 September 2023](https://github.com/tldr-pages/tldr/issues/10737) — present
- **Darío Hereñú ([@kant](https://github.com/kant))**:
[20 September 2023](https://github.com/tldr-pages/tldr/issues/10738) — present
- **Magrid0 ([@Magrid0](https://github.com/Magrid0))**:
[22 October 2023](https://github.com/tldr-pages/tldr/issues/11159) — present
- **HoJeong Im ([@IMHOJEONG](https://github.com/IMHOJEONG))**:
[24 October 2023](https://github.com/tldr-pages/tldr/issues/11200) — present
- **Shashank Hebbar ([@quantumflo](https://github.com/quantumflo))**:
[13 November 2023](https://github.com/tldr-pages/tldr/issues/11460) — present
- **Leon ([@leonvsc](https://github.com/leonvsc))**:
[14 November 2023](https://github.com/tldr-pages/tldr/issues/11495) — present
- **Matthew Peveler ([@MasterOdin](https://github.com/MasterOdin))**:
[9 January 2021](https://github.com/tldr-pages/tldr/issues/5122) — [18 March 2021](https://github.com/tldr-pages/tldr/issues/5473), [15 November 2023](https://github.com/tldr-pages/tldr/issues/11509) — present
- **Marcher Simon ([@marchersimon](https://github.com/marchersimon))**:
[9 March 2021](https://github.com/tldr-pages/tldr/issues/5390) — [9 April 2021](https://github.com/tldr-pages/tldr/issues/5722), [20 November 2023](https://github.com/tldr-pages/tldr/issues/11381) — present
[21 April 2021](https://github.com/tldr-pages/tldr/issues/5810) - present
- Owen Voke ([@owenvoke](https://github.com/owenvoke))
[11 January 2018](https://github.com/tldr-pages/tldr/issues/1885) — [26 August 2018](https://github.com/tldr-pages/tldr/issues/2258)
- Marco Bonelli ([@mebeim](https://github.com/mebeim)):
[28 January 2019](https://github.com/tldr-pages/tldr/issues/2735) — [8 April 2019](https://github.com/tldr-pages/tldr/issues/2874)
- Lucas Schneider ([@schneiderl](https://github.com/schneiderl)):
[11 April 2019](https://github.com/tldr-pages/tldr/issues/2898) — [17 January 2020](https://github.com/tldr-pages/tldr/issues/3764)
- Ein Verne ([@einverne](https://github.com/einverne)):
[27 October 2019](https://github.com/tldr-pages/tldr/issues/3488) — [6 January 2020](https://github.com/tldr-pages/tldr/issues/3738)
- Zlatan Vasović ([@zlatanvasovic](https://github.com/zlatanvasovic)):
@ -90,30 +60,12 @@ If you are an owner of the organization, you can see an automated list
[24 August 2020](https://github.com/tldr-pages/tldr/issues/4291) — [5 October 2020](https://github.com/tldr-pages/tldr/issues/4504)
- bl-ue ([@bl-ue](https://github.com/bl-ue)):
[30 December 2020](https://github.com/tldr-pages/tldr/issues/5056) — [2 February 2021](https://github.com/tldr-pages/tldr/issues/5219)
- Matthew Peveler ([@MasterOdin](https://github.com/MasterOdin)):
[9 January 2021](https://github.com/tldr-pages/tldr/issues/5122) — [18 March 2021](https://github.com/tldr-pages/tldr/issues/5473)
- Tan Siret Akıncı ([@yutyo](https://github.com/yutyo)):
[3 March 2021](https://github.com/tldr-pages/tldr/issues/5345) — [7 April 2021](https://github.com/tldr-pages/tldr/issues/5702)
- Florian Benscheidt ([@Waples](https://github.com/Waples)):
[16 April 2021](https://github.com/tldr-pages/tldr/issues/5774) — [19 May 2021](https://github.com/tldr-pages/tldr/issues/5989)
- CleanMachine1 ([@CleanMachine1](https://github.com/CleanMachine1)):
[14 May 2021](https://github.com/tldr-pages/tldr/issues/5961) — [14 June 2021](https://github.com/tldr-pages/tldr/issues/6123)
- Muhammad Falak R Wani ([@mfrw](https://github.com/mfrw)):
[6 September 2018](https://github.com/tldr-pages/tldr/issues/2306) — [21 June 2021](https://github.com/tldr-pages/tldr/issues/6142)
- Seth Falco ([@SethFalco](https://github.com/SethFalco)):
[19 May 2021](https://github.com/tldr-pages/tldr/issues/5993) - [21 June 2021](https://github.com/tldr-pages/tldr/issues/6149)
- Pixel Häußler ([@pixelcmtd](https://github.com/pixelcmtd)):
[27 August 2021](https://github.com/tldr-pages/tldr/issues/6415) — [16 October 2022](https://github.com/tldr-pages/tldr/pull/9072#issuecomment-1279847932)
- Emily Grace Seville ([@EmilySeville7cfg](https://github.com/EmilySeville7cfg)):
[19 January 2022](https://github.com/tldr-pages/tldr/issues/1209#issuecomment-285924778) — [24 April 2022](https://github.com/tldr-pages/tldr/issues/8053)
- K.B.Dharun Krishna ([@kbdharun](https://github.com/kbdharun)):
[06 August 2022](https://github.com/tldr-pages/tldr/issues/8309) — [14 December 2022](https://github.com/tldr-pages/tldr/issues/9625)
- Lin Cheng Chieh ([@blueskyson](https://github.com/blueskyson)):
[12 August 2021](https://github.com/tldr-pages/tldr/issues/6330) — [4 January 2023](https://github.com/tldr-pages/tldr/issues/9671)
- Lena ([@acuteenvy](https://github.com/acuteenvy)):
[13 May 2023](https://github.com/tldr-pages/tldr/issues/10187) — [21 June 2023](https://github.com/tldr-pages/tldr/issues/10406)
- Juri ([@gutjuri](https://github.com/gutjuri)):
[06 October 2023](https://github.com/tldr-pages/tldr/issues/10874) — [24 October 2023](https://github.com/tldr-pages/tldr/issues/11201)
- Sebastiaan Speck ([@sebastiaanspeck](https://github.com/sebastiaanspeck)):
[19 October 2023](https://github.com/tldr-pages/tldr/issues/11075) — [24 October 2023](https://github.com/tldr-pages/tldr/issues/11202)
- Marcher Simon ([@marchersimon](https://github.com/marchersimon)):
[9 March 2021](https://github.com/tldr-pages/tldr/issues/5390) — [9 April 2021](https://github.com/tldr-pages/tldr/issues/5722)
## Organization members
@ -126,18 +78,14 @@ An automated list can be found [here](https://github.com/orgs/tldr-pages/people)
[5 January 2020](https://github.com/tldr-pages/tldr/issues/3736) — present
- **Ein Verne ([@einverne](https://github.com/einverne))**:
[6 January 2020](https://github.com/tldr-pages/tldr/issues/3738) — present
- **bl-ue ([@bl-ue](https://github.com/bl-ue))**:
[2 February 2021](https://github.com/tldr-pages/tldr/issues/5219) — present
- **Matthew Peveler ([@MasterOdin](https://github.com/MasterOdin))**:
[18 March 2021](https://github.com/tldr-pages/tldr/issues/5473) - present
- **Tan Siret Akıncı ([@yutyo](https://github.com/yutyo))**:
[7 April 2021](https://github.com/tldr-pages/tldr/issues/5702) — present
- **Florian Benscheidt ([@Waples](https://github.com/Waples))**:
[19 May 2021](https://github.com/tldr-pages/tldr/issues/5989) — present
- **Seth Falco ([@SethFalco](https://github.com/SethFalco))**:
[21 June 2021](https://github.com/tldr-pages/tldr/issues/6149) — present
- **Lena ([@acuteenvy](https://github.com/acuteenvy))**:
[21 June 2023](https://github.com/tldr-pages/tldr/issues/10406) — present
- **Juri ([@gutjuri](https://github.com/gutjuri))**:
[24 October 2023](https://github.com/tldr-pages/tldr/issues/11201) — present
- **Sebastiaan Speck ([@sebastiaanspeck](https://github.com/sebastiaanspeck))**:
[24 October 2023](https://github.com/tldr-pages/tldr/issues/11202) - present
[7 April 2021](https://github.com/tldr-pages/tldr/issues/5702) - present
- **Marcher Simon ([@marchersimon](https://github.com/marchersimon))**:
[9 April 2021](https://github.com/tldr-pages/tldr/issues/5722) — present
- Owen Voke ([@owenvoke](https://github.com/owenvoke))
[26 August 2018](https://github.com/tldr-pages/tldr/issues/2258) — [8 May 2019](https://github.com/tldr-pages/tldr/issues/2989)
- Marco Bonelli ([@mebeim](https://github.com/mebeim)):
@ -148,24 +96,6 @@ An automated list can be found [here](https://github.com/orgs/tldr-pages/people)
[17 January 2020](https://github.com/tldr-pages/tldr/issues/3764) — [3 February 2021](https://github.com/tldr-pages/tldr/issues/5224)
- Axel Navarro ([@navarroaxel](https://github.com/navarroaxel)):
[5 October 2020](https://github.com/tldr-pages/tldr/issues/4504) — [7 April 2021](https://github.com/tldr-pages/tldr/issues/5703)
- bl-ue ([@bl-ue](https://github.com/bl-ue)):
[2 February 2021](https://github.com/tldr-pages/tldr/issues/5219) — [25 June 2021](https://matrix.to/#/!zXiOpjSkFTvtMpsenJ:gitter.im/$qCyBANu8Ub_GKJgwh0zKlVSgWASLYxYJXBn4NDEEQPw)
- CleanMachine1 ([@CleanMachine1](https://github.com/CleanMachine1)):
[14 June 2021](https://github.com/tldr-pages/tldr/issues/6123) — [14 December 2021](https://github.com/tldr-pages/tldr/issues/7541)
- Marcher Simon ([@marchersimon](https://github.com/marchersimon)):
[9 April 2021](https://github.com/tldr-pages/tldr/issues/5722) — [9 August 2022](https://github.com/tldr-pages/tldr/issues/7540)
- Emily Grace Seville ([@EmilySeville7cfg](https://github.com/EmilySeville7cfg)):
[25 April 2022](https://github.com/tldr-pages/tldr/issues/8053) — [12 January 2022](https://matrix.to/#/!zXiOpjSkFTvtMpsenJ:gitter.im/$n3Jk7mhIzG6edTVUv6MkAoX_1N5z5MPRj2hclyrfKBI)
- Pixel Häußler ([@pixelcmtd](https://github.com/pixelcmtd)):
[16 October 2022](https://github.com/tldr-pages/tldr/pull/9072#issuecomment-1279847932) — [10 May 2023](https://github.com/tldr-pages/tldr/pull/10056)
- Muhammad Falak R Wani ([@mfrw](https://github.com/mfrw)):
[21 June 2021](https://github.com/tldr-pages/tldr/issues/6142) — [9 June 2023](https://github.com/tldr-pages/tldr/issues/10053)
- K.B.Dharun Krishna ([@kbdharun](https://github.com/kbdharun)):
[14 December 2022](https://github.com/tldr-pages/tldr/issues/9625) — [19 June 2023](https://github.com/tldr-pages/tldr/issues/10057)
- Lin Cheng Chieh ([@blueskyson](https://github.com/blueskyson)):
[4 January 2023](https://github.com/tldr-pages/tldr/issues/9671) — [7 July 2023](https://github.com/tldr-pages/tldr/issues/10054)
- Matthew Peveler ([@MasterOdin](https://github.com/MasterOdin)):
[18 March 2021](https://github.com/tldr-pages/tldr/issues/5473) — [15 November 2023](https://github.com/tldr-pages/tldr/issues/11509)
## Organization owners
@ -176,25 +106,19 @@ An automated list can be found [here](https://github.com/orgs/tldr-pages/people)
- **Romain Prieto ([@rprieto](https://github.com/rprieto))**:
created the project on [8 December 2013](https://github.com/tldr-pages/tldr/commit/11264d9b19000734a2d35ecbdbdebc0b0b45aed9)
- **Agniva De Sarker ([@agnivade](https://github.com/agnivade))**:
[21 September 2016](https://github.com/tldr-pages/tldr/issues/9899) — present
[27 September 2016](https://gitter.im/tldr-pages/tldr?at=57eaedefe4e41c6a4afc2f47) — present
- **Starbeamrainbowlabs ([@sbrl](https://github.com/sbrl))**:
[19 April 2017](https://github.com/tldr-pages/tldr/issues/9899) — present
[23 April 2017](https://gitter.im/tldr-pages/tldr?at=58fc6fce3e27cac331b5c397) — present
- **Owen Voke ([@owenvoke](https://github.com/owenvoke))**
[8 May 2019](https://github.com/tldr-pages/tldr/issues/2989) — present
- **Marco Bonelli ([@mebeim](https://github.com/mebeim))**:
[21 December 2019](https://github.com/tldr-pages/tldr/issues/3672) — present
- **Zlatan Vasović ([@zlatanvasovic](https://github.com/zlatanvasovic))**:
[18 June 2020](https://github.com/tldr-pages/tldr/issues/4113) — present
- **Lucas Schneider ([@schneiderl](https://github.com/schneiderl))**:
[3 February 2021](https://github.com/tldr-pages/tldr/issues/5224) — present
- **Axel Navarro ([@navarroaxel](https://github.com/navarroaxel))**:
[7 April 2021](https://github.com/tldr-pages/tldr/issues/5703) — present
- **CleanMachine1 ([@CleanMachine1](https://github.com/CleanMachine1))**:
[14 December 2021](https://github.com/tldr-pages/tldr/issues/7541) — present
- **Pixel Häußler ([@pixelcmtd](https://github.com/pixelcmtd))**:
[10 May 2023](https://github.com/tldr-pages/tldr/pull/10056) — present
- **Muhammad Falak R Wani ([@mfrw](https://github.com/mfrw))**:
[9 June 2023](https://github.com/tldr-pages/tldr/pull/10355) — present
- **K.B.Dharun Krishna ([@kbdharun](https://github.com/kbdharun))**:
[19 June 2023](https://github.com/tldr-pages/tldr/issues/10057) — present
- **Lin Cheng Chieh ([@blueskyson](https://github.com/blueskyson))**:
[7 July 2023](https://github.com/tldr-pages/tldr/issues/10054) — present
[7 April 2021](https://github.com/tldr-pages/tldr/issues/5703) - present
- Igor Shubovych ([@igorshubovych](https://github.com/igorshubovych)):
until [18 January 2018](https://github.com/tldr-pages/tldr/issues/1878#issuecomment-358610454)
- Ruben Vereecken ([@rubenvereecken](https://github.com/rubenvereecken)):
@ -209,11 +133,4 @@ An automated list can be found [here](https://github.com/orgs/tldr-pages/people)
until [18 January 2018](https://github.com/tldr-pages/tldr/issues/1878#issuecomment-358610454)
- Leandro Ostera ([@ostera](https://github.com/ostera)):
until [18 January 2018](https://github.com/tldr-pages/tldr/issues/1878#issuecomment-358610454)
- Waldir Pimenta ([@waldyrious](https://github.com/waldyrious)):
until [26 August 2018](https://github.com/tldr-pages/tldr/issues/2257)
- Zlatan Vasović ([@zlatanvasovic](https://github.com/zlatanvasovic)):
until [14 December 2021](https://github.com/tldr-pages/tldr/issues/7538)
- Lucas Schneider ([@schneiderl](https://github.com/schneiderl)):
until [7 February 2023](https://github.com/tldr-pages/tldr/issues/10674)
- Marcher Simon ([@marchersimon](https://github.com/marchersimon)):
until [20 November 2023](https://github.com/tldr-pages/tldr/issues/11381)
- Waldir Pimenta ([@waldyrious](https://github.com/waldyrious)): until [26 August 2018](https://github.com/tldr-pages/tldr/issues/2257)

218
README.md
View File

@ -1,22 +1,22 @@
<div align="center">
<h1><a href="https://tldr.sh/"><img alt="tldr-pages" src="images/banner.png" width=600/></a></h1>
<h1><img alt="tldr-pages" src="images/banner-light.png" width=600/></h1>
[![Build status][github-actions-image]][github-actions-url]
[![Matrix chat][matrix-image]][matrix-url]
[![Gitter chat][gitter-image]][gitter-url]
[![Merged PRs][prs-merged-image]][prs-merged-url]
[![GitHub contributors][contributors-image]][contributors-url]
[![license][license-image]][license-url]
[github-actions-url]: https://github.com/tldr-pages/tldr/actions
[github-actions-image]: https://img.shields.io/github/actions/workflow/status/tldr-pages/tldr/ci.yml?branch=main&label=Build
[matrix-url]: https://matrix.to/#/#tldr-pages:matrix.org
[matrix-image]: https://img.shields.io/matrix/tldr-pages:matrix.org?label=Chat+on+Matrix
[github-actions-image]: https://img.shields.io/github/workflow/status/tldr-pages/tldr/CI.svg
[gitter-url]: https://gitter.im/tldr-pages/tldr
[gitter-image]: https://img.shields.io/badge/chat-on_gitter-deeppink
[prs-merged-url]: https://github.com/tldr-pages/tldr/pulls?q=is:pr+is:merged
[prs-merged-image]: https://img.shields.io/github/issues-pr-closed-raw/tldr-pages/tldr.svg?label=Merged+PRs&color=green
[prs-merged-image]: https://img.shields.io/github/issues-pr-closed-raw/tldr-pages/tldr.svg?label=merged+PRs&color=green
[contributors-url]: https://github.com/tldr-pages/tldr/graphs/contributors
[contributors-image]: https://img.shields.io/github/contributors-anon/tldr-pages/tldr.svg?label=Contributors
[contributors-image]: https://img.shields.io/github/contributors/tldr-pages/tldr.svg
[license-url]: https://github.com/tldr-pages/tldr/blob/main/LICENSE.md
[license-image]: https://img.shields.io/badge/license-CC_BY_4.0-blue.svg?label=License
[license-image]: https://img.shields.io/badge/license-CC_BY_4.0-blue.svg
</div>
## What is tldr-pages?
@ -25,28 +25,25 @@ The **tldr-pages** project is a collection of community-maintained help pages
for command-line tools, that aims to be a simpler, more approachable complement
to traditional [man pages](https://en.wikipedia.org/wiki/Man_page).
Maybe you're new to the command-line world? Perhaps you're just a little rusty or can't always recall the arguments for commands like `lsof`, or `tar`?
Maybe you are new to the command-line world? Or just a little rusty?
Or perhaps you can't always remember the arguments to `lsof`, or `tar`?
It certainly doesn't help that, in the past, the first option explained in `man tar` was:
It certainly doesn't help that the first option explained in `man tar` is:
```console
$ man tar
...
```
-b blocksize
Specify the block size, in 512-byte records, for tape drive I/O.
As a rule, this argument is only needed when reading from or writing to tape drives,
and usually not even then as the default block size of 20 records (10240 bytes) is very common.
...
```
There seems to be room for simpler help pages, focused on practical examples.
How about:
![Screenshot of the tldr client displaying the tar command in light mode.](images/tldr-light.png#gh-light-mode-only)
![Screenshot of the tldr client displaying the tar command in dark mode.](images/tldr-dark.png#gh-dark-mode-only)
![animated svg of the tldr client displaying the tar command](images/tldr.svg)
This repository is just that: an ever-growing collection of examples
for the most common UNIX, Linux, macOS, SunOS, Android and Windows command-line tools.
for the most common UNIX, Linux, macOS, SunOS and Windows command-line tools.
## How do I use it?
@ -54,97 +51,156 @@ A popular and convenient way to access these pages on your computer
is to install the [Node.js client](https://github.com/tldr-pages/tldr-node-client),
which is supported by the tldr-pages project maintainers:
```sh
npm install -g tldr
```
npm install -g tldr
Alternatively, you can also use the official [Python client](https://github.com/tldr-pages/tldr-python-client), which can be installed via [pip3](https://pypi.org/project/tldr/).
That way you can write `tldr tar` in the terminal to show the tldr page for `tar`,
just like you would write `man tar` to show its manpage.
```shell
pip3 install tldr
```
However, if you just want to browse without installing anything, check
out the [PDF version](https://tldr.sh/assets/tldr-book.pdf).
Or Linux and Mac users can also install the official [Rust Client](https://github.com/tldr-pages/tlrc) using [Homebrew](https://formulae.brew.sh/formula/tlrc):
There are also various other clients provided by the community,
both for the command line and for other platforms:
```shell
brew install tlrc
```
- Alfred Workflow
- [tldr-alfred](https://github.com/cs1707/tldr-alfred)
- [alfred-tldr](https://github.com/konoui/alfred-tldr)
- [Albert Plugin](https://github.com/bergercookie/awesome-albert-plugins/tree/master/plugins/tldr_pages)
- Android clients:
- [tldroid](https://github.com/hidroh/tldroid), available on
[Google Play](https://play.google.com/store/apps/details?id=io.github.hidroh.tldroid) *(outdated)*
- [tldr-flutter](https://github.com/Techno-Disaster/tldr-flutter), available on
[Google Play](https://play.google.com/store/apps/details?id=wtf.technodisaster.tldr) or [F-Droid](https://f-droid.org/packages/wtf.technodisaster.tldr/)
- Bash clients:
- [tldr-sh-client](https://github.com/raylee/tldr-sh-client)
- [tldr-bash-client](https://gitlab.com/pepa65/tldr-bash-client)
- [C# client](https://github.com/principis/tldr-sharp)
- [C client](https://github.com/tldr-pages/tldr-c-client):
`brew install tldr`
- [Chrome Extension](https://github.com/hill/tldr-chrome) available on
[Chrome Web Store](https://chrome.google.com/webstore/detail/tldr-chrome/nnmlddkpgoecicoallmimonoboialpap)
- [Crystal client](https://github.com/porras/tlcr):
`brew install porras/tap/tlcr`
- [Dart client](https://github.com/hterkelsen/tldr):
`pub global activate tldr`
- [Dash docset](https://github.com/Moddus/tldr-python-dash-docset):
Open `Preferences` > `Downloads` > `User Contributed` and find `tldr pages` in the list
- [Discord Bot](https://github.com/sschr15/tldr-discord):
[Follow the building instructions](https://github.com/sschr15/tldr-discord#building) or
[use a privately hosted version](https://discord.com/api/oauth2/authorize?client_id=742800507210301520&permissions=18432&scope=bot)
- Docker images:
- [tldr-docker](https://github.com/nutellinoit/tldr-docker) - Run the `tldr` command via a docker container: `alias tldr='docker run --rm -it -v ~/.tldr/:/root/.tldr/ nutellinoit/tldr'`
- Elixir clients:
- [ExTldr](https://github.com/tldr-pages/extldr).
- [TLDR Elixir Client](https://github.com/edgurgel/tldr_elixir_client)
(binaries not yet available)
- [Emacs client](https://github.com/kuanyui/tldr.el), available on
[MELPA](https://melpa.org/#/tldr)
- Go clients:
- [github.com/pranavraja/tldr](https://github.com/pranavraja/tldr):
`go get github.com/pranavraja/tldr`
(or [platform binaries](https://github.com/pranavraja/tldr/releases))
- [https://github.com/leighmcculloch/tldr](https://github.com/leighmcculloch/tldr):
`go get 4d63.com/tldr` or `brew install 4d63/tldr/tldr`
(or [platform binaries](https://github.com/leighmcculloch/tldr/releases))
- [github.com/elecprog/tldr](https://github.com/elecprog/tldr):
`go get github.com/elecprog/tldr`
(or [platform binaries](https://github.com/elecprog/tldr/releases))
- [github.com/isacikgoz/tldr](https://github.com/isacikgoz/tldr):
`go get github.com/isacikgoz/tldr`
(or [platform binaries](https://github.com/isacikgoz/tldr/releases))
- [github.com/HardDie/myTldr](https://github.com/HardDie/myTldr):
`go get github.com/HardDie/myTldr`
(or [platform binaries](https://github.com/HardDie/myTldr/releases)) (supports custom pages directories)
- iOS clients:
- [tldr-man-page](https://github.com/freesuraj/TLDR), available on
[App Store](https://appsto.re/sg/IQ0-_.i)
- [tldr-pages](https://github.com/mflint/ios-tldr-viewer), available on
[App Store](https://itunes.apple.com/us/app/tldt-pages/id1071725095?ls=1&mt=8)
- Haskell clients:
- [tldr-hs](https://github.com/psibi/tldr-hs):
`stack install tldr`
or `apt-get install tldr` on Debian-based distributions
- [fast-tldr](https://github.com/gutjuri/fast-tldr)
- [Java client](https://github.com/seenukarthi/tldr-java-client)
- [Keypirinha Plugin](https://github.com/ronan696/keypirinha-tldr)
- [Node.js client](https://github.com/tldr-pages/tldr-node-client):
`npm install -g tldr`
- [OCaml client](https://github.com/RosalesJ/tldr-ocaml): `opam install tldr`
- [Outfieldr](https://gitlab.com/ve-nt/outfieldr): A Zig client
- [Perl5 client](https://github.com/skaji/perl-tldr):
`cpanm App::tldr`
- [PHP client](https://github.com/BrainMaestro/tldr-php):
`composer global require brainmaestro/tldr`
- Python clients:
- [tldr-python-client](https://github.com/tldr-pages/tldr-python-client):
`pip install tldr` or `pacman -S tldr` on Arch Linux
- [tldr.py](https://github.com/lord63/tldr.py):
`pip install tldr.py` or `apt-get install tldr-py` on Debian-based distributions
- [R client](https://github.com/kirillseva/tldrrr):
`devtools::install_github('kirillseva/tldrrr')`
- [Ruby client](https://github.com/YellowApple/tldrb):
`gem install tldrb`
- [Rust client](https://github.com/dbrgn/tealdeer):
`cargo install tealdeer` or `brew install tealdeer`
- [Vim Client](https://github.com/wlemuel/vim-tldr)
- [Visual Studio Code extension](https://github.com/bmuskalla/vscode-tldr) available on [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=bmuskalla.vscode-tldr)
- Web clients:
- [tldr.dendron.so](https://github.com/kevinslin/seed-tldr): https://tldr.dendron.so
- [tldr.jsx](https://github.com/ostera/tldr.jsx): http://tldr.ostera.io
- [tldr.finzzz.net](https://git.finzzz.net/tldr/): https://tldr.finzzz.net
- [DistroWatch](https://distrowatch.com/dwres.php?resource=man-pages)
- [tldr.ooops.me](https://tldr.ooops.me): web client with multilingual support
- [TLDR Persian](https://opoet7.github.io/tldr-persian/): Web Client in Persian
Then you have direct access to simplified, easy-to-read help for commands, such as `tar`,
accessible through typing `tldr tar` instead of the standard `man tar`.
There is also a comprehensive
[list of clients in our Wiki](https://github.com/tldr-pages/tldr/wiki/tldr-pages-clients).
If you want an offline version without installing any software,
check out the [PDF version](https://tldr.sh/assets/tldr-book.pdf).
## How do I contribute?
For browsing without installing a client to your computer,
see the web client at <https://tldr.inbrowser.app> (with offline support using PWA).
- Your favourite command isn't covered?
- You can think of more examples for an existing command?
There are also **various other clients** provided by the community,
both for the command-line and for other platforms.
For a comprehensive list of clients, head over to our [Wiki](https://github.com/tldr-pages/tldr/wiki/tldr-pages-clients).
## How do I contribute to tldr-pages?
All `tldr` pages are kept as Markdown files right here in this repository,
so you can edit them directly and submit your changes as pull requests.
All contributions are welcome!
Some ways to contribute include:
- Adding your favorite command which isn't covered.
- Adding examples or improving the content of an existing page.
- Adding requested pages from our issues with the [help wanted](https://github.com/tldr-pages/tldr/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) label.
- Translating pages into different languages.
All `tldr` pages are written in markdown, so they can be edited quite easily and changes can be submitted in
pull requests here using Git on the command-line or
using the GitHub web interface.
We strive to maintain a [welcoming and collaborative](GOVERNANCE.md) community.
If it's your first time contributing, have a look at the [contributing guidelines](CONTRIBUTING.md), and go ahead!
Have a look at the [contributing guidelines](CONTRIBUTING.md), and go ahead!
If you'd like to contribute to translations, you can visit <https://lukwebsforge.github.io/tldri18n/>
to see the overall progress of all translations, and which translations are missing or outdated.
to see the current progress of all translations.
## Similar projects
- [Command Line Interface Pages](https://github.com/command-line-interface-pages)
allows you to write standardized help pages for CLI, directories and configs.
- [Cheat](https://github.com/cheat/cheat)
allows you to create and view interactive cheatsheets on the command-line.
It was designed to help remind *nix system administrators of options
for commands that they use frequently, but not frequently enough to remember.
- [cheat.sh](https://cheat.sh/)
Aggregates cheat sheets from multiple sources (including tldr-pages)
into 1 unified interface.
- [devhints](https://devhints.io/)
Rico's cheatsheets are not just focused on the command-line and
include a plethora of other cheatsheets related to programming.
- [eg](https://github.com/srsudar/eg)
provides detailed examples with explanations on the command-line.
Examples come from the repository, but `eg` supports displaying
custom examples and commands alongside the defaults.
- [kb](https://github.com/gnebbia/kb)
is a minimalist command-line knowledge base manager.
kb can be used to organize your notes and cheatsheets in a minimalist
and clean way. It also supports non-text files.
- [navi](https://github.com/denisidoro/navi)
is an interactive cheatsheet tool, which allows you to browse through
specific examples or complete commands on the fly.
- [bropages (deprecated)](http://bropages.org)
- [Bro pages](http://bropages.org/)
are a highly readable supplement to man pages.
It shows concise, common-case examples for Unix commands.
Bro pages show concise, common-case examples for Unix commands.
The examples are submitted by the user base, and can be voted up or down;
the best entries are what people see first when they look up a command.
- [kb](https://github.com/gnebbia/kb)
is a minimalist command line knowledge base manager.
kb can be used to organize your notes and cheatsheets in a minimalist
and clean way. It supports also non-text files.
- [eg](https://github.com/srsudar/eg)
provides detailed examples with explanations on the command line.
Examples come from the repository, but `eg` supports displaying
custom examples and commands alongside the defaults.
- [devhints](https://devhints.io/)
Rico's cheatsheets are not just focused on the command line and
include a plethora of other cheatsheets related to programming.
## What does "tldr" mean?
TL;DR stands for "Too Long; Didn't Read".
It originated as Internet slang, where it is used to indicate that a long text
It originates in Internet slang, where it is used to indicate that a long text
(or parts of it) has been skipped as too lengthy.
Read more in How-To Geek's [article](https://www.howtogeek.com/435266/what-does-tldr-mean-and-how-do-you-use-it/).

View File

@ -1,9 +1,7 @@
# Opening a Pull Request
Most people submit pull requests to the tldr-pages project
[using GitHub's web interface][pr-howto].
If you prefer, you can do most of the process using the command-line instead.
If you prefer, you can do most of the process using the command line instead.
The overall process should look somewhat like this:
1. Fork the tldr-pages/tldr repository on the GitHub web interface.
@ -14,9 +12,6 @@ The overall process should look somewhat like this:
3. Create a feature branch, e.g. named after the command you plan to edit:
`git checkout -b {{branch_name}}`
> [!WARNING]
> It is bad practice to submit a PR from the `main` branch of your forked repository. Please create pull requests from a well named feature branch.
4. Make your changes (edit existing files or create new ones)
5. Commit the changes (following the [commit message guidelines][commit-msg]):
@ -25,70 +20,12 @@ The overall process should look somewhat like this:
6. Push the commit(s) to your fork:
`git push origin {{branch_name}}`
> [!WARNING]
> Please avoid force-pushing since it makes the review process harder.
7. Go to the GitHub page for your fork and click the green "Compare & pull request" button.
7. Go to the GitHub page for your fork and click the green "pull request" button.
Please only send related changes in the same pull request.
Typically a pull request will include changes in a single file **unless the pull request is introducing translations**.
(Exceptions are [occasionally acceptable][mass-changes])
Typically a pull request will include changes in a single file.
(Exceptions are [occasionally acceptable][mass-changes].)
[pr-howto]: ../CONTRIBUTING.md#submitting-a-pull-request
[commit-msg]: ../CONTRIBUTING.md#commit-message
[mass-changes]: https://github.com/tldr-pages/tldr/pulls?&q=is:pr+is:merged+label:"mass+changes"
# Updating your fork
Forks of GitHub repositories aren't updated automatically. To keep your fork up-to-date with the latest changes and avoid merge conflicts, you should update it regularly.
There are two ways to update your fork.
1. Via the GitHub web interface. Click `Fetch upstream` and then `Fetch and merge` on the fork as shown below:
![Fetch and merge button in GitHub](../images/github-fetch-and-merge-button.png)
2. Using Git in the terminal:
```bash
git checkout main
git remote add upstream https://github.com/tldr-pages/tldr.git # only run if you don't already have the upstream remote (check with "git remote -v")
git fetch upstream main
git rebase upstream/main # in case you have any merge conflicts, click the link below to see how to resolve them
git push --force-with-lease # not needed if you only want to update your local repository
```
[How to resolve merge conflicts](https://docs.github.com/en/github/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line)
# Changing the email of your last commit
If the email that you used for the last commit isn't associated with your GitHub account, you can either add it [here](https://github.com/settings/emails) or change the email of the commit with the following commands:
```bash
git commit --amend --author="Your Name <new.email@example.com>"
git push --force-with-lease
```
# Changing the email of any commit(s)
1. Perform an [interactive rebase](https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt--i), specifying the reference of the earliest commit to modify as the argument. For example, if the earliest commit with the wrong email address was 6 commits ago, you can specify the commit hash or just `HEAD~6`.
```bash
git rebase --interactive HEAD~6
```
2. You'll see a list of commits starting from the referenced commit to `HEAD`. All of them will default to the instruction `pick`, this means use the commit as-is when replaying them. For the commits you want to edit, replace the word `pick` for `edit`, then save and exit the editor.
3. The branch will rewind to the referenced commit, then replay them until it reaches a commit with the `edit` instruction. Amend the commit for the correct email address, then continue rebasing. Repeat this step until you've successfully finishing rebasing and replayed all commits.
```bash
git commit --amend --author "Your Name <correct@example.org>"
git rebase --continue
```
4. Finally, because you modified the branch history, you'll need to force push back to your remote repository.
```bash
git push --force-with-lease
```
[![asciicast](https://asciinema.org/a/fFMZzQOgJyfUf8HTnXyRj0v02.svg)](https://asciinema.org/a/fFMZzQOgJyfUf8HTnXyRj0v02)

View File

@ -3,15 +3,14 @@
The following guidelines are meant to provide a general basis
for the behavior expected of tldr-pages maintainers.
> [!NOTE]
> This text is a living standard;
> that is, it is meant to *describe* the project's maintenance practices,
> rather than *prescribe* them.
> As a maintainer, you're expected to refer to it for clarification
> about the collaborative workflows of the project,
> but also to propose changes to it
> that you feel would make it more useful
> as a guideline for current and future maintainers.
*Note:* This text is a living standard;
that is, it is meant to *describe* the project's maintenance practices,
rather than *prescribe* them.
As a maintainer, you're expected to refer to it for clarifications
about the collaborative workflows of the project,
but also to propose changes to it
that you feel would make it more useful
as a guideline for current and future maintainers.
## I. Responding to contributions
@ -26,8 +25,8 @@ for the behavior expected of tldr-pages maintainers.
You can respond yourself
or ask other members to provide their thoughts/opinions.
In addition, if possible, try to hang around in the
[Matrix chat room](https://matrix.to/#/#tldr-pages:matrix.org)
regularly as well, or at least show up every now and then.
[Gitter chat room](https://gitter.im/tldr-pages/tldr)
on a regular basis as well, or at least show up every now and then.
- **Know when and how to say no**.
Sometimes requests or contributions need to be declined,
@ -40,15 +39,15 @@ for the behavior expected of tldr-pages maintainers.
- Always remember to **thank every contribution**,
even when it can't be accepted (in fact, especially then).
Keep in mind that
[every form of contribution](https://github.com/all-contributors/all-contributors)
[every form of contribution](https://github.com/kentcdodds/all-contributors)
(pull request, feature request, bug report, etc.)
is a voluntary gift of time offered to the tldr-pages project
by someone who cares about it,
so make sure it's clear that we don't take it for granted.
so make sure it's clear that that we don't take it for granted.
- Try to **keep the entire contribution process web-based**, if possible,
to ensure it is accessible and straightforward.
If you're comfortable with Git, consider offering to perform
If you're comfortable with git, consider offering to perform
interactive rebases or other command-line operations
on behalf of contributors,
or assisting them if they want to do it themselves.
@ -57,21 +56,22 @@ for the behavior expected of tldr-pages maintainers.
- PRs should be merged once they
(1) **pass the automated tests** (GitHub Actions, CLA signing, etc.),
(2) have the **review comments addressed**,
(3) get **approved reviews by two maintainers** (the second maintainer can merge immediately after approving).
(2) have the **review comments addressed**, and
(3) get **approved reviews by two maintainers**
(the second maintainer can perform the merge immediately after accepting.)
- If a PR fails to get a review from a second maintainer after a few days,
the first maintainer should ping others for review. If it still lingers around
for **over a week without a second maintainers approval**,
the first maintainer (if Owner) can go ahead and merge it. Otherwise, a message
can be sent in the chatroom asking other maintainers to review the PR.
the first maintainer can go ahead and merge it.
- If the only issues holding up a merge are **trivial fixes**
(typos, syntax errors, etc.), and the author doesn't respond in a day or two,
**maintainers can make the necessary changes themselves**,
and proceed with the merge process.
- If a PR **stops getting feedback from the submitter** for more than a month,
- If a PR **stops getting feedback from the submitter** and is marked as stale
by [probot-stale](../.github/stale.yml),
any maintainer can choose to take over the PR
and make the necessary changes to get the content ready for merging.
@ -85,7 +85,7 @@ for the behavior expected of tldr-pages maintainers.
or if the multiple commits are not semantically independent changes,
use the `Squash and merge` method.
(Don't forget to clean up the body of the squashed commit message.)
If instead, the PR author took the time to craft
If instead the PR author took the time to craft
individual, informative messages for each commit,
then use the `Rebase and merge` method,
to honor that work and preserve the history of the changes.
@ -93,19 +93,10 @@ for the behavior expected of tldr-pages maintainers.
is that if there are more "dirty" commits than "clean" commits,
then prefer squash, else do a rebase.
- Although having push access allows committing directly to the repository to all branches (except main),
please **create pull requests for all of your changes**.
- Although having push access allows committing directly to the repository,
please **create pull requests for all of your changes**,
except the simplest ones (e.g. typo fixes).
This ensures that the entire process that regular contributors go through
is also exposed to maintainers,
who can then identify and address bottlenecks or inconveniences.
Similarly, **avoid merging your own PRs** unless approved by other maintainers.
- At the last week of October, all applicable PRs that wouldn't get merged
in time can be labeled as `hacktoberfest-accepted`.
## III. Transparency
- All non-confidential requests/mail made/sent on behalf of the project
should be documented as an issue with the [archive](https://github.com/tldr-pages/tldr/issues?q=label%3Aarchive) label
and must be communicated with other maintainers.
- All repository/organization settings changes must be documented as an issue with the [archive](https://github.com/tldr-pages/tldr/issues?q=label%3Aarchive) label.

View File

@ -1,93 +0,0 @@
# Style guide
Diese Seite listet alle Regeln für `tldr`-Seiten auf.
## Layout
Eine Standard-`tldr`-Seite sollte dem folgenden Format entsprechen:
```md
# befehl
> Kurze Beschreibung.
> Möglichst nur eine Zeile; wenn nötig, sind zwei akzeptabel.
> More information: <https://example.com>.
- Beispielbeschreibung:
`befehl -opt1 -opt2 -arg1 {{arg_wert}}`
- Beispielbeschreibung:
`befehl -opt1 -opt2`
```
Es gibt einen Linter, der das obige Format prüft.
Er wird automatisch bei jeder Pull Request ausgeführt,
er kann aber auch manuell installiert werden, um seine Seiten schon vorher zu überprüfen:
```sh
npm install --global tldr-lint
tldr-lint {{seite.md}}
```
Für andere Optionen von `tldr-lint`, wie zum Beispiel das Linten eines ganzen Verzeichnisses:
[`tldr tldr-lint`](https://github.com/tldr-pages/tldr/blob/main/pages/common/tldr-lint.md). Alternativ, kann man auch den Alias `tldrl` verwenden.
Viele Clients unterstützen die `--render` Flag zum Anzeigen einer Seite:
```sh
tldr --render {{seite.md}}
```
## Token-Syntax
Eingaben der Nutzer\*innen sollten die `{{Token}}`-Syntax benutzen,
damit `tldr`-Clients sie hervorheben können.
Die folgenden Regeln sollten für Tokens beachtet werden:
1. Kurze und deskriptive Tokens,
z. B. `{{source_file}}` oder `{{wallet.txt}}`.
2. Benutze `snake_case` <!--TODO: german wikipedia article for snake_case--> für Tokens, die aus mehreren Wörtern bestehen.
3. Benutze `{{filename}}` statt `{{file_name}}`.
4. Benutze für Pfade von Dateien oder Verzeichnissen das Format `{{path/to/<Platzhalter>}}`.
Beispielsweise `ln -s {{path/to/file}} {{path/to/symlink}}`.
Benutze für Platzhalter, die ein Pfad zu einer Datei oder einem Verzeichnis sein können `{{path/to/file_or_directory}}`
5. Folge der `{{path/to/<Platzhalter>}}`-Konvention für alle Pfad-bezogenen Befehle, außer wenn der
Ort der Datei implizit ist.
6. Wenn ein Befehl eine bestimmte Dateiendung erwartet, benutze sie.
Beispiel: `unrar x {{compressed.rar}}`.
Für eine generelle Dateiendung, benutze `{{.ext}}`, aber **nur**, wenn eine Endung wirklich nötig ist.
Beispielsweise, in find.md's Beispiel "Find files by extension" (`find {{root_path}} -name '{{*.ext}}'`)
erklärt `{{*.ext}}` den Befehl ohne unnötig spezifisch zu sein;
Aber in einem Befehl wie `wc -l {{file}}`, genügt `{{file}}` (ohne Endung).
7. Wenn das Beispiel mit einem konkreten Wert klarer ist, nutze einen Beispielwert.
Benutze beispielsweise `iostat {{2}}` statt `iostat {{interval_in_secs}}`.
8. Wenn ein Befehl irreversible Änderungen am Dateisystem oder Geräten vornimmt, schreibe jedes Beispiel so, dass es nicht blind copy-pastet werden kann.
Schreibe beispielsweise `ddrescue --force --no-scrape {{/dev/sdX}} {{/dev/sdY}}` statt `ddrescue --force --no-scrape /dev/sda /dev/sdb`und benutze den `{{/dev/sdXY}}`-Platzhalter statt `/dev/sda1` für *blockgeräte*.
Generell sollten Tokens es so intuitiv wie möglich machen,
herauszufinden, wie der Befehl funktioniert und sie mit Werten auszufüllen.
Technische Begriffe in der Beschreibung sollten die `Backtick`-Syntax (\`) benutzen.
Benutze Backticks für Folgendes:
1. Pfade, wie `package.json`, `/etc/package.json`.
2. Dateiendungen, wie `.dll`.
3. Befehle, wie `ls`.
## Serial Comma
Benutze für eine Liste von 3 oder mehr Elementen ein [serial comma](https://en.wikipedia.org/wiki/Serial_comma), um Mehrdeutigkeiten zu verhindern.
> Delete the Git branches, tags and remotes.
Das obige Beispiel nutzt kein serial comma und ist somit mehrdeutig:
- Lösche die Git Branches namens `tags` und `remotes`.
- Lösche die Git Branches und die Git Tags und die Git Remotes.
Dies kann durch ein Komma vor "and" oder "or" gelöst werden.
> Delete the Git branches, tags, and remotes.

View File

@ -1,166 +0,0 @@
# 스타일 가이드
이 페이지는 `tldr` 페이지에 대한 형식 지정 지침들을 나열합니다.
## 레이아웃
각 페이지의 기본 포맷은 다음 템플릿과 일치해야 하며, 다음과 최대 8개의 명령어 예제를 포함해야 합니다:
```md
# 명령어 이름
> 짧고 간결한 설명
> 보통 1줄, 필요한 2줄 까지 허용됨
> 더 많은 정보: <https://example.com/command_name/help/page>.
- 코드 설명:
`command_name options`
- 코드 설명:
`command_name options`
...
```
예시:
```md
# 명령어 이름
# krita
> krita는 디지털 아티스트를 위해 설계된 스케치/페인팅 프로그램입니다.
> `gimp` 페이지도 참조하세요.
> 더 많은 정보: <https://docs.krita.org/en/reference_manual/linux_command_line.html>.
- krita 시작:
`krita`
- 로딩 화면 없이 시작:
`krita --nosplash`
- 특정 파일 열기:
`krita {{path/to/image1 path/to/image2 ...}}`
- 특정 workspace (`Animation`) 에서 시작:
`krita --workspace {{Animation}}`
- 전체화면으로 시작:
`krita --fullscreen`
```
> :bulb: 도움말 페이지는 매뉴얼 뿐 아니라 문서, 프로젝트, 튜토리얼 등이 될 수 있습니다.
> 그러나, 문서 페이지를 권장합니다.
위의 형식들을 강제하는 linter가 있습니다.
모든 pull 요청에 대해 자동으로 실행되지만, 제출하기 전 local에서 테스트하기 위해 설치할 수 있습니다.
```sh
npm install --global tldr-lint
tldr-lint path/to/tldr_page.md
```
`tldr-lint`를 사용하기 위한 여러 방법들이 많습니다. 다음은 이에 대한 안내 페이지입니다. 확인해 보세요! [`tldr tldr-lint`](https://github.com/tldr-pages/tldr/blob/main/pages/common/tldr-lint.md).
별칭 `tldrl`을 쓸 수도 있습니다.
Client는 `--render` 명령어를 통해 local에서 페이지를 미리 볼 수 있습니다.
```sh
tldr --render path/to/tldr_page.md
```
### Aliases
만약 명령어를 다른 별칭으로 부를 수 있는 경우 (ex: `vim``vi`) 사용자가 원래 명령 이름을 가리키도록 별칭 페이지를 만들 수 있습니다.
```md
# 명령어 이름
> 이 명령어는 `originam-command-name`의 별칭입니다.
> 더 많은 정보는 <https://example.com/original/command/help/page>를 참조하세요.
- 원래 명령어에 대한 문서:
`tldr vim`
```
- 번역된 별칭 페이지 템플릿은 [여기](https://github.com/tldr-pages/tldr/blob/main/contributing-guides/translation-templates/alias-pages.md)에서 확인할 수 있습니다.
## Token syntax
사용자 입력 값은 `tldr` 클라이언트에게 강조될 수 있도록 `{{token}}` 구문을 사용해야 합니다.
토큰을 선택할 때 다음의 가이드라인을 염두에 두십시오:
### Naming
- 짧지만 설명적인 토큰을 사용하세요.
- 파일 및 디렉토리 경로에 대한 참조의 경우:
`{{path/to/<placeholder>}}`의 포맷을 사용하세요.
(암시적인 경로인 경우는 제외!)
- 경로가 상대경로일 수 없지만 파일 시스템의 root에서 시작해야 하는 경우
접두사로 `/`를 붙입니다.
(ex: `get {{/path/to/remote_file
- 파일 및 디렉토리 참조가 모드 가능한 경우
`{{path/to/file_or_directory}}`를 사용하세요.
### Extensions
- 파일에 특정 확장자가 필요한 경우 추가하십시오.
(ex: `unrar x {{compressed.rar}}`)
- 만약 일반적인 확장자가 필요하다면, **반드시 필요한 경우에만** `{{.ext}}`를 사용하십시오.
예시1: `find.md`의 "확장자로 파일 찾기"(`find {{root_path}} -name '{{*.ext}}'`)는 `{{*.ext}}`를 사용하여 불필요한 내용 없이, 구체적이지 않게 설명합니다.
예시2: `wc -l {{file}}``{{file}}`을 (extension 없이) 사용하는 것 만으로 충분합니다.
### Special Cases
- 만약 명령어가 파일 시스템이나 장치에 돌이킬 수 없는 변경을 수행하는 경우, 모든 예제를 생각 없이 복사하여 붙여넣을 수 없도록 작성하십시오.
예를 들어 `ddrescue --force --no-scrape /dev/sda /dev/sdb` 대신에 `ddrescue --force --no-scrape {{/dev/sdX}} {{/dev/sdY}}`를 사용하고, *block device*에 `/dev/sda1` 대신 `{{/dev/sdXY}}` 자리 표시자를 사용하세요.
- 명령어가 많은 수의 명령어를 포함할 수 있는 경우, 다음과 같이 생략하여 표현하세요.
`{{argument1 argument2 ...}}` 여러 옵션 중 하나가 가능한 경우 `{{either|or}}`로 작성합니다.
일반적으로, 토큰은 가능한 한 직관적이어야 합니다.
명령을 사용하는 방법을 파악하고 값으로 채우십시오.
내용 입력란의 기술 문구는 `backtick` 구문을 사용해야 합니다.
다음과 같이 역따옴표를 사용하십시오.
- Paths, ex. `package.json`, `/etc/package.json`.
- Extensions, ex. `.dll`.
- Commands, ex. `ls`.
## Imperative Mood
예시 설명형은 명령법으로 표현되어야 합니다.
예를 들자면 `List all files.``Listing all files`, `File listing` 등 입니다.
이것은 특별한 경우를 제외하고 기본적으로 **모든 번역에 적용**됩니다.
## Serial Comma
3개 이상의 항목 목록을 선언할 때, Oxford 쉼표라고도 부르는 [연속 쉼표](https://en.wikipedia.org/wiki/Serial_comma)를 사용합니다.
> Git brances, tags, remotes를 삭제하세요.
위의 예는 직렬 쉼표를 사용하지 않으므로 다음 두 가지 중 하나를 의미할 수 있습니다.
- `tags``remotes`라는 Git branch들을 삭제하세요.
- Git branches, Git tag, Git remotes를 모두 삭제하세요.
목록의 마지막 요소에서 "and" 또는 "or" 앞에 쉼표를 삽입하면 이 문제를 해결할 수 있습니다.
> Git branches, tags 및 remotes를 삭제하세요.
## More information links
`More information` 줄에는 작성자가 제공한 문서로 연결하는 것을 권장합니다.
사용할 수 없는 경우, 기본 fallback으로 <https://manned.org>를 사용합니다.

View File

@ -4,490 +4,75 @@ This page lists specific formatting instructions for `tldr` pages.
## Layout
The basic format of each page should match the following template and have at most 8 command examples:
The basic format of each page should match the following template:
```md
# command name
```
# command-name
> Short, snappy command description.
> Short, snappy description.
> Preferably one line; two are acceptable if necessary.
> More information: <https://example.com/command_name/help/page>.
> More information: <https://example.com>.
- Code description:
- Example description:
`command_name options`
`command -opt1 -opt2 -arg1 {{arg_value}}`
- Code description:
- Example description:
`command_name options`
...
`command -opt1 -opt2`
```
Example:
```md
# krita
> A sketching and painting program designed for digital artists.
> See also: `gimp`.
> More information: <https://docs.krita.org/en/reference_manual/linux_command_line.html>.
- Start Krita:
`krita`
- Open specific files:
`krita {{path/to/image1 path/to/image2 ...}}`
- Start without a splash screen:
`krita --nosplash`
- Start with a specific workspace:
`krita --workspace {{Animation}}`
- Start in fullscreen mode:
`krita --fullscreen`
```
> [!NOTE]
> The help page can be any documentation/project/tutorial page, not just a man page,
> but documentation pages are preferred.
There is a linter that enforces the format above.
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:
```sh
npm install --global tldr-lint
tldr-lint path/to/tldr_page.md
```
npm install tldr-lint
tldrl -f {{page.md}}
```
For other ways to use `tldr-lint`, such as linting an entire directory, check out (what else!)
[`tldr tldr-lint`](https://github.com/tldr-pages/tldr/blob/main/pages/common/tldr-lint.md). Alternatively, you can also use its alias `tldrl`.
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/main/pages/common/tldrl.md)
Your client may be able to preview a page locally using the `--render` flag:
```sh
tldr --render path/to/tldr_page.md
```
### PowerShell-Specific Rules
When documenting PowerShell commands, please take note of the following naming conventions.
- The name of the file name must be written in lowercase, such as `invoke-webrequest.md` instead of `Invoke-WebRequest.md`.
- The page title/heading must be written as-is (matching the spelling intended by Microsoft or the PowerShell module author), such as `Invoke-WebRequest` instead of `invoke-webrequest`.
- The command name and options in the examples should also be written as-is, such as `Command-Name {{input}} -CommandParameter {{value}}` instead of `command-name {{input}} -commandparameter {{value}}`.
Due to [various compatibility differences](https://learn.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell) and removed Windows-specific commands in PowerShell 6.x, Ensure that the command works on between **PowerShell 5.1** (aka. the "Legacy Windows PowerShell" as installed in Windows 10 and 11), and the **latest version of the Cross-Platform PowerShell** (formerly known as PowerShell Core). If the command or its options is unavailable or contains different behavior between each version, please kindly note them in the descriptions. For example,
```md
# Clear-RecycleBin
> Clear items from the Recycle Bin.
> This command can only be used through PowerShell versions 5.1 and below, or 7.1 and above.
> More information: <https://learn.microsoft.com/powershell/module/microsoft.powershell.management/clear-recyclebin>.
```
## Aliases
If a command can be called with alternative names (like `vim` can be called by `vi`), alias pages can be created to point the user to the original command name.
```md
# command_name
> This command is an alias of `original-command-name`.
> More information: <https://example.com/original/command/help/page>.
- View documentation for the original command:
`tldr original_command_name`
```
Example:
```md
# vi
> This command is an alias of `vim`.
- View documentation for the original command:
`tldr vim`
If you're using the Node.js client of tldr-pages, you can preview a page locally using the `-f` flag (aka `--render`):
```
- Pre-translated alias page templates can be found [here](https://github.com/tldr-pages/tldr/blob/main/contributing-guides/translation-templates/alias-pages.md).
### PowerShell-Specific Aliases
Some PowerShell commands may introduce aliases which fall into one of these three categories:
**1. Substituting an existing Windows Command Prompt (`cmd`) command**, such as `cd` aliasing to `Set-Location` with different command options. In this case, add the following alias note into the second line of the original Command Prompt command's tldr description, for example:
```md
# cd
> Display the current working directory or move to a different directory.
> In PowerShell, this command is an alias of `Set-Location`. This documentation is based on the Command Prompt (`cmd`) version of `cd`.
> More information: <https://learn.microsoft.com/windows-server/administration/windows-commands/cd>.
- View documentation of the equivalent PowerShell command:
`tldr set-location`
tldr -f {{page.md}}
```
> [!TIP]
> The "View documentation of the equivalent PowerShell command" example is optional and may be excluded if the page already has the maximum number (8) of examples.
## Token syntax
**2. Provides a new alias but only executable in PowerShell**, such as `ni` for `New-Item`. In this case, use the [standard alias template](https://github.com/tldr-pages/tldr/blob/main/contributing-guides/translation-templates/alias-pages.md), but add the word "In Powershell," (or equivalent) to indicate that the command is exclusive to PowerShell. For example,
```md
# ni
> In PowerShell, this command is an alias of `New-Item`.
> More information: <https://learn.microsoft.com/powershell/module/microsoft.powershell.management/new-item>.
- View documentation for the original command:
`tldr new-item`
```
**3. Provides a new alias that conflicts with other programs**, most notoriously the inclusion of `curl` and `wget` as aliases of `Invoke-WebRequest` (with a non-compatible set of command options). Note that PowerShell system aliases that fall into this category are commonly exclusive to Windows.
In this case, provide a note and method to determine whether the command currently refers to a PowerShell command (by alias) or others. For example,
```md
# curl
> In PowerShell, this command may be an alias of `Invoke-WebRequest` when the original `curl` program (<https://curl.se>) is not properly installed.
> More information: <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/invoke-webrequest>.
- Check whether `curl` is properly installed by printing its version number. If this command evaluates into an error, PowerShell may have substituted this command with `Invoke-WebRequest`:
`curl --version`
- View documentation for the original `curl` command:
`tldr curl -p common`
- View documentation for PowerShell's `Invoke-WebRequest` command:
`tldr invoke-webrequest`
```
## Option syntax
- Use **GNU-style long options** (like `--help` rather than `-h`) when they are cross-platform compatible (intended to work the same across multiple platforms).
- When documenting PowerShell commands, use **PowerShell-style long options** (like `-Help` instead of `-H`).
- When long options aren't available for a command, use **short options** instead.
- While we prefer long options, we allow special cases in commands like `pacman` where short options are widely used and preferred over the long options (for cases like these decisions will be made by the maintainers on a case-by-case basis).
- We prefer using a space instead of the equals sign (`=`) to separate options from their arguments (i.e. use `--opt arg` instead of `--opt=arg`) unless the program does not support it.
> [!NOTE]
> The goal of using long options is to make the commands easier to read and understand for non-techincal users. While it is ideal for most users, some users prefer short option for better ease of use. If the command supports both the options, we can highlight the short options using mnemonics instead.
### Short option mnemonics
Short option mnemonics are optional hints which can be added to help users understand the meaning of these short options. The assigned mnemonics should match with the ones in the command's official documentation (e.g. from `man` or `Get-Help`). For example:
```md
- [d]isplay the ins[t]allation [i]D for the current device. Useful for offline license activation:
`slmgr.vbs /dti`
- Display the current license's e[xp]i[r]ation date and time:
`slmgr.vbs /xpr`
```
Note that, in the first example, the `[d]`, `[t]`, and `[i]` characters are enclosed with square brackets to indicate that the `/dti` option of the command is a combination of "display", "installation", and "ID", respectively. Consecutive mnemonic characters can be grouped under the same square brackets, such as `e[xp]i[r]ation` instead of `e[x][p]i[r]ation`.
**Mnemonic characters must be written in a case-sensitive manner**, even when it is placed as the first character of the sentence (i.e. use `[d]isplay` instead of `[D]isplay`). This is to avoid conflicts with GNU-style command options which may interpret uppercase options differently than the lowercase ones, such as `-v` for displaying the command's `[v]ersion` number and `-V` to run the command in `[V]erbose` mode.
Option mnemonics may also be used in translations as long as the highlighted word contains similar meanings to the language (commonly English) which the command is written for. For example, `[d]ownload` in English may be translated into `[d]escargar` in Spanish, `[i]nstall` in English may be translated to `[i]nstallieren` in German, and `[a]pp` in English may be translated into `[a]plikasi` in Indonesian and Malay.
> [!NOTE]
> In cases where the character isn't present in the translated word, you can highlight the option before/next to the equivalent word or you can add the English work beside the translation inside a bracket. For example, `E[x]tract` in English maybe translated into `[x] ekstrak` or `ekstrak [x]` or `ekstrak (E[x]tract)` in Indonesian.
## Placeholder syntax
User-provided values should use the `{{placeholder}}` 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 placeholders:
Keep the following guidelines in mind when choosing tokens:
### Naming
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.
3. Use `{{filename}}` rather than `{{file_name}}`.
4. For any reference to paths to files or directories, use the format `{{path/to/<placeholder>}}`.
For example, `ln -s {{path/to/file}} {{path/to/symlink}}`.
In case of a possible reference both to a file or a directory, use `{{path/to/file_or_directory}}`
5. Follow the `{{path/to/<placeholder>}}` convention for all path-related commands, except when the
file location is implicit.
6. If a command expects the file to have a particular extension, use it.
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.
7. If the example is clearer with an actual value rather than a generic placeholder, use the actual value.
For example, use `iostat {{2}}` rather than `iostat {{interval_in_secs}}`.
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`.
- Use short but descriptive placeholders,
such as `{{path/to/source_file}}` or `{{path/to/wallet.txt}}`.
- Use [`snake_case`](https://wikipedia.org/wiki/snake_case) for multi-word placeholders.
- Use a generic placeholder rather than an actual value where a generic placeholder is available (but there is an exception to this listed below). For example, use
`iostat {{1..infinity}}` rather than `iostat {{2}}`.
- If there are several consecutive placeholders of the same type
which don't allow adding arbitrary text in them (ranges), then instead of generic placeholders use descriptive ones. For example prefer `input swipe {{x_position}} {{y_position}} {{x_position}} {{y_position}} {{seconds}}`
instead of `input swipe {{-infinity..infinity}} {{-infinity..infinity}} {{-infinity..infinity}} {{-infinity..infinity}} {{1..infinity}}`.
### Paths
- Use `{{filename}}` when just file name is expected.
- For any reference to paths of files or directories,
use the format `{{path/to/<placeholder>}}`,
except when the location is implicit.
- When the path cannot be relative,
but has to start at the root of the filesystem,
prefix it with a slash,
such as `get {{/path/to/remote_file}}`.
- In case of a possible reference both to a file or a directory,
use `{{path/to/file_or_directory}}`.
> [!NOTE]
> If the command is specific to Windows, use backslashes (`\`) instead, such as `{{path\to\file_or_directory}}`. Drive letters such as `C:` are optional unless if the command input requires an absolute path or specific drive letter range, such as `cd /d {{C}}:{{path\to\directory}}`.
### Extensions
- If a particular extension is expected for the file, append it.
For example, `unrar x {{path/to/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 {{path/to/root}} -name '{{*.ext}}'`)
using `{{*.ext}}` explains the command without being unnecessarily specific;
while in `wc -l {{path/to/file}}` using `{{path/to/file}}` (without extension) is sufficient.
### Grouping placeholders
- If a command can take 0 or more arguments of the same kind, use an ellipsis: `{{placeholder1 placeholder2 ...}}`.
For instance, if multiple paths are expected `{{path/to/directory1 path/to/directory2 ...}}` can be used.
- If a command can take 0 or more arguments of different kinds, use an ellipsis: `{{placeholder1|placeholder2|...}}`.
If there are more than 5 possible values, you can use `|...` after the last item.
- It's impossible to restrict the minimum or (and) maximum placeholder count via `ellipsis`.
It's up to the program to decide how to handle duplicating values, provided syntax
tells no info about whether items are mutually exclusive or not.
### Special cases
- If a command performs irreversible changes to a file system or devices,
write every example in a way that cannot be copy pasted thoughtlessly.
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`.
In general, placeholders should make it as intuitive as possible
In general, tokens should make it as intuitive as possible
to figure out how to use the command and fill it in with values.
Technical wording on description lines should use the `backtick` syntax.
More technical wording on description lines should use the `backtick` syntax.
Use backticks on the following:
- Paths, e.g. `package.json`, `/etc/package.json`.
- Extensions, e.g. `.dll`.
- Commands, e.g. `ls`.
- Standard streams: `stdout`, `stdin`, `stderr`. **Do not** use the full names (e.g. standard output).
## Descriptions
- Avoid using the page title in the description (e.g. use `A sketching and painting program designed for digital artists` instead of `Krita is a sketching and painting program designed for digital artists`) unless the program name differs from the executable name (e.g. `rg` and Ripgrep).
- Avoid mentioning that the program is used on the command-line (e.g. use `Ripgrep is a recursive line-oriented search tool` instead of `Ripgrep is a recursive line-oriented CLI search tool`).
### Imperative Mood
- **All descriptions must be concise and phrased in the imperative mood.**
- This also applies to all translations by default unless otherwise specified in the language-specific section below.
- For example, when writing documentation for `cd`, a tool to check out and work on a specific directory in the Terminal or Command Prompt, **do not** write a lengthy description such as:
```md
> `cd` is a system tool, available in Windows, macOS, and Linux, to check out a specific directory to get things done in the Command Prompt, Terminal, and PowerShell.
```
It should instead be simplified to make it easier for everyone to read:
```md
> Change the current working directory.
```
If you are afraid the commands may differ between platforms or operating systems (e.g. Windows vs macOS), most [tldr pages clients](https://github.com/tldr-pages/tldr/wiki/tldr-pages-clients) will choose the most suitable version of the command.
In this case, the information of the Windows version of `cd` (stored in `pages/windows/cd.md`) will be displayed by default to Windows users, and a generic/common version (stored in `pages/common/cd.md`) will be displayed for Linux, macOS, and other platforms.
When writing descriptions for command examples, **check for any grammatical errors**. `Go to the specified directory` is preferred instead of:
- `Going to the specified directory` (should not be in present participle form)
- `This command will go to the specified directory` (it is clear that this example works for *this* comment)
- `Let's go to the specified directory!`
- `Directory change` (use the active form instead of passive, if possible)
For instance, instead of `Listing all files:`, `List all files:` can be be used as the example's description below:
```md
- Listing all files:
`ls`
```
## Serial Comma
- When declaring a list of 3 or more items,
use a [serial comma](https://en.wikipedia.org/wiki/Serial_comma),
also known as the Oxford comma,
since omitting it can create ambiguity.
> Delete the Git branches, tags and remotes.
The example above does not use a serial comma, so this could mean one of two things:
- Delete the Git branches named `tags` and `remotes`.
- Delete all of the following: Git branches, Git tags, and Git remotes.
This can be resolved by inserting a comma before the "and" or "or" in the final element in the list.
> Delete the Git branches, tags, and remotes.
## More information links
On the `More information` link line, we prefer linking to the author's provided documentation of the command line reference or man page. When not available, use <https://manned.org> as the default fallback for all platforms (except `osx` and some BSD platforms).
**All links must be enclosed inside angular brackets (`<` and `>`) for proper rendering in clients.**
We prefer translations to use the more information link of the English page by default.
### Versioned links
When a utility or distribution has versioned links for the packages, we prefer linking to the most recent version of documentation (i.e. `latest`) or none if the website automatically redirects to the latest version of the documentation.
For example, use:
- <https://manpages.debian.org/latest/apt/apt.8.html> instead of <https://manpages.debian.org/bookworm/apt/apt.8.en.html>.
- <https://docs.aws.amazon.com/cdk/latest/guide/cli.html> instead of <https://docs.aws.amazon.com/cdk/v2/guide/cli.html>.
### Microsoft Learn links
When linking pages to the Microsoft Learn links, remove the locale from the address as the website will automatically redirect to the reader's preferred locale setting. For example, Use <https://learn.microsoft.com/windows-server/administration/windows-commands/cd> instead of
<https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cd>.
Additionally, if the link is related to PowerShell command documentation, remove the **documentation version indicator** (in which the version of PowerShell/module that the documentation is derived from), aka. the part of the address that starts with `?view=`.
- Use <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/select-string> instead of <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string?view=powershell-7.4>.
- Use <https://learn.microsoft.com/powershell/module/powershellget/install-module> instead of <https://learn.microsoft.com/en-us/powershell/module/powershellget/install-module?view=powershellget-1.x>.
## Language-Specific Rules
### Chinese-Specific Rules
When Chinese words, Latin words and Arabic numerals are written in the same sentence, more attention must be paid to copywriting.
The following guidelines are applied to Chinese (`zh`) and traditional Chinese (`zh_TW`) pages:
1. Place one space before/after English words and numbers.
- For example, use `列出所有 docker 容器` rather than `列出所有docker容器`.
- For example, use `宽度为 50 个字` rather than `宽度为50个字`.
2. Place one space between numbers and units **except** degrees and percentages.
- For example, use `容量 50 MB` rather than `容量 50MB`.
- For instances of degree and percentage, use `50°C` and `50%` rather than `50 °C` and `50 %`.
3. No additional spaces before/after full-width punctuations.
- For example, use `开启 shell进入交互模式` rather than `开启 shell ,进入交互模式`
4. Use full-width punctuations except for long Latin clauses.
- For example, use `嗨,你好。` rather than `嗨, 你好.`
5. Use a half-width punctuation to end a sentence when the last character is half-width.
- For example, use `将代码转化为 Python 3.` rather than `将代码转化为 Python 3。`
6. Use precise form for technical terms, and do not use unofficial Chinese abbreviations.
- For example, use `Facebook` rather than `facebook`, `fb` or `脸书`.
In order to maintain readability and normalization, please comply with the 6 rules above as much as possible when translating pages into Chinese.
For more information and examples of Chinese-specific rules, check out [*Chinese Copywriting Guidelines*](https://github.com/sparanoid/chinese-copywriting-guidelines/blob/master/README.en.md).
### Indonesian-Specific Rules
When translating pages to Indonesian, please keep in mind that we expect `tldr` pages to be easy to read for **both types of Indonesian audiences**, which are:
1. People who prefer to use standard Indonesian technical terms as possible, such as `unduh` for `download`, `awakutu` for `debugging`, and `muat ulang` for `reboot`.
- One of the most comprehensive lists of technical terms can be found under the [BlankOn Linux project](https://dev.blankonlinux.or.id/TimPengembang/Dokumentasi/Panduan/PanduanWiki/KamusBlankOn/).
2. People who prefer to use English words as-is to describe technical terms: `download` for `download`, `debugging` for `debugging`, and `reboot` for `reboot`.
The segmentation of these audiences is clearly noted on [Firefox Public Data Report](https://data.firefox.com/dashboard/usage-behavior):
> For most countries in the top 10, the majority (>90%) of users have their language set to the local language, **with a notable exception in Indonesia, which has about 80% English (US) and 20% Indonesian.**
First, command and example descriptions on pages in Indonesian must be written **without using active verb forms (i.e. those with `ber-` and `me-` prefixes)**. This means that sentences such as:
> **Mengunduh** sebuah file ke dalam suatu direktori
> (i.e. Downloading a file into a directory)
is considered incorrect. The correct form of the sentence should be:
> **Unduh** sebuah file ke dalam suatu direktori
Second, we recommend using the following forms of technical terms to make translated pages easier to read for both types of Indonesian audiences. Some of them may be used as-is, but others must be rewritten using Indonesian standard terms.
| English | Indonesian | Consideration(s) |
|---|---|---|
| App / Application | Aplikasi | The abbreviated word `apl.` is not common to some readers. |
| Boot, Reboot | Muat, Muat ulang | These words are the same for `load` and `reload`. See notes on the bottom section. |
| Client | Klien | |
| Command-line | Command-line | Using the word as-is is preferred over `baris perintah` or `alat berbasis mekanisme baris perintah` (`command-line tool`). |
| Commit (Git) | Commit | |
| Compile, Compiler | Kompilasikan, Pengompilasi | [`kompilasi`](https://kbbi.kemdikbud.go.id/entri/kompilasi) is officially considered as noun. Requires a `-kan` suffix to convert into a verb. |
| Debugger | Debugger | Preferred over `pengawakutu` (`peng`-[`awakutu`](https://kbbi.kemdikbud.go.id/entri/awakutu)) which is unfamiliar to some readers. |
| Device | Perangkat | Preferred over [`peranti`](https://kbbi.kemdikbud.go.id/entri/peranti). |
| Disc | Disc | Preferred over [`cakram`](https://kbbi.kemdikbud.go.id/entri/cakram) which is unfamiliar by some readers. Use specific words if possible (e.g. CD or DVD). |
| Execute / Run (a program...) | Jalankan | Preferred over [`eksekusikan`](https://kbbi.kemdikbud.go.id/entri/eksekusikan) which is longer to read and write. |
| File | File | Preferred over [`berkas`](https://kbbi.kemdikbud.go.id/entri/berkas) which may be unfamiliar by some readers. |
| Generate | Buat | Preferred over [`hasilkan`](https://kbbi.kemdikbud.go.id/entri/hasilkan). Example context: `Buat laporan baru`. |
| Hardware | Perangkat Keras | Preferred over [`peranti`](https://kbbi.kemdikbud.go.id/entri/peranti). |
| Image (as picture or visual image) | Gambar | Do not confuse with `image` as means of storage. |
| Image (as means of storage, such as CD, ISO, and Docker) | Image | Another recommended word, [`citra`](https://kbbi.kemdikbud.go.id/entri/citra), is not officially recognized for computing. |
| Initialize, Reinitialize | Inisialisasikan, Inisialisasikan Ulang | The word [`inisialisasi`](https://kbbi.kemdikbud.go.id/entri/inisialisasi) is officially considered as noun. Requires a `-kan` suffix to convert into a verb. |
| Interpreter | Interpreter | Preferred over [`penerjemah`](https://kbbi.kemdikbud.go.id/entri/penerjemah) which is also commonly used to describe `translator`. |
| Install, Reinstall | Pasang, Pasang Ulang | Preferred over `instal` [which is not considered a standard word](https://kbbi.kemdikbud.go.id/entri/instal). |
| Load, Reload | Muat, Muat ulang | These words are the same for `boot` and `reboot`. See notes in the bottom section. |
| Options / Preferences (macOS) / Settings | Pengaturan | Preferred over [`opsi`](https://kbbi.kemdikbud.go.id/entri/opsi). |
| Server | Server | Preferred over [`peladen`](https://kbbi.kemdikbud.go.id/entri/peladen) or [`pelayan`](https://kbbi.kemdikbud.go.id/entri/pelayan), which are less common when used in computing contexts. |
| Service | Layanan | The Indonesian standard word is acceptable here. |
| Shell (command-line interface) | Syel | The Indonesian standard word is acceptable here. |
| Software | Perangkat Lunak | Preferred over [`peranti`](https://kbbi.kemdikbud.go.id/entri/peranti). |
| Start, Restart | Mulai, Mulai Ulang / Nyalakan, Nyalakan Ulang | See notes on the bottom section. |
| Update | Perbarui | Do not confuse with `upgrade`. |
| Upgrade | Tingkatkan | Do not confuse with `update`. |
When translating sentences that contain the word `boot` and `load` together, please add the context of the item that is being booted and/or loaded, so the use of the `muat` word may not be ambiguous. For example, when translating:
> Load configuration from a specific file after reboot
Instead of translating the sentence into:
> Muat konfigurasi dari file yang ditentukan setelah muat ulang
Add detailed contexts to remove ambiguity (notice the highlighted word):
> Muat konfigurasi dari file yang ditentukan setelah **pengguna** memuat ulang **sistem operasi**
Similarly, for the word `start` / `mulai`
> Mulai proses server web
> (Start the web server process)
To ensure that the sentence may not be confused with `start processing the web server`, you can use other words such as `nyalakan`:
> Nyalakan proses server web
### French-Specific Rules
Command and example descriptions on pages in French must use the third person singular present indicative tense (présent de l'indicatif à la troisième personne du singulier).
For example, use `Extrait une archive` rather than `Extraire une archive` or `Extrais une archive`.
1. Paths, ex. `package.json`, `/etc/package.json`.
2. Extensions, ex. `.dll`.
3. Commands, ex. `ls`.

View File

@ -1,102 +0,0 @@
# 格式指导
当你在为 `tldr` 贡献时,请遵守下面的格式规范。
请注意,下面的规范仅适用于中文翻译的 `tldr` 页面。
## 排版
首先,你的页面应该看起来像这样:
```md
# 命令名称
> 短小精悍的描述。
> 描述最好只有一行;当然,如果需要,也可以是两行。
> 更多信息:<https://example.com>.
- 命令描述:
`命令 -选项1 -选项2 -参数1 {{参数的值}}`
- 命令描述:
`命令 -选项1 -选项2`
```
当你将自己的贡献提交 pull request 时,一个脚本会自动检查你的贡献是否符合上面的格式。
你也可以在提交前在本地测试自己的贡献:
```sh
npm install --global tldr-lint
tldr-lint {{page.md}}
```
关于 `tldr-lint` 的更多使用方法,例如检查批量检查一整个目录的格式,[`tldr tldr-lint`](https://github.com/tldr-pages/tldr/blob/master/pages/common/tldr-lint.md) 是你的不二去处!
如果你用 tldr-pages 的 Node.js 客户端,你可以在命令后加 `-f` (`--render`) 来在本地预览自己的页面:
```sh
tldr --render {{page.md}}
```
## 占位符token语法
当命令涉及用户自己提供的值时,请用 `{{token}}` 语法来使 `tldr` 客户端自动高亮它们:
`tar -cf {{目标.tar}} {{文件1}} {{文件2}} {{文件3}}`
翻译时,请尽量翻译原文中的西文占位符。下面是命名占位符的规则:
1. 占位符需要短小精悍,
例如 `{{源文件}}` 或者 `{{钱包.txt}}`
2. 如果占位符是西文,请用 [`snake_case`](https://en.wikipedia.org/wiki/Snake_case) 来分词。
3. 当占位符涉及文件路径时,请用 `{{目录/子目录/<占位符>}}` 的格式。
例如:`ln -s {{目录/子目录/源文件}} {{目录/子目录/链接}}`
如果占位符提到的文件也可能是目录,请用 `{{目录/子目录/文件或目录}}`
4. 除非文件是特定的,上述 `{{目录/子目录/<占位符>}}` 的文件路径格式应用于所有包含路径的命令。
5. 如果命令需要的文件扩展名是固定的,请在占位符里加上文件格式。
例如:`unrar x {{压缩包.rar}}`
如果文件 **必须** 有一个扩展名,请用 `{{.ext}}`
例如,在 `find {{起始目录}} -name '{{*.ext}}'` 的例子里,
这样做简单地演示了查找一个特定文件扩展名的方法。
但是,在 `wc -l {{file}}` 的例子里,用不加扩展名的 `{{file}}` 就足够了。
6. 如果用实际的值比描述这个占位符更加明了,请举一个值做例子。
例如:`iostat {{2}}` 比 `iostat {{以秒为单位的间隔}}` 更清晰。
7. 如果一个命令可能对文件系统或设备造成不可逆的影响,请在示例命令中注意改写,使其不能被盲目复制粘贴运行。
例如,`ddrescue --force --no-scrape /dev/sda /dev/sdb` 被盲目复制粘贴时可能对系统造成毁灭性的打击;`ddrescue --force --no-scrape {{/dev/sdX}} {{/dev/sdY}}` 则更安全。
因此,请用 `{{/dev/sdXY}}` 而不是 `{{/dev/sda1}}` 来表示一个 **块设备**
占位符应该尽可能简单明了,让人一眼就能看出应该替换它的值。
在命令描述中,如果出现了技术性的专有名词,请用 `反引号` 括起来:
1. 路径,例如 `package.json``/etc/package.json`.
2. 扩展名,例如 `.dll`.
3. 命令,例如 `ls`.
## 中西文混排规则
中文、西文、阿拉伯数字写在同一个句子时,需要注意排版。
以下规则适用于中文zh和繁体中文zh_TW
1. 在西文单词和数字前后放置一个空格。
例如:`列出所有 docker 容器` 而不是 `列出所有docker容器`
例如:`宽度为 50 个字` 而不是 `宽度为50个字`
2. 除了度数和百分比,在数字和单位之间留一个空格。
例如:`容量 50 MB` 而不是 `容量 50MB`
对于度数和百分比:使用 `50°C``50%` 而不是 `50 °C``50 %`.
3. 不要在全角标点符号前后放置空格。
例如:`开启 shell进入交互模式` 而不是 `开启 shell ,进入交互模式`
4. 除了西文长句,一律使用全角标点符号。
例如:`嗨,你好。` 而不是 `嗨, 你好.`
5. 当最句子最后一个字符是半角时,使用半角标点符号来结束句子。
例如:`将代码转化为 Python 3.` 而不是 `将代码转化为 Python 3。`
6. 使用精准的专有名词,不要使用非官方的中文缩写。
例如:`Facebook` 而非 `facebook`、`fb` 或 `脸书`
为保持可读性和一致性,将页面翻译成中文时,请尽可能遵守以上 6 条规则。
有关更多中西文混排规则的信息,请参考 [《中文文案排版指北》](https://github.com/sparanoid/chinese-copywriting-guidelines)。

View File

@ -1,555 +0,0 @@
# Alias pages
In order to document a command which is an alias of another command, you can
write an alias page. This file contains a list of all translations of the alias
page template decided upon in
[#5368](https://github.com/tldr-pages/tldr/pull/5368).
The templates can be changed when necessary.
[en](#en) •
[ar](#ar) •
[bn](#bn) •
[bs](#bs) •
[ca](#ca) •
[cs](#cs) •
[da](#da) •
[de](#de) •
[es](#es) •
[fa](#fa) •
[fi](#fi) •
[fr](#fr) •
[hi](#hi) •
[id](#id) •
[it](#it) •
[ja](#ja) •
[ko](#ko) •
[lo](#lo) •
[ml](#ml) •
[ne](#ne) •
[nl](#nl) •
[no](#no) •
[pl](#pl) •
[pt_BR](#pt_br) •
[pt_PT](#pt_pt) •
[ro](#ro) •
[ru](#ru) •
[sh](#sh) •
[sr](#sr) •
[sv](#sv) •
[ta](#ta) •
[th](#th) •
[tr](#tr) •
[uk](#uk) •
[uz](#uz) •
[zh](#zh) •
[zh_TW](#zh_tw)
---
### en
```markdown
# example
> This command is an alias of `example`.
- View documentation for the original command:
`tldr example`
```
---
### ar
```markdown
# example
> هذا الأمر هو اسم مستعار لـ `example`.
- إعرض التوثيقات للأمر الأصلي:
`tldr example`
```
---
### bn
```markdown
# example
> এই কমান্ড একটি উপনাম `example`.
- মূল কমান্ডের জন্য ডকুমেন্টেশন দেখুন:
`tldr example`
```
---
### bs
```markdown
# example
> Ova komanda je pseudonim za `example`.
- Pogledaj dokumentaciju za izvornu komandu:
`tldr example`
```
---
### ca
```markdown
# example
> Aquest comandament és un àlies de `example`.
- Veure documentació pel comandament original:
`tldr example`
```
---
### cs
```markdown
# example
> Tento příkaz je aliasem pro `example`.
- Podívejte se na dokumentaci původního příkazu:
`tldr example`
```
---
### da
```markdown
# example
> Denne kommando er et alias af `example`.
- Se dokumentation for den oprindelige kommando:
`tldr example`
```
---
### de
```markdown
# example
> Dieser Befehl ist ein Alias von `example`.
- Zeige die Dokumentation für den originalen Befehl an:
`tldr example`
```
---
### es
```markdown
# example
> Este comando es un alias de `example`.
- Ver documentación para el comando original:
`tldr example`
```
---
### fa
```markdown
# example
> این دستور یک نام مستعار از `example` است.
- مشاهده مستندات دستور اصلی :
`tldr example`
```
---
### fi
```markdown
# example
> Tämä komento on `example`:n alias.
- Katso alkuperäisen komennon dokumentaatiossa:
`tldr example`
```
---
### fr
```markdown
# example
> Cette commande est un alias de `example`.
- Voir la documentation de la commande originale :
`tldr example`
```
---
### hi
```markdown
# example
> यह आदेश `example` का उपनाम है।
- मूल आदेश के लिए दस्तावेज़ देखें:
`tldr example`
```
---
### id
```markdown
# example
> Perintah ini merupakan alias dari `example`.
- Menampilkan dokumentasi untuk perintah asli:
`tldr example`
```
---
### it
```markdown
# example
> Questo comando è un alias per `example`.
- Consulta la documentazione del comando originale:
`tldr example`
```
---
### ja
```markdown
# example
> このコマンドは `example` のエイリアスです。
- オリジナルのコマンドのドキュメントを表示する:
`tldr example`
```
---
### ko
```markdown
# example
> 이 명령은 `example` 의 에일리어스 (별칭) 입니다.
- 원본 명령의 도큐멘테이션 (설명서) 보기:
`tldr example`
```
---
### lo
```markdown
# example
> ຄຳສັ່ງນີ້ເປັນອີກຊື່ໜຶ່ງຂອງຄຳສັ່ງ `example`.
- ເປີດເບິ່ງລາຍລະອຽດຂອງຄຳສັ່ງແບບເຕັມ:
`tldr example`
```
---
### ml
```markdown
# example
> ഈ കമാൻഡ് `example` എന്നത്തിന്റെ അപരനാമമാണ്.
- യഥാർത്ഥ കമാൻഡിനായി ഡോക്യുമെന്റേഷൻ കാണുക:
`tldr example`
```
---
### ne
```markdown
# example
> यो आदेश `example` को उपनाम हो |
- मौलिक आदेशको लागि कागजात हेर्नुहोस्:
`tldr example`
```
---
### nl
```markdown
# example
> Dit commando is een alias van `example`.
- Bekijk de documentatie van het originele commando:
`tldr example`
```
---
### no
```markdown
# example
> Denne kommandoen er et alias for `example`.
- Vis dokumentasjonen for den opprinnelige kommandoen:
`tldr example`
```
---
### pl
```markdown
# example
> To polecenie jest aliasem `example`.
- Zobacz dokumentację oryginalnego polecenia:
`tldr example`
```
---
### pt_BR
```markdown
# example
> Este comando é um pseudônimo de `example`.
- Ver documentação sobre o comando original:
`tldr example`
```
---
### pt_PT
```markdown
# example
> Este comando é um alias de `example`.
- Ver documentação do comando original:
`tldr example`
```
---
### ro
```markdown
# example
> Această comandă este un alias al `example`.
- Vizualizați documentația pentru comanda originală:
`tldr example`
```
---
### ru
```markdown
# example
> Эта команда — псевдоним для `example`.
- Смотри документацию для оригинальной команды:
`tldr example`
```
---
### sh
Not translated yet.
---
### sr
```markdown
# example
> Ова наредба је псеудоним `example`.
- Погледајте документацију за оригиналну команду:
`tldr example`
```
---
### sv
```markdown
# example
> Det här kommandot är ett alias för `example`.
- Se dokumentationen för orginalkommandot:
`tldr example`
```
---
### ta
```markdown
# example
> இக்கட்டளை `example` கட்டளையின் மற்றொருப் பெயர்.
- அக்கட்டளையின் விளக்கத்தைக் காண:
`tldr example`
```
---
### th
```markdown
# example
> คำสั่งนี้เป็นอีกชื่อหนึ่งของคำสั่ง `example`
- เรียกดูรายละเอียดสำหรับคำสั่งตัวเต็ม:
`tldr example`
```
---
### tr
```markdown
# example
> Bu komut `example` için bir takma addır.
- Asıl komutun belgelerini görüntüleyin:
`tldr example`
```
---
### uk
```markdown
# example
> Ця команда є псевдонімом для `example`.
- Дивись документацію для оригінальної команди:
`tldr example`
```
---
### uz
```markdown
# example
> Ushbu buyruq taxallus `example`.
- Asl buyruq uchun hujjatlarni ko'rish:
`tldr example`
```
---
### zh
```markdown
# example
> 这是 `example` 命令的一个别名。
- 原命令的文档在:
`tldr example`
```
---
### zh_TW
```markdown
# example
> 這是 `example` 命令的一個別名。
- 原命令的文件在:
`tldr example`
```

View File

@ -1,44 +0,0 @@
# Common arguments
This page provides translations of commonly used arguments to simplify maintaining pages in foreign languages.
The best way to edit this file is by using [tableconvert.com](https://tableconvert.com/).
There, the old table can be **imported**, **edited** in a WYSIWYG editor and **exported** again.
Only the left-alignment of the header gets lost and has to be re-added again (`|----` → `|:---`).
| en | path/to/file | path/to/directory | path/to/file_or_directory | package | username |
|:------|:---------------------|:-----------------------|:----------------------------------|:----------|:------------------|
| ar | المسار/إلى/الملف | المسار/إلى/الدليل | المسار/إلى/الملف_أو_الدليل | حزمة | اسم_المستخدم |
| bn | পাথ/টু/ফাইল | পাথ/টু/ডিরেক্টরি | পথ/থেকে/ফাইল_অথবা_ডিরেক্টরি | প্যাকেজ | ইউজারনেম |
| bs | | | | | |
| ca | camí/al/fitxer | camí/al/directori | camí/al/fitxer_o_directori | paquet | nom_usuari |
| cs | cesta/k/souboru | cesta/k/adresari | cesta/k/souboru_ci_adresari | balíček | jmeno_uzivatele |
| da | sti/til/fil | sti/til/mappe | sti/til/fil_eller_mappe | pakke | brugernavn |
| de | pfad/zu/datei | pfad/zu/verzeichnis | pfad/zu/datei_oder_verzeichnis | paket | benutzername |
| es | ruta/al/archivo | ruta/al/directorio | ruta/al/archivo_o_directorio | paquete | nombre_de_usuario |
| fa | مسیر/به/فایل | مسیر/به/پوشه | مسیر/به/فایل_یا_پوشه | بسته | نام کاربری |
| fi | polku/tiedostoon | polku/hakemistoon | polku/tiedostoon_vai_hakemistoon | paketti | tunnus |
| fr | chemin/vers/fichier | chemin/vers/dossier | chemin/vers/fichier_ou_dossier | paquet | nom_d_utilisateur |
| hi | फ़ाइल/का/पथ | निर्देशिका/का/पथ | फ़ाइल_या_निर्देशिका/का/पथ | पैकेज | उपयोगकर्ता_नाम |
| id | jalan/menuju/file | jalan/menuju/direktori | jalan/menuju/file_atau_direktori | paket | nama_pengguna |
| it | percorso/del/file | percorso/della/directory | percorso/del/file_o_directory | pacchetto | |
| ja | ファイルパス | ディレクトリパス | ファイルパスまたはディレクトリパス | パッケージ | ユーザー名 |
| ko | 경로/대상/파일 | 경로/대상/폴더 | 경로/대상/파일_또는_폴더 | 패키지 | 사용자 명 |
| ml |ഫയലിലേക്കുള്ള/പാത |ഡയറക്ടറിയിലേക്കുള്ള/പാത |ഫയലിലേക്കോ_ഡയറക്ടറിയിലേക്കോ/ഉള്ള/പാത |പാക്കേജ് |ഉപയോക്തൃനാമം |
| ne | फाइल/को/पथ | निर्देशिका/को/पथ | फाइल_वा_निर्देशिका/को/पथ | प्याकेज | प्रयोगकर्ता_नाम |
| nl | pad/naar/bestand | pad/naar/map | pad/naar/bestand_of_map | pakket | gebruikersnaam |
| no | | | | | |
| pl | ścieżka/do/pliku | ścieżka/do/katalogu | ścieżka/do/pliku_lub_katalogu | pakiet | nazwa_użytkownika |
| pt_BR | caminho/para/arquivo | caminho/para/diretorio | caminho/para/arquivo_ou_diretorio | pacote | nome_do_usuario |
| pt_PT | diretório/ficheiro | diretório/ficheiro_ou_diretório | pacote | |
| ro | | | | | |
| ru | путь/до/файла | путь/до/папки | путь/до/файла_или_папки | пакет | имя_пользователя |
| sh | | | | | |
| sr | | | | | |
| sv | sökväg/till/fil | sökväg/till/katalog | sökväg/till/fil_eller_katalog | paket | användarnamn |
| ta | கோப்பு/பாதை | அடைவிற்குப்/பாதை | கோப்பு_அல்லது_அடைவு/பாதை | நிரல்தொகுப்பு | பயனர்ப்பெயர் |
| th | ทาง/ไป/ไฟล์ | ทาง/ไป/สารบบ | ทาง/ไป/สารบบหรือไฟล์ | แพคเกจ | ชื่อผู้ใช้ |
| tr | dosya/yolu | dizin/yolu | dosya_veya_dizin/yolu | paket | kullanıcı_adı |
| uk | шлях/до/файлу | шлях/до/директорії | шлях/до/файлу_чи_директорії | пакунок | ім'я_користувача |
| uz | | | | | |
| zh | 路径/到/文件 | 路径/到/目录 | 路径/到/文件或目录 | 包 | 用户名 |
| zh_TW | 檔案/完整/路徑 | 目錄/完整/路徑 | 檔案或目錄/完整/路徑 | 套件 | 使用者名稱 |

View File

@ -1,338 +0,0 @@
# Mentioning sub-commands
When a command has a sub-command, which can't be covered in the original page, it gets its own page.
An example for this is `git` and it's sub-command pages like `git-commit`, `git-push`, etc.
In order to notify the user that such sub-command pages exist, we put a little notice in the base command's description.
This file contains the translation templates of this notice.
[en](#en) •
[ar](#ar) •
[bn](#bn) •
[bs](#bs) •
[ca](#ca) •
[cs](#cs) •
[da](#da) •
[de](#de) •
[es](#es) •
[fa](#fa) •
[fi](#fi) •
[fr](#fr) •
[hi](#hi) •
[id](#id) •
[it](#it) •
[ja](#ja) •
[ko](#ko) •
[lo](#lo) •
[ml](#ml) •
[ne](#ne) •
[nl](#nl) •
[no](#no) •
[pl](#pl) •
[pt_BR](#pt_br) •
[pt_PT](#pt_pt) •
[ro](#ro) •
[ru](#ru) •
[sh](#sh) •
[sr](#sr) •
[sv](#sv) •
[ta](#ta) •
[th](#th) •
[tr](#tr) •
[uk](#uk) •
[uz](#uz) •
[zh](#zh) •
[zh_TW](#zh_tw)
---
### en
```markdown
Some subcommands such as `example command` have their own usage documentation.
```
---
### ar
```markdown
بعض الأوامر الفرعية لديها توثيقات الاستخدام الخاصة بها مثل: `example command`
```
---
### bn
```markdown
কিছু উপ-কমান্ড যেমন `example command` স্বতন্ত্র ব্যবহার নির্দেশনা রয়েছে.
```
---
### bs
```markdown
Neke podnaredbe kao što je `example command` imaju vlastitu dokumentaciju o korištenju.
```
---
### ca
```markdown
Alguns subcomandaments com `example command` tenen la seva pròpia documentació.
```
---
### cs
```markdown
Některé dílčí příkazy jako je `example command` mají svou vlastní dokumentaci.
```
---
### da
```markdown
Visse underkommandoer såsom `example command` har sin egen dokumentation.
```
---
### de
```markdown
Manche Unterbefehle wie `example command` sind separat dokumentiert.
```
---
### es
```markdown
Algunos subcomandos, como `example command`, tienen su propia documentación de uso.
```
---
### fa
```markdown
برخی از دستورات فرعی مانند `example command` سند استفاده خاص خودشون رو دارند.
```
---
### fi
```markdown
Joillakin alakomennoilla, kuten `example command`, on omat käyttöoppaansa.
```
---
### fr
```markdown
Certaines sous-commandes comme `example command` ont leur propre documentation.
```
---
### hi
```markdown
कुछ कमांड्स जैसे की `example command`, उनके अपने उपयोग प्रलेखन हैं|
```
---
### id
```markdown
Kami mempunyai dokumentasi terpisah untuk menggunakan subperintah seperti `example command`.
```
---
### it
```markdown
Alcuni comandi aggiuntivi, come `example command`, hanno la propria documentazione.
```
---
### ja
```markdown
`example command` のようないくつかのサブコマンドには、使用方法についての独自のドキュメントがあります。
```
---
### ko
```markdown
`example command`와 같은 일부 하위 명령에는 자체 사용 설명서가 있습니다.
```
---
### lo
```markdown
ບາງຄໍາສັ່ງຍ່ອຍເຊັ່ນ `example command` ມີເອກະສານການນໍາໃຊ້ຂອງຕົນເອງ.
```
---
### ml
```markdown
`example command` പോലുള്ള ചില ഉപകമാൻഡുകൾക്ക് അവരുടേതായ ഉപയോഗ ഡോക്യുമെന്റേഷൻ ഉണ്ട്.
```
---
### ne
```markdown
केही उपादेशहरु जस्तै `example command` को आफ्नै प्रयोग कागजात हुन्छ।
```
---
### nl
```markdown
Sommige subcommando's zoals `example command` hebben een eigen documentatie pagina.
```
---
### no
```markdown
Noen underkommandoer som `example command` har sin egen bruksdokumentasjon.
```
---
### pl
```markdown
Niektóre podkomendy takie jak `example command` mają osobną dokumentację.
```
---
### pt_BR
```markdown
Alguns subcomandos como `example command` tem sua própia documentação de uso.
```
---
### pt_PT
```markdown
Alguns subcomandos, como `example command`, tem a sua própria documentação de uso.
```
---
### ro
```markdown
Unele subcomenzi precum `example command` au propria lor documentație de utilizare.
```
---
### ru
```markdown
Некоторые подкоманды, такие как `example command`, имеют собственную документацию по использованию.
```
---
### sh
Not translated yet.
---
### sr
```markdown
Неке подкоманде као што је `example command` имају своју документацију о коришћењу.
```
---
### sv
```markdown
En del underkommandon som t.ex: `example command` har sin egen användningsdokumentation.
```
---
### ta
```markdown
`example command` போன்ற சிலச் சார்கட்டளைகளுக்குத் தனிப் பக்கம் உள்ளது.
```
---
### th
```markdown
คำสั่งย่อยบางคำสั่ง เช่น `example command` มีเอกสารการใช้งานของตัวเอง
```
---
### tr
```markdown
`example command` gibi bazı alt komutların kendi kullanım belgeleri vardır.
```
---
### uk
```markdown
Певна підкоманда, як от `example command`, що має свою власну документацію.
```
---
### uz
```markdown
`example command` kabi baʼzi kichik buyruqlar oʻzlarining foydalanish hujjatlariga ega.
```
---
### zh
```markdown
此命令也有关于其子命令的文件,例如:`example command`.
```
---
### zh_TW
```markdown
此命令也有關於其子命令的文件,例如:`example command`.
```

Binary file not shown.

BIN
images/banner-light.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 204 KiB

View File

@ -1,21 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="2e3" height="1200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink">
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<defs>
<linearGradient id="a">
<stop stop-color="#97d6d2" offset="0"/>
<stop stop-color="#4d9182" offset="1"/>
</linearGradient>
<linearGradient id="b" x1="10%" x2="90%" y1="10%" y2="90%" xlink:href="#a"/>
<linearGradient id="c" x1="90%" x2="10%" y1="90%" y2="10%" xlink:href="#a"/>
<style type="text/css"><![CDATA[
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2000" height="1200">
<defs>
<linearGradient id="a">
<stop offset="0" stop-color="#97d6d2"/>
<stop offset="1" stop-color="#4d9182"/>
</linearGradient>
<linearGradient xlink:href="#a" id="b" x1="10%" y1="10%" x2="90%" y2="90%"/>
<linearGradient xlink:href="#a" id="c" x1="90%" y1="90%" x2="10%" y2="10%"/>
<style type="text/css">
<![CDATA[
@font-face {
font-family: 'Sometype Mono';
src: url('./SometypeMono-Regular.ttf');
@ -25,19 +17,25 @@
src: url('./SometypeMono-Bold.ttf');
font-weight: bold;
}
]]></style>
</defs>
<!-- start of logo.svg -->
<g transform="translate(600,-70)">
<!-- 2000/2 - 460/2 - 170 = 1000 - 230 - 170 = 1000 - 400 = 600 -->
<rect x="170" y="170" width="460" height="460" rx="50" ry="50" fill="url(#b)"/>
<rect x="210" y="210" width="380" height="380" rx="40" ry="40" fill="url(#c)"/>
<text x="215" y="490" fill="#203050" font-family="'Sometype Mono'" font-size="300">$_ </text>
</g>
<!-- end of logo.svg -->
<g fill="#7ebfb7" font-family="Sometype Mono, monospace" text-anchor="middle">
<text x="1000" y="850" font-size="280px" font-weight="bold"><tspan fill="#438980" font-family="'Sometype Mono'" font-weight="bold">tldr-pages</tspan></text>
<text x="1000" y="1070" font-size="61.333px" font-variant="small-caps" font-weight="500" style="inline-size:2003.78;white-space:pre" xml:space="preserve"/>
</g>
<text fill="black" font-family="sans-serif" font-size="40px" style="line-height:1.25;shape-inside:url(#rect47);white-space:pre" xml:space="preserve"/>
]]>
</style>
</defs>
<rect width="100%" height="100%" x="0" y="0" fill="#203050"/>
<!-- start of logo.svg -->
<g transform="translate(600,-70)"><!-- 2000/2 - 460/2 - 170 = 1000 - 230 - 170 = 1000 - 400 = 600 -->
<rect width="460" height="460" x="170" y="170" rx="50" ry="50" fill="url(#b)"/>
<rect width="380" height="380" x="210" y="210" rx="40" ry="40" fill="url(#c)"/>
<text x="215" y="490" font-size="300" font-family="Sometype Mono, monospace" fill="#203050">
$_
</text>
</g>
<!-- end of logo.svg -->
<g fill="#7ebfb7" font-family="Sometype Mono, monospace">
<text x="1000" y="850" font-size="280" font-weight="bold" text-anchor="middle">
tldr-pages
</text>
<text x="1000" y="1070" font-size="75" font-weight="500" text-anchor="middle" font-variant="small-caps">
collaborative cheatsheets for console commands
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

494
images/tldr.svg Normal file
View File

@ -0,0 +1,494 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1250" height="738.14">
<rect width="1250" height="738.14" rx="0" ry="0" class="a" />
<svg height="738.14" viewBox="0 0 125 73.814" width="1250" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>@keyframes l{0%{transform:translateX(0)}10.3%{transform:translateX(-125px)}10.5%{transform:translateX(-375px)}19%{transform:translateX(-500px)}20.2%{transform:translateX(-625px)}22.1%{transform:translateX(-750px)}24.9%{transform:translateX(-875px)}27.8%{transform:translateX(-1000px)}29.6%{transform:translateX(-1125px)}31.4%{transform:translateX(-1250px)}32.9%{transform:translateX(-1375px)}35.7%{transform:translateX(-1750px)}44%{transform:translateX(-2000px)}44.2%{transform:translateX(-2250px)}44.5%{transform:translateX(-2625px)}to{transform:translateX(-2750px)}}.a{fill:#000000}.c,.d{fill:#00ff00;font-weight:700;white-space:pre}.d{fill:#00ffff}.e,.g,.h,.i{fill:#ffffff;white-space:pre}.g,.h,.i{fill:#00ff00}.h,.i{fill:#ff0000}.i{fill:#0ff}</style>
<g font-family="Monaco,Consolas,Menlo,'Bitstream Vera Sans Mono','Powerline Symbols',monospace" font-size="1.67">
<defs>
<symbol id="1">
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
</symbol>
<symbol id="2">
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
<text x="5.01" y="1.67" class="e">tldr</text>
</symbol>
<symbol id="3">
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
<text x="5.01" y="1.67" class="e">tldr</text>
<text x="10.02" y="1.67" class="e">tar</text>
</symbol>
<symbol id="4">
<text x="2.004" y="1.67" style="white-space:pre" fill="#fff" font-weight="700">tar</text>
</symbol>
<symbol id="5">
<text x="2.004" y="1.67" class="e">Archiving</text>
<text x="12.024" y="1.67" class="e">utility.</text>
</symbol>
<symbol id="6">
<text x="2.004" y="1.67" class="e">Often</text>
<text x="8.016" y="1.67" class="e">combined</text>
<text x="17.034" y="1.67" class="e">with</text>
<text x="22.044" y="1.67" class="e">a</text>
<text x="24.048" y="1.67" class="e">compression</text>
<text x="36.072" y="1.67" class="e">method,</text>
<text x="44.088" y="1.67" class="e">such</text>
<text x="49.098" y="1.67" class="e">as</text>
<text x="52.104" y="1.67" class="e">gzip</text>
<text x="57.114" y="1.67" class="e">or</text>
<text x="60.12" y="1.67" class="e">bzip2.</text>
</symbol>
<symbol id="7">
<text x="2.004" y="1.67" class="e">More</text>
<text x="7.014" y="1.67" class="e">information:</text>
<text x="20.04" y="1.67" class="e">https://www.gnu.org/software/tar.</text>
</symbol>
<symbol id="8">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">[c]reate</text>
<text x="13.026" y="1.67" class="g">an</text>
<text x="16.032" y="1.67" class="g">archive</text>
<text x="24.048" y="1.67" class="g">from</text>
<text x="29.058" y="1.67" class="g">[f]iles:</text>
</symbol>
<symbol id="9">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">cf</text>
<text x="11.022" y="1.67" class="i">target.tar</text>
<text x="22.044" y="1.67" class="i">file1</text>
<text x="28.056" y="1.67" class="i">file2</text>
<text x="34.068" y="1.67" class="i">file3</text>
</symbol>
<symbol id="10">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">[c]reate</text>
<text x="13.026" y="1.67" class="g">a</text>
<text x="15.03" y="1.67" class="g">g[z]ipped</text>
<text x="25.05" y="1.67" class="g">archive</text>
<text x="33.066" y="1.67" class="g">from</text>
<text x="38.076" y="1.67" class="g">[f]iles:</text>
</symbol>
<symbol id="11">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">czf</text>
<text x="12.024" y="1.67" class="i">target.tar.gz</text>
<text x="26.052" y="1.67" class="i">file1</text>
<text x="32.064" y="1.67" class="i">file2</text>
<text x="38.076" y="1.67" class="i">file3</text>
</symbol>
<symbol id="12">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">[c]reate</text>
<text x="13.026" y="1.67" class="g">a</text>
<text x="15.03" y="1.67" class="g">g[z]ipped</text>
<text x="25.05" y="1.67" class="g">archive</text>
<text x="33.066" y="1.67" class="g">from</text>
<text x="38.076" y="1.67" class="g">a</text>
<text x="40.08" y="1.67" class="g">directory</text>
<text x="50.1" y="1.67" class="g">using</text>
<text x="56.112" y="1.67" class="g">relative</text>
<text x="65.13" y="1.67" class="g">paths:</text>
</symbol>
<symbol id="13">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">czf</text>
<text x="12.024" y="1.67" class="i">target.tar.gz</text>
<text x="26.052" y="1.67" class="h">--directory=</text>
<text x="38.076" y="1.67" class="i">path/to/directory</text>
<text x="56.112" y="1.67" class="h">.</text>
</symbol>
<symbol id="14">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">E[x]tract</text>
<text x="14.028" y="1.67" class="g">a</text>
<text x="16.032" y="1.67" class="g">(compressed)</text>
<text x="29.058" y="1.67" class="g">archive</text>
<text x="37.074" y="1.67" class="g">[f]ile</text>
<text x="44.088" y="1.67" class="g">into</text>
<text x="49.098" y="1.67" class="g">the</text>
<text x="53.106" y="1.67" class="g">current</text>
<text x="61.122" y="1.67" class="g">directory:</text>
</symbol>
<symbol id="15">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">xf</text>
<text x="11.022" y="1.67" class="i">source.tar[.gz|.bz2|.xz]</text>
</symbol>
<symbol id="16">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">E[x]tract</text>
<text x="14.028" y="1.67" class="g">a</text>
<text x="16.032" y="1.67" class="g">(compressed)</text>
<text x="29.058" y="1.67" class="g">archive</text>
<text x="37.074" y="1.67" class="g">[f]ile</text>
<text x="44.088" y="1.67" class="g">into</text>
<text x="49.098" y="1.67" class="g">the</text>
<text x="53.106" y="1.67" class="g">target</text>
<text x="60.12" y="1.67" class="g">directory:</text>
</symbol>
<symbol id="17">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">xf</text>
<text x="11.022" y="1.67" class="i">source.tar[.gz|.bz2|.xz]</text>
<text x="36.072" y="1.67" class="h">--directory=</text>
<text x="48.096" y="1.67" class="i">directory</text>
</symbol>
<symbol id="18">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">[c]reate</text>
<text x="13.026" y="1.67" class="g">a</text>
<text x="15.03" y="1.67" class="g">compressed</text>
<text x="26.052" y="1.67" class="g">archive</text>
<text x="34.068" y="1.67" class="g">from</text>
<text x="39.078" y="1.67" class="g">[f]iles,</text>
<text x="48.096" y="1.67" class="g">using</text>
<text x="54.108" y="1.67" class="g">[a]rchive</text>
<text x="64.128" y="1.67" class="g">suffix</text>
<text x="71.142" y="1.67" class="g">to</text>
<text x="74.148" y="1.67" class="g">determine</text>
<text x="84.168" y="1.67" class="g">the</text>
<text x="88.176" y="1.67" class="g">compression</text>
<text x="100.2" y="1.67" class="g">program:</text>
</symbol>
<symbol id="19">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">caf</text>
<text x="12.024" y="1.67" class="i">target.tar.xz</text>
<text x="26.052" y="1.67" class="i">file1</text>
<text x="32.064" y="1.67" class="i">file2</text>
<text x="38.076" y="1.67" class="i">file3</text>
</symbol>
<symbol id="20">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">Lis[t]</text>
<text x="11.022" y="1.67" class="g">the</text>
<text x="15.03" y="1.67" class="g">contents</text>
<text x="24.048" y="1.67" class="g">of</text>
<text x="27.054" y="1.67" class="g">a</text>
<text x="29.058" y="1.67" class="g">tar</text>
<text x="33.066" y="1.67" class="g">[f]ile</text>
<text x="40.08" y="1.67" class="g">[v]erbosely:</text>
</symbol>
<symbol id="21">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">tvf</text>
<text x="12.024" y="1.67" class="i">source.tar</text>
</symbol>
<symbol id="22">
<text x="2.004" y="1.67" class="g">-</text>
<text x="4.008" y="1.67" class="g">E[x]tract</text>
<text x="14.028" y="1.67" class="g">[f]iles</text>
<text x="22.044" y="1.67" class="g">matching</text>
<text x="31.062" y="1.67" class="g">a</text>
<text x="33.066" y="1.67" class="g">pattern:</text>
</symbol>
<symbol id="23">
<text x="4.008" y="1.67" class="h">tar</text>
<text x="8.016" y="1.67" class="h">xf</text>
<text x="11.022" y="1.67" class="i">source.tar</text>
<text x="22.044" y="1.67" class="h">--wildcards</text>
<text x="34.068" y="1.67" class="h">&quot;</text>
<text x="35.07" y="1.67" class="i">*.html</text>
<text x="41.082" y="1.67" class="h">&quot;</text>
</symbol>
<symbol id="a">
<path fill="transparent" d="M0 0h125v34H0z" />
</symbol>
<symbol id="b">
<path fill="#6f7683" d="M0 0h1.102v2.171H0z" />
</symbol>
</defs>
<path class="a" d="M0 0h125v73.814H0z" />
<g style="animation-duration:6.274285s;animation-iteration-count:infinite;animation-name:l;animation-timing-function:steps(1,end)">
<svg width="2875">
<svg>
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" />
</svg>
<svg x="125">
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" />
</svg>
<svg x="250">
<use xlink:href="#a" />
<use xlink:href="#b" x="4.996" />
<use xlink:href="#1" />
</svg>
<svg x="375">
<use xlink:href="#a" />
<use xlink:href="#b" x="4.996" />
<use xlink:href="#1" />
</svg>
<svg x="500">
<use xlink:href="#a" />
<use xlink:href="#b" x="5.996" />
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
<text x="5.01" y="1.67" class="e">t</text>
</svg>
<svg x="625">
<use xlink:href="#a" />
<use xlink:href="#b" x="6.996" />
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
<text x="5.01" y="1.67" class="e">tl</text>
</svg>
<svg x="750">
<use xlink:href="#a" />
<use xlink:href="#b" x="7.996" />
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
<text x="5.01" y="1.67" class="e">tld</text>
</svg>
<svg x="875">
<use xlink:href="#a" />
<use xlink:href="#b" x="8.996" />
<use xlink:href="#2" />
</svg>
<svg x="1000">
<use xlink:href="#a" />
<use xlink:href="#b" x="9.996" />
<use xlink:href="#2" />
</svg>
<svg x="1125">
<use xlink:href="#a" />
<use xlink:href="#b" x="10.996" />
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
<text x="5.01" y="1.67" class="e">tldr</text>
<text x="10.02" y="1.67" class="e">t</text>
</svg>
<svg x="1250">
<use xlink:href="#a" />
<use xlink:href="#b" x="11.996" />
<text y="1.67" class="c"></text>
<text x="3.006" y="1.67" class="d">~</text>
<text x="5.01" y="1.67" class="e">tldr</text>
<text x="10.02" y="1.67" class="e">ta</text>
</svg>
<svg x="1375">
<use xlink:href="#a" />
<use xlink:href="#b" x="12.996" />
<use xlink:href="#3" />
</svg>
<svg x="1500">
<use xlink:href="#a" />
<use xlink:href="#b" x="12.996" />
<use xlink:href="#3" />
</svg>
<svg x="1625">
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" y="2.146" />
<use xlink:href="#3" />
</svg>
<svg x="1750">
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" y="2.146" />
<use xlink:href="#3" />
</svg>
<svg x="1875">
<use xlink:href="#a" />
<use xlink:href="#b" x="47.996" y="45.566" />
<use xlink:href="#3" />
<use xlink:href="#4" y="4.342" />
<use xlink:href="#5" y="8.684" />
<use xlink:href="#6" y="10.855" />
<use xlink:href="#7" y="13.026" />
<use xlink:href="#8" y="17.368" />
<use xlink:href="#9" y="19.539" />
<use xlink:href="#10" y="23.881" />
<use xlink:href="#11" y="26.052" />
<use xlink:href="#12" y="30.394" />
<use xlink:href="#13" y="32.565" />
<use xlink:href="#14" y="36.907" />
<use xlink:href="#15" y="39.078" />
<use xlink:href="#16" y="43.42" />
<text x="4.008" y="47.261" class="h">tar</text>
<text x="8.016" y="47.261" class="h">xf</text>
<text x="11.022" y="47.261" class="i">source.tar[.gz|.bz2|.xz]</text>
<text x="36.072" y="47.261" class="h">--directory=</text>
</svg>
<svg x="2000">
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" y="71.618" />
<use xlink:href="#3" />
<use xlink:href="#4" y="4.342" />
<use xlink:href="#5" y="8.684" />
<use xlink:href="#6" y="10.855" />
<use xlink:href="#7" y="13.026" />
<use xlink:href="#8" y="17.368" />
<use xlink:href="#9" y="19.539" />
<use xlink:href="#10" y="23.881" />
<use xlink:href="#11" y="26.052" />
<use xlink:href="#12" y="30.394" />
<use xlink:href="#13" y="32.565" />
<use xlink:href="#14" y="36.907" />
<use xlink:href="#15" y="39.078" />
<use xlink:href="#16" y="43.42" />
<use xlink:href="#17" y="45.591" />
<use xlink:href="#18" y="49.933" />
<use xlink:href="#19" y="52.104" />
<use xlink:href="#20" y="56.446" />
<use xlink:href="#21" y="58.617" />
<use xlink:href="#22" y="62.959" />
<use xlink:href="#23" y="65.13" />
</svg>
<svg x="2125">
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" y="71.618" />
<use xlink:href="#3" />
<use xlink:href="#4" y="4.342" />
<use xlink:href="#5" y="8.684" />
<use xlink:href="#6" y="10.855" />
<use xlink:href="#7" y="13.026" />
<use xlink:href="#8" y="17.368" />
<use xlink:href="#9" y="19.539" />
<use xlink:href="#10" y="23.881" />
<use xlink:href="#11" y="26.052" />
<use xlink:href="#12" y="30.394" />
<use xlink:href="#13" y="32.565" />
<use xlink:href="#14" y="36.907" />
<use xlink:href="#15" y="39.078" />
<use xlink:href="#16" y="43.42" />
<use xlink:href="#17" y="45.591" />
<use xlink:href="#18" y="49.933" />
<use xlink:href="#19" y="52.104" />
<use xlink:href="#20" y="56.446" />
<use xlink:href="#21" y="58.617" />
<use xlink:href="#22" y="62.959" />
<use xlink:href="#23" y="65.13" />
</svg>
<svg x="2250">
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" y="71.618" />
<use xlink:href="#3" />
<use xlink:href="#4" y="4.342" />
<use xlink:href="#5" y="8.684" />
<use xlink:href="#6" y="10.855" />
<use xlink:href="#7" y="13.026" />
<use xlink:href="#8" y="17.368" />
<use xlink:href="#9" y="19.539" />
<use xlink:href="#10" y="23.881" />
<use xlink:href="#11" y="26.052" />
<use xlink:href="#12" y="30.394" />
<use xlink:href="#13" y="32.565" />
<use xlink:href="#14" y="36.907" />
<use xlink:href="#15" y="39.078" />
<use xlink:href="#16" y="43.42" />
<use xlink:href="#17" y="45.591" />
<use xlink:href="#18" y="49.933" />
<use xlink:href="#19" y="52.104" />
<use xlink:href="#20" y="56.446" />
<use xlink:href="#21" y="58.617" />
<use xlink:href="#22" y="62.959" />
<use xlink:href="#23" y="65.13" />
</svg>
<svg x="2375">
<use xlink:href="#a" />
<use xlink:href="#b" x="4.996" y="71.618" />
<use xlink:href="#3" />
<use xlink:href="#4" y="4.342" />
<use xlink:href="#5" y="8.684" />
<use xlink:href="#6" y="10.855" />
<use xlink:href="#7" y="13.026" />
<use xlink:href="#8" y="17.368" />
<use xlink:href="#9" y="19.539" />
<use xlink:href="#10" y="23.881" />
<use xlink:href="#11" y="26.052" />
<use xlink:href="#12" y="30.394" />
<use xlink:href="#13" y="32.565" />
<use xlink:href="#14" y="36.907" />
<use xlink:href="#15" y="39.078" />
<use xlink:href="#16" y="43.42" />
<use xlink:href="#17" y="45.591" />
<use xlink:href="#18" y="49.933" />
<use xlink:href="#19" y="52.104" />
<use xlink:href="#20" y="56.446" />
<use xlink:href="#21" y="58.617" />
<use xlink:href="#22" y="62.959" />
<use xlink:href="#23" y="65.13" />
<use xlink:href="#1" y="71.643" />
</svg>
<svg x="2500">
<use xlink:href="#a" />
<use xlink:href="#b" x="4.996" y="71.618" />
<use xlink:href="#3" />
<use xlink:href="#4" y="4.342" />
<use xlink:href="#5" y="8.684" />
<use xlink:href="#6" y="10.855" />
<use xlink:href="#7" y="13.026" />
<use xlink:href="#8" y="17.368" />
<use xlink:href="#9" y="19.539" />
<use xlink:href="#10" y="23.881" />
<use xlink:href="#11" y="26.052" />
<use xlink:href="#12" y="30.394" />
<use xlink:href="#13" y="32.565" />
<use xlink:href="#14" y="36.907" />
<use xlink:href="#15" y="39.078" />
<use xlink:href="#16" y="43.42" />
<use xlink:href="#17" y="45.591" />
<use xlink:href="#18" y="49.933" />
<use xlink:href="#19" y="52.104" />
<use xlink:href="#20" y="56.446" />
<use xlink:href="#21" y="58.617" />
<use xlink:href="#22" y="62.959" />
<use xlink:href="#23" y="65.13" />
<use xlink:href="#1" y="71.643" />
</svg>
<svg x="2625">
<use xlink:href="#a" />
<use xlink:href="#b" x="4.996" y="71.618" />
<use xlink:href="#3" />
<use xlink:href="#4" y="4.342" />
<use xlink:href="#5" y="8.684" />
<use xlink:href="#6" y="10.855" />
<use xlink:href="#7" y="13.026" />
<use xlink:href="#8" y="17.368" />
<use xlink:href="#9" y="19.539" />
<use xlink:href="#10" y="23.881" />
<use xlink:href="#11" y="26.052" />
<use xlink:href="#12" y="30.394" />
<use xlink:href="#13" y="32.565" />
<use xlink:href="#14" y="36.907" />
<use xlink:href="#15" y="39.078" />
<use xlink:href="#16" y="43.42" />
<use xlink:href="#17" y="45.591" />
<use xlink:href="#18" y="49.933" />
<use xlink:href="#19" y="52.104" />
<use xlink:href="#20" y="56.446" />
<use xlink:href="#21" y="58.617" />
<use xlink:href="#22" y="62.959" />
<use xlink:href="#23" y="65.13" />
<use xlink:href="#1" y="71.643" />
</svg>
<svg x="2750">
<use xlink:href="#a" />
<use xlink:href="#b" x="-.004" y="71.618" />
<use xlink:href="#4" y="2.171" />
<use xlink:href="#5" y="6.513" />
<use xlink:href="#6" y="8.684" />
<use xlink:href="#7" y="10.855" />
<use xlink:href="#8" y="15.197" />
<use xlink:href="#9" y="17.368" />
<use xlink:href="#10" y="21.71" />
<use xlink:href="#11" y="23.881" />
<use xlink:href="#12" y="28.223" />
<use xlink:href="#13" y="30.394" />
<use xlink:href="#14" y="34.736" />
<use xlink:href="#15" y="36.907" />
<use xlink:href="#16" y="41.249" />
<use xlink:href="#17" y="43.42" />
<use xlink:href="#18" y="47.762" />
<use xlink:href="#19" y="49.933" />
<use xlink:href="#20" y="54.275" />
<use xlink:href="#21" y="56.446" />
<use xlink:href="#22" y="60.788" />
<use xlink:href="#23" y="62.959" />
<use xlink:href="#1" y="69.472" />
</svg>
</svg>
</g>
</g>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

1165
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -6,12 +6,12 @@
"repository": "tldr-pages/tldr",
"homepage": "https://tldr.sh/",
"dependencies": {
"glob": "10.3.10",
"markdownlint-cli": "^0.37.0",
"tldr-lint": "^0.0.13"
"glob": "7.1.6",
"markdownlint-cli": "0.27.1",
"tldr-lint": "~0.0.11"
},
"devDependencies": {
"husky": "^8.0.3"
"husky": "^6.0.0"
},
"scripts": {
"lint-markdown": "markdownlint pages*/**/*.md",

View File

@ -1,8 +0,0 @@
# bundler
> هذا الأمر هو اسم مستعار لـ `bundle`.
> لمزيد من التفاصيل: <https://bundler.io/man/bundle.1.html>.
- إعرض التوثيقات للأمر الأصلي:
`tldr bundle`

View File

@ -1,8 +0,0 @@
# clamav
> هذا الأمر هو اسم مستعار لـ `clamdscan`.
> لمزيد من التفاصيل: <https://www.clamav.net>.
- إعرض التوثيقات للأمر الأصلي:
`tldr clamdscan`

View File

@ -1,7 +0,0 @@
# clang-cpp
> هذا الأمر هو اسم مستعار لـ `clang++`.
- إعرض التوثيقات للأمر الأصلي:
`tldr clang++`

View File

@ -1,7 +0,0 @@
# clojure
> هذا الأمر هو اسم مستعار لـ `clj`.
- إعرض التوثيقات للأمر الأصلي:
`tldr clj`

View File

@ -1,7 +0,0 @@
# cola
> هذا الأمر هو اسم مستعار لـ `git-cola`.
- إعرض التوثيقات للأمر الأصلي:
`tldr git-cola`

View File

@ -1,7 +0,0 @@
# cron
> هذا الأمر هو اسم مستعار لـ `crontab`.
- إعرض التوثيقات للأمر الأصلي:
`tldr crontab`

View File

@ -1,29 +0,0 @@
# fastmod
> أداة للاستبدال الجزئي للنصوص في قاعدة الأكواد لديك.
> التعبيرات النمطية يعالجها قفص من بضاعة رست وهو regex.
> لمزيد من التفاصيل: <https://github.com/facebookincubator/fastmod>.
- استبدال بالتعبيرات النمطية في كل ملفات المسار الحالي وأبنائه في الملفات غير المُتجاهلة بـ .ignore أو .gitignore:
`fastmod {{تعبير_نمطي}} {{بديل}}`
- استبدال متجاهلا حالة الحرف في ملف أو في ملفات مسار:
`fastmod --ignore-case {{تعبير_نمطي}} {{بديل}} -- {{مسار/الـ/ملف مسار/الـ/السجل ...}}`
- استبدال بالتعبيرات النمطية مع تحديد المكان الذي يُستبدل فيه:
`fastmod {{تعبير_نمطي}} {{بديل}} --dir {{مسار/للـ/سجل}} --iglob {{'**/*.{js,json}'}}`
- استبدال بالنص مُطابقةً (وليس التعبيرات النمطية)، في ملفات امتداداتهم إما js أو json فحسب:
`fastmod --fixed-strings {{نص_مطابِق}} {{بديل}} -e {{json,js}}`
- استبدال بجميع النصوص مُطابقةً، مباشرة دون مِحَثِّ تأكيد (prompt):
`fastmod --accept-all --fixed-strings {{نص_مطابِق}} {{بديل}}`
- استبدال بجميع النصوص مُطابقةً، مباشرة دون تأكيد، مع طباعة الملفات المُستبدل فيها:
`fastmod --accept-all --print-changed-files --fixed-strings {{نص_مطابِق}} {{بديل}}`

View File

@ -1,8 +0,0 @@
# fossil-ci
> هذا الأمر هو اسم مستعار لـ `fossil-commit`.
> لمزيد من التفاصيل: <https://fossil-scm.org/home/help/commit>.
- إعرض التوثيقات للأمر الأصلي:
`tldr fossil-commit`

View File

@ -1,8 +0,0 @@
# fossil-delete
> هذا الأمر هو اسم مستعار لـ `fossil rm`.
> لمزيد من التفاصيل: <https://fossil-scm.org/home/help/delete>.
- إعرض التوثيقات للأمر الأصلي:
`tldr fossil rm`

View File

@ -1,8 +0,0 @@
# fossil-forget
> هذا الأمر هو اسم مستعار لـ `fossil rm`.
> لمزيد من التفاصيل: <https://fossil-scm.org/home/help/forget>.
- إعرض التوثيقات للأمر الأصلي:
`tldr fossil rm`

View File

@ -1,8 +0,0 @@
# fossil-new
> هذا الأمر هو اسم مستعار لـ `fossil-init`.
> لمزيد من التفاصيل: <https://fossil-scm.org/home/help/new>.
- إعرض التوثيقات للأمر الأصلي:
`tldr fossil-init`

View File

@ -1,8 +0,0 @@
# gh-cs
> هذا الأمر هو اسم مستعار لـ `gh-codespace`.
> لمزيد من التفاصيل: <https://cli.github.com/manual/gh_codespace>.
- إعرض التوثيقات للأمر الأصلي:
`tldr gh-codespace`

View File

@ -1,8 +0,0 @@
# gnmic-sub
> هذا الأمر هو اسم مستعار لـ `gnmic subscribe`.
> لمزيد من التفاصيل: <https://gnmic.kmrd.dev/cmd/subscribe>.
- إعرض التوثيقات للأمر الأصلي:
`tldr gnmic subscribe`

View File

@ -1,8 +0,0 @@
# google-chrome
> هذا الأمر هو اسم مستعار لـ `chromium`.
> لمزيد من التفاصيل: <https://chrome.google.com>.
- إعرض التوثيقات للأمر الأصلي:
`tldr chromium`

View File

@ -1,7 +0,0 @@
# hx
> هذا الأمر هو اسم مستعار لـ `helix`.
- إعرض التوثيقات للأمر الأصلي:
`tldr helix`

View File

@ -1,7 +0,0 @@
# kafkacat
> هذا الأمر هو اسم مستعار لـ `kcat`.
- إعرض التوثيقات للأمر الأصلي:
`tldr kcat`

View File

@ -1,7 +0,0 @@
# llvm-ar
> هذا الأمر هو اسم مستعار لـ `ar`.
- إعرض التوثيقات للأمر الأصلي:
`tldr ar`

View File

@ -1,7 +0,0 @@
# llvm-g++
> هذا الأمر هو اسم مستعار لـ `clang++`.
- إعرض التوثيقات للأمر الأصلي:
`tldr clang++`

View File

@ -1,7 +0,0 @@
# llvm-gcc
> هذا الأمر هو اسم مستعار لـ `clang`.
- إعرض التوثيقات للأمر الأصلي:
`tldr clang`

View File

@ -1,7 +0,0 @@
# llvm-nm
> هذا الأمر هو اسم مستعار لـ `nm`.
- إعرض التوثيقات للأمر الأصلي:
`tldr nm`

View File

@ -1,7 +0,0 @@
# llvm-objdump
> هذا الأمر هو اسم مستعار لـ `objdump`.
- إعرض التوثيقات للأمر الأصلي:
`tldr objdump`

View File

@ -1,7 +0,0 @@
# llvm-strings
> هذا الأمر هو اسم مستعار لـ `strings`.
- إعرض التوثيقات للأمر الأصلي:
`tldr strings`

View File

@ -1,8 +0,0 @@
# lzcat
> هذا الأمر هو اسم مستعار لـ `xz`.
> لمزيد من التفاصيل: <https://manned.org/lzcat>.
- إعرض التوثيقات للأمر الأصلي:
`tldr xz`

View File

@ -1,8 +0,0 @@
# lzma
> هذا الأمر هو اسم مستعار لـ `xz`.
> لمزيد من التفاصيل: <https://manned.org/lzma>.
- إعرض التوثيقات للأمر الأصلي:
`tldr xz`

View File

@ -1,8 +0,0 @@
# mscore
> هذا الأمر هو اسم مستعار لـ `musescore`.
> لمزيد من التفاصيل: <https://musescore.org/handbook/command-line-options>.
- إعرض التوثيقات للأمر الأصلي:
`tldr musescore`

View File

@ -1,24 +0,0 @@
# newsboat
> هو قارئ خلاصة آر إس إس للطرفية أو الكونسول.
> لمزيد من التفاصيل: <https://newsboat.org/>.
- إستيراد روابط الخلاصات من ملف OPML:
`newsboat -i {{الخلاصات.xml}}`
- إضافة روابط الخلاصات يدوياً:
`echo {{http://مثال.com/الخلاصة/إلي/المسار}} >> "${HOME}/.newsboat/urls"`
- إبدأ newsboat وقم بتحديث كل الخلاصات عند بدء التشغيل:
`newsboat -r`
- نفذ أمر أو عدة أوامر مفصولة بمسافات بدون الحاجة إلي فتح newsboat:
`newsboat -x {{reload print-unread ...}}`
- انظر إختصارات لوحة المفاتيح (الإختصارت الأكثر شيوعاً مرئية في شريط الحالة):
`?`

View File

@ -1,7 +0,0 @@
# nm-classic
> هذا الأمر هو اسم مستعار لـ `nm`.
- إعرض التوثيقات للأمر الأصلي:
`tldr nm`

View File

@ -1,8 +0,0 @@
# ntl
> هذا الأمر هو اسم مستعار لـ `netlify`.
> لمزيد من التفاصيل: <https://cli.netlify.com>.
- إعرض التوثيقات للأمر الأصلي:
`tldr netlify`

View File

@ -1,7 +0,0 @@
# pio-init
> هذا الأمر هو اسم مستعار لـ `pio project`.
- إعرض التوثيقات للأمر الأصلي:
`tldr pio project`

View File

@ -1,7 +0,0 @@
# piodebuggdb
> هذا الأمر هو اسم مستعار لـ `pio debug`.
- إعرض التوثيقات للأمر الأصلي:
`tldr pio debug`

View File

@ -1,8 +0,0 @@
# platformio
> هذا الأمر هو اسم مستعار لـ `pio`.
> لمزيد من التفاصيل: <https://docs.platformio.org/en/latest/core/userguide/>.
- إعرض التوثيقات للأمر الأصلي:
`tldr pio`

View File

@ -1,7 +0,0 @@
# ptpython3
> هذا الأمر هو اسم مستعار لـ `ptpython`.
- إعرض التوثيقات للأمر الأصلي:
`tldr ptpython`

View File

@ -1,12 +0,0 @@
# pwd
> اطبع اسم الدليل الحالي.
> لمزيد من التفاصيل: <https://www.gnu.org/software/coreutils/pwd>.
- اطبع اسم الدليل الحالي:
`pwd`
- اطبع اسم الدليل الحالي و حل جميع الروابط اللينة (وبمعنى آخر إظهار المسارالفعلي) :
`pwd -P`

View File

@ -1,7 +0,0 @@
# python3
> هذا الأمر هو اسم مستعار لـ `python`.
- إعرض التوثيقات للأمر الأصلي:
`tldr python`

View File

@ -1,7 +0,0 @@
# r2
> هذا الأمر هو اسم مستعار لـ `radare2`.
- إعرض التوثيقات للأمر الأصلي:
`tldr radare2`

View File

@ -1,7 +0,0 @@
# rcat
> هذا الأمر هو اسم مستعار لـ `rc`.
- إعرض التوثيقات للأمر الأصلي:
`tldr rc`

View File

@ -1,7 +0,0 @@
# ripgrep
> هذا الأمر هو اسم مستعار لـ `rg`.
- إعرض التوثيقات للأمر الأصلي:
`tldr rg`

View File

@ -1,12 +0,0 @@
# rmdir
> يزيل الدليل.
> لمزيد من التفاصيل: <https://www.gnu.org/software/coreutils/rmdir>.
- إزالة الدليل الفارغ. استخدم `rm -r` لإزالة الدلائل الغير فارغة:
`rmdir {{المسار/إلى/الدليل}}`
- إزالة الدليل المحدد ودلائله الأصلية (مفيد للدلائل المتداخلة):
`rmdir -p {{المسار/إلى/الدليل}}`

View File

@ -1,16 +0,0 @@
# robo
> مشغل مهام PHP.
> لمزيد من التفاصيل: <https://robo.li/>.
- عرض قائمة الأوامر المتوفرة:
`robo list`
- تشغيل أمر محدد:
`robo {{الأمر}}`
- محاكاة تشغيل أمر محدد:
`robo --simulate {{الأمر}}`

View File

@ -1,8 +0,0 @@
# tldrl
> هذا الأمر هو اسم مستعار لـ `tldr-lint`.
> لمزيد من التفاصيل: <https://github.com/tldr-pages/tldr-lint>.
- إعرض التوثيقات للأمر الأصلي:
`tldr tldr-lint`

View File

@ -1,8 +0,0 @@
# tlmgr-arch
> هذا الأمر هو اسم مستعار لـ `tlmgr platform`.
> لمزيد من التفاصيل: <https://www.tug.org/texlive/tlmgr.html>.
- إعرض التوثيقات للأمر الأصلي:
`tldr tlmgr platform`

View File

@ -1,8 +0,0 @@
# todoman
> هذا الأمر هو اسم مستعار لـ `todo`.
> لمزيد من التفاصيل: <https://todoman.readthedocs.io/>.
- إعرض التوثيقات للأمر الأصلي:
`tldr todo`

View File

@ -1,25 +0,0 @@
# tox
> أتمتة اختبارات بايثون عبر إصدارات بايثون متعددة.
> استخدم tox.ini لضبط البيئات وأمر الاختبار.
> لمزيد من التفاصيل: <https://github.com/tox-dev/tox>.
- بدء الاختبارات على جميع بيئات الاختبار:
`tox`
- إنشاء ملف الإعدادات `tox.ini`:
`tox-quickstart`
- عرض قائمة جميع البيئات المتوفرة:
`tox --listenvs-all`
- بدء الاختبارات على بيئة معينة (مثال: بايثون 3.6):
`tox -e {{py36}}`
- إجبار إعادة إنشاء البيئة الافتراضية:
`tox --recreate -e {{py27}}`

View File

@ -1,8 +0,0 @@
# transmission
> هذا الأمر هو اسم مستعار لـ `transmission-daemon`.
> لمزيد من التفاصيل: <https://transmissionbt.com/>.
- إعرض التوثيقات للأمر الأصلي:
`tldr transmission-daemon`

View File

@ -1,8 +0,0 @@
# unlzma
> هذا الأمر هو اسم مستعار لـ `xz`.
> لمزيد من التفاصيل: <https://manned.org/unlzma>.
- إعرض التوثيقات للأمر الأصلي:
`tldr xz`

View File

@ -1,8 +0,0 @@
# unxz
> هذا الأمر هو اسم مستعار لـ `xz`.
> لمزيد من التفاصيل: <https://manned.org/unxz>.
- إعرض التوثيقات للأمر الأصلي:
`tldr xz`

View File

@ -1,7 +0,0 @@
# vi
> هذا الأمر هو اسم مستعار لـ `vim`.
- إعرض التوثيقات للأمر الأصلي:
`tldr vim`

View File

@ -1,8 +0,0 @@
# xzcat
> هذا الأمر هو اسم مستعار لـ `xz`.
> لمزيد من التفاصيل: <https://manned.org/xzcat>.
- إعرض التوثيقات للأمر الأصلي:
`tldr xz`

View File

@ -1,8 +0,0 @@
# alternatives
> هذا الأمر هو اسم مستعار لـ `update-alternatives`.
> لمزيد من التفاصيل: <https://manned.org/alternatives>.
- إعرض التوثيقات للأمر الأصلي:
`tldr update-alternatives`

View File

@ -1,37 +0,0 @@
# apt-get
> أداة إدارة الحزم لديبيان وأوبونتو.
> ابحث عن الحزم باستخدام `apt-cache`.
> لمزيد من التفاصيل: <https://manpages.debian.org/latest/apt/apt-get.8.html>.
- تحديث قائمة الحزم الموجودة وإصداراتها (يوصى بتشغيله قبل أي أمر `apt-get` آخر):
`apt-get update`
- تثبيت حزمة معينة، أو تحديثها إلى آخر إصدار متوفر:
`apt-get install {{الحزمة}}`
- إزالة حزمة معينة:
`apt-get remove {{الحزمة}}`
- إزالة حزمة معينة وملفات الإعدادات الخاصة بها:
`apt-get purge {{الحزمة}}`
- تطوير جميع الحزم المثبتة إلى أجدد الإصدارات المتوفرة:
`apt-get upgrade`
- تنظيف المستودع المحلي - إزالة ملفات الحزم (.deb) من التنزيلات المعطلة التي لم يعد من الممكن تنزيلها:
`apt-get autoclean`
- إزالة جميع الحزم التي لم تعد مطلوبة:
`apt-get autoremove`
- تطوير الحزم المثبتة (مثل `upgrade`)، ولكن تقوم بإزالة الحزم القديمة وتثبيت حزم إضافية لتلبية التوابع الجديدة:
`apt-get dist-upgrade`

View File

@ -1,37 +0,0 @@
# apt
> أداة إدارة الحزم للتوزيعات القائمة على ديبيان.
> بديل لـ `apt-get` عند الاستخدام الفعال في إصدارات أوبونتو 16.04 وما بعده.
> لمزيد من التفاصيل: <https://manpages.debian.org/latest/apt/apt.8.html>.
- تحديث قائمة الحزم الموجودة وإصداراتها (يوصى بتشغيله قبل أي أمر `apt` آخر):
`sudo apt update`
- البحث عن حزمة معينة:
`apt search {{الحزمة}}`
- إظهار معلومات حول حزمة معينة:
`apt show {{الحزمة}}`
- تثبيت حزمة معينة، أو تحديثها إلى آخر إصدار متوفر:
`sudo apt install {{الحزمة}}`
- إزالة حزمة معينة (استخدام `purge` لحذف ملفات الإعدادات الخاصة بالحزمة):
`sudo apt remove {{الحزمة}}`
- تطوير جميع الحزم المثبتة إلى أجدد الإصدارات المتوفرة:
`sudo apt upgrade`
- إظهار قائمة جميع الحزم:
`apt list`
- إظهار قائمة جميع الحزم المثبتة:
`apt list --installed`

View File

@ -1,8 +0,0 @@
# batcat
> هذا الأمر هو اسم مستعار لـ `bat`.
> لمزيد من التفاصيل: <https://github.com/sharkdp/bat>.
- إعرض التوثيقات للأمر الأصلي:
`tldr bat`

View File

@ -1,8 +0,0 @@
# bspwm
> هذا الأمر هو اسم مستعار لـ `bspc`.
> لمزيد من التفاصيل: <https://github.com/baskerville/bspwm>.
- إعرض التوثيقات للأمر الأصلي:
`tldr bspc`

View File

@ -1,8 +0,0 @@
# cc
> هذا الأمر هو اسم مستعار لـ `gcc`.
> لمزيد من التفاصيل: <https://gcc.gnu.org>.
- إعرض التوثيقات للأمر الأصلي:
`tldr gcc`

Some files were not shown because too many files have changed in this diff Show More