• Top
    • Documentation
      • Xdoc
        • Undocumented
        • Save
        • Defsection
        • Markup
        • Preprocessor
        • Terminal
        • Emacs-links
        • Defxdoc
        • Katex-integration
        • Constructors
        • Entities
        • Defxdoc+
        • Save-rendered
          • Add-resource-directory
          • Testing
          • Order-subtopics
          • Save-rendered-event
          • Archive-matching-topics
          • Archive-xdoc
          • Xdoc-extend
          • Set-default-parents
          • Missing-parents
          • Defpointer
          • Defxdoc-raw
          • Xdoc-tests
          • Xdoc-prepend
          • Defsection-progn
          • Gen-xdoc-for-file
        • ACL2-doc
        • Recursion-and-induction
        • Loop$-primer
        • Operational-semantics
        • Pointers
        • Doc
        • Documentation-copyright
        • Course-materials
        • Args
        • ACL2-doc-summary
        • Finding-documentation
        • Broken-link
        • Doc-terminal-test-2
        • Doc-terminal-test-1
      • Books
      • Boolean-reasoning
      • Projects
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Xdoc

    Save-rendered

    Saves the XDOC database into files for the acl2-doc browser

    Also see save-rendered-event for a corresponding macro that provides additional functionality.

    General Form:
    
    (save-rendered outfile
                   header
                   topic-list-name
                   error
                   write-acl2-doc-search-file
                   state)

    where outfile is the pathname for the output file containing rendered documentation, header is to be written to the top of outfile (typically as a comment), and the value of topic-list-name is a symbol that can be the first argument of defconst, hence of the form *c*. The value of error should be t or nil to indicate whether or not (respectively) to cause an error upon encountering a syntax error in xdoc source (marked by "xdoc error"). When the value of write-acl2-doc-search-file is not nil, then a file "acl2-doc-search" is written, to be used for speeding up ACL2::ACL2-doc search commands.

    Upon success, the call displayed above returns the error-triple (mv nil (value-triple :ok) state); probably the value is unimportant except that it allows an xdoc::save-rendered call to be placed inside make-event, as displayed below.

    For example, the following form may be found in community book books/doc/top.lisp. Its evaluation creates the output file books/system/doc/rendered-doc-combined.lsp". That file starts with a comment from the string, *rendered-doc-combined-header*, then contains (in-package "ACL2"), and concludes with a form (defconst *ACL2+BOOKS-DOCUMENTATION* '<big-alist>), where <big-alist> is an alist representing the XDOC database.

    (make-event
     (time$
      (xdoc::save-rendered
       (extend-pathname (cbd)
                        "../system/doc/rendered-doc-combined.lsp"
                        state)
       *rendered-doc-combined-header*
       '*acl2+books-documentation*
       t ; cause error upon encountering xdoc error
       state)))

    The output file is typically used by the acl2-doc Emacs-based browser for XDOC. See ACL2::ACL2-doc, specifically the discussion of custom manuals, which explains that the filename argument of Emacs function extend-acl2-doc-manual-alist is exactly the output file created by xdoc::save-rendered.