diff --git a/docs/templates/dnd5e/QuteMonster/README.md b/docs/templates/dnd5e/QuteMonster/README.md index 8366910c3..e495c703e 100644 --- a/docs/templates/dnd5e/QuteMonster/README.md +++ b/docs/templates/dnd5e/QuteMonster/README.md @@ -139,7 +139,7 @@ See [ImmuneResist#resist](../ImmuneResist.md#resist) ### savesSkills -Creature saving throws and skill modifiers as [SavesAndSkills](../SavesAndSkills.md) +Creature saving throws and skill modifiers as [SavesAndSkills](SavesAndSkills.md) ### savingThrows @@ -175,7 +175,7 @@ Creature speed as a comma-separated list ### spellcasting -Creature abilities as a list of [Spellcasting](../Spellcasting.md) attributes +Creature abilities as a list of [Spellcasting](Spellcasting.md) attributes ### subtype diff --git a/docs/templates/dnd5e/QuteMonster/Spellcasting.md b/docs/templates/dnd5e/QuteMonster/Spellcasting.md index 6c7cef3f1..adf21ff53 100644 --- a/docs/templates/dnd5e/QuteMonster/Spellcasting.md +++ b/docs/templates/dnd5e/QuteMonster/Spellcasting.md @@ -45,7 +45,7 @@ Name: "Spellcasting" or "Innate Spellcasting" ### spells -Map: key = spell level, value: spell level information as [Spells](../QuteSpell/Spells.md) +Map: key = spell level, value: spell level information as [Spells](Spells.md) ### will diff --git a/docs/templates/dnd5e/README.md b/docs/templates/dnd5e/README.md index aa1376d42..bd6cc5dc8 100644 --- a/docs/templates/dnd5e/README.md +++ b/docs/templates/dnd5e/README.md @@ -8,18 +8,18 @@ - [ImmuneResist](ImmuneResist.md): 5eTools vulnerabilities, resistances, immunities, and condition immunities - [QuteBackground](QuteBackground.md): 5eTools background attributes (`background2md.txt`). - [QuteClass](QuteClass.md): 5eTools class attributes (`class2md.txt`) -- [QuteDeck](QuteDeck.md): 5eTools deck attributes (`deck2md.txt`) +- [QuteDeck](QuteDeck/README.md): 5eTools deck attributes (`deck2md.txt`) - [QuteDeity](QuteDeity.md): 5eTools deity attributes (`deity2md.txt`) - [QuteFeat](QuteFeat.md): 5eTools feat and optional feat attributes (`feat2md.txt`) - [QuteHazard](QuteHazard.md): 5eTools hazard attributes (`hazard2md.txt`) -- [QuteItem](QuteItem.md): 5eTools item attributes (`item2md.txt`) -- [QuteMonster](QuteMonster.md): 5eTools creature attributes (`monster2md.txt`) +- [QuteItem](QuteItem/README.md): 5eTools item attributes (`item2md.txt`) +- [QuteMonster](QuteMonster/README.md): 5eTools creature attributes (`monster2md.txt`) - [QuteObject](QuteObject.md): 5eTools object attributes (`object2md.txt`) - [QutePsionic](QutePsionic.md): 5eTools psionic talent attributes (`psionic2md.txt`) - [QuteRace](QuteRace.md): 5eTools race attributes (`race2md.txt`) - [QuteReward](QuteReward.md): 5eTools reward attributes (`reward2md.txt`) - [QuteSpell](QuteSpell.md): 5eTools spell attributes (`spell2md.txt`) - [QuteSubclass](QuteSubclass.md): 5eTools subclass attributes (`subclass2md.txt`) -- [QuteVehicle](QuteVehicle.md): 5eTools vehicle attributes (`vehicle2md.txt`) +- [QuteVehicle](QuteVehicle/README.md): 5eTools vehicle attributes (`vehicle2md.txt`) - [Tools5eQuteBase](Tools5eQuteBase.md): Attributes for notes that are generated from the 5eTools data. - [Tools5eQuteNote](Tools5eQuteNote.md): Attributes for notes that are generated from the 5eTools data. diff --git a/docs/templates/pf2e/QuteAbility.md b/docs/templates/pf2e/QuteAbility.md index e9a5f13c6..bc6bc1368 100644 --- a/docs/templates/pf2e/QuteAbility.md +++ b/docs/templates/pf2e/QuteAbility.md @@ -99,7 +99,7 @@ Return a comma-separated list of trait links ### traits -Collection of trait links. Use `{#for}` or `{#each}` to iterate over the collection. See [traitList](#traitList) or [bareTraitList](#bareTraitList). +Collection of trait links. Use `{#for}` or `{#each}` to iterate over the collection. See [traitList](#traitlist) or [bareTraitList](#baretraitlist). ### trigger diff --git a/docs/templates/pf2e/README.md b/docs/templates/pf2e/README.md index c27fef7dd..f03b4e3e6 100644 --- a/docs/templates/pf2e/README.md +++ b/docs/templates/pf2e/README.md @@ -6,22 +6,22 @@ - [Pf2eQuteBase](Pf2eQuteBase.md): Attributes for notes that are generated from the Pf2eTools data. - [Pf2eQuteNote](Pf2eQuteNote.md): Attributes for notes that are generated from the Pf2eTools data. - [QuteAbility](QuteAbility.md): Pf2eTools Ability attributes (`ability2md.txt` or `inline-ability2md.txt`). -- [QuteAction](QuteAction.md): Pf2eTools Action attributes (`action2md.txt`) +- [QuteAction](QuteAction/README.md): Pf2eTools Action attributes (`action2md.txt`) - [QuteAffliction](QuteAffliction.md): Pf2eTools Affliction attributes for standalone notes (`affliction2md.txt`) - [QuteArchetype](QuteArchetype.md): Pf2eTools Archetype attributes (`archetype2md.txt`) - [QuteBackground](QuteBackground.md): Pf2eTools Background attributes (`background2md.txt`) -- [QuteBook](QuteBook.md): Pf2eTools Book attributes (`book2md.txt`) +- [QuteBook](QuteBook/README.md): Pf2eTools Book attributes (`book2md.txt`) - [QuteDataActivity](QuteDataActivity.md): Pf2eTools activity attributes - [QuteDataArmorClass](QuteDataArmorClass.md): Pf2eTools armor class attributes -- [QuteDataDefenses](QuteDataDefenses.md): Pf2eTools Armor class, Saving Throws, and other attributes describing defenses +- [QuteDataDefenses](QuteDataDefenses/README.md): Pf2eTools Armor class, Saving Throws, and other attributes describing defenses - [QuteDataHpHardness](QuteDataHpHardness.md): Pf2eTools Hit Points and Hardiness attributes -- [QuteDeity](QuteDeity.md): Pf2eTools Deity attributes (`deity2md.txt`) +- [QuteDeity](QuteDeity/README.md): Pf2eTools Deity attributes (`deity2md.txt`) - [QuteFeat](QuteFeat.md): Pf2eTools Feat attributes (`feat2md.txt`) -- [QuteHazard](QuteHazard.md): Pf2eTools Hazard attributes (`hazard2md.txt`) -- [QuteInlineAffliction](QuteInlineAffliction.md): Pf2eTools Affliction attributes (inline/embedded, `inline-affliction2md.txt`) +- [QuteHazard](QuteHazard/README.md): Pf2eTools Hazard attributes (`hazard2md.txt`) +- [QuteInlineAffliction](QuteInlineAffliction/README.md): Pf2eTools Affliction attributes (inline/embedded, `inline-affliction2md.txt`) - [QuteInlineAttack](QuteInlineAttack.md): Pf2eTools Attack attributes (inline/embedded, `inline-attack2md.txt`) -- [QuteItem](QuteItem.md): Pf2eTools Item attributes -- [QuteRitual](QuteRitual.md): Pf2eTools Ritual attributes (`ritual2md.txt`) -- [QuteSpell](QuteSpell.md): Pf2eTools Spell attributes (`spell2md.txt`) +- [QuteItem](QuteItem/README.md): Pf2eTools Item attributes +- [QuteRitual](QuteRitual/README.md): Pf2eTools Ritual attributes (`ritual2md.txt`) +- [QuteSpell](QuteSpell/README.md): Pf2eTools Spell attributes (`spell2md.txt`) - [QuteTrait](QuteTrait.md): Pf2eTools Trait attributes (`trait2md.txt`) - [QuteTraitIndex](QuteTraitIndex.md): Pf2eTools Trait index attributes (`indexTrait.md`) diff --git a/src/main/java/dev/ebullient/convert/io/MarkdownDoclet.java b/src/main/java/dev/ebullient/convert/io/MarkdownDoclet.java index 570471a6b..7103d9ad7 100644 --- a/src/main/java/dev/ebullient/convert/io/MarkdownDoclet.java +++ b/src/main/java/dev/ebullient/convert/io/MarkdownDoclet.java @@ -138,11 +138,6 @@ protected void processFiles(DocletEnvironment environment) throws IOException { Set elements = environment.getIncludedElements(); - // Print package indexes (README.md) - for (PackageElement p : ElementFilter.packagesIn(elements)) { - writeReadmeFile(docTrees, p); - } - Map> innerClasses = ElementFilter.typesIn(elements).stream() .filter(t -> t.getKind() != ElementKind.INTERFACE) .filter(t -> t.getNestingKind() != NestingKind.TOP_LEVEL) @@ -154,6 +149,11 @@ protected void processFiles(DocletEnvironment environment) throws IOException { classNameMapping.put(reference, reference + ".README"); } + // Print package indexes (README.md) + for (PackageElement p : ElementFilter.packagesIn(elements)) { + writeReadmeFile(docTrees, p); + } + for (TypeElement t : ElementFilter.typesIn(elements)) { if (t.getKind() == ElementKind.INTERFACE) { continue; @@ -251,8 +251,16 @@ void writeReadmeFile(DocTrees docTrees, PackageElement p) throws IOException { } Aggregator elements = new Aggregator(); - members.values().forEach(te -> elements.add("- [" + te.getSimpleName() + "](" + te.getSimpleName() + ".md)" - + getDescription(docTrees, te) + "\n")); + members.values().forEach(te -> { + var ref = classNameMapping.get(te.getQualifiedName().toString()); + if (ref == null) { + elements.add("- [" + te.getSimpleName() + "](" + te.getSimpleName() + ".md)" + + getDescription(docTrees, te) + "\n"); + } else { + elements.add("- [" + te.getSimpleName() + "](" + te.getSimpleName() + "/README.md)" + + getDescription(docTrees, te) + "\n"); + } + }); String result = elements.toString(); if (!result.isEmpty()) { @@ -311,6 +319,9 @@ String qualifiedNameToPath(QualifiedNameable element) { String qualifiedNameToPath(String reference) { if (reference.endsWith("qute")) { reference += ".README"; + } else if (!isValidClass(reference.replace(".README", ""))) { + // Check if the reference is a valid class + throw new RuntimeException("Invalid class reference: " + reference); } return reference .replace("dev.ebullient.convert.", "") @@ -516,4 +527,18 @@ private String replacementFor(String str) { return str; } } + + private boolean isValidClass(String className) { + try { + Class.forName(className); + return true; + } catch (ClassNotFoundException e) { + int pos = className.lastIndexOf("."); + if (pos > -1) { + String innerClass = className.substring(0, pos) + "$" + className.substring(pos + 1); + return isValidClass(innerClass); + } + return false; + } + } } diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteBackground.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteBackground.java index cf16b520d..6ed1cfe3c 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteBackground.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteBackground.java @@ -10,7 +10,7 @@ /** * 5eTools background attributes ({@code background2md.txt}). *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteClass.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteClass.java index 73d2b5463..664ce5164 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteClass.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteClass.java @@ -7,7 +7,7 @@ /** * 5eTools class attributes ({@code class2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeck.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeck.java index 362597585..64ac62795 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeck.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeck.java @@ -12,7 +12,7 @@ /** * 5eTools deck attributes ({@code deck2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeity.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeity.java index f257d633a..84cb95c59 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeity.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteDeity.java @@ -10,7 +10,7 @@ /** * 5eTools deity attributes ({@code deity2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteFeat.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteFeat.java index debde7ce4..1d7004259 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteFeat.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteFeat.java @@ -7,7 +7,7 @@ /** * 5eTools feat and optional feat attributes ({@code feat2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteHazard.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteHazard.java index 23c2b93b0..a386c6e87 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteHazard.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteHazard.java @@ -7,7 +7,7 @@ /** * 5eTools hazard attributes ({@code hazard2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteItem.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteItem.java index 62eb99f09..97223d2c9 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteItem.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteItem.java @@ -13,7 +13,7 @@ /** * 5eTools item attributes ({@code item2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteMonster.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteMonster.java index d373d193d..28c022fe2 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteMonster.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteMonster.java @@ -19,7 +19,7 @@ /** * 5eTools creature attributes ({@code monster2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData @@ -46,7 +46,7 @@ public class QuteMonster extends Tools5eQuteBase { /** Creature ability scores as {@link dev.ebullient.convert.tools.dnd5e.qute.AbilityScores} */ public final AbilityScores scores; /** - * Creature saving throws and skill modifiers as {@link dev.ebullient.convert.tools.dnd5e.qute.SavesAndSkills} + * Creature saving throws and skill modifiers as {@link dev.ebullient.convert.tools.dnd5e.qute.QuteMonster.SavesAndSkills} */ public final SavesAndSkills savesSkills; /** Comma-separated string of creature senses (if present). */ @@ -80,7 +80,7 @@ public class QuteMonster extends Tools5eQuteBase { * Markdown link to legendary group (can be embedded). */ public final String legendaryGroupLink; - /** Creature abilities as a list of {@link dev.ebullient.convert.tools.dnd5e.qute.Spellcasting} attributes */ + /** Creature abilities as a list of {@link dev.ebullient.convert.tools.dnd5e.qute.QuteMonster.Spellcasting} attributes */ public final List spellcasting; /** Formatted text containing the creature description. Same as `{resource.text}` */ public final String description; @@ -364,7 +364,7 @@ public static class Spellcasting { public Map> daily; /** * Map: key = spell level, value: spell level information as - * {@link dev.ebullient.convert.tools.dnd5e.qute.QuteSpell.Spells} + * {@link dev.ebullient.convert.tools.dnd5e.qute.QuteMonster.Spells} */ public Map spells; /** Formatted text that should be printed after the list of spells */ diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteObject.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteObject.java index 81fb754c9..1086be33f 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteObject.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteObject.java @@ -15,7 +15,7 @@ /** * 5eTools object attributes ({@code object2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QutePsionic.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QutePsionic.java index f90a8717f..b9cfb2157 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QutePsionic.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QutePsionic.java @@ -10,7 +10,7 @@ /** * 5eTools psionic talent attributes ({@code psionic2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteRace.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteRace.java index 72b18b9f4..28c94200d 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteRace.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteRace.java @@ -10,7 +10,7 @@ /** * 5eTools race attributes ({@code race2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteReward.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteReward.java index 6a8ef413d..a8f6c808a 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteReward.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteReward.java @@ -7,7 +7,7 @@ /** * 5eTools reward attributes ({@code reward2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSpell.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSpell.java index 0f5e0f2a7..0fe7f2336 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSpell.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSpell.java @@ -11,7 +11,7 @@ /** * 5eTools spell attributes ({@code spell2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSubclass.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSubclass.java index 90ed4014c..569b7eb72 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSubclass.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteSubclass.java @@ -7,7 +7,7 @@ /** * 5eTools subclass attributes ({@code subclass2md.txt}) *

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteVehicle.java b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteVehicle.java index 78b359b94..0d7a03b0e 100644 --- a/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteVehicle.java +++ b/src/main/java/dev/ebullient/convert/tools/dnd5e/qute/QuteVehicle.java @@ -19,7 +19,7 @@ * They can have very different properties. Treat most as optional. *

*

- * Extension of {@link dev.ebullient.convert.tools.dnd5e.Tools5eQuteBase}. + * Extension of {@link dev.ebullient.convert.tools.dnd5e.qute.Tools5eQuteBase}. *

*/ @TemplateData diff --git a/src/main/java/dev/ebullient/convert/tools/pf2e/qute/QuteAbility.java b/src/main/java/dev/ebullient/convert/tools/pf2e/qute/QuteAbility.java index 0edbed1ce..e1f632f51 100644 --- a/src/main/java/dev/ebullient/convert/tools/pf2e/qute/QuteAbility.java +++ b/src/main/java/dev/ebullient/convert/tools/pf2e/qute/QuteAbility.java @@ -28,7 +28,7 @@ public class QuteAbility extends Pf2eQuteNote { /** * Collection of trait links. Use `{#for}` or `{#each}` to iterate over the collection. - * See traitList or bareTraitList. + * See traitList or bareTraitList. */ public final Collection traits; /** Formatted string. Components required to activate this ability (embedded/inline only) */