java-aktuell / java-aktuell-asciidoc-template

2 stars 3 forks source link

Wie verweist man auf die automatisch vergebene Nummer eines Listings? #2

Open mkarg opened 8 months ago

mkarg commented 8 months ago

Listings werden augenscheinlich mit einer automatisch vergebenen Nummer beziffert. Ist es möglich, auf diese automatisch vergebene Nummer Bezug zu nehmen?

mkarg commented 8 months ago

@McPringle WDYT?

McPringle commented 8 months ago

Bisher muss man das leider noch manuell machen. Bei den Quellenangaben geht das schon automatisch. Bei allen anderen Verweisen (Code-Listings, Tabellen, Bilder) leider noch nicht. Wenn du dafür eine Lösung hast, gerne her damit!

mkarg commented 8 months ago

Wenn ich das richtig sehe, ist dafür ein Feature Request bei Asciidoctor notwendig. Ich kann zwar verweisen, aber da steht dann immer der Text, nicht die Nummer.

khmarbaise commented 8 months ago

Also ich habe das so gemacht:

Die Struktur sieht wie im xref:#listing.structure[xrefstyle=short] dargestellt aus.
...
[source,text]
[[listing.structure]]
.Beispiel Projektstruktur
----
.
├── pom.xml
└── src

Dann kommt da das raus: Screenshot 2023-12-18 at 17 29 57

Die Referenz ist #listing.structure ...

McPringle commented 8 months ago

Asciidoctor hat auch eine Plugin-Schnittstelle. Ich habe mir die vorhandenen "Extensions" allerdings noch nicht angesehen, ob es etwas gibt, das man nehmen könnte. Sonst wäre eine eigene Extension ggf. auch eine mögliche Lösung.

Siehe: https://asciidoctor.org/docs/extensions/

Und schwupps, kommt ein guter Vorschlag von @khmarbaise ... :-)

McPringle commented 8 months ago

Die Struktur sieht wie im xref:#listing.structure[xrefstyle=short] dargestellt aus.

Das werde ich in den nächsten Tagen mal ausprobieren. Eventuell kann man xrefstyle=short auch im Header der Datei für alle deklarieren?

khmarbaise commented 8 months ago

Im Header definieren kann man machen.. macht hier auf jeden fall sinn..

khmarbaise commented 8 months ago

BTW manchmal ist es auch hilfreich ein Refrenz wie folgt anzugeben:

[source,java,id="listing.plugin.report.unittest"]
.Konfiguration für den Report
----
class FirstTest {

  @Test
..
khmarbaise commented 8 months ago

So zum Thema Tabellen:

Hier eine Referenz auf eine Tabelle xref:#table.overview[xrefstyle=short] hier kommt Tabelle 2: xref:#table.overview.two[xrefstyle=short]

[[table.overview]]
.A Table with two columns.
|===
| Header Cell 1 | Header Cell 2

| Row 1 Cell 1
| Row 1 Cell 2

| Row 2 Cell 1
| Row 2 Cell 2
|===

[[table.overview.two]]
.The Second Table with two columns.
|===
| Header Cell 1 | Header Cell 2

| Row 1 Cell 1
| Row 1 Cell 2

| Row 2 Cell 1
| Row 2 Cell 2
|===

Ausgabe: Screenshot 2023-12-18 at 17 51 34

Gleiches Konzept..

Für die Bilder gilt das Gleiche:

Schauen wir uns einmal den Bericht an xref:#abbildung.one[xrefstyle=short] test.

.JaCoCo Übersicht
[id="abbildung.one"]
image::jacoco-unit-test-only.png[]

Wichtig ist hier .JaCoCo Übersicht sprich die Caption. Ansonsten wird die Referenz nicht korrekt den Abbildungen zugeordnet und auch nicht entsprechende nummeriert.

Screenshot 2023-12-18 at 17 58 22

alternativ geht das auch so:

[[abbildung.two]]
.Integrationtests
image::jacoco-unit-and-integration-test.png[]

Mit entsprechendem Link xref:#abbildung.two[xrefstyle=short]...

khmarbaise commented 8 months ago

Bisher muss man das leider noch manuell machen. Bei den Quellenangaben geht das schon automatisch. Bei allen anderen Verweisen (Code-Listings, Tabellen, Bilder) leider noch nicht. Wenn du dafür eine Lösung hast, gerne her damit!

Bei den Quellenangaben geht das leider nicht automatisch... Da muss die Referenz selbst angeben:

- [[[apache-maven,1]]] https://maven.apache.org[]
- [[[maven-surefire-plugin,2]]] https://maven.apache.org/plugins/maven-surefire-plugin/[]
mkarg commented 8 months ago

xref:#listing.structure[xrefstyle=short]

Super, danke für den Tipp, hat geklappt! :-)