Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pathfinder 1E SRD Conversion #2

Open
sigrunixia opened this issue Oct 20, 2022 · 25 comments
Open

Pathfinder 1E SRD Conversion #2

sigrunixia opened this issue Oct 20, 2022 · 25 comments
Assignees
Labels
Call Reinforcements [Help Wanted] A banner is slammed into the ground, summoning allies to aid in the issue. Nat 20 [Work In Progress] The target rolled Nat 20 and passed their talk check. Their request is accepted.

Comments

@sigrunixia
Copy link
Member

sigrunixia commented Oct 20, 2022

"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
Copy link

Cool, that works.

@mProjectsCode
Copy link
Member

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
Copy link
Member

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

The things I am currently working on are with metadata

@sigrunixia
Copy link
Member Author

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
Copy link

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

@GreeneDragon37
Copy link

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
Copy link
Member Author

sigrunixia commented Oct 21, 2022 via email

@mProjectsCode
Copy link
Member

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

  • 6871 md files
  • one 13.2mb json + a decompression script
  • i write a script to turn it into a .csv

@mProjectsCode
Copy link
Member

GH probably has an easier time with the json file

@sigrunixia
Copy link
Member Author

sigrunixia commented Oct 21, 2022 via email

@mProjectsCode
Copy link
Member

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
Copy link
Member Author

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
Copy link
Member

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
Copy link
Member

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
Copy link
Member Author

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

@sigrunixia
Copy link
Member Author

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
Copy link
Member

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
Copy link
Member Author

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
Copy link
Contributor

djbrock commented Apr 19, 2023

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
Copy link
Member Author

sigrunixia commented Apr 21, 2023

@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
Copy link
Contributor

djbrock commented Apr 22, 2023

@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
Copy link
Contributor

djbrock commented Apr 23, 2023

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
Copy link
Member Author

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
Copy link
Member Author

Spells added to the folder. :)

@sigrunixia sigrunixia transferred this issue from Obsidian-TTRPG-Community/ObsidianTTRPGShare May 4, 2023
@sigrunixia
Copy link
Member Author

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

@sigrunixia sigrunixia added Call Reinforcements [Help Wanted] A banner is slammed into the ground, summoning allies to aid in the issue. Nat 20 [Work In Progress] The target rolled Nat 20 and passed their talk check. Their request is accepted. labels May 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Call Reinforcements [Help Wanted] A banner is slammed into the ground, summoning allies to aid in the issue. Nat 20 [Work In Progress] The target rolled Nat 20 and passed their talk check. Their request is accepted.
Projects
None yet
Development

No branches or pull requests

4 participants