Update documentation.
This commit is contained in:
parent
d285ef7390
commit
9d8d79110c
1 changed files with 43 additions and 0 deletions
43
README.md
43
README.md
|
|
@ -104,9 +104,52 @@ Although most of the time the automatic handling of control flow in secretary ma
|
||||||
### Features of jinja2 not supported
|
### Features of jinja2 not supported
|
||||||
Secretary supports most of the jinja2 control structure/flow tags. But please avoid using the following tags since they are not supported: `block`, `extends`, `macro`, `call`, `include` and `import`.
|
Secretary supports most of the jinja2 control structure/flow tags. But please avoid using the following tags since they are not supported: `block`, `extends`, `macro`, `call`, `include` and `import`.
|
||||||
|
|
||||||
|
|
||||||
|
### Image Support
|
||||||
|
**Feature under development**. Secretary allows you to use placeholder images which will be
|
||||||
|
replaced when rendering the template. To create a placeholder image: in the template insert
|
||||||
|
an image. Change the image's name* to a Jinja2 print tag (the ones with double curly braces)
|
||||||
|
The variable should call the `image` filter, i.e.: `{{ client.picture|image }}`.
|
||||||
|
|
||||||
|
* *Right click under image, select "Picture..." from the popup menu and navegate to
|
||||||
|
"Options" tab.*
|
||||||
|
|
||||||
|
#### Media loader
|
||||||
|
To load image data, Secretary need a media loader. The engine by default provides a file system
|
||||||
|
loader which takes the variable value (specified in image's name). This value is a relative file
|
||||||
|
name to `media_path` passed at `Renderer` instance creation.
|
||||||
|
|
||||||
|
Since the default media loader is very limited. Users can provide theirs own media loader to the
|
||||||
|
`Renderer` intance. A media loader can perform image retrival and/or any required transformation
|
||||||
|
of images. The media loader must take the image value from the template and return a tuple whose
|
||||||
|
first item is a file like object containing the image. Its second element must be the image mimetype.
|
||||||
|
|
||||||
|
Example declaring a media loader:
|
||||||
|
``` python
|
||||||
|
from secreatary import Renderer
|
||||||
|
|
||||||
|
engine = Renderer()
|
||||||
|
|
||||||
|
@engine.media_loader
|
||||||
|
def db_medialoader(value, *args, *kwargs):
|
||||||
|
# load from images tables the image with `value` id.
|
||||||
|
...
|
||||||
|
|
||||||
|
engine.render(template, **template_vars)
|
||||||
|
```
|
||||||
|
The media loader also receive any argument or keywork arguments declared in the template. i.e:
|
||||||
|
If the placeholder image's name is: `{{ client.image|image('keep_ratio', tiny=True)}}` the media
|
||||||
|
loader will receive: first the value of `client.image` as `value` argument; the string `keep_ratio` as an additional argument and `tiny` as a keyword argument.
|
||||||
|
|
||||||
|
The loader can also access and update the internal `draw:frame` and `draw:image` nodes. The loader
|
||||||
|
receives as a dictionary the attributes of these nodes through `frame_attrs` and `image_attrs` keyword arguments. Is some update is made to these dictionary secretary will update the internal nodes with the changes.
|
||||||
|
|
||||||
### Builtin Filters
|
### Builtin Filters
|
||||||
Secretary includes some predefined *jinja2* filters. Included filters are:
|
Secretary includes some predefined *jinja2* filters. Included filters are:
|
||||||
|
|
||||||
|
- **image(value)**
|
||||||
|
See *Image Support* section above.
|
||||||
|
|
||||||
- **markdown(value)**
|
- **markdown(value)**
|
||||||
Convert the value, a markdown formated string, into a ODT formated text. Example:
|
Convert the value, a markdown formated string, into a ODT formated text. Example:
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue