Merge branch 'master' of ssh://barant.com/git/JetCore
This commit is contained in:
commit
ddf0595fb1
59
JetCore.aux
59
JetCore.aux
@ -1,59 +0,0 @@
|
|||||||
\relax
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{5}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Tags and Attributes}{7}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {2.1}User Defined Tags and Tag Liraries}{7}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Variables and Variable Types}{9}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Global Variables}{9}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Local Variables}{9}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Keyword Variables}{10}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Environment Variables}{10}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {3.5}CGI Variables}{10}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Expressions}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Operators}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Arithmentic Operators}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Boolean Operators}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Function Reference}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}concat}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}integer}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}left}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}random}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.5}round}{11}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.6}substring}{12}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Common Gateway Interface Features}{13}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {chapter}{\numberline {6}Tag Reference}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{lof}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{lot}{\addvspace {10\p@ }}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.1}call}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.2}comment}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.3}cookie}{15}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.4}dump}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.5}expr}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.6}for}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.7}header}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.8}if/else}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.9}ifrow/else}{16}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.10}include}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.11}jet}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.12}mysql}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.13}read}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.14}set}{17}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.15}sql}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.16}stream}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.17}system}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.18}tag}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.19}until}{18}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.20}while}{19}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.21}whiledir}{19}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.22}whilerow}{19}{}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {6.23}write}{19}{}\protected@file@percent }
|
|
||||||
\gdef \@abspage@last{19}
|
|
122
JetCore.log
122
JetCore.log
@ -1,122 +0,0 @@
|
|||||||
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex 2024.12.23) 6 JAN 2025 08:49
|
|
||||||
entering extended mode
|
|
||||||
restricted \write18 enabled.
|
|
||||||
%&-line parsing enabled.
|
|
||||||
**JetCore.txt
|
|
||||||
(./JetCore.txt
|
|
||||||
LaTeX2e <2023-11-01> patch level 1
|
|
||||||
L3 programming layer <2024-01-22>
|
|
||||||
(/usr/share/texlive/texmf-dist/tex/latex/base/book.cls
|
|
||||||
Document Class: book 2023/05/17 v1.4n Standard LaTeX document class
|
|
||||||
(/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo
|
|
||||||
File: bk10.clo 2023/05/17 v1.4n Standard LaTeX file (size option)
|
|
||||||
)
|
|
||||||
\c@part=\count187
|
|
||||||
\c@chapter=\count188
|
|
||||||
\c@section=\count189
|
|
||||||
\c@subsection=\count190
|
|
||||||
\c@subsubsection=\count191
|
|
||||||
\c@paragraph=\count192
|
|
||||||
\c@subparagraph=\count193
|
|
||||||
\c@figure=\count194
|
|
||||||
\c@table=\count195
|
|
||||||
\abovecaptionskip=\skip48
|
|
||||||
\belowcaptionskip=\skip49
|
|
||||||
\bibindent=\dimen140
|
|
||||||
)
|
|
||||||
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
|
||||||
File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX)
|
|
||||||
\l__color_backend_stack_int=\count196
|
|
||||||
\l__pdf_internal_box=\box51
|
|
||||||
)
|
|
||||||
(./JetCore.aux)
|
|
||||||
\openout1 = `JetCore.aux'.
|
|
||||||
|
|
||||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 7.
|
|
||||||
LaTeX Font Info: ... okay on input line 7.
|
|
||||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 7.
|
|
||||||
LaTeX Font Info: ... okay on input line 7.
|
|
||||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 7.
|
|
||||||
LaTeX Font Info: ... okay on input line 7.
|
|
||||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 7.
|
|
||||||
LaTeX Font Info: ... okay on input line 7.
|
|
||||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 7.
|
|
||||||
LaTeX Font Info: ... okay on input line 7.
|
|
||||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 7.
|
|
||||||
LaTeX Font Info: ... okay on input line 7.
|
|
||||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 7.
|
|
||||||
LaTeX Font Info: ... okay on input line 7.
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <12> on input line 9.
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <8> on input line 9.
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <6> on input line 9.
|
|
||||||
[1
|
|
||||||
|
|
||||||
|
|
||||||
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2
|
|
||||||
|
|
||||||
]
|
|
||||||
(./JetCore.toc
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <7> on input line 3.
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <5> on input line 3.
|
|
||||||
[3])
|
|
||||||
\tf@toc=\write3
|
|
||||||
\openout3 = `JetCore.toc'.
|
|
||||||
|
|
||||||
[4]
|
|
||||||
Chapter 1.
|
|
||||||
[5
|
|
||||||
|
|
||||||
] [6
|
|
||||||
|
|
||||||
]
|
|
||||||
Chapter 2.
|
|
||||||
[7] [8
|
|
||||||
|
|
||||||
]
|
|
||||||
Chapter 3.
|
|
||||||
[9{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] [10]
|
|
||||||
Chapter 4.
|
|
||||||
[11
|
|
||||||
|
|
||||||
] [12]
|
|
||||||
Chapter 5.
|
|
||||||
[13
|
|
||||||
|
|
||||||
] [14
|
|
||||||
|
|
||||||
]
|
|
||||||
Chapter 6.
|
|
||||||
[15] [16] [17] [18] [19] (./JetCore.aux)
|
|
||||||
***********
|
|
||||||
LaTeX2e <2023-11-01> patch level 1
|
|
||||||
L3 programming layer <2024-01-22>
|
|
||||||
***********
|
|
||||||
)
|
|
||||||
Here is how much of TeX's memory you used:
|
|
||||||
508 strings out of 474222
|
|
||||||
9280 string characters out of 5748732
|
|
||||||
1932975 words of memory out of 5000000
|
|
||||||
22826 multiletter control sequences out of 15000+600000
|
|
||||||
564392 words of font info for 57 fonts, out of 8000000 for 9000
|
|
||||||
1141 hyphenation exceptions out of 8191
|
|
||||||
35i,6n,50p,159b,189s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
|
||||||
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></us
|
|
||||||
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/shar
|
|
||||||
e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texli
|
|
||||||
ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texm
|
|
||||||
f-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/
|
|
||||||
fonts/type1/public/amsfonts/cm/cmsl10.pfb></usr/share/texlive/texmf-dist/fonts/
|
|
||||||
type1/public/amsfonts/cm/cmtt10.pfb></usr/share/texmf/fonts/type1/public/cm-sup
|
|
||||||
er/sfrm1000.pfb>
|
|
||||||
Output written on JetCore.pdf (19 pages, 131622 bytes).
|
|
||||||
PDF statistics:
|
|
||||||
107 PDF objects out of 1000 (max. 8388607)
|
|
||||||
69 compressed objects within 1 object stream
|
|
||||||
0 named destinations out of 1000 (max. 500000)
|
|
||||||
1 words of extra memory for PDF output out of 10000 (max. 10000000)
|
|
||||||
|
|
BIN
JetCore.pdf
BIN
JetCore.pdf
Binary file not shown.
45
JetCore.toc
45
JetCore.toc
@ -1,45 +0,0 @@
|
|||||||
\contentsline {chapter}{\numberline {1}Introduction}{5}{}%
|
|
||||||
\contentsline {chapter}{\numberline {2}Tags and Attributes}{7}{}%
|
|
||||||
\contentsline {section}{\numberline {2.1}User Defined Tags and Tag Liraries}{7}{}%
|
|
||||||
\contentsline {chapter}{\numberline {3}Variables and Variable Types}{9}{}%
|
|
||||||
\contentsline {section}{\numberline {3.1}Global Variables}{9}{}%
|
|
||||||
\contentsline {section}{\numberline {3.2}Local Variables}{9}{}%
|
|
||||||
\contentsline {section}{\numberline {3.3}Keyword Variables}{10}{}%
|
|
||||||
\contentsline {section}{\numberline {3.4}Environment Variables}{10}{}%
|
|
||||||
\contentsline {section}{\numberline {3.5}CGI Variables}{10}{}%
|
|
||||||
\contentsline {chapter}{\numberline {4}Expressions}{11}{}%
|
|
||||||
\contentsline {section}{\numberline {4.1}Operators}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.1.1}Arithmentic Operators}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.1.2}Boolean Operators}{11}{}%
|
|
||||||
\contentsline {section}{\numberline {4.2}Function Reference}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.1}concat}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.2}integer}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.3}left}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.4}random}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.5}round}{11}{}%
|
|
||||||
\contentsline {subsection}{\numberline {4.2.6}substring}{12}{}%
|
|
||||||
\contentsline {chapter}{\numberline {5}Common Gateway Interface Features}{13}{}%
|
|
||||||
\contentsline {chapter}{\numberline {6}Tag Reference}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.1}call}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.2}comment}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.3}cookie}{15}{}%
|
|
||||||
\contentsline {section}{\numberline {6.4}dump}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.5}expr}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.6}for}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.7}header}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.8}if/else}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.9}ifrow/else}{16}{}%
|
|
||||||
\contentsline {section}{\numberline {6.10}include}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.11}jet}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.12}mysql}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.13}read}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.14}set}{17}{}%
|
|
||||||
\contentsline {section}{\numberline {6.15}sql}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.16}stream}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.17}system}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.18}tag}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.19}until}{18}{}%
|
|
||||||
\contentsline {section}{\numberline {6.20}while}{19}{}%
|
|
||||||
\contentsline {section}{\numberline {6.21}whiledir}{19}{}%
|
|
||||||
\contentsline {section}{\numberline {6.22}whilerow}{19}{}%
|
|
||||||
\contentsline {section}{\numberline {6.23}write}{19}{}%
|
|
452
JetCore.txt
452
JetCore.txt
@ -1,452 +0,0 @@
|
|||||||
\documentclass{book}
|
|
||||||
|
|
||||||
\title{JET Extension Tags}
|
|
||||||
\author{Bradford Matthew Arant Sr.}
|
|
||||||
\date{\today}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\maketitle
|
|
||||||
|
|
||||||
\tableofcontents
|
|
||||||
|
|
||||||
\chapter{Introduction}
|
|
||||||
|
|
||||||
JET will pass through the untagged areas to the output without any
|
|
||||||
modifications. Data contained within the tags may modify their
|
|
||||||
containers before placing any output. The space taken by the tag
|
|
||||||
itself is not passed to the output and will not appear in the output.
|
|
||||||
|
|
||||||
Skip Blank Lines options on containers will skip passing any blank
|
|
||||||
lines or line containing only whitespace to the output.
|
|
||||||
|
|
||||||
\chapter{Tags and Attributes}
|
|
||||||
|
|
||||||
XML style tagging is used to insert functions and other behaviors into
|
|
||||||
the script. As the document contents are output a tag may be inserted
|
|
||||||
to perform the desired function and affect the output.
|
|
||||||
|
|
||||||
Tag attributes are used to pass parameters into the operations and
|
|
||||||
functionality for each tag.
|
|
||||||
|
|
||||||
Outputting a database from mysql may be performed using the \<mysql\> tag
|
|
||||||
in combination with the \<ifrow\>, \<whilerow\> and \<sql\> tags.
|
|
||||||
|
|
||||||
\section{User Defined Tags and Tag Liraries}
|
|
||||||
|
|
||||||
You can define your own tag definitions and use them within your JET
|
|
||||||
scripts.
|
|
||||||
|
|
||||||
Keywords are not defined as part of the tag definition and any
|
|
||||||
attribute added to the implementation of the tag is passed into the
|
|
||||||
tag process as a local variable for that container.
|
|
||||||
|
|
||||||
Tag definitions can also be defined as scoped or unscoped, as follows:
|
|
||||||
|
|
||||||
scoped - local variables using the \#[n] format can be scoped to just
|
|
||||||
your tag contents. Access to local variables where your tag is being
|
|
||||||
used must use the 'parent' scope option to retrieve variables from the
|
|
||||||
parent.
|
|
||||||
|
|
||||||
unscoped - local variables are shared with the parent tag environment
|
|
||||||
and are not unique to your tag definition.
|
|
||||||
|
|
||||||
A <container /> tag can be inserted into the container and will take
|
|
||||||
the contents of the container at runtime and insert it into the output
|
|
||||||
when processing the user defined tag definition. The container tag of
|
|
||||||
the the <container /> is processed before the container containing the
|
|
||||||
<container /> so that local variabls can be set and processed that
|
|
||||||
will affect the tags overall output.
|
|
||||||
|
|
||||||
Tags are many times nested with tags running within the container of a
|
|
||||||
higher tag.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\chapter{Variables and Variable Types}
|
|
||||||
|
|
||||||
Variables are used to contain dynamic content values and can be
|
|
||||||
sourced from several locations and limited in scope depending on use.
|
|
||||||
Some variable types can be set to reflect script state or are read
|
|
||||||
only from other outside sources of data.
|
|
||||||
|
|
||||||
Jet tags can be either scoped or unscoped.
|
|
||||||
|
|
||||||
The following is a list of
|
|
||||||
variable types and a brief description of their source:
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
|
|
||||||
\item Global - values can be initiaized using the set tag and
|
|
||||||
specifying the scope of global.
|
|
||||||
|
|
||||||
\item Local -
|
|
||||||
|
|
||||||
\item Keyword - within a tag's container we may access the keyword
|
|
||||||
values specified on the containing tag.
|
|
||||||
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\section{Global Variables}
|
|
||||||
|
|
||||||
Global variables are available to all logic once the values have been
|
|
||||||
set.
|
|
||||||
|
|
||||||
Global variables are accessed throughout the procedure with the
|
|
||||||
\$[name] syntax.
|
|
||||||
|
|
||||||
Global is the default if the scope is
|
|
||||||
not specified for any function that writes to a variable.
|
|
||||||
|
|
||||||
\section{Local Variables}
|
|
||||||
|
|
||||||
Local variables are established using the set tag and specifying a
|
|
||||||
scope of local. Local variables are typically only available within
|
|
||||||
the container where they are defined. Some containers may not be
|
|
||||||
capable of storing local variables (i.e. set tag) and are inheriting
|
|
||||||
the local scope from their parent tag.
|
|
||||||
|
|
||||||
\section{Keyword Variables}
|
|
||||||
|
|
||||||
Keyword variables are set when they are specified on a containing tag.
|
|
||||||
Within the container you can access the variable using the syntax
|
|
||||||
\$[\%name].
|
|
||||||
|
|
||||||
The variable retrieved is not processed for variable resolution.
|
|
||||||
|
|
||||||
\section{Environment Variables}
|
|
||||||
|
|
||||||
\section{CGI Variables}
|
|
||||||
|
|
||||||
When operating Jet in CGI mode you have access to the form data
|
|
||||||
submitted by the remote client (usually a browser or curl request)
|
|
||||||
using the POST method.
|
|
||||||
|
|
||||||
\chapter{Expressions}
|
|
||||||
|
|
||||||
Expressions are used to perform complicated calculations (arithmetic), perform
|
|
||||||
comparisons between values (boolean), manipulate strings (string) or
|
|
||||||
perform operations on dates (date).
|
|
||||||
|
|
||||||
\section{Operators}
|
|
||||||
|
|
||||||
Operators are used to perform arithmetic or boolean operations on
|
|
||||||
arguments to derive a particular result. There are two types of
|
|
||||||
operators, as follows:
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
|
|
||||||
\item Arithmetic -
|
|
||||||
|
|
||||||
\item Boolean -
|
|
||||||
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\subsection{Arithmentic Operators}
|
|
||||||
|
|
||||||
\subsection{Boolean Operators}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Function Reference}
|
|
||||||
|
|
||||||
\subsection{concat}
|
|
||||||
|
|
||||||
\subsection{integer}
|
|
||||||
|
|
||||||
\subsection{left}
|
|
||||||
|
|
||||||
\subsection{random}
|
|
||||||
|
|
||||||
Use the random function to return a random number between 0 and 1.
|
|
||||||
|
|
||||||
\subsection{round}
|
|
||||||
|
|
||||||
Use the round function to round a numeric value to the specified
|
|
||||||
number of digits after the decimal point.
|
|
||||||
|
|
||||||
\subsection{substring}
|
|
||||||
|
|
||||||
Use the substring operation to extract a portion of a string and return
|
|
||||||
the value as a string.
|
|
||||||
|
|
||||||
\chapter{Common Gateway Interface Features}
|
|
||||||
|
|
||||||
JET extension tags provides options for enabling the processing of
|
|
||||||
data using the Common Gateway Interface (CGI) specification used by
|
|
||||||
Apache and NGINX as well as other HTTP server applications. This makes
|
|
||||||
JET a powerful tool for creating web interfaces and API handler
|
|
||||||
environments for various javascript frameworks as well as just native
|
|
||||||
HTML style interaction.
|
|
||||||
|
|
||||||
To enable the CGI features within a requested document you can specify
|
|
||||||
the cgi="true" attribute on a <jet> tag containing the document or
|
|
||||||
<jet /> tag contained within the document.
|
|
||||||
|
|
||||||
When you enable the CGI interface the script will look for specific
|
|
||||||
environment variables used to retrieve the input data from the browser
|
|
||||||
interface and automatically provide these values to the JET scripting
|
|
||||||
using the variables interface. There are currently three supported
|
|
||||||
data formats or content types through this interface. These content
|
|
||||||
types are:
|
|
||||||
|
|
||||||
formdata/urlencoded
|
|
||||||
mutipart/formdata
|
|
||||||
text/json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\chapter{Tag Reference}
|
|
||||||
|
|
||||||
This chapter will cover all the tags and parameters required to
|
|
||||||
perform the operations that JET provides.
|
|
||||||
|
|
||||||
\section{call}
|
|
||||||
|
|
||||||
Use the call tag to evoke an executable file from a jet script.
|
|
||||||
|
|
||||||
The atrributes are:
|
|
||||||
|
|
||||||
pgm
|
|
||||||
|
|
||||||
argn
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
input
|
|
||||||
|
|
||||||
error
|
|
||||||
|
|
||||||
The call tag is unscoped.
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
<call pgm="ls" arg1="-al" name="listing" />
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
will call the ls command with parameter -al and place the output into
|
|
||||||
a variable named 'listing'.
|
|
||||||
|
|
||||||
\section{comment}
|
|
||||||
|
|
||||||
Use the comment tag to create a section in the jet script that can be
|
|
||||||
used for making comments and is ignored by the jet reader.
|
|
||||||
|
|
||||||
The comments tag has no attributes.
|
|
||||||
|
|
||||||
\section{cookie}
|
|
||||||
|
|
||||||
Use the cookie tag to specify a cookie when using the CGI features
|
|
||||||
of JET.
|
|
||||||
|
|
||||||
\section{dump}
|
|
||||||
|
|
||||||
Use the dump tag to display the contents of all the global, local and
|
|
||||||
cgi cariables to a specified file.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
\section{expr}
|
|
||||||
|
|
||||||
\section{for}
|
|
||||||
|
|
||||||
Use the for tag to iterate a tag container for a logical number of
|
|
||||||
times.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
start
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
step
|
|
||||||
|
|
||||||
name - defines a name for the iterator that will be available within
|
|
||||||
the loop.
|
|
||||||
|
|
||||||
scope - defines the scope of the iterator for the loop.
|
|
||||||
|
|
||||||
\section{header}
|
|
||||||
|
|
||||||
Use the header tag to output a header prior to outputting the process
|
|
||||||
buffer to the requester.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
expr
|
|
||||||
|
|
||||||
value
|
|
||||||
|
|
||||||
container
|
|
||||||
|
|
||||||
\section{if/else}
|
|
||||||
|
|
||||||
Use the if tag to perform a conditional output on the tag container.
|
|
||||||
An optional else container provides alternate output in the event the
|
|
||||||
condition is not met.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
value1
|
|
||||||
|
|
||||||
value2
|
|
||||||
|
|
||||||
type
|
|
||||||
|
|
||||||
expr
|
|
||||||
|
|
||||||
\section{ifrow/else}
|
|
||||||
|
|
||||||
Use the ifrow tag to output the tag container if a row exists in the
|
|
||||||
mysql tag. An optional else container provides alternate output in the
|
|
||||||
event that there is no row for the sql result.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
sessionid
|
|
||||||
|
|
||||||
\section{include}
|
|
||||||
|
|
||||||
Use the include tag to include another content file at the location of
|
|
||||||
the include tag.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
\section{jet}
|
|
||||||
|
|
||||||
Use the jet tag to specify parameters for the jet parsing session and
|
|
||||||
to control the output options.
|
|
||||||
|
|
||||||
\section{mysql}
|
|
||||||
|
|
||||||
Use the mysql tag to specify parameters for connecting to a mysql
|
|
||||||
server. The container of the tag is where you can specify the sql
|
|
||||||
statement and method of processing the result output of the executed
|
|
||||||
sql statement. The mysql session created is valid only withon the
|
|
||||||
container of this tag.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
host
|
|
||||||
|
|
||||||
database
|
|
||||||
|
|
||||||
user
|
|
||||||
|
|
||||||
password
|
|
||||||
|
|
||||||
sessionid
|
|
||||||
|
|
||||||
\section{read}
|
|
||||||
|
|
||||||
Use the read tag to read the contents of a file contained on the local
|
|
||||||
file system into a variable for further output or processing.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
\section{set}
|
|
||||||
|
|
||||||
Use the set tag to store initialize a variable to a value contained in
|
|
||||||
a value attribute, the result of an expression (expr) attribute or the
|
|
||||||
contents of the set tag container.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
name
|
|
||||||
|
|
||||||
expr
|
|
||||||
|
|
||||||
value
|
|
||||||
|
|
||||||
container
|
|
||||||
|
|
||||||
scope
|
|
||||||
|
|
||||||
\section{sql}
|
|
||||||
|
|
||||||
Use the sql tag to specify an sql statement to run on the sql server
|
|
||||||
specified in the mysql tag.
|
|
||||||
|
|
||||||
As long as sql statements are executed within the same mysql
|
|
||||||
containing tag then the same mysql session is used for each sql
|
|
||||||
statement.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
sessionid
|
|
||||||
|
|
||||||
container
|
|
||||||
|
|
||||||
\section{stream}
|
|
||||||
|
|
||||||
Use stream tag to output data from the server without waiting for the
|
|
||||||
standard output buffering and processing of the JET script. This is
|
|
||||||
useful for outputting images and streams for audio and video without
|
|
||||||
the server having to load the whole thing into RAM first.
|
|
||||||
|
|
||||||
The attributes are:
|
|
||||||
|
|
||||||
file
|
|
||||||
|
|
||||||
\section{system}
|
|
||||||
|
|
||||||
Use the system tag to execute a bash shell command within the JET
|
|
||||||
script.
|
|
||||||
|
|
||||||
\section{tag}
|
|
||||||
|
|
||||||
Use the tag tag to define a new tag definition for use within the
|
|
||||||
script.
|
|
||||||
|
|
||||||
Tags are normally defined globally and can be used anywhere within the
|
|
||||||
script.
|
|
||||||
|
|
||||||
Tags can also be defined within other tags and the scope of those tags
|
|
||||||
is only within the defining tag's container. The enclosed tag
|
|
||||||
definition will not be available globally.
|
|
||||||
|
|
||||||
\section{until}
|
|
||||||
|
|
||||||
Use the until tag to process a container at least once and
|
|
||||||
continue to process the container until the specified condition is met.
|
|
||||||
|
|
||||||
Note that this tag always processes the container at least once.
|
|
||||||
|
|
||||||
Be careful not to create a never ending loop by not modifying any of
|
|
||||||
the condition parameters specified in the condition clause.
|
|
||||||
|
|
||||||
\section{while}
|
|
||||||
|
|
||||||
Use the while tag to process a container if the specified condition is
|
|
||||||
true.
|
|
||||||
|
|
||||||
Note that the container may not be processed if the condition is never
|
|
||||||
met.
|
|
||||||
|
|
||||||
Be careful not to create a never ending loop by not modifying any of
|
|
||||||
the condition parameters specified in the condition clause.
|
|
||||||
|
|
||||||
\section{whiledir}
|
|
||||||
|
|
||||||
Use the whiledir tag to loop a directory path to the container for
|
|
||||||
processing.
|
|
||||||
|
|
||||||
\section{whilerow}
|
|
||||||
|
|
||||||
Use the whilerow tag in combination with mysql and sql tags to provide
|
|
||||||
a container to process for each row retrieved by the sql statement.
|
|
||||||
|
|
||||||
\section{write}
|
|
||||||
|
|
||||||
Use the write tag to write data to the local file system.
|
|
||||||
|
|
||||||
\end{document}
|
|
16
Tag.cpp
16
Tag.cpp
@ -5,6 +5,7 @@
|
|||||||
#include "__sql.h"
|
#include "__sql.h"
|
||||||
#include "__whilerow.h"
|
#include "__whilerow.h"
|
||||||
#include "__comment.h"
|
#include "__comment.h"
|
||||||
|
#include "__exclude.h"
|
||||||
#include "__for.h"
|
#include "__for.h"
|
||||||
#include "__if.h"
|
#include "__if.h"
|
||||||
#include "__ifrow.h"
|
#include "__ifrow.h"
|
||||||
@ -134,7 +135,17 @@ namespace jet {
|
|||||||
coreutils::ZString tag;
|
coreutils::ZString tag;
|
||||||
char *start = in.getCursor();
|
char *start = in.getCursor();
|
||||||
while(!in.eod()) {
|
while(!in.eod()) {
|
||||||
if(in.startsWith("<")) {
|
if(in.ifNext("|>")) {
|
||||||
|
out.write("|>");
|
||||||
|
char ch = in.nextChar();
|
||||||
|
while(!in.ifNext("<|")) {
|
||||||
|
out.write(ch);
|
||||||
|
ch = in.nextChar();
|
||||||
|
}
|
||||||
|
out.write(ch);
|
||||||
|
out.write("<|");
|
||||||
|
continue;
|
||||||
|
} else if(in.startsWith("<")) {
|
||||||
if(ifTagName(in, "mysql")) {
|
if(ifTagName(in, "mysql")) {
|
||||||
__mysql _mysql(in, out, global, this, local);
|
__mysql _mysql(in, out, global, this, local);
|
||||||
continue;
|
continue;
|
||||||
@ -159,6 +170,9 @@ namespace jet {
|
|||||||
} else if(ifTagName(in, "include")) {
|
} else if(ifTagName(in, "include")) {
|
||||||
__include _include(in, out, global, this, local);
|
__include _include(in, out, global, this, local);
|
||||||
continue;
|
continue;
|
||||||
|
} else if(ifTagName(in, "exclude")) {
|
||||||
|
__exclude _exclude(in, out, global, this, local);
|
||||||
|
continue;
|
||||||
} else if(ifTagName(in, "jet")) {
|
} else if(ifTagName(in, "jet")) {
|
||||||
__jet _jet(in, out, global, this, local);
|
__jet _jet(in, out, global, this, local);
|
||||||
continue;
|
continue;
|
||||||
|
@ -28,7 +28,7 @@ namespace jet {
|
|||||||
SHA1(hashit, strlen((char *)hashit), hash);
|
SHA1(hashit, strlen((char *)hashit), hash);
|
||||||
sprintf(hashname, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
|
sprintf(hashname, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
|
||||||
hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7], hash[8], hash[9],
|
hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7], hash[8], hash[9],
|
||||||
hash[10], hash[11], hash[12], hash[13], hash[14], hash[15], hash[16], hash[17], hash[18], hash[19]);
|
hash[10], hash[11], hash[12], hash[13], hash[14], hash[15], hash[16], hash[17], hash[18], hash[19]);
|
||||||
coreutils::ZString sessionCookie(hashname);
|
coreutils::ZString sessionCookie(hashname);
|
||||||
global.headers["Set-Cookie"] << "session=" << sessionCookie;
|
global.headers["Set-Cookie"] << "session=" << sessionCookie;
|
||||||
if(keywordDefined("sessiontimeout")) {
|
if(keywordDefined("sessiontimeout")) {
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
<set name="nested" expr="(2*(4+4)/$[divisor])*32" />
|
<set name="nested" expr="(2*(4+4)/$[divisor])*32" />
|
||||||
<set name="error" value="$[nested]" />
|
<set name="error" value="$[nested]" />
|
||||||
$[nested]
|
$[nested]
|
||||||
|
|>This should be passed $[error] by the parser without parsing.
|
||||||
|
<set name="pass" value="not set" /><|
|
||||||
<set name="numbers">0123456789</set>
|
<set name="numbers">0123456789</set>
|
||||||
$[numbers]
|
$[numbers]
|
||||||
<set name="exprnumbers" expr="$[numbers]" />
|
<set name="exprnumbers" expr="$[numbers]" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user