screedcast.core
Generate screencast panels.
generate-all-screencasts
(generate-all-screencasts opt)Given an options map opt, generate a screencast html doc for all maps contained by the vector associated to :screencast-filename-bases.
See project documentation for details of the options map.
generate-screencast
(generate-screencast fnbe opt)Given file-name base entry fnbe and screedcast options map opt, generate an html screencast page. fnbe is a single element of an options hash-map containing :screencast-filename, :screencast-title, and :screencast-uuid.
generate-toc
(generate-toc opt)Given an options map opt, generate a Table of Contents listing of screencasts hyperlinks. Hyperlink slugs are composed from the screencast filenames.
Within opt,
- :toc-preambleis hiccup/html displayed above the listing
- :toc-uuidis a UUID for the TOC webpage
- :toc-panel-url-baseis the leading portion of the url up to the slug (include a trailing slash ‘/’); address to the panels
- :toc-video-url-baseis the leading portion of the url up to the slug (include a trailing slash ‘/’); address to the video
panel
(panel & hiccups)Returns a screencast panel, with zero or more hiccup forms, including a header and a footer.
prettyfy-form-prettyfy-eval
(prettyfy-form-prettyfy-eval str-form)(prettyfy-form-prettyfy-eval str-form width-fn width-output)Returns a hiccup [:pre [:code]] block wrapping a Clojure stringified form str-form, then a [:pre [:code]] block wrapping a separator sep (default ' => '), and evaluated value.
def, defn, s/def/, defmacro, defpred, and require expressions are only evaled; their output is not captured.
Example:
(prettyfy-form-prettyfy-eval "(inc 99)")
produces this hiccup/html
[:pre [:code.form "(inc 99)"] [:br] [:code.eval ";; => 100"]]
The compiled html elements are manipulated by javascript.
Re-bind readmoi.core/*wrap-at* to change base-case column-wrap width. The two optional width args, width-fn and width-output, supersede this value.
Re-bind readmoi.core/*separator* to change the evaluation arrow.
Note: Evaluated output can not contain an anonymous function of either (fn [x] ...) nor #(...) because zprint requires an internal reference to attempt a backtrack. Since the rendering of an anonymous function changes from one invocation to the next, there is no stable reference.
screedcast-defaults
A hash-map residing in screedcast_defaults.clj that supplies the default values for the following options keys:
- :project-license-section
- :screencast-html-directory
- :sections-directory
- :separator
- :wrap-at
- :tidy-html?
- :toc?
screencast-title
(screencast-title idx screencast-title)Construct a screencast title element from index idx and topic screencast-title.
whats-next-panel
(whats-next-panel idx & notes)Returns a ‘What’s next’ panel, with the next idx screencast highlighted, optional presentation notes to be appended.