pull[bot] 2024-06-25 12:53:56 +00:00 committed by GitHub
commit fd85983363
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2139 changed files with 19899 additions and 4184 deletions

View File

@ -0,0 +1,35 @@
{
"name": "tldr-pages",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu", // Use Microsoft's Ubuntu Base image for the dev container
"features": { // Use Node and Python features in the dev container
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers/features/python:1": {}
},
"privileged": false, // Run the container unprivileged
"onCreateCommand": {
"install-python-packages": "pip install -r requirements.txt", // Install Python dependencies in the dev container
"install-node-packages": "npm install" // Install NPM dependencies in the dev container
},
"customizations": {
"vscode": {
"settings": {
// Define suggested settings for the dev container
"resmon.show.battery": false,
"resmon.show.cpufreq": false
},
"extensions": [
// Define suggested extensions to preinstall in the dev container
"EditorConfig.EditorConfig",
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.flake8",
"GitHub.vscode-pull-request-github",
"github.vscode-github-actions",
"DavidAnson.vscode-markdownlint"
]
}
}
}

13
.github/CODEOWNERS vendored
View File

@ -7,7 +7,7 @@
/pages.it/ @mebeim @yutyo @Magrid0
/pages.ko/ @IMHOJEONG
/pages.nl/ @sebastiaanspeck @leonvsc @Waples
/pages.pl/ @acuteenvy
/pages.pl/ @acuteenvy @spageektti
/pages.pt_BR/ @isaacvicente @vitorhcl
/pages.pt_PT/ @waldyrious
/pages.ta/ @kbdharun
@ -15,11 +15,14 @@
/pages.zh/ @blueskyson @einverne
/pages.zh_TW/ @blueskyson
/pages/linux/ @cyqsimon
/pages/common/ @spageektti
/pages/linux/ @cyqsimon @spageektti
/pages/windows/ @spageektti
/*.md @sbrl @kbdharun
/*.md @sbrl @kbdharun @sebastiaanspeck
/.devcontainer/* @kbdharun @sebastiaanspeck
/.github/workflows/* @sbrl @kbdharun @sebastiaanspeck
/scripts/* @sebastiaanspeck
/scripts/* @sebastiaanspeck @kbdharun
/contributing-guides/maintainers-guide.md @sbrl @kbdharun
/contributing-guides/style-guide.md @sbrl @kbdharun
@ -32,7 +35,7 @@
/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/*.pl.md @acuteenvy @spageektti
/contributing-guides/*.pt_BR.md @isaacvicente @vitorhcl
/contributing-guides/*.pt_PT.md @waldyrious
/contributing-guides/*.ta.md @kbdharun

View File

@ -2,14 +2,14 @@ name: CI
on: ['push', 'pull_request']
permissions:
contents: write # to upload assets to releases
jobs:
ci:
runs-on: ubuntu-latest
name: CI
runs-on: ubuntu-latest
permissions:
contents: write # to upload assets to releases
attestations: write # to upload assets attestation for build provenance
id-token: write # grant additional permission to attestation action to mint the OIDC token permission
steps:
- uses: actions/checkout@v4
@ -34,7 +34,7 @@ jobs:
run: npm ci
- name: Install pip dependencies
run: pip install -r requirements.txt -r scripts/pdf/requirements.txt
run: pip install -r requirements.txt -r scripts/pdf/requirements.txt -r scripts/test-requirements.txt
- name: Test
run: npm test
@ -53,3 +53,53 @@ jobs:
env:
DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check for generated files
if: github.repository == 'tldr-pages/tldr' && github.ref == 'refs/heads/main'
id: check-files
run: |
if [[ -n $(find language_archives -name "*.zip" -print -quit) ]]; then
echo "zip_exists=true" >> $GITHUB_ENV
else
echo "zip_exists=false" >> $GITHUB_ENV
fi
if [[ -n $(find scripts/pdf -name "*.pdf" -print -quit) ]]; then
echo "pdf_exists=true" >> $GITHUB_ENV
else
echo "pdf_exists=false" >> $GITHUB_ENV
fi
if [[ -f tldr.sha256sums ]]; then
echo "checksums_exist=true" >> $GITHUB_ENV
else
echo "checksums_exist=false" >> $GITHUB_ENV
fi
- name: Construct subject-path for attest
if: github.repository == 'tldr-pages/tldr' && github.ref == 'refs/heads/main'
id: construct-subject-path
run: |
subject_path=""
if [[ ${{ env.zip_exists }} == 'true' ]]; then
zip_files=$(find language_archives -name '*.zip' -printf '%p,')
subject_path+="${zip_files::-1}"
fi
if [[ ${{ env.pdf_exists }} == 'true' ]]; then
if [[ -n $subject_path ]]; then subject_path+=","; fi
pdf_files=$(find scripts/pdf -name '*.pdf' -printf '%p,')
subject_path+="${pdf_files::-1}"
fi
if [[ ${{ env.checksums_exist }} == 'true' ]]; then
if [[ -n $subject_path ]]; then subject_path+=","; fi
subject_path+='tldr.sha256sums'
fi
echo "subject_path=$subject_path" >> $GITHUB_ENV
- name: Attest generated files
if: github.repository == 'tldr-pages/tldr' && github.ref == 'refs/heads/main'
id: attest
uses: actions/attest-build-provenance@v1
continue-on-error: true # prevent failing when no pages are modified
with:
subject-path: ${{ env.subject_path }}

View File

@ -17,7 +17,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v42.0.5
uses: tj-actions/changed-files@v44.5.2
with:
# Ignore all other languages except English
files_ignore: |

View File

@ -4,28 +4,50 @@ on:
release:
types: published
permissions:
contents: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
release:
name: Copy assets to the new release
name: Copy release assets
runs-on: ubuntu-latest
permissions:
contents: write # to upload assets to releases
attestations: write # to upload assets attestation for build provenance
id-token: write # grant additional permission to attestation action to mint the OIDC token permission
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download and upload
- name: Set tag names
run: |
LATEST="$(git describe --tags --abbrev=0)"
PREVIOUS="$(git describe --tags --abbrev=0 "$LATEST"^)"
echo "LATEST=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
echo "PREVIOUS=$(git describe --tags --abbrev=0 $(git describe --tags --abbrev=0)^)" >> $GITHUB_ENV
- name: Download assets
run: |
mkdir release-assets && cd release-assets
gh release download "$PREVIOUS"
gh release upload "$LATEST" -- *
- name: Construct subject-path for attest
if: github.repository == 'tldr-pages/tldr'
id: construct-subject-path
run: |
zip_files=$(find release-assets -name '*.zip' -printf '%p,')
pdf_files=$(find release-assets -name '*.pdf' -printf '%p,')
subject_path="${zip_files::-1},${pdf_files::-1},release-assets/tldr.sha256sums"
echo "subject_path=$subject_path" >> $GITHUB_ENV
- name: Attest copied assets
if: github.repository == 'tldr-pages/tldr'
id: attest
uses: actions/attest-build-provenance@v1
with:
subject-path: ${{ env.subject_path }}
- name: Upload assets
if: github.repository == 'tldr-pages/tldr'
working-directory: release-assets
run: gh release upload "$LATEST" -- *

View File

@ -6,6 +6,6 @@ jobs:
labeler:
runs-on: ubuntu-latest
steps:
- uses: tldr-pages/tldr-labeler-action@v0
- uses: tldr-pages/tldr-labeler-action@v0.4.0
with:
token: "${{ secrets.GITHUB_TOKEN }}"

3
.gitignore vendored
View File

@ -28,3 +28,6 @@ scripts/pdf/tldr-pages.pdf
# Python venv for testing the PDF script
# Create it with: python3 -m venv scripts/pdf/venv/
venv
# Generated pycache
__pycache__

View File

@ -3,6 +3,7 @@
"MD003": { "style": "atx" },
"MD007": { "indent": 4 },
"MD013": { "line_length": 250 },
"MD029": false,
"MD033": false,
"MD034": false,
"no-hard-tabs": false,

View File

@ -1,6 +1,7 @@
<!-- markdownlint-disable MD007 MD013 MD024-->
# tldr-pages client specification
**Current Specification Version:** 2.1
**Current Specification Version:** 2.2
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.
@ -112,7 +113,7 @@ The structure inside these translation folders is identical to that of the main
## 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). In cases when a command uses `{}` in its arguments (e.g. `stash@{0}`) ***the outer braces*** mark the placeholder - the braces inside 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/), 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). In cases when a command uses `{}` in its arguments (e.g. `stash@{0}`) **_the outer braces_** mark the placeholder - the braces inside MUST be displayed. Clients MUST NOT break if the page format is changed within the _CommonMark_ specification.
### Examples
@ -162,7 +163,7 @@ If a page cannot be found in _any_ platform, then it is RECOMMENDED that clients
https://github.com/tldr-pages/tldr/issues/new?title=page%20request:%20{command_name}
```
where `{command_name}` is the name of the command that was not found. Clients that have control over their exit code on the command line (i.e. clients that provide a CLI) MUST exit with a non-zero exit code in addition to showing the above message.
where `{command_name}` is the name of the command that was not found. Clients that have control over their exit code on the command-line (i.e. clients that provide a CLI) MUST exit with a non-zero exit code in addition to showing the above message.
#### If multiple versions of a page were found
@ -216,6 +217,9 @@ Step | Path checked | Outcome
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://github.com/tldr-pages/tldr/releases/latest/download/tldr.zip>** or download language-specific archives in the format `https://github.com/tldr-pages/tldr/releases/latest/download/tldr-pages.{{language-code}}.zip` (e.g. **<https://github.com/tldr-pages/tldr/releases/latest/download/tldr-pages.en.zip>**). The English archive is also available from **<https://github.com/tldr-pages/tldr/releases/latest/download/tldr-pages.zip>**.
> [!CAUTION]
> Prior to version 2.2, the client specification stated that clients MUST download archives from <https://tldr.sh/assets>. This method is now deprecated, and **_will be removed_** in the future.
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
@ -232,10 +236,11 @@ 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
- [v2.2, March 20th 2024](https://github.com/tldr-pages/tldr/blob/v2.2/CLIENT-SPECIFICATION.md) ([#12452](https://github.com/tldr-pages/tldr/pull/12452))
- Removed redirect text from the [caching section](#caching) ([#12133](https://github.com/tldr-pages/tldr/pull/12133))
- Updated asset URLs to use GitHub releases ([#12158](https://github.com/tldr-pages/tldr/pull/12158))
- Add requirement to disambiguate triple-brace placeholders ([#12158](https://github.com/tldr-pages/tldr/pull/12158))
- Add notice to deprecate the old asset URL ([#12452](https://github.com/tldr-pages/tldr/pull/12452))
- [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))

View File

@ -20,6 +20,9 @@ straightforward, transparent, predictable, and impartial,
the metrics used are objective, easy to check, and explicitly described below. (That's not to say they're hard-set rules:
exceptions can always be considered through open community discussion.)
> [!IMPORTANT]
> It is required to have [two-factor authentication](https://github.com/settings/security) (2FA) enabled for your GitHub account to be added as an outside collaborator or a member of the tldr-pages organization.
## When to change roles
- **Regular contributors should be added as collaborators in the repository.**
@ -74,7 +77,6 @@ exceptions can always be considered through open community discussion.)
Indeed, if they return to active participation in the project,
they should be added back to the organization, to reflect that fact.
## How to change roles
> [!NOTE]
@ -91,7 +93,7 @@ using one of the template messages below as a base.
1. Open an issue with the following message template (edit it as appropriate):
```
```md
Hi, @username! You seem to be enjoying contributing to the tldr-pages project.
You now have had five distinct pull requests [merged](<!-- REPLACE THIS WITH THE LINKS TO THE RELEVANT PRs -->)!
That qualifies you to become a collaborator in this repository, as explained in our [community roles documentation](https://github.com/tldr-pages/tldr/blob/main/COMMUNITY-ROLES.md).
@ -105,6 +107,9 @@ using one of the template messages below as a base.
So, what do you say? Can we add you as a collaborator?
Either way, thanks for all your work so far!
> [!NOTE]
> It is required to have [two-factor authentication](https://github.com/settings/security) (2FA) enabled for your GitHub account to be added as a collaborator to the tldr-pages/tldr repository.
```
2. Once they acknowledge the message and if they accept the invitation,
@ -120,7 +125,7 @@ using one of the template messages below as a base.
1. Open an issue with the following message template (edit it as appropriate):
```
```md
Hi, @username! After joining as a collaborator in the repository, you have been regularly performing [maintenance tasks](<!-- REPLACE THIS WITH THE LINKS TO THE RELEVANT ISSUES AND/OR PRs -->).
Thank you for that!
@ -152,7 +157,7 @@ using one of the template messages below as a base.
1. Open an issue with the following message template (edit it as appropriate):
```
```md
Hi, @username! You've been an active tldr-pages organization member for over 6 months.
Thanks for sticking around this far and helping out!
@ -180,7 +185,7 @@ using one of the template messages below as a base.
1. Open an issue with the following message template (edit it as appropriate):
```
```md
Hi, @username! As you know, our [community roles documentation](https://github.com/tldr-pages/tldr/blob/main/COMMUNITY-ROLES.md) defines processes for keeping the list of organization members in sync with the actual maintenance team.
Since you haven't been active in the project for a while now, we'll be relieving you from the maintainer responsibilities.
@ -215,7 +220,9 @@ 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.
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):

View File

@ -21,6 +21,10 @@ 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.
> [!IMPORTANT]
> While this file contains general instructions to get started, it is suggested to read the [style guide](contributing-guides/style-guide.md) and [translation templates](contributing-guides/translation-templates)
> for more detailed information about the syntax and commonly used translation terms.
To get started, please [sign](https://cla-assistant.io/tldr-pages/tldr) the
[Contributor License Agreement](https://gist.github.com/waldyrious/e50feec13683e565769fbd58ce503d4e).
@ -50,12 +54,14 @@ When in doubt, have a look at a few existing pages :).
## Directory structure
The English pages directory is called `pages`, under which the platform directories are present. 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:
The English pages directory is called `pages`, under which the platform directories are present. 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).
The `<country>` code is optional and should only be added when there is a substantial difference 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.
The `<country>` code is optional and should only be added when there is a substantial difference 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.
### Platform directories
@ -63,14 +69,15 @@ The `pages` directory and `pages.*` language-specific directories contain the pl
1. If the command is available for **two or more** platforms, put it **under the `common` directory**.
2. If the command is **only** available for **one** platform, these are the available directories followed by their right platform:
- `android`: Android
- `freebsd`: FreeBSD
- `openbsd`: OpenBSD
- `osx`: OSX/Mac OS/macOS (will be replaced by `macos`)
- `linux`: any Linux distro
- `netbsd`: NetBSD
- `sunos`: SunOS
- `windows`: Windows
- `android`: Android
- `freebsd`: FreeBSD
- `openbsd`: OpenBSD
- `osx`: OSX/Mac OS/macOS (will be replaced by `macos`)
- `linux`: any Linux distro
- `netbsd`: NetBSD
- `sunos`: SunOS
- `windows`: Windows
## Markdown format
@ -167,7 +174,7 @@ See these examples for reference:
> [!IMPORTANT]
> Translations of pages should be done based on the English (US) page in the `pages` directory. If the English pages don't exist for the command, it should be added first in a PR before creating a translation.
Translation of pages can be done by simply creating the corresponding page within the appropriate [language-specific directory](#pages-directory), creating that as well if it does not already exist.
Translation of pages can be done by simply creating the corresponding page within the appropriate [language-specific directory](#directory-structure), creating that as well if it does not already exist.
> [!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.
@ -216,7 +223,8 @@ 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 the `npm install` command and now when you commit your changes, the tests will run automatically via the pre-commit hook. (To skip the pre-commit hook and immediately commit your changes use the `git commit --no-verify` command).
> Additionally, inside the `tldr` directory you can install the dependencies using the `npm install` command and now when you commit your changes, the tests will run automatically via the pre-commit hook.
> (To skip the pre-commit hook and immediately commit your changes use the `git commit --no-verify` command).
### Submitting changes
@ -229,11 +237,13 @@ 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.
> 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, in addition to facilitate the contribution to go on if you can no longer work on it soon for any reason.
### 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.
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`:
@ -268,7 +278,8 @@ For other cases, it is suggested to follow <https://www.conventionalcommits.org/
## Name collisions
When there are multiple commands sharing the same name, the existing page of the command and the new command can be renamed to `command.1` and so on following a numbering scheme or based on the programming language i.e. `command.js`. The base page can be updated to reference the newly renamed/created pages by following [this subcommand reference format](#subcommands).
When there are multiple commands sharing the same name, the existing page of the command and the new command can be renamed to `command.1` and so on following a numbering scheme or based on the programming language i.e. `command.js`.
The base page can be updated to reference the newly renamed/created pages by following [this subcommand reference format](#subcommands).
See the following page for reference:

View File

@ -1,3 +1,4 @@
<!-- markdownlint-disable MD041 -->
Copyright © 2014—present the [tldr-pages team](https://github.com/orgs/tldr-pages/people)
and [contributors](https://github.com/tldr-pages/tldr/graphs/contributors).

View File

@ -6,7 +6,8 @@ This file contains a list of the maintainers of the tldr-pages project.
> 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): repository collaborators, organization members, and organization owners — each having specific roles in maintaining the project, as outlined below.
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): repository collaborators, organization members,
and organization owners — each having specific roles in maintaining the project, as outlined below.
In general terms, all maintainers are expected to follow the [Maintainer's guide](contributing-guides/maintainers-guide.md).
@ -27,8 +28,6 @@ If you are an owner of the organization, you can see an automated list [here](ht
[8 May 2019](https://github.com/tldr-pages/tldr/issues/2988) — present
- **Pierre Rudloff ([@Rudloff](https://github.com/Rudloff))**:
[16 November 2019](https://github.com/tldr-pages/tldr/issues/3580) — present
- **Proscream ([@Proscream](https://github.com/Proscream))**:
[19 November 2019](https://github.com/tldr-pages/tldr/issues/3592) — present
- **Guido Lena Cota ([@glenacota](https://github.com/glenacota))**:
[19 October 2020](https://github.com/tldr-pages/tldr/issues/4763) — present
- **Sahil Dhiman ([@sahilister](https://github.com/sahilister))**:
@ -53,26 +52,24 @@ If you are an owner of the organization, you can see an automated list [here](ht
[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
- **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
- **cyqsimon ([@cyqsimon](https://github.com/cyqsimon))**: [28 December 2023](https://github.com/tldr-pages/tldr/issues/11864) — present
- **Jongwon Youn ([@korECM](https://github.com/korECM))**: [29 December 2023](https://github.com/tldr-pages/tldr/issues/11892) — present
- **Alejandro Cervera ([@tricantivu](https://github.com/tricantivu))**: [4 January 2024](https://github.com/tldr-pages/tldr/issues/11989) — present
- **Mohammad Reza Soleimani ([@MrMw3](https://github.com/MrMw3))**: [07 January 2024](https://github.com/tldr-pages/tldr/issues/12011) — present
- **Fazle Arefin ([@fazlearefin](https://github.com/fazlearefin))**: [09 February 2024](https://github.com/tldr-pages/tldr/issues/12227) — present
- **Alexandre ZANNI ([@noraj](https://github.com/noraj))**: [22 February 2024](https://github.com/tldr-pages/tldr/issues/12324) — present
- **cyqsimon ([@cyqsimon](https://github.com/cyqsimon))**:
[28 December 2023](https://github.com/tldr-pages/tldr/issues/11864) — present
- **Jongwon Youn ([@korECM](https://github.com/korECM))**:
[29 December 2023](https://github.com/tldr-pages/tldr/issues/11892) — present
- **Mohammad Reza Soleimani ([@MrMw3](https://github.com/MrMw3))**:
[07 January 2024](https://github.com/tldr-pages/tldr/issues/12011) — present
- **Alexandre ZANNI ([@noraj](https://github.com/noraj))**:
[22 February 2024](https://github.com/tldr-pages/tldr/issues/12324) — present
- **Shashank Hebbar ([@quantumflo](https://github.com/quantumflo))**:
[13 November 2023](https://github.com/tldr-pages/tldr/issues/11460) — [27 March 2024](https://github.com/tldr-pages/tldr/issues/12209), [30 March 2024](https://github.com/tldr-pages/tldr/pull/11622#issuecomment-2027932865) — 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)):
@ -113,7 +110,22 @@ If you are an owner of the organization, you can see an automated list [here](ht
[19 October 2023](https://github.com/tldr-pages/tldr/issues/11075) — [24 October 2023](https://github.com/tldr-pages/tldr/issues/11202)
- Isaac Vicente ([@isaacvicente](https://github.com/isaacvicente)):
[20 September 2023](https://github.com/tldr-pages/tldr/issues/10737) — [29 December 2023](https://github.com/tldr-pages/tldr/issues/11918)
- Vitor Henrique ([@vitorhcl](https://github.com/vitorhcl)): [18 December 2023](https://github.com/tldr-pages/tldr/issues/11771) — [21 January 2024](https://github.com/tldr-pages/tldr/issues/12094)
- Vitor Henrique ([@vitorhcl](https://github.com/vitorhcl)):
[18 December 2023](https://github.com/tldr-pages/tldr/issues/11771) — [21 January 2024](https://github.com/tldr-pages/tldr/issues/12094)
- Geipro/Proscream ([@Geipro)](https://github.com/Geipro)):
[19 November 2019](https://github.com/tldr-pages/tldr/issues/3592) — [27 March 2024](https://github.com/tldr-pages/tldr/issues/12209) (Removed during 2FA enforcement)
- Ruben Vereecken ([@rubenvereecken](https://github.com/rubenvereecken)):
[18 January 2018](https://github.com/tldr-pages/tldr/issues/1878#issuecomment-358610454) — [27 March 2024](https://github.com/tldr-pages/tldr/issues/12209) (Removed during 2FA enforcement)
- Fazle Arefin ([@fazlearefin](https://github.com/fazlearefin)):
[09 February 2024](https://github.com/tldr-pages/tldr/issues/12227) — [2 April 2024](https://github.com/tldr-pages/tldr/issues/12595)
- Alejandro Cervera ([@tricantivu](https://github.com/tricantivu)):
[4 January 2024](https://github.com/tldr-pages/tldr/issues/11989) — [3 April 2024](https://github.com/tldr-pages/tldr/issues/12594)
- Magrid0 ([@Magrid0](https://github.com/Magrid0)):
[22 October 2023](https://github.com/tldr-pages/tldr/issues/11159) — [3 May 2024](https://github.com/tldr-pages/tldr/issues/12717)
- Darío Hereñú ([@kant](https://github.com/kant)):
[20 September 2023](https://github.com/tldr-pages/tldr/issues/10738) — [3 May 2024](https://github.com/tldr-pages/tldr/issues/12718)
- Wiktor ([@spageektti](https://github.com/spageektti)):
[11 May 2024](https://github.com/tldr-pages/tldr/issues/12776) — [1 June 2024](https://github.com/tldr-pages/tldr/issues/12869)
## Organization members
@ -130,13 +142,20 @@ An automated list can be found [here](https://github.com/orgs/tldr-pages/people)
[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
- **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
- **Isaac Vicente ([@isaacvicente](https://github.com/isaacvicente))**:
[29 December 2023](https://github.com/tldr-pages/tldr/issues/11918) — present
- **Vitor Henrique ([@vitorhcl](https://github.com/vitorhcl))**: [21 January 2024](https://github.com/tldr-pages/tldr/issues/12094) — present
- **Vitor Henrique ([@vitorhcl](https://github.com/vitorhcl))**:
[21 January 2024](https://github.com/tldr-pages/tldr/issues/12094) — present
- **Fazle Arefin ([@fazlearefin](https://github.com/fazlearefin))**:
[2 April 2024](https://github.com/tldr-pages/tldr/issues/12595) — present
- **Alejandro Cervera ([@tricantivu](https://github.com/tricantivu))**:
[3 April 2024](https://github.com/tldr-pages/tldr/issues/12594) — present
- **Magrid0 ([@Magrid0](https://github.com/Magrid0))**:
[3 May 2024](https://github.com/tldr-pages/tldr/issues/12717) — present
- **Darío Hereñú ([@kant](https://github.com/kant))**:
[3 May 2024](https://github.com/tldr-pages/tldr/issues/12718) — present
- **Wiktor ([@spageektti](https://github.com/spageektti))**:
[1 June 2024](https://github.com/tldr-pages/tldr/issues/12869) — 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)):
@ -167,6 +186,10 @@ An automated list can be found [here](https://github.com/orgs/tldr-pages/people)
[18 March 2021](https://github.com/tldr-pages/tldr/issues/5473) — [15 November 2023](https://github.com/tldr-pages/tldr/issues/11509)
- Lena ([@acuteenvy](https://github.com/acuteenvy)):
[21 June 2023](https://github.com/tldr-pages/tldr/issues/10406) — [27 December 2023](https://github.com/tldr-pages/tldr/issues/11839)
- Sebastiaan Speck ([@sebastiaanspeck](https://github.com/sebastiaanspeck)):
[24 October 2023](https://github.com/tldr-pages/tldr/issues/11202) — [28 April 2024](https://github.com/tldr-pages/tldr/issues/12687)
- Juri ([@gutjuri](https://github.com/gutjuri)):
[24 October 2023](https://github.com/tldr-pages/tldr/issues/11201) — [29 April 2024](https://github.com/tldr-pages/tldr/issues/12686)
## Organization owners
@ -197,6 +220,10 @@ An automated list can be found [here](https://github.com/orgs/tldr-pages/people)
[7 July 2023](https://github.com/tldr-pages/tldr/issues/10054) — present
- **Lena ([@acuteenvy](https://github.com/acuteenvy))**:
[27 December 2023](https://github.com/tldr-pages/tldr/issues/11839) — present
- **Sebastiaan Speck ([@sebastiaanspeck](https://github.com/sebastiaanspeck))**:
[28 April 2024](https://github.com/tldr-pages/tldr/issues/12687) — present
- **Juri ([@gutjuri](https://github.com/gutjuri))**:
[29 April 2024](https://github.com/tldr-pages/tldr/issues/12686) — 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)):

View File

@ -1,3 +1,4 @@
<!-- markdownlint-disable MD041 -->
<div align="center">
<h1><a href="https://tldr.sh/"><img alt="tldr-pages" src="images/banner.png" width=600/></a></h1>
@ -42,11 +43,14 @@ $ man tar
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)
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/tldr-pages/tldr/blob/main/images/tldr-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/tldr-pages/tldr/blob/main/images/tldr-light.png">
<img alt="Screenshot of the tldr client displaying the tar command." src="https://github.com/tldr-pages/tldr/blob/main/images/tldr-dark.png">
</picture>
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, Android, and Windows command-line tools.
## How do I use it?
@ -67,7 +71,8 @@ Alternatively, you can also use the official [Python client](https://github.com/
pip3 install tldr
```
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) (or [other package managers](https://github.com/tldr-pages/tlrc#installation) on other operating systems):
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)
(or [other package managers](https://github.com/tldr-pages/tlrc#installation) on other operating systems):
```shell
brew install tlrc
@ -91,7 +96,7 @@ All contributions are welcome!
Some ways to contribute include:
- Adding your favorite command which isn't covered.
- Adding your favorite command that 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.
@ -111,11 +116,11 @@ You are also welcome to join us on the [matrix chatroom](https://matrix.to/#/#tl
## 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.
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
It was designed to help remind Unix system administrators of options
for commands that they use frequently, but not frequently enough to remember.
- [cheat.sh](https://cheat.sh/)

View File

@ -1,4 +1,5 @@
# Using Git
## Opening a Pull Request
Most people submit pull requests to the tldr-pages project
@ -61,6 +62,7 @@ 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
@ -74,15 +76,18 @@ 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`.
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 (check it with `git log`) 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 using the commit as-is when replaying them. For the commits you want to edit, replace the word `pick` with `edit`, then save and exit the editor.
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 using the commit as-is when replaying them.
For the commits you want to edit, replace the word `pick` with `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 finished rebasing and replayed all commits.
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 finished rebasing and replayed all commits.
```bash
git commit --amend --author "Your Name <correct@example.org>"

View File

@ -2,7 +2,17 @@
This page lists specific formatting instructions for `tldr` pages.
## Layout
## Contents
1. [General layout](#general-layout)
2. [Pages](#pages)
3. [General writing](#general-writing)
4. [Heading](#heading)
5. [Example descriptions](#example-descriptions)
6. [Example commands](#example-commands)
7. [Language-specific rules](#language-specific-rules)
## General layout
The basic format of each page should match the following template and have at most 8 command examples:
@ -66,10 +76,10 @@ npm install --global tldr-lint
tldr-lint path/to/tldr_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 `tldr-lint`, such as linting an entire directory, check out the
[`tldr page on tldr-lint`](https://github.com/tldr-pages/tldr/blob/main/pages/common/tldr-lint.md). Alternatively, you can also use its alias `tldrl`.
Your client may be able to preview a page locally using the `--render` flag:
Depending on your client, you may be able to preview a page locally using the `--render` flag:
```sh
tldr --render path/to/tldr_page.md
@ -83,17 +93,31 @@ When documenting PowerShell commands, please take note of the following naming c
- 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,
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).
Thus, if the command or its options are unavailable or contain different behaviors 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.
> Note: 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
## Pages
### Platform differences
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 to be displayed to the end user.
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 platform users.
### 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.
@ -123,11 +147,12 @@ Example:
- 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
#### 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:
1. **Replaces 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
@ -141,10 +166,11 @@ Some PowerShell commands may introduce aliases which fall into one of these thre
`tldr set-location`
```
> [!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.
> [!NOTE]
> The "View documentation of the equivalent PowerShell command" example is optional and must be excluded if the page already has the maximum number (8) of examples.
**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,
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
@ -157,7 +183,8 @@ Some PowerShell commands may introduce aliases which fall into one of these thre
`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.
**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,
@ -180,92 +207,52 @@ In this case, provide a note and method to determine whether the command current
`tldr invoke-webrequest`
```
## Option syntax
## General writing
- For commonly/frequently used commands (e.g. `grep`, `tar`, `etc`), we prefer using short options along with [mnemonics](#short-option-mnemonics) or both inside a placeholder.
- For highlighting both long and short options in commands (instead of using mnemonics), combine them within a placeholder i.e. `{{-o|--output}}`.
- For user-friendliness, use **GNU-style long options** (like `--help` rather than `-h`) when they are cross-platform compatible (intended to work the same across multiple platforms) for pages in `common` directory.
- When documenting PowerShell commands, use **PowerShell-style long options** (like `-Help` instead of `-H`).
- 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.
### Emphasis
### Short option mnemonics
Do not use *italics*, **boldface** or any other text styling on the pages. These are reserved for client emphasis of placeholders.
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:
### Imperative Mood
- **All descriptions must be phrased in the imperative mood.**
- This also applies to all translations by default unless otherwise specified in the language-specific section below.
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 used as the example's description below:
```md
- [d]isplay the ins[t]allation [i]D for the current device. Useful for offline license activation:
- Listing all files:
`slmgr.vbs /dti`
- Display the current license's e[xp]i[r]ation date and time:
`slmgr.vbs /xpr`
`ls`
```
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`.
### Serial Comma
**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.
- 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.
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.
> Delete the Git branches, tags, and remotes.
- Optionally, mnemonics and their enclosed terms can be separated with brackets from the rest of the description (i.e. `([a]ll)`) in translations and specific pages to provide additional context or mention a word not present in the description.
The example above does not use a serial comma, so this could mean one of two things:
> [!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.
- Delete the Git branches named `tags` and `remotes`.
- Delete all of the following: Git branches, Git tags, and Git remotes.
## Placeholder syntax
This can be resolved by inserting a comma before the "and" or "or" in the final element in the list.
User-provided values should use the `{{placeholder}}` syntax
in order to allow `tldr` clients to highlight them.
> Delete the Git branches, tags, and remotes.
Keep the following guidelines in mind when choosing placeholders:
### Naming
- 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 the 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 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.
> [!NOTE]
> Brand and project names can be capitalized in the description whenever applicable (e.g. use `A tool for interacting with a Git repository.` instead of ``A tool for interacting with a `git` repository.``).
### Special cases
@ -287,72 +274,44 @@ Use backticks on the following:
- Standard streams: `stdout`, `stdin`, `stderr`. **Do not** use the full names (e.g. standard output).
- Compression algorithms, e.g. `zip`, `7z`, `xz`.
## Descriptions
## Heading
- 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`).
- Brand and project names can be capitalized in the description whenever applicable (e.g. use `A tool for interacting with a Git repository.` instead of ``A tool for interacting with a `git` repository.``).
- Acronym expansions (i.e. protocols, tools, etc) must not be translated unless there is a recognized native equivalent for them.
- When documenting keycaps or a keyboard shortcut for a utility it is suggested to wrap them in backticks to make them stand out in the description (i.e. ``Print the last lines of a given file and keep reading it until `Ctrl + C`:``). Alternatively, you can document them as a separate command and optionally highlight them as placeholders (i.e. `:wq{{Enter}}` or `:wq<Enter>` or `:wq(Enter)`).
### More information links
### Imperative Mood
- On the `More information` link line, we prefer linking to the author's provided documentation of the command-line reference or the man page. When not available, use <https://manned.org> as the default fallback for all platforms
(except `osx` and BSD platforms other than FreeBSD).
Alternatively, you can link to the author's website or a tutorial page if the command doesn't have a documentation page.
- **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:
- For `osx`: Apple distributes the built-in man pages [in Xcode](https://developer.apple.com/documentation/os/reading_unix_manual_pages).
For commands documented there, we recommend using <https://keith.github.io/xcode-man-pages/>, an HTML export of all Apple's man pages bundled with Xcode.
```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.
```
> [!IMPORTANT]
> All links must be enclosed inside angular brackets (`<` and `>`).
It should instead be simplified to make it easier for everyone to read:
- It is suggested to use a more information link with English content in both translations and English pages. That's because the links can eventually change, but the translations are often out of sync with the English pages.
```md
> Change the current working directory.
```
#### Versioned links
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.
When a utility or distribution has versioned links for the packages, link to the most recent version of documentation (i.e. `latest`) or none if the website automatically redirects to the latest version of the documentation.
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.
For example, use:
When writing descriptions for command examples, **check for any grammatical errors**. `Go to the specified directory` is preferred instead of:
- <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>.
- `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)
#### Microsoft Learn links
For instance, instead of `Listing all files:`, `List all files:` can be used as the example's description below:
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>.
```md
- Listing all files:
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=`.
`ls`
```
- 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>.
## Emphasis
Do not use *italics*, **boldface** or any other text styling on the pages. These are reserved for client emphasis of placeholders.
## 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.
## See also section
### See also section
- To reference a related command or subcommand, use:
@ -368,38 +327,140 @@ This can be resolved by inserting a comma before the "and" or "or" in the final
- Optionally, you can add a short description beside the referenced pages:
``See also: `date`, for Unix information; `umount`, for unmounting partitions.``
```md
> See also: `date` for Unix information, `uname` for system information and `umount` for unmounting partitions.
```
## More information links
## Example descriptions
- On the `More information` link line, we prefer linking to the author's provided documentation of the command line reference or the man page. When not available, use <https://manned.org> as the default fallback for all platforms (except `osx` and BSD platforms other than FreeBSD). Alternatively, you can link to the author's website or a tutorial page if the command doesn't have a documentation page.
### Wording
- For `osx`: Apple distributes the built-in man pages [in Xcode](https://developer.apple.com/documentation/os/reading_unix_manual_pages). For commands documented there, we recommend using https://keith.github.io/xcode-man-pages/, an HTML export of all Apple's man pages bundled with Xcode.
- 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`).
- 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:
- **All links must be enclosed inside angular brackets (`<` and `>`) for proper rendering in clients.**
```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.
```
- We prefer translations to use the more information link of the English page by default.
It should instead be simplified to make it easier for everyone to read:
### Versioned links
```md
> Change the current working directory.
```
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.
### Formatting
For example, use:
- Proper names should be capitalized in the description whenever applicable (e.g. use `A tool for interacting with a Git repository.` instead of ``A tool for interacting with a `git` repository.``).
- Acronym expansions (i.e. protocols, tools, etc) must not be translated unless there is a recognized native equivalent for them.
- When documenting keycaps or a keyboard shortcut for a utility, make it stand out in the description:
- <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>.
1. If it is not translatable, enclose it with backticks (i.e. ``Print the last lines of a given file and keep reading it until `Ctrl + C`:``)
2. If it is translatable, enclose it with double angled brackets inside a placeholder (i.e. ``:wq{{<<Enter>>}}``).
### Microsoft Learn links
### Short option mnemonics
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>.
Short option mnemonics are optional hints that 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:
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=`.
```md
- [d]isplay the ins[t]allation [i]D for the current device. Useful for offline license activation:
- 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>.
`slmgr.vbs /dti`
## Help and version commands
- 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.
Group consecutive mnemonic characters under the same square brackets, for example: `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.
- Optionally, mnemonics and their enclosed terms can be separated with brackets from the rest of the description (i.e. `([a]ll)`) in translations and specific pages to provide additional context or mention a word not present in the description.
> [!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.
## Example commands
### Option syntax
- For commonly/frequently used commands (e.g. `grep`, `tar`, `etc`), we prefer using short options along with [mnemonics](#short-option-mnemonics) or both inside a placeholder.
- For highlighting both long and short options in commands (instead of using mnemonics), combine them within a placeholder i.e. `{{-o|--output}}`.
- For user-friendliness, use **GNU-style long options** (like `--help` rather than `-h`) when they are cross-platform compatible (intended to work the same across multiple platforms) for pages in the `common` directory.
### Placeholder syntax
User-provided values should use the `{{placeholder}}` syntax
in order to allow `tldr` clients to highlight them.
> [!TIP]
> It is suggested to enclose placeholders accepting strings as input within quotes. i.e. Use `"{{placeholder}}"` instead of `{{"placeholder"}}`.
Keep the following guidelines in mind when choosing placeholders:
#### Naming
- 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 the 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 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 optionally take 1 or more arguments of the same kind, use an ellipsis: `{{placeholder1 placeholder2 ...}}`.
For instance, if multiple paths are expected, use `{{path/to/directory1 path/to/directory2 ...}}`.
- If a command can optionally take 1 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.
#### Optional placeholders
When documenting optional placeholders like paths or file extensions, it is suggested to specify them in the page or example descriptions instead of the placeholder itself. For example:
- Use `{{path/to/source.ext}}` instead of `{{path/to/source.tar[.gz|.bz2|.xz]}}`.
### Help and version commands
- We generally put, **in this order**, the help and version commands as the **last two** examples of the page to highlight more practical commands at the beginning of the page. They can be replaced to accommodate other useful examples if required.
- For consistency, we prefer generic wording `Display help` and `Display version` for these commands.
@ -411,7 +472,7 @@ The below section contains additional language-specific rules for translating pa
### Chinese-Specific Rules
When Chinese words, Latin words and Arabic numerals are written in the same sentence, more attention must be paid to copywriting.
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:
@ -439,7 +500,7 @@ The following guidelines are applied to Chinese (`zh`) and traditional Chinese (
6. Use precise form for technical terms, and do not use unofficial Chinese abbreviations.
- For example, use `Facebook` rather than `facebook`, `fb` or `脸书`.
- For example, use `Facebook` rather than `facebook`, `fb`, or `脸书`.
To maintain readability and normalization, please comply with the 6 rules above as much as possible when translating pages into Chinese.
@ -500,7 +561,7 @@ Second, we recommend using the following forms of technical terms to make transl
| 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:
When translating sentences that contain the words `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
@ -523,12 +584,15 @@ To ensure that the sentence may not be confused with `start processing the web s
### 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`.
- There must be a single blank space between special characters in the descriptions. For example, use `Plus d'informations : https://example.com.` instead of `Plus d'informations: https://example.com.` and use `Crée une archive à partir de fichiers :` instead of `Crée une archive à partir de fichiers:`.
- 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`.
- There must be a single blank space between special characters in the descriptions.
For example, use `Plus d'informations : https://example.com.` instead of `Plus d'informations: https://example.com.` and use `Crée une archive à partir de fichiers :` instead of `Crée une archive à partir de fichiers:`.
### Portuguese-Specific Rules
Example descriptions on pages in Portuguese (for both European and Brazilian Portuguese) must start with verbs in the third person singular present indicative tense. This is because the descriptions must explain what the commands do, making this the correct form to express the intended meaning.
Example descriptions on pages in Portuguese (for both European and Brazilian Portuguese) must start with verbs in the third person singular present indicative tense.
This is because the descriptions must explain what the commands do, making this the correct form to express the intended meaning.
For example, use `Lista os arquivos` instead of `Listar os arquivos`, `Listando os arquivos` or any other form.
@ -543,3 +607,13 @@ For example, use `Lista os arquivos` instead of `Listar os arquivos`, `Listando
```md
- Crea un archivo en un directorio:
```
- Preferably, use the word `identificador` instead of `id` in the placeholders of command examples. For example:
```md
{{identificador_de_usuario}}
```
*Writing prepositions is optional*
However, if the line of a command example exceeds the [maximum length](https://github.com/tldr-pages/tldr/blob/main/.markdownlint.json#L5), choose the word `identificador` or `id` and use it across all placeholders in the page.

View File

@ -6,22 +6,22 @@
## 排版
首先,你的页面应该看起来像这样:
首先,你的页面应该看起来像这样,并且最多只能包含 8 个示例
```md
# 命令名称
> 短小精悍的描述。
> 简短、精炼的描述。
> 描述最好只有一行;当然,如果需要,也可以是两行。
> 更多信息:<https://example.com>.
- 命令描述:
`命令 -选项1 -选项2 -参数1 {{参数的值}}`
`命令 -选项 1 -选项 2 -参数 1 {{参数的值}}`
- 命令描述:
`命令 -选项1 -选项2`
`命令 -选项 1 -选项 2`
```
当你将自己的贡献提交 pull request 时,一个脚本会自动检查你的贡献是否符合上面的格式。
@ -38,43 +38,306 @@ tldr-lint {{page.md}}
如果你用 tldr-pages 的 Node.js 客户端,你可以在命令后加 `-f` (`--render`) 来在本地预览自己的页面:
```sh
tldr --render {{page.md}}
tldr --render path/to/tldr_page.md
```
## 占位符token语法
### PowerShell 特定规则
在记录 PowerShell 命令时,请注意以下命名约定。
当命令涉及用户自己提供的值时,请用 `{{token}}` 语法来使 `tldr` 客户端自动高亮它们:
- 文件名必须以小写形式书写,例如 `invoke-webrequest.md` 而不是 `Invoke-WebRequest.md`
- 页面标题/标题必须按照原样书写(与 Microsoft 或 PowerShell 模块作者意图一致),例如 `Invoke-WebRequest` 而不是 `invoke-webrequest`
- 示例中的命令名称和选项也应按原样书写,例如 `Command-Name {{input}} -CommandParameter {{value}}` 而不是 `command-name {{input}} -commandparameter {{value}}`
`tar -cf {{目标.tar}} {{文件1}} {{文件2}} {{文件3}}`
由于[各种兼容性差异](https://learn.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell)和在 PowerShell 6.x 中删除的特定于 Windows 的命令,确保命令在 PowerShell 5.1(即安装在 Windows 10 和 11 中的“传统 Windows PowerShell”和 最新版本的跨平台 PowerShell以前称为 PowerShell Core之间可用。如果命令或其选项在每个版本之间不可用或包含不同的行为请在描述中注明。例如
```md
# Clear-RecycleBin
> 清空回收站中的项目。
> 此命令仅适用于 PowerShell 版本 5.1 及以下版本,或 7.1 及以上版本。
> 更多信息: <https://learn.microsoft.com/powershell/module/microsoft.powershell.management/clear-recyclebin>.
```
## 别名
如果一个命令可以通过其他名称调用(例如 `vim` 可以通过 `vi` 调用),可以创建别名页面将用户引导到原始命令名称。
```md
# command_name
> 此命令是 `original-command-name` 的别名。
> 更多信息: <https://example.com/original/command/help/page>.
- 查看原始命令的文档:
`tldr original_command_name`
```
示例:
```md
# vi
> 这是 `vim` 命令的一个别名。
- 原命令的文档在:
`tldr vim`
```
预先翻译好的别名模板见[这里](https://github.com/tldr-pages/tldr/blob/main/contributing-guides/translation-templates/alias-pages.md)。
### PowerShell 特定别名
某些 PowerShell 命令可能会引入别名,这些别名可以分为以下三类:
1. 替代现有的 Windows 命令提示符 (`cmd`) 命令,例如 `cd` 别名为 `Set-Location`,但带有不同的命令选项。在这种情况下,将以下别名注释添加到原始命令提示符命令的 tldr 描述的第二行中,例如:
```md
# cd
> 显示当前工作目录或移动到其他目录。
> 在 PowerShell 中,此命令是 `Set-Location` 的别名。本文档基于命令提示符 (`cmd`) 版本的 `cd`
> 更多信息: <https://learn.microsoft.com/windows-server/administration/windows-commands/cd>.
- 原命令的文档在:
`tldr set-location`
```
> [!TIP]
> “查看等效 PowerShell 命令的文档”的示例是可选的,如果页面已经具有 8 条示例,则可以省略。
2. 提供一个新的别名,但只能在 PowerShell 中执行,例如 `ni` 代表 `New-Item`。在这种情况下,使用[标准别名模板](https://github.com/tldr-pages/tldr/blob/main/contributing-guides/translation-templates/alias-pages.md),但添加说明“在 PowerShell 中”,或表示该命令仅限于 PowerShell。例如
```md
# ni
> 在 PowerShell 中,此命令是 `New-Item` 的别名。
> 更多信息: <https://learn.microsoft.com/powershell/module/microsoft.powershell.management/new-item>.
- 查看原始命令的文档:
`tldr new-item`
```
3. 与其他程序冲突时 PowerShell 会提供一个新的别名,最为突出的是将 `curl``wget` 作为 `Invoke-WebRequest` 的别名(带有不兼容的命令选项集)。请注意,此类别的 PowerShell 系统别名通常仅限于 Windows。
在这种情况下,提供一个说明,并提供一种方法来确定命令当前是否引用了 PowerShell 命令(通过别名)或其他程序。例如,
```md
# curl
> 在 PowerShell 中,当原始的 `curl` 程序 (<https://curl.se>) 未正确安装时,此命令可能是 `Invoke-WebRequest` 的别名。
> 更多信息: <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/invoke-webrequest>.
- 通过打印其版本号来检查 `curl` 是否已正确安装。如果此命令导致错误,则 PowerShell 可能已将此命令替换为 `Invoke-WebRequest`
`curl --version`
- 查看原始 `curl` 命令的文档:
`tldr curl -p common`
- 查看 PowerShell 的 `Invoke-WebRequest` 命令的文档:
`tldr invoke-webrequest`
```
## 选项语法
- 对于常用命令(例如 `grep`、`tar` 等),我们更推荐在占位符中使用简短选项以及[助记符](#short-option-mnemonics)。
- 对于在命令中同时突出长选项和短选项(而不是使用助记符),将它们组合在占位符中,即 `{{-o|--output}}`
- 为了用户友好,在 `common` 目录下的页面中,当它们在跨平台(在多个平台上都可以正常工作)时,我们更推荐使用**GNU 风格的长选项**(例如 `--help` 而不是 `-h`)。
- 在记录 PowerShell 命令时,使用**PowerShell 风格的长选项**(例如 `-Help` 而不是 `-H`)。
- 我们更推荐使用空格而不是等号 (`=`) 来分隔选项和其参数(即使用 `--opt arg` 而不是 `--opt=arg`),除非程序不支持此方法。
### 短选项助记符
短选项助记符是可选的提示,可以添加以帮助用户理解这些短选项的含义。分配的助记符应与命令的官方文档(例如来自 `man``Get-Help`)中的内容相匹配。例如:
```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`
```
请注意,在第一个示例中,`[d]`、`[t]` 和 `[i]` 字符被方括号括起来,以指示命令的 `/dti` 选项分别是 "display"、"installation" 和 "ID" 的组合。连续的助记符字符可以在同一方括号下进行分组,例如 `e[xp]i[r]ation` 而不是 `e[x][p]i[r]ation`
**助记符字符必须以区分大小写的方式编写**,即使它放在句子的第一个字符位置(例如使用 `[d]isplay` 而不是 `[D]isplay`)。这是为了避免与 GNU 风格命令选项产生冲突GNU 风格命令选项可能会以不同于小写的方式解释大写选项,例如 `-v` 用于显示命令的 `[v]ersion` 号码,而 `-V` 则用于以 `[V]erbose` 模式运行命令。
选项助记符也可以在翻译中使用,只要突出显示的单词与命令所用语言(通常为英语)中的单词具有相似的含义即可。例如,英语中的 `[d]ownload` 可以翻译为西班牙语中的 `[d]escargar`,英语中的 `[i]nstall` 可以翻译为德语中的 `[i]nstallieren`,而英语中的 `[a]pp` 可以翻译为印尼语和马来语中的 `[a]plikasi`
可选地,在翻译和特定页面中,助记符及其包含的术语可以用括号与描述的其余部分分开(即 `([a]ll)`),以提供额外的上下文或提及描述中不存在的单词。
> [!NOTE]
> 在翻译的单词中如果缺少字符,您可以在等效词的前面或旁边突出显示选项,或您可以在括号内的翻译旁边添加英文单词。例如,英语中的 `E[x]tract` 可以翻译为印尼语中的 `[x] ekstrak``ekstrak [x]``ekstrak (E[x]tract)`
## 占位符语法
当命令涉及用户自己提供的值时,请用 `{{token}}` 语法来使 `tldr` 客户端能自动高亮它们:
`tar -cf {{目标.tar}} {{文件 1}} {{文件 2}} {{文件 3}}`
翻译时,请尽量翻译原文中的西文占位符。下面是命名占位符的规则:
1. 占位符需要短小精悍,
1. 占位符需要短小精悍,
例如 `{{源文件}}` 或者 `{{钱包.txt}}`
2. 如果占位符是西文,请用 [`snake_case`](https://en.wikipedia.org/wiki/Snake_case) 来分词。
3. 当占位符涉及文件路径时,请用 `{{目录/子目录/<占位符>}}` 的格式。
例如:`ln -s {{目录/子目录/源文件}} {{目录/子目录/链接}}`
3. 当占位符涉及文件路径时,请用 `{{目录/子目录/《占位符》}}` 的格式。
例如:`ln -s {{目录/子目录/源文件}} {{目录/子目录/链接}}`
如果占位符提到的文件也可能是目录,请用 `{{目录/子目录/文件或目录}}`
4. 除非文件是特定的,上述 `{{目录/子目录/<占位符>}}` 的文件路径格式应用于所有包含路径的命令。
5. 如果命令需要的文件扩展名是固定的,请在占位符里加上文件格式。
例如:`unrar x {{压缩包.rar}}`
如果文件 **必须** 有一个扩展名,请用 `{{.ext}}`
例如,在 `find {{起始目录}} -name '{{*.ext}}'` 的例子里,
这样做简单地演示了查找一个特定文件扩展名的方法。
4. 除非文件是特定的,上述 `{{目录/子目录/《占位符》}}` 的文件路径格式应用于所有包含路径的命令。
5. 如果命令需要的文件扩展名是固定的,请在占位符里加上文件格式。
例如:`unrar x {{压缩包.rar}}`
如果文件 **必须** 有一个扩展名,请用 `{{.ext}}`
例如,在 `find {{起始目录}} -name '{{*.ext}}'` 的例子里,
这样做简单地演示了查找一个特定文件扩展名的方法。
但是,在 `wc -l {{file}}` 的例子里,用不加扩展名的 `{{file}}` 就足够了。
6. 如果用实际的值比描述这个占位符更加明了,请举一个值做例子。
6. 如果用实际的值比描述这个占位符更加明了,请举一个值做例子。
例如:`iostat {{2}}` 比 `iostat {{以秒为单位的间隔}}` 更清晰。
7. 如果一个命令可能对文件系统或设备造成不可逆的影响,请在示例命令中注意改写,使其不能被盲目复制粘贴运行。
例如,`ddrescue --force --no-scrape /dev/sda /dev/sdb` 被盲目复制粘贴时可能对系统造成毁灭性的打击;`ddrescue --force --no-scrape {{/dev/sdX}} {{/dev/sdY}}` 则更安全。
7. 如果一个命令可能对文件系统或设备造成不可逆的影响,请在示例命令中注意改写,使其不能被盲目复制粘贴运行。
例如,`ddrescue --force --no-scrape /dev/sda /dev/sdb` 被盲目复制粘贴时可能对系统造成毁灭性的打击;`ddrescue --force --no-scrape {{/dev/sdX}} {{/dev/sdY}}` 则更安全。
因此,请用 `{{/dev/sdXY}}` 而不是 `{{/dev/sda1}}` 来表示一个 **块设备** 。
占位符应该尽可能简单明了,让人一眼就能看出应该替换它的值。
### 路径
- 当只期望文件名时,请使用 `{{filename}}`
- 对于文件或目录路径的任何引用,请使用格式 `{{path/to/<placeholder>}}`,除非位置是隐含的。
- 当路径不能是相对路径,而必须从文件系统的根目录开始时,请使用斜杠作为前缀,例如 `get {{/path/to/remote_file}}`
- 如果可能引用文件或目录,请使用 `{{path/to/file_or_directory}}`
> [!NOTE]
> 如果命令专用于 Windows请使用反斜杠`\`),例如 `{{path\to\file_or_directory}}`。驱动器号(如 `C:`)是可选的,除非命令输入要求绝对路径或特定的驱动器号范围,例如 `cd /d {{C}}:{{path\to\directory}}`
### 扩展名
- 如果文件有特定的扩展名,请写出来。
例如,`unrar x {{path/to/compressed.rar}}`。
- 如果需要通用的扩展名,请使用 `{{.ext}}`,但**只有**在需要扩展名时才使用。
例如,在 `find.md` 的示例“按扩展名查找文件”中(`find {{path/to/root}} -name '{{*.ext}}'`
使用 `{{*.ext}}` 可以解释命令而不必过于具体;
而在 `wc -l {{path/to/file}}` 中,使用 `{{path/to/file}}`(不带扩展名)就足够了。
### 分组占位符
- 如果命令可以接受相同类型的 0 个或多个参数,请使用省略号:`{{placeholder1 placeholder2 ...}}`。
例如,期望多个路径,则可以使用 `{{path/to/directory1 path/to/directory2 ...}}`
- 如果命令可以接受不同类型的 0 个或多个参数,请使用竖线和省略号:`{{placeholder1|placeholder2|...}}`。
如果可能值超过 5 个,则可以在最后一项后面使用 `|...`
- 无法通过省略号限制占位符的最小或最大数量。
### 特殊情况
- 如果一个命令可能对文件系统或设备进行不可逆转的更改,
请以一种不会被轻易复制粘贴的方式编写每个示例。
例如,不要写成 `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`.
- 路径,例如 `package.json``/etc/package.json`。
- 扩展名,例如 `.dll`
- 命令,例如 `ls`
- 标准流:`stdout``stdin``stderr`。**不要**使用完整的名称(例如标准输出)。
- 压缩算法,例如 `zip``7z``xz`。
## 描述
### 祈使句
- **所有描述必须以祈使句表达。**
如果你担心命令在不同平台或操作系统之间可能不同(例如 Windows 对比 macOS大多数 [tldr 页面客户端](https://github.com/tldr-pages/tldr/wiki/tldr-pages-clients) 将选择最适合的命令版本。
在这种情况下,默认将显示 Windows 版本的 `cd` 信息(存储在 `pages/windows/cd.md` 中)给 Windows 用户,并为 Linux、macOS 和其他平台显示一个通用版本(存储在 `pages/common/cd.md` 中)。
在为命令示例编写描述时,**检查任何语法错误**。例如,应该使用 `前往指定目录` 而不是:
- `正前往指定目录`(不应使用现在分词形式)
- `该命令将前往指定目录`(很明显此示例适用于 *此* 命令)
- `让我们前往指定目录!`
- `目录被更改为`(如果可能,应使用主动形式而不是被动形式)
例如,可以使用 `列出所有文件:` 的描述,下面是示例的描述可以使用 `列出所有文件:`
```md
- 列出所有文件:
`ls`
```
### 措辞
- 所有描述**必须简洁**。
- 避免在描述中使用页面标题(例如,使用 `为数字艺术家设计的素描和绘画程序`,而不是 `Krita 是为数字艺术家设计的素描和绘画程序`),除非程序名称与可执行文件名称不同(例如 `rg` 和 Ripgrep
- 避免提及程序是在命令行上使用的(例如,使用 `Ripgrep 是一个递归的面向行的搜索工具`,而不是 `Ripgrep 是一个递归的面向行的 CLI 搜索工具`)。
- 例如,在为 `cd` 编写文档时,一个用于在终端或命令提示符中更改当前工作目录的工具,**不要**写出像这样冗长的描述:
```md
> `cd` 是一个系统工具,在 Windows、macOS 和 Linux 中可用,用于在命令提示符、终端和 PowerShell 中更改当前工作目录以完成任务。
```
它应该简化以使每个人都能更轻松地阅读:
```md
> 更改当前工作目录。
```
### 格式
- 在描述中,应该对专有名词进行大写(例如,使用 `用于与 Git 仓库交互的工具。`,而不是 ``用于与 `git` 仓库交互的工具。``)。
- 首字母缩写(即协议、工具等)在没有本地同类物时不应进行翻译。
- 当编写包含键盘按键或键盘快捷键时,建议将它们用反引号括起来,以突出显示在描述中(即 ``打印给定文件的最后几行,并一直读取直到按下 `Ctrl + C```)。 或者,您可以将它们记录为单独的命令,然后选择性地将它们突出显示为占位符(即 `:wq{{Enter}}``:wq<Enter>``:wq(Enter)`)。
## 斜体和粗体
请不要在页面上使用 *斜体*、**粗体** 或任何其他文本样式。这些样式被用于客户端对占位符的修饰。
## 更多信息链接
- 在`更多信息`链接行上,我们更推荐链接到作者提供的命令行参考文档或 man 手册。如果没有提供,请使用 <https://manned.org> 作为所有系统(除 `osx` 和除了 FreeBSD 之外的 BSD 平台)的默认链接。或者,如果命令没有文档页面,您也可以链接到作者的网站或教程页面。
- 对于 `osx`:苹果在 Xcode 中分发内置的 man 手册 [在这里](https://developer.apple.com/documentation/os/reading_unix_manual_pages)。对于那里记录的命令,我们建议使用 https://keith.github.io/xcode-man-pages/, 这是 Xcode 捆绑的所有苹果 man 手册的 HTML。
- **所有链接必须放在尖括号(`<` 和 `>`)中,以便在客户端中正确呈现。**
- 我们更倾向于在翻译页面中直接使用英文页面的更多信息链接。
### 版本化链接
当一个应用程序或发行版的包具有版本化链接时,我们更倾向于链接到文档的最新版本(即 `latest`),或者如果网站自动重定向到文档的最新版本,则不用链接到任何版本。
例如,使用:
- <https://manpages.debian.org/latest/apt/apt.8.html> 而不是 <https://manpages.debian.org/bookworm/apt/apt.8.en.html>
- <https://docs.aws.amazon.com/cdk/latest/guide/cli.html> 而不是 <https://docs.aws.amazon.com/cdk/v2/guide/cli.html>
### Microsoft Learn 链接
当链接到 Microsoft Learn 页面时,请删除地址中的语言环境,因为网站会自动重定向到读者的首选语言环境。例如,使用 <https://learn.microsoft.com/windows-server/administration/windows-commands/cd> 而不是 <https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cd>
此外,如果链接与 PowerShell 命令文档相关,请删除**文档版本指示符**(即文档来源的 PowerShell/module 版本),即地址中以 `?view=` 开头的部分。
- 使用 <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/select-string> 而不是 <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string?view=powershell-7.4>
- 使用 <https://learn.microsoft.com/powershell/module/powershellget/install-module> 而不是 <https://learn.microsoft.com/en-us/powershell/module/powershellget/install-module?view=powershellget-1.x>
## 帮助和版本命令
- 通常我们将帮助命令和版本命令**按照这个顺序**放在页面的**最后两个**示例中,以突出页面开头更实用的命令。如果需要,它们可以被替换为其他有用的示例。
- 为了保持一致性,我们更推荐使用通用的术语 `显示帮助``显示版本` 来描述这些命令。
- 如果命令在 Windows 等平台中使用了不同的标志,建议记录下帮助和版本示例。
## 特定语言规则
以下部分包含了用于翻译页面的额外的特定语言规则:
## 中西文混排规则
@ -82,19 +345,19 @@ tldr --render {{page.md}}
以下规则适用于中文zh和繁体中文zh_TW
1. 在西文单词和数字前后放置一个空格。
例如:`列出所有 docker 容器` 而不是 `列出所有docker容器`。
例如:`宽度为 50 个字` 而不是 `宽度为50个字`。
2. 除了度数和百分比,在数字和单位之间留一个空格。
例如:`容量 50 MB` 而不是 `容量 50MB`
1. 在西文单词和数字前后放置一个空格。
例如:`列出所有 docker 容器` 而不是 `列出所有 docker 容器`。
例如:`宽度为 50 个字` 而不是 `宽度为 50 个字`。
2. 除了度数和百分比,在数字和单位之间留一个空格。
例如:`容量 50 MB` 而不是 `容量 50MB`
对于度数和百分比:使用 `50°C``50%` 而不是 `50 °C``50 %`.
3. 不要在全角标点符号前后放置空格。
3. 不要在全角标点符号前后放置空格。
例如:`开启 shell进入交互模式` 而不是 `开启 shell ,进入交互模式`
4. 除了西文长句,一律使用全角标点符号。
例如:`嗨,你好。` 而不是 `嗨, 你好.`。
5. 当最句子最后一个字符是半角时,使用半角标点符号来结束句子。
4. 除了西文长句,一律使用全角标点符号。
例如:`嗨,你好。` 而不是 `嗨你好.`。
5. 当最句子最后一个字符是半角时,使用半角标点符号来结束句子。
例如:`将代码转化为 Python 3.` 而不是 `将代码转化为 Python 3。`
6. 使用精准的专有名词,不要使用非官方的中文缩写。
6. 使用精准的专有名词,不要使用非官方的中文缩写。
例如:`Facebook` 而非 `facebook`、`fb` 或 `脸书`
为保持可读性和一致性,将页面翻译成中文时,请尽可能遵守以上 6 条规则。

626
package-lock.json generated
View File

@ -1,15 +1,15 @@
{
"name": "tldr-pages",
"lockfileVersion": 2,
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "tldr-pages",
"license": "SEE LICENSE IN LICENSE.md",
"dependencies": {
"glob": "10.3.10",
"markdownlint-cli": "^0.39.0",
"tldr-lint": "^0.0.13"
"glob": "10.4.1",
"markdownlint-cli": "^0.41.0",
"tldr-lint": "^0.0.15"
},
"devDependencies": {
"husky": "^9.0.11"
@ -97,11 +97,11 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/commander": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
"integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
"version": "12.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"engines": {
"node": ">=16"
"node": ">=18"
}
},
"node_modules/cross-spawn": {
@ -173,21 +173,21 @@
}
},
"node_modules/glob": {
"version": "10.3.10",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
"integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^2.3.5",
"minimatch": "^9.0.1",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
"path-scurry": "^1.10.1"
"jackspeak": "^3.1.2",
"minimatch": "^9.0.4",
"minipass": "^7.1.2",
"path-scurry": "^1.11.1"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
"engines": {
"node": ">=16 || 14 >=14.17"
"node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@ -209,17 +209,17 @@
}
},
"node_modules/ignore": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
"integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
"engines": {
"node": ">= 4"
}
},
"node_modules/ini": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz",
"integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==",
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
"integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@ -238,9 +238,9 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"node_modules/jackspeak": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
"integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
"integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
@ -270,6 +270,14 @@
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
},
"node_modules/jsonpointer": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
"integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/linkify-it": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
@ -279,36 +287,36 @@
}
},
"node_modules/lru-cache": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz",
"integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==",
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
"integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
"engines": {
"node": "14 || >=16.14"
}
},
"node_modules/markdown-it": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz",
"integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==",
"version": "14.1.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dependencies": {
"argparse": "^2.0.1",
"entities": "^4.4.0",
"linkify-it": "^5.0.0",
"mdurl": "^2.0.0",
"punycode.js": "^2.3.1",
"uc.micro": "^2.0.0"
"uc.micro": "^2.1.0"
},
"bin": {
"markdown-it": "bin/markdown-it.mjs"
}
},
"node_modules/markdownlint": {
"version": "0.33.0",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz",
"integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==",
"version": "0.34.0",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz",
"integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==",
"dependencies": {
"markdown-it": "14.0.0",
"markdownlint-micromark": "0.1.8"
"markdown-it": "14.1.0",
"markdownlint-micromark": "0.1.9"
},
"engines": {
"node": ">=18"
@ -318,19 +326,21 @@
}
},
"node_modules/markdownlint-cli": {
"version": "0.39.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.39.0.tgz",
"integrity": "sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==",
"version": "0.41.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.41.0.tgz",
"integrity": "sha512-kp29tKrMKdn+xonfefjp3a/MsNzAd9c5ke0ydMEI9PR98bOjzglYN4nfMSaIs69msUf1DNkgevAIAPtK2SeX0Q==",
"dependencies": {
"commander": "~11.1.0",
"commander": "~12.1.0",
"get-stdin": "~9.0.0",
"glob": "~10.3.10",
"ignore": "~5.3.0",
"glob": "~10.4.1",
"ignore": "~5.3.1",
"js-yaml": "^4.1.0",
"jsonc-parser": "~3.2.1",
"markdownlint": "~0.33.0",
"minimatch": "~9.0.3",
"run-con": "~1.3.2"
"jsonpointer": "5.0.1",
"markdownlint": "~0.34.0",
"minimatch": "~9.0.4",
"run-con": "~1.3.2",
"smol-toml": "~1.2.0"
},
"bin": {
"markdownlint": "markdownlint.js"
@ -340,11 +350,11 @@
}
},
"node_modules/markdownlint-micromark": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz",
"integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==",
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz",
"integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==",
"engines": {
"node": ">=16"
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/DavidAnson"
@ -356,9 +366,9 @@
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
},
"node_modules/minimatch": {
"version": "9.0.3",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@ -378,9 +388,9 @@
}
},
"node_modules/minipass": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
"integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"engines": {
"node": ">=16 || 14 >=14.17"
}
@ -394,15 +404,15 @@
}
},
"node_modules/path-scurry": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
"integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dependencies": {
"lru-cache": "^9.1.1 || ^10.0.0",
"lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
"node": ">=16 || 14 >=14.17"
"node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@ -450,9 +460,9 @@
}
},
"node_modules/signal-exit": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"engines": {
"node": ">=14"
},
@ -460,6 +470,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/smol-toml": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.2.0.tgz",
"integrity": "sha512-KObxdQANC/xje3OoatMbSwQf2XAvJ0RbK+4nmQRszFNZptbNRnMWqbLF/zb4sMi9xJ6HNyhWXeuZ9zC/I/XY7w==",
"engines": {
"node": ">= 18",
"pnpm": ">= 9"
}
},
"node_modules/string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
@ -560,29 +579,28 @@
}
},
"node_modules/tldr-lint": {
"version": "0.0.13",
"resolved": "https://registry.npmjs.org/tldr-lint/-/tldr-lint-0.0.13.tgz",
"integrity": "sha512-xPIg5465dypL4szZpUmQMenFF8uMnI0Fq6h2CADMso47w8xe5zZVrn7TSocd3I5mZxJDqxNoGG82g1Kzvz1wdA==",
"version": "0.0.15",
"resolved": "https://registry.npmjs.org/tldr-lint/-/tldr-lint-0.0.15.tgz",
"integrity": "sha512-LjKXuoU3tax0NTfNVxyACueTxEDrzBJf7n4dveRSRCCdnQH69PdfamwLaAqBsgpgSRNK+QopWXkLZhmq1smPNA==",
"dependencies": {
"commander": "^8.1.0"
"commander": "^12.0.0"
},
"bin": {
"tldr-lint": "lib/tldr-lint-cli.js",
"tldrl": "lib/tldr-lint-cli.js"
}
},
"node_modules/tldr-lint/node_modules/commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
},
"engines": {
"node": ">= 12"
"node": ">=18"
},
"funding": {
"type": "liberapay",
"url": "https://liberapay.com/tldr-pages"
}
},
"node_modules/uc.micro": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz",
"integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig=="
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
},
"node_modules/which": {
"version": "2.0.2",
@ -682,457 +700,5 @@
"node": ">=8"
}
}
},
"dependencies": {
"@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"requires": {
"string-width": "^5.1.2",
"string-width-cjs": "npm:string-width@^4.2.0",
"strip-ansi": "^7.0.1",
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
"wrap-ansi": "^8.1.0",
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
}
},
"@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"optional": true
},
"ansi-regex": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
},
"ansi-styles": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="
},
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"requires": {
"balanced-match": "^1.0.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"commander": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
"integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="
},
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
}
},
"deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
},
"emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
},
"entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
},
"foreground-child": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
"requires": {
"cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1"
}
},
"get-stdin": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
"integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA=="
},
"glob": {
"version": "10.3.10",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
"requires": {
"foreground-child": "^3.1.0",
"jackspeak": "^2.3.5",
"minimatch": "^9.0.1",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
"path-scurry": "^1.10.1"
}
},
"husky": {
"version": "9.0.11",
"resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz",
"integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==",
"dev": true
},
"ignore": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
"integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg=="
},
"ini": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz",
"integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g=="
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"jackspeak": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
"integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
"requires": {
"@isaacs/cliui": "^8.0.2",
"@pkgjs/parseargs": "^0.11.0"
}
},
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"requires": {
"argparse": "^2.0.1"
}
},
"jsonc-parser": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
},
"linkify-it": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
"integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"requires": {
"uc.micro": "^2.0.0"
}
},
"lru-cache": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz",
"integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw=="
},
"markdown-it": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz",
"integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==",
"requires": {
"argparse": "^2.0.1",
"entities": "^4.4.0",
"linkify-it": "^5.0.0",
"mdurl": "^2.0.0",
"punycode.js": "^2.3.1",
"uc.micro": "^2.0.0"
}
},
"markdownlint": {
"version": "0.33.0",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz",
"integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==",
"requires": {
"markdown-it": "14.0.0",
"markdownlint-micromark": "0.1.8"
}
},
"markdownlint-cli": {
"version": "0.39.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.39.0.tgz",
"integrity": "sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==",
"requires": {
"commander": "~11.1.0",
"get-stdin": "~9.0.0",
"glob": "~10.3.10",
"ignore": "~5.3.0",
"js-yaml": "^4.1.0",
"jsonc-parser": "~3.2.1",
"markdownlint": "~0.33.0",
"minimatch": "~9.0.3",
"run-con": "~1.3.2"
}
},
"markdownlint-micromark": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz",
"integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA=="
},
"mdurl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
},
"minimatch": {
"version": "9.0.3",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"requires": {
"brace-expansion": "^2.0.1"
}
},
"minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
},
"minipass": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
"integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w=="
},
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
"path-scurry": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
"integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
"requires": {
"lru-cache": "^9.1.1 || ^10.0.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
}
},
"punycode.js": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="
},
"run-con": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz",
"integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==",
"requires": {
"deep-extend": "^0.6.0",
"ini": "~4.1.0",
"minimist": "^1.2.8",
"strip-json-comments": "~3.1.1"
}
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"requires": {
"shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
"signal-exit": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q=="
},
"string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"requires": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
"strip-ansi": "^7.0.1"
}
},
"string-width-cjs": {
"version": "npm:string-width@4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
}
}
}
},
"strip-ansi": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"requires": {
"ansi-regex": "^6.0.1"
}
},
"strip-ansi-cjs": {
"version": "npm:strip-ansi@6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
}
}
},
"strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"tldr-lint": {
"version": "0.0.13",
"resolved": "https://registry.npmjs.org/tldr-lint/-/tldr-lint-0.0.13.tgz",
"integrity": "sha512-xPIg5465dypL4szZpUmQMenFF8uMnI0Fq6h2CADMso47w8xe5zZVrn7TSocd3I5mZxJDqxNoGG82g1Kzvz1wdA==",
"requires": {
"commander": "^8.1.0"
},
"dependencies": {
"commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
}
}
},
"uc.micro": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz",
"integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig=="
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"requires": {
"isexe": "^2.0.0"
}
},
"wrap-ansi": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"requires": {
"ansi-styles": "^6.1.0",
"string-width": "^5.0.1",
"strip-ansi": "^7.0.1"
}
},
"wrap-ansi-cjs": {
"version": "npm:wrap-ansi@7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
}
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
}
}
}
}
}
}

View File

@ -6,9 +6,9 @@
"repository": "tldr-pages/tldr",
"homepage": "https://tldr.sh/",
"dependencies": {
"glob": "10.3.10",
"markdownlint-cli": "^0.39.0",
"tldr-lint": "^0.0.13"
"glob": "10.4.1",
"markdownlint-cli": "^0.41.0",
"tldr-lint": "^0.0.15"
},
"devDependencies": {
"husky": "^9.0.11"

View File

@ -1,4 +1,4 @@
# clamav
# ClamAV
> هذا الأمر هو اسم مستعار لـ `clamdscan`.
> لمزيد من التفاصيل: <https://www.clamav.net>.

View File

@ -16,7 +16,7 @@
`fastmod {{regex}} {{replacement}} --dir {{path/to/directory}} --iglob {{'**/*.{js,json}'}}`
- استبدال بالنص مُطابقةً (وليس التعبيرات النمطية)، في ملفات امتداداتهم إما js أو json فحسب:
- استبدال بالنص مُطابقةً (وليس التعبيرات النمطية)، في ملفات امتداداتهم إما js أو JSON فحسب:
`fastmod --fixed-strings {{exact_string}} {{replacement}} --extensions {{json,js}}`

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
# pio-init
# pio init
> هذا الأمر هو اسم مستعار لـ `pio project`.

View File

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

View File

@ -1,7 +1,7 @@
# dockerd
> هي عملية مستمرة تعمل في الخلفية تبدأها لتتحكم في حاويات الدوكر.
> لمزيد من التفاصيل: <https://docs.docker.com/engine/reference/commandline/dockerd/>.
> لمزيد من التفاصيل: <https://docs.docker.com/reference/cli/dockerd/>.
- قم بتشغيل دوكر في الخلفية:
@ -21,4 +21,4 @@
- قم بتشغيل دوكر وحدد له مستوي سجل معين:
`dockerd --log-level={{debug|info|warn|error|fatal}}`
`dockerd --log-level {{debug|info|warn|error|fatal}}`

View File

@ -1,6 +1,6 @@
# ip-route-list
# ip route list
> هذا الأمر هو اسم مستعار لـ `ip-route-show`.
> هذا الأمر هو اسم مستعار لـ `ip route show`.
- إعرض التوثيقات للأمر الأصلي:

View File

@ -13,11 +13,11 @@
- নির্দিষ্ট পাইথন 2 ভাষা বৈশিষ্ট্যগুলি পাইথন 3 এ রূপান্তর করুন:
`2to3 --write {{ফাইলের/পথ.py}} --fix={{raw_input}} --fix={{print}}`
`2to3 --write {{ফাইলের/পথ.py}} --fix {{raw_input}} --fix {{print}}`
- নির্দিষ্ট না করে সমস্ত পাইথন 2 ভাষা বৈশিষ্ট্যগুলি পাইথন 3 এ রূপান্তর করুন:
`2to3 --write {{ফাইলের/পথ.py}} --nofix={{has_key}} --nofix={{isinstance}}`
`2to3 --write {{ফাইলের/পথ.py}} --nofix {{has_key}} --nofix {{isinstance}}`
- পাইথন 2 থেকে পাইথন 3 এ রূপান্তর করা যাবত সমস্ত উপলব্ধ ভাষা বৈশিষ্ট্যের তালিকা প্রদর্শন করুন:
@ -25,8 +25,8 @@
- একটি ডিরেক্টরিতে সমস্ত পাইথন 2 ফাইলগুলি পাইথন 3 এ রূপান্তর করুন:
`2to3 --output-dir={{পাথ/টু/পাইথন3_ডিরেক্টরি}} --write-unchanged-files --nobackups {{পাথ/টু/পাইথন2_ডিরেক্টরি}}`
`2to3 --output-dir {{পাথ/টু/পাইথন3_ডিরেক্টরি}} --write-unchanged-files --nobackups {{পাথ/টু/পাইথন2_ডিরেক্টরি}}`
- মাল্টিপল থ্রেড সহ ২টু৩ চালান:
`2to3 --processes={{4}} --output-dir={{পাথ/টু/পাইথন3_ডিরেক্টরি}} --write --nobackups --no-diff {{পাথ/টু/পাইথন2_ডিরেক্টরি}}`
`2to3 --processes {{4}} --output-dir {{পাথ/টু/পাইথন3_ডিরেক্টরি}} --write --nobackups --no-diff {{পাথ/টু/পাইথন2_ডিরেক্টরি}}`

View File

@ -1,7 +1,7 @@
# 7zr
> একটি উচ্চ সঙ্কোচন অনুবাদক সাথে ফাইল অ্যার্কাইভার।
> `7z` এর মত, কিন্তু এটি কেবলমাত্র `.7z` ফাইলগুলি সমর্থন করে।
> `7z` এর মত, কিন্তু এটি কেবলমাত্র 7z ফাইলগুলি সমর্থন করে।
> আরও তথ্য পাবেন: <https://manned.org/7zr>
- একটি ফাইল বা ডিরেক্টরি অ্যার্কাইভ করুন:

View File

@ -18,11 +18,11 @@
- নির্দিষ্ট প্রকারের ফাইলগুলিতে সীমাবদ্ধ খোঁজ করুন:
`ack --type={{ruby}} "{{খোঁজের_প্যাটার্ন}}"`
`ack --type {{ruby}} "{{খোঁজের_প্যাটার্ন}}"`
- নির্দিষ্ট প্রকারের ফাইলগুলিতে খোঁজুন না:
`ack --type=no{{ruby}} "{{খোঁজের_প্যাটার্ন}}"`
`ack --type no{{ruby}} "{{খোঁজের_প্যাটার্ন}}"`
- পাওয়া মিলে সম্পূর্ণ ম্যাচের সম্পূর্ণ সংখ্যা গণনা করুন:

View File

@ -1,4 +1,4 @@
# clamav
# ClamAV
> Ova komanda je pseudonim za `clamdscan`.
> Više informacija: <https://www.clamav.net>.

View File

@ -1,6 +1,6 @@
# fossil-ci
# fossil ci
> Ova komanda je pseudonim za `fossil-commit`.
> Ova komanda je pseudonim za `fossil commit`.
> Više informacija: <https://fossil-scm.org/home/help/commit>.
- Pogledaj dokumentaciju za izvornu komandu:

View File

@ -1,4 +1,4 @@
# fossil-delete
# fossil delete
> Ova komanda je pseudonim za `fossil rm`.
> Više informacija: <https://fossil-scm.org/home/help/delete>.

View File

@ -1,4 +1,4 @@
# fossil-forget
# fossil forget
> Ova komanda je pseudonim za `fossil rm`.
> Više informacija: <https://fossil-scm.org/home/help/forget>.

View File

@ -1,6 +1,6 @@
# fossil-new
# fossil new
> Ova komanda je pseudonim za `fossil-init`.
> Ova komanda je pseudonim za `fossil init`.
> Više informacija: <https://fossil-scm.org/home/help/new>.
- Pogledaj dokumentaciju za izvornu komandu:

View File

@ -1,6 +1,6 @@
# gh-cs
# gh cs
> Ova komanda je pseudonim za `gh-codespace`.
> Ova komanda je pseudonim za `gh codespace`.
> Više informacija: <https://cli.github.com/manual/gh_codespace>.
- Pogledaj dokumentaciju za izvornu komandu:

View File

@ -1,4 +1,4 @@
# gnmic-sub
# gnmic sub
> Ova komanda je pseudonim za `gnmic subscribe`.
> Više informacija: <https://gnmic.kmrd.dev/cmd/subscribe>.

View File

@ -1,6 +1,6 @@
# ip-route-list
# ip route list
> Ova komanda je pseudonim za `ip-route-show`.
> Ova komanda je pseudonim za `ip route show`.
- Pogledaj dokumentaciju za izvornu komandu:

View File

@ -1,4 +1,4 @@
# fossil-delete
# fossil delete
> Aquest comandament és un àlies de `fossil rm`.
> Més informació: <https://fossil-scm.org/home/help/delete>.

View File

@ -1,4 +1,4 @@
# fossil-forget
# fossil forget
> Aquest comandament és un àlies de `fossil rm`.
> Més informació: <https://fossil-scm.org/home/help/forget>.

View File

@ -1,6 +1,6 @@
# fossil-new
# fossil new
> Aquest comandament és un àlies de `fossil-init`.
> Aquest comandament és un àlies de `fossil init`.
> Més informació: <https://fossil-scm.org/home/help/new>.
- Veure documentació pel comandament original:

View File

@ -1,6 +1,6 @@
# gh-cs
# gh cs
> Aquest comandament és un àlies de `gh-codespace`.
> Aquest comandament és un àlies de `gh codespace`.
> Més informació: <https://cli.github.com/manual/gh_codespace>.
- Veure documentació pel comandament original:

View File

@ -1,4 +1,4 @@
# gnmic-sub
# gnmic sub
> Aquest comandament és un àlies de `gnmic subscribe`.
> Més informació: <https://gnmic.kmrd.dev/cmd/subscribe>.

View File

@ -1,4 +1,4 @@
# pio-init
# pio init
> Aquest comandament és un àlies de `pio project`.

View File

@ -1,4 +1,4 @@
# tlmgr-arch
# tlmgr arch
> Aquest comandament és un àlies de `tlmgr platform`.
> Més informació: <https://www.tug.org/texlive/tlmgr.html>.

View File

@ -1,13 +1,13 @@
# add-apt-repository
> Gestiona les definicions dels repositoris apt.
> Gestiona les definicions dels repositoris APT.
> Més informació: <https://manned.org/apt-add-repository>.
- Afegeix un nou repositori apt:
- Afegeix un nou repositori APT:
`add-apt-repository {{especificacions_del_respositori}}`
- Elimina un repositori apt:
- Elimina un repositori APT:
`add-apt-repository --remove {{especificacions_del_repositori}}`

View File

@ -1,13 +1,13 @@
# apt-add-repository
> Gestiona les definicions del repositori apt.
> Gestiona les definicions del repositori APT.
> Més informació: <https://manpages.debian.org/latest/software-properties-common/apt-add-repository.1.html>.
- Afegeix un nou repositori apt:
- Afegeix un nou repositori APT:
`apt-add-repository {{repositori}}`
- Elimina un repositori apt:
- Elimina un repositori APT:
`apt-add-repository --remove {{repositori}}`

View File

@ -1,6 +1,6 @@
# apt-file
> Busca arxius en paquets apt, incloent els que encara no s'han instal·lat.
> Busca arxius en paquets APT, incloent els que encara no s'han instal·lat.
> Més informació: <https://manpages.debian.org/latest/apt-file/apt-file.1.html>.
- Actualita les metadades de la base de dades:

View File

@ -1,6 +1,6 @@
# ip-route-list
# ip route list
> Aquest comandament és un àlies de `ip-route-show`.
> Aquest comandament és un àlies de `ip route show`.
- Veure documentació pel comandament original:

View File

@ -1,7 +1,7 @@
# poweroff
> Apaga la màquina.
> Més informació: <https://www.man7.org/linux/man-pages/man8/poweroff.8.html>.
> Més informació: <https://www.manned.org/poweroff>.
- Apaga la màquina:

View File

@ -1,4 +1,4 @@
# clamav
# ClamAV
> Denne kommando er et alias af `clamdscan`.
> Mere information: <https://www.clamav.net>.

View File

@ -1,6 +1,6 @@
# fossil-ci
# fossil ci
> Denne kommando er et alias af `fossil-commit`.
> Denne kommando er et alias af `fossil commit`.
> Mere information: <https://fossil-scm.org/home/help/commit>.
- Se dokumentation for den oprindelige kommando:

View File

@ -1,4 +1,4 @@
# fossil-delete
# fossil delete
> Denne kommando er et alias af `fossil rm`.
> Mere information: <https://fossil-scm.org/home/help/delete>.

View File

@ -1,4 +1,4 @@
# fossil-forget
# fossil forget
> Denne kommando er et alias af `fossil rm`.
> Mere information: <https://fossil-scm.org/home/help/forget>.

View File

@ -1,6 +1,6 @@
# fossil-new
# fossil new
> Denne kommando er et alias af `fossil-init`.
> Denne kommando er et alias af `fossil init`.
> Mere information: <https://fossil-scm.org/home/help/new>.
- Se dokumentation for den oprindelige kommando:

View File

@ -1,6 +1,6 @@
# gh-cs
# gh cs
> Denne kommando er et alias af `gh-codespace`.
> Denne kommando er et alias af `gh codespace`.
> Mere information: <https://cli.github.com/manual/gh_codespace>.
- Se dokumentation for den oprindelige kommando:

View File

@ -1,4 +1,4 @@
# gnmic-sub
# gnmic sub
> Denne kommando er et alias af `gnmic subscribe`.
> Mere information: <https://gnmic.kmrd.dev/cmd/subscribe>.

View File

@ -9,28 +9,28 @@
- Søg efter en eksakt streng (deaktiverer regulære udtryk):
`grep --fixed-strings "{{eksakt_streng}}" {{sti/til/fil}}`
`grep {{-F|--fixed-strings}} "{{eksakt_streng}}" {{sti/til/fil}}`
- Søg efter et mønster i alle filer, pånær binære, rekursivt i en mappe. Vis linjenumre der matcher til mønstret:
`grep --recursive --line-number --binary-files={{without-match}} "{{søgemønster}}" {{sti/til/mappe}}`
`grep {{-r|--recursive}} {{-n|--line-number}} --binary-files {{without-match}} "{{søgemønster}}" {{sti/til/mappe}}`
- Brug udvidede regulære udtryk (understøtter `?`, `+`, `{}`, `()` og `|`), i case-insensitive modus:
`grep --extended-regexp --ignore-case "{{søgemønster}}" {{sti/til/fil}}`
`grep {{-E|--extended-regexp}} {{-i|--ignore-case}} "{{søgemønster}}" {{sti/til/fil}}`
- Print 3 linjer af kontekst omkring, før eller efter hvert match:
`grep --{{context|before-context|after-context}}={{3}} "{{søgemønster}}" {{sti/til/fil}}`
`grep --{{context|before-context|after-context}} 3 "{{søgemønster}}" {{sti/til/fil}}`
- Print, filnavn og linjenummer for hvert match, med farveoutput:
`grep --with-filename --line-number --color=always "{{søgemønster}}" {{sti/til/fil}}`
`grep {{-H|--with-filename}} {{-n|--line-number}} --color=always "{{søgemønster}}" {{sti/til/fil}}`
- Søg efter linjer som matcher et mønster. Print kun den matchende tekst:
`grep --only-matching "{{søgemønster}}" {{sti/til/fil}}`
`grep {{-o|--only-matching}} "{{søgemønster}}" {{sti/til/fil}}`
- Søg i `stdin` efter linjer der ikke matcher et mønster:
`cat {{sti/til/fil}} | grep --invert-match "{{søgemønster}}"`
`cat {{sti/til/fil}} | grep {{-v|--invert-match}} "{{søgemønster}}"`

View File

@ -1,4 +1,4 @@
# pio-init
# pio init
> Denne kommando er et alias af `pio project`.

View File

@ -1,7 +1,7 @@
# sed
> Rediger tekst, programmatisk.
> Mere information: <https://manned.org/man/sed.1posix>.
> Mere information: <https://manned.org/sed.1posix>.
- Erstat den første forekomst af et regulært udtryk (regular expression) i hver linje af en fil, og print resultatet:

View File

@ -1,4 +1,4 @@
# tlmgr-arch
# tlmgr arch
> Denne kommando er et alias af `tlmgr platform`.
> Mere information: <https://www.tug.org/texlive/tlmgr.html>.

View File

@ -1,6 +1,6 @@
# ip-route-list
# ip route list
> Denne kommando er et alias af `ip-route-show`.
> Denne kommando er et alias af `ip route show`.
- Se dokumentation for den oprindelige kommando:

View File

@ -1,7 +1,7 @@
# 7zr
> Ein Dateiarchivierer mit hoher Kompressionsrate.
> Eine alleinstehende Version von `7z`, die nur `.7z` Dateien unterstützt.
> Eine alleinstehende Version von `7z`, die nur 7z Dateien unterstützt.
> Weitere Informationen: <https://manned.org/7zr>.
- [a]rchiviere eine Datei oder ein Verzeichnis:

View File

@ -15,10 +15,10 @@
`alacritty -e {{befehl}}`
- Gib eine alternative Konfigurations-Datei an (ist standardmäßig `$XDG_CONFIG_HOME/alacritty/alacritty.yml`):
- Gib eine alternative Konfigurations-Datei an (ist standardmäßig `$XDG_CONFIG_HOME/alacritty/alacritty.toml`):
`alacritty --config-file {{pfad/zu/konfiguration.yml}}`
`alacritty --config-file {{pfad/zu/konfiguration.toml}}`
- Starte mit aktiviertem Live-Konfigurations-Neuladen (kann auch standardmäßig in `alacritty.yml` eingestellt werden):
- Starte mit aktiviertem Live-Konfigurations-Neuladen (kann auch standardmäßig in `alacritty.toml` eingestellt werden):
`alacritty --live-config-reload --config-file {{pfad/zu/konfiguration.yml}}`
`alacritty --live-config-reload --config-file {{pfad/zu/konfiguration.toml}}`

View File

@ -9,11 +9,11 @@
- Erstelle eine neue verschlüsselte Vault-Datei mit einer Vault-Schlüsseldatei, um sie zu verschlüsseln:
`ansible-vault create --vault-password-file={{schlüsseldatei}} {{vault_datei}}`
`ansible-vault create --vault-password-file {{schlüsseldatei}} {{vault_datei}}`
- Verschlüssle eine vorhandene Datei mit einer optionalen Schlüsseldatei:
`ansible-vault encrypt --vault-password-file={{schlüsseldatei}} {{vault_file}}`
`ansible-vault encrypt --vault-password-file {{schlüsseldatei}} {{vault_file}}`
- Verschlüssle eine Zeichenfolge mit dem verschlüsselten Zeichenfolgenformat von Ansible, wobei interaktive Eingabeaufforderungen angezeigt werden:
@ -21,8 +21,8 @@
- Zeige eine verschlüsselte Datei an, wobei eine Kennwortdatei zum Entschlüsseln verwendet wird:
`ansible-vault view --vault-password-file={{schlüsseldatei}} {{vault_datei}}`
`ansible-vault view --vault-password-file {{schlüsseldatei}} {{vault_datei}}`
- Verschlüssle eine bereits verschlüsselte Vault Datei mit einer neuen Kennwortdatei neu:
`ansible-vault rekey --vault-password-file={{alte_schlüsseldatei}} --new-vault-password-file={{neue_schlüsseldatei}} {{vault_datei}}`
`ansible-vault rekey --vault-password-file {{alte_schlüsseldatei}} --new-vault-password-file {{neue_schlüsseldatei}} {{vault_datei}}`

View File

@ -28,6 +28,6 @@
`bash -s`
- Gib die Version von bash aus (verwende `echo $BASH_VERSION`, um nur die Versionszeichenkette anzuzeigen):
- Gib die Version von Bash aus (verwende `echo $BASH_VERSION`, um nur die Versionszeichenkette anzuzeigen):
`bash --version`

View File

@ -9,7 +9,7 @@
- Installiere Pakete aus einer bestimmten Brewfile:
`brew bundle --file={{pfad/zu/brewfile}}`
`brew bundle --file {{pfad/zu/brewfile}}`
- Gib eine Liste mit allen installierten Paketen aus:

View File

@ -1,7 +1,7 @@
# cat
> Verkette und gib einzelne oder mehrere Dateien aus.
> Weitere Informationen: <https://www.gnu.org/software/coreutils/cat>.
> Weitere Informationen: <https://manned.org/cat.1posix>.
- Gib den Inhalt einer Datei aus:

View File

@ -21,4 +21,4 @@
- Ändere den Besitzer einer Datei/eines Verzeichnisses, damit sie/es mit einer Referenzdatei übereinstimmt:
`chown --reference={{pfad/zu/referenzdatei_oder_verzeichnis}} {{pfad/zu/datei_oder_verzeichnis}}`
`chown --reference {{pfad/zu/referenzdatei_oder_verzeichnis}} {{pfad/zu/datei_oder_verzeichnis}}`

View File

@ -1,4 +1,4 @@
# clamav
# ClamAV
> Dieser Befehl ist ein Alias von `clamdscan`.
> Weitere Informationen: <https://www.clamav.net>.

View File

@ -13,7 +13,7 @@
- Formatiere eine Datei mit einem bestimmten Code-Stil:
`clang-format --style={{LLVM|GNU|Google|Chromium|Microsoft|Mozilla|WebKit}} {{pfad/zu/quelldatei.cpp}}`
`clang-format --style {{LLVM|GNU|Google|Chromium|Microsoft|Mozilla|WebKit}} {{pfad/zu/quelldatei.cpp}}`
- Formatiere eine Datei mit der `.clang-format`-Datei aus einem der Überverzeichnisse der Quelldatei:
@ -21,4 +21,4 @@
- Generiere eine eigene `.clang-format`-Datei:
`clang-format --style={{LLVM|GNU|Google|Chromium|Microsoft|Mozilla|WebKit}} --dump-config > {{.clang-format}}`
`clang-format --style {{LLVM|GNU|Google|Chromium|Microsoft|Mozilla|WebKit}} --dump-config > {{.clang-format}}`

View File

@ -1,36 +0,0 @@
# convert
> ImageMagick Bildkonvertierungswerkzeug.
> Weitere Informationen: <https://imagemagick.org/script/convert.php>.
- Konvertiere ein Bild von JPG nach PNG:
`convert {{pfad/zu/bild.jpg}} {{pfad/zu/bild.png}}`
- Skaliere ein Bild auf 50% seiner Originalgröße:
`convert {{pfad/zu/bild.png}} -resize 50% {{pfad/zu/bild2.png}}`
- Skaliere ein Bild unter Beibehaltung des ursprünglichen Seitenverhältnisses auf eine maximale Größe von 640x480:
`convert {{pfad/zu/bild.png}} -resize 640x480 {{pfad/zu/bild2.png}}`
- Hänge Bilder horizontal aneinander:
`convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} +append {{pfad/zu/bild.png}}`
- Hänge Bilder vertikal aneinander:
`convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} -append {{pfad/zu/bild.png}}`
- Erstelle ein animiertes GIF aus einer Serie von Bildern mit einer Verzögerung von 100 ms zwischen den Bildern:
`convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} -delay {{10}} {{pfad/zu/animation.gif}}`
- Erstelle ein Bild mit nichts als einem festen Hintergrund:
`convert -size {{800x600}} "xc:{{#ff0000}}" {{pfad/zu/bild.png}}`
- Erstelle ein Favicon aus mehreren Bildern verschiedener Größe:
`convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} {{pfad/zu/bild.ico}}`

View File

@ -5,12 +5,12 @@
- Schneide bestimmte Zeichen oder einen Bereich von Feldern jeder Zeile aus:
`{{befehl}} | cut --{{characters|fields}}={{1|1,10|1-10|1-|-10}}`
`{{befehl}} | cut --{{characters|fields}} {{1|1,10|1-10|1-|-10}}`
- Schneide einen bestimmten Bereich von Feldern jeder Zeile mit einem bestimmten Trennzeichen aus:
`{{befehl}} | cut --delimiter="{{,}}" --fields={{1}}`
`{{befehl}} | cut --delimiter "{{,}}" --fields {{1}}`
- Schneide einen bestimmten Bereich von Zeichen jeder Zeile einer bestimmten Datei aus:
`cut --characters={{1}} {{pfad/zu/datei}}`
`cut --characters {{1}} {{pfad/zu/datei}}`

View File

@ -25,7 +25,7 @@
- Zeige das aktuelle Datum im RFC-3339 Format (`YYYY-MM-DD hh:mm:ss TZ`) an:
`date --rfc-3339=s`
`date --rfc-3339 s`
- Setze das aktuelle Datum im Format `MMDDhhmmYYYY.ss` (`YYYY` und `.ss` sind optional):

View File

@ -1,32 +1,28 @@
# dd
> Konvertiere und kopiere eine Datei.
> Weitere Informationen: <https://www.gnu.org/software/coreutils/dd>.
> Weitere Informationen: <https://manned.org/dd.1p>.
- Erstelle ein bootbares USB-Laufwerk von einer isohybriden Datei (wie `archlinux-xxxx.iso`) und zeige den Fortschritt an:
`dd if={{pfad/zu/datei.iso}} of=/dev/{{laufwerk}} status=progress`
`dd if={{pfad/zu/datei.iso}} of={{/dev/laufwerk}} status=progress`
- Klone ein USB-Laufwerk in ein anderes in 4MiB Blöcken, ignoriere Fehler und zeige den Fortschritt an:
`dd if=/dev/{{quell_laufwerk}} of=/dev/{{ziel_laufwerk}} bs=4M conv=noerror status=progress`
`dd if={{/dev/quell_laufwerk}} of={{/dev/ziel_laufwerk}} bs=4M conv=noerror status=progress`
- Erstelle eine Datei mit 100 zufälligen Bytes mithilfe des Zufall-Treibers des Kernels:
- Erstelle eine Datei mit spezifizierte zufälligen Bytes mithilfe des Zufall-Treibers des Kernels:
`dd if=/dev/urandom of={{pfad/zu/datei}} bs=100 count=1`
`dd bs={{100}} count={{1}} if=/dev/urandom of={{pfad/zu/datei}}`
- Teste die Schreibgeschwindigkeit eines Laufwerks:
`dd if=/dev/zero of={{pfad/zu/1GB_datei}} bs=1024 count=1000000`
`dd bs={{1024}} count={{1000000}} if=/dev/zero of={{pfad/zu/1GB_datei}}`
- Erstelle ein System-Backup als IMG Datei und zeige den Fortschritt an:
`dd if=/dev/{{laufwerk}} of={{pfad/zu/datei.img}} status=progress`
`dd if={{/dev/laufwerk}} of={{pfad/zu/datei.img}} status=progress`
- Stelle ein Laufwerk aus einer IMG Datei wieder her und zeige den Fortschritt an:
`dd if={{pfad/zu/datei.img}} of=/dev/{{laufwerk}} status=progress`
- Überprüfe den Fortschritt eines laufenden dd-Prozesses (Führe diesen Befehl von einer anderen Shell aus):
`kill -USR1 $(pgrep -x dd)`
`dd if={{pfad/zu/datei.img}} of={{/dev/laufwerk}} status=progress`

View File

@ -1,7 +1,7 @@
# diff
> Vergleiche Dateien und Verzeichnisse.
> Weitere Informationen: <https://man7.org/linux/man-pages/man1/diff.1.html>.
> Weitere Informationen: <https://manned.org/diff>.
- Vergleiche Dateien (Listet jene Veränderungen auf, mit denen `datei1` zu `datei2` wird):

View File

@ -1,7 +1,7 @@
# docker-machine
> Erstelle und verwalte Maschinen, die Docker ausführen.
> Weitere Informationen: <https://docs.docker.com/machine/reference/>.
> Weitere Informationen: <https://github.com/docker/machine>.
- Liste zur Zeit laufende Docker Maschinen auf:

View File

@ -17,7 +17,7 @@
- Zeige nur Container mit einer bestimmten Zeichenkette im Namen:
`docker ps --filter="name={{name}}"`
`docker ps --filter "name={{name}}"`
- Zeige nur Container die von einem bestimmten Image abstammen:
@ -25,12 +25,12 @@
- Zeige nur Container mit einem bestimmten Exit-Code:
`docker ps --all --filter="exited={{code}}"`
`docker ps --all --filter "exited={{code}}"`
- Zeige nur Container mit einem bestimmten Status (created, running, removing, paused, exited und dead):
`docker ps --filter="status={{status}}"`
`docker ps --filter "status={{status}}"`
- Zeige nur Container, welche einen bestimmten Datenträger oder einen Datenträger an einem bestimmten Pfad eingehängt haben:
`docker ps --filter="volume={{pfad/zum/verzeichnis}}" --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Mounts}}"`
`docker ps --filter "volume={{pfad/zum/verzeichnis}}" --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Mounts}}"`

View File

@ -21,7 +21,7 @@
- Entferne nicht-verwendete Daten, die älter als die angegebene Zeit sind:
`docker system prune --filter="until={{stunden}}h{{minuten}}m"`
`docker system prune --filter "until={{stunden}}h{{minuten}}m"`
- Zeige Echtzeit-Events vom Docker Daemon:

View File

@ -24,7 +24,7 @@
`fish --no-execute {{pfad/zu/skript.fish}}`
- Starte eine private, interaktive Shell-Sitzung, in der `fish` weder auf die Shell-History zugreift, noch diese verändert:
- Starte eine private, interaktive Shell-Sitzung, in der fish weder auf die Shell-History zugreift, noch diese verändert:
`fish --private`

View File

@ -1,6 +1,6 @@
# fossil-ci
# fossil ci
> Dieser Befehl ist ein Alias von `fossil-commit`.
> Dieser Befehl ist ein Alias von `fossil commit`.
> Weitere Informationen: <https://fossil-scm.org/home/help/commit>.
- Zeige die Dokumentation für den originalen Befehl an:

View File

@ -1,4 +1,4 @@
# fossil-delete
# fossil delete
> Dieser Befehl ist ein Alias von `fossil rm`.
> Weitere Informationen: <https://fossil-scm.org/home/help/delete>.

View File

@ -1,4 +1,4 @@
# fossil-forget
# fossil forget
> Dieser Befehl ist ein Alias von `fossil rm`.
> Weitere Informationen: <https://fossil-scm.org/home/help/forget>.

View File

@ -1,6 +1,6 @@
# fossil-new
# fossil new
> Dieser Befehl ist ein Alias von `fossil-init`.
> Dieser Befehl ist ein Alias von `fossil init`.
> Weitere Informationen: <https://fossil-scm.org/home/help/new>.
- Zeige die Dokumentation für den originalen Befehl an:

View File

@ -1,6 +1,6 @@
# gh-cs
# gh cs
> Dieser Befehl ist ein Alias von `gh-codespace`.
> Dieser Befehl ist ein Alias von `gh codespace`.
> Weitere Informationen: <https://cli.github.com/manual/gh_codespace>.
- Zeige die Dokumentation für den originalen Befehl an:

View File

@ -8,6 +8,10 @@
`git am {{pfad/zu/datei.patch}}`
- Herunterladen und Integrieren einer Patch-Datei:
`curl -L {{https://beispiel.de/datei.patch}} | git apply`
- Brich das Integrieren einer Patch-Datei ab:
`git am --abort`

View File

@ -0,0 +1,17 @@
# git format-patch
> Erstelle `.patch` Dateien. Ermöglicht das Senden von Commits per E-Mail.
> Siehe auch `git am`, womit `.patch` Datein lokal angewandt werden.
> Weitere Informationen: <https://git-scm.com/docs/git-format-patch>.
- Erzeuge eine `.patch` Datei aus allen nicht gepushten Commits:
`git format-patch {{origin}}`
- Erstelle eine `.patch` Datei aus allen Commits zwischen den angegebenen Revisionen und schreibe diese nach `stdout`:
`git format-patch {{revision_1}}..{{revision_2}}`
- Erstelle eine `.patch` Datei aus den letzten 3 Commits:
`git format-patch -{{3}}`

View File

@ -0,0 +1,24 @@
# git send-email
> Sende eine Menge von Patches als E-Mail. Patches können als Dateien, Ordner oder Liste von Revisionen spezifiziert werden.
> Weitere Informationen: <https://git-scm.com/docs/git-send-email>.
- Sende den letzten Commit des aktuellen Branches:
`git send-email -1`
- Sende einen spezifischen Commit:
`git send-email -1 {{commit}}`
- Sende die letzten (z.B. 10) Commits des aktuellen Branches:
`git send-email {{-10}}`
- Editiere eine E-Mail mit einer Reihe von Patches im Standardmailclienten:
`git send-email -{{anzahl_an_commits}} --compose`
- Bearbeite den E-Mail Text jedes der zu versendenden Patches:
`git send-email -{{anzahl_an_commits}} --annotate`

View File

@ -1,4 +1,4 @@
# gnmic-sub
# gnmic sub
> Dieser Befehl ist ein Alias von `gnmic subscribe`.
> Weitere Informationen: <https://gnmic.kmrd.dev/cmd/subscribe>.

View File

@ -10,12 +10,12 @@
- Suche nach einem exakten Ausdruck:
`grep --fixed-strings "{{exakter_ausdruck}}" {{pfad/zu/datei}}`
`grep {{-F|--fixed-strings}} "{{exakter_ausdruck}}" {{pfad/zu/datei}}`
- Benutze erweiterte reguläre Ausdrücke (unterstützt `?`, `+`, `{}`, `()` und `|`) ohne Beachtung der Groß-, Kleinschreibung:
`grep --extended-regexp --ignore-case "{{ausdruck}}" {{pfad/zu/datei}}`
`grep {{-E|--extended-regexp}} {{-i|--ignore-case}} "{{ausdruck}}" {{pfad/zu/datei}}`
- Zeige 3 Zeilen Kontext um [C], vor [B] oder nach [A] jedem Ergebnis:
`grep --{{context|before-context|after-context}}={{3}} "{{ausdruck}}" {{pfad/zu/datei}}`
`grep --{{context|before-context|after-context}} 3 "{{ausdruck}}" {{pfad/zu/datei}}`

View File

@ -1,7 +1,7 @@
# jq
> Ein JSON-Verarbeiter für die Kommandozeile mit einer domänenspezifischen Sprache.
> Weitere Informationen: <https://stedolan.github.io/jq/manual/>.
> Weitere Informationen: <https://jqlang.github.io/jq/manual/>.
- Führe den angegebenen Ausdruck aus (gib farbiges und formatiertes JSON aus):

View File

@ -1,12 +1,12 @@
# compare
# magick compare
> Zeige Unterschiede von zwei Bildern.
> Weitere Informationen: <https://imagemagick.org/script/compare.php>.
- Vergleiche 2 Bilder:
`compare {{pfad/zu/bild1.png}} {{pfad/zu/bild2.png}} {{pfad/zu/diff.png}}`
`magick compare {{pfad/zu/bild1.png}} {{pfad/zu/bild2.png}} {{pfad/zu/diff.png}}`
- Vergleiche 2 Bilder mit einer bestimmten Metrik (standardmäßig NCC):
`compare -verbose -metric {{PSNR}} {{pfad/zu/bild1.png}} {{pfad/zu/bild2.png}} {{pfad/zu/diff.png}}`
`magick compare -verbose -metric {{PSNR}} {{pfad/zu/bild1.png}} {{pfad/zu/bild2.png}} {{pfad/zu/diff.png}}`

View File

@ -0,0 +1,36 @@
# magick convert
> ImageMagick Bildkonvertierungswerkzeug.
> Weitere Informationen: <https://imagemagick.org/script/convert.php>.
- Konvertiere ein Bild von JPEG nach PNG:
`magick convert {{pfad/zu/bild.jpg}} {{pfad/zu/bild.png}}`
- Skaliere ein Bild auf 50% seiner Originalgröße:
`magick convert {{pfad/zu/bild.png}} -resize 50% {{pfad/zu/bild2.png}}`
- Skaliere ein Bild unter Beibehaltung des ursprünglichen Seitenverhältnisses auf eine maximale Größe von 640x480:
`magick convert {{pfad/zu/bild.png}} -resize 640x480 {{pfad/zu/bild2.png}}`
- Hänge Bilder horizontal aneinander:
`magick convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} +append {{pfad/zu/bild.png}}`
- Hänge Bilder vertikal aneinander:
`magick convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} -append {{pfad/zu/bild.png}}`
- Erstelle ein animiertes GIF aus einer Serie von Bildern mit einer Verzögerung von 100 ms zwischen den Bildern:
`magick convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} -delay {{10}} {{pfad/zu/animation.gif}}`
- Erstelle ein Bild mit nichts als einem festen Hintergrund:
`magick convert -size {{800x600}} "xc:{{#ff0000}}" {{pfad/zu/bild.png}}`
- Erstelle ein Favicon aus mehreren Bildern verschiedener Größe:
`magick convert {{pfad/zu/bild1.png pfad/zu/bild2.png ...}} {{pfad/zu/bild.ico}}`

View File

@ -2,7 +2,7 @@
> Netzwerk-Erkundungs-Werkzeug und Security / Port Scanner.
> Manche Funktionen können nur benutzt werden, wenn Nmap mit Root Rechten ausgeführt wird.
> Weitere Informationen: <https://nmap.org>.
> Weitere Informationen: <https://nmap.org/book/man.html>.
- Überprüfe ob eine IP-Adresse online ist und versuche, das Betriebssystem herauszufinden:

View File

@ -11,7 +11,7 @@
`omz changelog`
- Starte die aktuelle zsh-Sitzung und Oh My Zsh neu:
- Starte die aktuelle Zsh-Sitzung und Oh My Zsh neu:
`omz reload`

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