with `id="output"`. Each query is a
%
with class `query-container` that holds the query and a series
% of
with class `answer`. The current answer div is accessible
% through the function `current_answer()`.
:- use_module(library(http/html_write)).
:- use_module(library(dcg/high_order)).
%! clr
%
% Clear the output window.
clr :-
document.getElementById("output").innerHTML := "".
%! html
%
% Insert HTML into the current answer using SWI-Prolog's HTML
% generation infra structure. For example:
%
% ?- html(['Hello ', b(world)]).
html(Term) :-
phrase(html(Term), Tokens),
with_output_to(string(HTML), print_html(Tokens)),
Div := document.createElement("div"),
Div.innerHTML := HTML,
_ := current_answer().appendChild(Div).
%! flag_table
%
% Emit a table holding all current Prolog flags and their value.
flag_table :-
html(\flag_table).
flag_table -->
html(table(\foreach(order_by([asc(Name)], current_prolog_flag(Name, Value)),
html(tr([th(Name), td('~p'-[Value])]))))).