{"size": 1893, "ext": "scrbl", "max_stars_repo_path": "scribblings/quickscript-extra.scrbl", "max_stars_repo_name": "Metaxal/quickscript-extra", "max_stars_repo_stars_event_min_datetime": "2017-12-30T02:19:38.000Z", "max_stars_repo_stars_event_max_datetime": "2020-07-09T00:54:16.000Z", "max_issues_repo_path": "scribblings/quickscript-extra.scrbl", "max_issues_repo_name": "Metaxal/quickscript-extra", "max_issues_repo_issues_event_min_datetime": "2017-12-30T15:52:41.000Z", "max_issues_repo_issues_event_max_datetime": "2022-01-26T15:18:42.000Z", "max_forks_repo_path": "scribblings/quickscript-extra.scrbl", "max_forks_repo_name": "Metaxal/quickscript-extra", "max_forks_repo_forks_event_min_datetime": "2019-09-25T23:23:47.000Z", "max_forks_repo_forks_event_max_datetime": "2021-12-10T21:42:43.000Z"}
{"max_stars_count": 8, "max_issues_count": 26, "max_forks_count": 4, "avg_line_length": 33.2105263158, "max_line_length": 125, "alphanum_fraction": 0.6434231379}
#lang scribble/manual
@(require racket/runtime-path
          racket/dict
          racket/path
          racket/match
          quickscript/base)

@(define-runtime-path scripts-path "../scripts")

@;; If calling this function is slow, compile the scripts first.
@(define (get-script-help-strings scripts-path)
  (filter
   values
   (for/list ([filename (in-list (directory-list scripts-path #:build? #f))])
     (define filepath (build-path scripts-path filename))
     (and (script-file? filepath)
          (cons (path->string (path-replace-extension filename #""))
                (get-script-help-string filepath))))))
@(define help-strings (get-script-help-strings scripts-path))


@title{Quickscript Extra}

Some scripts for @(hyperlink "https://github.com/Metaxal/quickscript" "Quickscript").

@section{Installation}

In DrRacket, in @tt{File|Package manager|Source}, enter @tt{quickscript-extra}.

Or, on the command line, type: @tt{raco pkg install quickscript-extra}.

If DrRacket is already running, click on @tt{Scripts|Manage scripts|Compile scripts and reload menu}.

@section{Scripts}


@(itemlist
  (for/list ([(name str) (in-dict help-strings)])
     (item (index name @(bold name)) ": "
           (let loop ([str str])
             (match str
               ;; link
               [(regexp #px"^(.*)\\[([^]]+)\\]\\(([^)]+)\\)(.*)$" (list _ pre txt link post))
                (list (loop pre)
                      (hyperlink link txt)
                      (loop post))]
               [else str])))))

@section{Customizing}

If the default keybindings, names or submenus are not to your taste, they can be fully customized
using Quickscript's
@hyperlink["https://docs.racket-lang.org/quickscript/index.html?q=quickscripts#%28part._.Shadow_scripts%29"]{shadow scripts}.

Scripts can also be selectively deactivated from the library
(@tt{Scripts|Manage scripts|Library}).
