\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Vicnet} \pdfinfo{ /Title (jinja-2-template-syntax.pdf) /Creator (Cheatography) /Author (Vicnet) /Subject (Jinja 2 template syntax Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Jinja 2 template syntax Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Vicnet} via \textcolor{DarkBackground}{\uline{cheatography.com/19532/cs/3377/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Vicnet \\ \uline{cheatography.com/vicnet} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 13th May, 2016.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Délimiteurs}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ Variable \}\}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \{\{ Var.attrib \}\} & \{\{ Var{[}'attrib'{]} \}\} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ Variable | filtre | ... \}\}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\% Controle \%\}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\# Commentaires \#\}} \tn % Row Count 5 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Controles}} \tn % Row 0 \SetRowColor{LightBackground} `for else endfor` & `loop.{\emph{xxx}}` \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`if elif else endif`} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `macro endmacro` & `call` \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`filter endfilter`} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `set` & `set {\emph{block}} endset` \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `include` & `ignore missing` \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `import` & `from import as` \tn % Row Count 7 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.54301 cm} x{1.16956 cm} x{1.6708 cm} p{0.79363 cm} } \SetRowColor{DarkBackground} \mymulticolumn{4}{x{5.377cm}}{\bf\textcolor{white}{Opérateurs}} \tn % Row 0 \SetRowColor{LightBackground} + & - & / & // \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \% & * & ** & \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} == & != & \textgreater{} & \textgreater{}= \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \textless{} & \textless{}= & & \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} and & or & not & (expr) \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} in & is & | & \textasciitilde{} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} ./{[}{]} & `foo.bar` & `foor{[}'bar'{]}` & \tn % Row Count 7 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}----} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Espaces}} \tn % Row 0 \SetRowColor{LightBackground} `\{\%-` `-\%\}` & supprime espaces avant ou après \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`\{\%+`} \tn % Row Count 3 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Filtre Chaines}} \tn % Row 0 \SetRowColor{LightBackground} `capitalize({\emph{s}})` & `center({\emph{value,width}})` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `escape({\emph{s}})` & `forceescape({\emph{value}})` \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`format({\emph{value,*args,**kwargs)}})`} \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`indent({\emph{s,width=4,indentfirst=False}})`} \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} `lower({\emph{s}})` & `upper({\emph{s}})` \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`pprint({\emph{value,verbose=False}})`} \tn % Row Count 7 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`replace({\emph{s,old,new,count=None}})`} \tn % Row Count 8 (+ 1) % Row 7 \SetRowColor{white} `string({\emph{object}})` & `striptags({\emph{value}})` \tn % Row Count 10 (+ 2) % Row 8 \SetRowColor{LightBackground} `title({\emph{s}})` & `trim({\emph{value}})` \tn % Row Count 11 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`urlencode({\emph{value}})`} \tn % Row Count 12 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`urlize({\emph{value,trim\_url\_limit,nofollow,target}})`} \tn % Row Count 13 (+ 1) % Row 11 \SetRowColor{white} `wordcount({\emph{s}})` & `xmlattr({\emph{d,autospace=True}})` \tn % Row Count 15 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Filtre Nombres}} \tn % Row 0 \SetRowColor{LightBackground} `abs({\emph{number}})` & `random({\emph{seq}})` \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `int({\emph{value,default=0}})` & `float({\emph{value,default=0.0}})` \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`sum({\emph{iterable,attribute=None,start=0}})`} \tn % Row Count 4 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.88666 cm} x{2.09034 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Héritage}} \tn % Row 0 \SetRowColor{LightBackground} `block {\emph{name}}` & `endblock` \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`extends {\emph{"templfile"}}`} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `self.{\emph{name}}` & `super()` \tn % Row Count 3 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Les `endblock` peuvent être nommés} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.14011 cm} x{2.83689 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Global}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`range({\emph{start,stop,step}})`} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`libsum({\emph{n=5,html=True,min=20,max=100}})`} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `dict({\emph{**items}})` & `class cylcler({\emph{*items}}` \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} `reset()` & `next()` \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} `current` & `class joiner({\emph{sep=','}})` \tn % Row Count 7 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.78712 cm} x{2.18988 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Filtre Divers}} \tn % Row 0 \SetRowColor{LightBackground} `attr({\emph{obj,name}})` & `rejectattr()` \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`default({\emph{value,default,boolean=False}})` | `d`} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`filesizeformat({\emph{value, binary=False}})`} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`safe({\emph{value}})`} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `select()` & `selectattr()` \tn % Row Count 5 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Utilisé dans `\{\{ Variable | filtre | ... \}\}` ou dans les commandes} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.93643 cm} x{2.04057 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Filtre Liste}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`dicsort({\emph{value,case\_sensitive=False,by='key')}})`} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `first({\emph{seq}})` & `last({\emph{seq}})` \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `groupby({\emph{value,attr}})` & `map()` \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`join({\emph{value,d='u',attribute=None}})`} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `lenght({\emph{object}})` & `llist({\emph{value}})` \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`reverse({\emph{value}})`} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `select()` & `selectattr()` \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`slice({\emph{value,slices,fille\_with=None}})`} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`sort({\emph{value,reverse,case\_sensistive,attribute}})`} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`sum({\emph{iterable,attribute=None,start=0}})`} \tn % Row Count 10 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.38896 cm} x{2.58804 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Tests}} \tn % Row 0 \SetRowColor{LightBackground} `callable({\emph{object}})` & `divisibleby({\emph{value,num}})` \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `escaped({\emph{value}})` & `mapping({\emph{value}})` \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} `iterable({\emph{value}})` & `sequence({\emph{value}})` \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} `string({\emph{value}})` & `number({\emph{value}})` \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} `lower({\emph{value}})` & `upper({\emph{value}})` \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} `defined({\emph{value}})` & `undefined({\emph{value}})` \tn % Row Count 7 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`none({\emph{value}})`} \tn % Row Count 8 (+ 1) % Row 7 \SetRowColor{white} `even({\emph{value}})` & `odd({\emph{value}})` \tn % Row Count 9 (+ 1) % Row 8 \SetRowColor{LightBackground} `equalto({\emph{value,other}})` & `sameas({\emph{value}})` \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}