1
0
2026-01-10 14:30:32 -06:00

78 lines
1.7 KiB
Markdown

<%*
const title = (
tp.file.title === "Untitled"
? await tp.system.prompt("Campaign Title")
: tp.file.title
);
const gm = await tp.system.prompt("Add a GM to this campaign")
let isAddingPlayers = true;
const players = [];
while (isAddingPlayers) {
const player = await tp.system.prompt("Add a player to this campaign")
if (player) {
players.push(player)
} else {
isAddingPlayers = false;
}
}
const settingFiles = tp.user.util.filesWithTag("ttrpg/setting");
const settingFile = (
settingFiles.length > 0
? await tp.system.suggester((file) => file.basename, settingFiles, false, "Select a setting")
: null
);
const systemFiles = tp.user.util.filesWithTag("ttrpg/system");
const systemFile = (
systemFiles.length > 0
? await tp.system.suggester((file) => file.basename, systemFiles, false, "Select a system")
: null
);
const metadata = {
title,
tags: ["ttrpg/campaign"],
data: {
icon: "notebook-tabs",
title,
players,
gm,
pdfs: [],
campaignStatus: "planning",
},
};
if (settingFile) {
metadata.data.setting = tp.app.fileManager.generateMarkdownLink(
settingFile, tp.file.path(true), null, settingFile.basename
);
}
if (systemFile) {
metadata.data.system = tp.app.fileManager.generateMarkdownLink(
systemFile, tp.file.path(true), null, systemFile.basename
);
}
await tp.user.util.updateMetadata(tp, metadata);
%>
<% tp.file.cursor() %>
## Player Characters
![[CampaignInfo.base#Player Character Cards]]
## Sessions
![[CampaignInfo.base#Sessions]]
## Factions
![[CampaignInfo.base#Factions]]
## NPCs
![[CampaignInfo.base#Nonplayer Characters]]
## Places
![[CampaignInfo.base#Places]]
## PDFs
![[PDFinfo.base]]