Home
DynaMoW User`s Manual - Dynamic Dictionary of Mathematical
Contents
1. 2 4 CAS Plugins Computer algebra systems can be used with DynaMoW through dedicated plugins Currently predefined plugins are a well tested Maple plugin a simple OCaml plugin that serves as an example as well as experimental Mathematica and Sage plugins These plugins found in the directory src cas are compiled at the time DynaMoW is compiled user implemented plugins can also When the evaluated symbolic code results in a value of the expected type but out of the range of values of the corresponding OCaml type an exception DynaMoW Qut_of_range w c is raised where w encodes the wanted type and c is the computed symbolic value be used provided they abide by the relevant interface Concerning the signature of plugins the interface DynaMoW_cas mli is still considered unstable except for the module type DynaMoW_cas CAS_TYPE describing computer algebra plugins which is meant to be almost stable A module is of type DynaMoW_cas CAS_TYPE if it contains the following elements type a t A phantom type that is used as a parameter to the DynaMoW symb type for every value produced by the plugin This way the typer ensures that values coming from one plugin cannot end up in another one One can use the parameter of type t to give hints to the OCaml typer about the types of values in the CAS as illustrated in 7 type cas_code string val val val Commands that are to be interpreted by the CAS are for now stored in OC
2. par_entities A call to link url text creates a link to the external url url The text text materializes the link 12 FREDERIC CHYZAK AND ALEXIS DARRASSE val link_service lt service_type service_descr gt text_entities gt par_entities A call to link_service descr text creates a link to the service with descriptor descr The text text materializes the link The DynaMoW library also provides functions for applying some decoration on a text fragment or paragraph val code string gt text_entities A call to code s will create a text fragment containing s typeset as code Generally this corresponds to a fixed width font val definition string gt text_entities gt text_entities A call to definition term def will include the text fragment term in the running text associated with a tooltip containing def val css_of_string string gt css Create a value of type css from a string The resulting value can be used to apply an arbitrary style to text fragments or paragraphs The argument must contain a well formed fragment in standard CSS syntax val dstyle css gt string gt text_entities Create text with an arbitrary style val note sec_entities gt sec_entities Transform a paragraph to a note This is generally styled in smaller font val warning sec_entities gt sec_entities Transform a paragraph to a warning This is generally styled in orange color val pstyle css gt sec_e
3. prevents using variables of the old computer algebra system until we switch back to it with a new call to use_cas When working on the toplevel one can install a pretty printer of symbolic values install_printer Maple pp lt lt expand x 1 72 x72 gt gt _a DynaMoW_CAS__ t DynaMoW symb lt lt 2 x 1 gt gt 2 2 Symbolic quotations and their antiquotations The following quo tations and corresponding antiquotations allow for the simplification of many com mon patterns in code using the DynaMoW library to call a computer algebra sys tem All quotations below take an expression in the internal language of the cur rent CAS What differs is their output format whether an OCaml handle to an externally living symbolic value or after some kind of conversion a value of some native OCaml type lt symb lt gt gt Create a reference to a value living in the CAS the type of the result is t DynaMoW symb This is the default quotation in DynaMoW based OCaml code and it can be abbreviated lt lt gt gt DYNAMOW USER S MANUAL 5 lt unit lt gt gt Evaluate the code without considering its result This is mainly useful for declarations that do some side effect in the CAS lt latex lt gt gt Return a string containing the TX representation of the expression it was given lt Sint lt 3 4 2 gt 2 If the expression evaluates to an integer this quotation returns the cor respondin
4. and otherwise on the CeCILL web sitd It bears the copyright Copyright INRIA and Microsoft Corporation 2008 2011 The authors of DynaMoW are Fr d ric Chyzak frederic chyzak inria fr and Alexis Darrass alexis darrasse lip6 fr Running DynaMoW requires e some version of John Resig s jQuery which is not provided with the dis tribution of DynaMoW but is distributed from http jquery org under the dual license MIT or GPL Version 2 e some version of Davide P Cervone s jsMath which is provided beside the distribution of DynaMoW and is as well distributed from math union edu dpvc jsMath under the Apache License 2 0 1 5 Status of the API Concerning the API we intend to follow semantic versioning recommendations As of 1 0 0 the stable API consists of e the keywords use_cas let_service type_symb e the syntax and semantics of quotations and of corresponding antiquota tions as described in 2 2 and but not their implementation e the interfaces DynaMoW m1li DynaMoW_services mli and DynaMoW_fcgi mli Are still considered unstable or meant to disappear e DynaMoW_cas mli DynaMoW_internal mli Out of the existing computer algebra plugins Maple as used by use_cas Maple may be considered stable but not its implementation all other plugins are still experimental 1 6 Installation and compilation TO DO Including config_helper http www fastcgi com drupal Chttp ddmf m
5. backtrace in case of an error and all the interaction with the CAS core log file A path of a file that must be writable by the web server where debug information is logged By default output goes do stdout html css_file Possibly relative Path to a css file for the generated web pages De faults to dynamow css html jquery URI of a jQuery distribution Defaults to a local copy jquery 1 4 2 min js Another possible good choice is http code jquery com jquery 1 4 2 min js maple Whole section is optional but required if the Maple plugin is to be used maple path Path to the Maple executable Defaults to maple in that case maple should by in your PATH maple opts Options of the Maple executable Defaults to qt e0 maple libs Additional Maple libraries Defaults to Should contain a sequence of library options like b maple The Maple core library and the Maple DynaMoW glue is also always loaded at the end by the option B b maple server commit_hash Defaults to git rev list max count 1 oneline HEAD DynaMoW also provides a script available by setting the option to dynamow bin commit_hash server cache_max_age Defaults to 7_257_600 Three months Negative value means no cache server cookie_max_age Defaults to 604_800 A week httpd doc_root Defaults to httpd port Defaults to 8765 httpd url_base_name Name of the fast CGI used before the
6. with dynamic mathematical content several layers of programming languages need to coexist in the application the monitoring controlling language one or several computer algebra languages a language to express web documents It is natural to require that those layers appear as naturally as possible in the same source files and Dy naMoW takes care of this as well 1 2 Overview of DynaMoW DynaMoW is implemented as a language extension of OCamf together with a relevant system The most visible feature in this extension is the use of quotations that is the use of lexical markups to embark fragments of other languages as is This is used to embark fragments of computer algebra sources or fragments of web documents directly into the OCaml source Additional antiquotations permit variables to migrate from one layer to the other antiquoted OCaml variables can be used in quotations either for symboli values to take part in computer algebra calculations or for symbolic values to appear in a mathematical display DynaMoW is intended to be independent of the chosen CAS Here a CAS is meant as what could be called a symbolic shell CAS usually are interpreted systems prompting users for mathematical commands in imperative style For DynaMoW to interact with such shells each symbolic calculator is introduced by a well specified interface taking the form of a plugin As of the time of writing only a plugin for Maple has been tested ext
7. DynaMoW User s Manual for DynaMoW release 1 0 0beta Fr d ric Chyzak and Alexis Darrasse March 25 2011 CONTENTS About DynaMoW 1 Why Dynamic Mathematics on the Web 2 Overview of DynaMoW 3 Acknowledgments A License 5 Status of the AP 6 Installation and compilation Computer algebra system calls 1 Configuration 2 Symbolic quotations and their antiquotations 2 3 Interface DynaMoW mli 4 CAS Plugins 3 1 Web services 1 1 Predefined service types 1 2 Service declaration 2 Construction of content 2 2 1 Predefined content types 2 2 Content quotations and their antiquotations 10 2 3 Content manipulating functions 11 ai OMDMADMDAUTIAKRRWWWWNHE j NS N UN Ko 3 2 4 Calling and linking to a service 12 3 3 Extra service parameters 12 3 4 Toplevel use 12 4 Setting up an application as a fast CGI 12 13 2 Example application using DynaMoW as an FCGI 14 14 A 14 14 1 About DynaMoW 1 1 Why Dynamic Mathematics on the Web The presentation of math ematical contents on the web has become nicer and nicer over the last years with 1 2 FREDERIC CHYZAK AND ALEXIS DARRASSE tools like jsMath which relies on the widespread deployed JavaScript or MathML which should soon be well interpreted by most of the web browsers By introducing scalable fonts both approaches result in a much better rendering than the older method of displaying ma
8. MoW symb gt latex Return a I4TRX representation of a symbolic value living in the CAS cas_code_of_bool bool gt cas_code Transform an OCaml boolean to CAS code that evaluates to the corre sponding boolean value in the CAS reset unit gt unit Reset the CAS to a fresh state yet described in detail as it is unstable 8 FREDERIC CHYZAK AND ALEXIS DARRASSE 3 Web services and web document content A DynaMoW application is structured around services which are special OCaml modules to be described in this section The typical role of a service is the compu tation of some unrestricted OCaml value more often that not involving symbolic types enriched with some presentation format To this end a service returns a product of the form doc obj where type doc represents a document that can be serialised and served by a CGI and type obj is the type of returned values Services can call one another taking decisions based on the symbolic values obj types so as to recombine the document values doc types DynaMoW applications base on a small number of predefined document kinds to represent text files binary blobs SVG images and web document trees Such document contents are also described in this section together with operations on them 3 1 Web services 3 1 1 Predefined service types content_service svg_service lt service_type service_descr etc 3 1 2 Service declaration A DynaMoW service is declared thro
9. aml strings but this type will become opaque in the near future evaluator_symbolic cas_code gt a t DynaMoW symb Evaluate the CAS code and return a reference to the result Used typi cally when evaluating quotations lt symb lt gt gt evaluator_latex cas_code gt latex Evaluate the CAS code and return the ATRX representation of the result Used typically when evaluating quotations lt latex lt gt gt evaluator_unit cas_code gt unit Evaluate the CAS code Used typically when evaluating quotations Luni tsoa val val val val val val val val val val To simplify creation of new plugins we provide the DynaMoW_cas Shell Generic functor that should be well adapted to most CAS with a command line interface providing a read eval print loop This functor takes as input a module that con tains a string for each CAS command needed by DynaMoW This interface is not DYNAMOW USER S MANUAL evaluator_int cas_code gt int Evaluate the CAS code and return the OCaml int corresponding to the result Used typically when evaluating quotations lt int lt gt gt If the result is not an integer a exception is raised if the result does not fit ae exception is raised evaluator_bool cas_code gt bool Evaluate the CAS code and return the OCaml bool corresponding to the result Used typically when evaluating quotations lt bool lt gt gt If the result is not a boolean a excepti
10. an inlined mathematical expression in the same way one would use in a ATEX document Inside such a nested quotation the antiquo tations symb int bool and str are available to include values of OCaml variables The lt symb lt gt gt or lt lt gt gt quotation can be used inside lt imath lt gt gt to eval uate a CAS expression e The lt dmath lt gt gt quotation does the same thing as lt imath lt gt gt but is rendered as displayed maths e The lt isymb lt gt gt and lt dsymb lt gt gt quotations provide short cuts for lt imath lt lt symb lt gt gt gt gt and lt dmath lt lt symb lt gt gt gt gt respectively e The antiquotation string allows for the result of an ar bitrary OCaml string expression to be included in the paragraph The antiquotations int and bool do the same the resulting value being passed through functions string_of_int and string_of_bool respectively e The antiquotation p_ent abbreviated allows for calculated par_entities to be included in a paragraph Simi larly text_entities can be included through the t_ent antiquotation lt text lt gt gt Create a text_entities value Except for its output type is simi lar to lt par lt gt gt This quotation is most useful for creating titles and the like Only the relevant subset of quotations and antiquota tion
11. e DynaMoW_filter Camlp4 module It is translated at preprocessing time into code that depends on DynaMoW_cas and DynaMoW_internal TO DO EXAMPLES AND INLINE EXPAND THE FOLLOWING For examples on how to use these quotations see the file webless webless ml A more advanced but still unstable range of possible interactions with the CAS is described by the DynaMoW_cas CAS_TYPE module type 2 3 Interface DynaMoW mli val init unit gt unit The DynaMoW init function initializes DynaMoW by reading the config uration file By default configuration is read from file HOME dynamowre or etc dynamowrc val FREDERIC CHYZAK AND ALEXIS DARRASSE set_config file string gt unit To specify where the configuration file is a user should use function DynaMoW set_config file type a symb Symbolic values have type DynaMoW symb The type parameter encodes the corresponding computer algebra system For example Maple sym bolic values have type a Maple t DynaMoW symb This second level of parametrisation can be used to reflect in a finer way in OCaml different datatypes returned by the same CAS exception Invalid_type of string string When the evaluation of some symbolic code by an evaluator_ of a plugin does not result in a value of the expected type an exception DynaMoW Invalid_type w c is raised where w encodes the wanted type and c is the computed symbolic value exception Out_of_range of string string
12. ensively but more are available on an experimental level and more could be developed by users Thus a DynaMoW based application appears as a sort of compiled OCaml application Quotations and antiquotations are resolved at a preprocessing stage http caml inria fr ocaml roughout this document symbolic means related to an external computer algebra system 3s a consequence all examples calling a computer algebra system in this document use Maple DYNAMOW USER S MANUAL 3 of the compilation a Camlp4 filter converts the DynaMoW source to pure OCaml source in which quoted fragments now appear as strings and antiquotations take the form of suitable strings concatenations and function calls The obtained OCaml source is compiled next yielding a usual OCaml stand alone application Finally this application is typically made available online as a CGI or rather a Fast ccf which monitors run time interpreted symbolic calculations in a CAS 1 3 Acknowledgments The conception of DynaMoW has benefited greatly from discussions with James Leifer Marc Mezzarobba Nicolas Pouillard and Didier R my As DynaMoW was initially developed to serve as the underlying engine of the Dynamic Dictionary of Mathematical Function DDMF it has also been influenced by discussions with DDMF developers 1 4 License DynaMoW is distributed under CeCILL B license of which a copy is available in English and French in the directory license
13. g OCaml int otherwise a DynaMoW Invalid_type exception is raised lt bool lt gt gt If the expression evaluates to a boolean this quotation returns the cor responding OCaml bool otherwise a DynaMoW Invalid_typelexception is raised lt string lt gt gt If the expression evaluates to a string this quotation returns the corre sponding OCaml string otherwise a DynaMoW Invalid_typelexception is raised The design of the lt int lt gt gt lt bool lt gt gt and lt string lt gt gt quo tations is based on the informal assumption that the computer algebra system has types that correspond to int bool and string However there are cases where the OCaml type is only an approximation of the external type This is typically so for example when a computer algebra system has integer values that cause an overflow as an OCaml integer In such cases the quotation will raise an PynaWfoW Out_of range exception One can inject OCaml values into the CAS expression inside a quotation by us ing one of the following antiquotations symb int bool and str Each of these takes an OCaml expression that must be of the type designated by the antiquotation name In all quotations above the symb antiquotation can be abbreviated let os lt int lt 1 243 4 5 gt gt i val s int 15 s 2 z ant 7 The notation just described is defined in th
14. ist of parameters is ended by a colon followed by a product doc obj of types describing the service output and after an equal sign the service body that has to be an OCaml expression of this type Often the pair calculated by a service corresponds to the same symbolic value in two forms the first intended for presentation to the end user the second to further processing in OCaml When calling a service the caller has access to either output via the functions obj and descr Function obj immediately computes and returns the value in symbolic form LogIntegral obj 3 O LogIntegral obj lt lt 1n x 73 x 3 x 1n x 72 6 x 1n x 6 x gt gt On the other hand function descr delays evaluation it creates a descriptor that can later be used with function DynaMoW_services Services call to obtain the presentation as a string let descr LogIntegral descr 3 None val descr LogIntegral doc_type DynaMoW_services service_descr lt abstr gt DynaMoW_services Services call descr DynaMoW_services Services service_type string Binary In x 73 x 3 x 1n x 2 6 x 1n x 6 x Here the actual presentation form is the second element of the pair the first one being an encoding of the kind of service For the type system this kind is repre sented through the generated type doc_type and the parametrisation of the return type of descr ensures no kind clash when services call one another In more complex applicatio
15. ns the presentation form is not necessarily a string but some built in serialisable structure as we will see in TO DO Applications e a static form in a static page to compute the integral of a user supplied Maple expression 4Tp X transcription e computed plot Allude to CGI use nethttpd 3 2 Construction of content 3 2 1 Predefined content types DynaMoW predefined types for document trees are sec_entities par_entities and text_entities Objects of the former type are constructed via specific functions calls objects of the two latter types are usually constructed via quotations then transformed or combined by functions The relevant functions and quotations are described below The type sec_entities is the highest level of nesting in a page it is used to encapsulate a collection of entities to be displayed in vertical succession like a sequence of sections or a sequence of paragraphs such vertical successions approx imately correspond to sequences of lt div gt s in HTML documents The type par_entities encapsulates a collection of lexical elements that con stitute a paragraph that is a collection of entities to be displayed in horizontal succession such horizontal successions approximately correspond to sequences of lt span gt s in HTML documents However the treatment of displayed formulas is a notable exception it disrupts the horizontal flow of text but displayed formulas appear in a par_entities as they are pa
16. ntities gt sec_entities Apply an arbitrary style to a paragraph 3 2 4 Calling and linking to a service One uses the descriptors obtained through the descr function of a service to make the result of this service accessible in a doc ument The DynaMoW library provides with different presentation options one can either include a link or inline the result and the inlining operation can be performed either immediately or asynchronously The options available depend on what kind of document the service creates e for an arbitrary service one can only create a simple link through the link_service function e an SVG producing service can either be linked or inlined through the plot function e the inline_service and include_service functions are reserved for ser vices that produce content documents 3 3 Extra service parameters with 3 4 Toplevel use 4 Setting up an application as a fast CGI Order of sections is not clear DYNAMOW USER S MANUAL 13 4 1 Advanced configuration dynamowrc vs web dynamow cfg vs config mk What follows describes the format of the configuration file for DynaMoW It should be placed in HOME dynamowre or etc dynamowrc Initial white spaces are not taken into account in variable definitions simple spaces as well as double quotes are mandatory around the equal sign and value respectively core debug Enables debug mode if set to on Currently the debug mode includes the display of a
17. on is raised if the result does not fit CT ass Ra a aed exception is raised evaluator_string cas_code gt string Evaluate the CAS code and return the OCaml string corresponding to the result Used typically when evaluating quotations lt string lt gt gt If the result is not a string a exception is raised if the result does not fit in eee eee exception is raised serialization_of_t a t DynaMoW symb gt string Return a compact string representation of a symbolic value living in the CAS The result might not be human readable but it can later be evaluated in a fresh instance of the CAS to recreate the original value This function is used internally for argument passing between services cas_ref_of_t a t DynaMoW symb gt string Return a string containing a reference to a symbolic value living in the CAS The result can later be evaluated in the same instance of the CAS to get a new reference to the original value This function is used internally to implement the symb antiquotation pp Format formatter gt a t DynaMoW symb gt unit This pretty printer can be used as an argument to the install_printer toplevel directive to make symbolic values more transparent pretty_code_of_t a t DynaMoW symb gt pretty_code Return a human readable representation of a symbolic value living in the CAS The end user should be able to use it to recreate the original value latex_of_t a t Dyna
18. question mark in URLs Defaults to dynamow 14 FREDERIC CHYZAK AND ALEXIS DARRASSE 4 2 Example application using DynaMoW as an FCGI Compiling which cma files to copy and where camlp4 Typical possible preamble 4 3 More about MIME configuration 4 4 Default page 4 5 Using CSS and ad hoc web pages
19. rt of the logical flow of sentences The type text_entities encapsulates a collection of lexical elements that con stitute a sentence its constituents are textual fragments possibly decorated with some style and inlined mathematical fragments 10 FREDERIC CHYZAK AND ALEXIS DARRASSE The entity datatypes above are nested in various ways subject to the following constraints e values of type sec_entities are sequences of sections lists and para graphs e the root of a content document the topmost sec_entities should con tain a single section Some of the constructs described below can be applied to the three predefined datatypes above To make this possible these three types are implemented as synonymous for specialisations of a parametrised type a entities 3 2 2 Content quotations and their antiquotations The following quotations and corresponding antiquotations are the primary means to denote values of the horizontal types par_entities and text_entities allowing for the simplifica tion of many common patterns in code using the DynaMoW library lt par lt ENA Create a paragraph from some text Caution this text is restricted to UTE 8 strings it is not allowed to involve any of the amp entities that appear in parsed character data PCDATA of XML Antiquotations and nested quotations are possible in order to include more complicated content e One can use the lt imath lt gt gt quotation to include
20. s available in lt par lt gt gt can be used inside a lt text lt gt gt namely lt imath lt gt gt lt isymb lt gt gt symb Cint bool str and t_ent The t_ent an tiquotation can be abbreviated lt imath lt gt gt Create a par_entities containing inlined maths than can later be in jected into a lt par lt gt gt by using the p_ent antiquotation DYNAMOW USER S MANUAL 11 lt dmath lt gt gt Same as lt imath lt gt gt but for displayed maths The notation just described is defined in the DynaMoW_filter Camlp4 module It is translated at preprocessing time into code that depends on DynaMoW_cas DynaMoW_services and DynaMoW_internal 3 2 3 Content manipulating functions The functions described in this section allow to create and combine entities to create structured documents The following functions and constant are used to concatenate and merge entities of the same type val a entities gt a entities gt a entities Concatenate two entities of the same kind For example if s1 is a sec_entities containing two paragraphs and s2 is a sec_entities containing three paragraphs s1 s2 is a sec_entities with five paragraphs val ent_null a entities Neutral element for the operation val sec_entities gt sec_entities gt sec_entities Merge two paragraphs Both arguments sho
21. sr inria inria fr http www cecill info http algo inria fr chyzak http www ortsa com darrasse eee http www math union edu dpvc jsMath p 1 4 FREDERIC CHYZAK AND ALEXIS DARRASSE 2 Computer algebra system calls 2 1 Configuration After configuration the DynaMoW layer in OCaml has to be initialised by designating the computer algebra system to be used and loading the configuration file the contents of this file will be described in 7 DynaMoW init unit use_cas Maple module DynaMoW_CAS__ sig type a t a Maple t type cas_code string val evaluator_symbolic cas_code gt a t DynaMoW symb val evaluator_latex cas_code gt DynaMoW_cas latex val evaluator_unit cas_code gt unit val evaluator_int cas_code gt int val evaluator_bool cas_code gt bool val evaluator_string cas_code gt string val serialization_of_t a t DynaMoW symb gt string val cas_ref_of_t a t DynaMoW symb gt string val pretty_code_of_t a t DynaMoW symb gt DynaMoW_cas pretty_code val latex_of_t a t DynaMoW symb gt DynaMoW_cas latex val cas_code_of_bool bool gt cas_code val reset unit gt unit end lt lt Q xt l gt gt 35 _a DynaMoW_CAS__ t DynaMoW symb lt abstr gt The order of these two operations is irrelevant By calling again use_cas it is possible to change the computer algebra system used Warning the type system
22. thematical formulas as images But the presentation of mathematics on the web is essentially always static a mathematical web site is often not much more than a book typeset for the web As an exception animated jpeg go a bit beyond that for example for animated plots but they present a statically defined succession of mathematical objects This static nature of common presentation is a real limitation as a lot of the presented mathematical objects are infinite in nature As only a finite truncation of them can be displayed at a time in a static model only a statically chosen limited amount of information can be displayed Typical examples are ranges of plots orders in series expansions precisions in numerical calculations and so on This situation is ignoring that the web also allows for interactions with docu ments readers should naturally be able to ask for interactive modifications of the parameters used in the generation of formulas and for the dynamic recalculations and redisplay of the mathematical objects This of course relies on the ability to perform run time mathematical calculations and computer algebra systems CAS are a suitable tool for this DynaMoW fulfills these needs it is a tool to simultaneously interact with math ematical readers monitor calculations in computer algebra systems and generate or regenerate mathematical web pages to be displayed Additionally from the point of view of the designer of a web site
23. ugh a dedicated keyword let_service This returns a special OCaml module of the following generated type module type SERVICE_TYPE sig type required type optional type doc_type type obj val defaults optional val obj required optional gt obj val descr required gt optional option gt doc_type DynaMoW_services service_descr end Here all types are built from the service declaration syntax to be described below More specifically types required and optional are tuples describing the re quired and optional parameters of the service Required parameters can be of any type while optional parameters may only be OCaml integers booleans or strings Support for more types especially enumerations will be added in future versions Let us describe the let_service syntax on an example Suppose we want a service named LogIntegral to calculate the integral of the nth power of the logarithm function This can be declared as follows let_service LogIntegral n int string maple let res lt lt int log x int n x gt gt in lt string lt sprintf Za res gt gt res The service name is followed by the list of parameters here a single required pa rameter the integer n Optional parameters are signaled by specifying a default value For example let_service LogIntegral n int 1 string maple would allow calling the service with no explicit value for n DYNAMOW USER S MANUAL 9 The l
24. uld contain a single para graph i e be the result of either the lt par lt gt gt quotation or of the function and the result will also contain a single paragraph WHAT HAPPENS OTHERWISE Sections and list are created through the following functions val section text_entities gt sec_entities gt sec_entities A call section t b builds a section with title t and body b The body has to be either a sequence of sections or a sequence of paragraphs and lists val ordered_list sec_entities list gt sec_entities A call ordered_list items builds an enumeration where items are the elements of items The list items may not contain sections val unordered_list sec_entities list gt sec_entities A call ordered_list items builds an bulleted list where items are the elements of items The list items may not contain sections One can include or link to the result of other services or an external resource through the following functions val include_service content_service gt sec_entities Include the content of another service The content is not loaded until the user asks for it only the title is displayed val inline_service content_service gt sec_entities Include the content of another service The content is automatically loaded and displayed val plot svg_service gt par_entities Include an SVG image produced by some service The image is inlined val link string gt text_entities gt
Download Pdf Manuals
Related Search
Related Contents
ユーザーズ・ハンドブック PRN608-S Epson Aculaser C1100 PDFダウンロード DL-3620 Service Manual 取扱説明書・お料理ノート Traduzione del Manuale di Istruzioni Copyright © All rights reserved.
Failed to retrieve file