toc.py: now we can generate a table-of-contents
[webber:webber.git] / in / functions.md
1 title: Functions
2 parent: Webber
3 ctime: 2009-06-24
4
5 = Calling functions =
6
7 You can call functions only from [[template_mako]]. An example:
8
9         Modified ${format_date(mtime)}
10
11 Here's list of functions defined by webber and it's default plugins:
12
13
14 == format_date(timestamp) ==
15
16 Takes a timestamp (seconds since 1st January 1970) and converts it into
17 a string, using to `cfg.date_format`.
18
19 Defined in `webber.py`.
20
21
22 == get_time() ==
23
24 Returns the current date/time as a string according to `cfg.date_format`.
25
26 Defined in `webber.py`.
27
28
29 == get_breadcrumbs() ==
30
31 Returns the breadcrumbs as "`(page, link)`" tuples, where "`page`" is a "`class
32 File`"-object and link is a relative link from the current page to "`page`".
33
34 Defined in [[hierarchy.py|hierarchy]], where you find an example.
35
36
37 == get_current_file() ==
38
39 Returns the current "`class File`" object.
40
41 Defined in `webber.py`.
42
43
44 == get_recently(page) ==
45
46 Returns a list of up to 10 pages below the specified page. If you don't
47 specify a page, the current page will be used. For each page, you'll get a
48 "`(page, link)`" tuple back, where "`page`" is a "`class File`"-object and
49 link is a relative link from the current page to "`page`".
50
51 Defined in [[hierarchy.py|hierarchy]], where you find an example.
52
53
54 == get_sidemenu(root) ==
55
56 Returns a menu for the current page. For each page in this menu you'll get
57 back a "`(level, part_of_path, is_current, page, link)`" tuple, where
58 "`page`" is a "`class File`"-object and link is a relative link from the
59 current page to "`page`".
60
61 You'll need to specify "`root`" if your top-most page isn't named "`Home`".
62
63 Defined in [[hierarchy.py|hierarchy]], where you find an example.
64
65
66 == get_sitemap(root, show_orphans) ==
67
68 Returns all pages as "`(level, page, link)`" tuples, where "`page`" is a
69 "`class File`"-object and link is a relative link from the current page to
70 "`page`".
71
72 You'll need to specify "`root`" if your top-most page isn't named "`Home`".
73
74 To put pages into the sitemap that are outside the parent/child relationships,
75 specify "`True`" for "`show_orphans`".
76
77 Defined in [[hierarchy.py|hierarchy]], where you find an example.
78
79 == get_toc() ==
80
81 Returns an unsorted list with the hierarchy of the table-of-contents.
82
83 Defined in [[toc.py|toc]], where you find an example.
84
85 == func ==
86
87 A sample function in the [[skeleton.py|skeleton]]. See below.
88
89
90 = Writing functions =
91
92 A function is a simply python function which returns HTML. The function needs
93 to be decorated with "`@set_function(name)`". There's an example in
94 [[skeleton.py|skeleton]], which looks like:
95
96         :::python
97         @set_function("func")
98         def sample_func():
99                 if cfg.test_verbose:
100                         print "in macro skeleton.sample_func"
101                 return "{ output from sample function }"
102
103 Inside your template, you can call the function without parameters or
104 with arbitrary parameters, like this:
105
106         ${func(a=1, b="test")}
107
108 Inside your function you can access this as ...
109
110 * "`params.a`" which contains the integer "`1`"
111 * "`params.b`" which contains the string "`test`"