I little hitch: edit preview. Any hints on how the plugin could be modified to be called in this case? Thx, -F.
On Wed, Sep 4, 2013 at 7:54 PM, Felipe G. Nievinski <[email protected]>wrote: > Here's the final version (attached). > I had a little fight with the CSS precedence. > I'll try and submit this to the trac-hacks. > Thanks once again. > -F. > > > On Tue, Sep 3, 2013 at 5:39 PM, Felipe G. Nievinski <[email protected] > > wrote: > >> it worked beatifully -- many thanks!!! >> >> I'll try and submit that to trac-hacks, >> for the benefit of future users. >> >> the py code deployment is trivial, >> just not sure how to deploy the css. >> manually I had to modify templates/ >> site.html, then htdocs/site.css -- >> how could I do this without breaking >> the existing user settings? >> >> It might be easier to just insert >> the style sheet info in the .py >> and generate it on the fly... >> >> >> >> >> On Tue, Sep 3, 2013 at 3:15 PM, Peter Suter <[email protected]> wrote: >> >>> I would propose an alternative approach. Do not put the {{{...}}} into >>> the stored wiki page. (Then you don't have to worry about reversing all the >>> effects that this has.) Instead write a plugin that only puts the {{{...}}} >>> into the wiki page when it is prepared for display. >>> >>> I think this can be done with the IWikiPageManipulator. >>> http://trac.edgewall.org/wiki/**TracDev/PluginDevelopment/** >>> ExtensionPoints/trac.wiki.api.**IWikiPageManipulator<http://trac.edgewall.org/wiki/TracDev/PluginDevelopment/ExtensionPoints/trac.wiki.api.IWikiPageManipulator> >>> >>> You would have to come up with a different trick to specify which wiki >>> pages should be handled in this way. For example you could use a special >>> naming scheme, like a special ".txt" ending. >>> >>> That plugin could also add a special CSS class (e.g. class="dottxt") by >>> wrapping the page in {{{#!div class="dottxt" ... }}}. >>> http://trac.edgewall.org/wiki/**WikiHtml#HowtoUseDivSpan<http://trac.edgewall.org/wiki/WikiHtml#HowtoUseDivSpan> >>> >>> The entire thing could then look like this: >>> >>> {{{ >>> from trac.core import * >>> from trac.wiki.api import IWikiPageManipulator >>> >>> class PlainTextWikiPagePreparer(**Component): >>> >>> implements(**IWikiPageManipulator) >>> >>> # A custom CSS class name that can be used for styling >>> CSS_CLASSNAME = 'dottxt' >>> >>> def prepare_wiki_page(self, req, page, fields): >>> if self._is_special_page(page): >>> fields['text'] = self._escape_wikitext(page.**text) >>> >>> def validate_wiki_page(self, req, page): >>> return [] >>> >>> def _is_special_page(self, page): >>> """Should the page be treated as special pre-formatted plain >>> text? >>> For example, let's treat all wiki pages ending in .txt special. >>> """ >>> return page.name.endswith('.txt') >>> >>> def _escape_wikitext(self, wikitext): >>> """Return the escaped wikitext of a pre-formatted plain text. >>> For example, let's wrap the entire thing in {{{...}}}. >>> """ >>> return '{{{#!div class="' + self.CSS_CLASSNAME + '"\n{{{\n' + >>> wikitext + '\n}}}\n}}}' >>> }}} >>> >>> You could put this - without the {{{ }}} - into a single file plugin in >>> your plugins folder. Or extend it to a full plugin including the custom CSS. >>> http://trac.edgewall.org/wiki/**TracPlugins#/dropped<http://trac.edgewall.org/wiki/TracPlugins#/dropped> >>> >>> --- >>> Peter >>> >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Trac Users" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/** >>> topic/trac-users/Kh6Rm2s_n9A/**unsubscribe<https://groups.google.com/d/topic/trac-users/Kh6Rm2s_n9A/unsubscribe> >>> . >>> To unsubscribe from this group and all its topics, send an email to >>> trac-users+unsubscribe@**googlegroups.com<trac-users%[email protected]> >>> . >>> To post to this group, send email to [email protected]. >>> Visit this group at >>> http://groups.google.com/**group/trac-users<http://groups.google.com/group/trac-users> >>> . >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>> . >>> >> >> > -- You received this message because you are subscribed to the Google Groups "Trac Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/trac-users. For more options, visit https://groups.google.com/groups/opt_out.
