Obsidian-TTRPG-Community / Pathfinder-1E-SRD-Markdown

This is your Pathfinder 1E materials in Markdown Format
Other
6 stars 5 forks source link

Pathfinder 1E SRD Conversion #2

Open sigrunixia opened 1 year ago

sigrunixia commented 1 year ago

"I would welcome anyone that would want to contribute, but I feel comfortable working on the project alone. Pathfinder 1e is the system I currently use for my campaign I run with my family. Putting the SRD into Obsidian has already been a project I have been working on.

My experience using GitHub is very limited, as I have never actually added anything, only first learning of it when I started working with Obsidian plug-ins a couple months ago. That would probably be where my weakness lies. But I am very open to help and critique on the work."

Originally posted by @GreeneDragon37 in https://github.com/ObsidianTTRPGProject/ObsidianTTRPGShare/issues/4#issuecomment-1284516573

GreeneDragon37 commented 1 year ago

Cool, that works.

mProjectsCode commented 1 year ago

I will just leave this link to a script I wrote a few months ago, might not work anymore, I haven't tested it in some time but it might help. https://github.com/mProjectsCode/d20pfsrd_obsidian_importer

I am also currently working on importing pf1e items, spells, feats and monsters. So once these are I can contribute them here, though I always held of uploading them to GH because of the sheer amount of files.

mProjectsCode commented 1 year ago

Note: the script does not add metadata except tags based on the folder

The things I am currently working on are with metadata

sigrunixia commented 1 year ago

Alright, so plugins. Here is what I have been using in my 13th Age and Baby SWN/WWN Vaults:

Core Plugins

Outline - At a glance being able to move sections around by header is nice.

Note Composer - Same as Outline, but being able to merge/split apart things that just do not feasibly work all on one page is invaluable. While we advocate matching the PDF/source as much as possible, scrolling more than 5 seconds to get where you need to be on a page sucks. Tags out the wazoo is not the best either.

Outgoing Links and Backlinks - Helps make smart-linking easier when nearing the end of a section or project. While we want to be cognizant about what is linked, it makes it easier for me to look for the bolded text that I left behind that I know NEEDS to be linked to a page later on.

Tags - Keeping track of what tags have been made and how they are formatted. It's not helpful if PF2E tags start overlapping with DND5E tags, for instance.

Command Palette - Time saver, plain and simple.

Community Plugins

Advanced Tables - This makes it too easy to format tables. SWN/WWN especially use a lot of tables.

Obsidian Linter - This helps clean-up and modify the note to maintain a certain conformity. When creating the project pin, I addressed using markdown links versus wikilinks to maintain conformity with Github. Linter goes a step further and can help reduce some of the spacing tediousness that comes with uploading the files from Obsidian to Git and back, and having them look different. Here are the linter settings I use:

Heading: File Name Heading: On
Heading: Header Increment: On

Content: Emphasis Style: Underscore
Content: proper Ellipsis: On
Content: Strong Style: Asterisk

Spacing: Empty Line Around Code Fences: On
Spacing: Empty Line Around Tables: On
Spacing: Heading Blank Lines: All Options On
Spacing: Line Break at Document End: On

Dice Roller - To double check that any tables I put in work as rollable tables, or that any values with dice: d20 work before I upload it.

GreeneDragon37 commented 1 year ago

These plug-in will definitely help. Had a terrible time trying to do a table in the native program yesterday. Thanks.

GreeneDragon37 commented 1 year ago

I am also currently working on importing pf1e items, spells, feats and monsters. So once these are I can contribute them here, though I always held of uploading them to GH because of the sheer amount of files.

That would be great, anything you can contribute would be much appreciated.

sigrunixia commented 1 year ago

For editing of the Meta data, especially if you are doing it with YAML (though there is a debate whether YAML is better or dataview inline inquiries are better, for these SRD… might need to stick with frontmatter), the database folder plugin can help further with that.

Since it turns adding frontmatter into point and click and can support multiple formats of frontmatter including tags, and you can gave a database per folder, it can help you batch the workload.

Furthermore it allows you to add and remove frontmatter keys by column header. So for example, say I put all my beasts in one folder. I have database folder add a new column to that database called creaturetype, which will create a yaml frontmatter key called ‘creature type:’ on all files in that folder.

I then have two choices. I can either use database folder to add the creature type of beasts to each file one by one, or i can use an external program like sublime text to find and replace for all files in this folder ‘creaturetype: ‘ with ‘creaturetype: Beast’.

There are definitely sone shortcuts we have. :)

mProjectsCode commented 1 year ago

i have all the items mostly finished, but how do you want the data? I can offer:

mProjectsCode commented 1 year ago

GH probably has an easier time with the json file

sigrunixia commented 1 year ago

Lets keep it in in Markdown format. It seems daunting to have that much but those of us with full 5e vaults have that many files too. :)

mProjectsCode commented 1 year ago

ok if you say so, but be aware, that that will increase clone times by a lot also I have the data for around 3k spells, but I need to write a script to process them first, the csv file I have has HTML in some columns for some reason

sigrunixia commented 1 year ago

ok if you say so, but be aware, that that will increase clone times by a lot

Sadly I am more than aware. However, the majority of users who come Obsidian looking for starter vaults typically are those who have very little to no programming or tool usage experience. They are coming from pen and paper, DND beyond, web programs, excel spreadsheets, pdf files, roll20, etc.

I'd love to be able to start at a .json and teach handlebar templating from the beginning, but that is unrealistic, and a barrier to inclusion and adoption.


Speaking on behalf of the share though, and in general from the fun geekiness that pervades the Obsidian #table-top Discord. There're room for your other files if you wish. Either on your own repo (or if you want us to host it, thats fine), we could do something with the .json and the .csv if you as a contributor want to also provide an intermediate option. I'm not against that either and will happily throw together resources and guides on how to process that data. Since you put in the work whatever support you need for the other files and ideas you have, we're here for and open to. How can we help?

mProjectsCode commented 1 year ago

We could also zip all the markdown files of one type (e.g. all items into one zip archive). Then it is easy to use and put's less strain on git/github (since it is just one zip file)

mProjectsCode commented 1 year ago

And i think providing both the markdown files as a zip archive and the JSON would be good. That opens up more customization for the experienced

sigrunixia commented 1 year ago

@ObsidianTTRPGProject Do you happen to have an in-depth written guide on Json to Handlebar/Markdown that accompanies your videos on the subject?

sigrunixia commented 1 year ago

Hello there!

Checking in before the weekend to see how things are going? No pressure or rush, simply letting you two know you are not forgotten. :)

mProjectsCode commented 1 year ago

I haven't had much time the last week and taking care of my own plugins has priority for me, I hope I can make a little progress on the spells during the weekend

sigrunixia commented 1 year ago

Hello! I know we've all been busy, focused on Pathfinder 2E, school, and other priorities. I wanted to let everyone know we had a donation of the Pf1e Bestiary today. You can find it here. https://github.com/ObsidianTTRPGProject/ObsidianTTRPGShare/tree/main/TTRPGShare-Pathfinder-1E-Vault

That is one less thing to worry about :)

djbrock commented 1 year ago

I figured out that I could use the code that grabs the monsters from AoN to grab the spells, and instead of parsing through the HTML to manually convert them, strip the HTML down to just the spell and then pass it through Pandoc. That preserves some of the formatting in the spells better. Example attached.

Would it be useful to do some tagging and is the filename convention OK? At the moment I'm removing spaces, commas, apostrophes, and slashes, but I could preserve some of them. For tagging, I'd ideally like to support dataview extracting spell list by class, level, and school.

Comments appreciated.

Summon_Monster_1.md

sigrunixia commented 1 year ago

@djbrock

I figured out that I could use the code that grabs the monsters from AoN to grab the spells, and instead of parsing through the HTML to manually convert them, strip the HTML down to just the spell and then pass it through Pandoc. That preserves some of the formatting in the spells better. Example attached.

Would it be useful to do some tagging and is the filename convention OK? At the moment I'm removing spaces, commas, apostrophes, and slashes, but I could preserve some of them. For tagging, I'd ideally like to support dataview extracting spell list by class, level, and school.

Comments appreciated.

Summon_Monster_1.md

That looks good to me but may I make one request?

First: make the description keys like this to enable dataview functionality out of the box. source:: school:: level:: range:: effect:: duration:: saving-throw:: spell-resistance::

Second, I am a player and GM who keeps my spells separated, but I know this not for everyone. I'd be interested on the preferences of others in this matter.

djbrock commented 1 year ago

@sigrunixia

That looks good to me but may I make one request?

First: make the description keys like this to enable dataview functionality out of the box. source:: school:: level:: range:: effect:: duration:: saving-throw:: spell-resistance::

Second, I am a player and GM who keeps my spells separated, but I know this not for everyone. I'd be interested on the preferences of others in this matter.

Ok, looks like I need to put the :: after closing the bold and I also need to split lines at ‘;’ symbols (i.e. have school and level on different lines) otherwise Dataview picks up the whole line. I think I can do that simply.

’Separated’ as in ‘all of the summon monster spells in different files? That’s why I used that one as an example. I don’t think that’s going to be easy to automate, but at the same time there are only a few spells like that so I could manually post-process the Markdown files.

djbrock commented 1 year ago

I've done the change to the key formats, but it leaves 489 of 2641 files with multiple occurrences of some keys (like source::) because the file contains multiple spell descriptions like a mythic version. I suspect that multiple occurrences of 'source::' might cause issues for Dataview? Do we need to manually split these out to 1 spell per file?

sigrunixia commented 1 year ago

Hmm, because it will turn them into an array (and because the functionality to split them by header has been a FR for a long time), I think we will have to split them. If it's not something the script can do easily, it's something we can do after after an upload by you to your fork so we can help you do it.

sigrunixia commented 1 year ago

Spells added to the folder. :)

sigrunixia commented 1 year ago

Hello @djbrock @mProjectsCode @GreeneDragon37. This is now in its own dedicated repository. :)