From 6fe6297b5c6850eb54363bd900d5b002025fa1ad Mon Sep 17 00:00:00 2001 From: xenia Date: Sun, 21 Jan 2024 22:12:40 -0500 Subject: [PATCH] wf-validate: begin url rebasing work --- scripts/writefreely-validate | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/scripts/writefreely-validate b/scripts/writefreely-validate index 8b09462..14ce3a1 100755 --- a/scripts/writefreely-validate +++ b/scripts/writefreely-validate @@ -3,9 +3,13 @@ (require json racket/list + racket/match racket/port racket/pretty) +(define link-base (make-parameter #f)) +(define embed-base (make-parameter #f)) + (define current-header (make-parameter #f)) (define (check-block blk) @@ -29,11 +33,27 @@ (check-block thing)) (for-each check-any (hash-values thing)))) +(define (hash-ref* table keys) + (match keys + ['() table] + [(cons key rst) (hash-ref* (hash-ref table key #f) rst)])) + (define (check-ast doc-ast) + (link-base (hash-ref* doc-ast '(meta wf-link-base c))) + (embed-base (hash-ref* doc-ast '(meta wf-embed-base c))) (check-any (hash-ref doc-ast 'blocks))) +(define (transform-ast doc-ast) + ;; todo + doc-ast) + (module+ main - (define doc-ast (read-json)) - (current-header "") - (check-ast doc-ast) - (write-json doc-ast)) + (require racket/cmdline) + + (command-line + #:program "writefreely-validate" + #:args (doctype) + (define doc-ast (read-json)) + (current-header "") + (check-ast doc-ast) + (write-json (transform-ast doc-ast))))