diff options
Diffstat (limited to 'src/guile/skribilo/utils/compat.scm')
-rw-r--r-- | src/guile/skribilo/utils/compat.scm | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/src/guile/skribilo/utils/compat.scm b/src/guile/skribilo/utils/compat.scm index c8c3bd0..118f294 100644 --- a/src/guile/skribilo/utils/compat.scm +++ b/src/guile/skribilo/utils/compat.scm @@ -25,15 +25,18 @@ :use-module (skribilo parameters) :use-module (skribilo evaluator) :use-module (srfi srfi-1) - :autoload (srfi srfi-13) (string-rindex) + :autoload (srfi srfi-13) (string-rindex) :use-module (srfi srfi-34) :use-module (srfi srfi-35) :use-module (ice-9 optargs) - :autoload (skribilo ast) (ast?) + :autoload (skribilo ast) (ast? document? document-lookup-node) :autoload (skribilo condition) (file-search-error? &file-search-error) - :autoload (skribilo reader) (make-reader) - :autoload (skribilo lib) (type-name) + :autoload (skribilo reader) (make-reader) + :autoload (skribilo lib) (type-name) + :autoload (skribilo resolve) (*document-being-resolved*) + :autoload (skribilo output) (*document-being-output*) :use-module (skribilo debug) + :re-export (file-size) ;; re-exported from `(skribilo utils files)' :replace (gensym)) @@ -178,6 +181,34 @@ ;;; +;;; Node lookup (formerly provided by `ast.scm'). +;;; + +(define-public (bind-markup! node) + (let ((doc (or (*document-being-resolved*) + (*document-being-output*)))) + (if (document? doc) + (document-bind-node! doc node) + (error "Sorry, unable to achieve `bind-markup!'. Use `document-bind-node!' instead." + node)))) + +(define-public (find-markups ident) + (let ((doc (or (*document-being-resolved*) + (*document-being-output*)))) + (if (document? doc) + (let ((result (document-lookup-node doc ident))) + (if result + (list result) + #f)) + (error "Sorry, unable to achieve `find-markups'. Use `document-lookup-node' instead." + ident)))) + +(define-public (find-markup-ident ident) + (or (find-markups ident) '())) + + + +;;; ;;; Debugging facilities. ;;; |