2017-07-10 2 views
0

enthalten ich die Android-Referenz in meiner javadoc Generation vonIst es möglich, Javadoc zu generieren, wo Links zu einer bestimmten URL in einem neuen Tab geöffnet werden?

options { 
    linksOffline "https://d.android.com/reference","${android.sdkDirectory}/docs/reference" 
} 

in einer gradle Javadoc Aufgabe verwenden.

Das funktioniert gut und ich bekomme den richtigen Link zu der Android-Referenz. Das Problem, das ich habe, ist, dass das Standardverhalten des generierten Javadoc html ist, den Link in einem Rahmen zu öffnen, der nicht erlaubt ist. (Load verweigert durch X-Frame-Options: https://developer.android.com/reference/android/Manifest.permission.html?is-external=true nicht erlaubt Cross-Origin Gestaltung.)

Gibt es eine Möglichkeit, die javadoc html in einer Art und Weise zu erzeugen, die https://developer.android.com/reference Links in einem neuen Tab geöffnet?

Antwort

1

Meine temporäre Lösung für jetzt ist nur eine Großtasks-Aufgabe vom Typ exec, die von der Javadoc-Aufgabe abhängt, die ein Shell-Skript ausführt, das dies tun kann.

task("javadocAndroidReferenceInTabs", type: Exec, dependsOn: javadocTask) { 
    executable "sh" 
    args "android_ref_new_tab.sh", "javadoc_path" 
} 

android_ref_new_tab.sh:

grep -rl 'href=\"https:\/\/d\.android\.com\/reference' $1 | xargs sed -i '' 's/href=\"https:\/\/d\.android\.com\/reference/target=\"_blank\" href=\"https:\/\/d\.android\.com\/reference/g' 

Dies fügt target = "_ blank" auf alle Android-Referenz-Links, die sie offen in einem neuen Tab macht.

+0

das ist interessant. Wo setzt du das Skript android_ref_new_tab.sh? Danke ... –

+0

Im selben Ordner wie die build.gradle-Datei, die den Task enthält. – Alex

Verwandte Themen