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 "__whilerow.h"
|
||||
#include "__comment.h"
|
||||
#include "__exclude.h"
|
||||
#include "__for.h"
|
||||
#include "__if.h"
|
||||
#include "__ifrow.h"
|
||||
@ -134,7 +135,17 @@ namespace jet {
|
||||
coreutils::ZString tag;
|
||||
char *start = in.getCursor();
|
||||
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")) {
|
||||
__mysql _mysql(in, out, global, this, local);
|
||||
continue;
|
||||
@ -159,6 +170,9 @@ namespace jet {
|
||||
} else if(ifTagName(in, "include")) {
|
||||
__include _include(in, out, global, this, local);
|
||||
continue;
|
||||
} else if(ifTagName(in, "exclude")) {
|
||||
__exclude _exclude(in, out, global, this, local);
|
||||
continue;
|
||||
} else if(ifTagName(in, "jet")) {
|
||||
__jet _jet(in, out, global, this, local);
|
||||
continue;
|
||||
|
@ -28,7 +28,7 @@ namespace jet {
|
||||
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",
|
||||
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);
|
||||
global.headers["Set-Cookie"] << "session=" << sessionCookie;
|
||||
if(keywordDefined("sessiontimeout")) {
|
||||
|
@ -25,6 +25,8 @@
|
||||
<set name="nested" expr="(2*(4+4)/$[divisor])*32" />
|
||||
<set name="error" value="$[nested]" />
|
||||
$[nested]
|
||||
|>This should be passed $[error] by the parser without parsing.
|
||||
<set name="pass" value="not set" /><|
|
||||
<set name="numbers">0123456789</set>
|
||||
$[numbers]
|
||||
<set name="exprnumbers" expr="$[numbers]" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user