The djula Reference Manual

This is the djula Reference Manual, version 0.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:18:05 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 djula

An implementation of Django templates for Common Lisp.

Maintainers

Eric Sessoms <>
Mariano Montone <>

Author

Nick Allen <>

Home Page

http://mmontone.github.io/djula

License

MIT

Long Description

# Djula

[![Build Status](https://travis-ci.org/mmontone/djula.svg?branch=master)](https://travis-ci.org/mmontone/djula) [![Quicklisp](http://quickdocs.org/badge/djula.svg)](http://quickdocs.org/djula/)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)

Djula is a port of Python’s [Django](http://www.djangoproject.com) template engine to Common Lisp.

## Nutshell

Here a small example of a template::

“‘HTML+Django

{% extends "base.html" %}
{% block title %}Memberlist{% endblock %}
{% block content %}
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
{% endblock %}
“‘

## Philosophy

Application logic is for the controller but don’t try to make the life
for the template designer too hard by giving him too few functionality.

For more information visit the [documentation page](http://mmontone.github.io/djula/djula/).

Version

0.2

Dependencies
  • access (system).
  • alexandria (system).
  • babel (system).
  • cl-ppcre (system).
  • split-sequence (system).
  • local-time (system).
  • closer-mop (system).
  • trivial-backtrace (system).
  • cl-slice (system).
  • cl-locale (system).
  • gettext (system).
  • parser-combinators (system).
  • iterate (system).
Source

djula.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 djula/src

Source

djula.asd.

Parent Component

djula (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 djula/djula.asd

Source

djula.asd.

Parent Component

djula (system).

ASDF Systems

djula.


4.1.2 djula/src/compiler.lisp

Dependencies
Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.3 djula/src/conditions.lisp

Dependency

specials.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Internals

4.1.4 djula/src/filters.lisp

Dependency

pipeline.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

apply-filters (function).


4.1.5 djula/src/lexer.lisp

Dependencies
Source

djula.asd.

Parent Component

src (module).

Public Interface

verbatim (function).

Internals

4.1.6 djula/src/locale.lisp

Dependency

lexer.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.8 djula/src/parser.lisp

Dependency

pipeline.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.9 djula/src/pipeline.lisp

Dependency

conditions.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.10 djula/src/specials.lisp

Dependency

packages.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.11 djula/src/tags.lisp

Dependencies
Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.12 djula/src/tag.lisp

Dependency

pipeline.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.13 djula/src/template-store.lisp

Dependency

specials.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.14 djula/src/translation.lisp

Dependencies
Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.15 djula/src/util.lisp

Dependency

packages.lisp (file).

Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.16 djula/src/variables.lisp

Dependencies
Source

djula.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 djula

Source

packages.lisp.

Use List
  • alexandria.
  • common-lisp.
  • iterate.
  • parser-combinators.
Public Interface
Internals

5.2 djula.tag-compilers

This package contains the tag compilers.

Source

packages.lisp.

Public Interface

5.3 djula.unparsed-tag-processors

This package contains the unparsed tag processors.

Source

packages.lisp.

Public Interface

5.4 djula.locale

This package contains code to generate cl-locale dictionary files.

Source

packages.lisp.

Use List

common-lisp.

Public Interface
Internals

5.5 djula.tag-processors

This package contains the tag processors.

Source

packages.lisp.

Public Interface

5.6 djula.token-compilers

This package contains the token compilers.

Source

packages.lisp.

Public Interface

5.7 djula.filters

This package contains the djula filters. Filters are take as a first argument a string and return a string.

Source

packages.lisp.

Public Interface

5.8 djula.token-processors

Contains the token processors

Source

packages.lisp.

Public Interface

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *allow-include-roots*

A list of folder names that are allowed to be included by SSI.

Package

djula.

Source

specials.lisp.

Special Variable: *auto-escape*

Controls auto escaping.

Package

djula.

Source

variables.lisp.

Special Variable: *catch-template-errors-p*

When enabled, caught errors during the rendering of the template are written to the output instead of being handled by the lisp listener.

Package

djula.

Source

specials.lisp.

Special Variable: *current-compiler*

The current template compiler.

Package

djula.

Source

compiler.lisp.

Special Variable: *current-language*
Package

djula.

Source

specials.lisp.

Special Variable: *current-store*

The currently in-use template store. Defaults to a FILESYSTEM-TEMPLATE-STORE.

Package

djula.

Source

template-store.lisp.

Special Variable: *default-language*

The default i18n language. English is the default.

Package

djula.

Source

specials.lisp.

Special Variable: *default-template-arguments*

List of arguments available for all templates. Add arguments to this list if you want them to be available in every template. This is a plist, so use getf to add arguments, like: (setf (getf djula:*default-template-arguments* :foo) ’some-value)

Package

djula.

Source

specials.lisp.

Special Variable: *djula-emptyp*

Change this to customize how djula decides if some value is empty or not

Package

djula.

Source

tags.lisp.

Special Variable: *djula-execute-package*

The package in which template expressions are evaluated.

Package

djula.

Source

specials.lisp.

Special Variable: *elision-string*

The string to be used by ‘truncatechars’ at the end of truncated strings.

Package

djula.

Source

specials.lisp.

Special Variable: *error-template*

The error template used by ‘render-error-template’.

Package

djula.

Source

specials.lisp.

Special Variable: *fancy-debug-p*

When enabled, displays fancy html based debugging information for the {% debug %} tag.

Package

djula.

Source

specials.lisp.

Special Variable: *fancy-error-template-p*

When enabled, show a fancy template when an error ocurrs.

Package

djula.

Source

specials.lisp.

Special Variable: *recompile-templates-on-change*

When enabled, templates are recompiled if they have changed on disk, before they are rendered.
This is the default and convenient for development. For production, this can be turned off and the filesystem check is bypassed.

Package

djula.

Source

compiler.lisp.

Special Variable: *translation-backend*

The translation backend. One of :locale, :gettext, :translate.
Loading the correspondent Djula ASDF translation backend system is required.

Package

djula.

Source

translation.lisp.

Special Variable: *verbose-errors-p*

When enabled, errors are displayed more verbosely. Good for debugging.

Package

djula.

Source

specials.lisp.


6.1.2 Macros

Macro: def-filter (name args &body body)

Define a Djula filter.
NAME is the name of the filter.
ARGS is the list of arguments of the filter. BODY is the implementation of the filter.

Package

djula.

Source

pipeline.lisp.

Macro: def-tag-compiler (name args &body body)

Define a Djula tag compiler.
NAME is the name of the tag.
ARGS is the list of arguments required. BODY is the tag compilation implementation.

Package

djula.

Source

pipeline.lisp.


6.1.3 Ordinary functions

Function: add (it n)
Package

djula.filters.

Source

filters.lisp.

Function: add-template-directory (directory &optional template-store)

Adds DIRECTORY to the search path of the TEMPLATE-STORE.

Package

djula.

Source

template-store.lisp.

Function: addslashes (it)
Package

djula.filters.

Source

filters.lisp.

Function: almost-parsed-ifequal (&rest arg-list0)
Package

djula.token-processors.

Source

tags.lisp.

Function: almost-parsed-ifnotequal (&rest arg-list0)
Package

djula.token-processors.

Source

tags.lisp.

Function: autoescape (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: block (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: capfirst (it)
Package

djula.filters.

Source

filters.lisp.

Function: comment (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: comment (&rest arg-list0)

:COMMENT tokens are removed by PROCESS-TOKENS

Package

djula.token-processors.

Source

parser.lisp.

Function: comment-tag (&rest arg-list0)
Package

djula.token-processors.

Source

tags.lisp.

Function: compile-template* (name)

Compiles template NAME with compiler in *CURRENT-COMPILER*.

Package

djula.

Source

compiler.lisp.

Function: cut (it charstring)
Package

djula.filters.

Source

filters.lisp.

Function: cycle (&rest arg-list0)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: date (it &optional format)
Package

djula.filters.

Source

filters.lisp.

Function: datetime (it &optional format)
Package

djula.filters.

Source

filters.lisp.

Function: debug (&rest arg-list0)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: default (it default)
Package

djula.filters.

Source

filters.lisp.

Function: directory-translate-strings (dir &key recurse)

given a directory of djula html template files find all the strings to be translated

Package

djula.locale.

Source

locale.lisp.

Function: divisibleby (it number)
Package

djula.filters.

Source

filters.lisp.

Function: emit-js (&rest arg-list0)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endautoescape (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endblock (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endcomment (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endfilter (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endfor (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endif (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endifchanged (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endifequal (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endifnotequal (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: endjs-script (&rest arg-list25)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: escape (it)
Package

djula.filters.

Source

filters.lisp.

Function: extends (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: fetch-template* (key)

Return the text of a template fetched from the *CURRENT-STORE*.

Package

djula.

Source

template-store.lisp.

Function: file-template-translate-strings (file)

given a djula html template file, find all the strings to be translated

Package

djula.locale.

Source

locale.lisp.

Function: filter (&rest arg-list0)
Package

djula.unparsed-tag-processors.

Source

tags.lisp.

Function: find-template* (name &optional error-p)

Find template with name NAME in *CURRENT-STORE*.
If the template is not found, an error is signaled depending on ERROR-P argument value.

Package

djula.

Source

template-store.lisp.

Function: first (it)
Package

djula.filters.

Source

filters.lisp.

Function: firstof (&rest arg-list0)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: for (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: force-escape (it)
Package

djula.filters.

Source

filters.lisp.

Function: format (it fmt)
Package

djula.filters.

Source

filters.lisp.

Function: if (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: ifchanged (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: ifequal (&rest arg-list0)
Package

djula.unparsed-tag-processors.

Source

tags.lisp.

Function: ifnotequal (&rest arg-list0)
Package

djula.unparsed-tag-processors.

Source

tags.lisp.

Function: include (&rest arg-list0)

when compiled, :INCLUDE tags first compile the template pointed to by ‘PATH’ then they compile into a function that simply calls this function with *TEMPLATE-ARGUMENTS*

‘PARAMETERS’ should have the form (:param1 value1 :param2 value2 ...). If given, they are prepended to *TEMPLATE-ARGUMENTS*

Package

djula.tag-compilers.

Source

tags.lisp.

Function: join (it sep)
Package

djula.filters.

Source

filters.lisp.

Function: js (&rest arg-list0)
Package

djula.unparsed-tag-processors.

Source

tags.lisp.

Function: js-script (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: last (it)
Package

djula.filters.

Source

filters.lisp.

Function: length (it)
Package

djula.filters.

Source

filters.lisp.

Function: length_is (it length)
Package

djula.filters.

Source

filters.lisp.

Function: linebreaks (it)
Package

djula.filters.

Source

filters.lisp.

Function: linebreaksbr (it)
Package

djula.filters.

Source

filters.lisp.

Function: lisp (&rest arg-list0)
Package

djula.unparsed-tag-processors.

Source

tags.lisp.

Function: lisp (it &optional lisp-string)
Package

djula.filters.

Source

filters.lisp.

Function: list-asdf-system-templates (asdf-system component)

List djula templates in ASDF-SYSTEM at COMPONENT. A list of template PATHNAMEs is returned.

Package

djula.

Source

template-store.lisp.

Function: locale-list (message-file translate-strings)

return an augmented dictionary of a cl-locale message file with the translate strings. Does not update the file.

Package

djula.locale.

Source

locale.lisp.

Function: lower (it)
Package

djula.filters.

Source

filters.lisp.

Function: make_list (it)
Package

djula.filters.

Source

filters.lisp.

Function: parsed-autoescape (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-block (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-filter (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-for (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-if (&rest arg-list0)

:PARSED-IF tags are compiled into a function that executes the {% if %} clause

Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-ifchanged (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-ifequal (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-js (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-js-script (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-lisp (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: parsed-set (&rest arg-list0)
Package

djula.token-compilers.

Source

tags.lisp.

Function: render-template* (template &optional stream &rest *template-arguments*)

Render TEMPLATE into STREAM passing *TEMPLATE-ARGUMENTS*.

Package

djula.

Source

compiler.lisp.

Function: replace (it regex)
Package

djula.filters.

Source

filters.lisp.

Function: rest (list)
Package

djula.filters.

Source

filters.lisp.

Function: reverse (it)
Package

djula.filters.

Source

filters.lisp.

Function: safe (it)
Package

djula.filters.

Source

filters.lisp.

Function: scan (it regex)
Package

djula.filters.

Source

filters.lisp.

Function: semi-parsed-filter (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: semi-parsed-if (&rest arg-list0)

:SEMI-PARSED-IF tags are parsed into :PARSED-IF tags. a :PARSED-IF tag looks more ike a traditional IF statement [a test, an "if" branch, and an "else" branch], so :SEMI-PARSED-IF has to look for the :ELSE token to split up ‘CLAUSE’

Package

djula.token-processors.

Source

tags.lisp.

Function: semi-parsed-ifequal (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: semi-parsed-ifnotequal (&rest arg-list0)
Package

djula.tag-processors.

Source

tags.lisp.

Function: semi-parsed-js-script (&rest arg-list0)
Package

djula.token-processors.

Source

tags.lisp.

Function: set (&rest arg-list0)
Package

djula.unparsed-tag-processors.

Source

tags.lisp.

Function: set-language (&rest arg-list0)

:SET-LANGUAGE tags are compiled into a function that set *CURRENT-LANGUAGE* to the keyword version of ‘NAME’ [or NIL if ‘NAME’ is not supplied]

Package

djula.tag-compilers.

Source

tags.lisp.

Function: set-package (&rest arg-list0)

:SET-PACKAGE tags are compiled into a function that set *DJULA-EXECUTE-PACKAGE* to the the package value of find package on the keyword ‘PACKAGE-NAME’ or the package ‘common-lisp-user’ if the package for ‘PACKAGE-NAME’ is not found. This is useful to determine the package in which :LISP tags are executed

Package

djula.tag-compilers.

Source

tags.lisp.

Function: show-language (&rest arg-list0)

:SHOW-LANGUAGE tags are compiled into a function that just shows the values of *CURRENT-LANGUAGE* or *DEFAULT-LANGUAGE* if there is no current language

Package

djula.tag-compilers.

Source

tags.lisp.

Function: slice (it &rest slices)
Package

djula.filters.

Source

filters.lisp.

Function: sort (it &optional predicate key)
Package

djula.filters.

Source

filters.lisp.

Function: ssi (&rest arg-list0)

Server Side Includes.
If ‘PATH’ lives in a folder reckognized by *ALLOW-INCLUDE-ROOTS*, then :SSI tag compiles into a function that returns the contents of the file pointed to by the template-path ‘PATH’.
If ‘PARSE’ is T then the function renders ‘PATH’ as a template.

Package

djula.tag-compilers.

Source

tags.lisp.

Function: string (&rest arg-list0)

:STRING tokens compile into a function that simply returns the string

Package

djula.token-compilers.

Source

compiler.lisp.

Function: string (&rest arg-list0)

adjacent :STRING tokens are concatenated together by PROCESS-TOKENS as a small optimization

Package

djula.token-processors.

Source

parser.lisp.

Function: super (&rest arg-list0)
Package

djula.tag-compilers.

Source

tags.lisp.

Function: tag (&rest arg-list0)
Package

djula.token-compilers.

Source

tag.lisp.

Function: tag (&rest arg-list0)

:TAG tokens are sometimes parsed into some other tokens by PROCESS-TOKENS

Package

djula.token-processors.

Source

tag.lisp.

Function: templatetag (&rest arg-list0)

:SHOW-FILE tags compile into a function that return the html-escaped contents of the file pointed to by the template-path ‘PATH’

Package

djula.tag-compilers.

Source

tags.lisp.

Function: time (it &optional format)
Package

djula.filters.

Source

filters.lisp.

Function: trans (&rest arg-list0)
Package

djula.unparsed-tag-processors.

Source

translation.lisp.

Function: trans (it &rest args)
Package

djula.filters.

Source

translation.lisp.

Function: translate (string &optional args language backend)

Translate STRING using Djula transaltion backend.
LANGUAGE is the language to translate to. The default is to use either *CURRENT-LANGUAGE* or *DEFAULT-LANGUAGE*, in that order. BACKEND is the translation backend to use. Default is *TRANSLATION-BACKEND*.

Package

djula.

Source

translation.lisp.

Function: translation (&rest arg-list0)
Package

djula.token-compilers.

Source

translation.lisp.

Function: truncatechars (it n)
Package

djula.filters.

Source

filters.lisp.

Function: unparsed-tag (&rest arg-list0)
Package

djula.token-processors.

Source

tag.lisp.

Function: unparsed-translation (&rest arg-list0)
Package

djula.token-processors.

Source

translation.lisp.

Function: unparsed-variable (&rest arg-list0)

:PARSED-VARIABLE tokens are parsed into :VARIABLE tokens by PROCESS-TOKENS

Package

djula.token-processors.

Source

variables.lisp.

Function: update-caveman-project (project)

update the cl-locale dictionary files with the djula translate strings. Project should coincide with project (asdf) name of the caveman project. This assumes the project uses the standard caveman2 directory structure. It does not depend on any caveman source code and
caveman or your project need not be loaded.

Package

djula.locale.

Source

locale.lisp.

Function: update-locale-list (message-file translate-strings)

update a cl-locale message file with the list of translate strings

Package

djula.locale.

Source

locale.lisp.

Function: update-project (template-dir locale-dir)

update a djula project informing the template directory and the directory of subdirectories holding the cl-locale dictionary files

Package

djula.locale.

Source

locale.lisp.

Function: upper (it)
Package

djula.filters.

Source

filters.lisp.

Function: url-encode (string)

URL-encodes a string using the external format EXTERNAL-FORMAT.

Package

djula.

Source

util.lisp.

Function: url-encode-path (path)

URL encode the url path PATH.

Package

djula.

Source

util.lisp.

Function: urlencode (it)
Package

djula.filters.

Source

filters.lisp.

Function: variable (&rest arg-list0)
Package

djula.token-compilers.

Source

variables.lisp.

Function: verbatim (&rest arg-list0)
Package

djula.token-compilers.

Source

lexer.lisp.

Function: with (it replace)
Package

djula.filters.

Source

filters.lisp.


6.1.4 Generic functions

Generic Function: compile-template (compiler name &optional error-p)

Provides a hook to customize template compilation.

Package

djula.

Source

compiler.lisp.

Methods
Method: compile-template ((compiler toplevel-compiler) name &optional error-p)
Method: compile-template ((compiler compiler) name &optional error-p)
Generic Function: fetch-template (store key)

Return the text of the template identified by the given key.

Package

djula.

Source

template-store.lisp.

Methods
Method: fetch-template ((store filesystem-template-store) name)
Method: fetch-template ((store memory-template-store) name)
Generic Function: find-template (store name &optional error-p)

Return a hashable key that uniquely identifies the named template.

Package

djula.

Source

template-store.lisp.

Methods
Method: find-template ((store memory-template-store) name &optional error-p)
Method: find-template ((store filesystem-template-store) name &optional error-p)

Algorithm that finds a template in a filesystem-template-store.

Generic Reader: fragment-compiler (object)
Package

djula.

Methods
Reader Method: fragment-compiler ((toplevel-compiler toplevel-compiler))

automatically generated reader method

Source

compiler.lisp.

Target Slot

fragment-compiler.

Generic Function: template-print-object (object)

Print an object in a template. Customize this function to implement custom printers for your objects.

Package

djula.

Source

util.lisp.

Methods
Method: template-print-object ((timestamp timestamp))
Method: template-print-object ((true (eql t)))
Method: template-print-object (object)

6.1.5 Standalone methods

Method: initialize-instance :after ((compiled-template compiled-template) &rest initargs)
Source

compiler.lisp.

Method: print-object ((compiled-template compiled-template) stream)
Source

compiler.lisp.


6.1.6 Classes

Class: compiler

Abstract class. Top-level class for template compilers.

Package

djula.

Source

compiler.lisp.

Direct subclasses

toplevel-compiler.

Direct methods

compile-template.

Class: filesystem-template-store

Searches for template files on disk according to the given search path.

Package

djula.

Source

template-store.lisp.

Direct superclasses

template-store.

Direct subclasses

memory-template-store.

Direct methods
Direct slots
Slot: current-path

The location of the most-recently fetched template.

Type

(or null string pathname)

Slot: search-path

User-provided list of template locations.

Type

list

Initargs

:search-path

Readers

search-path.

Writers

(setf search-path).

Class: memory-template-store

A template store with a memory cache.
This store works like FILESYSTEM-TEMPLATE-STORE, but when a template is compiled it saves the template contents in memory and templates are rendered from memory after. This is useful for building standalone binaries, as there’s no need to ship template files once they have been compiled (they are stored in the lisp image memory). You need to set Djula’s *current-store* to a MEMORY-TEMPLATE-STORE instance before compiling templates.
See the section on building standalong binaries in Djula manual.

Package

djula.

Source

template-store.lisp.

Direct superclasses

filesystem-template-store.

Direct methods
Direct slots
Slot: templates-contents

A hash-table cache that maps pathnames and template names to template sources.

Initform

(make-hash-table :test (quote equalp))

Slot: templates
Initform

(make-hash-table :test (quote equalp))

Class: template-store
Package

djula.

Source

template-store.lisp.

Direct subclasses

filesystem-template-store.

Class: toplevel-compiler

The default Djula template compiler.

Package

djula.

Source

compiler.lisp.

Direct superclasses

compiler.

Direct methods
Direct slots
Slot: fragment-compiler
Initform

(make-instance (quote djula:compiler))

Initargs

:fragment-compiler

Readers

fragment-compiler.

Writers

This slot is read-only.


6.2 Internals


6.2.1 Constants

Constant: +whitespace+

Whitespace characters.

Package

djula.locale.

Source

locale.lisp.


6.2.2 Special variables

Special Variable: *accumulated-javascript-strings*
Package

djula.

Source

specials.lisp.

Special Variable: *block-alist*
Package

djula.

Source

specials.lisp.

Special Variable: *current-block*
Package

djula.

Source

specials.lisp.

Special Variable: *current-template*
Package

djula.

Source

specials.lisp.

Special Variable: *eval-lisp-tags*

Enable/disable Lisp evaluation in templates.

Package

djula.

Source

specials.lisp.

Special Variable: *linked-templates*
Package

djula.

Source

specials.lisp.

Special Variable: *template-arguments*
Package

djula.

Source

specials.lisp.

Special Variable: *translation-backends*

List of available translation backends.

Package

djula.

Source

translation.lisp.

Special Variable: *untranslated-messages*
Package

djula.

Source

translation.lisp.

Special Variable: *warn-on-untranslated-messages*
Package

djula.

Source

translation.lisp.


6.2.3 Macros

Macro: accum (accfn &body body)
Package

djula.

Source

util.lisp.

Macro: def-delimited-tag (starttag endtag delimited-name)
Package

djula.

Source

pipeline.lisp.

Macro: def-tag-processor (name args rest-var &body body)
Package

djula.

Source

pipeline.lisp.

Macro: def-token-compiler (name args &body body)
Package

djula.

Source

pipeline.lisp.

Macro: def-token-processor (name args rest-var &body body)
Package

djula.

Source

pipeline.lisp.

Macro: def-unparsed-tag-processor (name args rest-var &body body)
Package

djula.

Source

pipeline.lisp.

Macro: with-file-handler ((string-var template-path) &body body)

evaluates ‘BODY’ with ‘STRING-VAR’ bound to a string representing the contents of the file pointed to be the template-path ‘TEMPLATE-PATH’, returning it’s results. if there is an error while binding ‘STRING-VAR’ and *CATCH-TEMPLATE-ERRORS-P* is T then it returns a function that is suitable output for the body of a DEF-TOKEN-COMPILER form that returns some debugging info.

Package

djula.

Source

tags.lisp.

Macro: with-template-error (recovery-form &body body)
Package

djula.

Source

conditions.lisp.


6.2.4 Ordinary functions

Function: alter-pathname (pathname &rest options)

alter pathname as specified in the options

Package

djula.locale.

Source

locale.lisp.

Function: and-bterm (boolexp)
Package

djula.

Source

tags.lisp.

Function: apply-filters (value filters)
Package

djula.

Source

filters.lisp.

Function: apply-keys/indexes (thing keys/indexes)
Package

djula.

Source

variables.lisp.

Function: backup-file (file)

backup the file by copying it from filename.ext to filename-n.ext where n is the next available number.

Package

djula.locale.

Source

locale.lisp.

Function: bliteral ()
Package

djula.

Source

tags.lisp.

Function: boolean-comparison ()
Package

djula.

Source

tags.lisp.

Function: boolexp-factor (boolexp)
Package

djula.

Source

tags.lisp.

Function: boolexp-parser ()
Package

djula.

Source

tags.lisp.

Function: bterm (boolexp)
Package

djula.

Source

tags.lisp.

Function: comparison-operator-parser ()
Package

djula.

Source

tags.lisp.

Function: compile-boolexp (bexp)
Package

djula.

Source

tags.lisp.

Function: compile-logical-statement (statement)

takes a "logical statement" like you would give {% if %} that has been parsed
into a list of keywords [eg: ’(:not :foo) or ’(:foo :and :baz) or
‘(:foo.bar :or :list.1)] and turns them into a thunk predicate for dispatching the conditional branching of the {% if %} tag. when called, the function returns two values:

1. the value returned by resolving the phrase
2. an error message string if something went wrong [ie, an invalid variable]. [note: if return value 2 is present, then its probably not safe to consider return value 1 useful]

Package

djula.

Source

tags.lisp.

Function: compile-string (string)

Compile the template in STRING. Returns a funcallable template.

Package

djula.

Source

compiler.lisp.

Function: compile-token (token)
Package

djula.

Source

compiler.lisp.

Function: current-translation-backend ()
Package

djula.

Source

translation.lisp.

Function: djula-emptyp (val)

The default truth decider function for if expressions.

This is Django documentation for if expressions:

The {% if %} tag evaluates a variable, and if that variable is “true” (i.e. exists, is not empty, and is not a false boolean value)

Package

djula.

Source

tags.lisp.

Function: escape-for-html (string)

Escapes the characters #\<, #\>, #\’, #\", and #\& for HTML output.

Package

djula.

Source

util.lisp.

Function: escape-string-split (char string &optional escape quotes)
Package

djula.

Source

variables.lisp.

Function: find-end-tag (tag-name tokens)

returns NIL if a :TAG token with the name ‘TAG-NAME’ can’t be found in ‘TOKENS’. Otherwise returns three values:

1. a list of all the tokens up to that token
2. a list of all tokens after that token
3. T, indicating that ‘TAG-NAME’ was found

Package

djula.

Source

tag.lisp.

Function: find-end-tag-nested (endtag tag tokens)

Find end tag ENDTAG taking into account possible nested tags of type TAG.

Like FIND-END-TAG, but taking into account control structures nesting.

Returns NIL if a :TAG token with the name ‘TAG-NAME’ can’t be found in ‘TOKENS’. Otherwise returns three values:

1. a list of all the tokens up to that token
2. a list of all tokens after that token
3. T, indicating that ‘TAG-NAME’ was found

Package

djula.

Source

tag.lisp.

Function: find-filter (name)

Return the filter by the name of NAME.

Package

djula.

Source

pipeline.lisp.

Function: find-tag-compiler (name)

Return the tag compiler by the name of NAME.

Package

djula.

Source

pipeline.lisp.

Function: find-tag-processor (name)

Return the tag processor by the name of NAME.

Package

djula.

Source

pipeline.lisp.

Function: find-token-compiler (name)

Return the token processor by the name of NAME.

Package

djula.

Source

pipeline.lisp.

Function: find-token-processor (name)

Return the token processor by the name of NAME.

Package

djula.

Source

pipeline.lisp.

Function: find-unparsed-tag-processor (tag-name)

Return the unparsed tag processor by the name of TAG-NAME.

Package

djula.

Source

pipeline.lisp.

Function: format-translation (string &rest args)
Package

djula.

Source

translation.lisp.

Function: get-closing-delimiter (type)

Return the string that closes the corresponding token TYPE.

Package

djula.

Source

lexer.lisp.

Function: get-variable (name)

takes a variable ‘NAME’ and returns:
1. the value of ‘NAME’
2. any error string generated by the lookup (if there is an error string then the lookup was unsuccessful)

Package

djula.

Source

variables.lisp.

Function: in-list (parser)
Package

djula.

Source

tags.lisp.

Function: integer-or-keyword (string)

If the STRING is an integer return an integer, otherwise return STRING as a keyword.

Package

djula.

Source

variables.lisp.

Function: join (separator list)

Join the strings in LIST, using SEPARATOR in between the elements.

Similar to Python’s str.join

Package

djula.

Source

util.lisp.

Function: next-tag (string start)

Return the position of the start of next tag in STRING starting from START.

Package

djula.

Source

lexer.lisp.

Function: not-bfactor (boolexp)
Package

djula.

Source

tags.lisp.

Function: or-bterm (boolexp)
Package

djula.

Source

tags.lisp.

Function: parse-filter-string (string)
Package

djula.

Source

variables.lisp.

Function: parse-if-clause (args clause-tokens)

Parse if clause taking into account else and elif tokens in body. Returns a :parsed-if clause.

Package

djula.

Source

tags.lisp.

Function: parse-rest-of-tag (string start)
Package

djula.

Source

tag.lisp.

Function: parse-tag (string current-position)

Return the lexer token and the index where the tag ended.

Package

djula.

Source

lexer.lisp.

Function: parse-template-string (template)

Transform the TEMPLATE into a list of lexer tokens

Package

djula.

Source

lexer.lisp.

Function: parse-template-string (string)
Package

djula.locale.

Source

locale.lisp.

Function: parse-variable-clause (unparsed-string)
Package

djula.

Source

variables.lisp.

Function: parse-variable-phrase (string)
Package

djula.

Source

variables.lisp.

Function: print-debugging-information (out)
Package

djula.

Source

tags.lisp.

Function: print-fancy-debugging-information (stream)
Package

djula.

Source

tags.lisp.

Function: process-ifequal-args (unparsed-string)
Package

djula.

Source

tags.lisp.

Function: process-token (token rest-token-list)
Package

djula.

Source

parser.lisp.

Function: process-tokens (tokens)
Package

djula.

Source

parser.lisp.

Function: remove-first (item sequence &key test key)

Removes the first ocurrence of item in sequence

Package

djula.

Source

tags.lisp.

Function: render-error-template (error backtrace &optional template stream)

Render the *ERROR-TEMPLATE* with the ERROR, the BACKTRACE and the TEMPLATE where the error ocurred.

Package

djula.

Source

conditions.lisp.

Function: resolve-plist (plist)
Package

djula.

Source

translation.lisp.

Function: resolve-variable-phrase (list)

takes a list starting wise a variable and ending with 0 or more keys or indexes [this is a direct translation from the dot (.) syntax] and returns two values:

1. the result [looking up the var and applying index/keys]
2. an error string if something went wrond [note: if there is an error string then the result probably shouldn’t be considered useful.

Package

djula.

Source

variables.lisp.

Function: semi-parse-tag (string)
Package

djula.

Source

tag.lisp.

Function: split-if-clause (clause-tokens)

returns two values:

1. all clause tokens that appear _before_ the first :ELSE token 2. all clause tokens that appear _after_ the first :ELSE token

Package

djula.

Source

tags.lisp.

Function: string-string-p (s)

test if s is a string that contains a string representation

Package

djula.locale.

Source

locale.lisp.

Function: string-translate-strings (string)

given a djula html template string, find all the substrings to be translated

Package

djula.locale.

Source

locale.lisp.

Function: template-error (msg &rest args)
Package

djula.

Source

conditions.lisp.

Function: template-error* (error msg &rest args)
Package

djula.

Source

conditions.lisp.

Function: template-error-string (fmt &rest args)
Package

djula.

Source

conditions.lisp.

Function: template-error-string* (error fmt &rest args)
Package

djula.

Source

conditions.lisp.

Function: token-type (char)

Return the token-type for CHAR.

Package

djula.

Source

lexer.lisp.

Function: transform (transform)

Parser: transform and return the result, when the transformation applies (not null)

Package

djula.

Source

tags.lisp.

Function: trim-whitespace (string)

STRING without whitespace at ends.

Package

djula.locale.

Source

locale.lisp.

Function: truncate-characters (string max-length &optional elision-string)

If the STRING is larger than MAX-LENGTH, truncate it and append the ELISION-STRING so that the total length is MAX-LENGTH. Otherwise return the STRING unmodified. If the truncation is impossible to accomplish, return nil.

Package

djula.

Source

util.lisp.


6.2.5 Generic functions

Generic Function: backend-translate (backend string language &rest args)
Package

djula.

Source

translation.lisp.

Methods
Method: backend-translate ((backend null) string language &rest args)
Method: backend-translate (backend string language &rest args)
Generic Function: compile-template-file (compiled-template)
Package

djula.

Methods
Method: compile-template-file ((compiled-template compiled-template))
Source

compiler.lisp.

Generic Reader: compiled-template (object)
Generic Writer: (setf compiled-template) (object)
Package

djula.

Methods
Reader Method: compiled-template ((compiled-template compiled-template))
Writer Method: (setf compiled-template) ((compiled-template compiled-template))

The compiled template (a closure)

Source

compiler.lisp.

Target Slot

compiled-template.

Generic Function: iterable-list (iterable)

Create a list from ITERABLE.
This is used in {% for %} to convert different types.
Library user can extend this generic function, add methods for types to iterate on.

Package

djula.

Source

tags.lisp.

Methods
Method: iterable-list ((iterable hash-table))
Method: iterable-list ((iterable array))
Method: iterable-list ((iterable sequence))
Method: iterable-list (iterable)
Generic Reader: linked-templates (object)
Generic Writer: (setf linked-templates) (object)
Package

djula.

Methods
Reader Method: linked-templates ((compiled-template compiled-template))
Writer Method: (setf linked-templates) ((compiled-template compiled-template))

Extends for Include files.

Source

compiler.lisp.

Target Slot

linked-templates.

Generic Reader: search-path (object)
Generic Writer: (setf search-path) (object)
Package

djula.

Methods
Reader Method: search-path ((filesystem-template-store filesystem-template-store))
Writer Method: (setf search-path) ((filesystem-template-store filesystem-template-store))

User-provided list of template locations.

Source

template-store.lisp.

Target Slot

search-path.

Generic Function: template-changed (compiled-template)
Package

djula.

Methods
Method: template-changed ((compiled-template compiled-template))
Source

compiler.lisp.

Generic Reader: template-file (object)
Generic Writer: (setf template-file) (object)
Package

djula.

Methods
Reader Method: template-file ((compiled-template compiled-template))
Writer Method: (setf template-file) ((compiled-template compiled-template))

The filepath of the template

Source

compiler.lisp.

Target Slot

template-file.

Generic Reader: template-file-write-date (object)
Generic Writer: (setf template-file-write-date) (object)
Package

djula.

Methods
Reader Method: template-file-write-date ((compiled-template compiled-template))
Writer Method: (setf template-file-write-date) ((compiled-template compiled-template))

The write date of the template file

Source

compiler.lisp.

Target Slot

template-file-write-date.


6.2.6 Conditions

Condition: template-error
Package

djula.

Source

conditions.lisp.

Direct superclasses

simple-error.


6.2.7 Classes

Class: compiled-template

A compiled template

Package

djula.

Source

compiler.lisp.

Direct superclasses

funcallable-standard-object.

Direct methods
Direct slots
Slot: compiled-template

The compiled template (a closure)

Initargs

:compiled-template

Readers

compiled-template.

Writers

(setf compiled-template).

Slot: linked-templates

Extends for Include files.

Initform

(quote nil)

Initargs

:linked-templates

Readers

linked-templates.

Writers

(setf linked-templates).

Slot: template-file

The filepath of the template

Initform

(error "provide the template file")

Initargs

:template-file

Readers

template-file.

Writers

(setf template-file).

Slot: template-file-write-date

The write date of the template file

Readers

template-file-write-date.

Writers

(setf template-file-write-date).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   I   J   L   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

(
(setf compiled-template): Private generic functions
(setf compiled-template): Private generic functions
(setf linked-templates): Private generic functions
(setf linked-templates): Private generic functions
(setf search-path): Private generic functions
(setf search-path): Private generic functions
(setf template-file): Private generic functions
(setf template-file): Private generic functions
(setf template-file-write-date): Private generic functions
(setf template-file-write-date): Private generic functions

A
accum: Private macros
add: Public ordinary functions
add-template-directory: Public ordinary functions
addslashes: Public ordinary functions
almost-parsed-ifequal: Public ordinary functions
almost-parsed-ifnotequal: Public ordinary functions
alter-pathname: Private ordinary functions
and-bterm: Private ordinary functions
apply-filters: Private ordinary functions
apply-keys/indexes: Private ordinary functions
autoescape: Public ordinary functions

B
backend-translate: Private generic functions
backend-translate: Private generic functions
backend-translate: Private generic functions
backup-file: Private ordinary functions
bliteral: Private ordinary functions
block: Public ordinary functions
boolean-comparison: Private ordinary functions
boolexp-factor: Private ordinary functions
boolexp-parser: Private ordinary functions
bterm: Private ordinary functions

C
capfirst: Public ordinary functions
comment: Public ordinary functions
comment: Public ordinary functions
comment-tag: Public ordinary functions
comparison-operator-parser: Private ordinary functions
compile-boolexp: Private ordinary functions
compile-logical-statement: Private ordinary functions
compile-string: Private ordinary functions
compile-template: Public generic functions
compile-template: Public generic functions
compile-template: Public generic functions
compile-template*: Public ordinary functions
compile-template-file: Private generic functions
compile-template-file: Private generic functions
compile-token: Private ordinary functions
compiled-template: Private generic functions
compiled-template: Private generic functions
current-translation-backend: Private ordinary functions
cut: Public ordinary functions
cycle: Public ordinary functions

D
date: Public ordinary functions
datetime: Public ordinary functions
debug: Public ordinary functions
def-delimited-tag: Private macros
def-filter: Public macros
def-tag-compiler: Public macros
def-tag-processor: Private macros
def-token-compiler: Private macros
def-token-processor: Private macros
def-unparsed-tag-processor: Private macros
default: Public ordinary functions
directory-translate-strings: Public ordinary functions
divisibleby: Public ordinary functions
djula-emptyp: Private ordinary functions

E
emit-js: Public ordinary functions
endautoescape: Public ordinary functions
endblock: Public ordinary functions
endcomment: Public ordinary functions
endfilter: Public ordinary functions
endfor: Public ordinary functions
endif: Public ordinary functions
endifchanged: Public ordinary functions
endifequal: Public ordinary functions
endifnotequal: Public ordinary functions
endjs-script: Public ordinary functions
escape: Public ordinary functions
escape-for-html: Private ordinary functions
escape-string-split: Private ordinary functions
extends: Public ordinary functions

F
fetch-template: Public generic functions
fetch-template: Public generic functions
fetch-template: Public generic functions
fetch-template*: Public ordinary functions
file-template-translate-strings: Public ordinary functions
filter: Public ordinary functions
find-end-tag: Private ordinary functions
find-end-tag-nested: Private ordinary functions
find-filter: Private ordinary functions
find-tag-compiler: Private ordinary functions
find-tag-processor: Private ordinary functions
find-template: Public generic functions
find-template: Public generic functions
find-template: Public generic functions
find-template*: Public ordinary functions
find-token-compiler: Private ordinary functions
find-token-processor: Private ordinary functions
find-unparsed-tag-processor: Private ordinary functions
first: Public ordinary functions
firstof: Public ordinary functions
for: Public ordinary functions
force-escape: Public ordinary functions
format: Public ordinary functions
format-translation: Private ordinary functions
fragment-compiler: Public generic functions
fragment-compiler: Public generic functions
Function, add: Public ordinary functions
Function, add-template-directory: Public ordinary functions
Function, addslashes: Public ordinary functions
Function, almost-parsed-ifequal: Public ordinary functions
Function, almost-parsed-ifnotequal: Public ordinary functions
Function, alter-pathname: Private ordinary functions
Function, and-bterm: Private ordinary functions
Function, apply-filters: Private ordinary functions
Function, apply-keys/indexes: Private ordinary functions
Function, autoescape: Public ordinary functions
Function, backup-file: Private ordinary functions
Function, bliteral: Private ordinary functions
Function, block: Public ordinary functions
Function, boolean-comparison: Private ordinary functions
Function, boolexp-factor: Private ordinary functions
Function, boolexp-parser: Private ordinary functions
Function, bterm: Private ordinary functions
Function, capfirst: Public ordinary functions
Function, comment: Public ordinary functions
Function, comment: Public ordinary functions
Function, comment-tag: Public ordinary functions
Function, comparison-operator-parser: Private ordinary functions
Function, compile-boolexp: Private ordinary functions
Function, compile-logical-statement: Private ordinary functions
Function, compile-string: Private ordinary functions
Function, compile-template*: Public ordinary functions
Function, compile-token: Private ordinary functions
Function, current-translation-backend: Private ordinary functions
Function, cut: Public ordinary functions
Function, cycle: Public ordinary functions
Function, date: Public ordinary functions
Function, datetime: Public ordinary functions
Function, debug: Public ordinary functions
Function, default: Public ordinary functions
Function, directory-translate-strings: Public ordinary functions
Function, divisibleby: Public ordinary functions
Function, djula-emptyp: Private ordinary functions
Function, emit-js: Public ordinary functions
Function, endautoescape: Public ordinary functions
Function, endblock: Public ordinary functions
Function, endcomment: Public ordinary functions
Function, endfilter: Public ordinary functions
Function, endfor: Public ordinary functions
Function, endif: Public ordinary functions
Function, endifchanged: Public ordinary functions
Function, endifequal: Public ordinary functions
Function, endifnotequal: Public ordinary functions
Function, endjs-script: Public ordinary functions
Function, escape: Public ordinary functions
Function, escape-for-html: Private ordinary functions
Function, escape-string-split: Private ordinary functions
Function, extends: Public ordinary functions
Function, fetch-template*: Public ordinary functions
Function, file-template-translate-strings: Public ordinary functions
Function, filter: Public ordinary functions
Function, find-end-tag: Private ordinary functions
Function, find-end-tag-nested: Private ordinary functions
Function, find-filter: Private ordinary functions
Function, find-tag-compiler: Private ordinary functions
Function, find-tag-processor: Private ordinary functions
Function, find-template*: Public ordinary functions
Function, find-token-compiler: Private ordinary functions
Function, find-token-processor: Private ordinary functions
Function, find-unparsed-tag-processor: Private ordinary functions
Function, first: Public ordinary functions
Function, firstof: Public ordinary functions
Function, for: Public ordinary functions
Function, force-escape: Public ordinary functions
Function, format: Public ordinary functions
Function, format-translation: Private ordinary functions
Function, get-closing-delimiter: Private ordinary functions
Function, get-variable: Private ordinary functions
Function, if: Public ordinary functions
Function, ifchanged: Public ordinary functions
Function, ifequal: Public ordinary functions
Function, ifnotequal: Public ordinary functions
Function, in-list: Private ordinary functions
Function, include: Public ordinary functions
Function, integer-or-keyword: Private ordinary functions
Function, join: Public ordinary functions
Function, join: Private ordinary functions
Function, js: Public ordinary functions
Function, js-script: Public ordinary functions
Function, last: Public ordinary functions
Function, length: Public ordinary functions
Function, length_is: Public ordinary functions
Function, linebreaks: Public ordinary functions
Function, linebreaksbr: Public ordinary functions
Function, lisp: Public ordinary functions
Function, lisp: Public ordinary functions
Function, list-asdf-system-templates: Public ordinary functions
Function, locale-list: Public ordinary functions
Function, lower: Public ordinary functions
Function, make_list: Public ordinary functions
Function, next-tag: Private ordinary functions
Function, not-bfactor: Private ordinary functions
Function, or-bterm: Private ordinary functions
Function, parse-filter-string: Private ordinary functions
Function, parse-if-clause: Private ordinary functions
Function, parse-rest-of-tag: Private ordinary functions
Function, parse-tag: Private ordinary functions
Function, parse-template-string: Private ordinary functions
Function, parse-template-string: Private ordinary functions
Function, parse-variable-clause: Private ordinary functions
Function, parse-variable-phrase: Private ordinary functions
Function, parsed-autoescape: Public ordinary functions
Function, parsed-block: Public ordinary functions
Function, parsed-filter: Public ordinary functions
Function, parsed-for: Public ordinary functions
Function, parsed-if: Public ordinary functions
Function, parsed-ifchanged: Public ordinary functions
Function, parsed-ifequal: Public ordinary functions
Function, parsed-js: Public ordinary functions
Function, parsed-js-script: Public ordinary functions
Function, parsed-lisp: Public ordinary functions
Function, parsed-set: Public ordinary functions
Function, print-debugging-information: Private ordinary functions
Function, print-fancy-debugging-information: Private ordinary functions
Function, process-ifequal-args: Private ordinary functions
Function, process-token: Private ordinary functions
Function, process-tokens: Private ordinary functions
Function, remove-first: Private ordinary functions
Function, render-error-template: Private ordinary functions
Function, render-template*: Public ordinary functions
Function, replace: Public ordinary functions
Function, resolve-plist: Private ordinary functions
Function, resolve-variable-phrase: Private ordinary functions
Function, rest: Public ordinary functions
Function, reverse: Public ordinary functions
Function, safe: Public ordinary functions
Function, scan: Public ordinary functions
Function, semi-parse-tag: Private ordinary functions
Function, semi-parsed-filter: Public ordinary functions
Function, semi-parsed-if: Public ordinary functions
Function, semi-parsed-ifequal: Public ordinary functions
Function, semi-parsed-ifnotequal: Public ordinary functions
Function, semi-parsed-js-script: Public ordinary functions
Function, set: Public ordinary functions
Function, set-language: Public ordinary functions
Function, set-package: Public ordinary functions
Function, show-language: Public ordinary functions
Function, slice: Public ordinary functions
Function, sort: Public ordinary functions
Function, split-if-clause: Private ordinary functions
Function, ssi: Public ordinary functions
Function, string: Public ordinary functions
Function, string: Public ordinary functions
Function, string-string-p: Private ordinary functions
Function, string-translate-strings: Private ordinary functions
Function, super: Public ordinary functions
Function, tag: Public ordinary functions
Function, tag: Public ordinary functions
Function, template-error: Private ordinary functions
Function, template-error*: Private ordinary functions
Function, template-error-string: Private ordinary functions
Function, template-error-string*: Private ordinary functions
Function, templatetag: Public ordinary functions
Function, time: Public ordinary functions
Function, token-type: Private ordinary functions
Function, trans: Public ordinary functions
Function, trans: Public ordinary functions
Function, transform: Private ordinary functions
Function, translate: Public ordinary functions
Function, translation: Public ordinary functions
Function, trim-whitespace: Private ordinary functions
Function, truncate-characters: Private ordinary functions
Function, truncatechars: Public ordinary functions
Function, unparsed-tag: Public ordinary functions
Function, unparsed-translation: Public ordinary functions
Function, unparsed-variable: Public ordinary functions
Function, update-caveman-project: Public ordinary functions
Function, update-locale-list: Public ordinary functions
Function, update-project: Public ordinary functions
Function, upper: Public ordinary functions
Function, url-encode: Public ordinary functions
Function, url-encode-path: Public ordinary functions
Function, urlencode: Public ordinary functions
Function, variable: Public ordinary functions
Function, verbatim: Public ordinary functions
Function, with: Public ordinary functions

G
Generic Function, (setf compiled-template): Private generic functions
Generic Function, (setf linked-templates): Private generic functions
Generic Function, (setf search-path): Private generic functions
Generic Function, (setf template-file): Private generic functions
Generic Function, (setf template-file-write-date): Private generic functions
Generic Function, backend-translate: Private generic functions
Generic Function, compile-template: Public generic functions
Generic Function, compile-template-file: Private generic functions
Generic Function, compiled-template: Private generic functions
Generic Function, fetch-template: Public generic functions
Generic Function, find-template: Public generic functions
Generic Function, fragment-compiler: Public generic functions
Generic Function, iterable-list: Private generic functions
Generic Function, linked-templates: Private generic functions
Generic Function, search-path: Private generic functions
Generic Function, template-changed: Private generic functions
Generic Function, template-file: Private generic functions
Generic Function, template-file-write-date: Private generic functions
Generic Function, template-print-object: Public generic functions
get-closing-delimiter: Private ordinary functions
get-variable: Private ordinary functions

I
if: Public ordinary functions
ifchanged: Public ordinary functions
ifequal: Public ordinary functions
ifnotequal: Public ordinary functions
in-list: Private ordinary functions
include: Public ordinary functions
initialize-instance: Public standalone methods
integer-or-keyword: Private ordinary functions
iterable-list: Private generic functions
iterable-list: Private generic functions
iterable-list: Private generic functions
iterable-list: Private generic functions
iterable-list: Private generic functions

J
join: Public ordinary functions
join: Private ordinary functions
js: Public ordinary functions
js-script: Public ordinary functions

L
last: Public ordinary functions
length: Public ordinary functions
length_is: Public ordinary functions
linebreaks: Public ordinary functions
linebreaksbr: Public ordinary functions
linked-templates: Private generic functions
linked-templates: Private generic functions
lisp: Public ordinary functions
lisp: Public ordinary functions
list-asdf-system-templates: Public ordinary functions
locale-list: Public ordinary functions
lower: Public ordinary functions

M
Macro, accum: Private macros
Macro, def-delimited-tag: Private macros
Macro, def-filter: Public macros
Macro, def-tag-compiler: Public macros
Macro, def-tag-processor: Private macros
Macro, def-token-compiler: Private macros
Macro, def-token-processor: Private macros
Macro, def-unparsed-tag-processor: Private macros
Macro, with-file-handler: Private macros
Macro, with-template-error: Private macros
make_list: Public ordinary functions
Method, (setf compiled-template): Private generic functions
Method, (setf linked-templates): Private generic functions
Method, (setf search-path): Private generic functions
Method, (setf template-file): Private generic functions
Method, (setf template-file-write-date): Private generic functions
Method, backend-translate: Private generic functions
Method, backend-translate: Private generic functions
Method, compile-template: Public generic functions
Method, compile-template: Public generic functions
Method, compile-template-file: Private generic functions
Method, compiled-template: Private generic functions
Method, fetch-template: Public generic functions
Method, fetch-template: Public generic functions
Method, find-template: Public generic functions
Method, find-template: Public generic functions
Method, fragment-compiler: Public generic functions
Method, initialize-instance: Public standalone methods
Method, iterable-list: Private generic functions
Method, iterable-list: Private generic functions
Method, iterable-list: Private generic functions
Method, iterable-list: Private generic functions
Method, linked-templates: Private generic functions
Method, print-object: Public standalone methods
Method, search-path: Private generic functions
Method, template-changed: Private generic functions
Method, template-file: Private generic functions
Method, template-file-write-date: Private generic functions
Method, template-print-object: Public generic functions
Method, template-print-object: Public generic functions
Method, template-print-object: Public generic functions

N
next-tag: Private ordinary functions
not-bfactor: Private ordinary functions

O
or-bterm: Private ordinary functions

P
parse-filter-string: Private ordinary functions
parse-if-clause: Private ordinary functions
parse-rest-of-tag: Private ordinary functions
parse-tag: Private ordinary functions
parse-template-string: Private ordinary functions
parse-template-string: Private ordinary functions
parse-variable-clause: Private ordinary functions
parse-variable-phrase: Private ordinary functions
parsed-autoescape: Public ordinary functions
parsed-block: Public ordinary functions
parsed-filter: Public ordinary functions
parsed-for: Public ordinary functions
parsed-if: Public ordinary functions
parsed-ifchanged: Public ordinary functions
parsed-ifequal: Public ordinary functions
parsed-js: Public ordinary functions
parsed-js-script: Public ordinary functions
parsed-lisp: Public ordinary functions
parsed-set: Public ordinary functions
print-debugging-information: Private ordinary functions
print-fancy-debugging-information: Private ordinary functions
print-object: Public standalone methods
process-ifequal-args: Private ordinary functions
process-token: Private ordinary functions
process-tokens: Private ordinary functions

R
remove-first: Private ordinary functions
render-error-template: Private ordinary functions
render-template*: Public ordinary functions
replace: Public ordinary functions
resolve-plist: Private ordinary functions
resolve-variable-phrase: Private ordinary functions
rest: Public ordinary functions
reverse: Public ordinary functions

S
safe: Public ordinary functions
scan: Public ordinary functions
search-path: Private generic functions
search-path: Private generic functions
semi-parse-tag: Private ordinary functions
semi-parsed-filter: Public ordinary functions
semi-parsed-if: Public ordinary functions
semi-parsed-ifequal: Public ordinary functions
semi-parsed-ifnotequal: Public ordinary functions
semi-parsed-js-script: Public ordinary functions
set: Public ordinary functions
set-language: Public ordinary functions
set-package: Public ordinary functions
show-language: Public ordinary functions
slice: Public ordinary functions
sort: Public ordinary functions
split-if-clause: Private ordinary functions
ssi: Public ordinary functions
string: Public ordinary functions
string: Public ordinary functions
string-string-p: Private ordinary functions
string-translate-strings: Private ordinary functions
super: Public ordinary functions

T
tag: Public ordinary functions
tag: Public ordinary functions
template-changed: Private generic functions
template-changed: Private generic functions
template-error: Private ordinary functions
template-error*: Private ordinary functions
template-error-string: Private ordinary functions
template-error-string*: Private ordinary functions
template-file: Private generic functions
template-file: Private generic functions
template-file-write-date: Private generic functions
template-file-write-date: Private generic functions
template-print-object: Public generic functions
template-print-object: Public generic functions
template-print-object: Public generic functions
template-print-object: Public generic functions
templatetag: Public ordinary functions
time: Public ordinary functions
token-type: Private ordinary functions
trans: Public ordinary functions
trans: Public ordinary functions
transform: Private ordinary functions
translate: Public ordinary functions
translation: Public ordinary functions
trim-whitespace: Private ordinary functions
truncate-characters: Private ordinary functions
truncatechars: Public ordinary functions

U
unparsed-tag: Public ordinary functions
unparsed-translation: Public ordinary functions
unparsed-variable: Public ordinary functions
update-caveman-project: Public ordinary functions
update-locale-list: Public ordinary functions
update-project: Public ordinary functions
upper: Public ordinary functions
url-encode: Public ordinary functions
url-encode-path: Public ordinary functions
urlencode: Public ordinary functions

V
variable: Public ordinary functions
verbatim: Public ordinary functions

W
with: Public ordinary functions
with-file-handler: Private macros
with-template-error: Private macros


A.3 Variables

Jump to:   *   +  
C   F   L   S   T  
Index Entry  Section

*
*accumulated-javascript-strings*: Private special variables
*allow-include-roots*: Public special variables
*auto-escape*: Public special variables
*block-alist*: Private special variables
*catch-template-errors-p*: Public special variables
*current-block*: Private special variables
*current-compiler*: Public special variables
*current-language*: Public special variables
*current-store*: Public special variables
*current-template*: Private special variables
*default-language*: Public special variables
*default-template-arguments*: Public special variables
*djula-emptyp*: Public special variables
*djula-execute-package*: Public special variables
*elision-string*: Public special variables
*error-template*: Public special variables
*eval-lisp-tags*: Private special variables
*fancy-debug-p*: Public special variables
*fancy-error-template-p*: Public special variables
*linked-templates*: Private special variables
*recompile-templates-on-change*: Public special variables
*template-arguments*: Private special variables
*translation-backend*: Public special variables
*translation-backends*: Private special variables
*untranslated-messages*: Private special variables
*verbose-errors-p*: Public special variables
*warn-on-untranslated-messages*: Private special variables

+
+whitespace+: Private constants

C
compiled-template: Private classes
Constant, +whitespace+: Private constants
current-path: Public classes

F
fragment-compiler: Public classes

L
linked-templates: Private classes

S
search-path: Public classes
Slot, compiled-template: Private classes
Slot, current-path: Public classes
Slot, fragment-compiler: Public classes
Slot, linked-templates: Private classes
Slot, search-path: Public classes
Slot, template-file: Private classes
Slot, template-file-write-date: Private classes
Slot, templates: Public classes
Slot, templates-contents: Public classes
Special Variable, *accumulated-javascript-strings*: Private special variables
Special Variable, *allow-include-roots*: Public special variables
Special Variable, *auto-escape*: Public special variables
Special Variable, *block-alist*: Private special variables
Special Variable, *catch-template-errors-p*: Public special variables
Special Variable, *current-block*: Private special variables
Special Variable, *current-compiler*: Public special variables
Special Variable, *current-language*: Public special variables
Special Variable, *current-store*: Public special variables
Special Variable, *current-template*: Private special variables
Special Variable, *default-language*: Public special variables
Special Variable, *default-template-arguments*: Public special variables
Special Variable, *djula-emptyp*: Public special variables
Special Variable, *djula-execute-package*: Public special variables
Special Variable, *elision-string*: Public special variables
Special Variable, *error-template*: Public special variables
Special Variable, *eval-lisp-tags*: Private special variables
Special Variable, *fancy-debug-p*: Public special variables
Special Variable, *fancy-error-template-p*: Public special variables
Special Variable, *linked-templates*: Private special variables
Special Variable, *recompile-templates-on-change*: Public special variables
Special Variable, *template-arguments*: Private special variables
Special Variable, *translation-backend*: Public special variables
Special Variable, *translation-backends*: Private special variables
Special Variable, *untranslated-messages*: Private special variables
Special Variable, *verbose-errors-p*: Public special variables
Special Variable, *warn-on-untranslated-messages*: Private special variables

T
template-file: Private classes
template-file-write-date: Private classes
templates: Public classes
templates-contents: Public classes


A.4 Data types

Jump to:   C   D   F   L   M   P   S   T   U   V  
Index Entry  Section

C
Class, compiled-template: Private classes
Class, compiler: Public classes
Class, filesystem-template-store: Public classes
Class, memory-template-store: Public classes
Class, template-store: Public classes
Class, toplevel-compiler: Public classes
compiled-template: Private classes
compiler: Public classes
compiler.lisp: The djula/src/compiler․lisp file
Condition, template-error: Private conditions
conditions.lisp: The djula/src/conditions․lisp file

D
djula: The djula system
djula: The djula package
djula.asd: The djula/djula․asd file
djula.filters: The djula․filters package
djula.locale: The djula․locale package
djula.tag-compilers: The djula․tag-compilers package
djula.tag-processors: The djula․tag-processors package
djula.token-compilers: The djula․token-compilers package
djula.token-processors: The djula․token-processors package
djula.unparsed-tag-processors: The djula․unparsed-tag-processors package

F
File, compiler.lisp: The djula/src/compiler․lisp file
File, conditions.lisp: The djula/src/conditions․lisp file
File, djula.asd: The djula/djula․asd file
File, filters.lisp: The djula/src/filters․lisp file
File, lexer.lisp: The djula/src/lexer․lisp file
File, locale.lisp: The djula/src/locale․lisp file
File, packages.lisp: The djula/src/packages․lisp file
File, parser.lisp: The djula/src/parser․lisp file
File, pipeline.lisp: The djula/src/pipeline․lisp file
File, specials.lisp: The djula/src/specials․lisp file
File, tag.lisp: The djula/src/tag․lisp file
File, tags.lisp: The djula/src/tags․lisp file
File, template-store.lisp: The djula/src/template-store․lisp file
File, translation.lisp: The djula/src/translation․lisp file
File, util.lisp: The djula/src/util․lisp file
File, variables.lisp: The djula/src/variables․lisp file
filesystem-template-store: Public classes
filters.lisp: The djula/src/filters․lisp file

L
lexer.lisp: The djula/src/lexer․lisp file
locale.lisp: The djula/src/locale․lisp file

M
memory-template-store: Public classes
Module, src: The djula/src module

P
Package, djula: The djula package
Package, djula.filters: The djula․filters package
Package, djula.locale: The djula․locale package
Package, djula.tag-compilers: The djula․tag-compilers package
Package, djula.tag-processors: The djula․tag-processors package
Package, djula.token-compilers: The djula․token-compilers package
Package, djula.token-processors: The djula․token-processors package
Package, djula.unparsed-tag-processors: The djula․unparsed-tag-processors package
packages.lisp: The djula/src/packages․lisp file
parser.lisp: The djula/src/parser․lisp file
pipeline.lisp: The djula/src/pipeline․lisp file

S
specials.lisp: The djula/src/specials․lisp file
src: The djula/src module
System, djula: The djula system

T
tag.lisp: The djula/src/tag․lisp file
tags.lisp: The djula/src/tags․lisp file
template-error: Private conditions
template-store: Public classes
template-store.lisp: The djula/src/template-store․lisp file
toplevel-compiler: Public classes
translation.lisp: The djula/src/translation․lisp file

U
util.lisp: The djula/src/util․lisp file

V
variables.lisp: The djula/src/variables․lisp file