## 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: 180
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
```