\ProvidesFile{blogexec.tex}[2012/12/20 documenting blogexec.sty]
\title{{\huge\pkg{blogexec.sty}}\\---\\Overcoming 
       \pkg{blog.sty}'s Pure Expansion\thanks{This
       document describes version
       \textcolor{blue}{\UseVersionOf{\jobname.sty}}
       of \textsf{\jobname.sty} as of \UseDateOf{\jobname.sty}.}}
% \listfiles
{ \RequirePackage{makedoc} 
  \ProcessLineMessage{} %%% {\message{.}} 
  \MakeJobDoc{17} 
  {\SectionLevelThreeParseInput}  }
\documentclass[fleqn]{article}%% TODO paper dimensions!?
\input{makedoc.cfg} %% shared formatting settings
\usepackage{filesdo} \MDfinaldatechecks     %% 2012/12/20
\providecommand*{\HTML}{\acro{HTML}}
\ReadPackageInfos{blogexec}
\sloppy
\begin{document}
\maketitle
\begin{abstract}\noindent
'blog.sty' before v0.7 generated \HTML\ by pure macro expansion 
and could use \LaTeX\ macros (redefined) only to a very limited 
extent. On adding 'blogexec.sty', some macros (configurable) are 
``intercepted" before expansion in a 'blog' run for 
``running" some code, basically `\begin', `\end', 
and a new general `\EXECUTE'. 
A table environment with active characters inside only is 
provided---perhaps ``nicer than \LaTeX."
\end{abstract}
\tableofcontents

%   \newpage
\section{Features and Usage}

% \subsection{Installing and Calling}
The file 'blogexec.sty' is provided ready, installation only requires
putting it somewhere where \TeX\ finds it
(which may need updating the filename data
 base).\urlfoot{ukfaqref}{inst-wlcf}           %% corr. 2011/02/08

'blogexec.sty' may be loaded by
\begin{verbatim}
  \RequirePackage{blogexec}
\end{verbatim}
in a driver file for 'blog.sty'. \strong{Alternatively}, 
the following commands in a 'blog' driver file 
(in a certain way even in a \emph{source} file)
load 'blogexec.sty' and then are carried out according to their 
definitions in 'blogexec':
\begin{description}
  \cmdboxitem|\BlogInterceptExecute| \ intercepts |\EXECUTE| only. 
  \cmdboxitem|\BlogInterceptEnvironments| \ intercepts |\EXECUTE|,
    |\begin|, and |\end| only; the latter two then work much 
    as with \LaTeX. They expand to \HTML\ code as with 'blog'; 
    `\begin{<env>}' additionally executes commands according 
    to an (optional) 
    \[|\MakeBlogBeginRun{<env>}<arguments>{<begin-code>}|.\]
  \cmdboxitem|\BlogInterceptExtra| \ intercepts all the commands 
    in certain lists (using the \ctanpkgref{dowith} package), 
    including `\EXECUTE', `\begin', `\end'. E.g., 
    \[|\MakeBlogOneArgInterception{<cmd>}{<run>}{<write>}|\]
    adds <cmd> to such a list and tells that <run> should be 
    carried out and that <cmd><one-argument> should be replaced 
    by <write> in a line containing <cmd> 
    (not hidden in braces, and there better should not be much more 
     in the line).
  \cmdboxitem|\BlogInterceptHash| \ does \emph{not} choose an 
    \strong{``interception level"} as the previous commands do, 
    but may be necessary for allowing parameters in macro 
    definitions to be run in the course of an interception.
    It is automatically (``implicitly") envoked by the star forms 
    of the above commands, i.e., by either of
    \begin{itemize}
      \item |\BlogInterceptExecute*|
      \item |\BlogInterceptEnvironments*|
      \item |\BlogInterceptExtra*|
    \end{itemize}
\end{description}
The reader may find additional details in the following sections 
near the code implementing the commands.

'blogexec.sty' also modifies 'blog.sty''s (v0.7) 
|{stdallrulestable}| environment as follows:
\begin{itemize}
  \item[\InlineCmdBox{\texttt{&|}}] 
    The vertical stroke becomes an active character 
    that closes a table cell and opens another one 
    (being an alias for 'blog.sty''s v0.7 `\endcell')---just
    as |&| does it with \TeX/\LaTeX. 
  \cmdboxitem|&| The ampersand becomes an active character 
    that---\strong{differently to \TeX\slash\LaTeX}---as an alias for 
    'blog.sty''s |\figurespace| produces the Unicode figure space 
    for alignment of figures. 
\end{itemize}
\emph{Outside} the `{stdallrules}' environment, both characters 
have their ``usual" meaning, i.e., |&| may be used for accessing 
\HTML\ entities (as 'blog.sty' allows it). |\cr| (and |\endline|, 
provided by 'blog.sty' v0.7) ends a table row and starts a new one. 
|\\| is not touched---a \strong{difference to \LaTeX} and may still be 
used for breaking a line within a table cell. 

% \section{Example}

%   \pagebreak
% \section{Implementation}
\section{Package File Header (Legalize)}
\input{blogexec.doc}
\end{document}

VERSION HISTORY

2011/11/04  for v0.1    very first
2011/11/09f.            something more
2011/11/20              star forms
2012/12/20  for v0.21   date checks


