假设我在文件example.scrbl上运行scribble:
scribble example.scrbl
我想以编程方式在文件本身内找出正在处理的文件的路径或至少名称(在本例中为example.scrbl)。 我以为会是
(vector-ref 0 (current-command-line-arguments))
但这不起作用。实际上,(current-command-line-arguments)返回空向量。 什么是正确的方法?我想要一个函数,它将返回字符串" example.scrbl"。
答案 0 :(得分:4)
我最近blogged about您可以使用(syntax-source #'here)
获取当前源文件的路径名。
要使其适应Scribble,您只需:
path
转换为string
。所以:
#lang scribble/manual
This Scribble file is @(path->string (syntax-source #'here)).
答案 1 :(得分:2)
您可以使用runtime-path
获取路径(没有文件名)而不使用语法元素:
#lang racket
(require racket/runtime-path)
(define-runtime-path here (simplify-path (build-path 'same)))
(displayln here)