@code{(require 'html-for-each)} @ftindex html-for-each @defun html-for-each file word-proc markup-proc white-proc newline-proc @var{file} is an input port or a string naming an existing file containing HTML text. @var{word-proc} is a procedure of one argument or #f. @var{markup-proc} is a procedure of one argument or #f. @var{white-proc} is a procedure of one argument or #f. @var{newline-proc} is a procedure of no arguments or #f. @code{html-for-each} opens and reads characters from port @var{file} or the file named by string @var{file}. Sequential groups of characters are assembled into strings which are either @itemize @bullet @item enclosed by @samp{<} and @samp{>} (hypertext markups or comments); @item end-of-line; @item whitespace; or @item none of the above (words). @end itemize Procedures are called according to these distinctions in order of the string's occurrence in @var{file}. @var{newline-proc} is called with no arguments for end-of-line @emph{not within a markup or comment}. @var{white-proc} is called with strings of non-newline whitespace. @var{markup-proc} is called with hypertext markup strings (including @samp{<} and @samp{>}). @var{word-proc} is called with the remaining strings. @code{html-for-each} returns an unspecified value. @end defun @defun html:read-title file limit @defunx html:read-title file @var{file} is an input port or a string naming an existing file containing HTML text. If supplied, @var{limit} must be an integer. @var{limit} defaults to 1000. @code{html:read-title} opens and reads HTML from port @var{file} or the file named by string @var{file}, until reaching the (mandatory) @samp{TITLE} field. @code{html:read-title} returns the title string with adjacent whitespaces collapsed to one space. @code{html:read-title} returns #f if the title field is empty, absent, if the first character read from @var{file} is not @samp{#\<}, or if the end of title is not found within the first (approximately) @var{limit} words. @end defun @defun htm-fields htm @var{htm} is a hypertext markup string. If @var{htm} is a (hypertext) comment, then @code{htm-fields} returns #f. Otherwise @code{htm-fields} returns the hypertext element symbol (created by @code{string-ci->symbol}) consed onto an association list of the attribute name-symbols and values. Each value is a number or string; or #t if the name had no value assigned within the markup. @end defun