Merge pull request #232 from mattmc3/v1.9.11

v1.9.11
This commit is contained in:
mattmc3 2025-12-12 19:26:54 -05:00 committed by GitHub
commit 9e09a748c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
45 changed files with 2002 additions and 1406 deletions

View File

@ -1,5 +1,5 @@
[bumpversion]
current_version = 1.9.10
current_version = 1.9.11
parse = v?(?P<major>\d+)\.(?P<minor>\d+)\.(?P<revision>\d+)
serialize = {major}.{minor}.{revision}

1
.gitignore vendored
View File

@ -10,3 +10,4 @@ sandbox/
*.old
**/realzdotdir/zsh_plugins.zsh
foo*.*
!footer.*

View File

@ -1,7 +1,7 @@
# antidote
[![MIT License](https://img.shields.io/badge/license-MIT-007EC7.svg)](/LICENSE)
![version](https://img.shields.io/badge/version-v1.9.10-df5e88)
![version](https://img.shields.io/badge/version-v1.9.11-df5e88)
<a title="GetAntidote"
href="https://antidote.sh"

View File

@ -4,7 +4,7 @@
#function __antidote_version {
emulate -L zsh; setopt local_options $_adote_funcopts
0=${(%):-%x}
local ver='1.9.10'
local ver='1.9.11'
local gitsha=$(git -C "${0:A:h:h}" rev-parse --short HEAD 2>/dev/null)
[[ -z "$gitsha" ]] || ver="$ver ($gitsha)"
print "antidote version $ver"

110
man/antidote-bundle.adoc Normal file
View File

@ -0,0 +1,110 @@
= antidote-bundle(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-bundle - download a bundle and print its source line
== Synopsis
*antidote bundle* [<bundles>...]
== Description
*antidote-bundle* assembles your Zsh plugins. Bundles can be git repos, or local files or directories. If a plugin is a repo, it will be cloned if necessary. The zsh code necessary to load (source) the plugin is then printed.
----
antidote bundle gituser/gitrepo
antidote bundle $ZSH_CUSTOM/plugins/myplugin
antidote bundle ${ZDOTDIR:-$HOME}/.zlibs/myfile.zsh
----
Bundles also support annotations. Annotations allow you have finer grained control over your plugins. Annotations are used in the form `keyword:value`.
`kind`::
* *zsh*: A zsh plugin. This is the default kind of bundle.
* *fpath*: Only add the plugin to your `$fpath`.
* *path*: Add the plugin to your `$PATH`.
* *clone*: Only clone a plugin, but don't do anything else with it.
* *defer*: Defers loading of a plugin using `romkatv/zsh-defer`.
* *autoload*: Autoload all the files in the plugin directory as zsh functions.
`branch`::
The branch annotation allows you to change the default branch of a plugin's repo from *main* to a branch of your choosing.
`path`::
The path annotation allows you to use a subdirectory or file within a plugin's structure instead of the root plugin (eg: `path:plugins/subplugin`).
`conditional`::
The conditional annotation allows you to wrap an *if* statement around a plugin's load script. Supply the name of a zero argument zsh function to conditional to perform the test (eg: `conditional:is-macos`).
`pre` / `post`::
The pre and post annotations allow you to call a function before or after a plugin's load script. This is helpful when configuring plugins, since the configuration functions will only run for active plugins. Supply the name of a zero argument zsh function to pre or post.
`autoload`::
The autoload annotation allows you to autoload a zsh functions directory in addition to however the plugin was loaded as specified by `kind`. Supply a relative path to autoload (eg: `autoload:functions`).
Cloned repo directory names can be overridden with the following `zstyle`:
----
zstyle ':antidote:bundle' use-friendly-names 'yes'
----
== Options
*-h, --help*:: Show the help documentation.
*<bundles>...*:: Zsh plugin bundles.
== Examples
Using the *kind:* annotation:
----
# a regular plugin (kind:zsh is implied, so it's unnecessary)
antidote bundle zsh-users/zsh-history-substring-search kind:zsh
----
----
# add prompt plugins to $fpath
antidote bundle sindresorhus/pure kind:fpath
----
----
# add utility plugins to $PATH
antidote bundle romkatv/zsh-bench kind:path
----
----
# clone a repo for use in other ways
antidote bundle mbadolato/iTerm2-Color-Schemes kind:clone
----
----
# autoload a functions directory
antidote bundle sorin-ionescu/prezto path:modules/utility/functions kind:autoload
----
----
# defer a plugin to speed up load times
antidote bundle olets/zsh-abbr kind:defer
----
Using the *branch:* annotation:
----
# don't use the main branch, use develop instead
antidote bundle zsh-users/zsh-autosuggestions branch:develop
----
Using the *path:* annotation:
----
# load oh-my-zsh
antidote bundle ohmyzsh/ohmyzsh path:lib
antidote bundle ohmyzsh/ohmyzsh path:plugins/git
----
Using the *conditional:* annotation:
----
# define a conditional function prior to loading antidote
function is_macos {
[[ $OSTYPE == darwin* ]] || return 1
}
# conditionally load a plugin using the function you made
antidote bundle ohmyzsh/ohmyzsh path:plugins/macos conditional:is_macos
----

View File

@ -1,102 +0,0 @@
---
title: antidote-bundle
section: 1
header: Antidote Manual
---
# NAME
**antidote bundle** - download a bundle and print its source line
# SYNOPSIS
| antidote bundle [\<bundles\>...]
# DESCRIPTION
**antidote-bundle** assembles your Zsh plugins. Bundles can be git repos, or local files or directories. If a plugin is a repo, it will be cloned if necessary. The zsh code necessary to load (source) the plugin is then printed.
| antidote bundle gituser/gitrepo
| antidote bundle $ZSH_CUSTOM/plugins/myplugin
| antidote bundle ${ZDOTDIR:-\$HOME}/.zlibs/myfile.zsh
Bundles also support annotations. Annotations allow you have finer grained control over your plugins. Annotations are used in the form \'keyword:value\'.
`kind`
: - **zsh**: A zsh plugin. This is the default kind of bundle.
: - **fpath**: Only add the plugin to your _\$fpath_.
: - **path**: Add the plugin to your _\$PATH_.
: - **clone**: Only clone a plugin, but don't do anything else with it.
: - **defer**: Defers loading of a plugin using \'romkatv/zsh-defer\'.
: - **autoload**: Autoload all the files in the plugin directory as zsh functions.
`branch`
: The branch annotation allows you to change the default branch of a plugin's repo from **main** to a branch of your choosing.
`path`
: The path annotation allows you to use a subdirectory or file within a plugin's structure instead of the root plugin (eg: \'path:plugins/subplugin\').
`conditional`
: The conditonal annotation allows you to wrap an **if** statement around a plugin's load script. Supply the name of a zero argument zsh function to conditional to perform the test (eg: \'conditional:is-macos\').
`pre` / `post`
: The pre and post annotations allow you to call a function before or after a plugin's load script. This is helpful when configuring plugins, since the configuration functions will only run for active plugins. Supply the name of a zero argument zsh function to pre or post.
`autoload`
: The autoload annotation allows you to autoload a zsh functions directory in addition to however the plugin was loaded as specified by \'kind\'. Supply a relative path to autoload (eg: \'autoload:functions\').
Cloned repo directory names can be overridden with the following **zstyle**:
| zstyle \':antidote:bundle\' use-friendly-names \'yes\'
# OPTIONS
-h, \--help
: Show the help documentation.
[*\<bundles\>...*]
: Zsh plugin bundles
# EXAMPLES
Using the **kind:** annotation...
| # a regular plugin (kind:zsh is implied, so it's unnecessary)
| antidote bundle zsh-users/zsh-history-substring-search kind:zsh
| # add prompt plugins to $fpath
| antidote bundle sindresorhus/pure kind:fpath
| # add utility plugins to $PATH
| antidote bundle romkatv/zsh-bench kind:path
| # clone a repo for use in other ways
| antidote bundle mbadolato/iTerm2-Color-Schemes kind:clone
| # autoload a functions directory
| antidote bundle sorin-ionescu/prezto path:modules/utility/functions kind:autoload
| # defer a plugin to speed up load times
| antidote bundle olets/zsh-abbr kind:defer
Using the **branch:** annotation...
| # don't use the main branch, use develop instead
| antidote bundle zsh-users/zsh-autosuggestions branch:develop
Using the **path:** annotation...
| # load oh-my-zsh
| antidote bundle ohmyzsh/ohmyzsh path:lib
| antidote bundle ohmyzsh/ohmyzsh path:plugins/git
Using the **conditional:** annotation...
| # define a conditional function prior to loading antidote
| function is_macos {
| [[ $OSTYPE == darwin* ]] || return 1
| }
|
| # conditionally load a plugin using the function you made
| antidote bundle ohmyzsh/ohmyzsh path:plugins/macos conditional:is_macos

17
man/antidote-help.adoc Normal file
View File

@ -0,0 +1,17 @@
= antidote-help(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-help - show antidote documentation
== Synopsis
*antidote help* [<command>]
== Description
*antidote-help* is used to show context-sensitive help for antidote and its commands.
== Options
*-h, --help*:: Inception-style meta-help recursively.
*<command>*:: Show help for a specific command.

View File

@ -1,25 +0,0 @@
---
title: antidote-help
section: 1
header: Antidote Manual
---
# NAME
**antidote help** - show antidote documentation
# SYNOPSIS
| antidote help [\<command\>]
# DESCRIPTION
**antidote-help** is used to show context-sensitive help for antidote and its commands.
# OPTIONS
-h, \--help
: Inception-style meta-help recursively.
[*\<command\>*]
: Show help for a specific command.

29
man/antidote-home.adoc Normal file
View File

@ -0,0 +1,29 @@
= antidote-home(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-home - print where antidote is cloning bundles
== Synopsis
*antidote home*
== Description
*antidote-home* shows you where antidote stores its cloned repos. It is not the home of the antidote utility itself.
----
antidote home
----
You can override antidote's default home directory by setting the `$ANTIDOTE_HOME` variable in your `.zshrc`.
== Options
*-h, --help*:: Show the help documentation.
== Examples
You can clear out all your cloned repos like so:
----
rm -rfi "$(antidote home)"
----

View File

@ -1,32 +0,0 @@
---
title: antidote-home
section: 1
header: Antidote Manual
---
# NAME
**antidote home** - print where antidote is cloning bundles
# SYNOPSIS
| antidote home
# DESCRIPTION
**antidote-home** shows you where antidote stores its cloned repos. It is not the home of the antidote utility itself.
| antidote home
You can override antidote's default home directory by setting the _\$ANTIDOTE_HOME_ variable in your **.zshrc**.
# OPTIONS
-h, \--help
: Show the help documentation.
# EXAMPLES
You can clear out all your cloned repos like so:
| rm -rfi $(antidote home)

24
man/antidote-init.adoc Normal file
View File

@ -0,0 +1,24 @@
= antidote-init(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-init - initialize the shell for dynamic bundles
== Synopsis
`source <(antidote init)`
== Description
*antidote-init* changes how the *antidote* command works by causing *antidote bundle* to automatically source its own output instead of just generating the Zsh script for a static file.
This behavior exists mainly to support legacy antigen/antibody usage. Static bundling is highly recommended for the best performance. However, dynamic bundling may be preferable for some scenarios, so you can rely on this functionality remaining a key feature in *antidote* to support users preferring dynamic bundles.
Typical usage involves adding this snippet to your `.zshrc` before using `antidote bundle` commands:
----
source <(antidote init)
----
== Options
*-h, --help*:: Show the help documentation.

View File

@ -1,28 +0,0 @@
---
title: antidote-init
section: 1
header: Antidote Manual
---
# NAME
**antidote init** - initialize the shell for dynamic bundles
# SYNOPSIS
| source <(antidote init)
# DESCRIPTION
**antidote-init** changes how the **antidote** command works by causing **antidote bundle** to automatically source its own output instead of just generating the Zsh script for a static file.
This behavior exists mainly to support legacy antigen/antibody usage. Static bundling is highly recommended for the best performance. However, dynamic bundling may be preferable for some scenarios, so you can rely on this functionality remaining a key feature in **antidote** to support users preferring dynamic bundles.
Typical usage involves adding this snippet to your **.zshrc** before using **antidote bundle** commands:
| source <(antidote init)
# OPTIONS
-h, \--help
: Show the help documentation.

36
man/antidote-install.adoc Normal file
View File

@ -0,0 +1,36 @@
= antidote-install(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-install - install a bundle
== Synopsis
*antidote install* [-h|--help] [-k|--kind <kind>] [-p|--path <path>] [-a|--autoload <path>] [-c|--conditional <func>] [--pre <func>] [--post <func>] [-b|--branch <branch>] <bundle> [<bundlefile>]
== Description
*antidote-install* clones a new bundle and adds it to your plugins file.
The default bundle file is `${ZDOTDIR:-$HOME}/.zsh_plugins.txt`. This can be overridden with the following `zstyle`:
----
zstyle ':antidote:bundle' file /path/to/my/bundle_file.txt
----
== Options
*-h, --help*:: Show the help documentation.
*-k, --kind <kind>*:: The kind of bundle. Valid values: autoload, fpath, path, clone, defer, zsh.
*-p, --path <path>*:: A relative subpath within the bundle where the plugin is located.
*-b, --branch <branch>*:: The git branch to use.
*-a, --autoload <path>*:: A relative subpath within the bundle where autoload function files are located.
*-c, --conditional <func>*:: A conditional function used to check whether to load the bundle.
*--pre <func>*:: A function to be called prior to loading the bundle.
*--post <func>*:: A function to be called after loading the bundle.
*<bundle>*:: Bundle to be installed.
*[<bundlefile>]*:: Bundle file to write to if not using the default. Defaults to `${ZDOTDIR:-$HOME}/.zsh_plugins.txt` or the `zstyle` setting.
== Examples
----
antidote install zsh-users/zsh-history-substring-search
----

View File

@ -1,60 +0,0 @@
---
title: antidote-install
section: 1
header: Antidote Manual
---
# NAME
**antidote install** - install a bundle
# SYNOPSIS
| antidote install [-h|\--help] [-k|\--kind \<kind\>] [-p|\--path \<path\>]
| [-a|\--autoload \<path\>] [-c|\--conditional \<func\>]
| [\--pre \<func\>] [\--post \<func\>]
| [-b|\--branch \<branch\>] \<bundle\> [\<bundlefile\>]
# DESCRIPTION
**antidote-install** clones a new bundle and adds it to your plugins file.
The default bundle file is **${ZDOTDIR:-\$HOME}/.zsh_plugins.txt**. This can be overridden with the following **zstyle**:
| zstyle \':antidote:bundle\' file /path/to/my/bundle_file.txt
# OPTIONS
-h, \--help
: Show the help documentation.
-k, \--kind <kind>
: The kind of bundle. Valid values: autoload, fpath, path, clone, defer, zsh.
-p, \--path <path>
: A relative subpath within the bundle where the plugin is located.
-b, \--branch <path>
: The git branch to use.
-a, \--autoload <path>
: A relative subpath within the bundle where autoload function files are located.
-c, \--conditional <func>
: A conditional function used to check whether to load the bundle.
\--pre <func>
: A function to be called prior to loading the bundle.
\--post <func>
: A function to be called after loading the bundle.
\<bundle\>
: Bundle to be installed.
[\<bundlefile\>]
: Bundle file to write to if not using the default. Defaults to **${ZDOTDIR:-\$HOME}/.zsh_plugins.txt** or zstyle setting.
# EXAMPLES
| antidote install zsh-users/zsh-history-substring-search

19
man/antidote-list.adoc Normal file
View File

@ -0,0 +1,19 @@
= antidote-list(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-list - list cloned bundles
== Synopsis
*antidote list* [-h|--help] [-s|--short] [-d|--dirs] [-u|--url]
== Description
*antidote-list* lists the cloned bundles in *antidote home*.
== Options
*-h, --help*:: Show the help documentation.
*-s, --short*:: Show shortened repos where possible.
*-d, --dirs*:: Show only bundle directories.
*-u, --url*:: Show bundle URLs.

View File

@ -1,31 +0,0 @@
---
title: antidote-list
section: 1
header: Antidote Manual
---
# NAME
**antidote list** - list cloned bundles
# SYNOPSIS
| antidote list [-h|\--help] [-s|\--short] [-d|\--dirs] [-u|\--url]
# DESCRIPTION
**antidote-list** lists the cloned bundles in **antidote home**.
# OPTIONS
-h, \--help
: Show the help documentation.
-s, \--short
: Show shortened repos where possible.
-d, \--dirs
: Show only bundle directories.
-u, \--url
: Show bundle URLs.

30
man/antidote-load.adoc Normal file
View File

@ -0,0 +1,30 @@
= antidote-load(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-load - statically source bundles
== Synopsis
*antidote load* [<bundlefile> [<staticfile>]]
== Description
*antidote-load* will turn the bundle file into a static load file and then source it.
The default bundle file is `${ZDOTDIR:-$HOME}/.zsh_plugins.txt`. This can be overridden with the following `zstyle`:
----
zstyle ':antidote:bundle' file /path/to/my/bundle_file.txt
----
The default static file is `${ZDOTDIR:-$HOME}/.zsh_plugins.zsh`. This can be overridden with the following `zstyle`:
----
zstyle ':antidote:static' file /path/to/my/static_file.zsh
----
== Options
*-h, --help*:: Show the help documentation.
*[<bundlefile>]*:: The plugins file to source if not using the default. Defaults to `${ZDOTDIR:-$HOME}/.zsh_plugins.txt` or the `zstyle` setting.
*[<staticfile>]*:: The static plugins file to generate if not using the default. Defaults to `${ZDOTDIR:-$HOME}/.zsh_plugins.zsh` or the `zstyle` setting.

View File

@ -1,36 +0,0 @@
---
title: antidote-load
section: 1
header: Antidote Manual
---
# NAME
**antidote load** - statically source bundles
# SYNOPSIS
| antidote load [\<bundlefile\> [\<staticfile\>]]
# DESCRIPTION
**antidote-load** will turn the bundle file into a static load file and then source it.
The default bundle file is **${ZDOTDIR:-\$HOME}/.zsh_plugins.txt**. This can be overridden with the following **zstyle**:
| zstyle \':antidote:bundle\' file /path/to/my/bundle_file.txt
The default static file is **${ZDOTDIR:-\$HOME}/.zsh_plugins.zsh**. This can be overridden with the following **zstyle**:
| zstyle \':antidote:static\' file /path/to/my/static_file.zsh
# OPTIONS
-h, \--help
: Show the help documentation.
[\<bundlefile\>]
: The plugins file to source if not using the default. Defaults to **${ZDOTDIR:-\$HOME}/.zsh_plugins.txt** or zstyle setting.
[\<staticfile\>]
: The static plugins file to generate if not using the default. Defaults to **${ZDOTDIR:-\$HOME}/.zsh_plugins.zsh** or zstyle setting.

17
man/antidote-path.adoc Normal file
View File

@ -0,0 +1,17 @@
= antidote-path(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-path - print the path of a cloned bundle
== Synopsis
*antidote path* <bundle>
== Description
*antidote-path* prints the path of a cloned bundle.
== Options
*-h, --help*:: Show the help documentation.
*[<bundle>]*:: The bundle whose cloned path will be printed.

View File

@ -1,25 +0,0 @@
---
title: antidote-path
section: 1
header: Antidote Manual
---
# NAME
**antidote path** - print the path of a cloned bundle
# SYNOPSIS
| antidote path \<bundle\>
# DESCRIPTION
**antidote-path** prints the path of a cloned bundle.
# OPTIONS
-h, \--help
: Show the help documentation.
[\<bundle\>]
: The bundle whose cloned path will be printed.

23
man/antidote-purge.adoc Normal file
View File

@ -0,0 +1,23 @@
= antidote-purge(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-purge - remove a bundle
== Synopsis
*antidote purge* <bundle>
== Description
*antidote-purge* removes a cloned bundle.
== Options
*-h, --help*:: Show the help documentation.
*-a, --all*:: Purge all cloned bundles.
*<bundle>*:: Bundle to be purged.
== Examples
----
antidote purge zsh-users/zsh-history-substring-search
----

View File

@ -1,32 +0,0 @@
---
title: antidote-purge
section: 1
header: Antidote Manual
---
# NAME
**antidote purge** - remove a bundle
# SYNOPSIS
| antidote purge \<bundle\>
# DESCRIPTION
**antidote-purge** removes a cloned bundle.
# OPTIONS
-h, \--help
: Show the help documentation.
-a, \--all
: Purge all cloned bundles.
\<bundle\>
: Bundle to be purged.
# EXAMPLES
| antidote purge zsh-users/zsh-history-substring-search

23
man/antidote-update.adoc Normal file
View File

@ -0,0 +1,23 @@
= antidote-update(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote-update - update bundles
== Synopsis
*antidote update* [-h|--help] [-s|--self] [-b|--bundles]
== Description
*antidote-update* updates antidote and its cloned bundles.
== Options
*-h, --help*:: Show the help documentation.
*-s, --self*:: Update antidote.
*-b, --bundles*:: Update bundles.
== Examples
----
antidote update
----

View File

@ -1,32 +0,0 @@
---
title: antidote-update
section: 1
header: Antidote Manual
---
# NAME
**antidote update** - update bundles
# SYNOPSIS
| antidote update [-h|\--help] [-s|\--self] [-b|\--bundles]
# DESCRIPTION
**antidote-update** updates antidote and its cloned bundles.
# OPTIONS
-h, \--help
: Show the help documentation.
-s, \--self
: Update antidote.
-b, \--bundles
: Update bundles.
# EXAMPLES
| antidote update

176
man/antidote.adoc Normal file
View File

@ -0,0 +1,176 @@
= antidote(1)
:doctype: manpage
:manmanual: Antidote Manual
:mansource: antidote
== Name
antidote - the cure to slow zsh plugin management
== Synopsis
*antidote* [-v | --version] [-h | --help] <command> [<args> ...]
== Description
*antidote* is a Zsh plugin manager made from the ground up thinking about performance.
It is fast because it can do things concurrently, and generates an ultra-fast static plugin file that you can easily load from your Zsh config.
It is written natively in Zsh, is well tested, and picks up where Antigen and Antibody left off.
== Options
*-h, --help*:: Show context-sensitive help for antidote.
*-v, --version*:: Show currently installed antidote version.
== Commands
*help*:: Show documentation
*load*:: Statically source all bundles from the plugins file
*bundle*:: Clone bundle(s) and generate the static load script
*install*:: Clone a new bundle and add it to your plugins file
*update*:: Update antidote and its cloned bundles
*purge*:: Remove a cloned bundle
*home*:: Print where antidote is cloning bundles
*list*:: List cloned bundles
*path*:: Print the path of a cloned bundle
*init*:: Initialize the shell for dynamic bundles
== Examples
=== A Simple Config
Create a `.zsh_plugins.txt` file with a list of the plugins you want:
----
# ${ZDOTDIR:-$HOME}/.zsh_plugins.txt
zsh-users/zsh-syntax-highlighting
zsh-users/zsh-history-substring-search
zsh-users/zsh-autosuggestions
----
Now, simply load your newly created static plugins file in your `.zshrc`.
----
# ${ZDOTDIR:-$HOME}/.zshrc
source /path/to/antidote/antidote.zsh
antidote load
----
=== A More Advanced Config
Your `.zsh_plugins.txt` file supports annotations. Annotations tell antidote how to do things like load plugins from alternate paths. This lets you use plugins from popular frameworks like Oh-My-Zsh:
----
# ${ZDOTDIR:-$HOME}/.zsh_plugins.txt
ohmyzsh/ohmyzsh path:lib
ohmyzsh/ohmyzsh path:plugins/git
ohmyzsh/ohmyzsh path:plugins/magic-enter
etc...
----
=== Dynamic Bundling
Users familiar with legacy plugin managers like Antigen might prefer to use dynamic bundling. With dynamic bundling you sacrifice some performance to avoid having separate plugin files. To use dynamic bundling, we need to change how *antidote bundle* handles your plugins. We do this by sourcing the output from *antidote init*.
An example config might look like this:
----
source /path/to/antidote/antidote.zsh
source <(antidote init)
antidote bundle zsh-users/zsh-autosuggestions
antidote bundle ohmyzsh/ohmyzsh path:lib
antidote bundle ohmyzsh/ohmyzsh path:plugins/git
----
Instead of calling *antidote bundle* over and over, you might prefer to load bundles with a HEREDOC.
----
source /path/to/antidote/antidote.zsh
source <(antidote init)
antidote bundle <<EOBUNDLES
zsh-users/zsh-syntax-highlighting # regular plugins
ohmyzsh/ohmyzsh path:lib # directories
ohmyzsh/ohmyzsh path:plugins/magic-enter # frameworks
https://github.com/zsh-users/zsh-history-substring-search # URLs
EOBUNDLES
----
=== Installation
To install antidote you can clone it with git:
----
git clone --depth=1 https://github.com/mattmc3/antidote.git ${ZDOTDIR:-$HOME}/.antidote
----
Then, simply add the following snippet to your `.zshrc`:
----
source ${ZDOTDIR:-$HOME}/.antidote/antidote.zsh
antidote load
----
== Customization
The location where antidote clones repositories can be customized by setting `$ANTIDOTE_HOME`:
----
ANTIDOTE_HOME=/path/to/my/repos
----
The bundle directory in ANTIDOTE_HOME can be changed to use friendly names with the following `zstyle`:
----
zstyle ':antidote:bundle' use-friendly-names on
----
The default bundle file is `${ZDOTDIR:-$HOME}/.zsh_plugins.txt`. This can be overridden with the following `zstyle`:
----
zstyle ':antidote:bundle' file /path/to/my/bundle_file.txt
----
The default static file is `${ZDOTDIR:-$HOME}/.zsh_plugins.zsh`. This can be overridden with the following `zstyle`:
----
zstyle ':antidote:static' file /path/to/my/static_file.zsh
----
The default options used by romkatv/zsh-defer can be changed with the following `zstyle`:
----
zstyle ':antidote:bundle:*' defer-options '-a'
zstyle ':antidote:bundle:foo/bar' defer-options '-p'
----
Bundles can be Zsh compiled with the following `zstyle`:
----
zstyle ':antidote:bundle:*' zcompile 'yes'
----
Or, if you only want to zcompile specific bundles, you can set those individually:
----
zstyle ':antidote:bundle:*' zcompile 'yes'
zstyle ':antidote:bundle:zsh-users/zsh-syntax-highlighting' zcompile 'no'
----
The static file can be Zsh compiled with the following `zstyle`:
----
zstyle ':antidote:static' zcompile 'yes'
----
Or, to Zsh compile everything, static file and all bundles:
----
zstyle ':antidote:*' zcompile 'yes'
----
By default, antidote appends to the end of your `$fpath`. This is highly recommended, however if you really want to change that behavior, there's a zstyle for that:
----
zstyle ':antidote:fpath' rule 'prepend'
----
By default, antidote uses romkatv/zsh-defer for deferred plugins. If there's a fork you'd prefer to use, you can specify that with this zstyle:
----
zstyle ':antidote:defer' bundle 'getantidote/zsh-defer'
----
== See Also
For more information, visit https://antidote.sh

View File

@ -1,174 +0,0 @@
---
title: antidote
section: 1
header: Antidote Manual
---
# NAME
**antidote** - the cure to slow zsh plugin management
# SYNOPSIS
| antidote [-v | --version] [-h | --help] \<command\> [\<args\> ...]
# DESCRIPTION
**antidote** is a Zsh plugin manager made from the ground up thinking about performance.
It is fast because it can do things concurrently, and generates an ultra-fast static plugin file that you can easily load from your Zsh config.
It is written natively in Zsh, is well tested, and picks up where Antigen and Antibody left off.
# OPTIONS
-h, \--help
: Show context-sensitive help for antidote.
-v, \--version
: Show currently installed antidote version.
# COMMANDS
`help`
: Show documentation
`load`
: Statically source all bundles from the plugins file
`bundle`
: Clone bundle(s) and generate the static load script
`install`
: Clone a new bundle and add it to your plugins file
`update`
: Update antidote and its cloned bundles
`purge`
: Remove a cloned bundle
`home`
: Print where antidote is cloning bundles
`list`
: List cloned bundles
`path`
: Print the path of a cloned bundle
`init`
: Initialize the shell for dynamic bundles
# EXAMPLES
## A Simple Config
Create a _.zsh_plugins.txt_ file with a list of the plugins you want:
| # ${ZDOTDIR:-\$HOME}/.zsh_plugins.txt
| zsh-users/zsh-syntax-highlighting
| zsh-users/zsh-history-substring-search
| zsh-users/zsh-autosuggestions
Now, simply load your newly created static plugins file in your _.zshrc_.
| # ${ZDOTDIR:-\$HOME}/.zshrc
| source /path/to/antidote/antidote.zsh
| antidote load
## A More Advanced Config
Your _.zsh_plugins.txt_ file supports annotations. Annotations tell antidote how to do things like load plugins from alternate paths. This lets you use plugins from popular frameworks like Oh-My-Zsh:
| # ${ZDOTDIR:-\$HOME}/.zsh_plugins.txt
| ohmyzsh/ohmyzsh path:lib
| ohmyzsh/ohmyzsh path:plugins/git
| ohmyzsh/ohmyzsh path:plugins/magic-enter
| etc...
## Dynamic Bundling
Users familiar with legacy plugin managers like Antigen might prefer to use dynamic bundling. With dynamic bundling you sacrifice some performance to avoid having separate plugin files. To use dynamic bundling, we need to change how **antidote bundle** handles your plugins. We do this by sourcing the output from **antidote init**.
An example config might look like this:
| source /path/to/antidote/antidote.zsh
| source <(antidote init)
| antidote bundle zsh-users/zsh-autosuggestions
| antidote bundle ohmyzsh/ohmyzsh path:lib
| antidote bundle ohmyzsh/ohmyzsh path:plugins/git
Instead of calling **antidote bundle** over and over, you might prefer to load bundles with a HEREDOC.
| source /path/to/antidote/antidote.zsh
| source <(antidote init)
| antidote bundle <<EOBUNDLES
| zsh-users/zsh-syntax-highlighting # regular plugins
| ohmyzsh/ohmyzsh path:lib # directories
| ohmyzsh/ohmyzsh path:plugins/magic-enter # frameworks
| https://github.com/zsh-users/zsh-history-substring-search # URLs
| EOBUNDLES
## Installation
To install antidote you can clone it with git:
| git clone --depth=1 https://github.com/mattmc3/antidote.git ${ZDOTDIR:-\$HOME}/.antidote
Then, simply add the following snippet to your .zshrc:
| source ${ZDOTDIR:-\$HOME}/.antidote/antidote.zsh
| antidote load
# CUSTOMIZATION
The location where antidote clones repositories can bu customized by setting **$ANTIDOTE_HOME**:
| ANTIDOTE_HOME=/path/to/my/repos
The bundle directory in ANTIDOTE_HOME can be changed to use friendly names with the following **zstyle**:
| zstyle \':antidote:bundle\' use-friendly-names on
The default bundle file is **${ZDOTDIR:-\$HOME}/.zsh_plugins.txt**. This can be overridden with the following **zstyle**:
| zstyle \':antidote:bundle\' file /path/to/my/bundle_file.txt
The default static file is **${ZDOTDIR:-\$HOME}/.zsh_plugins.zsh**. This can be overridden with the following **zstyle**:
| zstyle \':antidote:static\' file /path/to/my/static_file.zsh
The default options used by romkatv/zsh-defer can be changed with the following **zstyle**:
| zstyle ':antidote:bundle:*' defer-options '-a'
| zstyle ':antidote:bundle:foo/bar' defer-options '-p'
Bundles can be Zsh compiled with the following **zstyle**:
| zstyle ':antidote:bundle:*' zcompile 'yes'
Or, if you only want to zcompile specific bundles, you can set those individually:
| zstyle ':antidote:bundle:*' zcompile 'yes'
| zstyle ':antidote:bundle:zsh-users/zsh-syntax-highlighting' zcompile 'no'
The static file can be Zsh compiled with the following **zstyle**:
| zstyle ':antidote:static' zcompile 'yes'
Or, to Zsh compile everything, static file and all bundles:
| zstyle ':antidote:*' zcompile 'yes'
By default, antidote appends to the end of your $fpath. This is highly recommended, however if you really want to change that behavior, there's a zstyle for that:
| zstyle ':antidote:fpath' rule 'prepend'
By default, antidote uses romkatv/zsh-defer for deferred plugins. If there's a fork you'd prefer to use, you can specify that with this zstyle:
| zstyle ':antidote:defer' bundle 'getantidote/zsh-defer'
# SEE ALSO
For more information, visit https://antidote.sh

9
man/footer.adoc Normal file
View File

@ -0,0 +1,9 @@
== Bugs
See GitHub Issues: https://github.com/mattmc3/antidote/issues
== Authors
- Copyright (c) 2021-2026 Matt McElheny
- antidote contributors: https://github.com/mattmc3/antidote/graphs/contributors
== License
MIT

View File

@ -1,12 +0,0 @@
# BUGS
See GitHub Issues: <https://github.com/mattmc3/antidote/issues>
# AUTHORS
- Copyright (c) 2021-2024 Matt McElheny
- antidote contributors: <https://github.com/mattmc3/antidote/graphs/contributors>
# LICENSE
MIT

View File

@ -1,185 +1,292 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-bundle
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-bundle" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote bundle\f[R] \- download a bundle and print its source line
.SH SYNOPSIS
.PP
antidote bundle [<bundles>\&...]
.SH DESCRIPTION
\f[B]antidote\-bundle\f[R] assembles your Zsh plugins.
Bundles can be git repos, or local files or directories.
If a plugin is a repo, it will be cloned if necessary.
The zsh code necessary to load (source) the plugin is then printed.
.PP
\ \ antidote bundle gituser/gitrepo
.PD 0
.P
.PD
\ \ antidote bundle $ZSH_CUSTOM/plugins/myplugin
.PD 0
.P
.PD
\ \ antidote bundle ${ZDOTDIR:\-$HOME}/.zlibs/myfile.zsh
.PP
Bundles also support annotations.
Annotations allow you have finer grained control over your plugins.
Annotations are used in the form \[aq]keyword:value\[aq].
.TP
\f[CR]kind\f[R]
.IP \[bu] 2
\f[B]zsh\f[R]: A zsh plugin.
This is the default kind of bundle.
.IP \[bu] 2
\f[B]fpath\f[R]: Only add the plugin to your \f[I]$fpath\f[R].
.IP \[bu] 2
\f[B]path\f[R]: Add the plugin to your \f[I]$PATH\f[R].
.IP \[bu] 2
\f[B]clone\f[R]: Only clone a plugin, but don\[cq]t do anything else
with it.
.IP \[bu] 2
\f[B]defer\f[R]: Defers loading of a plugin using
\[aq]romkatv/zsh\-defer\[aq].
.IP \[bu] 2
\f[B]autoload\f[R]: Autoload all the files in the plugin directory as
zsh functions.
.TP
\f[CR]branch\f[R]
The branch annotation allows you to change the default branch of a
plugin\[cq]s repo from \f[B]main\f[R] to a branch of your choosing.
.TP
\f[CR]path\f[R]
The path annotation allows you to use a subdirectory or file within a
plugin\[cq]s structure instead of the root plugin (eg:
\[aq]path:plugins/subplugin\[aq]).
.TP
\f[CR]conditional\f[R]
The conditonal annotation allows you to wrap an \f[B]if\f[R] statement
around a plugin\[cq]s load script.
Supply the name of a zero argument zsh function to conditional to
perform the test (eg: \[aq]conditional:is\-macos\[aq]).
.TP
\f[CR]pre\f[R] / \f[CR]post\f[R]
The pre and post annotations allow you to call a function before or
after a plugin\[cq]s load script.
This is helpful when configuring plugins, since the configuration
functions will only run for active plugins.
Supply the name of a zero argument zsh function to pre or post.
.TP
\f[CR]autoload\f[R]
The autoload annotation allows you to autoload a zsh functions directory
in addition to however the plugin was loaded as specified by
\[aq]kind\[aq].
Supply a relative path to autoload (eg: \[aq]autoload:functions\[aq]).
.PP
Cloned repo directory names can be overridden with the following
\f[B]zstyle\f[R]:
.PP
\ \ zstyle \[aq]:antidote:bundle\[aq] use\-friendly\-names \[aq]yes\[aq]
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-BUNDLE" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-bundle \- download a bundle and print its source line
.SH "SYNOPSIS"
.sp
\fBantidote bundle\fP [<bundles>.\|.\|.]
.SH "DESCRIPTION"
.sp
\fBantidote\-bundle\fP assembles your Zsh plugins. Bundles can be git repos, or local files or directories. If a plugin is a repo, it will be cloned if necessary. The zsh code necessary to load (source) the plugin is then printed.
.sp
.if n .RS 4
.nf
.fam C
antidote bundle gituser/gitrepo
antidote bundle $ZSH_CUSTOM/plugins/myplugin
antidote bundle ${ZDOTDIR:\-$HOME}/.zlibs/myfile.zsh
.fam
.fi
.if n .RE
.sp
Bundles also support annotations. Annotations allow you have finer grained control over your plugins. Annotations are used in the form \f(CRkeyword:value\fP.
.sp
\f(CRkind\fP
.RS 4
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
\fBzsh\fP: A zsh plugin. This is the default kind of bundle.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
\fBfpath\fP: Only add the plugin to your \f(CR$fpath\fP.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
\fBpath\fP: Add the plugin to your \f(CR$PATH\fP.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
\fBclone\fP: Only clone a plugin, but don\(cqt do anything else with it.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
\fBdefer\fP: Defers loading of a plugin using \f(CRromkatv/zsh\-defer\fP.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
\fBautoload\fP: Autoload all the files in the plugin directory as zsh functions.
.RE
.RE
.sp
\f(CRbranch\fP
.RS 4
The branch annotation allows you to change the default branch of a plugin\(cqs repo from \fBmain\fP to a branch of your choosing.
.RE
.sp
\f(CRpath\fP
.RS 4
The path annotation allows you to use a subdirectory or file within a plugin\(cqs structure instead of the root plugin (eg: \f(CRpath:plugins/subplugin\fP).
.RE
.sp
\f(CRconditional\fP
.RS 4
The conditional annotation allows you to wrap an \fBif\fP statement around a plugin\(cqs load script. Supply the name of a zero argument zsh function to conditional to perform the test (eg: \f(CRconditional:is\-macos\fP).
.RE
.sp
\f(CRpre\fP / \f(CRpost\fP
.RS 4
The pre and post annotations allow you to call a function before or after a plugin\(cqs load script. This is helpful when configuring plugins, since the configuration functions will only run for active plugins. Supply the name of a zero argument zsh function to pre or post.
.RE
.sp
\f(CRautoload\fP
.RS 4
The autoload annotation allows you to autoload a zsh functions directory in addition to however the plugin was loaded as specified by \f(CRkind\fP. Supply a relative path to autoload (eg: \f(CRautoload:functions\fP).
.RE
.sp
Cloned repo directory names can be overridden with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle\*(Aq use\-friendly\-names \*(Aqyes\*(Aq
.fam
.fi
.if n .RE
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.TP
[\f[I]<bundles>\&...\f[R]]
Zsh plugin bundles
.SH EXAMPLES
Using the \f[B]kind:\f[R] annotation\&...
.PP
\ \ # a regular plugin (kind:zsh is implied, so it\[cq]s unnecessary)
.PD 0
.P
.PD
\ \ antidote bundle zsh\-users/zsh\-history\-substring\-search kind:zsh
.PP
\ \ # add prompt plugins to $fpath
.PD 0
.P
.PD
\ \ antidote bundle sindresorhus/pure kind:fpath
.PP
\ \ # add utility plugins to $PATH
.PD 0
.P
.PD
\ \ antidote bundle romkatv/zsh\-bench kind:path
.PP
\ \ # clone a repo for use in other ways
.PD 0
.P
.PD
\ \ antidote bundle mbadolato/iTerm2\-Color\-Schemes kind:clone
.PP
\ \ # autoload a functions directory
.PD 0
.P
.PD
\ \ antidote bundle sorin\-ionescu/prezto path:modules/utility/functions
kind:autoload
.PP
\ \ # defer a plugin to speed up load times
.PD 0
.P
.PD
\ \ antidote bundle olets/zsh\-abbr kind:defer
.PP
Using the \f[B]branch:\f[R] annotation\&...
.PP
\ \ # don\[cq]t use the main branch, use develop instead
.PD 0
.P
.PD
\ \ antidote bundle zsh\-users/zsh\-autosuggestions branch:develop
.PP
Using the \f[B]path:\f[R] annotation\&...
.PP
\ \ # load oh\-my\-zsh
.PD 0
.P
.PD
\ \ antidote bundle ohmyzsh/ohmyzsh path:lib
.PD 0
.P
.PD
\ \ antidote bundle ohmyzsh/ohmyzsh path:plugins/git
.PP
Using the \f[B]conditional:\f[R] annotation\&...
.PP
\ \ # define a conditional function prior to loading antidote
.PD 0
.P
.PD
\ \ function is_macos {
.PD 0
.P
.PD
\ \ \ \ [[ $OSTYPE == darwin* ]] || return 1
.PD 0
.P
.PD
\ \ }
.PD 0
.P
.PD
.PD 0
.P
.PD
\ \ # conditionally load a plugin using the function you made
.PD 0
.P
.PD
\ \ antidote bundle ohmyzsh/ohmyzsh path:plugins/macos
conditional:is_macos
.SH BUGS
.RE
.sp
\fB<bundles>.\|.\|.\fP
.RS 4
Zsh plugin bundles.
.RE
.SH "EXAMPLES"
.sp
Using the \fBkind:\fP annotation:
.sp
.if n .RS 4
.nf
.fam C
# a regular plugin (kind:zsh is implied, so it\*(Aqs unnecessary)
antidote bundle zsh\-users/zsh\-history\-substring\-search kind:zsh
.fam
.fi
.if n .RE
.sp
.if n .RS 4
.nf
.fam C
# add prompt plugins to $fpath
antidote bundle sindresorhus/pure kind:fpath
.fam
.fi
.if n .RE
.sp
.if n .RS 4
.nf
.fam C
# add utility plugins to $PATH
antidote bundle romkatv/zsh\-bench kind:path
.fam
.fi
.if n .RE
.sp
.if n .RS 4
.nf
.fam C
# clone a repo for use in other ways
antidote bundle mbadolato/iTerm2\-Color\-Schemes kind:clone
.fam
.fi
.if n .RE
.sp
.if n .RS 4
.nf
.fam C
# autoload a functions directory
antidote bundle sorin\-ionescu/prezto path:modules/utility/functions kind:autoload
.fam
.fi
.if n .RE
.sp
.if n .RS 4
.nf
.fam C
# defer a plugin to speed up load times
antidote bundle olets/zsh\-abbr kind:defer
.fam
.fi
.if n .RE
.sp
Using the \fBbranch:\fP annotation:
.sp
.if n .RS 4
.nf
.fam C
# don\*(Aqt use the main branch, use develop instead
antidote bundle zsh\-users/zsh\-autosuggestions branch:develop
.fam
.fi
.if n .RE
.sp
Using the \fBpath:\fP annotation:
.sp
.if n .RS 4
.nf
.fam C
# load oh\-my\-zsh
antidote bundle ohmyzsh/ohmyzsh path:lib
antidote bundle ohmyzsh/ohmyzsh path:plugins/git
.fam
.fi
.if n .RE
.sp
Using the \fBconditional:\fP annotation:
.sp
.if n .RS 4
.nf
.fam C
# define a conditional function prior to loading antidote
function is_macos {
[[ $OSTYPE == darwin* ]] || return 1
}
# conditionally load a plugin using the function you made
antidote bundle ohmyzsh/ohmyzsh path:plugins/macos conditional:is_macos
.fam
.fi
.if n .RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,31 +1,79 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-help
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-help" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote help\f[R] \- show antidote documentation
.SH SYNOPSIS
.PP
antidote help [<command>]
.SH DESCRIPTION
\f[B]antidote\-help\f[R] is used to show context\-sensitive help for
antidote and its commands.
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-HELP" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-help \- show antidote documentation
.SH "SYNOPSIS"
.sp
\fBantidote help\fP [<command>]
.SH "DESCRIPTION"
.sp
\fBantidote\-help\fP is used to show context\-sensitive help for antidote and its commands.
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Inception\-style meta\-help recursively.
.TP
[\f[I]<command>\f[R]]
.RE
.sp
\fB<command>\fP
.RS 4
Show help for a specific command.
.SH BUGS
.RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,38 +1,95 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-home
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-home" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote home\f[R] \- print where antidote is cloning bundles
.SH SYNOPSIS
.PP
.TH "ANTIDOTE\-HOME" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-home \- print where antidote is cloning bundles
.SH "SYNOPSIS"
.sp
\fBantidote home\fP
.SH "DESCRIPTION"
.sp
\fBantidote\-home\fP shows you where antidote stores its cloned repos. It is not the home of the antidote utility itself.
.sp
.if n .RS 4
.nf
.fam C
antidote home
.SH DESCRIPTION
\f[B]antidote\-home\f[R] shows you where antidote stores its cloned
repos.
It is not the home of the antidote utility itself.
.PP
\ \ antidote home
.PP
You can override antidote\[cq]s default home directory by setting the
\f[I]$ANTIDOTE_HOME\f[R] variable in your \f[B].zshrc\f[R].
.SH OPTIONS
.TP
\-h, \-\-help
.fam
.fi
.if n .RE
.sp
You can override antidote\(cqs default home directory by setting the \f(CR$ANTIDOTE_HOME\fP variable in your \f(CR.zshrc\fP.
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.SH EXAMPLES
.RE
.SH "EXAMPLES"
.sp
You can clear out all your cloned repos like so:
.PP
\ \ rm \-rfi $(antidote home)
.SH BUGS
.sp
.if n .RS 4
.nf
.fam C
rm \-rfi "$(antidote home)"
.fam
.fi
.if n .RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,40 +1,86 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-init
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-init" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote init\f[R] \- initialize the shell for dynamic bundles
.SH SYNOPSIS
.PP
.TH "ANTIDOTE\-INIT" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-init \- initialize the shell for dynamic bundles
.SH "SYNOPSIS"
.sp
\f(CRsource <(antidote init)\fP
.SH "DESCRIPTION"
.sp
\fBantidote\-init\fP changes how the \fBantidote\fP command works by causing \fBantidote bundle\fP to automatically source its own output instead of just generating the Zsh script for a static file.
.sp
This behavior exists mainly to support legacy antigen/antibody usage. Static bundling is highly recommended for the best performance. However, dynamic bundling may be preferable for some scenarios, so you can rely on this functionality remaining a key feature in \fBantidote\fP to support users preferring dynamic bundles.
.sp
Typical usage involves adding this snippet to your \f(CR.zshrc\fP before using \f(CRantidote bundle\fP commands:
.sp
.if n .RS 4
.nf
.fam C
source <(antidote init)
.SH DESCRIPTION
\f[B]antidote\-init\f[R] changes how the \f[B]antidote\f[R] command
works by causing \f[B]antidote bundle\f[R] to automatically source its
own output instead of just generating the Zsh script for a static file.
.PP
This behavior exists mainly to support legacy antigen/antibody usage.
Static bundling is highly recommended for the best performance.
However, dynamic bundling may be preferable for some scenarios, so you
can rely on this functionality remaining a key feature in
\f[B]antidote\f[R] to support users preferring dynamic bundles.
.PP
Typical usage involves adding this snippet to your \f[B].zshrc\f[R]
before using \f[B]antidote bundle\f[R] commands:
.PP
\ source <(antidote init)
.SH OPTIONS
.TP
\-h, \-\-help
.fam
.fi
.if n .RE
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.SH BUGS
.RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,83 +1,138 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-install
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-install" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote install\f[R] \- install a bundle
.SH SYNOPSIS
.PP
antidote install [\-h|\-\-help] [\-k|\-\-kind <kind>] [\-p|\-\-path
<path>]
.PD 0
.P
.PD
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\-a|\-\-autoload <path>]
[\-c|\-\-conditional <func>]
.PD 0
.P
.PD
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\-\-pre <func>] [\-\-post <func>]
.PD 0
.P
.PD
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\-b|\-\-branch <branch>] <bundle>
[<bundlefile>]
.SH DESCRIPTION
\f[B]antidote\-install\f[R] clones a new bundle and adds it to your
plugins file.
.PP
The default bundle file is
\f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\f[R].
This can be overridden with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[aq]:antidote:bundle\[aq] file /path/to/my/bundle_file.txt
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-INSTALL" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-install \- install a bundle
.SH "SYNOPSIS"
.sp
\fBantidote install\fP [\-h|\-\-help] [\-k|\-\-kind <kind>] [\-p|\-\-path <path>] [\-a|\-\-autoload <path>] [\-c|\-\-conditional <func>] [\-\-pre <func>] [\-\-post <func>] [\-b|\-\-branch <branch>] <bundle> [<bundlefile>]
.SH "DESCRIPTION"
.sp
\fBantidote\-install\fP clones a new bundle and adds it to your plugins file.
.sp
The default bundle file is \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\fP. This can be overridden with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle\*(Aq file /path/to/my/bundle_file.txt
.fam
.fi
.if n .RE
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.TP
\-k, \-\-kind
The kind of bundle.
Valid values: autoload, fpath, path, clone, defer, zsh.
.TP
\-p, \-\-path
.RE
.sp
\fB\-k, \-\-kind <kind>\fP
.RS 4
The kind of bundle. Valid values: autoload, fpath, path, clone, defer, zsh.
.RE
.sp
\fB\-p, \-\-path <path>\fP
.RS 4
A relative subpath within the bundle where the plugin is located.
.TP
\-b, \-\-branch
.RE
.sp
\fB\-b, \-\-branch <branch>\fP
.RS 4
The git branch to use.
.TP
\-a, \-\-autoload
A relative subpath within the bundle where autoload function files are
located.
.TP
\-c, \-\-conditional
.RE
.sp
\fB\-a, \-\-autoload <path>\fP
.RS 4
A relative subpath within the bundle where autoload function files are located.
.RE
.sp
\fB\-c, \-\-conditional <func>\fP
.RS 4
A conditional function used to check whether to load the bundle.
.TP
\-\-pre
.RE
.sp
\fB\-\-pre <func>\fP
.RS 4
A function to be called prior to loading the bundle.
.TP
\-\-post
.RE
.sp
\fB\-\-post <func>\fP
.RS 4
A function to be called after loading the bundle.
.TP
<bundle>
.RE
.sp
\fB<bundle>\fP
.RS 4
Bundle to be installed.
.TP
[<bundlefile>]
Bundle file to write to if not using the default.
Defaults to \f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\f[R] or zstyle
setting.
.SH EXAMPLES
.PP
\ \ antidote install zsh\-users/zsh\-history\-substring\-search
.SH BUGS
.RE
.sp
\fB[<bundlefile>]\fP
.RS 4
Bundle file to write to if not using the default. Defaults to \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\fP or the \f(CRzstyle\fP setting.
.RE
.SH "EXAMPLES"
.sp
.if n .RS 4
.nf
.fam C
antidote install zsh\-users/zsh\-history\-substring\-search
.fam
.fi
.if n .RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,38 +1,89 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-list
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-list" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote list\f[R] \- list cloned bundles
.SH SYNOPSIS
.PP
antidote list [\-h|\-\-help] [\-s|\-\-short] [\-d|\-\-dirs]
[\-u|\-\-url]
.SH DESCRIPTION
\f[B]antidote\-list\f[R] lists the cloned bundles in \f[B]antidote
home\f[R].
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-LIST" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-list \- list cloned bundles
.SH "SYNOPSIS"
.sp
\fBantidote list\fP [\-h|\-\-help] [\-s|\-\-short] [\-d|\-\-dirs] [\-u|\-\-url]
.SH "DESCRIPTION"
.sp
\fBantidote\-list\fP lists the cloned bundles in \fBantidote home\fP.
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.TP
\-s, \-\-short
.RE
.sp
\fB\-s, \-\-short\fP
.RS 4
Show shortened repos where possible.
.TP
\-d, \-\-dirs
.RE
.sp
\fB\-d, \-\-dirs\fP
.RS 4
Show only bundle directories.
.TP
\-u, \-\-url
.RE
.sp
\fB\-u, \-\-url\fP
.RS 4
Show bundle URLs.
.SH BUGS
.RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,50 +1,104 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-load
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-load" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote load\f[R] \- statically source bundles
.SH SYNOPSIS
.PP
antidote load [<bundlefile> [<staticfile>]]
.SH DESCRIPTION
\f[B]antidote\-load\f[R] will turn the bundle file into a static load
file and then source it.
.PP
The default bundle file is
\f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\f[R].
This can be overridden with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[aq]:antidote:bundle\[aq] file /path/to/my/bundle_file.txt
.PP
The default static file is
\f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.zsh\f[R].
This can be overridden with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[aq]:antidote:static\[aq] file /path/to/my/static_file.zsh
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-LOAD" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-load \- statically source bundles
.SH "SYNOPSIS"
.sp
\fBantidote load\fP [<bundlefile> [<staticfile>]]
.SH "DESCRIPTION"
.sp
\fBantidote\-load\fP will turn the bundle file into a static load file and then source it.
.sp
The default bundle file is \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\fP. This can be overridden with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle\*(Aq file /path/to/my/bundle_file.txt
.fam
.fi
.if n .RE
.sp
The default static file is \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.zsh\fP. This can be overridden with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:static\*(Aq file /path/to/my/static_file.zsh
.fam
.fi
.if n .RE
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.TP
[<bundlefile>]
The plugins file to source if not using the default.
Defaults to \f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\f[R] or zstyle
setting.
.TP
[<staticfile>]
The static plugins file to generate if not using the default.
Defaults to \f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.zsh\f[R] or zstyle
setting.
.SH BUGS
.RE
.sp
\fB[<bundlefile>]\fP
.RS 4
The plugins file to source if not using the default. Defaults to \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\fP or the \f(CRzstyle\fP setting.
.RE
.sp
\fB[<staticfile>]\fP
.RS 4
The static plugins file to generate if not using the default. Defaults to \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.zsh\fP or the \f(CRzstyle\fP setting.
.RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,30 +1,79 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-path
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-path" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote path\f[R] \- print the path of a cloned bundle
.SH SYNOPSIS
.PP
antidote path <bundle>
.SH DESCRIPTION
\f[B]antidote\-path\f[R] prints the path of a cloned bundle.
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-PATH" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-path \- print the path of a cloned bundle
.SH "SYNOPSIS"
.sp
\fBantidote path\fP <bundle>
.SH "DESCRIPTION"
.sp
\fBantidote\-path\fP prints the path of a cloned bundle.
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.TP
[<bundle>]
.RE
.sp
\fB[<bundle>]\fP
.RS 4
The bundle whose cloned path will be printed.
.SH BUGS
.RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,36 +1,93 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-purge
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-purge" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote purge\f[R] \- remove a bundle
.SH SYNOPSIS
.PP
antidote purge <bundle>
.SH DESCRIPTION
\f[B]antidote\-purge\f[R] removes a cloned bundle.
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-PURGE" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-purge \- remove a bundle
.SH "SYNOPSIS"
.sp
\fBantidote purge\fP <bundle>
.SH "DESCRIPTION"
.sp
\fBantidote\-purge\fP removes a cloned bundle.
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.TP
\-a, \-\-all
.RE
.sp
\fB\-a, \-\-all\fP
.RS 4
Purge all cloned bundles.
.TP
<bundle>
.RE
.sp
\fB<bundle>\fP
.RS 4
Bundle to be purged.
.SH EXAMPLES
.PP
\ \ antidote purge zsh\-users/zsh\-history\-substring\-search
.SH BUGS
.RE
.SH "EXAMPLES"
.sp
.if n .RS 4
.nf
.fam C
antidote purge zsh\-users/zsh\-history\-substring\-search
.fam
.fi
.if n .RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,36 +1,93 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote-update
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote\-update" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote update\f[R] \- update bundles
.SH SYNOPSIS
.PP
antidote update [\-h|\-\-help] [\-s|\-\-self] [\-b|\-\-bundles]
.SH DESCRIPTION
\f[B]antidote\-update\f[R] updates antidote and its cloned bundles.
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE\-UPDATE" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote-update \- update bundles
.SH "SYNOPSIS"
.sp
\fBantidote update\fP [\-h|\-\-help] [\-s|\-\-self] [\-b|\-\-bundles]
.SH "DESCRIPTION"
.sp
\fBantidote\-update\fP updates antidote and its cloned bundles.
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show the help documentation.
.TP
\-s, \-\-self
.RE
.sp
\fB\-s, \-\-self\fP
.RS 4
Update antidote.
.TP
\-b, \-\-bundles
.RE
.sp
\fB\-b, \-\-bundles\fP
.RS 4
Update bundles.
.SH EXAMPLES
.PP
.RE
.SH "EXAMPLES"
.sp
.if n .RS 4
.nf
.fam C
antidote update
.SH BUGS
.fam
.fi
.if n .RE
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -1,265 +1,349 @@
.\" Automatically generated by Pandoc
'\" t
.\" Title: antidote
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.26
.\" Date: 2025-12-12
.\" Manual: Antidote Manual
.\" Source: antidote
.\" Language: English
.\"
.TH "antidote" "1" "" "" "Antidote Manual"
.SH NAME
\f[B]antidote\f[R] \- the cure to slow zsh plugin management
.SH SYNOPSIS
.PP
antidote [\-v | \[en]version] [\-h | \[en]help] <command> [<args> \&...]
.SH DESCRIPTION
\f[B]antidote\f[R] is a Zsh plugin manager made from the ground up
thinking about performance.
.PP
It is fast because it can do things concurrently, and generates an
ultra\-fast static plugin file that you can easily load from your Zsh
config.
.PP
It is written natively in Zsh, is well tested, and picks up where
Antigen and Antibody left off.
.SH OPTIONS
.TP
\-h, \-\-help
.TH "ANTIDOTE" "1" "2025-12-12" "antidote" "Antidote Manual"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
antidote \- the cure to slow zsh plugin management
.SH "SYNOPSIS"
.sp
\fBantidote\fP [\-v | \-\-version] [\-h | \-\-help] <command> [<args> .\|.\|.]
.SH "DESCRIPTION"
.sp
\fBantidote\fP is a Zsh plugin manager made from the ground up thinking about performance.
.sp
It is fast because it can do things concurrently, and generates an ultra\-fast static plugin file that you can easily load from your Zsh config.
.sp
It is written natively in Zsh, is well tested, and picks up where Antigen and Antibody left off.
.SH "OPTIONS"
.sp
\fB\-h, \-\-help\fP
.RS 4
Show context\-sensitive help for antidote.
.TP
\-v, \-\-version
.RE
.sp
\fB\-v, \-\-version\fP
.RS 4
Show currently installed antidote version.
.SH COMMANDS
.TP
\f[CR]help\f[R]
.RE
.SH "COMMANDS"
.sp
\fBhelp\fP
.RS 4
Show documentation
.TP
\f[CR]load\f[R]
.RE
.sp
\fBload\fP
.RS 4
Statically source all bundles from the plugins file
.TP
\f[CR]bundle\f[R]
.RE
.sp
\fBbundle\fP
.RS 4
Clone bundle(s) and generate the static load script
.TP
\f[CR]install\f[R]
.RE
.sp
\fBinstall\fP
.RS 4
Clone a new bundle and add it to your plugins file
.TP
\f[CR]update\f[R]
.RE
.sp
\fBupdate\fP
.RS 4
Update antidote and its cloned bundles
.TP
\f[CR]purge\f[R]
.RE
.sp
\fBpurge\fP
.RS 4
Remove a cloned bundle
.TP
\f[CR]home\f[R]
.RE
.sp
\fBhome\fP
.RS 4
Print where antidote is cloning bundles
.TP
\f[CR]list\f[R]
.RE
.sp
\fBlist\fP
.RS 4
List cloned bundles
.TP
\f[CR]path\f[R]
.RE
.sp
\fBpath\fP
.RS 4
Print the path of a cloned bundle
.TP
\f[CR]init\f[R]
.RE
.sp
\fBinit\fP
.RS 4
Initialize the shell for dynamic bundles
.SH EXAMPLES
.SS A Simple Config
Create a \f[I].zsh_plugins.txt\f[R] file with a list of the plugins you
want:
.PP
\ \ \ # ${ZDOTDIR:\-$HOME}/.zsh_plugins.txt
.PD 0
.P
.PD
\ \ \ zsh\-users/zsh\-syntax\-highlighting
.PD 0
.P
.PD
\ \ \ zsh\-users/zsh\-history\-substring\-search
.PD 0
.P
.PD
\ \ \ zsh\-users/zsh\-autosuggestions
.PP
Now, simply load your newly created static plugins file in your
\f[I].zshrc\f[R].
.PP
\ \ \ # ${ZDOTDIR:\-$HOME}/.zshrc
.PD 0
.P
.PD
\ \ \ source /path/to/antidote/antidote.zsh
.PD 0
.P
.PD
\ \ \ antidote load
.SS A More Advanced Config
Your \f[I].zsh_plugins.txt\f[R] file supports annotations.
Annotations tell antidote how to do things like load plugins from
alternate paths.
This lets you use plugins from popular frameworks like Oh\-My\-Zsh:
.PP
\ \ \ # ${ZDOTDIR:\-$HOME}/.zsh_plugins.txt
.PD 0
.P
.PD
\ \ \ ohmyzsh/ohmyzsh path:lib
.PD 0
.P
.PD
\ \ \ ohmyzsh/ohmyzsh path:plugins/git
.PD 0
.P
.PD
\ \ \ ohmyzsh/ohmyzsh path:plugins/magic\-enter
.PD 0
.P
.PD
\ \ \ etc\&...
.SS Dynamic Bundling
Users familiar with legacy plugin managers like Antigen might prefer to
use dynamic bundling.
With dynamic bundling you sacrifice some performance to avoid having
separate plugin files.
To use dynamic bundling, we need to change how \f[B]antidote bundle\f[R]
handles your plugins.
We do this by sourcing the output from \f[B]antidote init\f[R].
.PP
.RE
.SH "EXAMPLES"
.SS "A Simple Config"
.sp
Create a \f(CR.zsh_plugins.txt\fP file with a list of the plugins you want:
.sp
.if n .RS 4
.nf
.fam C
# ${ZDOTDIR:\-$HOME}/.zsh_plugins.txt
zsh\-users/zsh\-syntax\-highlighting
zsh\-users/zsh\-history\-substring\-search
zsh\-users/zsh\-autosuggestions
.fam
.fi
.if n .RE
.sp
Now, simply load your newly created static plugins file in your \f(CR.zshrc\fP.
.sp
.if n .RS 4
.nf
.fam C
# ${ZDOTDIR:\-$HOME}/.zshrc
source /path/to/antidote/antidote.zsh
antidote load
.fam
.fi
.if n .RE
.SS "A More Advanced Config"
.sp
Your \f(CR.zsh_plugins.txt\fP file supports annotations. Annotations tell antidote how to do things like load plugins from alternate paths. This lets you use plugins from popular frameworks like Oh\-My\-Zsh:
.sp
.if n .RS 4
.nf
.fam C
# ${ZDOTDIR:\-$HOME}/.zsh_plugins.txt
ohmyzsh/ohmyzsh path:lib
ohmyzsh/ohmyzsh path:plugins/git
ohmyzsh/ohmyzsh path:plugins/magic\-enter
etc...
.fam
.fi
.if n .RE
.SS "Dynamic Bundling"
.sp
Users familiar with legacy plugin managers like Antigen might prefer to use dynamic bundling. With dynamic bundling you sacrifice some performance to avoid having separate plugin files. To use dynamic bundling, we need to change how \fBantidote bundle\fP handles your plugins. We do this by sourcing the output from \fBantidote init\fP.
.sp
An example config might look like this:
.PP
\ \ \ source /path/to/antidote/antidote.zsh
.PD 0
.P
.PD
\ \ \ source <(antidote init)
.PD 0
.P
.PD
\ \ \ antidote bundle zsh\-users/zsh\-autosuggestions
.PD 0
.P
.PD
\ \ \ antidote bundle ohmyzsh/ohmyzsh path:lib
.PD 0
.P
.PD
\ \ \ antidote bundle ohmyzsh/ohmyzsh path:plugins/git
.PP
Instead of calling \f[B]antidote bundle\f[R] over and over, you might
prefer to load bundles with a HEREDOC.
.PP
\ \ \ source /path/to/antidote/antidote.zsh
.PD 0
.P
.PD
\ \ \ source <(antidote init)
.PD 0
.P
.PD
\ \ \ antidote bundle <<EOBUNDLES
.PD 0
.P
.PD
\ \ \ \ \ \ \ zsh\-users/zsh\-syntax\-highlighting # regular plugins
.PD 0
.P
.PD
\ \ \ \ \ \ \ ohmyzsh/ohmyzsh path:lib # directories
.PD 0
.P
.PD
\ \ \ \ \ \ \ ohmyzsh/ohmyzsh path:plugins/magic\-enter # frameworks
.PD 0
.P
.PD
\ \ \ \ \ \ \ https://github.com/zsh\-users/zsh\-history\-substring\-search
# URLs
.PD 0
.P
.PD
\ \ \ EOBUNDLES
.SS Installation
.sp
.if n .RS 4
.nf
.fam C
source /path/to/antidote/antidote.zsh
source <(antidote init)
antidote bundle zsh\-users/zsh\-autosuggestions
antidote bundle ohmyzsh/ohmyzsh path:lib
antidote bundle ohmyzsh/ohmyzsh path:plugins/git
.fam
.fi
.if n .RE
.sp
Instead of calling \fBantidote bundle\fP over and over, you might prefer to load bundles with a HEREDOC.
.sp
.if n .RS 4
.nf
.fam C
source /path/to/antidote/antidote.zsh
source <(antidote init)
antidote bundle <<EOBUNDLES
zsh\-users/zsh\-syntax\-highlighting\& # regular plugins
ohmyzsh/ohmyzsh path:lib\& # directories
ohmyzsh/ohmyzsh path:plugins/magic\-enter\& # frameworks
https://github.com/zsh\-users/zsh\-history\-substring\-search\& # URLs
EOBUNDLES
.fam
.fi
.if n .RE
.SS "Installation"
.sp
To install antidote you can clone it with git:
.PP
\ \ git clone \[en]depth=1 https://github.com/mattmc3/antidote.git
${ZDOTDIR:\-$HOME}/.antidote
.PP
Then, simply add the following snippet to your .zshrc:
.PP
\ \ source ${ZDOTDIR:\-$HOME}/.antidote/antidote.zsh
.PD 0
.P
.PD
\ \ antidote load
.SH CUSTOMIZATION
The location where antidote clones repositories can bu customized by
setting \f[B]$ANTIDOTE_HOME\f[R]:
.PP
\ \ ANTIDOTE_HOME=/path/to/my/repos
.PP
The bundle directory in ANTIDOTE_HOME can be changed to use friendly
names with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[aq]:antidote:bundle\[aq] use\-friendly\-names on
.PP
The default bundle file is
\f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\f[R].
This can be overridden with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[aq]:antidote:bundle\[aq] file /path/to/my/bundle_file.txt
.PP
The default static file is
\f[B]${ZDOTDIR:\-$HOME}/.zsh_plugins.zsh\f[R].
This can be overridden with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[aq]:antidote:static\[aq] file /path/to/my/static_file.zsh
.PP
The default options used by romkatv/zsh\-defer can be changed with the
following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[cq]:antidote:bundle:*\[cq] defer\-options `\-a'
.PD 0
.P
.PD
\ \ zstyle `:antidote:bundle:foo/bar' defer\-options `\-p'
.PP
Bundles can be Zsh compiled with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle \[cq]:antidote:bundle:*\[cq] zcompile `yes'
.PP
Or, if you only want to zcompile specific bundles, you can set those
individually:
.PP
\ \ zstyle \[cq]:antidote:bundle:*\[cq] zcompile `yes'
.PD 0
.P
.PD
\ \ zstyle `:antidote:bundle:zsh\-users/zsh\-syntax\-highlighting'
zcompile `no'
.PP
The static file can be Zsh compiled with the following \f[B]zstyle\f[R]:
.PP
\ \ zstyle `:antidote:static' zcompile `yes'
.PP
.sp
.if n .RS 4
.nf
.fam C
git clone \-\-depth=1 https://github.com/mattmc3/antidote.git ${ZDOTDIR:\-$HOME}/.antidote
.fam
.fi
.if n .RE
.sp
Then, simply add the following snippet to your \f(CR.zshrc\fP:
.sp
.if n .RS 4
.nf
.fam C
source ${ZDOTDIR:\-$HOME}/.antidote/antidote.zsh
antidote load
.fam
.fi
.if n .RE
.SH "CUSTOMIZATION"
.sp
The location where antidote clones repositories can be customized by setting \f(CR$ANTIDOTE_HOME\fP:
.sp
.if n .RS 4
.nf
.fam C
ANTIDOTE_HOME=/path/to/my/repos
.fam
.fi
.if n .RE
.sp
The bundle directory in ANTIDOTE_HOME can be changed to use friendly names with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle\*(Aq use\-friendly\-names on
.fam
.fi
.if n .RE
.sp
The default bundle file is \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.txt\fP. This can be overridden with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle\*(Aq file /path/to/my/bundle_file.txt
.fam
.fi
.if n .RE
.sp
The default static file is \f(CR${ZDOTDIR:\-$HOME}/.zsh_plugins.zsh\fP. This can be overridden with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:static\*(Aq file /path/to/my/static_file.zsh
.fam
.fi
.if n .RE
.sp
The default options used by romkatv/zsh\-defer can be changed with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle:*\*(Aq defer\-options \*(Aq\-a\*(Aq
zstyle \*(Aq:antidote:bundle:foo/bar\*(Aq defer\-options \*(Aq\-p\*(Aq
.fam
.fi
.if n .RE
.sp
Bundles can be Zsh compiled with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle:*\*(Aq zcompile \*(Aqyes\*(Aq
.fam
.fi
.if n .RE
.sp
Or, if you only want to zcompile specific bundles, you can set those individually:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:bundle:*\*(Aq zcompile \*(Aqyes\*(Aq
zstyle \*(Aq:antidote:bundle:zsh\-users/zsh\-syntax\-highlighting\*(Aq zcompile \*(Aqno\*(Aq
.fam
.fi
.if n .RE
.sp
The static file can be Zsh compiled with the following \f(CRzstyle\fP:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:static\*(Aq zcompile \*(Aqyes\*(Aq
.fam
.fi
.if n .RE
.sp
Or, to Zsh compile everything, static file and all bundles:
.PP
\ \ zstyle \[cq]:antidote:*\[cq] zcompile `yes'
.PP
By default, antidote appends to the end of your $fpath.
This is highly recommended, however if you really want to change that
behavior, there\[cq]s a zstyle for that:
.PP
\ \ zstyle `:antidote:fpath' rule `prepend'
.PP
By default, antidote uses romkatv/zsh\-defer for deferred plugins.
If there\[cq]s a fork you\[cq]d prefer to use, you can specify that with
this zstyle:
.PP
\ \ zstyle `:antidote:defer' bundle `getantidote/zsh\-defer'
.SH SEE ALSO
For more information, visit https://antidote.sh
.SH BUGS
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:*\*(Aq zcompile \*(Aqyes\*(Aq
.fam
.fi
.if n .RE
.sp
By default, antidote appends to the end of your \f(CR$fpath\fP. This is highly recommended, however if you really want to change that behavior, there\(cqs a zstyle for that:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:fpath\*(Aq rule \*(Aqprepend\*(Aq
.fam
.fi
.if n .RE
.sp
By default, antidote uses romkatv/zsh\-defer for deferred plugins. If there\(cqs a fork you\(cqd prefer to use, you can specify that with this zstyle:
.sp
.if n .RS 4
.nf
.fam C
zstyle \*(Aq:antidote:defer\*(Aq bundle \*(Aqgetantidote/zsh\-defer\*(Aq
.fam
.fi
.if n .RE
.SH "SEE ALSO"
.sp
For more information, visit \c
.URL "https://antidote.sh" "" ""
.SH "BUGS"
.sp
See GitHub Issues: \c
.UR https://github.com/mattmc3/antidote/issues
.UE \c
.SH AUTHORS
.IP \[bu] 2
Copyright (c) 2021\-2024 Matt McElheny
.IP \[bu] 2
.URL "https://github.com/mattmc3/antidote/issues" "" ""
.SH "AUTHORS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
Copyright (c) 2021\-2026 Matt McElheny
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
. sp -1
. IP \(bu 2.3
.\}
antidote contributors: \c
.UR https://github.com/mattmc3/antidote/graphs/contributors
.UE \c
.SH LICENSE
MIT
.URL "https://github.com/mattmc3/antidote/graphs/contributors" "" ""
.RE
.SH "LICENSE"
.sp
MIT

View File

@ -59,7 +59,7 @@ The `-v/--version` flag displays the current version:
```zsh
% antidote --version
antidote version 1.9.10 (abcd123)
antidote version 1.9.11 (abcd123)
%
```

View File

@ -14,7 +14,7 @@ Show antidote's version:
```zsh
% antidote --version
antidote version 1.9.10 (abcd123)
antidote version 1.9.11 (abcd123)
%
```
@ -304,7 +304,7 @@ Bundle updates complete.
Updating antidote...
antidote self-update complete.
antidote version 1.9.10 (abcd123)
antidote version 1.9.11 (abcd123)
%
```

View File

@ -81,7 +81,7 @@ No arg exit status is 2:
```zsh
% antidote --version
antidote version 1.9.10 (abcd123)
antidote version 1.9.11 (abcd123)
% antidote -v >/dev/null; echo $?
0
% antidote --version >/dev/null; echo $?

View File

@ -32,7 +32,7 @@
```zsh
% PAGER=cat man antidote | head -n 1 | sed 's/ */ /g'
antidote(1) Antidote Manual antidote(1)
ANTIDOTE(1) Antidote Manual ANTIDOTE(1)
%
```
@ -46,11 +46,11 @@ antidote(1) Antidote Manual antidote(1)
```zsh
% antidote help bundle | head -n 1 | sed 's/ */ /g'
antidote-bundle(1) Antidote Manual antidote-bundle(1)
ANTIDOTE-BUNDLE(1) Antidote Manual ANTIDOTE-BUNDLE(1)
% antidote bundle --help | head -n 1 | sed 's/ */ /g'
antidote-bundle(1) Antidote Manual antidote-bundle(1)
ANTIDOTE-BUNDLE(1) Antidote Manual ANTIDOTE-BUNDLE(1)
% antidote bundle -h | head -n 1 | sed 's/ */ /g'
antidote-bundle(1) Antidote Manual antidote-bundle(1)
ANTIDOTE-BUNDLE(1) Antidote Manual ANTIDOTE-BUNDLE(1)
%
```
@ -58,11 +58,11 @@ antidote-bundle(1) Antidote Manual antidote-bundle(1)
```zsh
% antidote help help | head -n 1 | sed 's/ */ /g'
antidote-help(1) Antidote Manual antidote-help(1)
ANTIDOTE-HELP(1) Antidote Manual ANTIDOTE-HELP(1)
% antidote help --help | head -n 1 | sed 's/ */ /g'
antidote-help(1) Antidote Manual antidote-help(1)
ANTIDOTE-HELP(1) Antidote Manual ANTIDOTE-HELP(1)
% antidote help -h | head -n 1 | sed 's/ */ /g'
antidote-help(1) Antidote Manual antidote-help(1)
ANTIDOTE-HELP(1) Antidote Manual ANTIDOTE-HELP(1)
%
```
@ -70,11 +70,11 @@ antidote-help(1) Antidote Manual antidote-help(1)
```zsh
% antidote help home | head -n 1 | sed 's/ */ /g'
antidote-home(1) Antidote Manual antidote-home(1)
ANTIDOTE-HOME(1) Antidote Manual ANTIDOTE-HOME(1)
% antidote home --help | head -n 1 | sed 's/ */ /g'
antidote-home(1) Antidote Manual antidote-home(1)
ANTIDOTE-HOME(1) Antidote Manual ANTIDOTE-HOME(1)
% antidote home -h | head -n 1 | sed 's/ */ /g'
antidote-home(1) Antidote Manual antidote-home(1)
ANTIDOTE-HOME(1) Antidote Manual ANTIDOTE-HOME(1)
%
```
@ -82,11 +82,11 @@ antidote-home(1) Antidote Manual antidote-home(1)
```zsh
% antidote help init | head -n 1 | sed 's/ */ /g'
antidote-init(1) Antidote Manual antidote-init(1)
ANTIDOTE-INIT(1) Antidote Manual ANTIDOTE-INIT(1)
% antidote init --help | head -n 1 | sed 's/ */ /g'
antidote-init(1) Antidote Manual antidote-init(1)
ANTIDOTE-INIT(1) Antidote Manual ANTIDOTE-INIT(1)
% antidote init -h | head -n 1 | sed 's/ */ /g'
antidote-init(1) Antidote Manual antidote-init(1)
ANTIDOTE-INIT(1) Antidote Manual ANTIDOTE-INIT(1)
%
```
@ -94,11 +94,11 @@ antidote-init(1) Antidote Manual antidote-init(1)
```zsh
% antidote help install | head -n 1 | sed 's/ */ /g'
antidote-install(1) Antidote Manual antidote-install(1)
ANTIDOTE-INSTALL(1) Antidote Manual ANTIDOTE-INSTALL(1)
% antidote install --help | head -n 1 | sed 's/ */ /g'
antidote-install(1) Antidote Manual antidote-install(1)
ANTIDOTE-INSTALL(1) Antidote Manual ANTIDOTE-INSTALL(1)
% antidote install -h | head -n 1 | sed 's/ */ /g'
antidote-install(1) Antidote Manual antidote-install(1)
ANTIDOTE-INSTALL(1) Antidote Manual ANTIDOTE-INSTALL(1)
%
```
@ -106,11 +106,11 @@ antidote-install(1) Antidote Manual antidote-install(1)
```zsh
% antidote help list | head -n 1 | sed 's/ */ /g'
antidote-list(1) Antidote Manual antidote-list(1)
ANTIDOTE-LIST(1) Antidote Manual ANTIDOTE-LIST(1)
% antidote list --help | head -n 1 | sed 's/ */ /g'
antidote-list(1) Antidote Manual antidote-list(1)
ANTIDOTE-LIST(1) Antidote Manual ANTIDOTE-LIST(1)
% antidote list -h | head -n 1 | sed 's/ */ /g'
antidote-list(1) Antidote Manual antidote-list(1)
ANTIDOTE-LIST(1) Antidote Manual ANTIDOTE-LIST(1)
%
```
@ -118,11 +118,11 @@ antidote-list(1) Antidote Manual antidote-list(1)
```zsh
% antidote help load | head -n 1 | sed 's/ */ /g'
antidote-load(1) Antidote Manual antidote-load(1)
ANTIDOTE-LOAD(1) Antidote Manual ANTIDOTE-LOAD(1)
% antidote load --help | head -n 1 | sed 's/ */ /g'
antidote-load(1) Antidote Manual antidote-load(1)
ANTIDOTE-LOAD(1) Antidote Manual ANTIDOTE-LOAD(1)
% antidote load -h | head -n 1 | sed 's/ */ /g'
antidote-load(1) Antidote Manual antidote-load(1)
ANTIDOTE-LOAD(1) Antidote Manual ANTIDOTE-LOAD(1)
%
```
@ -130,11 +130,11 @@ antidote-load(1) Antidote Manual antidote-load(1)
```zsh
% antidote help path | head -n 1 | sed 's/ */ /g'
antidote-path(1) Antidote Manual antidote-path(1)
ANTIDOTE-PATH(1) Antidote Manual ANTIDOTE-PATH(1)
% antidote path --help | head -n 1 | sed 's/ */ /g'
antidote-path(1) Antidote Manual antidote-path(1)
ANTIDOTE-PATH(1) Antidote Manual ANTIDOTE-PATH(1)
% antidote path -h | head -n 1 | sed 's/ */ /g'
antidote-path(1) Antidote Manual antidote-path(1)
ANTIDOTE-PATH(1) Antidote Manual ANTIDOTE-PATH(1)
%
```
@ -142,11 +142,11 @@ antidote-path(1) Antidote Manual antidote-path(1)
```zsh
% antidote help update | head -n 1 | sed 's/ */ /g'
antidote-update(1) Antidote Manual antidote-update(1)
ANTIDOTE-UPDATE(1) Antidote Manual ANTIDOTE-UPDATE(1)
% antidote update --help | head -n 1 | sed 's/ */ /g'
antidote-update(1) Antidote Manual antidote-update(1)
ANTIDOTE-UPDATE(1) Antidote Manual ANTIDOTE-UPDATE(1)
% antidote update -h | head -n 1 | sed 's/ */ /g'
antidote-update(1) Antidote Manual antidote-update(1)
ANTIDOTE-UPDATE(1) Antidote Manual ANTIDOTE-UPDATE(1)
%
```

View File

@ -25,7 +25,7 @@ Bundle updates complete.
Updating antidote...
antidote self-update complete.
antidote version 1.9.10 (abcd123)
antidote version 1.9.11 (abcd123)
%
```

View File

@ -1,36 +1,42 @@
#!/usr/bin/env zsh
#!/bin/sh
# https://pandoc.org/demo/pandoc.1.md
# https://eddieantonio.ca/blog/2015/12/18/authoring-manpages-in-markdown-with-pandoc/
# https://jeromebelleman.gitlab.io/posts/publishing/manpages/
# https://docs.asciidoctor.org/asciidoctor/latest/manpage/
# https://mookid.github.io/manpages-asciidoc/
0=${(%):-%x}
BASEDIR=${0:a:h:h}
TMPDIR=$BASEDIR/.tmp/buildman
[[ -d $TMPDIR ]] && command rm -rf $TMPDIR
mkdir -p $TMPDIR
SCRIPT_DIR="$(cd -- "$(dirname -- "$0")" && pwd)"
BASEDIR="$(cd "$SCRIPT_DIR/.." && pwd)"
TMPDIR="$BASEDIR/.tmp/buildman"
sedi() {
sed --version &> /dev/null && sed -i -- "$@" || sed -i "" "$@"
}
if [ -d "$TMPDIR" ]; then
rm -rf "$TMPDIR"
fi
mkdir -p "$TMPDIR"
for manpage in $BASEDIR/man/*.md; do
case ${manpage:t:r} in
if ! command -v "asciidoctor" >/dev/null 2>&1; then
printf "Missing command %s (required for manpage builds).\n" "asciidoctor" >&2
exit 1
fi
for manpage in "$BASEDIR"/man/*.adoc; do
[ -e "$manpage" ] || continue
manpage_name="$(basename "$manpage")"
manpage_name="${manpage_name%.adoc}"
case "$manpage_name" in
footer|example) continue ;;
esac
print "Building ${manpage:t:r} manpage..."
[[ -d $BASEDIR/man/man1 ]] || mkdir -p $BASEDIR/man/man1
mdfile=$TMPDIR/${manpage:t}.md
cat ${manpage} > $mdfile
print "" >> $mdfile
cat $BASEDIR/man/footer.md >> $mdfile
printf "Building %s manpage...\n" "$manpage_name"
mkdir -p "$BASEDIR/man/man1"
manfile=$BASEDIR/man/man1/${manpage:t:r}.1
pandoc --standalone --to man ${mdfile} -o $manfile
manfile="$BASEDIR/man/man1/$manpage_name.1"
adocfile="$TMPDIR/$manpage_name.adoc"
# strip pandoc version so that every manpage build doesn't need to
# result in a new commit just b/c pandoc has a minor point release.
pandoc_ver=$(pandoc -v | awk 'NR==1{print $2}')
sedi "s/Pandoc $pandoc_ver/Pandoc/g" $manfile
cp "$manpage" "$adocfile"
if [ -f "$BASEDIR/man/footer.adoc" ]; then
printf "\n" >> "$adocfile"
cat "$BASEDIR/man/footer.adoc" >> "$adocfile"
fi
asciidoctor --quiet -b manpage -d manpage -o "$manfile" "$adocfile"
done