Changeset 4162
- Timestamp:
- 08/21/08 02:38:28 (3 months ago)
- Files:
-
- newsflashmacro/0.11/newsflash/macro.py (modified) (2 diffs)
- newsflashmacro/0.11/README (added)
- newsflashmacro/0.11/setup.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
newsflashmacro/0.11/newsflash/macro.py
r1124 r4162 3 3 from trac.wiki.api import IWikiMacroProvider 4 4 from trac.wiki.formatter import wiki_to_html 5 6 import inspect 7 8 __all__ = ['NewsFlashMacro', 'NewsFlashStartMacro', 'NewsFlashEndMacro'] 9 10 class WikiMacroBase(Component): 11 """Abstract base class for wiki macros.""" 12 13 def get_macros(self): 14 """Yield the name of the macro based on the class name.""" 15 name = self.__class__.__name__ 16 if name.endswith('Macro'): 17 name = name[:-5] 18 yield name 19 20 def get_macro_description(self, name): 21 """Return the subclass's docstring.""" 22 return inspect.getdoc(self.__class__) 23 24 def render_macro(self, req, name, content): 25 raise NotImplementedError 5 from trac.wiki.macros import WikiMacroBase 6 from genshi import Markup 7 from genshi.builder import tag 8 from pkg_resources import resource_filename 26 9 27 10 class NewsFlashMacro(WikiMacroBase): 28 11 """Makes a colored box from the contents of the macro.""" 29 12 30 implements(ITemplateProvider , IWikiMacroProvider)13 implements(ITemplateProvider) 31 14 32 15 # ITemplateProvider … … 35 18 36 19 def get_htdocs_dirs(self): 37 from pkg_resources import resource_filename 38 return [('newsflash', resource_filename(__name__, 'htdocs'))] 20 yield 'newsflash', resource_filename(__name__, 'htdocs') 39 21 40 22 # IWikiMacroProvier methods 41 def render_macro(self, req, name, content): 42 add_stylesheet(req, 'newsflash/css/newsflash.css') 43 return '<div class="newsflash">%s</div>'%wiki_to_html(content, self.env, req) 23 def expand_macro(self, formatter, name, content): 24 add_stylesheet(formatter.req, 'newsflash/css/newsflash.css') 25 return tag.div(format_to_html(self.env, formatter.context, content), 26 class_='newsflash') 27 44 28 45 29 class NewsFlashStartMacro(WikiMacroBase): 46 30 """Start a newflash box.""" 47 31 48 implements(IWikiMacroProvider) 49 50 def render_macro(self, req, name, content): 51 add_stylesheet(req, 'newsflash/css/newsflash.css') 52 return '<div class="newsflash">' 32 def expand_macro(self, formatter, name, content): 33 add_stylesheet(formatter.req, 'newsflash/css/newsflash.css') 34 return Markup('<div class="newsflash">') 35 53 36 54 37 class NewsFlashEndMacro(WikiMacroBase): 55 38 """End a newflash box.""" 56 39 57 implements(IWikiMacroProvider) 58 59 def render_macro(self, req, name, content): 60 return '</div>' 61 62 40 def expand_macro(self, formatter, name, content): 41 return Markup('</div>') 42 43 newsflashmacro/0.11/setup.py
r3416 r4162 1 1 #!/usr/bin/env python 2 2 # -*- coding: iso-8859-1 -*- 3 import os 3 4 4 5 from setuptools import setup … … 6 7 setup( 7 8 name = 'TracNewsFlash', 8 version = ' 0.1',9 version = '1.0', 9 10 packages = ['newsflash'], 10 package_data={ 'newsflash' : [ 'htdocs/css/*.css' ] }, 11 author = "Noah Kantrowitz", 12 author_email = "noah@coderanger.net", 13 description = "Make a colored box.", 14 license = "BSD", 15 keywords = "trac plugin macro news flash", 16 url = "http://trac-hacks.org/wiki/NewsFlashMacro", 11 package_data = { 'newsflash' : [ 'htdocs/css/*.css' ] }, 12 author = 'Noah Kantrowitz', 13 author_email = 'noah@coderanger.net', 14 description = 'A Trac macro to make a colored box.', 15 long_description = open(os.path.join(os.path.dirname(__file__), 'README')).read(), 16 license = 'BSD', 17 keywords = 'trac plugin macro news flash', 18 url = 'http://trac-hacks.org/wiki/NewsFlashMacro', 19 classifiers = [ 20 'Framework :: Trac', 21 'Development Status :: 5 - Production/Stable', 22 'Environment :: Web Environment', 23 'License :: OSI Approved :: BSD License', 24 'Natural Language :: English', 25 'Operating System :: OS Independent', 26 'Programming Language :: Python', 27 ], 28 29 install_requires = ['Trac'], 17 30 18 31 entry_points = {
