
page.pl -- Provide the SWISH application as Prolog HTML component
This library provides the SWISH page and its elements as Prolog HTML
grammer rules. This allows for server-side generated pages to include
swish or parts of swish easily into a page.
swish_reply(+Options, +Request)- HTTP handler to reply the default SWISH page. Processes the
following parameters:
- code(Code)
- Use Code as initial code. Code is either an HTTP url or
- url(URL)
- Download code from URL. As
code(URL)
, but makes the browser
download the source rather than the server.
- background(Code)
- Similar to Code, but not displayed in the editor.
- examples(Code)
- Provide examples. Each example starts with ?- at the beginning
of a line.
- q(Query)
- Use Query as the initial query.
- show_beware(Boolean)
- Control showing the beware limited edition warning.
- preserve_state(Boolean)
- If
true
, save state on unload and restore old state on load.
add_show_beware(+Options0, -Option) is det[private]- Add
show_beware(false)
when called with code, query or examples.
These are dedicated calls that do not justify this message.
add_preserve_state(+Options0, -Option) is det[private]- Add
preserve_state(false)
when called with code.
source_option(+Request, +Options0, -Options)[private]- If the data was requested as '/Alias/File', reply using file
Alias(File).
source_file(+Request, -File, +Options) is semidet[private]- File is the file associated with a SWISH request. A file is
associated if path_info is provided. If the file does not
exist, an HTTP 404 exception is returned. Options:
- alias(-Alias)
- Get the swish_config:source_alias/2 Alias name that
was used to find File.
source_metadata(+Path, +Code, -Meta:dict) is det[private]- Obtain meta information about a local source file. Defined meta
info is:
- last_modified:Time
- Last modified stamp of the file. Always present.
- loaded:true
- Present of the file is a loaded source file
- modified_since_loaded:true
- Present if the file loaded, has been edited, but not
yet reloaded.
swish_reply_resource(+Request) is semidet- Serve /swish/Resource files.
swish_page(+Options)//- Generate the entire SWISH default page.
swish_navbar(+Options)//- Generate the swish navigation bar.
swish_title(+Options)// is det[private]- Emit the HTML header options dealing with the title and shortcut
icons. This can be hooked using title//1.
swish_logos(+Options)// is det[private]- Emit the navbar branding logos at the top-left. Can be hooked
using swish_logos//1.
- swish_config:logo(+Options)// is semidet[multifile]
- Hook to include the top-left logos. The default calls
pengine_logo//1 and swish_logo//1. The implementation should
emit zero or more <a> elements. See
config_available/branding.pl
for an example.
pengine_logo(+Options)// is det
swish_logo(+Options)// is det- Emit an <a> element that provides a link to Pengines and SWISH
on this server. These may be called from swish_config:logo//1 to
include the default logos.
swish_content(+Options)//- Generate the SWISH editor, Prolog output area and query editor.
Options processed:
- source(HREF)
- Load initial source from HREF
- chat_count(Count)
- Indicate the presense of Count chat messages
swish_config_hash(+Options)//[private]- Set
window.swish.config_hash
to a hash that represents the
current configuration. This is used by config.js to cache the
configuration in the browser's local store.
swish_options(+Options)//[private]- Emit additional options. This is similar to config, but the
config object is big and stable for a particular SWISH server.
The options are set per session.
source(+Type, +Options)//[private]- Associate the source with the SWISH page. The source itself is
stored in the textarea from which CodeMirror is created.
Options:
- code(+String)
- Initial code of the source editor
- file(+File)
- If present and
code(String)
is present, also associate the
editor with the given file. See storage.pl.
- url(+URL)
- as
file(File)
, but used if the data is loaded from an
alias/file path.
- title(+Title)
- Defines the title used for the tab.
background(+Options)//[private]- Associate the background program (if any). The background
program is not displayed in the editor, but is sent to the
pengine for execution.
notebooks(+Type, +Options)//[private]- We have opened a notebook. Embed the notebook data in the
left-pane tab area.
download_source(+HREF, -Source, +Options) is det[private]- Download source from a URL. Options processed:
- timeout(+Seconds)
- Max time to wait for reading the source. Default
is 10 seconds.
- max_length(+Chars)
- Maximum lenght of the content. Default is 1 million.
- encoding(+Encoding)
- Encoding used to interpret the text. Default is UTF-8.
- bug
- - : Should try to interpret the encoding from the HTTP
header.
document_type(-Type, +Options) is det[private]- Determine the type of document.
- Arguments:
-
Type | - is one of swinb or pl |
swish_resources//- Include SWISH CSS and JavaScript. This does not use
html_require//1 because we need to include the JS using
RequireJS, which requires a non-standard script element.
swish_rest_reply(+Method, +Request, +Options) is det[private]- Handle non-GET requests. Such requests may be used to modify
source code.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.
swish_logo(Arg1, Arg2, Arg3)
swish_css(Arg1, Arg2)
swish_js(Arg1, Arg2)