Commit Graph

47 Commits

Author SHA1 Message Date
c321eb282e Refactor renderers to use template JSON 2024-05-01 11:15:27 +01:00
8bc52a29b9 Inline styles using emogrifier 2024-05-01 11:15:27 +01:00
76f6e7cdbd Render using custom template on preview 2024-05-01 11:15:27 +01:00
07c974e7c7 Added the ability to edit the general-email template in site editor 2024-05-01 11:15:27 +01:00
00e158108f Assign email-general template in editor 2024-05-01 11:15:27 +01:00
37e901c809 Restore content renderer styles to fix remaining tests 2024-04-10 11:42:50 +02:00
fa73d97ae9 Mock getEmailStyles 2024-04-10 11:42:50 +02:00
ab893062ae Default colors 2024-04-10 11:42:50 +02:00
3ec36064ab Fix undefined spacing warning 2024-04-10 11:42:50 +02:00
a697b32e0e Exclude from phpstan 2024-04-10 11:42:50 +02:00
b4acac7c52 Refactor renderers to use templates 2024-04-10 11:42:50 +02:00
a70660dfc3 Fix ordering used classes after rebase
[MAILPOET-5640]
2024-03-22 17:19:44 +01:00
b4bf9c7476 Use VariablesPostprocessor in Renderer
Because the layout wrapper HTML is not post-processed after moving content rendering, I needed to use VariablesPostprocessor because padding can be configured by a CSS variable.
[MAILPOET-5640]
2024-03-22 17:19:44 +01:00
95f3766b4d Add theme styles component for email editor
[MAILPOET-5640]
2024-03-22 17:19:44 +01:00
d336262b31 Spacing 2024-03-21 16:57:59 +01:00
a1b146a2ec Remove trailing comma 2024-03-20 10:57:26 +01:00
33cb92a779 Conditionally show footer 2024-03-20 10:57:26 +01:00
762b050e85 Alternative footer logo 2024-03-20 10:57:26 +01:00
6f87dd6b01 Move layout background colors to theme.json
[MAILPOET-5640]
2024-03-15 16:57:41 +01:00
5ceef236bf Use the same format for styles as it is in theme.json
This should be the first step to using theme.json format in DB and merging more style configurations to the final one.
[MAILPOET-5640]
2024-03-15 16:57:41 +01:00
c415f1efce Move heading styles from CSS file to theme.json
Because we want to have all editor configurations in theme.json, I moved heading font sized to theme.json and removed redundant filters.
[MAILPOET-5640]
2024-03-15 16:57:41 +01:00
4071175178 Move ContentRenderer to the Renderer/ContentRenderer namespace
[MAILPOET-5798]
2024-03-15 10:28:48 +01:00
da87807330 Split CSS for inlining to a file for content and for the HTML template
This is a continuation of the idea of separating content rendering
and adding content to the HTML template.
I assume that in the future, we may move more parts from the renderer
to the content render (e.g. we may introduce a block for layout wrap).
[MAILPOET-5798]
2024-03-15 10:28:48 +01:00
2c5857e89b Split renderer into content renderer and renderer
Content renderer - renders the content of the email post
Renderer - places the content into the email HTML template and generates text version
[MAILPOET-5798]
2024-03-15 10:28:48 +01:00
db8dac03d2 Prepare styles in store for sidebar
[MAILPOET-5638]
2024-03-01 16:36:52 +01:00
b724ef4ac2 Extract Theme related methods from SettingsController as ThemeController
I want to avoid the SettingsController becoming some kind of a god class
so in this step, I extracted themejson-related stuff to an extra class.

In the future, we should also move methods for manipulating CSS to a helper.
[MAILPOET-5741]
2024-02-28 09:01:20 +01:00
1338554c41 Change property name to better fit to new classname
[MAILPOET-5809]
2024-02-19 11:18:58 +01:00
dc96fa2b1c Add postprocessor for replacing mark tag to span
[MAILPOET-5809]
2024-02-19 11:18:58 +01:00
9b54217049 Rename PreprocessManager class to ProcessManager
As we want to add rendering postprocessing, it's better to use a different name for this class.
[MAILPOET-5809]
2024-02-19 11:18:58 +01:00
a671a88956 Remove replacing space in image URL
This fix should not be used anymore.
[MAILPOET-5809]
2024-02-19 11:18:58 +01:00
d62f3c1938 Render email main font family CSS rules in the content wrapper
[MAILPOET-5740]
2024-01-23 16:47:48 +01:00
e8bb1b5ac0 Refactor font family rendering using CSS inlining
We don't reset font family on any level, so there is no need to
bubble the setting using a preprocessor and render the inline styles
explicitly in every block.

In this commit, I change how font-family settings are distributed/rendered
in the email renderer. In the new approach, we rely on class names defining font-family
and a generated CSS sheet with font-family definitions.
We apply the font-family CSS by inlining CSS rules for families in the later phase of
rendering after all individual blocks are processed.
[MAILPOET-5740]
2024-01-23 16:47:48 +01:00
9b05e46690 Use theme.json defined background in renderer
[MAILPOET-5644]
2024-01-08 09:21:16 +01:00
219a12578a Simplify API for registering email block renderers
This commit makes the cleanup of filters for block rendering in emails automatic.
[MAILPOET-5645]
2023-11-10 08:44:08 +01:00
4705079877 Add a simple guide for adding a new block
[MAILPOET-5645]
2023-11-10 08:44:08 +01:00
2ce6fd8688 Remove BlocksRenderer and fix tests
[MAILPOET-5591]
2023-11-09 09:06:33 +01:00
0ac72d43e6 Merge StylesController to SettingsController
[MAILPOET-5591]
2023-11-09 09:06:33 +01:00
5946884cb2 Refactor email content styles from string to array
[MAILPOET-5591]
2023-11-09 09:06:33 +01:00
fe5eabfe49 Add Preprocessor for removing unwanted blocks
[MAILPOET-5591]
2023-11-09 09:06:33 +01:00
c1768fd0b2 Refactor Preprocessor to more classes
[MAILPOET-5591]
2023-11-09 09:06:33 +01:00
125b0dfe82 Add email layout padding
[MAILPOET-5591]
2023-11-09 09:06:33 +01:00
fd96b4afad Add email background and width into StylesController and apply in redering
[MAILPOET-5540]
2023-09-21 14:20:35 +02:00
77eab47357 Refactor email styles from constant to service and move to core
I envision the StylesController as the source of information about
styles settings in both the editor and renderer.

We will add email styles settings and these will be accessed in PHP via this service.
[MAILPOET-5540]
2023-09-21 14:20:35 +02:00
7233a9cb2b Remove unnecessary service in email renderer
[MAILPOET-5540]
2023-09-21 14:20:35 +02:00
968ff6754e Add blocks preprocessor
Currently, we need to wrap top-level non-column blocks into a single
column. This is done in the preprocessor.

[MAILPOET-5540]
2023-09-21 14:20:35 +02:00
69a87e8146 Apply editor content styles in the email renderer
Add proof of concept for applying additional CSS in renderer
[MAILPOET-5540]
2023-09-21 14:20:35 +02:00
46a481ec24 Add email renderer and template to the renderer engine
In this commit, I copied the code for processing the rendering of emails
from the current renderer.
This will allow us to use different base templates and styles.
Ideally, we should be able to add hooks and reuse the renderer from the engine namespace in
the current renderer.
[MAILPOET-5540]
2023-09-21 14:20:35 +02:00