2013-12-19 2 views
5

Ich versuche, ein kleines Beispielprogramm in Rackets scribble/lp zu schreiben. Die Quelle für das Projekt ist Github.Ungelöste Links in scribble/lp Dokument

Das Problem, das ich erfahre, ist gebrochene Verbindungen im gesponnenen HTML. Ich habe es als gh-page. für das Projekt zur Verfügung gestellt.

Bei der Ausgabe des Dokuments mit dem Befehl ‚Sribble LPexample.scrbl‘ ich die folgende Warnung:

2013 blog > scribble LPexample.scrbl 
[Output to LPexample.html] 
Warning: some cross references may be broken due to undefined tags: 
(dep ((lib "2htdp/image.rkt") ellipse)) 
(mod-path "racket") 
(dep ((lib "2htdp/image.rkt") beside/align)) 
(dep ((lib "2htdp/image.rkt") rectangle)) 
(mod-path "scribble/lp") 

und die Ausgabedatei Orte rote Unterstreichungen unter den gebrochenen Links.

Die Datei, die gekritzelt wird, ist LPexample.scrbl. Es ist ziemlich einfach:

#lang scribble/manual 
@require[scribble/lp-include] 
@title{Literate Programming Example} 
// snip 
@lp-include["LPexample.rkt"] 

Der Abschnitt des gebildeten Programmplanungsdokumentes, das die defekten Links Quellen Linien 69-86:

which weaves to this: 

@chunk[<blue_square> 
     (rectangle 100 100 "solid" "blue")] 

can be composed into other functions this way: 
@verbatim|{ 
@chunk[<blue_square> 
(beside/align "bottom" 
       (ellipse 20 70 "solid" "lightsteelblue") 
       <blue_square>)]}| 

which weaves out to: 

    @chunk[<example_body> 
    (beside/align "bottom" 
        (ellipse 20 70 "solid" "lightsteelblue") 
        <blue_square>)] 

Ich habe durch die Racket-Dokumentation zu graben, natürlich. Aber es gibt wirklich kein gutes Beispiel dafür, Dokumente mit geraden Scribble/Cores oder Scribble/Manual zu vernetzen, geschweige denn Scribble/lp.

Ich habe auch versucht, durch die Quelle für die Racket-Dokumentation zu graben, aber die Scribble-Dateien für die Guide und Reference verwenden so viele benutzerdefinierte Funktionen und Makros und Abhängigkeiten, dass ich mein Gehirn nicht weit genug um es herum bekommen kann , um ein einfaches "Oh, so ist es so" auszugraben.

Antwort

6

Wenn Sie möchten, dass die Bezeichner aus Ihrem Quellcode automatisch hyperverknüpft werden, müssen Sie wahrscheinlich zwei Dinge tun.

Eine ist, dass Sie for-label benötigen für Bibliotheken, die Sie Scribble erkennen möchten. Zum Beispiel möchten Sie wahrscheinlich (require (for-label 2htdp/image)). Weitere Informationen hierzu finden Sie unter this subsection der Dokumentation.

Die andere ist, dass, wenn Sie die Scribble-Dokumente online hosten die Dokumentation Links müssen irgendwo zeigen, und Sie müssen angeben, wo. Sie können das mit einem Befehlszeilenflag tun. Beispiel:

scribble --html +m --redirect-main http://docs.racket-lang.org/ document.scrbl 

Sie können verschiedene Dokumentations-URLs verwenden. Beispielsweise können Sie stattdessen eine Verknüpfung mit der Snapshot-Dokumentation vor der Veröffentlichung unter http://www.cs.utah.edu/plt/snapshots/current/doc/ herstellen.


Weitere Details gibt es einen Unterabschnitt der Scribble-Dokumentation über den Umgang mit Querverweisen: http://www.cs.utah.edu/plt/snapshots/current/doc/scribble/running.html#%28part._xref-flags%29