Mercurial > irccd
view doc/src/format.md @ 817:ebe561276c33
doc: start reworking, continue #752 @8h
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 19 Nov 2018 07:04:42 +0100 |
parents | |
children |
line wrap: on
line source
Plugins can be configured using a powerful template syntax, this allows editing the plugin messages to override them. The syntax is `?{}` where `?` is replaced by one of the token defined below. Braces are mandatory and cannot be ommited. To write a literal template construct, prepend the token twice. The following templates are available: - `%`, date and time (see Time section), - `#{name}`, name will be substituted from the keywords (see Keywords section), - `${name}`, name will be substituted from the environment variable (see Environment variables), - `@{attributes}`, the attributes will be substituted to IRC colors (see Attributes). # Time When you can use patterns, the date and time may be used just like `strftime(3)` so for the hours and minutes, you can use **%H:%M**. # Environment variables If supported, you can use environment variables like **${HOME}**. Please note that braces are mandatory. # IRC attributes The attribute format is composed of three parts, foreground, background and modifiers, each separated by a comma. note: attributes and colors are not supported by all IRC clients. warning: do not use colors and attributes outside IRC (e.g. for storing text in files) because escape codes are only valid in IRC context. ## Available colors - white, - black, - blue, - green, - red, - brown, - purple, - orange, - yellow, - lightgreen, - cyan, - lightcyan, - lightblue, - pink, - grey, - lightgrey. ## Available attributes - bold, - italic, - strike, - reset, - underline, - underline2, - reverse. # Shell attributes Like IRC attributes, it's possible to specify colors and attributes in some places such as logger configuration. Warning: colors are not supported on all platforms. ## Available colors - black, - red, - green, - orange, - blue, - purple, - cyan, - white, - default. ## Available attributes - bold, - dim, - underline, - blink, - reverse, - hidden. # Keywords Keywords are arbitrary names that are replaced depending on the context. They are usually available to configure plugins. ## Predefined keywords Here's the list of keywords that a lot of plugins uses: - #{channel}, the channel name, - #{command}, the command to invoke the plugin, e.g. `!ask`, - #{message}, a message (depending on context), - #{origin}, the full user, e.g. `markand!~mkd@localhost`, - #{nickname}, the short nickname, - #{plugin}, the plugin name, - #{server}, the current server name, - #{topic}, the topic, - #{target}, a target, e.g. a person who gets kicked. warning: these keywords can be overriden by plugins. # Examples Valid constructs: - `\#{target}, welcome`: if target is set to "irccd", becomes "irccd, welcome", - `@{red}#{target}`: if target is specified, it is written in red. Invalid or literals constructs: - `\#{target}`: will output "#{target}", - `##`: will output "##", - `#target`: will output "#target", - `#{target`: will throw an error. Colors & attributes: - `@{red,blue}`: will write text red on blue background, - `@{default,yellow}`: will write default color text on yellow background, - `@{white,black,bold,underline}`: will write white text on black in both bold and underline. Using the logger plugin: For instance, using the **logger** plugin, it's possible to customize the pattern to use when someone joins a channel like that: #{origin} joined #{channel} The keyword **#{origin}** will be substituted to the nickname and **#{channel}** to the channel name.