summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/morehype/blog.tex
blob: b97f899fecf3181feeffdc267871219a13909251 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
\ProvidesFile{blog.tex}[2011/09/01 documenting blog.sty]
\title{\textsf{blog.sty}\\---\\%
       Generating \acro{HTML} Quickly with \TeX\thanks{This 
       document describes version 
       \textcolor{blue}{\UseVersionOf{\jobname.sty}} 
       of \textsf{\jobname.sty} as of \UseDateOf{\jobname.sty}.}}
% \listfiles 
{ \RequirePackage{makedoc} \ProcessLineMessage{} 
  \renewcommand\mdSectionLevelOne{\string\subsection}
  \renewcommand\mdSectionLevelTwo{\string\subsubsection}
  \MakeJobDoc{17}{\SectionLevelTwoParseInput}  }
\documentclass{article}%% TODO paper dimensions!?
\input{makedoc.cfg} %% shared formatting settings
\ReadPackageInfos{blog}
  %% \tagcode seems to be a quite recent pdfTeX primitive, 
  %% cf. microtype.pdf ... %% 2010/11/06
\newcommand*{\xmltagcode}[1]{\texttt{<#1>}}
\sloppy
\begin{document}
\maketitle
\begin{abstract}\noindent
'blog.sty' provides \TeX\ macros for generating web pages, 
based on processing text files using the 'fifinddo' package. 
Some \LaTeX\ 
commands %%% command names 
are redefined to access their \acro{HTML} 
equivalents, other new macro names ``quote" the names of 
\acro{HTML} elements. The package has evolved in several little steps 
each aiming at getting pretty-looking ``hypertext" \textbf{notes}
with little effort, 
where ``little effort" also has meant avoiding studying 
documentation of similar packages already existing. 
[TODO: list them!]
% Version v0.3 is the remainder of v0.2 after moving some stuff 
% to 'fifinddo.sty' (especially `\CopyFile'); 
% moreover, the new `\BlogCopyFile' replaces empty source lines 
% by \acro{HTML}'s \xmltagcode{p} (starting a new paragraph).---Real 
% \emph{typesetting} from the same `.tex' source 
% (pretty printable output) has not been tried yet.
%% <- 2011/01/24 ->
The package %%% rather 
\emph{``misuses"} \TeX's macro language 
for generating \acro{HTML} code and entirely \emph{ignores} 
\TeX's typesetting capabilities.%%%---What about 
% such a ``small" \TeX\ with macros only and 
% \emph{no} typesetting capabilities ...!?
\end{abstract}
\tableofcontents

\section{Installing and Usage}
The file 'blog.sty' is provided ready, 
\strong{installation} only requires 
putting it somewhere where \TeX\ finds it 
(which may need updating the filename data 
 base).\urlfoot{ukfaqref}{inst-wlcf}

\strong{User commands} are described near their implementation below.

However, we must present an \strong{outline} of the procedure 
for generating \acro{HTML} files: 

At least one \strong{driver} file and one \strong{source} file are 
needed.

The \strong{driver} file's name is stored in `\jobname'. 
It loads 'blog.sty' by 
\begin{verbatim}
  \RequirePackage{blog}
\end{verbatim}
and uses file handling commands from 'blog.sty' and 
\CtanPkgRef{nicetext}{fifinddo} 
(cf. `mdoccheat.pdf' from the \ctanpkgref{nicetext} bundle). 
It chooses \strong{source} files and the name(s) for the resulting 
\acro{HTML} file(s). It may also need to load local settings, such as 
for the language 
%% modified 2011/01/25:
(`lang-de.fdf', `lang-en.fdf'), 
and settings for converting the editor's text encoding 
into the encoding that the head of the resulting \acro{HTML} file advertises 
(`atari.fdf' in the 'nicetext' bundle). 

The driver file could be run a terminal dialogue in order to choose source 
and target files and settings. So far, I rather have programmed a 
dialogue just for converting UTF-8 into an encoding that my 
Atari editor \textsc{xEDIT} can deal with. 
I do not present this now because it was conceptually mistaken, 
I must set up this conversion from scratch some time.
% [TODO: present in 'nicetext'].    %% 2011/01/24

The \strong{source} file(s) should contain user commands defined below 
to generate the necessary \xmltagcode{head} section and the 
\xmltagcode{body} tags. 

\section{Examples}
\subsection{A Very Plain Style}
My ``\TeX-generated 
pages"{\foothttpurlref{www.webdesign-bu.de/%
                       uwe\string_lueck/texmap.htm}}
use a \strong{driver} file `makehtml.tex'. 
To choose a page to generate, I ``uncomment"ed just one 
of several lines that set the ``current conversion job" 
from a list (for some time). 
I choose the example of a simple ``site map:" 
`texmap.htm' is generated from \strong{source} file 
`texmap.tex'.---More recently however, I have started to 
read the job name and perhaps extra settings from a file 
`jobname.tex' that is created by a Bash script.

In order to make it easier for the reader to see what is essential, 
I~have moved many `.cfg'-like extra definitions into a file 
`texblog.fdf'. Some of these definitions may later move into 
`blog.sty'. You should find `makehtml.tex', `texmap.tex', and 
`texblog.fdf' in a directory `demo/texblog', perhaps you can use them 
as templates.

\begingroup
  \MakeOther\|\MakeOther\`\MakeOther\'\MakeOther\<
  \MakeActive\ \def{\"u}
  \hfuzz=\textwidth \advance \hfuzz by 28pt
\subsubsection{Driver File `makehtml.tex'}
  \listinginput[5]{1}{CTAN/morehype/demo/texblog/makehtml.tex}
\subsubsection{Source File `texmap.tex'}
  \listinginput[5]{1}{CTAN/morehype/demo/texblog/texmap.tex}
\endgroup

\subsection{A Style with a Navigation Column}
A style of web pages looking more professional than `texhax.hmt' 
(while perhaps becoming outdated) has a small navigation column 
on the left, side by side with a column for the main content. 
Both columns are spanned by a header section above and a footer 
section below. The package 'twocolpg.sty' provides commands 
`\PAGEHEAD', `\PAGENAVI', `\PAGEMAIN', `\PAGEFOOT', `\PAGEEND' 
(and some more) for structuring the source so that the code 
following `\PAGEHEAD' generates the header, the code following 
`\PAGENAVI' forms the content of the navigation column, etc.
For real professionality, somebody must add some fine \acro{CSS}, 
and the macros mentioned may need to be redefined to use the `@class' 
attribute. Also, I am not sure about the table macros in 'blog.sty', 
so much may change later.

With things like these, can 'blog.sty' become a part of a 
``\Wikienref{content management system}" for \TeX\ addicts? 
This idea rather is based on the 
\wikideref{Content Management System}{\meta{German}} 
Wikipedia article.

As an example, I present parts of the source for my 
``home page"{\foothttpurlref{www.webdesign-bu.de/%
                             uwe\string_lueck/schreibt.html}}.
As the footer is the same on all pages of this style, 
it is added in the driver file `makehtml.tex'. 
`schreibt.tex' is the source file for generating `schreibt.html'.
You should find \emph{this} `makehtml.tex', a cut down version of 
`schreibt.tex', and `writings.fdf' with my extra macros for these pages 
in a directory `demo/writings', hopefully useful as templates.

\begingroup
  \MakeOther\|\MakeOther\`\MakeOther\'\MakeOther\<
  \MakeActive\ \def{\"u}
  \hfuzz=\textwidth \advance \hfuzz by 10pt
\subsubsection{Driver File `makehtml.tex'}
  \listinginput[5]{1}{CTAN/morehype/demo/writings/makehtml.tex}
\subsubsection{Source File `schreibt.tex'}
  \listinginput[5]{1}{CTAN/morehype/demo/writings/schreibt.tex}
\endgroup


\section{The Package File}
\subsection{Package File Header (Legalize)}
  \errorcontextlines=5
 \ResetCodeLineNumbers
\input{blog.doc}
\end{document}

HISTORY

2010/11/05  for v0.2
2010/11/11  for v0.3
2011/01/23  using readprov and color
2011/01/27  using \urlfoot
2011/09/01  using new makedoc.cfg incl. \acro and \foothttp...; 
            extension for twocolpg.sty