(define-module (web view markdown) #:use-module (json) #:use-module (ice-9 match) #:use-module (ice-9 format) #:use-module (ice-9 iconv) #:use-module (ice-9 receive) #:use-module (ice-9 string-fun) #:use-module (ice-9 textual-ports) #:use-module (sxml simple) #:use-module (web client) #:use-module (web uri) #:use-module (web request) #:use-module (web sxml) #:use-module (commonmark) #:export (markdown-file->sxml markdown-github->sxml fetch-raw-file) ) (define (markdown-file->sxml fn) "Parse a local file" (commonmark->sxml (call-with-input-file fn get-string-all))) ;; --- fetch github style URLs ;; ;; https://github.com/genenetwork/gn-docs/master/general/brand/aging/home.md ;; https://raw.githubusercontent.com/genenetwork/gn-docs/master/general/brand/aging/home.md ;; https://github.com/genenetwork/gn-docs/edit/master/general/brand/aging/home.md (define (fetch-raw-file url) (receive (response-status response-body) (http-request "https://raw.githubusercontent.com/genenetwork/gn-docs/master/general/brand/aging/home.md") response-body) ) (define (markdown-github->sxml fn) "Parse a github markdown file" (commonmark->sxml (pk (fetch-raw-file fn))))