diff --git a/JetCore.aux b/JetCore.aux deleted file mode 100644 index 3a60a28..0000000 --- a/JetCore.aux +++ /dev/null @@ -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} diff --git a/JetCore.log b/JetCore.log deleted file mode 100644 index 59cd379..0000000 --- a/JetCore.log +++ /dev/null @@ -1,186 +0,0 @@ -This is e-pTeX, Version 3.141592653-p4.1.0-230214-2.6 (utf8.euc) (TeX Live 2023/Debian) (preloaded format=ptex 2025.1.13) 30 APR 2025 16:16 - restricted \write18 enabled. - %&-line parsing enabled. -**JetCore.txt -(./JetCore.txt -! Undefined control sequence. -l.1 \documentclass - {book} -? -! Undefined control sequence. -l.3 \title - {JET Extension Tags} -? q -OK, entering \batchmode... -! Undefined control sequence. -l.4 \author - {Bradford Matthew Arant Sr.} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.5 \date - {\today} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.5 \date{\today - } -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.7 \begin - {document} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.9 \maketitle - -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.11 \tableofcontents - -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.13 \chapter - {Introduction} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.23 \chapter - {Tags and Attributes} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.32 ...e from mysql may be performed using the \< - mysql\> tag -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Missing $ inserted. - - $ - - \mskip -\>->\mskip - \medmuskip -l.32 ...mysql may be performed using the \ - tag -I've inserted a begin-math/end-math symbol since I think -you left one out. Proceed, with fingers crossed. - -! Undefined control sequence. -l.33 in combination with the \< - ifrow\>, \ and \ tags. -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.33 in combination with the \, \< - whilerow\> and \ tags. -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.33 ...on with the \, \ and \< - sql\> tags. -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Missing $ inserted. - - $ - - \par -l.34 - -I've inserted a begin-math/end-math symbol since I think -you left one out. Proceed, with fingers crossed. - - -Overfull \hbox (81.87863pt too wide) in paragraph at lines 32--34 -[]\tenrm Outputting a database from mysql may be per-formed us-ing the mysql$ \ -teni tagincombinationwiththeifrow ; whilerow andsql tags:$ | - -\hbox(6.94444+1.94444)x469.75499, glue set - 1.0 -.\hbox(0.0+0.0)x20.0 -.\displace 0.0 -.\tenrm O -.\tenrm u -.\tenrm t -.etc. - -! Undefined control sequence. -l.35 \section - {User Defined Tags and Tag Liraries} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.66 \chapter - {Variables and Variable Types} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -! Undefined control sequence. -l.78 \begin - {itemize} -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - - [1] ) -Output written on JetCore.dvi (1 page, 3708 bytes). diff --git a/JetCore.pdf b/JetCore.pdf deleted file mode 100644 index 134e07c..0000000 Binary files a/JetCore.pdf and /dev/null differ diff --git a/JetCore.toc b/JetCore.toc deleted file mode 100644 index d450647..0000000 --- a/JetCore.toc +++ /dev/null @@ -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}{}% diff --git a/JetCore.txt b/JetCore.txt deleted file mode 100644 index 6dc05b1..0000000 --- a/JetCore.txt +++ /dev/null @@ -1,471 +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 \ tag -in combination with the \, \ and \ 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 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 is processed before the container containing the - 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 tag containing the document or - 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 - -\section{Session Control} - -Common use of the CGI is requiring the transaction based interaction -of a web browser to maintain a state between interactions. JET 2.0 -provides a built in mechanism to assist in managing a session concept. -This approach uses a single session cookie to identify the session to -the back end services. - -By specifying a seesiondir keyword on the tag you enable the -session control functionality. Upon the delivery of a request that -does not contain a session 'token' a session token will be generated -for the request and a cookie will be returned in the reponse -containing the session token. Additionally, a session file is placed -into the directory named after the token. Captured session data will -become available to future requests coming into the server and made -available through the variable formats for the session. - -The tag will also have an additional scope value that can be -used to store the value in the session. This is scope="session". - - - -\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} - -\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} \ No newline at end of file diff --git a/Tag.cpp b/Tag.cpp index 9120131..9fa8990 100644 --- a/Tag.cpp +++ b/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; diff --git a/__jet.cpp b/__jet.cpp index be7b9f3..a3f4a69 100644 --- a/__jet.cpp +++ b/__jet.cpp @@ -20,8 +20,6 @@ namespace jet { // if last activity time is expired then ignore. // follow sessiontimeoutredirecturl. // else -// generate new session id. -// create session cookie in response. unsigned char hashit[64]; unsigned char hash[SHA_DIGEST_LENGTH]; char hashname[64]; @@ -29,7 +27,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")) { diff --git a/tests/dump.txt b/tests/dump.txt index 95ed08a..411bcbe 100644 --- a/tests/dump.txt +++ b/tests/dump.txt @@ -1,11 +1,30 @@ *** CGI VARIABLES *** *** GLOBAL VARIABLES *** +=[xxx] +addition=[8] +complete=[ABCD;tohex] +division=[1.666666666667] +divisor=[8] +error=[64] +exprnumbers=[0123456789] +include=[yes] +ix=[1] +lefty=[01234] +modified1=[ABCD] +multiplication=[15] +nested=[64] +newname=[another container value] +noeval=[this is the value store in $[%name1].] +numbers=[0123456789] +subtraction=[2] +theexpr=[bcd] +thename=[this is the value store in .] +tohex=[tohex] +varname1=[vardata] *** LOCAL VARIABLES *** +localvar=[This is a container set with ''] +testinclude=[xThis is a container set with ''x] *** KEYWORD VALUES *** -cgi=[true] -sessiondir=[.] +file=[./testinclude.jet] +name1=[] *** COOKIES *** - -$[^session] - $[nested] + |>This should be passed $[error] by the parser without parsing. + <| 0123456789 $[numbers]