 Yeah, hi there everyone. Thanks a lot for coming along. It's it's bang on 230 So it's probably a good time to start just to give us plenty of time Welcome to power to the editors Introducing the paragraphs module before I jump into the talk. I just like to say a little bit about Ivan and I will be doing the presentation together today We're site builders module developers and we're problem solvers and we We met the paragraphs module about sort of six months ago and really sort of fell in love with it because of the flexibility it gave us in our site building and We decided you know that we liked it so much that we were going to sort of build a whole sort of stack of modules around it to support it and augment it and The talk you're seeing today really is a result of probably two or three months of planning and scheming and programming Between Ivan and I and other members of our team The the talk is about power to the editors, right? So it's about giving editors and content creators the ability to build really really good-looking Websites but in order to do that Site builders need to be able to support them So this is very much a site building presentation that we're giving today, but it is all about giving power to the content creators It's basically about giving better tools to them so that they can express themselves better What's what are we going to see today? Well first off true to the form of the title of the presentation We will be giving an introduction to the paragraphs module So we'll just be giving you a quick overview there showing what you can do with it But we'll also go through the toolkit of our contrary modules that we've been Working on and show how they've solved problems that we've come up against when working their clients And there'll also be sort of demonstrations along the way and a couple of quick sort of demos at the end to show What is possible? So yeah, the the format very much is going to be around problems and solutions So what Ivan and I are going to do now is just sort of sort of throw up a few questions that clients may throw at you when you're building Sites and then you know some of the solutions that we've come up with So the first one is how can I control the ordering and positioning of widgets now as Site builders this is one of the basic problems. We've got a solve right, you know, we we've got blocks. We've got panelizer You know, we've sort of got any number of other methods of placing and positioning items on a page But all of these solutions are very much site builder Centric, you know, it's up to the site builder to put this stuff in wrap it up in a feature and deploy it But how can an editor or a content creator actually do these things? Where is the freedom for them? So Ivan will flick across an example and just sort of kind of show Show you these examples as we go along now. This is a first off. This is from our paragraphs demo site So all of this stuff you'll be seeing today is at the the paragraph site showcase comm URL so you can sort of go there and see all this stuff if you want to check it out after talk But basically this is a very very simple page But what we're looking at here is sort of one paragraph Another paragraph and this paragraph here now. This is incredibly simple We're just basic sort of simple content paragraphs that we'll call them But these have really been positioned by the content creator So the site builder hasn't said I'm placing a block here or a field here the content creator has said okay I want to sort of put this paragraph over in the sidebar and this paragraph down here So this is a very sort of sort of simple example of the kinds of things that content creators want to do They want to be able to put stuff on the page and position the way they want Okay, so I'm going to take you through Up I'll just explain what paragraphs is and how we use it So the paragraphs module is a module is a module that allows site builders to build Reusable paragraph types which and which and edits I can simply add or Or remove paragraph types are fieldable, which means you can add fields to them like you can on content types some paragraph types are simple like a content and All the way to a full-blown gallery So you can actually create different types of paragraph types so instead of putting everything into the whizzy wig and Fighting against it with paragraphs you can easily manage things in chunks So an editor gets to select which paragraph type using a basic drop-down and then and then they and then and Then they click on add a paragraph Now I'm going to get technical here from a Drupal standpoint paragraphs are simply entities Which means they are fieldable so you can add all sorts of fields to them like date field Geo field whatever you want because they are entities You can use display suites to change their look and feel and this gives the site builder an enormous amount of flexibility Now now you may be thinking to yourself isn't this similar to field collections Well, no, it's not because here in this slide you see two fields field collection Allows you to create an ordered list of the same type of thing name and phone Whereas paragraphs allows you to create an ordered list of different things like content Content list taxonomy term list and all of these have their own custom fields and That's the biggest difference really Cool. All right. So so once we got that sort of foundation We can understand that you know editors can sort of place and move things around and place them in different regions It's now sort of going to step off and have a look at some of the things that we've been building out to Sort of help the process so we were talking to a client and they said we want the edge designs to go edge to edge You know, so we're probably all familiar with this sort of design trend these days of of having you know Sort of content go right to the edge The problem is in Drupal in your sort of page template Usually that content variable is stuck in the middle and it doesn't go edge to edge and this makes it very hard to actually style up this stuff and You know, you can sort of put wrappers on that and sort of do blocks in the theme layer But we don't want to do that. We actually want to have control of the full thing So I will just show a quick example here. It's a fairly simple thing So for example here that these are this is an ordinary paragraph, but it's been we've also got control all the way To the edge and I know this kind of looks simple, but it's it's quite an important thing We wanted to be able to drop a paragraph into an edgy design and drop the exact same paragraph into a normal design And just have the thing work Okay, so we developed a module called edgy edgy displays paragraph items edge to edge And it does this by controlling where a container class gets added now before I move on Let me quickly explain what a container class is the class is used to horizontally align content together and it's used to Center things so here in this slide This is standard Bartek theme that everyone loves the context of the container class simply contains The sidebar and the content region and if we had a right-hand sidebar the right-hand side Because it does this at the theme level. He can't have anything that goes edge-to-edge because it will hit this point edgy on the other hand controls when a container class gets added to to a Paragraph any and this allows us to create these edge-to-edge designs and here you can see that the actual Design goes all the way to the end, but the container is controlled by edgy and It handles when it's how it's added and when it's added So how does this all work well due to all the moving parts? We can't just enable the module and have it working edgy depends on panellyser we made that Decision because it was hard to pass context into Drupal We also ship a custom panel's layout called edgy boxing also a custom C tool style called edgy and You have to make two changes to your theme a bit of code In your hook preprocess page and just a tiny bit of code that controls when a container class gets added Yeah, but I mean the cool thing about that is the site builder can just do that a little bit of work up front And then you can easily support these different layouts the edgy ones or the normal ones and you know a content creator Can there's a drop that stuff in and they don't really care It's just it's just gonna work So once we've got that edgy stuff going you know the next logical step is okay Well, how can I control this stuff edge-to-edge and we had a client said oh I want you know like an orange background on these but I want a blue background on those and I just want to white on On the other one. So that's where we sort of started working around the next thing So just a quick example Of how you know what what the kind of thing we're talking about here is okay We've got two edgy sort of paragraphs here, but you know, how can we get these things to be different colors? Oops, okay, so we developed yet another module called classy paragraphs. Okay Classy paragraphs allows editors to change a paragraph's look and feel by choosing a style style from a drop-down list The selected style then gets add as a class Onto the paragraph elements to put another way it allows an editor to map to make things stand out Or as a client likes to say pop, you know, we want to make this pop Create a class and call it pop The module implements a custom field called class list, which a site builder can add to any paragraph type The module doesn't ship any styles So the site builder has to implement hook classy paragraph list to populate that drop-down and yes Before you ask we've had the first issue that came into the issue queue was can we offer a UI for this? but as most Drupal developers we just Skip building a UI and say let's just do it with a hook So we are in the process of creating a UI, but let's just keep it simple for now And also a designer will then have to go in and style what primary dark or primary light looks like You laugh about making a pop we do have a client here sitting in the audience today, and we did create the funky class for them So All right, how can we get kick-started so I mean we've kind of got the foundation there for edgy and classy So we just decided you know the clients would sort of continue the asking for the same kinds of things Yeah, can we put a gallery in a slideshow in just like a simple content one in so you know there's we sort of running into these Sort of request time and time again So you know we just thought we put together a little pack of modules to help out with that stuff and these are all Sort of contrary modules that we've done here and Ivan's just got a quick demo here Just sort of showing off a few of the sort of modules that we've we've been putting together here You want to talk through these? Oh, okay. Yeah so the first That's all right. We've only practiced it once yeah, okay So the first one is our basic content it allows the user to create Content chunks And then the next one is content lists they can reference they can reference other pieces of content and The last let's go back there. I mean, this is pretty cool, right? So you go with an entity reference field you can say hey I want to pick this item this item and I want to you know display it with this sort of view mode here So I mean when people are building landing pages, how many times have you got to do this? You know how how would you do it like a node queue or something like this? But here they can just kind of drop it in give it the style they want off they go And just finally we have a juice box gallery That allows an editor to easily create a juice box gallery Yes At the end of the presentation. Yeah. Yeah, don't worry at the end of the presentation Okay, yeah, all right. Okay, so Where was I okay? So we created another module called paragraph paragraphs pack because paragraphs keep was already taken by a sandbox repo, unfortunately, um, so paragraphs pack module ships a common collection of paragraph types each in their own sub module and a site and a site builder can just come along and Enable a module and have a basic paragraph type The module at this point comes with five paragraph types content juice box gallery Content list tax on me term list and user list The content list here you go back in the content list is the most basic has a title and a and a body and It's used to just place content perfect for sidebars juice box gallery the juice box paragraph type is used to Display image galleries using the juice box library for people who don't know juice box is a open source sorry, it's not an open source image gallery, unfortunately, but it works and If you've ever tried to create slideshows in Drupal, you just spend hours and hours and hours and honestly like we don't We don't get any money for this but it's 50 bucks or they even have a free version So it just works and if you want any other gallery supported patches welcome so you can just create credit patch for us content taxonomy term and user list All of these paragraph types are very similar. They allow you to reference other entities the reason why we had to the reason why we created Separate types is because entity reference the module that we are using Can only allows you to reference a single entity type. So we had to create separate Paragraph types, I do know that there's dynamic entity reference The odd which I am in the process of reviewing With that we also Putting functionality that allows an editor to choose which view mode of the referenced entity will be used So this will allow an editor to create a list and then they can render those entities with a specific view mode so perfect for landing pages and the editor gets a lot of control and Finally one thing we don't like seeing On projects Overwritten features, so we made the decision not to use features at all We have a we have a lot of we have a fair bit of code that programmatically creates the fields so We leave it in your hands you enable the module and then you export it out into your own features and you're not stuck with Features that are there sitting sitting in an overwritten state Yeah, I'll just just to add on to that I mean we've done that little paragraphs pack but in the funny kind of way That's the smallest thing of what we're presenting today because as site builders you can all just go out and quickly just You know bust out your own, you know paragraph bundles. It's as simple as you know adding a few fields and and styling And that's the easy part, you know, so, you know, this is a great thing about it You've got the flexibility to to build that functionality for the the clients as you like Okay, this is this is a probably more advanced one and You know once again, I got a few friends in the audience who are probably familiar with this kind of thing that we've Been working on and this is a sort of slightly refactored Thing of we've done for some of our clients, but this is about filtering and displaying items, right? So we all know how powerful views is and it's probably one of the major reasons for Drupal success Site builders can access that through the views UI and having you know pains and blocks and putting them on page But how can you get that power down into the the hands of the editors? so I was just going to sort of show you an outcome of Something we've done here The what what we see here is these are two paragraphs paragraph one paragraph two There's a view sitting behind these but it's the same view exactly the same view And the editor has gone in and said hey, I want to see three items and I want them to be this content type a demo node and I want to use this Sort of display and this is what's you know come out as part of me for that funny image there On this second paragraph they said hey, we want six items But we actually want to use the stack display and we want to use landing pages So what you can see here is we've actually used a paragraph to tie into a view and there's a little bit of sort of Blue configuration in the middle so and so imagine you have a massive repository of information You chuck a search API view onto it. You have a lot of sort of custom Filters and then you just get a paragraph to wire it up and the the editor can go in and go. Yeah, I want that tag I want that category. I want to have six items. I want them as Whatever boom goes into the page. They've got it So you can just create landing pages like that and they can just chuck its paragraph in you got that content Coming down. It's insanely powerful The clients who are using it for us don't really know how cool it is But you know, they certainly appreciate the ability to put lists of stuff on pages the way they want So you're really exposing the power of Drupal through to the editor okay, so Views filter object. It's currently a sandbox The module allows an editor as my mention the module allows an editor to create a list a List and and and an editor can select which content type So here you can see which content type how many shall be displayed and also which view mode so that Translates into that now. It's important to understand that this simply lists content It doesn't reference content like in the paragraphs pack this lists it out in essence. We've given editors a simplified views Interface all right. So, you know, it didn't take us long to think hey Can we use some parallax with these paragraphs here? We have these edgy things that go the full width there in chunks down the page wouldn't it be nice to use parallax Also, wouldn't it be nice just to drop a custom background into onto these things just put an image in now When Ivan and I sat down well stood at the whiteboard with saying, you know Maybe we could do a parallax paragraph and I was like not really because we put all this effort into paragraphs pack If we just made a paragraph bundle, you know, sorry a parallax bundle We're just sort of going to just lose all that great work. We've done on all the other bundles So what we've done is sort of worked out a way to sort of do a pluggable system where we can chuck Different backgrounds in onto any paragraph And this is like the cool part so Yeah, all right. So so here we have one paragraph. It's called the entity Background parallax. That's the actual name of the like the little sort of plug-in thing we've done It's just a this is an ordinary content paragraph here with just with a bit of content over on the left-hand side But if you know if Ivan goes sort of up and down a bit You can kind of see we've got a bit of a parallax effect there So this this literally took us 30 seconds just to upload that image boom. It's working So Every time I see as I get really excited because it's really just it's just it's just opening up such amazing Possibilities for people to do cool designs in just like 30 seconds. No theming. No CSS involved. You just drop the image in We've got another one here. Very simple one The background color is that's pretty self-evident But the editor can just sort of pick a color and and just style that color up before with classy You know they were picking a class but in this case, they're just picking a color And we've also got an image one as well And you know, this is an incredibly effective way just to spice up your designs and to just to give it Content editors a really easy way to drop that stuff in So, I mean you can see this applying here to paragraph specifically But you can probably tell by the name of the module that it is Specific to entity entity. So theoretically this this sort of approach we've taken could plug into any other entity that you've got Okay, so the modules called entity backgrounds and And Unfortunately, this gift is not working so entity background just Puts in a drop-down and an editor can simply select what type of background they want Murray's already explained or the all the background types that we have but we have color image and parallax and But conceptually this is an advanced module We've already had to deal with a few issues in the issue queue where people just the quite don't Understand that it is complex So right now in it's in alpha stage So if you want to use it, you're gonna have to look at a bit of the code Background types are implemented using a custom C tools plug-in. So if you want to implement your own just look at the The actual the existing modules and then you can implement your own type of Background whatever you want with any type of parallax But part of the secret here is it's a field collection That's actually sort of storing this information and people can just plug the different bits of like a different background implementations into that You'll collection and that that will sort of display in a nice UI and we can show that at the end We can show that you will show all at the end show your net at screen at the end. Yes So that's the cool stuff with sort of backgrounds. It's like a specific use case here We're doing the behavior of paragraphs So it's like there's so many cool like jQuery sort of libraries out there Which can do all this amazing stuff and the one we've been looking at is our sort of scroller, but you know, basically As a site building you may be wanting to put certain JavaScript effects onto these sort of paragraphs And we've used a similar approach just to sort of get these effects working with paragraphs. Oh Yes the example here This is pretty cool as well. It's a little bit of that's maybe it's not to everyone's taste But the scroller module so scroller library basically allows you to sort of do Transition effects based on the scroll position of the page So we've just basically chucked a bit of config in you have to sort of grok scroller and how it works But you can see we've got colors changing Just keep scrolling sort of nice sort of color transitions and we've also done a bit of magic here on an image We can get an image transition So what you're seeing here is like one paragraph and then another paragraph below and just a little bit of sort of magic just to To make the top image transition on right? So this is it once against advanced tool a designer would have to understand scroller But if that designer does understand they can just go in image lunch upload image to check Put a class on it and a little bit of transition stuff And then you've got this amazing thing and you know what you're doing. It's very quick to put that stuff together Yeah, well paragraph is an entity so you have a node and then you have a field which says hey These are the the main the main content paragraphs And you just then put your the paragraphs in sort of going like that So we probably could have shown a better edit screen at the start on the paragraphs module But at the end we'll walk through one of these looks like very slow and slow detail to have a look okay, so Here's entity behaviors The concept of entity behaviors is very similar to entity backgrounds, but with a slight twist entity behaviors Gives editors or designers the ability to attach custom behaviors to paragraph types a behavior is simply a bit of JavaScript code That gets attached and executed on an entity we We often talk about attaching these to paragraphs, but they can be attached to nodes users or Any any entity type Currently the only the only behavior that that ships with the module is integration with scroller for people for people who don't know scroller is an open source animation library and It allows you to create parallax style scrolling You configure your animation by using tag attributes now. This is something that scroller implements now I agree, you know, we could probably fix up the UI and we're in the process of doing that, but entity Entity behavior for scroller allows the user to define these attributes when they edit when they edit the paragraph It's a real tool for designers. Yeah, but it is an advanced tool unless you know what that is And you've also read the scroller documentation. That's important And I just updated to read me for this module recently saying that you have to read the scroller documentation Our field permissions But we'll have questions at the end That's their encouragement. They're encouraged me. That's cool. But yeah, you could I mean the simple thing is yeah You could put field collection our field permissions in and because this isn't controlled by features Export out into features and you're fine basic field permissions Yes, and similar to similar to entity backgrounds. We we have a custom plug-in Called entity behaviors and you can implement Your own behavior and implement any type of JavaScript library Yeah, I just encourage you all just to think about that you imagine if you've got that Paragraph on a page, what stuff would you want to do with it? You know, and this is just a very handy way for you To do the hard work up front for the content creators All right, and the next one. How can we do navigation? So, you know in the Drupal system We have the menu system. We have menu block. We place on the page We allow sort of linking between pages very familiar. We probably all use it all in almost every site. We do we decided to provide something similar with With paragraphs where we'll just sort of have a navigation sort of element on the page just to help people sort of go through the pages So it's actually not on that page. You'll have to go to the demos just pick out Yeah, that's good So on the side here There we go. We get this kind of this is like a sexy version, right? You know where where we've this is just like a little block with you know, like links Linking into anchors. We've actually also got another little scroll sort of JavaScript library That's attaching on to that to to do some of this stuff as well That's that's basically it so I mean this could be a much more sort of traditional block up the top You know just with like a menu bar. So if you're doing a single page website, right? You just bust this out put it off the top bang. You've just got like a whole single page website ready to go Okay, so paragraphs navigation or Paris paragraphs and that's still in a sandbox the module implements custom blocks each for each one for each content type that allows users to navigate between block paragraph items on a single page and it's very useful as we show for large and long Long pages so users can can navigate between them But this is an advanced tool and you have to style things Yourself and you'll probably have to get a designer to make sure that some the look and feel Looks right for your particular pages And well, this was meant to be a gift, but you don't work, you know, all right So there came a time in our standing around the whiteboard we had to say enough We're going to do no more sort of module. So we've drawn a line in the sand now and once once we've done all this work We kind of look back at what we've done and we see what we've really created It's not really so much a site building story here, but it's really a content creation story They're kind of like a content strategy thing almost we're actually giving the editors the content creators the designers The ability to create better pages that can tell a really good story So we're not like Bob that bogged down in sort of data modeling and fields and like rigid structure here We're kind of giving freedom to editors and so that they can get the graphics that they want the words that they want and actually tell Something and I think this is hopefully going to be you know of interest to you know content strategists and marketers as well as Storytellers and and authors it should lead to like a better sort of user experience better conversion rates and you know So hopefully get all that sort of really good stuff sort of coming out. All right, so We've already seen this site in action but we'll just quickly go through a couple of sort of little demo pages just so you can kind of see how it's all come together and These pages been done by some of our designers at Morph so Chloe over there and another guy called Peter So we just quickly whiz through a couple of these little pages just to sort of show how it's how some of it can get together So this this one here is like, you know, you've got the sort of ubiquitous slider Up the top. I wish Colin was here. He would have liked that one You got and then there's basically just just telling the story, you know using simple sort of content ones with Sort of like a bit of a grid in the the whizzy wig there You know once you see we're seeing sort of classy sort of edge-to-edge layouts here edge-to-edge sort of background images and You know basically just sort of providing information and I think if you would look at this site You're going to say well, that's not really looking like the normal Drupal site Now it's one thing. I haven't really mentioned here I'm don't mean to be getting down on sort of data modeling and doing all that sort of great stuff that Drupal is all about You know here We're really seeing like the flexibility in the freedom side of the equation But of course you still have the the traditional sort of data modeling that you would be doing All right, Ivan. So yeah, we've that's that's all pretty cool and then another sort of demos done by Sort of Peter Peter actually did all of the cooking and all of the photography of videoing and design and layout for this one So that's pretty amazing. So yeah background images just a standard sort of content thing with an image in it It's got a funny little sort of parallax thing in here on the right-hand side I actually sort of laughed when I saw that for the first time There we go. Isn't that sweet? The video we we won't subject you to the video, but that's you know, that's just a normal content one See the class in paragraphs with the colors going edge-to-edge and here We have a really nice little effect there with the scroller thing So, you know Peter said he wanted to do this effect and we just went away and worked out how to do it in scroller and you know, we're really happy with the outcome and just a Funny little parallax sort of going the wrong direction thing So yeah, that's that's that's a nice one I think I imagine if you could you know have pages that told stories like that for your clients and you know It's possible and finally this is just bit more of a sort of techie one Peter just went to crazy with one with some of his effects, but this is just kind of showcasing scroller and some of the The dorky things you can do Here with this kind of stuff Not everyone's cup of tea, but you know, this is the kind of flexibility you've got just by punching in a few We go questions, I think that's it That's it. No, we've done the spiel. This is for content Psychreaters to create amazing tools for content editors and designers. Yeah, so thank you very much guys This seems to be a common refrain for some reason, okay, so why don't we alright? Let's go. Let's go into the backgrounds I think that's the one that you guys really want to see So again, just three paragraph three paragraph items In Hopefully the internet stays up. Okay, so just standard body filled summary and then here So this is the paragraph, okay So you can see classy is up the top here But but but you don't have to use classy But you can select a style and then this is the three Increase this. This is just a standard That's just content just content and this is where you actually set up Set up the parallax. So if you want to remove it, this is just a media media Media embed widget and that's and that's just an image field and that's just a text field But just show the pluggable nature So we've just done a little bit of UI magic here where these are all sort of like C tools plug-ins here to implement Each one of these so that's an image parallax and color and because any paragraph can only ever have one Background we've kind of got it so that it just shows and hides Depending so this is all pluggable here So you can just create anything you want and code away and it will just plug in so on this case We're using parallax and you just want to show the color one quickly I'm just so you can see on the color one. We just get a different sort of UI element here and Yeah, with the image you just get a Something that's just a basic. Yeah, that's like the the pluggable Sort of version of it, but and just above while we're here in the UI You can see on the behaviors this pluggable very similar But here on any paragraph you can have multiple sort of behaviors So you can see Ivan's just click the height to the height one shown and he's clicked the scroller one So we get this kind of scroller element where you can enter in all those crazy data attributes So that's so we try to keep the UI as clean as possible You know, we know the paragraphs can be a bit unwieldy in the back end So we've tried to keep this stuff as simple as possible So if we scroll down quickly, you can see that the color one just has a basic color value there and And the image one just has an image attached to it But you may look at this and go, oh, there are a lot of fields, but if you were to Just use paragraphs just take out that and you still have all of these to deal with so it's not really that much for the editor to Handle So let's go to entity Behaviors so you can have a look at the scroller So again scroller is a library that we did not write it's a it's a It's an open source library. You can grab off github But it allows you to define Are you Scrolling using these top of attributes So I highly recommend that you read the documentation for scroller first before creating an issue saying I installed it and it doesn't work So yes That's right Absolutely, but I've also looked at there's a few there's one module. I think it's called key properties that I was hoping where you could actually select that as a drop-down and Then define that and then have that as another field But yeah, absolutely we can put in we can put in a bit of description and fix up the read-me's and stuff like that. Yep. Yes No, well, I thought I know clone. I think I've seen an issue, but that's No, no paragraphs doesn't know but I think I saw an issue saying paragraphs doesn't work well with node clone So I think you would have to write yeah at this point I'll test it out first. I would test it out I suspect it just keeps the same ID and just copies that ID Yeah, you point probably pointing back to the old paragraph and getting confused. That's that's just a guess I haven't actually yes, and I think and I think I've experienced that problem where I've cloned it thinking oh Sweet it worked and then and then I changed the paragraph in another page which changed in the paragraph in another page and It all just kind of exploded Exactly it is just an just an ID. Yes How much time we got there No, we're done. We're done. Yeah, go on why penalizer. Um, okay, so You can't you can use it this is just for edgy that we yes We're just using variable into the layout. Yeah, we're just using Yeah, we're using penalizer just for edgy I don't want to get in I've got time to go into the technical details of why but we we use we use penalizer a lot and The reason why we use penalizer is that you can you can give editors the ability to select certain certain Display layouts from the edit form so you can have an article Which which can be displayed with or without a sidebar, and that's a big win for us and and clients love it so Yeah, but just explain with the layouts in the edge You can have what we call normal layouts and edgy Do you want to explain the how we that variable passes from? Yeah, so As I was saying we have we have a layout and a style So let me just jump in and go Now this is another part um so we have a style called edgy and The hardest thing when I was developing this for the fourth time just the whole just the whole mechanism to make it edgy We've done it a few times. It was very hard to figure out at the actual pain layout should This paragraph be edgy or not and I'm I must admit in in the first version We used a global variable, which was a bad idea Because you could only have one one variable which said this is edgy And if you did one or two extra node loads everything would just break so we so After spending hours looking through panels hooks and he has many hooks I found hook pre-pre hook pre-process render or something like that and I found out that the only way of Figuring out if it's edgy or not was to create a basic style And this is something that see tools does a basic style and I and I've got a bit of code that checks to see If this style is applied then then it's classed as edgy I was talking yesterday to one To one guy who's actually worked on paragraphs and I and I and I've asked him Can I do this with context because paragraphs has a whole context system or I think my Murray and I have discussed can we just do it based on a layout so when you set this layout So when you come when when you come here and set the layout you just assume it's edgy so there's Like most things in Drupal There's always 10 ways of doing things and it's just coming up with that nice medium of a nice clean way of doing it But I'm sure this will change but for now it seems to work pretty well But you're doing the tweak on the paragraph item template. Is that It depends what's controlling your paragraph because Another thing is if you're using display suite to render your paragraph that means the standard Template is not used. So it's hard to inject that extra class I am thinking of actually creating a patch and submitting it into the paragraphs issue queue for them to place Just a classes variable in the template so we can just pass in like little things like that we To actually work around that we've had to write a whole custom template for it I know I know and we do have and one thing and just and just one thing I'll quickly show you is that we do have a patch in paragraphs to sort out this problem. So Two seconds. So one thing one thing we had to sort out Is I don't know if I don't know if it's hard to see problem probably Yeah That's the only way for us to actually target a particular paragraph item and there is a patch in the paragraphs issue queue to get that in because It's it's a few lines of code But every module depends on it and right now the bit of glue code Is in paragraphs pack and I have to put in the read me and tell them either apply this patch or just enable paragraphs pack to get that to work so so We are actually trying to push as much stuff back into paragraphs module as possible when we reach certain limitations Like like all our background and behavior stuff is all targeting that yeah, so that's how all that stuff will hook in So that's a little thing we had to add Yes Any other questions Well just just on the revisioning I haven't done it But I've got a friend who does content revision She's really happy about it because it does support it and that's that's why it's in the a gov Distro the paragraphs are gone in because I think revisioning is supported So I can't actually speak with from personal experience, but that's what I my understanding is so I think the revisioning is done Yeah entity cash. I don't I don't know I mean in the past So I have done sort of performance analysis of different entities with entity cash Believe it or not and I when I was doing that I did see that say field collection didn't support it when at least when I was doing it But other entities did so I think it's up to the entity You know whoever's done that entity to sort of support that catching and I haven't done that I'm not really sure to be honest, but you'd have stuff to research that But yeah, it is really will be loading more entities with these stuff So they're probably is going to be a bit more Load on the page, but in terms of like the time it takes to load an entity compared to a node is probably You know like a 10th or you know something like that of what what a node load is or maybe even less So you know in the big picture scheme of things Loading an ending is much more than loading a node and loading a node is much more than the bootstrap process So you're probably only looking at you know the very rough numbers 1% of what the bootstrap is You know something like that, but bootstraps 150 milliseconds like a node is You know that bit more and the entity is just a smaller thing on the end So I'm not too too worried about that and just to add to that I mean if 99.9% of your traffic's anonymous then just use varnish If you want to handle authenticated traffic look at using panels panels allows you to have granular I Think panel pain level caching so you could actually I probably don't have it up But the previous page that I had up where you have all your panel pains You can set up caching at that level so if you really want what worried about it You can you have multiple options depending on the traffic So it's like Well it it's stored in multiple entities, but you can access it from one area I do know that there is talk about being able to replicate paragraphs. So there is another issue in the paragraphs issue queue about Replicating paragraph entities, and I think there's even a contrib module called paragraph replicates but I mean you can access it from one area and One of the reasons why we prefer this over say panels and letting an editor go to town with panelizer is that they can manage everything from one page It's very hard to tell an editor. Oh create your body here But then go to a whole different interface in panelizer, which looks totally different and is buggy Sometimes and manage and manage other pieces of content in there So we haven't had any bad feedback Yes, I got no no problems with it whatsoever You know Drupal's a system that provides these entities you build a data model. You want to support what you're doing I mean a node in itself is split out into fields which have separate tables and all that I think the one area from an editor's point of view They may just want to go into the WYSIWYG and enter content and sometimes it could be a bit weird if they have to then break Into another paragraph out of that and that that could be a bit of a jarring experience But but certainly on these pages where it's just you know some stuff at the bottom You know where it's you know, it's got a nicer kind of you know flow to it But that would be potentially one bad experience You could you could I conceptually I don't see a problem with that I mean obviously you've got the summary which is you know really important for SEO things the only Yeah, the only issue is if you have a teaser and You're creating views that relies on some summary. It can be very hard to figure out Okay, which paragraph is the body? You know, you know, how do you figure out the context of the paragraph? But just just conceptually yeah get rid of the body I mean when you look at you know how we represent things on the web, you know You have a URL for you know location and identification, you know title naming resources is really important But after that it's like well who cares that resource on the web camera represent anything There's no rule that says it's got another body, right? So I think you could just trash it Alright, so one more question and sorry before we finish we are having a boff after this at 445 I think the last boss last boss for the day to discuss all this stuff. Yeah My that's the question we've been asking So we got really excited when we saw paragraphs within a gov and we got cool We're gonna be able to put all this stuff in but the way I think the way I will a gov You can I think because you've got control of that, but we've got CMS I don't believe you can put any new modules in you did you did mean a gov Yeah, so yeah, if you if you are able to install new modules in then of course this will work Yeah, just out of the box with the paragraphs that are in there You know all that background stuff to just plug into any paragraphs you create in a gov All right So yeah If you guys have any other questions come to our boff and we'll answer them and we can show you all this stuff Thanks guys