Open msackton opened 9 months ago
For the question of "what events to include" it might be nice to allow for "all events between two dates" as well, i.e. for an "Events of the 1100s" page.
I'm not convinced, I need to think about it a bit. A few initial gut reactions:
My kind of vague "end state" for NPC pages, which is a bit hand-wavy at the moment, is to have the bio summary, a short overview (often 1 sentence for minor NPCs), a description or a picture, a short biography/history (which might include some combination of free text, a chronology with in-page dates, and an auto-generated events table), a campaign info that has some autogenerated summary of when they've come up in session notes, party treasure, etc (wrapped in campaign blocks; this might also include a campaign-specific events table, actually), and then DM secrets of various kinds. Sometimes I've added things like relationships to others, but pretty haphazardly, although this can be very useful. Sometimes I have "rumors", again pretty haphazardly.
Anyway, will think some more over the long weekend.
The problem I'm thinking about is future events. The problem with your embedded timetables is that there is no good way to exclude events that haven't happened yet from an export.
Conceptually it is fairly easy to exclude campaign specific events, i.e. because those are "naturally" in a separate file.
I guess one approach would be to have 2 events tables.
You could do something like:
That conceptually allows the best of both worlds. You have exported events table contain everything (because it duplicates the events from ""life events"") but you don't have to have a separate file.
It would be very nice if it was possible to embed chronologies in arbitrary notes and have the output appear in the web export. I believe that given (a) the degree to which the generation of the chronology depends on specific Javascript code that (b) is already available in Python this should be doable.
The idea would be to define a new dv.view just like get_PageDated which would be get_PageChronology. This would output a dv.table to the page (in Javascript) or an equivalent markdown table (in Python)
Open questions:
How do we define the "chronology" for a page? Specifically we would need to decide (a) what pages are valid sources for events and (b) what events on those pages are relevant to the target page.
How do we define the output format?
Potential approach:
In Python, we would ideally exclude all events that happened AFTER the current date (but in Javascript we want to see them all, so as to see future dated events for game planning, etc). In Python we also exclude any page that has a campaign: tag that doesn't match the target campaign.
This creates a very powerful mechanism to defining the chronology of a page that is very flexible as to the output. The major downside is that it requires that you do not actually edit the chronology of a page on that page.
For example, if you wanted to define a handful of events for some NPC, you would need to (a) create a NPC.events page (b) add timelineFor: [NPC] to the NPC.events page (c) do the write the actual timeline on the NPC.events page
The same type of logic would apply to events for a city or place or organization.
The upside however is dramatic power. It becomes fairly straightforward to easily generate correct pages for NPCs where the chronology is automatically correct, excluding both campaign specific events (via the campaign: tag) and future events