mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-01-06 03:32:40 +00:00
Removed reference to hotkeys for commenting in the Style Editor since that is not implemented yet. can be added back to match the Text Editor commenting snippet once implemented.
352 lines
8.4 KiB
JavaScript
352 lines
8.4 KiB
JavaScript
/* eslint-disable max-lines */
|
|
|
|
const MagicGen = require('./magic.gen.js');
|
|
const ClassTableGen = require('./classtable.gen.js');
|
|
const MonsterBlockGen = require('./monsterblock.gen.js');
|
|
const ClassFeatureGen = require('./classfeature.gen.js');
|
|
const CoverPageGen = require('./coverpage.gen.js');
|
|
const TableOfContentsGen = require('./tableOfContents.gen.js');
|
|
const dedent = require('dedent-tabs').default;
|
|
|
|
|
|
module.exports = [
|
|
|
|
{
|
|
groupName : 'Text Editor',
|
|
icon : 'fas fa-pencil-alt',
|
|
view : 'text',
|
|
snippets : [
|
|
{
|
|
name : 'Column Break',
|
|
icon : 'fas fa-columns',
|
|
gen : '\n\\column\n'
|
|
},
|
|
{
|
|
name : 'New Page',
|
|
icon : 'fas fa-file-alt',
|
|
gen : '\n\\page\n'
|
|
},
|
|
{
|
|
name : 'Vertical Spacing',
|
|
icon : 'fas fa-arrows-alt-v',
|
|
gen : '\n::::\n'
|
|
},
|
|
{
|
|
name : 'Horizontal Spacing',
|
|
icon : 'fas fa-arrows-alt-h',
|
|
gen : ' {{width:100px}} '
|
|
},
|
|
{
|
|
name : 'Wide Block',
|
|
icon : 'fas fa-window-maximize',
|
|
gen : dedent`\n
|
|
{{wide
|
|
Everything in here will be extra wide. Tables, text, everything!
|
|
Beware though, CSS columns can behave a bit weird sometimes. You may
|
|
have to rely on the automatic column-break rather than \`\column\` if
|
|
you mix columns and wide blocks on the same page.
|
|
}}
|
|
\n`
|
|
},
|
|
{
|
|
name : 'Image',
|
|
icon : 'fas fa-image',
|
|
gen : dedent`
|
|
 {width:325px}
|
|
Credit: Kyounghwan Kim`
|
|
},
|
|
{
|
|
name : 'Background Image',
|
|
icon : 'fas fa-tree',
|
|
gen : ` {position:absolute,top:50px,right:30px,width:280px}`
|
|
},
|
|
{
|
|
name : 'QR Code',
|
|
icon : 'fas fa-qrcode',
|
|
gen : (brew)=>{
|
|
return `![]` +
|
|
`(https://api.qrserver.com/v1/create-qr-code/?data=` +
|
|
`https://homebrewery.naturalcrit.com/share/${brew.shareId}` +
|
|
`&size=100x100) {width:100px;mix-blend-mode:multiply}`;
|
|
}
|
|
|
|
},
|
|
{
|
|
name : 'Page Number',
|
|
icon : 'fas fa-bookmark',
|
|
gen : '{{pageNumber 1}}\n{{footnote PART 1 | SECTION NAME}}\n\n'
|
|
},
|
|
{
|
|
name : 'Auto-incrementing Page Number',
|
|
icon : 'fas fa-sort-numeric-down',
|
|
gen : '{{pageNumber,auto}}\n{{footnote PART 1 | SECTION NAME}}\n\n'
|
|
},
|
|
{
|
|
name : 'Link to page',
|
|
icon : 'fas fa-link',
|
|
gen : '[Click here](#p3) to go to page 3\n'
|
|
},
|
|
{
|
|
name : 'Table of Contents',
|
|
icon : 'fas fa-book',
|
|
gen : TableOfContentsGen
|
|
},
|
|
{
|
|
name : 'Add Comment',
|
|
icon : 'fas fa-code',
|
|
gen : dedent`\n
|
|
<!-- This is a comment that will not be rendered into your brew. Hotkey (Ctrl/Cmd + /). -->
|
|
`
|
|
},
|
|
]
|
|
},
|
|
{
|
|
groupName : 'Style Editor',
|
|
icon : 'fas fa-pencil-alt',
|
|
view : 'style',
|
|
snippets : [
|
|
{
|
|
name : 'Remove Drop Cap',
|
|
icon : 'fas fa-remove-format',
|
|
gen : '/* Removes Drop Caps */\n' +
|
|
'.phb3 h1+p:first-letter {\n' +
|
|
' all: unset;\n' +
|
|
'}\n'
|
|
},
|
|
{
|
|
name : 'Tweak Drop Cap',
|
|
icon : 'fas fa-sliders-h',
|
|
gen : '/* Drop Cap settings */\n' +
|
|
'.phb3 h1 + p::first-letter {\n' +
|
|
' float: left;\n' +
|
|
' font-family: SolberaImitationRemake;\n' +
|
|
' font-size: 3.5cm;\n' +
|
|
' color: #222;\n' +
|
|
' line-height: .8em;\n' +
|
|
'}\n'
|
|
},
|
|
{
|
|
name : 'Add Comment',
|
|
icon : 'fas fa-code',
|
|
gen : dedent`\n
|
|
/* This is a comment that will not be rendered into your brew. */
|
|
`
|
|
},
|
|
]
|
|
},
|
|
|
|
|
|
/************************* PHB ********************/
|
|
|
|
{
|
|
groupName : 'PHB',
|
|
icon : 'fas fa-book',
|
|
view : 'text',
|
|
snippets : [
|
|
{
|
|
name : 'Spell',
|
|
icon : 'fas fa-magic',
|
|
gen : MagicGen.spell,
|
|
},
|
|
{
|
|
name : 'Spell List',
|
|
icon : 'fas fa-scroll',
|
|
gen : MagicGen.spellList,
|
|
},
|
|
{
|
|
name : 'Class Feature',
|
|
icon : 'fas fa-mask',
|
|
gen : ClassFeatureGen,
|
|
},
|
|
{
|
|
name : 'Note',
|
|
icon : 'fas fa-sticky-note',
|
|
gen : function(){
|
|
return dedent`
|
|
{{note
|
|
##### Time to Drop Knowledge
|
|
Use notes to point out some interesting information.
|
|
|
|
**Tables and lists** both work within a note.
|
|
}}
|
|
\n`;
|
|
},
|
|
},
|
|
{
|
|
name : 'Descriptive Text Box',
|
|
icon : 'fas fa-comment-alt',
|
|
gen : function(){
|
|
return dedent`
|
|
{{descriptive
|
|
##### Time to Drop Knowledge
|
|
Use descriptive boxes to highlight text that should be read aloud.
|
|
|
|
**Tables and lists** both work within a descriptive box.
|
|
}}
|
|
\n`;
|
|
},
|
|
},
|
|
{
|
|
name : 'Monster Stat Block (unframed)',
|
|
icon : 'fas fa-paw',
|
|
gen : MonsterBlockGen.monster('monster', 2),
|
|
},
|
|
{
|
|
name : 'Monster Stat Block',
|
|
icon : 'fas fa-spider',
|
|
gen : MonsterBlockGen.monster('monster,frame', 2),
|
|
},
|
|
{
|
|
name : 'Wide Monster Stat Block',
|
|
icon : 'fas fa-dragon',
|
|
gen : MonsterBlockGen.monster('monster,frame,wide', 4),
|
|
},
|
|
{
|
|
name : 'Cover Page',
|
|
icon : 'fas fa-file-word',
|
|
gen : CoverPageGen,
|
|
},
|
|
{
|
|
name : 'Magic Item',
|
|
icon : 'fas fa-hat-wizard',
|
|
gen : MagicGen.item,
|
|
},
|
|
]
|
|
},
|
|
|
|
|
|
|
|
/********************* TABLES *********************/
|
|
|
|
{
|
|
groupName : 'Tables',
|
|
icon : 'fas fa-table',
|
|
view : 'text',
|
|
snippets : [
|
|
{
|
|
name : 'Class Table',
|
|
icon : 'fas fa-table',
|
|
gen : ClassTableGen.full,
|
|
},
|
|
{
|
|
name : 'Half Class Table',
|
|
icon : 'fas fa-list-alt',
|
|
gen : ClassTableGen.half,
|
|
},
|
|
{
|
|
name : 'Table',
|
|
icon : 'fas fa-th-list',
|
|
gen : function(){
|
|
return dedent`
|
|
##### Character Advancement
|
|
| Experience Points | Level | Proficiency Bonus |
|
|
|:------------------|:-----:|:-----------------:|
|
|
| 0 | 1 | +2 |
|
|
| 300 | 2 | +2 |
|
|
| 900 | 3 | +2 |
|
|
| 2,700 | 4 | +2 |
|
|
| 6,500 | 5 | +3 |
|
|
| 14,000 | 6 | +3 |
|
|
\n`;
|
|
}
|
|
},
|
|
{
|
|
name : 'Wide Table',
|
|
icon : 'fas fa-list',
|
|
gen : function(){
|
|
return dedent`
|
|
{{wide
|
|
##### Weapons
|
|
| Name | Cost | Damage | Weight | Properties |
|
|
|:------------------------|:-----:|:----------------|--------:|:-----------|
|
|
| *Simple Melee Weapons* | | | | |
|
|
|   Club | 1 sp | 1d4 bludgeoning | 2 lb. | Light |
|
|
|   Dagger | 2 gp | 1d4 piercing | 1 lb. | Finesse |
|
|
|   Spear | 1 gp | 1d6 piercing | 3 lb. | Thrown |
|
|
| *Simple Ranged Weapons* | | | | |
|
|
|   Dart | 5 cp | 1d4 piercig | 1/4 lb. | Finesse |
|
|
|   Shortbow | 25 gp | 1d6 piercing | 2 lb. | Ammunition |
|
|
|   Sling | 1 sp | 1d4 bludgeoning | — | Ammunition |
|
|
}}
|
|
\n`;
|
|
}
|
|
},
|
|
{
|
|
name : 'Split Table',
|
|
icon : 'fas fa-th-large',
|
|
gen : function(){
|
|
return dedent`
|
|
##### Typical Difficulty Classes
|
|
{{column-count:2
|
|
| Task Difficulty | DC |
|
|
|:----------------|:--:|
|
|
| Very easy | 5 |
|
|
| Easy | 10 |
|
|
| Medium | 15 |
|
|
|
|
| Task Difficulty | DC |
|
|
|:------------------|:--:|
|
|
| Hard | 20 |
|
|
| Very hard | 25 |
|
|
| Nearly impossible | 30 |
|
|
}}
|
|
\n`;
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
|
|
|
|
|
|
/**************** PAGE *************/
|
|
|
|
{
|
|
groupName : 'Page',
|
|
icon : 'fas fa-print',
|
|
view : 'style',
|
|
snippets : [
|
|
{
|
|
name : 'A4 Page Size',
|
|
icon : 'far fa-file',
|
|
gen : ['/* A4 Page Size */',
|
|
'.phb{',
|
|
' width : 210mm;',
|
|
' height : 296.8mm;',
|
|
'}',
|
|
''
|
|
].join('\n')
|
|
},
|
|
{
|
|
name : 'Square Page Size',
|
|
icon : 'far fa-file',
|
|
gen : ['/* Square Page Size */',
|
|
'.page {',
|
|
' width:5.25in;',
|
|
' height:5.25in;',
|
|
' padding:.5in;',
|
|
' columns:unset;',
|
|
'}',
|
|
''
|
|
].join('\n')
|
|
},
|
|
{
|
|
name : 'Ink Friendly',
|
|
icon : 'fas fa-tint',
|
|
gen : ['/* Ink Friendly */',
|
|
'.pages *:is(.page,.monster,.note,.descriptive) {',
|
|
' background:white !important;',
|
|
' box-shadow:0px 0px 3px !important;',
|
|
'}',
|
|
'',
|
|
'.page .note:before {',
|
|
' box-shadow:0px 0px 3px;',
|
|
'}',
|
|
''
|
|
].join('\n')
|
|
},
|
|
]
|
|
},
|
|
|
|
];
|