tealdeer/print.html
2026-01-25 17:40:31 +00:00

615 lines
32 KiB
HTML

<!DOCTYPE HTML>
<html lang="en" class="sidebar-visible no-js light">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Tealdeer User Manual</title>
<meta name="robots" content="noindex" />
<!-- Custom HTML head -->
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff" />
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
<body>
<!-- Provide site root to javascript -->
<script type="text/javascript">
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
</script>
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
html.classList.remove('light')
html.classList.add(theme);
html.classList.add('js');
</script>
<!-- Hide / unhide sidebar before it is displayed -->
<script type="text/javascript">
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div class="sidebar-scrollbox">
<ol class="chapter"><li class="chapter-item expanded affix "><a href="intro.html">Introduction</a></li><li class="chapter-item expanded "><a href="installing.html"><strong aria-hidden="true">1.</strong> Installing</a></li><li class="chapter-item expanded "><a href="usage.html"><strong aria-hidden="true">2.</strong> Usage</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="usage_custom_pages.html"><strong aria-hidden="true">2.1.</strong> Custom Pages and Patches</a></li></ol></li><li class="chapter-item expanded "><a href="config.html"><strong aria-hidden="true">3.</strong> Configuration</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="config_display.html"><strong aria-hidden="true">3.1.</strong> Section: [display]</a></li><li class="chapter-item expanded "><a href="config_style.html"><strong aria-hidden="true">3.2.</strong> Section: [style]</a></li><li class="chapter-item expanded "><a href="config_search.html"><strong aria-hidden="true">3.3.</strong> Section: [search]</a></li><li class="chapter-item expanded "><a href="config_updates.html"><strong aria-hidden="true">3.4.</strong> Section: [updates]</a></li><li class="chapter-item expanded "><a href="config_directories.html"><strong aria-hidden="true">3.5.</strong> Section: [directories]</a></li></ol></li><li class="chapter-item expanded "><a href="tips_and_tricks.html"><strong aria-hidden="true">4.</strong> Tips and Tricks</a></li></ol>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky bordered">
<div class="left-buttons">
<button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</button>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light (default)</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">Tealdeer User Manual</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" name="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script type="text/javascript">
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1><a class="header" href="#tealdeer-introduction" id="tealdeer-introduction">Tealdeer: Introduction</a></h1>
<p>Tealdeer is a very fast implementation of
<a href="https://github.com/tldr-pages/tldr">tldr</a> in Rust: Simplified, example based
and community-driven man pages.</p>
<p><img src="screenshot-default.png" alt="Screenshot" /></p>
<p>This documentation shows how to install, use and configure tealdeer.</p>
<h2><a class="header" href="#links" id="links">Links</a></h2>
<ul>
<li><a href="https://github.com/tealdeer-rs/tealdeer">GitHub Project Page</a></li>
<li><a href="https://tldr.sh/">TLDR Pages Project</a></li>
</ul>
<h1><a class="header" href="#installing" id="installing">Installing</a></h1>
<p>There are a few different ways to install tealdeer:</p>
<ul>
<li>Through <a href="installing.html#package-managers">package managers</a></li>
<li>Through <a href="installing.html#static-binaries-linux">static binaries</a></li>
<li>Through <a href="installing.html#through-cargo-install">cargo install</a></li>
<li>By <a href="installing.html#build-from-source">building from source</a></li>
</ul>
<p>Additionally, when not using system packages, you can <a href="installing.html#autocompletion">manually install
autocompletions</a>.</p>
<h2><a class="header" href="#package-managers" id="package-managers">Package Managers</a></h2>
<p>Tealdeer has been added to a few package managers:</p>
<ul>
<li>Arch Linux: <a href="https://archlinux.org/packages/extra/x86_64/tealdeer/"><code>tealdeer</code></a></li>
<li>Debian: <a href="https://tracker.debian.org/tealdeer"><code>tealdeer</code></a></li>
<li>Fedora: <a href="https://src.fedoraproject.org/rpms/rust-tealdeer"><code>tealdeer</code></a></li>
<li>FreeBSD: <a href="https://www.freshports.org/sysutils/tealdeer/"><code>sysutils/tealdeer</code></a></li>
<li>Funtoo: <a href="https://github.com/funtoo/core-kit/tree/1.4-release/app-misc/tealdeer"><code>app-misc/tealdeer</code></a></li>
<li>Homebrew: <a href="https://formulae.brew.sh/formula/tealdeer"><code>tealdeer</code></a></li>
<li>MacPorts: <a href="https://ports.macports.org/port/tealdeer/"><code>tealdeer</code></a></li>
<li>NetBSD: <a href="https://pkgsrc.se/sysutils/tealdeer"><code>sysutils/tealdeer</code></a></li>
<li>Nix: <a href="https://search.nixos.org/packages?query=tealdeer"><code>tealdeer</code></a></li>
<li>openSUSE: <a href="https://software.opensuse.org/package/tealdeer?search_term=tealdeer"><code>tealdeer</code></a></li>
<li>Scoop: <a href="https://github.com/ScoopInstaller/Main/blob/master/bucket/tealdeer.json"><code>tealdeer</code></a></li>
<li>Solus: <a href="https://packages.getsol.us/shannon/t/tealdeer/"><code>tealdeer</code></a></li>
<li>Void Linux: <a href="https://github.com/void-linux/void-packages/tree/master/srcpkgs/tealdeer"><code>tealdeer</code></a></li>
</ul>
<h2><a class="header" href="#static-binaries-linux" id="static-binaries-linux">Static Binaries (Linux)</a></h2>
<p>Static binary builds (currently for Linux only) are available on the
<a href="https://github.com/tealdeer-rs/tealdeer/releases">GitHub releases page</a>.
Simply download the binary for your platform and run it!</p>
<h2><a class="header" href="#through-cargo-install" id="through-cargo-install">Through <code>cargo install</code></a></h2>
<p>Build and install the tool via cargo...</p>
<pre><code class="language-shell">$ cargo install tealdeer
</code></pre>
<h2><a class="header" href="#build-from-source" id="build-from-source">Build From Source</a></h2>
<p>Release build:</p>
<pre><code class="language-shell">$ cargo build --release
</code></pre>
<p>Release build with native TLS support:</p>
<pre><code class="language-shell">$ cargo build --release --features native-tls
</code></pre>
<p>Debug build with logging support:</p>
<pre><code class="language-shell">$ cargo build --features logging
</code></pre>
<p>(To enable logging at runtime, export the <code>RUST_LOG=tldr=debug</code> env variable.)</p>
<h2><a class="header" href="#autocompletion" id="autocompletion">Autocompletion</a></h2>
<p>Shell completion scripts are located in the folder <code>completion</code>.
Just copy them to their designated location:</p>
<ul>
<li><em>Bash</em>: <code>cp completion/bash_tealdeer /usr/share/bash-completion/completions/tldr</code></li>
<li><em>Fish</em>: <code>cp completion/fish_tealdeer ~/.config/fish/completions/tldr.fish</code></li>
<li><em>Zsh</em>: <code>cp completion/zsh_tealdeer /usr/share/zsh/site-functions/_tldr</code></li>
</ul>
<h1><a class="header" href="#usage" id="usage">Usage</a></h1>
<p>Tealdeer is straightforward to use, through the binary named <code>tldr</code>.</p>
<p>You can view the available options using <code>tldr --help</code>:</p>
<!-- Note: To update the file below, run `cargo run -- --help > docs/src/usage.txt`. -->
<pre><code>tealdeer 1.8.1: A fast TLDR client
Danilo Bargen &lt;mail@dbrgn.ch&gt;, Niklas Mohrin &lt;dev@niklasmohrin.de&gt;
Usage: tldr [OPTIONS] [COMMAND]...
Arguments:
[COMMAND]... The command to show (e.g. `tar` or `git log`)
Options:
-l, --list List all commands in the cache
--edit-page Edit custom page with `EDITOR`
--edit-patch Edit custom patch with `EDITOR`
-f, --render &lt;FILE&gt; Render a specific markdown file
-p, --platform &lt;PLATFORM&gt; Override the operating system, can be specified multiple times in order
of preference [possible values: linux, macos, sunos, windows, android,
freebsd, netbsd, openbsd, common]
-L, --language &lt;LANGUAGE&gt; Override the language
-u, --update Update the local cache
--no-auto-update If auto update is configured, disable it for this run
-c, --clear-cache Clear the local cache
--config-path &lt;FILE&gt; Override config file location
--pager Use a pager to page output
-r, --raw Display the raw markdown instead of rendering it
-q, --quiet Suppress informational messages
--show-paths Show file and directory paths used by tealdeer
--seed-config Create a basic config
--color &lt;WHEN&gt; Control whether to use color [possible values: always, auto, never]
-v, --version Print the version
-h, --help Print help
To view the user documentation, please visit https://tealdeer-rs.github.io/tealdeer/.
</code></pre>
<h1><a class="header" href="#custom-pages-and-patches" id="custom-pages-and-patches">Custom Pages and Patches</a></h1>
<blockquote>
<p>⚠️ <strong>Breaking change in version 1.7.0:</strong> The file name extension for custom
pages and patches was changed:</p>
<ul>
<li><code>&lt;name&gt;.page</code><code>&lt;name&gt;.page.md</code></li>
<li><code>&lt;name&gt;.patch</code><code>&lt;name&gt;.patch.md</code></li>
</ul>
<p>If you have custom pages or patches, you need to rename them.</p>
</blockquote>
<p>Tealdeer allows creating new custom pages, overriding existing pages as well as
extending existing pages.</p>
<p>The directory, where these custom pages and patches can be placed, follows OS
conventions. On Linux for instance, the default location is
<code>~/.local/share/tealdeer/pages/</code>. To print the path used on your system, simply
run <code>tldr --show-paths</code>.</p>
<p>The custom pages directory can be <a href="config_directories.html">overridden by the config
file</a>.</p>
<h2><a class="header" href="#custom-pages" id="custom-pages">Custom Pages</a></h2>
<p>To document internal command line tools, or if you want to replace an existing
tldr page with one that's better suited for you, place a file with the name
<code>&lt;command&gt;.page.md</code> in the custom pages directory. When calling <code>tldr &lt;command&gt;</code>,
your custom page will be shown instead of the upstream version in the cache.</p>
<p>Path:</p>
<pre><code class="language-plain">$CUSTOM_PAGES_DIR/&lt;command&gt;.page.md
</code></pre>
<p>Example:</p>
<pre><code class="language-plain">~/.local/share/tealdeer/pages/ufw.page.md
</code></pre>
<h2><a class="header" href="#custom-patches" id="custom-patches">Custom Patches</a></h2>
<p>Sometimes you don't want to fully replace an existing upstream page, but just
want to extend it with your own examples that you frequently need. In this
case, use a file called <code>&lt;command&gt;.patch.md</code>, it will be appended to existing
pages.</p>
<p>Path:</p>
<pre><code class="language-plain">$CUSTOM_PAGES_DIR/&lt;command&gt;.patch.md
</code></pre>
<p>Example:</p>
<pre><code class="language-plain">~/.local/share/tealdeer/pages/ufw.patch.md
</code></pre>
<h1><a class="header" href="#configuration" id="configuration">Configuration</a></h1>
<p>Tealdeer can be customized with a config file in <a href="https://toml.io/">TOML
format</a> called <code>config.toml</code>.</p>
<h2><a class="header" href="#configfile-path" id="configfile-path">Configfile Path</a></h2>
<p>The configuration file path follows OS conventions (e.g.
<code>$XDG_CONFIG_HOME/tealdeer/config.toml</code> on Linux). The paths can be queried
with the following command:</p>
<pre><code class="language-shell">$ tldr --show-paths
</code></pre>
<p>Creating the config file can be done manually or with the help of <code>tldr</code>:</p>
<pre><code class="language-shell">$ tldr --seed-config
</code></pre>
<p>On Linux, this will usually be <code>~/.config/tealdeer/config.toml</code>.</p>
<h2><a class="header" href="#config-example" id="config-example">Config Example</a></h2>
<p>Here's an example configuration file. Note that this example does not contain
all possible config options. For details on the things that can be configured,
please refer to the subsections of this documentation page
(<a href="config_display.html">display</a>, <a href="config_style.html">style</a>, <a href="config_search.html">search</a>,
<a href="config_updates.html">updates</a> or <a href="config_directories.html">directories</a>).</p>
<pre><code class="language-toml">[display]
compact = false
use_pager = true
show_title = false
[style.command_name]
foreground = &quot;red&quot;
[style.example_text]
foreground = &quot;green&quot;
[style.example_code]
foreground = &quot;blue&quot;
[style.example_variable]
foreground = &quot;blue&quot;
underline = true
[updates]
auto_update = true
</code></pre>
<h2><a class="header" href="#override-config-directory" id="override-config-directory">Override Config Directory</a></h2>
<p>The directory where the configuration file resides may be overwritten by the
environment variable <code>TEALDEER_CONFIG_DIR</code>. Remember to use an absolute path.
Variable expansion will not be performed on the path.</p>
<h1><a class="header" href="#section-display" id="section-display">Section: [display]</a></h1>
<p>In the <code>display</code> section you can configure the output format.</p>
<h2><a class="header" href="#use_pager" id="use_pager"><code>use_pager</code></a></h2>
<p>Specifies whether the pager should be used by default or not (default <code>false</code>).</p>
<pre><code class="language-toml">[display]
use_pager = true
</code></pre>
<p>When enabled, <code>less -R</code> is used as pager. To override the pager command used,
set the <code>PAGER</code> environment variable.</p>
<p>NOTE: This feature is not available on Windows.</p>
<h2><a class="header" href="#compact" id="compact"><code>compact</code></a></h2>
<p>Set this to enforce more compact output, where empty lines are stripped out
(default <code>false</code>).</p>
<pre><code class="language-toml">[display]
compact = true
</code></pre>
<h2><a class="header" href="#show_title" id="show_title"><code>show_title</code></a></h2>
<p>Display the command name at the top of the page output (default <code>false</code>).</p>
<pre><code class="language-toml">[display]
show_title = true
</code></pre>
<p>When enabled, the command name will be displayed at the top of the output,
styled with the <code>command_name</code> style configuration.</p>
<h1><a class="header" href="#section-style" id="section-style">Section: [style]</a></h1>
<p>Using the config file, the style (e.g. colors or underlines) can be customized.</p>
<img src="screenshot-custom.png" alt="Screenshot of customized version" width="600">
<h2><a class="header" href="#style-targets" id="style-targets">Style Targets</a></h2>
<ul>
<li><code>description</code>: The initial description text</li>
<li><code>command_name</code>: The command name as part of the example code</li>
<li><code>example_text</code>: The text that describes an example</li>
<li><code>example_code</code>: The example itself (except the <code>command_name</code> and <code>example_variable</code>)</li>
<li><code>example_variable</code>: The variables in the example</li>
</ul>
<h2><a class="header" href="#attributes" id="attributes">Attributes</a></h2>
<ul>
<li><code>foreground</code> (color string, ANSI code, or RGB, see below)</li>
<li><code>background</code> (color string, ANSI code, or RGB, see below)</li>
<li><code>underline</code> (<code>true</code> or <code>false</code>)</li>
<li><code>bold</code> (<code>true</code> or <code>false</code>)</li>
<li><code>italic</code> (<code>true</code> or <code>false</code>)</li>
</ul>
<p>Colors can be specified in one of three ways:</p>
<ul>
<li>
<p>Color string (<code>black</code>, <code>red</code>, <code>green</code>, <code>yellow</code>, <code>blue</code>, <code>magenta</code>, <code>cyan</code>, <code>white</code>):</p>
<p>Example:</p>
<pre><code class="language-toml">foreground = &quot;green&quot;
</code></pre>
</li>
<li>
<p>256 color ANSI code (<em>tealdeer v1.5.0+</em>)</p>
<p>Example:</p>
<pre><code class="language-toml">foreground = { ansi = 4 }
</code></pre>
</li>
<li>
<p>24-bit RGB color (<em>tealdeer v1.5.0+</em>)</p>
<p>Example:</p>
<pre><code class="language-toml">background = { rgb = { r = 255, g = 255, b = 255 } }
</code></pre>
</li>
</ul>
<h1><a class="header" href="#section-search" id="section-search">Section: [search]</a></h1>
<p>This config section is used to configure the page search in the cache.
The settings apply to <code>tldr &lt;page&gt;</code> and <code>tldr --list</code>.</p>
<h2><a class="header" href="#languages" id="languages"><code>languages</code></a></h2>
<p>The list of languages that should be considered when searching.
If unspecified, the list of languages will be inferred from the <code>LANG</code> and <code>LANGUAGE</code> environment variables.
Either way, the language used can be overwritten using the <code>--language</code> command line flag.</p>
<pre><code class="language-toml">[search]
# Show pages in German if available, otherwise show in English
languages = [&quot;de&quot;, &quot;en&quot;]
</code></pre>
<h2><a class="header" href="#platforms" id="platforms"><code>platforms</code></a></h2>
<p>The list of platforms that should be considered when searching.
In addition to the platforms listed in the help text of the <code>--platform</code> flag, there are two special platforms available:</p>
<ul>
<li><code>&quot;current&quot;</code>: equals the platform that tealdeer was compiled for</li>
<li><code>&quot;all&quot;</code>: adds all remaining platforms to the list</li>
</ul>
<p>Tealdeer searches the platforms in order of appearance in this list.
The default list of platforms is <code>[&quot;current&quot;, &quot;common&quot;, &quot;all&quot;]</code>.
The list of platforms can be overwritten using the <code>--platform</code> command line flag.</p>
<pre><code class="language-toml">[search]
# Search for linux and common, and then search windows before trying the remaining platforms
platforms = [&quot;linux&quot;, &quot;common&quot;, &quot;windows&quot;, &quot;all&quot;]
</code></pre>
<h1><a class="header" href="#section-updates" id="section-updates">Section: [updates]</a></h1>
<p>This config section contains settings related to updating the tealdeer cache.</p>
<h2><a class="header" href="#automatic-updates" id="automatic-updates">Automatic updates</a></h2>
<p>Tealdeer can refresh the cache automatically when it is outdated. This
behavior can be configured in the <code>updates</code> section and is disabled by
default.</p>
<h3><a class="header" href="#auto_update" id="auto_update"><code>auto_update</code></a></h3>
<p>Specifies whether the auto-update feature should be enabled (defaults to
<code>false</code>).</p>
<pre><code class="language-toml">[updates]
auto_update = true
</code></pre>
<h3><a class="header" href="#auto_update_interval_hours" id="auto_update_interval_hours"><code>auto_update_interval_hours</code></a></h3>
<p>Duration, since the last cache update, after which the cache will be
refreshed (defaults to 720 hours). This parameter is ignored if <code>auto_update</code>
is set to <code>false</code>.</p>
<pre><code class="language-toml">[updates]
auto_update = true
auto_update_interval_hours = 24
</code></pre>
<h2><a class="header" href="#download-configuration" id="download-configuration">Download configuration</a></h2>
<h3><a class="header" href="#download_languages" id="download_languages"><code>download_languages</code></a></h3>
<p>The list of languages which should be downloaded when updating.
If unspecified, the languages listed in the <code>search.languages</code> setting are used.
Thus, this setting is the most useful to instruct tealdeer to download pages in additional languages that are not searched by default.
Either way, the language used can be overwritten using the <code>--language</code> command line flag.</p>
<pre><code class="language-toml">[search]
languages = [&quot;de&quot;, &quot;en&quot;]
[updates]
# sometimes I like to read the Italian description
download_languages = [&quot;de&quot;, &quot;en&quot;, &quot;it&quot;]
</code></pre>
<h3><a class="header" href="#archive_source" id="archive_source"><code>archive_source</code></a></h3>
<p>URL for the location of the tldr pages archive. By default the pages are
fetched from the latest <code>tldr-pages/tldr</code> GitHub release.</p>
<pre><code class="language-toml">[updates]
archive_source = &quot;https://my-company.example.com/tldr/&quot;
</code></pre>
<h3><a class="header" href="#tls_backend" id="tls_backend"><code>tls_backend</code></a></h3>
<p>Specifies which TLS backend to use. Try changing this setting if you encounter certificate errors.</p>
<p>Available options:</p>
<ul>
<li><code>rustls-with-native-roots</code> - <a href="https://github.com/rustls/rustls">Rustls</a> (a TLS library in Rust) with native roots</li>
<li><code>rustls-with-webpki-roots</code> - Rustls with <a href="https://github.com/rustls/webpki">WebPKI</a> roots</li>
<li><code>native-tls</code> - Native TLS
<ul>
<li>SChannel on Windows</li>
<li>Secure Transport on macOS</li>
<li>OpenSSL on other platforms</li>
</ul>
</li>
</ul>
<pre><code class="language-toml">[updates]
tls_backend = &quot;native-tls&quot;
</code></pre>
<h1><a class="header" href="#section-directories" id="section-directories">Section: [directories]</a></h1>
<p>This section allows overriding some directory paths.</p>
<h2><a class="header" href="#cache_dir" id="cache_dir"><code>cache_dir</code></a></h2>
<p>Override the cache directory. Remember to use an absolute path. Variable
expansion will not be performed on the path. If the directory does not yet
exist, it will be created.</p>
<pre><code class="language-toml">[directories]
cache_dir = &quot;/home/myuser/.tealdeer-cache/&quot;
</code></pre>
<p>If no <code>cache_dir</code> is specified, tealdeer will fall back to a location that
follows OS conventions. On Linux, it will usually be at <code>~/.cache/tealdeer/</code>.
Use <code>tldr --show-paths</code> to show the path that is being used.</p>
<h2><a class="header" href="#custom_pages_dir" id="custom_pages_dir"><code>custom_pages_dir</code></a></h2>
<p>Set the directory to be used to look up <a href="usage_custom_pages.html">custom
pages</a>. Remember to use an absolute path. Variable
expansion will not be performed on the path.</p>
<pre><code class="language-toml">[directories]
custom_pages_dir = &quot;/home/myuser/custom-tldr-pages/&quot;
</code></pre>
<h1><a class="header" href="#tips-and-tricks" id="tips-and-tricks">Tips and Tricks</a></h1>
<p>This page features some example use cases of Tealdeer.</p>
<h2><a class="header" href="#showing-a-random-page-on-shell-start" id="showing-a-random-page-on-shell-start">Showing a random page on shell start</a></h2>
<p>To display a randomly selected page, you can invoke <code>tldr</code> twice: One time to
select a page and a second time to display this page. To randomly select a page,
we use <code>shuf</code> from the GNU coreutils:</p>
<pre><code class="language-bash">tldr --quiet $(tldr --quiet --list | shuf -n1)
</code></pre>
<p>You can also add the above command to your <code>.bashrc</code> (or similar shell
configuration file) to display a random page every time you start a new shell
session.</p>
<h2><a class="header" href="#displaying-all-pages-with-their-summary" id="displaying-all-pages-with-their-summary">Displaying all pages with their summary</a></h2>
<p>If you want to extend the output of <code>tldr --list</code> with the first line summary of
each page, you can run the following Python script:</p>
<pre><code class="language-python">#!/usr/bin/env python3
import subprocess
commands = subprocess.run(
[&quot;tldr&quot;, &quot;--quiet&quot;, &quot;--list&quot;],
capture_output=True,
encoding=&quot;utf-8&quot;,
).stdout.splitlines()
for command in commands:
output = subprocess.run(
[&quot;tldr&quot;, &quot;--quiet&quot;, command],
capture_output=True,
encoding=&quot;utf-8&quot;,
).stdout
description = output.lstrip().split(&quot;\n\n&quot;)[0]
description = &quot; &quot;.join(description.split())
print(f&quot;{command} =&gt; {description}&quot;)
</code></pre>
<p>Note that there are a lot of pages and the script will run Tealdeer once for
every page, so the script may take a couple of seconds to finish.</p>
<h2><a class="header" href="#extending-this-chapter" id="extending-this-chapter">Extending this chapter</a></h2>
<p>If you have an interesting setup with Tealdeer, feel free to share your
configuration on <a href="https://github.com/tealdeer-rs/tealdeer">our Github repository</a>.</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
</nav>
</div>
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
<script src="mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="searcher.js" type="text/javascript" charset="utf-8"></script>
<script src="clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="book.js" type="text/javascript" charset="utf-8"></script>
<!-- Custom JS scripts -->
<script type="text/javascript">
window.addEventListener('load', function() {
window.setTimeout(window.print, 100);
});
</script>
</body>
</html>