by Ikael
Description
Module Maker provide capabilities to create library modules using lightweight markdown language known as M3L (Module Maker Markdown Language). This extension is next iteration of SWEL (Savage Worlds Enhanced Library) but it is now usable in all CoreRPG dervived rulesets.
Resources
Lorem Ipsum demo
- Enable the extension
- Copy content of Lorem Ipsum markdown example into your clipboard memory (CTRL+C)
- Use slash command to generate library module from markdown in your clipboard memory
/module make
Convert PDF into M3L
Use below instructions to convert Google Document content into reference manual M3L
Open PDF as Google Doc
- Navigate to https://drive.google.com/
- Add your PDF there or find existing one
- Select
Open with
-Google Docs
Note: Opening PDF from Google Drive as Google Document will only render up to first 100 pages. If your PDF has more pages you can use following trick to include content from all pages:
- Open the first pages as described above
- Next you would need to create new PDF file that does not have pages that are already rendered. You can use browser's print feature to remove these pages
- Open PDF in browser and select
Print
- Use
Save as PDF
option - Select pages that were not rendered in Google Document
- Save
- Open PDF in browser and select
- Upload the new PDF file into Google Drive
- Select
Open with
-Google Docs
- Copy paste all content from here into the original Google Document that has the first pages rendered
- You can repeat this process until all content is included in one Google Document
Use Apps Script
Apps Script allow you to transform Google Documents via scripting
- In the Google Docs toolbar select
Extensions
-Apps Script
- Add Library with following Script ID
1Qj7RRzDaB_AQ5GHc8x7h0OJneXX8k2S935pQMjdp54_uyMi6b2T0VRpe
- Select latest non-development version
- Identifier should be
ModuleMaker
- Copy following content to script editor field
function convert() { ModuleMaker.toM3L({ analyze: { apply: true }, convert: { content: { chapter: { name: "TODO" }, subchapter: { fontSizes: [] }, article: { fontSizes: [] }, headerBlock: { fontSizes: [] }, bodyHeader: { fontSizes: [] }, bodyText: { fontSizes: [] }, remove: [] } } }) }
- Run the script
- The first run will analyze the document and report all discovered font sizes
- Based on the analyze report, fill the fontSizes information in the script
- In the script disable analyzer phase by setting
analyze.apply
value intofalse
- Run the script again, this time it will perform conversion run
- If you get timeout error after 6 minutes, just re-run the script again, it will continue where it left
Create reference manual
Open the Google Document again, and it has been transformed into M3L. Copy all the content and in Fantasy Grounds use following slash command:
/module make
Changelog
1.1.3 - 2024-08-15
Fixed
- Duplicate database node name error when exporting
1.1.2 - 2024-08-15
Fixed
- CoreRPG 4.5.x renamed `LibraryData.getListView` into `LibraryData.getRecordView`
1.1.1 - 2024-06-18
Fixed
- CoreRPG 4.5.x refactored export window which broke module maker export window
- Wrong database path for exported Framework records which makes them not appear as sidebar records
- CoreRPG 4.5.x renamed `ReferenceManualManager` script into `StoryManager`
1.0.7 - 14.06.2023
Fixed
- Convert to Markdown button in reference manual overlaps with other controls
- Script error opening reference manual preview
- Script error opening library window due to CoreRPG changes
1.0.5 - 12.05.2023
Added
- Additional ruleset record schema support for Fallout 2d20 ruleset
- Record sets support alternative names
- Record sets support reference_groupedlist
Changed
- Library export field names are consistent with CoreRPG
Fixed
- Savage Worlds /markdown export does not work properly for armors and weapons
- Savage Worlds weapons are duplicated in /markdown export all
- Attribute content can overflow to description field
- Module re-creation does not clean previous library entry
1.0.0 - 25.04.2023
Added- Generate module content from Module Maker Markdown Language (M3L for short) text files
- Backward compatibility support for SWEL markdown
- Import to campaign button next to generated modules in Modules window. Use to import generated module content into campaign
- Export module button next to generated modules in Modules window. Use to export module using Module Maker export (SavageWorlds only)
- Import to Builder button in reference manual preview window. Use to import previewed content into builder
- Option: Markdown Tools. Enable to show Markdown tools
- Markdown Tools to generate M3L from Fantasy Grounds records
- Make Module button in Modules window. Visible only when Markdown Tools option is enabled
- Module checker feature which can be uses to detect issues in modules (SavageWorlds only)
- Check Module radial menu option for book entries in Modules window (SavageWorlds only)
- Slash commands
- /module make use to generate library module from M3L in clipboard memory
- /module check use to check issues from loaded modules using module checker feature (SavageWorlds only)
- /module flush use to flush orhan references from campaign database
- /module activate use to activate all of your modules
- /module deactivate use to deactivate all of your modules
- /module disallow use to disallow all of your modules from players
- /markdown help use to list all supported record set types
- /markdown preview use to preview reference manual from M3L in clipboard memory
- /markdown preview RECORDTYPE use to preview record from M3L in clipboard memory
- /markdown export RECORDTYPE use to generate M3L content from campaign records
- /markdown export builder use to generate M3L content from Reference Manual builder
- /markdown export all use to generate M3L content from all campaign records
- /schema analyze use to analyse ruleset record schemas
- General support for any CoreRPG derived ruleset. Additional ruleset record schemas can be defined separately
- Additional ruleset record schema support for following rulesets:
- CoreRPG
- Cypher System
- Dungeon Crawling Classic
- Dungeons & Dragons 5E
- Fallout 2d20
- Fate Core
- Numenera
- Old School Essentials
- Pathfinder 1st Edition
- Pathfinder 2nd Edition
- Rolemaster Classic
- Savage Worlds
- Google Apps Script to convert Google document content into M3L
Fixed
- Frameworks record set is not shown for Savage Rifts
- Builder content is removed unnecessarily when exporting
- Campaign records are removed redundantly in clean up process
- Dynamic links for records with period in name does not work
Removed
- refmanual_title support because CoreRPG does not support changing reference manual title
UUID ec4aaa5c-d18d-11ed-8c52-0050562be458