I now build pretty scenarios in half the time because of markup languages
-
Writing scenario keys can take time, especially if you do it following the footsteps of Justin Alexander.
In particular, writing everything that characters see at a glance when they walk into a new area in a box can make everything a bit harder to prep. You’ve got to build boxes again and again, a box for every area. And not only that, but you’ve got to create boxes for normal text and also for headers or lists… It’s so many boxes.
To supposedly make your life easier, you can create styles called “boxed text” and “boxed heading”, and ‘just’ apply that to text, but even that is clunky: finding styles and applying them is not the fastest process, and sometimes you make mistakes that aren’t that easy to fix. For example, what happens if you change your mind and you want the “boxed heading” to be a first-level heading instead of a second-level heading? Or if you want to reduce the size of every font in the document by 2pts? There may be LibreOffice experts who have learned the tricks to do this, but when I tried doing it it was a pain in the butt.
Markup languages are a better solution
So is there a better solution? Yes. Markup languages. With those languages, you write things once and then you export it as a PDF. Quick. Nice. Right.
How does it look? Here’s an example. If I want boxed text, I only write
boxed_text[]
. That’s it.Here’s how it would look in the editing document:
boxed_text[ = Area 1: Entrance to the Dungeon - Burlap sacks everywhere (GM Note: From previous adventurers preparing to enter) - A wall filled with scrapes made with swords. The scrapes spell out names and dates - A metal door, scraped with the word "Don't" ]
Markup languages are faster
Wait. Isn’t that more complicated than using LibreOffice? Surprisingly, no. Plenty of coders will tell you that using the keyboard efficiently is way faster than using the mouse efficiently. A mouse has one or two buttons you can press. However, a keyboard has five or ten times more buttons, because you can use all ten fingers. Additionally, a mouse takes time to move around and aim at your click target. This may seem like counting pennies, but in my experience going from a mouse to learning to use a keyboard is like going from walking to learning to use a bike: learning to use a bike takes time, but once you learn how to do it, you’ll go way faster than when you were just walking!
Markup languages help you keep a history of your campaign
Another way in which markup languages are less complicated is how easily they help you keep a history of your campaign. You can do this easily with version control, such as Git or Jujutsu. With these tools, you can fearlessly make changes to your documents, and trust that your history is saved and easily accessible. You can keep at hand the information relevant for future sessions, and still be able to check on things from the past if you need so. For all of this to work, you need Git to be able to look at the files and understand them. However, this is cumbersome when you’re dealing with .docx or .odt files because of how those files are structured and compressed. However, markup languages are transparent and easy to read, and that makes them great for version control.
So, where do you start? You can choose! There are a couple of markup languages systems that you could try, but here are the ones I’d recommend:
- Quarto
- Typst (the one I’m currently using)
- LaTex
So, once again, if you’re preparing scenario keys, learning to use a markup language will make it easier and faster to write. It will also make it easier to keep a history of your campaign. It’s an investment worth your time. So go check out a markup language!
-
Writing scenario keys can take time, especially if you do it following the footsteps of Justin Alexander.
In particular, writing everything that characters see at a glance when they walk into a new area in a box can make everything a bit harder to prep. You’ve got to build boxes again and again, a box for every area. And not only that, but you’ve got to create boxes for normal text and also for headers or lists… It’s so many boxes.
To supposedly make your life easier, you can create styles called “boxed text” and “boxed heading”, and ‘just’ apply that to text, but even that is clunky: finding styles and applying them is not the fastest process, and sometimes you make mistakes that aren’t that easy to fix. For example, what happens if you change your mind and you want the “boxed heading” to be a first-level heading instead of a second-level heading? Or if you want to reduce the size of every font in the document by 2pts? There may be LibreOffice experts who have learned the tricks to do this, but when I tried doing it it was a pain in the butt.
Markup languages are a better solution
So is there a better solution? Yes. Markup languages. With those languages, you write things once and then you export it as a PDF. Quick. Nice. Right.
How does it look? Here’s an example. If I want boxed text, I only write
boxed_text[]
. That’s it.Here’s how it would look in the editing document:
boxed_text[ = Area 1: Entrance to the Dungeon - Burlap sacks everywhere (GM Note: From previous adventurers preparing to enter) - A wall filled with scrapes made with swords. The scrapes spell out names and dates - A metal door, scraped with the word "Don't" ]
Markup languages are faster
Wait. Isn’t that more complicated than using LibreOffice? Surprisingly, no. Plenty of coders will tell you that using the keyboard efficiently is way faster than using the mouse efficiently. A mouse has one or two buttons you can press. However, a keyboard has five or ten times more buttons, because you can use all ten fingers. Additionally, a mouse takes time to move around and aim at your click target. This may seem like counting pennies, but in my experience going from a mouse to learning to use a keyboard is like going from walking to learning to use a bike: learning to use a bike takes time, but once you learn how to do it, you’ll go way faster than when you were just walking!
Markup languages help you keep a history of your campaign
Another way in which markup languages are less complicated is how easily they help you keep a history of your campaign. You can do this easily with version control, such as Git or Jujutsu. With these tools, you can fearlessly make changes to your documents, and trust that your history is saved and easily accessible. You can keep at hand the information relevant for future sessions, and still be able to check on things from the past if you need so. For all of this to work, you need Git to be able to look at the files and understand them. However, this is cumbersome when you’re dealing with .docx or .odt files because of how those files are structured and compressed. However, markup languages are transparent and easy to read, and that makes them great for version control.
So, where do you start? You can choose! There are a couple of markup languages systems that you could try, but here are the ones I’d recommend:
- Quarto
- Typst (the one I’m currently using)
- LaTex
So, once again, if you’re preparing scenario keys, learning to use a markup language will make it easier and faster to write. It will also make it easier to keep a history of your campaign. It’s an investment worth your time. So go check out a markup language!
In case you’re curious, here are my Typst settings. I write them at the top of every new scenario I build.
#set text(font: "Atkinson Hyperlegible Next") #let title = [The Name of This New Scenario lol] #set page( header: align(right + horizon, title) ) #set pagebreak(weak: true) #let box_text(content) = block( stroke: 1pt + black, inset: 10pt, radius: 4pt, width: 100%, content ) #show "GM Note": phrase => strong(phrase)
-
Writing scenario keys can take time, especially if you do it following the footsteps of Justin Alexander.
In particular, writing everything that characters see at a glance when they walk into a new area in a box can make everything a bit harder to prep. You’ve got to build boxes again and again, a box for every area. And not only that, but you’ve got to create boxes for normal text and also for headers or lists… It’s so many boxes.
To supposedly make your life easier, you can create styles called “boxed text” and “boxed heading”, and ‘just’ apply that to text, but even that is clunky: finding styles and applying them is not the fastest process, and sometimes you make mistakes that aren’t that easy to fix. For example, what happens if you change your mind and you want the “boxed heading” to be a first-level heading instead of a second-level heading? Or if you want to reduce the size of every font in the document by 2pts? There may be LibreOffice experts who have learned the tricks to do this, but when I tried doing it it was a pain in the butt.
Markup languages are a better solution
So is there a better solution? Yes. Markup languages. With those languages, you write things once and then you export it as a PDF. Quick. Nice. Right.
How does it look? Here’s an example. If I want boxed text, I only write
boxed_text[]
. That’s it.Here’s how it would look in the editing document:
boxed_text[ = Area 1: Entrance to the Dungeon - Burlap sacks everywhere (GM Note: From previous adventurers preparing to enter) - A wall filled with scrapes made with swords. The scrapes spell out names and dates - A metal door, scraped with the word "Don't" ]
Markup languages are faster
Wait. Isn’t that more complicated than using LibreOffice? Surprisingly, no. Plenty of coders will tell you that using the keyboard efficiently is way faster than using the mouse efficiently. A mouse has one or two buttons you can press. However, a keyboard has five or ten times more buttons, because you can use all ten fingers. Additionally, a mouse takes time to move around and aim at your click target. This may seem like counting pennies, but in my experience going from a mouse to learning to use a keyboard is like going from walking to learning to use a bike: learning to use a bike takes time, but once you learn how to do it, you’ll go way faster than when you were just walking!
Markup languages help you keep a history of your campaign
Another way in which markup languages are less complicated is how easily they help you keep a history of your campaign. You can do this easily with version control, such as Git or Jujutsu. With these tools, you can fearlessly make changes to your documents, and trust that your history is saved and easily accessible. You can keep at hand the information relevant for future sessions, and still be able to check on things from the past if you need so. For all of this to work, you need Git to be able to look at the files and understand them. However, this is cumbersome when you’re dealing with .docx or .odt files because of how those files are structured and compressed. However, markup languages are transparent and easy to read, and that makes them great for version control.
So, where do you start? You can choose! There are a couple of markup languages systems that you could try, but here are the ones I’d recommend:
- Quarto
- Typst (the one I’m currently using)
- LaTex
So, once again, if you’re preparing scenario keys, learning to use a markup language will make it easier and faster to write. It will also make it easier to keep a history of your campaign. It’s an investment worth your time. So go check out a markup language!
I use markdown for everything. Just thought I’d add: for organization of the markdown, Joplin or Obsidian are great. I’m a recent convert to Obsidian, but used Joplin for everything for story plotting to campaign organizing and notes to personal time management. Both are just simple markdown documents (with some custom syntax) and folders under the hood so using SCS to sync or store documents makes sense.
Plus both have templating so you can do a common character or encounter format in the middle of a document, cross-linking like a wiki, searching, tagging and a bunch of other stuff.
The key is the markdown, but if you want to take it one step further I can recommend either of those apps to interact with it.
-
I use markdown for everything. Just thought I’d add: for organization of the markdown, Joplin or Obsidian are great. I’m a recent convert to Obsidian, but used Joplin for everything for story plotting to campaign organizing and notes to personal time management. Both are just simple markdown documents (with some custom syntax) and folders under the hood so using SCS to sync or store documents makes sense.
Plus both have templating so you can do a common character or encounter format in the middle of a document, cross-linking like a wiki, searching, tagging and a bunch of other stuff.
The key is the markdown, but if you want to take it one step further I can recommend either of those apps to interact with it.
It sounds like you’ve got a comprehensive solution!
Do you prepare scenarios by exporting to PDFs? I ask because I tried using regular Markdown for my sessions but it didn’t work. I couldn’t get nice boxed text nor could I define when I wanted a page break. None of the Markdown solutions seemed as elegant as Quarto (which I know from learning to use R) and Typst (which seems a little simpler than Quarto). Maybe there are solutions that I missed.
I ask that, but that doesn’t mean that Markdown isn’t a great solution to many problems! In fact, my daily note-taking is done in Markdown!
-
Writing scenario keys can take time, especially if you do it following the footsteps of Justin Alexander.
In particular, writing everything that characters see at a glance when they walk into a new area in a box can make everything a bit harder to prep. You’ve got to build boxes again and again, a box for every area. And not only that, but you’ve got to create boxes for normal text and also for headers or lists… It’s so many boxes.
To supposedly make your life easier, you can create styles called “boxed text” and “boxed heading”, and ‘just’ apply that to text, but even that is clunky: finding styles and applying them is not the fastest process, and sometimes you make mistakes that aren’t that easy to fix. For example, what happens if you change your mind and you want the “boxed heading” to be a first-level heading instead of a second-level heading? Or if you want to reduce the size of every font in the document by 2pts? There may be LibreOffice experts who have learned the tricks to do this, but when I tried doing it it was a pain in the butt.
Markup languages are a better solution
So is there a better solution? Yes. Markup languages. With those languages, you write things once and then you export it as a PDF. Quick. Nice. Right.
How does it look? Here’s an example. If I want boxed text, I only write
boxed_text[]
. That’s it.Here’s how it would look in the editing document:
boxed_text[ = Area 1: Entrance to the Dungeon - Burlap sacks everywhere (GM Note: From previous adventurers preparing to enter) - A wall filled with scrapes made with swords. The scrapes spell out names and dates - A metal door, scraped with the word "Don't" ]
Markup languages are faster
Wait. Isn’t that more complicated than using LibreOffice? Surprisingly, no. Plenty of coders will tell you that using the keyboard efficiently is way faster than using the mouse efficiently. A mouse has one or two buttons you can press. However, a keyboard has five or ten times more buttons, because you can use all ten fingers. Additionally, a mouse takes time to move around and aim at your click target. This may seem like counting pennies, but in my experience going from a mouse to learning to use a keyboard is like going from walking to learning to use a bike: learning to use a bike takes time, but once you learn how to do it, you’ll go way faster than when you were just walking!
Markup languages help you keep a history of your campaign
Another way in which markup languages are less complicated is how easily they help you keep a history of your campaign. You can do this easily with version control, such as Git or Jujutsu. With these tools, you can fearlessly make changes to your documents, and trust that your history is saved and easily accessible. You can keep at hand the information relevant for future sessions, and still be able to check on things from the past if you need so. For all of this to work, you need Git to be able to look at the files and understand them. However, this is cumbersome when you’re dealing with .docx or .odt files because of how those files are structured and compressed. However, markup languages are transparent and easy to read, and that makes them great for version control.
So, where do you start? You can choose! There are a couple of markup languages systems that you could try, but here are the ones I’d recommend:
- Quarto
- Typst (the one I’m currently using)
- LaTex
So, once again, if you’re preparing scenario keys, learning to use a markup language will make it easier and faster to write. It will also make it easier to keep a history of your campaign. It’s an investment worth your time. So go check out a markup language!
i do most of my rpg writing as epubs, which are basically just html and css. they may be made primarily for web sites, but they work really well for books too. i even recently figured out how to do columns. still want to look into LaTex at some point, but html/css is plenty good enough for me for now.
all this to say, fuck yeah markup languages.
-
K Kichae moved this topic from rpg
-
i do most of my rpg writing as epubs, which are basically just html and css. they may be made primarily for web sites, but they work really well for books too. i even recently figured out how to do columns. still want to look into LaTex at some point, but html/css is plenty good enough for me for now.
all this to say, fuck yeah markup languages.
Huh. Interesting. It seems like you’re fully digital, then. Maybe I should try that sometime!
-
It sounds like you’ve got a comprehensive solution!
Do you prepare scenarios by exporting to PDFs? I ask because I tried using regular Markdown for my sessions but it didn’t work. I couldn’t get nice boxed text nor could I define when I wanted a page break. None of the Markdown solutions seemed as elegant as Quarto (which I know from learning to use R) and Typst (which seems a little simpler than Quarto). Maybe there are solutions that I missed.
I ask that, but that doesn’t mean that Markdown isn’t a great solution to many problems! In fact, my daily note-taking is done in Markdown!
Obsidian specifically has boxes that work, though you get some kind of icon with it. I think you can also export to html or pdf.
Forgive the work focus of the examples. This is from Obsidian on my phone.
-
It sounds like you’ve got a comprehensive solution!
Do you prepare scenarios by exporting to PDFs? I ask because I tried using regular Markdown for my sessions but it didn’t work. I couldn’t get nice boxed text nor could I define when I wanted a page break. None of the Markdown solutions seemed as elegant as Quarto (which I know from learning to use R) and Typst (which seems a little simpler than Quarto). Maybe there are solutions that I missed.
I ask that, but that doesn’t mean that Markdown isn’t a great solution to many problems! In fact, my daily note-taking is done in Markdown!
Page break isn’t really a thing without exporting to PDF or printing, though. I haven’t really done that.
AsciiDoc is similar to markdown—to the point you’ll wonder why it isn’t just markdown—but it has a way to specify page breaks and it exports to PDF. I might actually prefer it slightly for project documentation, but it’s far less ubiquitous.
-
Writing scenario keys can take time, especially if you do it following the footsteps of Justin Alexander.
In particular, writing everything that characters see at a glance when they walk into a new area in a box can make everything a bit harder to prep. You’ve got to build boxes again and again, a box for every area. And not only that, but you’ve got to create boxes for normal text and also for headers or lists… It’s so many boxes.
To supposedly make your life easier, you can create styles called “boxed text” and “boxed heading”, and ‘just’ apply that to text, but even that is clunky: finding styles and applying them is not the fastest process, and sometimes you make mistakes that aren’t that easy to fix. For example, what happens if you change your mind and you want the “boxed heading” to be a first-level heading instead of a second-level heading? Or if you want to reduce the size of every font in the document by 2pts? There may be LibreOffice experts who have learned the tricks to do this, but when I tried doing it it was a pain in the butt.
Markup languages are a better solution
So is there a better solution? Yes. Markup languages. With those languages, you write things once and then you export it as a PDF. Quick. Nice. Right.
How does it look? Here’s an example. If I want boxed text, I only write
boxed_text[]
. That’s it.Here’s how it would look in the editing document:
boxed_text[ = Area 1: Entrance to the Dungeon - Burlap sacks everywhere (GM Note: From previous adventurers preparing to enter) - A wall filled with scrapes made with swords. The scrapes spell out names and dates - A metal door, scraped with the word "Don't" ]
Markup languages are faster
Wait. Isn’t that more complicated than using LibreOffice? Surprisingly, no. Plenty of coders will tell you that using the keyboard efficiently is way faster than using the mouse efficiently. A mouse has one or two buttons you can press. However, a keyboard has five or ten times more buttons, because you can use all ten fingers. Additionally, a mouse takes time to move around and aim at your click target. This may seem like counting pennies, but in my experience going from a mouse to learning to use a keyboard is like going from walking to learning to use a bike: learning to use a bike takes time, but once you learn how to do it, you’ll go way faster than when you were just walking!
Markup languages help you keep a history of your campaign
Another way in which markup languages are less complicated is how easily they help you keep a history of your campaign. You can do this easily with version control, such as Git or Jujutsu. With these tools, you can fearlessly make changes to your documents, and trust that your history is saved and easily accessible. You can keep at hand the information relevant for future sessions, and still be able to check on things from the past if you need so. For all of this to work, you need Git to be able to look at the files and understand them. However, this is cumbersome when you’re dealing with .docx or .odt files because of how those files are structured and compressed. However, markup languages are transparent and easy to read, and that makes them great for version control.
So, where do you start? You can choose! There are a couple of markup languages systems that you could try, but here are the ones I’d recommend:
- Quarto
- Typst (the one I’m currently using)
- LaTex
So, once again, if you’re preparing scenario keys, learning to use a markup language will make it easier and faster to write. It will also make it easier to keep a history of your campaign. It’s an investment worth your time. So go check out a markup language!
Or use org-mode
-
Huh. Interesting. It seems like you’re fully digital, then. Maybe I should try that sometime!
i guess? but i’m learning stuff that seems like it’ll let me do most of the print formatting i’d want to do as well.