def expand_macro(self, formatter, name, content): """ Execute the macro. When it is used as a Macro, and not as a wiki processor, the arguments to the macro are passed in content. If there is an error getting the RSS content, a brief error text is printed. :returns: RSS headers, in html formatting. """ if name != 'ListRssFeed': return None if not content: return '' args = content.split(',') if not args: raise Exception("No argument.") req = formatter.req data = {} (data['rss'], data['caption'], data['limit'], data['separator'], data['icon'], data['full_link']) = self.get_settings(args) try: data['items'] = self.get_feed(data['rss'], data['limit']) except Exception, e: self.log.exception("Settings Exception") return html.pre("<Cannot view RSS content: %s>" % str(e))
def render(self, context, mimetype, content, filename=None, url=None): self.log.debug("Using Markdown Mimeviewer") req = context.req add_stylesheet(req, 'readme/readme.css') content = content_to_unicode(self.env, content, mimetype) # for some insane reason genshi will only preserve whitespace of # <pre> elements, trac calls Stream.render() inappropriately. return tag.pre(content.encode('utf-8'))
def check_syntax(self, kind, content): try: diag.get_builder(kind)().parse_string(content) return True except: msg = kind + 'diag: an error occurred while parsing source text.' msg = html.strong(msg) pre = html.pre(content) return html.div(msg, pre)
def expand_macro(self, formatter, name, content, args=None): if content: arg = content.strip().split() doc = getattr(TracAdmin, "_help_" + arg[0], None) if doc is None: cmd_mgr = AdminCommandManager(self.env) doc = cmd_mgr.get_command_help(arg) if not doc: raise MacroError(_('Unknown trac-admin command ' '"%(command)s"', command=content)) else: doc = TracAdmin.all_docs(self.env) buf = io.StringIO() TracAdmin.print_doc(doc, buf, long=True) return html.pre(buf.getvalue(), class_='wiki')
def expand_macro(self, formatter, name, content, args={}): reponame = args.get('repository') or '' rev_str = args.get('revision') repos = RepositoryManager(self.env).get_repository(reponame) rev = None try: changeset = repos.get_changeset(repos.normalize_rev(rev_str)) message = changeset.message rev = repos.db_rev(changeset.rev) resource = repos.resource # add review status to commit message ( review = CodeReview(self.env, reponame, rev) status = review.encode(review.status) message += '\n\n{{{#!html \n' message += '<div class="codereviewstatus">' message += ' <div class="system-message %s">' % status.lower() message += ' <p>Code review status: ' message += ' <span>%s</span>' % review.status message += ' </p>' message += ' </div>' message += '</div>' message += '\n}}}' except Exception: message = content resource = Resource('repository', reponame) if formatter.context.resource.realm == 'ticket': ticket_re = CommitTicketUpdater.ticket_re if not any( int(tkt_id) == int(formatter.context.resource.id) for tkt_id in ticket_re.findall(message)): return tag.p( "(The changeset message doesn't reference this " "ticket)", class_='hint') if ChangesetModule(self.env).wiki_format_messages: ctxt = formatter.context return tag.div(format_to_html(self.env, ctxt('changeset', rev, parent=resource), message, escape_newlines=True), class_='message') else: return tag.pre(message, class_='message')