-
Notifications
You must be signed in to change notification settings - Fork 94
/
TODO
129 lines (83 loc) · 4.66 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Pending
-------
* Template -> Service -> Context -> Stash
-> Provider -> Parser -> Grammar
-> Document
-> Directive
-> Plugins -> Plugin -> Plugin::*
-> Filters
+ Base, Config, Constants, Exception, Iterator, Test, Utils
Misc
----
* No \refs.
* faster parser back end which bypasses the stash, based on Doug's code.
* Fix Plugin.pm - it's still basically v1 code and much can be discarded
* Memory leaks (there's something creating circular references and it's
probably glaringly obvious but I haven't bothered to look yet)
* Change ttree to have knowledge of new config options. Add --define option
to define a template variable.
* Improve tpage to do the same (i.e. have --define, at least)
* A COMPILE_DIR option to compliment COMPILE_EXT, specifying an alternate
directory in which to store compiled template documents.
* Modules are mostly autoloaded. Need PRELOAD option to preload all relevant
modules? (e.g. for mod_perl)
* a FOR, like FOREACH but without using an iterator?
* Change filter factory interface to accept $context as first parameter.
Dynamic dynamic filters can't grab context reference and some of them
need it.
* add 'perl' filter - needs context access noted above to test EVAL_PERL
* filters and plugins cache may bloat. Perhaps reset() should accept
flags to clear BLOCKS, PLUGINS, FILTERS, etc.
* Do something (i.e. mail Lincoln) about the CGI special case in
Template::Stash to work around the problem of CGI objects disclaiming
membership of the UNVIERSAL class after the first method call.
* copy over new plugins and filters from v1.07
* Change docs/examples to uniformly name the template variable hash as
'$replace'.
* note that no recursion checking is performed for BLOCKs, only
Template::Document instances
* options for provider retrievals such as DONT_USE_CACHE, DONT_CACHE,
DONT_COMPILE (e.g. for [% INSERT file %] directive), or should there
be public interfaces for load(), compile(), etc.?
* move Template::Utils::output somewhere better (Template.pm?) and get rid
of Template::Utils
* should output redirection be handled by the service rather than
Template.pm?
* change all hardcoded object isa tests to use $Template::Config:XXXXX
e.g. if (UNIVERSAL::isa($foo, $Template::Config::CONTEXT))
* check [% INCLUDE $template %] works where $template is a Template::Document
* merge Directive into Parse.yp via template?
-- DONE --
* Template::Context include()/process() should work with raw CODE refs.
* any OUTPUT_PATH in Template.pm should be prepended to OUTPUT when OUTPUT
is a file name.
* cleaned up Template::Iterator. Now derived from Template::Base.
Removed ACTION and ORDER now that they are supported as list pseudo
methods in the Stash LIST_OPS.
* Fixed bug in Provider preventing updates files from being automatically
reloaded. Thanks to Perrin Harkins who provided the patch.
* Fixed bug in Template::Plugin::Datafile which was preventing a comment
from being placed on the first line of the file.
* Fixed bug in parse grammer preventing commas in a META list
* Added cache persistance by writing real Perl to file (rather than
the previous Data::Dumper dump of the opcode tree). Had to
re-organise a bunch of code around the parser/provider/document. Activated
by COMPILE_EXT configuration item.
* Added a work-around in Template::Stash to the problem of CGI disclaiming
membership of the UNIVERSAL class after the first method call.
* block persistance - sometimes need to define BLOCKs that persist
through service invocations (AUTO_RESET => 0).
* fix \@ quoting (and others) in Directive (Perrin reported / Chuck patched)
* Added Date plugin and test, as provided by Thierry-Michel Barral and abw.
* Integrate changes to Template::Test from version 1.07 and beyond. Now
supports -- process - option in expect, mainly for use of t/date.t et al.
* Integrated new upper and lower filters from 1.08, and '|' alias for FILTER
from 1.07.
* Added new directive.t test to test chomping and comments.
* should be able to pre-define BLOCKS as text which is auto-pre-compiled
- may rely on above to get access to Provider's PARSER object.
* copied XML plugins and tests
* fixed TRIM option to work with all BLOCKs and templates. Moved TRIMing
operation into context process() and include() methods. Also changed
service to call $context->process($template) rather than call the sub/
doc itself, thus ensuring that the output can get TRIMmed.