mirror of
https://github.com/evennia/evennia.git
synced 2026-04-01 21:47:17 +02:00
Add missing color-markup module to git
This commit is contained in:
parent
7b3af2a89b
commit
85d0db6dd6
1 changed files with 238 additions and 0 deletions
238
evennia/contrib/color_markups.py
Normal file
238
evennia/contrib/color_markups.py
Normal file
|
|
@ -0,0 +1,238 @@
|
|||
"""
|
||||
Color markups
|
||||
|
||||
Contribution, Griatch 2017
|
||||
|
||||
Additional color markup styles for Evennia (extending or replacing the default |r, |234 etc).
|
||||
|
||||
|
||||
Installation:
|
||||
|
||||
Import the desired style variables from this module into mygame/server/conf/settings.py and add them
|
||||
to these settings variables. Each are specified as a list, and multiple such lists can be added to
|
||||
each variable to support multiple formats. Note that list order affects which regexes are applied
|
||||
first. You must restart both Portal and Server for color tags to update.
|
||||
|
||||
Assign to the following settings variables:
|
||||
|
||||
COLOR_ANSI_EXTRA_MAP - a mapping between regexes and ANSI colors
|
||||
COLOR_XTERM256_EXTRA_FG - regex for defining XTERM256 foreground colors
|
||||
COLOR_XTERM256_EXTRA_BG - regex for defining XTERM256 background colors
|
||||
COLOR_XTERM256_EXTRA_GFG - regex for defining XTERM256 grayscale foreground colors
|
||||
COLOR_XTERM256_EXTRA_GBG - regex for defining XTERM256 grayscale background colors
|
||||
COLOR_ANSI_BRIGHT_BG_EXTRA_MAP = ANSI does not support bright backgrounds; we fake
|
||||
this by mapping ANSI markup to matching bright XTERM256 backgrounds
|
||||
|
||||
COLOR_NO_DEFAULT - Set True/False. If False (default), extend the default markup, otherwise
|
||||
replace it completely.
|
||||
|
||||
|
||||
To add the {- "curly-bracket" style, add the following to your settings file, then reboot both
|
||||
Server and Portal:
|
||||
|
||||
from evennia.contrib import color_markups
|
||||
COLOR_ANSI_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_EXTRA_MAP
|
||||
COLOR_XTERM256_EXTRA_FG = color_markups.CURLY_COLOR_XTERM256_EXTRA_FG
|
||||
COLOR_XTERM256_EXTRA_BG = color_markups.CURLY_COLOR_XTERM256_EXTRA_BG
|
||||
COLOR_XTERM256_EXTRA_GFG = color_markups.CURLY_COLOR_XTERM256_EXTRA_GFG
|
||||
COLOR_XTERM256_EXTRA_GBG = color_markups.CURLY_COLOR_XTERM256_EXTRA_GBG
|
||||
COLOR_ANSI_BRIGHT_BG_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BG_EXTRA_MAP
|
||||
|
||||
|
||||
To add the %c- "mux/mush" style, add the following to your settings file, then reboot both Server
|
||||
and Portal:
|
||||
|
||||
from evennia.contrib import color_markups
|
||||
COLOR_ANSI_EXTRA_MAP = color_markups.MUX_COLOR_ANSI_EXTRA_MAP
|
||||
COLOR_XTERM256_EXTRA_FG = color_markups.MUX_COLOR_XTERM256_EXTRA_FG
|
||||
COLOR_XTERM256_EXTRA_BG = color_markups.MUX_COLOR_XTERM256_EXTRA_BG
|
||||
COLOR_XTERM256_EXTRA_GFG = color_markups.MUX_COLOR_XTERM256_EXTRA_GFG
|
||||
COLOR_XTERM256_EXTRA_GBG = color_markups.MUX_COLOR_XTERM256_EXTRA_GBG
|
||||
COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP = color_markups.CURLY_COLOR_ANSI_BRIGHT_BGS_EXTRA_MAP
|
||||
|
||||
|
||||
"""
|
||||
|
||||
# ANSI constants (copied from evennia.utils.ansi to avoid import)
|
||||
|
||||
_ANSI_BEEP = "\07"
|
||||
_ANSI_ESCAPE = "\033"
|
||||
_ANSI_NORMAL = "\033[0m"
|
||||
|
||||
_ANSI_UNDERLINE = "\033[4m"
|
||||
_ANSI_HILITE = "\033[1m"
|
||||
_ANSI_UNHILITE = "\033[22m"
|
||||
_ANSI_BLINK = "\033[5m"
|
||||
_ANSI_INVERSE = "\033[7m"
|
||||
_ANSI_INV_HILITE = "\033[1;7m"
|
||||
_ANSI_INV_BLINK = "\033[7;5m"
|
||||
_ANSI_BLINK_HILITE = "\033[1;5m"
|
||||
_ANSI_INV_BLINK_HILITE = "\033[1;5;7m"
|
||||
|
||||
# Foreground colors
|
||||
_ANSI_BLACK = "\033[30m"
|
||||
_ANSI_RED = "\033[31m"
|
||||
_ANSI_GREEN = "\033[32m"
|
||||
_ANSI_YELLOW = "\033[33m"
|
||||
_ANSI_BLUE = "\033[34m"
|
||||
_ANSI_MAGENTA = "\033[35m"
|
||||
_ANSI_CYAN = "\033[36m"
|
||||
_ANSI_WHITE = "\033[37m"
|
||||
|
||||
# Background colors
|
||||
_ANSI_BACK_BLACK = "\033[40m"
|
||||
_ANSI_BACK_RED = "\033[41m"
|
||||
_ANSI_BACK_GREEN = "\033[42m"
|
||||
_ANSI_BACK_YELLOW = "\033[43m"
|
||||
_ANSI_BACK_BLUE = "\033[44m"
|
||||
_ANSI_BACK_MAGENTA = "\033[45m"
|
||||
_ANSI_BACK_CYAN = "\033[46m"
|
||||
_ANSI_BACK_WHITE = "\033[47m"
|
||||
|
||||
# Formatting Characters
|
||||
_ANSI_RETURN = "\r\n"
|
||||
_ANSI_TAB = "\t"
|
||||
_ANSI_SPACE = " "
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# {- style MUD markup (old Evennia default). This is
|
||||
# basically identical to the default |-style except using
|
||||
# a curly bracket instead. This was removed because {}
|
||||
# are used in Python string formatting.
|
||||
#
|
||||
# {r, {R - bright/dark red foreground
|
||||
# {[r, {[R - bright/dark red background
|
||||
# {500, {[500 - XTERM256 red foreground/background
|
||||
# {=w, {[=w - XTERM256 greyscale foreground/background
|
||||
#
|
||||
#############################################################
|
||||
|
||||
CURLY_COLOR_ANSI_EXTRA_MAP = [
|
||||
(r'{n', _ANSI_NORMAL), # reset
|
||||
(r'{/', _ANSI_RETURN), # line break
|
||||
(r'{-', _ANSI_TAB), # tab
|
||||
(r'{_', _ANSI_SPACE), # space
|
||||
(r'{*', _ANSI_INVERSE), # invert
|
||||
(r'{^', _ANSI_BLINK), # blinking text (very annoying and not supported by all clients)
|
||||
(r'{u', _ANSI_UNDERLINE), # underline
|
||||
|
||||
(r'{r', _ANSI_HILITE + _ANSI_RED),
|
||||
(r'{g', _ANSI_HILITE + _ANSI_GREEN),
|
||||
(r'{y', _ANSI_HILITE + _ANSI_YELLOW),
|
||||
(r'{b', _ANSI_HILITE + _ANSI_BLUE),
|
||||
(r'{m', _ANSI_HILITE + _ANSI_MAGENTA),
|
||||
(r'{c', _ANSI_HILITE + _ANSI_CYAN),
|
||||
(r'{w', _ANSI_HILITE + _ANSI_WHITE), # pure white
|
||||
(r'{x', _ANSI_HILITE + _ANSI_BLACK), # dark grey
|
||||
|
||||
(r'{R', _ANSI_HILITE + _ANSI_RED),
|
||||
(r'{G', _ANSI_HILITE + _ANSI_GREEN),
|
||||
(r'{Y', _ANSI_HILITE + _ANSI_YELLOW),
|
||||
(r'{B', _ANSI_HILITE + _ANSI_BLUE),
|
||||
(r'{M', _ANSI_HILITE + _ANSI_MAGENTA),
|
||||
(r'{C', _ANSI_HILITE + _ANSI_CYAN),
|
||||
(r'{W', _ANSI_HILITE + _ANSI_WHITE), # light grey
|
||||
(r'{X', _ANSI_HILITE + _ANSI_BLACK), # pure black
|
||||
|
||||
# hilight-able colors
|
||||
(r'{h', _ANSI_HILITE),
|
||||
(r'{H', _ANSI_UNHILITE),
|
||||
|
||||
(r'{!R', _ANSI_RED),
|
||||
(r'{!G', _ANSI_GREEN),
|
||||
(r'{!Y', _ANSI_YELLOW),
|
||||
(r'{!B', _ANSI_BLUE),
|
||||
(r'{!M', _ANSI_MAGENTA),
|
||||
(r'{!C', _ANSI_CYAN),
|
||||
(r'{!W', _ANSI_WHITE), # light grey
|
||||
(r'{!X', _ANSI_BLACK), # pure black
|
||||
|
||||
# normal ANSI backgrounds
|
||||
(r'{[R', _ANSI_BACK_RED),
|
||||
(r'{[G', _ANSI_BACK_GREEN),
|
||||
(r'{[Y', _ANSI_BACK_YELLOW),
|
||||
(r'{[B', _ANSI_BACK_BLUE),
|
||||
(r'{[M', _ANSI_BACK_MAGENTA),
|
||||
(r'{[C', _ANSI_BACK_CYAN),
|
||||
(r'{[W', _ANSI_BACK_WHITE), # light grey background
|
||||
(r'{[X', _ANSI_BACK_BLACK), # pure black background
|
||||
]
|
||||
|
||||
CURLY_COLOR_XTERM256_EXTRA_FG = [r'\{([0-5])([0-5])([0-5])'] # |123 - foreground colour
|
||||
CURLY_COLOR_XTERM256_EXTRA_BG = [r'\{\[([0-5])([0-5])([0-5])'] # |[123 - background colour
|
||||
CURLY_COLOR_XTERM256_EXTRA_GFG = [r'\{=([a-z])'] # |=a - greyscale foreground
|
||||
CURLY_COLOR_XTERM256_EXTRA_GBG = [r'\{\[=([a-z])'] # |[=a - greyscale background
|
||||
|
||||
CURLY_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP = [
|
||||
(r'{[r', r'{[500'),
|
||||
(r'{[g', r'{[050'),
|
||||
(r'{[y', r'{[550'),
|
||||
(r'{[b', r'{[005'),
|
||||
(r'{[m', r'{[505'),
|
||||
(r'{[c', r'{[055'),
|
||||
(r'{[w', r'{[555'), # white background
|
||||
(r'{[x', r'{[222'), # dark grey background
|
||||
]
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# %c - MUX/MUSH style markup. This was Evennia's first
|
||||
# color markup style. It was phased out due to % being used
|
||||
# in Python formatting operations.
|
||||
#
|
||||
# %ch%cr, %cr - bright/dark red foreground
|
||||
# %ch%cR, %cR- bright/dark red background
|
||||
# %c500, %c[500 - XTERM256 red foreground/background
|
||||
# %c=w, %c[=w - XTERM256 greyscale foreground/background
|
||||
#
|
||||
#############################################################
|
||||
|
||||
MUX_COLOR_ANSI_EXTRA_MAP = [
|
||||
(r'%cn', _ANSI_NORMAL), # reset
|
||||
(r'%ch', _ANSI_HILITE), # highlight
|
||||
(r'%r', _ANSI_RETURN), # line break
|
||||
(r'%R', _ANSI_RETURN), #
|
||||
(r'%t', _ANSI_TAB), # tab
|
||||
(r'%T', _ANSI_TAB), #
|
||||
(r'%b', _ANSI_SPACE), # space
|
||||
(r'%B', _ANSI_SPACE),
|
||||
(r'%cf', _ANSI_BLINK), # annoying and not supported by all clients
|
||||
(r'%ci', _ANSI_INVERSE), # invert
|
||||
|
||||
(r'%cr', _ANSI_RED),
|
||||
(r'%cg', _ANSI_GREEN),
|
||||
(r'%cy', _ANSI_YELLOW),
|
||||
(r'%cb', _ANSI_BLUE),
|
||||
(r'%cm', _ANSI_MAGENTA),
|
||||
(r'%cc', _ANSI_CYAN),
|
||||
(r'%cw', _ANSI_WHITE),
|
||||
(r'%cx', _ANSI_BLACK),
|
||||
|
||||
(r'%cR', _ANSI_BACK_RED),
|
||||
(r'%cG', _ANSI_BACK_GREEN),
|
||||
(r'%cY', _ANSI_BACK_YELLOW),
|
||||
(r'%cB', _ANSI_BACK_BLUE),
|
||||
(r'%cM', _ANSI_BACK_MAGENTA),
|
||||
(r'%cC', _ANSI_BACK_CYAN),
|
||||
(r'%cW', _ANSI_BACK_WHITE),
|
||||
(r'%cX', _ANSI_BACK_BLACK)
|
||||
]
|
||||
|
||||
MUX_COLOR_XTERM256_EXTRA_FG = [r'%c([0-5])([0-5])([0-5])'] # %c123 - foreground colour
|
||||
MUX_COLOR_XTERM256_EXTRA_BG = [r'%c\[([0-5])([0-5])([0-5])'] # %c[123 - background colour
|
||||
MUX_COLOR_XTERM256_EXTRA_GFG = [r'%c=([a-z])'] # %c=a - greyscale foreground
|
||||
MUX_COLOR_XTERM256_EXTRA_GBG = [r'%c\[=([a-z])'] # %c[=a - greyscale background
|
||||
|
||||
MUX_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP = [
|
||||
(r'%ch%cR', r'%c[500'),
|
||||
(r'%ch%cG', r'%c[050'),
|
||||
(r'%ch%cY', r'%c[550'),
|
||||
(r'%ch%cB', r'%c[005'),
|
||||
(r'%ch%cM', r'%c[505'),
|
||||
(r'%ch%cC', r'%c[055'),
|
||||
(r'%ch%cW', r'%c[555'), # white background
|
||||
(r'%ch%cX', r'%c[222'), # dark grey background
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue