diff --git a/.eslintrc.js b/.eslintrc.js
index dd4bcd0d3..74e7bb660 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -15,7 +15,7 @@ module.exports = {
rules : {
/** Errors **/
'camelcase' : ['error', { properties: 'never' }],
- 'func-style' : ['error', 'expression', { allowArrowFunctions: true }],
+ //'func-style' : ['error', 'expression', { allowArrowFunctions: true }],
'no-array-constructor' : 'error',
'no-iterator' : 'error',
'no-nested-ternary' : 'error',
diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx
index 27fef7e16..4e5fa3526 100644
--- a/client/homebrew/brewRenderer/brewRenderer.jsx
+++ b/client/homebrew/brewRenderer/brewRenderer.jsx
@@ -108,6 +108,12 @@ const BrewRenderer = createClass({
return false;
},
+ sanitizeScriptTags : function(content) {
+ return content
+ .replace(/';
- const rendered = Markdown.render(source);
- expect(rendered).toMatch('
<script></script>
\n');
-});
-
test('Processes the markdown within an HTML block if its just a class wrapper', function() {
const source = '*Bold text*
';
const rendered = Markdown.render(source);
diff --git a/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js b/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js
index 4082ac4ef..40d64af22 100644
--- a/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js
+++ b/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js
@@ -47,8 +47,8 @@ const getTOC = (pages)=>{
return res;
};
-module.exports = function(brew){
- const pages = brew.text.split('\\page');
+module.exports = function(props){
+ const pages = props.brew.text.split('\\page');
const TOC = getTOC(pages);
const markdown = _.reduce(TOC, (r, g1, idx1)=>{
r.push(`- **[${idx1 + 1} ${g1.title}](#p${g1.page})**`);
diff --git a/themes/V3/5ePHB/snippets.js b/themes/V3/5ePHB/snippets.js
index dba4ad8d5..53bb6d3da 100644
--- a/themes/V3/5ePHB/snippets.js
+++ b/themes/V3/5ePHB/snippets.js
@@ -19,16 +19,6 @@ module.exports = [
icon : 'fas fa-pencil-alt',
view : 'text',
snippets : [
- {
- 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 : 'Table of Contents',
icon : 'fas fa-book',
diff --git a/themes/V3/5ePHB/snippets/tableOfContents.gen.js b/themes/V3/5ePHB/snippets/tableOfContents.gen.js
index 1c52d5cf7..44605c05d 100644
--- a/themes/V3/5ePHB/snippets/tableOfContents.gen.js
+++ b/themes/V3/5ePHB/snippets/tableOfContents.gen.js
@@ -48,8 +48,8 @@ const getTOC = (pages)=>{
return res;
};
-module.exports = function(brew){
- const pages = brew.text.split('\\page');
+module.exports = function(props){
+ const pages = props.brew.text.split('\\page');
const TOC = getTOC(pages);
const markdown = _.reduce(TOC, (r, g1, idx1)=>{
if(g1.title !== null) {
diff --git a/themes/V3/Blank/snippets.js b/themes/V3/Blank/snippets.js
index 9d64496c3..72372c297 100644
--- a/themes/V3/Blank/snippets.js
+++ b/themes/V3/Blank/snippets.js
@@ -2,6 +2,7 @@
const WatercolorGen = require('./snippets/watercolor.gen.js');
const ImageMaskGen = require('./snippets/imageMask.gen.js');
+const FooterGen = require('./snippets/footer.gen.js');
const dedent = require('dedent-tabs').default;
module.exports = [
@@ -21,6 +22,53 @@ module.exports = [
icon : 'fas fa-file-alt',
gen : '\n\\page\n'
},
+ {
+ name : 'Page Number',
+ icon : 'fas fa-bookmark',
+ gen : '{{pageNumber 1}}\n'
+ },
+ {
+ name : 'Auto-incrementing Page Number',
+ icon : 'fas fa-sort-numeric-down',
+ gen : '{{pageNumber,auto}}\n'
+ },
+ {
+ name : 'Footer',
+ icon : 'fas fa-shoe-prints',
+ gen : FooterGen.createFooterFunc(),
+ subsnippets : [
+ {
+ name : 'Footer from H1',
+ icon : 'fas fa-dice-one',
+ gen : FooterGen.createFooterFunc(1)
+ },
+ {
+ name : 'Footer from H2',
+ icon : 'fas fa-dice-two',
+ gen : FooterGen.createFooterFunc(2)
+ },
+ {
+ name : 'Footer from H3',
+ icon : 'fas fa-dice-three',
+ gen : FooterGen.createFooterFunc(3)
+ },
+ {
+ name : 'Footer from H4',
+ icon : 'fas fa-dice-four',
+ gen : FooterGen.createFooterFunc(4)
+ },
+ {
+ name : 'Footer from H5',
+ icon : 'fas fa-dice-five',
+ gen : FooterGen.createFooterFunc(5)
+ },
+ {
+ name : 'Footer from H6',
+ icon : 'fas fa-dice-six',
+ gen : FooterGen.createFooterFunc(6)
+ }
+ ]
+ },
{
name : 'Vertical Spacing',
icon : 'fas fa-arrows-alt-v',
diff --git a/themes/V3/Blank/snippets/footer.gen.js b/themes/V3/Blank/snippets/footer.gen.js
new file mode 100644
index 000000000..6583cd06e
--- /dev/null
+++ b/themes/V3/Blank/snippets/footer.gen.js
@@ -0,0 +1,17 @@
+const Markdown = require('../../../../shared/naturalcrit/markdown.js');
+
+module.exports = {
+ createFooterFunc : function(headerSize=1){
+ return (props)=>{
+ const cursorPos = props.cursorPos;
+
+ const markdownText = props.brew.text.split('\n').slice(0, cursorPos.line).join('\n');
+ const markdownTokens = Markdown.marked.lexer(markdownText);
+ const headerToken = markdownTokens.findLast((lexerToken)=>{ return lexerToken.type === 'heading' && lexerToken.depth === headerSize; });
+ const headerText = headerToken?.tokens.map((token)=>{ return token.text; }).join('');
+ const outputText = headerText || 'PART 1 | SECTION NAME';
+
+ return `\n{{footnote ${outputText}}}\n`;
+ };
+ }
+};
\ No newline at end of file