summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/template.pm
AgeCommit message (Collapse)Author
2010-09-27template_depends: throw nice error message when template cannot be foundJoey Hess
plovs reported a crash when templates were not installed properly, with a non-useful error about the template object not being defined. I've audited all uses of template_depends(), and template(), and it makes sense for them to throw an error if the template cannot be found. All code with a user-supplied template catches errors already, to handle template parse failures. It did not make sense for template_file to throw errors, as some code uses it to probe if a template file is available.
2010-07-04remove unnecessary and troublesome filter callsJoey Hess
This better defines what the filter hook is passed, to only be the raw, complete text of a page. Not some snippet, or data read in from an unrelated template. Several plugins that filtered text that originates from an (already filtered) page were modified not to do that. Note that this was not done very consistently before; other plugins that receive text from a page called preprocess on it w/o first calling filter. The template plugin gets text from elsewhere, and was also changed not to filter it. That leads to one known regression -- the embed plugin cannot be used to embed stuff in templates now. But that plugin is deprecated anyway. Later we may want to increase the coverage of what is filtered. Perhaps a good goal would be to allow writing a filter plugin that filters out unwanted words, from any input. We're not there yet; not only does the template plugin load unfiltered text from its templates now, but so can the table plugin, and other plugins that use templates (like inline!). I think we can cross that bridge when we come to it. If I wanted such a censoring plugin, I'd probably make it use a sanitize hook instead, for the better coverage. For now I am concentrating on the needs of the two non-deprecated users of filter. This should fix bugs/po_vs_templates, and it probably fixes an obscure bug around txt's use of filter for robots.txt.
2010-04-27template: Fix typo.Joey Hess
2010-04-24chomp template valuesJoey Hess
Before the template reorg, this was done by a template filter.
2010-04-23updateJoey Hess
2010-04-23improved error messageJoey Hess
2010-04-23switch to using template_dependsJoey Hess
It now handles all the details of finding a page template that this used to need to implement.
2010-04-02qualify template_fileJoey Hess
2010-04-02template: Search for templates in the templatedir, if they are not found as ↵Joey Hess
pages in the wiki.
2010-02-12setup file orderingJoey Hess
2010-01-26template: Preprocess parameters before htmlizing.Joey Hess
Consider a template like: [[!template type=note text=""" [[!inline pages="*foo*"]] """]] The text parameter is htmlized before being passed into the template (in case the template wraps it in a <span> that prevents markdown from htmlizing it later). But, when markdown sees "*foo*", it turns that into <em>foo</em>. Later, when preprocessing the inline directive, that leads to suprising results. To fix this, I made template parameters be preprocessed (and filtered) before being htmlized. Note that I left in the preprocessing (and filtering) of the template output at the end. That's still relevant when the template itself contains preprocessor directives.
2009-03-08When loading a template in scan mode, let preprocess know it only needs to scan.Joey Hess
This makes wikis such as zack's much faster in the scan pass. In that pass, when a template contains an inline, there is no reason to process the entire inline and all its pages. I'd forgotten to pass along the flag to let preprocess() know it was in scan mode, leading to much unncessary churning.
2009-02-17template: Load templates in scan modeJoey Hess
This is potentially expensive, but is necessary so that meta and tag directives, and other links on templates affect the page using the template reliably.
2009-02-17Revert "comments" (stupid commit)Joey Hess
This reverts commit bb8b8787ef9477c027b9e5d8b7b5e1addfd1ca32.
2009-02-17commentsJoey Hess
2008-12-23finalise version 3.00 of the plugin apiJoey Hess
2008-12-17Coding style change: Remove explcit vim folding markers.Joey Hess
2008-09-27template: Make edit link for new templates ensure the page is located under ↵Joey Hess
toplevel templates directory.
2008-08-03add plugin safe/rebuild info (part 3 of 3)Joey Hess
2008-07-13switch preprocess hooks to use error functionJoey Hess
2008-07-10template: Add support for a BASENAME variable.Joey Hess
2008-06-04Pass a destpage parameter to the sanitize hook.Joey Hess
Because the search plugin needed it, also because it's one of the few plugins that didn't already have it. I also considered adding it to htmlize, but I really cannot imagine caring what the destpage is when htmlizing. (I'll probably be poven wrong later.)
2008-01-09* template: Remove bogus htmlize pass added in 2.16.Joey Hess
* template: Htmlize template variables, but also provide a raw version via `<TMPL_VAR raw_variable>`.
2007-12-12* Htmlize parameters passed to the template preprocessor directive beforeJoey Hess
inserting them into the html template. This ensures that markdown acts on them, even if the value is expanded inside a block-level html element in the html template. Closes: #454058 * Use a div in the note template rather than a span.
2007-05-17* Add a destpage parameter to the filter hook.joey
* Fix links to smilies generated by the smiley plugin for inlined pages. The old links were often wrong, but often still worked by accident.
2007-04-27* pagespec_match() has changed to take named parameters, to better allowjoey
for extended pagespecs. The old calling convention will still work for back-compat for now. * The calling convention for functions in the IkiWiki::PageSpec namespace has changed so they are passed named parameters. * Plugin interface version increased to 2.00 since I don't anticipate any more interface changes before 2.0.
2007-03-07more i18n improvementsjoey
2007-02-14* Fix the template, toggle, and conditional plugins to filter text beforejoey
preprocessing it. * Fix smiley plugin to support smileys at the very beginning or end of the content.
2006-12-29* Initial work on internationalization of the program code. po/ikiwiki.potjoey
is available for translation. * Export gettext() from IkiWiki module.
2006-11-05* Avoid syntax errors in templates used by the template plugin crashingjoey
ikiwiki.
2006-09-18* Yet another fix for those poor case-insensative `OSX users.joey
* chomp trailing newlines at the end of templates read in by the template plugin, to allow use of the template preprocessor directive in whitespace-sensative situations. Closes: #387073
2006-09-09* Work on firming up the plugin interface:joey
- Plugins should not need to load IkiWiki::Render to get commonly used functions, so moved some functions from there to IkiWiki. - Picked out the set of functions and variables that most plugins use, documented them, and made IkiWiki export them by default, like a proper perl module should. - Use the other functions at your own risk. - This is not quite complete, I still have to decide whether to export some other things. * Changed all plugins included in ikiwiki to not use "IkiWiki::" when referring to stuff now exported by the IkiWiki module. * Anyone with a third-party ikiwiki plugin is strongly enrouraged to make like changes to it and avoid use of non-exported symboles from "IkiWiki::". * Link debian/changelog and debian/news to NEWS and CHANGELOG. * Support hyperestradier version 1.4.2, which adds a new required phraseform setting.
2006-08-23fixesjoey
2006-08-23* Allow preprocessor directives to contain python-like triple-quotedjoey
text blocks, for easy nesting of quotes inside. * Add a template plugin. * Use the template plugin to add infoboxes to each plugin page listing basic info about the plugin.