Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Intital commit of Trac EntityMacro

  • Loading branch information...
commit a84b4489752448b4b250a81a6171306206859da6 0 parents
@dwclifton authored
57 0.11/README
@@ -0,0 +1,57 @@
+= !EntityMacro =
+
+== Description ==
+
+The !EntityMacro package returns HTML 4.01 numeric character entity references
+from their corresponding names.
+
+The character entity data is straight out of the DTD for HTML 4.01 so if there
+are errors or ommissions you can blame it on the W3C, not me. ;-)
+
+See: [http://www.w3.org/TR/1999/REC-html401-19991224/sgml/entities.html Character entity references in HTML 4]
+
+for more information.
+
+Calling the macro like so: `[[Entity(name)]]`, it returns the value. If no name
+matches, it returns an empty string. Names are case-sensitive, in other words,
+`aacute` is not the same code point as `Aacute`. Keyword syntax is also supported:
+`[[Entity(name=name)]]`.
+
+The macro is useful in any [WikiFormatting wiki formatted] page.
+
+== Installation ==
+
+{{{
+python setup.py bdist_egg
+cp dist/*.egg /trac/env/Project/plugins
+}}}
+
+== Configuration ==
+
+Enable the macro in:
+
+/trac/env/Project/conf/trac.ini:
+
+{{{
+[components]
+entity.* = enabled
+}}}
+
+You may have to restart you Web server.
+
+== Examples ==
+
+{{{
+[[Entity(raquo)]]
+[[Entity(name=raquo)]]
+}}}
+
+Both of these examples will return `»`.
+
+== Source ==
+
+ * Browse the source at: [http://github.com/dwclifton/tracentitymacro/tree/master GitHub].
+ * Public clone URL:
+{{{
+git clone git://github.com/dwclifton/tracentitymacro.git
+}}}
2  0.11/entity/__init__.py
@@ -0,0 +1,2 @@
+# __init__.py
+from entity import *
262 0.11/entity/entity.py
@@ -0,0 +1,262 @@
+""" Character entity data -- these are straight out of the DTD for HTML 4.01
+ so if there are errors or ommissions you can blame it on the W3C, not me.
+
+ See: http://www.w3.org/TR/1999/REC-html401-19991224/sgml/entities.html
+
+ for more information.
+"""
+
+entity = {
+ 'quot': 34,
+ 'amp': 38,
+ 'lt': 60,
+ 'gt': 62,
+ 'nbsp': 160,
+ 'iexcl': 161,
+ 'cent': 162,
+ 'pound': 163,
+ 'curren': 164,
+ 'yen': 165,
+ 'brvbar': 166,
+ 'sect': 167,
+ 'uml': 168,
+ 'copy': 169,
+ 'ordf': 170,
+ 'laquo': 171,
+ 'not': 172,
+ 'shy': 173,
+ 'reg': 174,
+ 'macr': 175,
+ 'deg': 176,
+ 'plusmn': 177,
+ 'sup2': 178,
+ 'sup3': 179,
+ 'acute': 180,
+ 'micro': 181,
+ 'para': 182,
+ 'middot': 183,
+ 'cedil': 184,
+ 'sup1': 185,
+ 'ordm': 186,
+ 'raquo': 187,
+ 'frac14': 188,
+ 'frac12': 189,
+ 'frac34': 190,
+ 'iquest': 191,
+ 'Agrave': 192,
+ 'Aacute': 193,
+ 'Acirc': 194,
+ 'Atilde': 195,
+ 'Auml': 196,
+ 'Aring': 197,
+ 'AElig': 198,
+ 'Ccedil': 199,
+ 'Egrave': 200,
+ 'Eacute': 201,
+ 'Ecirc': 202,
+ 'Euml': 203,
+ 'Igrave': 204,
+ 'Iacute': 205,
+ 'Icirc': 206,
+ 'Iuml': 207,
+ 'ETH': 208,
+ 'Ntilde': 209,
+ 'Ograve': 210,
+ 'Oacute': 211,
+ 'Ocirc': 212,
+ 'Otilde': 213,
+ 'Ouml': 214,
+ 'times': 215,
+ 'Oslash': 216,
+ 'Ugrave': 217,
+ 'Uacute': 218,
+ 'Ucirc': 219,
+ 'Uuml': 220,
+ 'Yacute': 221,
+ 'THORN': 222,
+ 'szlig': 223,
+ 'agrave': 224,
+ 'aacute': 225,
+ 'acirc': 226,
+ 'atilde': 227,
+ 'auml': 228,
+ 'aring': 229,
+ 'aelig': 230,
+ 'ccedil': 231,
+ 'egrave': 232,
+ 'eacute': 233,
+ 'ecirc': 234,
+ 'euml': 235,
+ 'igrave': 236,
+ 'iacute': 237,
+ 'icirc': 238,
+ 'iuml': 239,
+ 'eth': 240,
+ 'ntilde': 241,
+ 'ograve': 242,
+ 'oacute': 243,
+ 'ocirc': 244,
+ 'otilde': 245,
+ 'ouml': 246,
+ 'divide': 247,
+ 'oslash': 248,
+ 'ugrave': 249,
+ 'uacute': 250,
+ 'ucirc': 251,
+ 'uuml': 252,
+ 'yacute': 253,
+ 'thorn': 254,
+ 'yuml': 255,
+ 'OElig': 338,
+ 'oelig': 339,
+ 'Scaron': 352,
+ 'fnof': 402,
+ 'scaron': 353,
+ 'Yuml': 376,
+ 'circ': 710,
+ 'tilde': 732,
+ 'Alpha': 913,
+ 'Beta': 914,
+ 'Gamma': 915,
+ 'Delta': 916,
+ 'Epsilon': 917,
+ 'Zeta': 918,
+ 'Eta': 919,
+ 'Theta': 920,
+ 'Iota': 921,
+ 'Kappa': 922,
+ 'Lambda': 923,
+ 'Mu': 924,
+ 'Nu': 925,
+ 'Xi': 926,
+ 'Omicron': 927,
+ 'Pi': 928,
+ 'Rho': 929,
+ 'Sigma': 931,
+ 'Tau': 932,
+ 'Upsilon': 933,
+ 'Phi': 934,
+ 'Chi': 935,
+ 'Psi': 936,
+ 'Omega': 937,
+ 'alpha': 945,
+ 'beta': 946,
+ 'gamma': 947,
+ 'delta': 948,
+ 'epsilon': 949,
+ 'zeta': 950,
+ 'eta': 951,
+ 'theta': 952,
+ 'iota': 953,
+ 'kappa': 954,
+ 'lambda': 955,
+ 'mu': 956,
+ 'nu': 957,
+ 'xi': 958,
+ 'omicron': 959,
+ 'pi': 960,
+ 'rho': 961,
+ 'sigmaf': 962,
+ 'sigma': 963,
+ 'tau': 964,
+ 'upsilon': 965,
+ 'phi': 966,
+ 'chi': 967,
+ 'psi': 968,
+ 'omega': 969,
+ 'thetasym': 977,
+ 'upsih': 978,
+ 'piv': 982,
+ 'bull': 8226,
+ 'hellip': 8230,
+ 'prime': 8242,
+ 'Prime': 8243,
+ 'oline': 8254,
+ 'frasl': 8260,
+ 'ensp': 8194,
+ 'emsp': 8195,
+ 'thinsp': 8201,
+ 'zwnj': 8204,
+ 'zwj': 8205,
+ 'lrm': 8206,
+ 'rlm': 8207,
+ 'ndash': 8211,
+ 'mdash': 8212,
+ 'lsquo': 8216,
+ 'rsquo': 8217,
+ 'sbquo': 8218,
+ 'ldquo': 8220,
+ 'rdquo': 8221,
+ 'bdquo': 8222,
+ 'dagger': 8224,
+ 'Dagger': 8225,
+ 'permil': 8240,
+ 'lsaquo': 8249,
+ 'rsaquo': 8250,
+ 'euro': 8364,
+ 'weierp': 8472,
+ 'image': 8465,
+ 'real': 8476,
+ 'trade': 8482,
+ 'alefsym': 8501,
+ 'larr': 8592,
+ 'uarr': 8593,
+ 'rarr': 8594,
+ 'darr': 8595,
+ 'harr': 8596,
+ 'crarr': 8629,
+ 'lArr': 8656,
+ 'uArr': 8657,
+ 'rArr': 8658,
+ 'dArr': 8659,
+ 'hArr': 8660,
+ 'forall': 8704,
+ 'part': 8706,
+ 'exist': 8707,
+ 'empty': 8709,
+ 'nabla': 8711,
+ 'isin': 8712,
+ 'notin': 8713,
+ 'ni': 8715,
+ 'prod': 8719,
+ 'sum': 8721,
+ 'minus': 8722,
+ 'lowast': 8727,
+ 'radic': 8730,
+ 'prop': 8733,
+ 'infin': 8734,
+ 'ang': 8736,
+ 'and': 8743,
+ 'or': 8744,
+ 'cap': 8745,
+ 'cup': 8746,
+ 'int': 8747,
+ 'there4': 8756,
+ 'sim': 8764,
+ 'cong': 8773,
+ 'asymp': 8776,
+ 'ne': 8800,
+ 'equiv': 8801,
+ 'le': 8804,
+ 'ge': 8805,
+ 'sub': 8834,
+ 'sup': 8835,
+ 'nsub': 8836,
+ 'sube': 8838,
+ 'supe': 8839,
+ 'oplus': 8853,
+ 'otimes': 8855,
+ 'perp': 8869,
+ 'sdot': 8901,
+ 'lceil': 8968,
+ 'rceil': 8969,
+ 'lfloor': 8970,
+ 'rfloor': 8971,
+ 'lang': 9001,
+ 'rang': 9002,
+ 'loz': 9674,
+ 'spades': 9824,
+ 'clubs': 9827,
+ 'hearts': 9829,
+ 'diams': 9830,
+}
34 0.11/entity/macro.py
@@ -0,0 +1,34 @@
+""" @package EntityMacro
+ @file macro.py
+ @brief The EntityMacro class
+
+ Return numeric character reference from entity name.
+
+ @author Douglas Clifton <dwclifton@gmail.com>
+ @date December, 2008
+ @version 0.11.0
+"""
+
+from trac.core import *
+from trac.wiki.macros import WikiMacroBase
+from trac.wiki.api import parse_args
+from entity import entity
+
+__all__ = ['EntityMacro']
+
+class EntityMacro(WikiMacroBase):
+
+ def expand_macro(self, formatter, name, args):
+ """Return numeric character reference from entity name."""
+
+ name = ''
+ args, kw = parse_args(args)
+
+ if args:
+ name = args.pop(0).strip()
+ elif kw:
+ if 'name' in kw: name = kw['name'].strip()
+
+ if name in entity:
+ return '&#%d;' % entity[name]
+ return ''
22 0.11/setup.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+
+import os.path
+from setuptools import setup
+
+setup(
+ name = 'TracEntityMacro',
+ packages = ['entity'],
+ version = '0.11.0',
+
+ author = 'Douglas Clifton',
+ author_email = 'dwclifton@gmail.com',
+ description = 'Numeric character entity from name Macro',
+ long_description = open(os.path.join(os.path.dirname(__file__), 'README')).read(),
+ keywords = '0.11 dwclifton macro wiki',
+ url = 'http://trac-hacks.org/wiki/EntityMacro',
+ license = 'BSD',
+
+ entry_points = { 'trac.plugins': [ 'entity.macro = entity.macro' ] },
+ classifiers = ['Framework :: Trac'],
+ install_requires = ['Trac'],
+)
Please sign in to comment.
Something went wrong with that request. Please try again.