## Characters ```base filters: and: - file.hasTag("Character") - note["Played By"].contains(this) formulas: pronouns: if(Pronouns.length == 2,Pronouns[0]+"/"+Pronouns[1],Pronouns) classes: if(Classes.length == 2,Classes[0]+"/"+Classes[1],Classes) sort: Campaign.map(value.asFile().properties["Start Date"]).sort()[0] firstCampaign: Campaign.filter(value.asFile().properties["Start Date"] == formula.sort)[0] longSystem: formula.firstCampaign.asFile().properties["System"] system: if(formula.longSystem.contains("Dragons"),"D&D 5e",formula.longSystem) characterType: if(note["Character Type"].length == 2,"Both Player & NPC",if(note["Character Type"].contains("Player Character"),"Player","NPC")) properties: file.name: displayName: Character formula.firstCampaign: displayName: First Campaign formula.pronouns: displayName: Pronouns formula.classes: displayName: Class formula.system: displayName: System formula.sort: displayName: Start Date formula.characterType: displayName: Character Type views: - type: table name: Table groupBy: property: formula.characterType direction: ASC order: - file.name - Level - formula.firstCampaign - formula.system sort: - property: formula.sort direction: ASC columnSize: file.name: 250 formula.firstCampaign: 275 - type: cards name: Card groupBy: property: formula.characterType direction: ASC order: - file.name - formula.pronouns - formula.classes - Level sort: - property: formula.sort direction: ASC image: Portrait cardSize: 170 imageFit: "" imageAspectRatio: 1 ``` ## Campaigns ```base filters: and: - file.hasTag("Campaign") - or: - note["Players"].contains(this) - note["Dungeon Master"].contains(this) formulas: playerOrDM: if(note["Players"].contains(this),"Player",if(note["Dungeon Master"].contains(this),"Dungeon Master","")) calendar: if(!note["Start (Harptos)"].isEmpty(),"Harptos",if(!note["Start (Absalom)"].isEmpty(),"Absalom","GSC")) gameDate: if(formula.calendar == "Harptos",note["Start (Harptos)"].format("MM/DD/YYYY") + " (Harptos)",if(formula.calendar == "Absalom",note["Start (Absalom)"].format("MM/DD/YYYY") + " (Absalom)","Day " + note["Start Day (GSC)"] + ", " + note["Start Year (GSC)"] + " (GSC)")) properties: file.name: displayName: Campaign formula.playerOrDM: displayName: Participation formula.gameDate: displayName: Start Date note.Duration: displayName: Duration note.Campaign Time: displayName: Duration views: - type: table name: Table groupBy: property: formula.playerOrDM direction: DESC order: - file.name - Start Date - Campaign Time - formula.gameDate - Duration sort: - property: Start Date direction: ASC columnSize: file.name: 265 formula.gameDate: 166 ```