Skip to content

Commit

Permalink
Make the processLineBreaks behavior introduced for #143 the new defau…
Browse files Browse the repository at this point in the history
…lt (i.e. processLineBreaksAsNewText is now always set to true).
  • Loading branch information
jjhbw committed Mar 2, 2023
1 parent bbfe633 commit b228367
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 30 deletions.
4 changes: 2 additions & 2 deletions src/__tests__/__snapshots__/templating.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -10493,7 +10493,7 @@ exports[`noSandbox Template processing 25 Adds line breaks by default 1`] = `
<w:rPr>
<w:lang w:val="es-ES"/>
</w:rPr>
<w:t xml:space="preserve">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed commodo sagittis erat, sed vehicula lorem molestie et. Sed eget nisi orci. Fusce ut scelerisque neque. Donec porta eleifend dolor. Morbi in egestas augue. Nunc non velit at nisl faucibus ultrices. Aenean ac lacinia tortor. Nunc elementum enim ut viverra maximus. Pellentesque et metus posuere, feugiat nulla in, feugiat mauris. Suspendisse eu urna aliquam, molestie ante at, convallis justo.<w:br/>Nullam hendrerit quam sit amet nunc tincidunt dictum. Praesent hendrerit at quam ac fermentum. Donec rutrum enim lacus, mollis imperdiet ex posuere ac. Sed vel ullamcorper massa. Duis non posuere mauris. Etiam purus turpis, fermentum a rhoncus et, rutrum in nisl. Aliquam pharetra sit amet lectus sed bibendum. Sed sem ipsum, placerat a nisl vitae, pharetra mattis libero. Nunc finibus purus id consectetur sagittis. Pellentesque ornare egestas lacus, in blandit diam facilisis eget. Morbi nec ligula id ligula tincidunt tincidunt vulputate id erat. Quisque ut eros et sem pharetra placerat a vel leo. Praesent accumsan neque imperdiet, facilisis ipsum interdum, aliquam mi. Sed posuere purus eu sagittis aliquam.<w:br/><w:br/>Morbi dignissim consequat ex, non finibus est faucibus sodales. Integer sed justo mollis, fringilla ipsum tempor, laoreet elit. Nullam iaculis finibus nulla a commodo. Curabitur nec suscipit velit, vitae lobortis mauris. Integer ac bibendum quam, eget pretium justo. Ut finibus, sem sed pharetra dictum, metus mauris tristique justo, sed congue erat mi a leo. Aliquam dui arcu, gravida quis magna ac, volutpat blandit felis. Morbi quis lobortis tortor. Cras pulvinar feugiat metus nec commodo. Sed sollicitudin risus vel risus finibus, sit amet pretium sapien fermentum. Nulla accumsan ullamcorper felis, quis tempor dolor. Praesent blandit ullamcorper pretium. Ut viverra molestie dui.</w:t>
<w:t xml:space="preserve">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed commodo sagittis erat, sed vehicula lorem molestie et. Sed eget nisi orci. Fusce ut scelerisque neque. Donec porta eleifend dolor. Morbi in egestas augue. Nunc non velit at nisl faucibus ultrices. Aenean ac lacinia tortor. Nunc elementum enim ut viverra maximus. Pellentesque et metus posuere, feugiat nulla in, feugiat mauris. Suspendisse eu urna aliquam, molestie ante at, convallis justo.</w:t><w:br/><w:t xml:space="preserve">Nullam hendrerit quam sit amet nunc tincidunt dictum. Praesent hendrerit at quam ac fermentum. Donec rutrum enim lacus, mollis imperdiet ex posuere ac. Sed vel ullamcorper massa. Duis non posuere mauris. Etiam purus turpis, fermentum a rhoncus et, rutrum in nisl. Aliquam pharetra sit amet lectus sed bibendum. Sed sem ipsum, placerat a nisl vitae, pharetra mattis libero. Nunc finibus purus id consectetur sagittis. Pellentesque ornare egestas lacus, in blandit diam facilisis eget. Morbi nec ligula id ligula tincidunt tincidunt vulputate id erat. Quisque ut eros et sem pharetra placerat a vel leo. Praesent accumsan neque imperdiet, facilisis ipsum interdum, aliquam mi. Sed posuere purus eu sagittis aliquam.</w:t><w:br/><w:t xml:space="preserve"></w:t><w:br/><w:t xml:space="preserve">Morbi dignissim consequat ex, non finibus est faucibus sodales. Integer sed justo mollis, fringilla ipsum tempor, laoreet elit. Nullam iaculis finibus nulla a commodo. Curabitur nec suscipit velit, vitae lobortis mauris. Integer ac bibendum quam, eget pretium justo. Ut finibus, sem sed pharetra dictum, metus mauris tristique justo, sed congue erat mi a leo. Aliquam dui arcu, gravida quis magna ac, volutpat blandit felis. Morbi quis lobortis tortor. Cras pulvinar feugiat metus nec commodo. Sed sollicitudin risus vel risus finibus, sit amet pretium sapien fermentum. Nulla accumsan ullamcorper felis, quis tempor dolor. Praesent blandit ullamcorper pretium. Ut viverra molestie dui.</w:t>
</w:r>
</w:p>
<w:p w:rsidR="009357C2" w:rsidRPr="009357C2" w:rsidRDefault="009357C2">
Expand Down Expand Up @@ -40153,7 +40153,7 @@ exports[`sandbox Template processing 25 Adds line breaks by default 1`] = `
<w:rPr>
<w:lang w:val="es-ES"/>
</w:rPr>
<w:t xml:space="preserve">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed commodo sagittis erat, sed vehicula lorem molestie et. Sed eget nisi orci. Fusce ut scelerisque neque. Donec porta eleifend dolor. Morbi in egestas augue. Nunc non velit at nisl faucibus ultrices. Aenean ac lacinia tortor. Nunc elementum enim ut viverra maximus. Pellentesque et metus posuere, feugiat nulla in, feugiat mauris. Suspendisse eu urna aliquam, molestie ante at, convallis justo.<w:br/>Nullam hendrerit quam sit amet nunc tincidunt dictum. Praesent hendrerit at quam ac fermentum. Donec rutrum enim lacus, mollis imperdiet ex posuere ac. Sed vel ullamcorper massa. Duis non posuere mauris. Etiam purus turpis, fermentum a rhoncus et, rutrum in nisl. Aliquam pharetra sit amet lectus sed bibendum. Sed sem ipsum, placerat a nisl vitae, pharetra mattis libero. Nunc finibus purus id consectetur sagittis. Pellentesque ornare egestas lacus, in blandit diam facilisis eget. Morbi nec ligula id ligula tincidunt tincidunt vulputate id erat. Quisque ut eros et sem pharetra placerat a vel leo. Praesent accumsan neque imperdiet, facilisis ipsum interdum, aliquam mi. Sed posuere purus eu sagittis aliquam.<w:br/><w:br/>Morbi dignissim consequat ex, non finibus est faucibus sodales. Integer sed justo mollis, fringilla ipsum tempor, laoreet elit. Nullam iaculis finibus nulla a commodo. Curabitur nec suscipit velit, vitae lobortis mauris. Integer ac bibendum quam, eget pretium justo. Ut finibus, sem sed pharetra dictum, metus mauris tristique justo, sed congue erat mi a leo. Aliquam dui arcu, gravida quis magna ac, volutpat blandit felis. Morbi quis lobortis tortor. Cras pulvinar feugiat metus nec commodo. Sed sollicitudin risus vel risus finibus, sit amet pretium sapien fermentum. Nulla accumsan ullamcorper felis, quis tempor dolor. Praesent blandit ullamcorper pretium. Ut viverra molestie dui.</w:t>
<w:t xml:space="preserve">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed commodo sagittis erat, sed vehicula lorem molestie et. Sed eget nisi orci. Fusce ut scelerisque neque. Donec porta eleifend dolor. Morbi in egestas augue. Nunc non velit at nisl faucibus ultrices. Aenean ac lacinia tortor. Nunc elementum enim ut viverra maximus. Pellentesque et metus posuere, feugiat nulla in, feugiat mauris. Suspendisse eu urna aliquam, molestie ante at, convallis justo.</w:t><w:br/><w:t xml:space="preserve">Nullam hendrerit quam sit amet nunc tincidunt dictum. Praesent hendrerit at quam ac fermentum. Donec rutrum enim lacus, mollis imperdiet ex posuere ac. Sed vel ullamcorper massa. Duis non posuere mauris. Etiam purus turpis, fermentum a rhoncus et, rutrum in nisl. Aliquam pharetra sit amet lectus sed bibendum. Sed sem ipsum, placerat a nisl vitae, pharetra mattis libero. Nunc finibus purus id consectetur sagittis. Pellentesque ornare egestas lacus, in blandit diam facilisis eget. Morbi nec ligula id ligula tincidunt tincidunt vulputate id erat. Quisque ut eros et sem pharetra placerat a vel leo. Praesent accumsan neque imperdiet, facilisis ipsum interdum, aliquam mi. Sed posuere purus eu sagittis aliquam.</w:t><w:br/><w:t xml:space="preserve"></w:t><w:br/><w:t xml:space="preserve">Morbi dignissim consequat ex, non finibus est faucibus sodales. Integer sed justo mollis, fringilla ipsum tempor, laoreet elit. Nullam iaculis finibus nulla a commodo. Curabitur nec suscipit velit, vitae lobortis mauris. Integer ac bibendum quam, eget pretium justo. Ut finibus, sem sed pharetra dictum, metus mauris tristique justo, sed congue erat mi a leo. Aliquam dui arcu, gravida quis magna ac, volutpat blandit felis. Morbi quis lobortis tortor. Cras pulvinar feugiat metus nec commodo. Sed sollicitudin risus vel risus finibus, sit amet pretium sapien fermentum. Nulla accumsan ullamcorper felis, quis tempor dolor. Praesent blandit ullamcorper pretium. Ut viverra molestie dui.</w:t>
</w:r>
</w:p>
<w:p w:rsidR="009357C2" w:rsidRPr="009357C2" w:rsidRDefault="009357C2">
Expand Down
1 change: 0 additions & 1 deletion src/__tests__/templating.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1234,7 +1234,6 @@ Morbi dignissim consequat ex, non finibus est faucibus sodales. Integer sed just
data: {
headline: headline,
},
processLineBreaksAsNewText: true,
};
expect(await createReport(opts, 'XML')).toMatchSnapshot();
});
Expand Down
5 changes: 0 additions & 5 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,6 @@ async function createReport(
typeof options.errorHandler === 'function' ? options.errorHandler : null,
fixSmartQuotes:
options.fixSmartQuotes == null ? false : options.fixSmartQuotes,
processLineBreaksAsNewText:
options.processLineBreaksAsNewText == null
? false
: options.processLineBreaksAsNewText,
};
const xmlOptions = { literalXmlDelimiter };

Expand Down Expand Up @@ -335,7 +331,6 @@ export async function listCommands(
rejectNullish: false,
errorHandler: null,
fixSmartQuotes: false,
processLineBreaksAsNewText: false,
};

const { jsTemplate, mainDocument, zip } = await parseTemplate(template);
Expand Down
21 changes: 7 additions & 14 deletions src/processTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -557,20 +557,13 @@ const processCmd: CommandProcessor = async (
let str = String(result);
if (ctx.options.processLineBreaks) {
const { literalXmlDelimiter } = ctx.options;
if (ctx.options.processLineBreaksAsNewText) {
const splitByLineBreak = str.split('\n');
const LINE_BREAK = `${literalXmlDelimiter}<w:br/>${literalXmlDelimiter}`;
const END_OF_TEXT = `${literalXmlDelimiter}</w:t>${literalXmlDelimiter}`;
const START_OF_TEXT = `${literalXmlDelimiter}<w:t xml:space="preserve">${literalXmlDelimiter}`;
str = splitByLineBreak.join(
`${END_OF_TEXT}${LINE_BREAK}${START_OF_TEXT}`
);
} else {
str = str.replace(
/\n/g,
`${literalXmlDelimiter}<w:br/>${literalXmlDelimiter}`
);
}
const splitByLineBreak = str.split('\n');
const LINE_BREAK = `${literalXmlDelimiter}<w:br/>${literalXmlDelimiter}`;
const END_OF_TEXT = `${literalXmlDelimiter}</w:t>${literalXmlDelimiter}`;
const START_OF_TEXT = `${literalXmlDelimiter}<w:t xml:space="preserve">${literalXmlDelimiter}`;
str = splitByLineBreak.join(
`${END_OF_TEXT}${LINE_BREAK}${START_OF_TEXT}`
);
}
return str;
}
Expand Down
8 changes: 0 additions & 8 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,13 +111,6 @@ export type UserOptions = {
* Defaults to false.
*/
fixSmartQuotes?: boolean;

/**
* Use the new way of injecting line breaks from command results (only applies when `processLineBreaks` is `true`)
* which has better results in LibreOffice and Google Drive.
* (Default: false)
*/
processLineBreaksAsNewText?: boolean;
};

export type CreateReportOptions = {
Expand All @@ -131,7 +124,6 @@ export type CreateReportOptions = {
rejectNullish: boolean;
errorHandler: ErrorHandler | null;
fixSmartQuotes: boolean;
processLineBreaksAsNewText: boolean;
};

export type Context = {
Expand Down

0 comments on commit b228367

Please sign in to comment.