- Drag an image into editor where you want it to go.
- Click align right.
- Click the block inserter above the paragraph you want to insert the image before.
- Select the image block.
- Drag the image onto the block.
- Click align right.
Adding a Caption via the Image Block Interface I’m Willing to Learn I understand the long vision of Gutenberg and what it means for the future of WordPress. For the past several months, I’ve used the plugin and interface exclusively to craft content. I’ve been learning things along the way and trying to readjust my workflows but the question I keep coming back to when doing things in Gutenberg is why? Why is this button hidden? Why are there three differently located buttons to add blocks when it would be nice to memorize one? Why does this do that and vice versa? Where is all of the research and usability testing that explains the why behind so many of the interactions and flows? Am I just a moron or is it the interface that guides me in the wrong direction? Many of my experiences in using Gutenberg this past year have been echoed by Mark Root-Wiley. He does a great job of saying what I’ve been feeling and thinking for a long time. When I and thousands of others watched Matías Ventura perform a live demo of Gutenberg at the 2017 State of Word, people were blown away. But this is someone who has been creating Gutenberg from the core and is proficient in all that it offers. Is this the level of Gutenberg proficiency I and others need in order to get things done? Probably not, but at times, it sure feels that way.
Gary Pendergast announced this morning that the Classic Editor plugin will be officially supported until December 31, 2021. The plugin eases the transition for sites where plugins or themes are not yet compatible with Gutenberg and gives users the opportunity to preserve their existing workflows.
“Since the Classic Editor plugin is central in this transition, we are considering including it with upgrades to WordPress 5.0,” Pendergast said. “New WordPress installs would still add it manually, and we’ve included it in the Featured Plugins list to increase visibility. If you have thoughts on this idea, please leave a comment.”
Pendergast clarified that “officially supported” means that the plugin “will be guaranteed to work as expected in the most recent major release of WordPress, and the major release before it.” He also said the project will evaluate the continuing maintenance of the plugin in 2021 and may possibly extend the date.
The post has already received quite a bit of feedback and generally positive reactions to the prospect of including the Classic Editor along with 5.0 updates for existing sites.
WordPress Core Committer Pascal Birchler asked for a clarification on what “we” referred to in Pendergast’s post, and Pendergast clarified that he is speaking on behalf of the WordPress project. Other commenters pressed for more information, as the announcement was delivered as something that had already been decided and the conversation surrounding the decision was not public.
“I’m grateful for the communication on a hard date for support of the classic editor,” Darren Ethier commented on the post. “It helps many people depending on WordPress for their livelihood to make plans surrounding things depending on it. But for volunteers who ‘show up’ at meetings and in contributing, the process for arriving at these kinds of decisions in an open source project is very opaque and seems to be increasingly so.”
This announcement highlights a trend in recent decision making for the project where decisions on important items appear to have been made behind closed doors without community input. Matthew MacPherson’s proposal for an independent accessibility audit, which had broad support from the community, was shut down in a similar way. MacPherson was named WordPress 5.0’s accessibility lead but didn’t seem to be fully vested with the power to lead that aspect of the release in the community’s best interests. I asked MacPherson if he could further clarify how the decision to forego the audit was reached, as it seemed even a surprise to him in the GitHub issue thread. He said he had “no comment” on how the decision came about.
WPCampus is now pursuing an accessibility audit in order to better serve its community of more than 800 web professionals, educators, and others who work with WordPress in higher education.
“We’re receiving a lot of interest and I’m holding meetings with potential vendors to answer their questions,” WPCampus director Rachel Cherry said. “We’ve received a lot of messages from individuals and organizations wanting to contribute financially.”
The recent report from the accessibility team demonstrates critical issues that prevent the team from recommending Gutenberg to users of assistive technology. These issues also have a major impact on those using WordPress for higher education, as the law requires them to meet certain standards. Several in this particular industry commented on Pendergast’s post to advocate for shipping the Classic Editor plugin with new installs as well.
“Many organizations who use WordPress are required by law to provide accessible software under Section 508,” Rachel Cherry said. “Until such a time when the accessibility of Gutenberg has been improved, and Section 508 compliance is clear, these organizations will require use of the Classic Editor.
“Not to mention the users who will be dependent upon the Classic Editor to have an accessible publishing experience.
“Please consider bundling Classic Editor with all versions of core, new and updated, going forward so that every end user has the easy and inclusive option of using it from day one.”
Elaine Shannon, another WordPress user who works in academia, also commented on the Pendergast’s post to recommend having the Classic Editor bundled with new versions of WordPress, due to many education sites running on multisite installations.
“Some institutions are on managed hosts, where they’ll receive 5.0 without initiating the update themselves,” Shannon said. “Others are managed by on-campus IT services, where one campus admin will push the update and affect thousands of users. In many cases, these are MultiSites where end users – the ones who need the choice of whether to use Gutenberg or Classic Editor – do not have the ability to add a plugin. So regardless of whether these users are in a brand-new shiny install or just an updated existing one, many users are going to need to fall back to the Classic Editor, and if it’s not bundled with Core there will be some folks left having to contact their administrator.”
Pendergast’s post said the WordPress project is considering including the plugin with upgrades to 5.0 but did not identify where or when that decision will be made. However, users who depend on the plugin now have a clear idea of how long it will be supported.
“As for the EOL on Classic Editor support, that’s probably more clarity than [the core team] has ever really given on a feature-to-plugin transition and I’m in favor of having that hard date,” WordPress core developer Drew Jaynes said. “It sets the right tone that the plugin is not intended as a long-term solution, rather a stopgap with a definitive EOL.”
Ashday's Digital Ecosystem and Development Tips: Custom Cache Tags and Max-age: Advanced Cache Handling in Drupal 8
Determining how content on your site should be cached isn't a simple topic. Last time, I covered cache contexts and tags. Today, I'd like to get into a couple more advanced topics: The use of custom cache tags and of max-age.
It can ease understanding of large quantities of data. There is a way to make charts in Drupal with the help of the Charts module and Views.
In this tutorial, you will learn the basic usage of the module in combination with the Google Charts library. Let’s start!
Every big Drupal release opens fantastic opportunities for websites. Three years ago, the eighth Drupal version came to this world — and the world fell in love with top-notch Drupal 8 improvements.Read more
“Being selected for the Kim Parsell Memorial Scholarship is an honor, achievement and a proud moment for me,” Jain told the WordCamp US organizing team when asked what it means to be selected. “I will try my best to make the most out of it and give back to the community in all possible ways. Since I have been a WordCamp volunteer and organizer in the last few years, I am excited to see and learn from WordCamp US. I am sure, I will have a lot of sweet memories and wonderful learnings to take back home.” Previous winners include Elizabeth Shilling in 2016 and Bianca Welds in 2017. If you’re not familiar with who Kim Parsell is, I recommend reading this essay which provides some context as to why the scholarship was created in her memory.
Installing Lando on a Windows machine is easy. Just follow these 30 (or more) simple steps:
- Review the directions.
- Figure out which version of Windows you are running.
- Realize that you need to upgrade to Windows 10 Professional, because apparently you have to pay extra to actually do work on a Windows machine.
- Open the Windows Store.
- Spend half an hour trying to figure out why the Windows store is only showing blank pages.
- Take a break, go vote, spend some time with your kids, and seriously consider buying a Mac so that you don't have to deal with this shit.
- Reboot your computer and finally get Windows store to respond.
- Pay $100 dollars, while updating your account information because everything is three years out-of-date. Do not pass Go.
- Reboot your computer twice.
- Go to the Lando releases page.
- Spend some time looking for the last stable release (note: there is no spoon stable release).
- Download and run the latest .exe.
- The installer will complain that you don't have Hyper V, which you just paid for.
- Find the obscure command you need to enable Hyper V.
- Find Powershell in the Start menu.
- Discover that you can paste into PowerShell just by right-clicking your mouse. This seems convenient, but it's a trap!
- Run the command. It doesn't work.
- Learn how to run PowerShell as an administrator.
- Run the command, again.
- Reboot your computer, again.
- Run the .exe, again.
- The installer wants to install Docker. Let it.
- The Docker installer wants you to log you out. Let it
- Log back in.
- Open Babun and try the lando command. It isn't found.
- Open Powershell and try the lando command. It isn't found.
- Open the Command Prompt and try the lando command. It isn't found.
- Re-run the Lando installer, for the third time. It turns out that it never finished because Docker logged you out.
- Open Powershell and try the lando command.
- It works! Congratulations, you are done!*
* Just kidding...
- Open PowerShell. Go to the directory where you have your Drupal site.
- Run lando init.
- Choose the drupal 7 recipe.
- Why is it asking for a Pantheon machine token? This isn't a Pantheon site! Hit Ctrl-C.
- Log into Pantheon, create a machine token for your Windows machine. note: Terminus and Lando are notorious for asking for this machine token over and over, so make sure to paste this machine token into a file somewhere, which kind of defeats the entire point of having a machine token.
- Run lando init, again.
- Right clicking to paste doesn't work for the hidden machine token. So, learn a different way to paste the machine token into PowerShell.
- Congratulations, you are done!**
** Just kidding...
- Run lando start. Your terminal will proceed to spew error messages for several minutes.
- Spend an hour searching through the Lando issue queue trying to find the magic sequence that will fix these errors.
- Go apple.com and start comparing the new MacBook Air to the new Mac Mini. Figure out if you can afford either one so that you don't have to deal with this shit.
- Your kids are picking up on your frustration, and everyone is melting down because it is bedtime (and your are anxious about the election).
- Give up for the night, and obsessively refresh the election results at fivethirtyeight.com until the results are clear at 11:00 PM.
- Get up the next morning and write a satirical article about installing Lando on your Windows machine.
I will let you know if I ever actually get it working.Tags:
Last September Dropsolid sponsored and attended Drupal Europe. Compared to the Northern America’s conferences, getting Europeans to move to another location is challenging. Certainly when there are many conferences of such high quality that compete such as Drupalcamps, Drupal Dev Days, Frontend United, Drupalaton, Drupaljam, Drupal Business Days. I’m happy for the team they succeeded in making Drupal Europe profitable, this is a huge accomplishment and it also sends a strong signal to the market!
Knowing these tendencies, it was amazing to see that there is a huge market-fit for the conference that Drupal Europe filled in. Also a great sign for Drupal as a base technology and the growth of Drupal. Hence, for Dropsolid it was a must to attend, help and to sponsor such an event. Not only because it helps us getting the visibility in the developer community but also to connect with the latest technologies surrounding the Drupal ecosystem.
The shift to decoupled projects is a noticeable one for Dropsolid and even the Dropsolid platform is a Drupal decoupled project using Angular as our frontend. Next to that, we had a demo at our booth that showed a web VR environment in our Oculus Rift where cotent came from a Drupal 8 application.
On top of that, Drupal Europe was so important to us that our CTO helped the content team by being a volunteer and selection the sessions that were related to Devops & Infrastructure. Nick has been closely involved in this area and we’re glad to donate his time to help curate and select qualitative sessions for Drupal Europe.
None of this would have been possible without the support of our own Government who supports companies like Dropsolid to be present at these international conferences. Even though Drupal Europe is a new concept, it was seen and accepted as a niche conference that allows companies like Dropsolid to get brand awareness and knowledge outside of Belgium. We thank them for this support!
From Nick: “One of the most interesting sessions for me was the keynote about the “Future of the open web and open source”. The panel included, next to Dries, Barb Palser from Google, DB Hurley from Mautic and Heather Burns. From what we gathered Matt Mullenberg was also supposed to be there but he wasn’t present. Too bad, as I was hoping to see such a collaboration and discussion. The discussion that got me the most is the “creepifying” of our personal data and how this could be reversed. How can one gain control the access of your own data and how can one revoke such an access. Just imagine, how many companies have your personal name and email and how could technology disrupt such a world where an individual controls what is theirs. I recommend watching the keynote in any case!”
*/ /*-->*/ /*-->*/ /*-->*/
We’ve also seen how Drupal.org could look like with the announced integration with Gitlab. I can’t recall myself being more excited when it comes to personal maintenance pain. In-line editing of code being one of the most amazing ones. More explanation can be found at https://dri.es/state-of-drupal-presentation-september-2018.
*/ /*-->*/ /*-->*/ /*-->*/
“Another session that really caught our eye and is worthy of a completely separate blogpost is the session of Markus Kalkbrenner about Advanced Solr. Perhaps to give you some context, I’ve been working with Solr for more than 9 years. I can prove it with a commit even! https://cgit.drupalcode.org/apachesolr_ubercart/commit/?id=b950e78. This session was mind blowing. Markus used very advanced concepts from which I hardly knew the existence of, let alone found an application for it.
One of the use cases is a per-user sort based on the favorites of a user. The example Markus used was a recipe site where you can rate recipes. Obviously you could sort on the average rating but what if you want to sort the recipe’s by “your” rating. This might seem trivial but is a very hard problem to solve as you have to normalize a dataset in Solr which is by default a denormalized dataset.
Now, what if you want to use this data to get personalized recommendations. This means we have to learn about the user and use this data on the fly to get these recommendations based on the votes the user applied to recipes. Watch how this work in the recording of Markus and be prepared to have your mind blown.”
*/ /*-->*/ /*-->*/ /*-->*/
There were a lot of other interesting sessions and most of them had recordings and their details can be found and viewed at https://www.drupaleurope.org/program/schedule. If you are interested in the future of the web and how Drupal plays an important role in this we suggest you take a look. If you are more into meeting people in real-time and being an active listener there is Drupalcamp Ghent (http://drupalcamp.be) at the 23rd and the 24th of November. Dropsolid is also a proud sponsor of this event.
And an additional tip: Markus’s session will also be presented there ;-)
I’ve been running a lot lately, and so have been listening to lots of podcasts! Which is how I stumbled upon this great episode of the Lullabot podcast recently — embarrassingly one from over a year ago: “Talking Performance with Pantheon’s David Strauss and Josh Koenig”, with David and Josh from Pantheon and Nate Lampton from Lullabot.
(Also, I’ve been meaning to blog more, including simple responses to other blog posts!)Interesting remarks about BigPipe
Around 49:00, they start talking about BigPipe. David made these observations around 50:22:
I have some mixed views on exactly whether that’s the perfect approach going forward, in the sense that it relies on PHP pumping cached data through its own system which basically requires handling a whole bunch of strings to send them out, as well as that it seems to be optimized around this sort of HTTP 1.1 behavior. Which, to compare against HTTP 2, there’s not really any cost to additional cost to additional connections in HTTP 2. So I think it still remains to be seen how much benefit it provides in the real world with the ongoing evolution of some of these technologies.
David is right; BigPipe is written for a HTTP 1.1 world, because BigPipe is intended to benefit as many end users as possible.
And around 52:00, Josh then made these observations:
It’s really great that BigPipe is in Drupal core because it’s the kind of thing that if you’re building your application from scratch that you might have to do a six month refactor to even make possible. And the cache layer that supports it, can support lots other interesting things that we’ll be able to develop in the future on top of Drupal 8. […] I would also say that I think the number of cases where BigPipe or ESI are actually called for is very very small. I always whenever we talk about these really hot awesome bleeding-edge cache technologies, I kinda want to go back to what Nate said: start with your Page Cache, figure out when and how to use that, and figure out how to do all the fundamentals of performance before even entertaining doing any of these cutting-edge technologies, because they’re much trickier to implement, much more complex and people sometimes go after those things first and get in over their head, and miss out on a lot of the really big wins that are easier to get and will honestly matter a lot more to end users. “Stop thinking about ESI, turn on your block cache.”
Josh is right too, BigPipe is not a silver bullet for all performance problems; definitely ensure your images and JS are optimized first. But equating BigPipe with ESI is a bit much; ESI is indeed extremely tricky to set up. And … Drupal 8 has always cached blocks by default. :)
Finally, around 53:30 David cites another reason to stress why more sites are not handling authenticated traffic:
[…] things like commenting often move to tools like Disqus and whether you want to use Facebook or the Google+ ones or any one of those kind of options; none of those require dynamic interaction with Drupal.
Also true, but we’re now seeing the inverse movement, with the increased skepticism of trusting social media giants, not to mention the privacy (GDPR) implications. Which means sites that have great performance for dynamic/personalized/uncacheable responses are becoming more important again.BigPipe’s goal
David and Josh were being constructively critical; I would expect nothing less! :)
But in their description and subsequent questioning of BigPipe, I think they forget its two crucial strengths:
BigPipe works on any server, and is therefore available to everybody, and it works for many things out of the box, including f.e. every uncacheable Drupal block!
Bringing this optimization that sits at the intersection of front-end & back-end performance to the masses rather than having it only be available for web giants like Facebook and LinkedIn is a big step forward in making the entire web fast.
Using BigPipe does not require writing a single line of custom code; the module effectively progressively enhances Drupal’s HTML rendering — and turned on by default since Drupal 8.5!Conclusion
Like Josh and David say: don’t forget about performance fundamentals! BigPipe is no silver bullet. If you serve 100% anon traffic, BigPipe won’t make a difference. But for sites with auth traffic, personalized and uncacheable blocks on your Drupal site are streamed automatically by BigPipe, no code changes necessary:
(That’s with 2 slow blocks that take 3 s to render. Only one is cacheable. Hence the page load takes ~6 s with cold caches, ~3 s with warm caches.)
During this year and at several events SANDCamp, DrupalCamp LA, DrupalCon Nashville, and DrupalCamp Colorado I had a chance to talk and show how at WeKnow we approached the development of API driven applications. For all of you that use Drupal, this is something like decoupled or headless Drupal but without the Drupal part.
This article outlines weKnow’s approach and provides some insight into how we develop some web applications.
Yes, this may sound strange but whenever we need to build an application that is not content-centric, we use Symfony instead of Drupal; what are those cases? Whenever we do not require the out-of-the-box functionality that Drupal offers as content management, content revision workflow, field widgets/formatters, views, and managing data structure from the UI (content types).jmolivas Tue, 11/06/2018 - 17:17
Pattern Lab (PL), a commonly known pattern library, is an open-source project to generate a design system for your site. In the last two years it has gotten a lot of attention in the Drupal community. It's a great way to implement a design system into your front-end workflow.
The following post describes how our client (the City and County of San Francisco) began to implement a pattern library that will eventually be expanded upon and re-used for other agency websites across the SF.gov ecosystem.USWDS.
Using the U.S. Web Design System (USWDS), until their own pattern library was ready for prime time, was a client requirement.
This is part 2 in this series that explores how to use paragraph bundles to store configuration for dynamic content. The example I built in part 1 was a "read next" section, which could then be added as a component within the flow of the page. The strategy makes sense for component-based sites and landing pages, but probably less so for blogs or content heavy sites, since what we really want to for each article to include the read next section at the end of the page. For that, a view that displays as a block would perfectly suffice. In practice, however, it can be really useful to have a single custom block type, which I often call a "component block", that has an entity reference revisions field that we can leverage to create reusable components.
Here is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll investigate Admin Denied, a module which prevents you from accessing the super user's account.
Drupal training is happening around the world, and we're getting ready for 2019 now. The common purpose of DrupalGTD is to introduce newcomers to Drupal and our community in a locally organized event, either in-person or online.
Drupal training event in 2018 with FFW in Albany, NY
Mark your calendars for the following dates and if you would like to host a training event, there's a place to do it now for maximum lead time.
We'll be celebrating GTD all month during February, April, June, September, and December, but we also have target dates.2019 Drupal GTD dates
- February 7-9
- April 18-20
- June 27-29
- September 12-14
- December 5-7
In 2019, the dates are expanding to Thursday-Saturday, rather than only Friday-Saturday. By including Thursdays, we're encouraging hosts to experiment by offering events on different days to see what works better in your locale.Have questions about getting started?
VisualN provides an interface to check "how it works" for any available drawer on the site. To see the list of drawers go to VisualN -> Available Drawers Preview menu item.Available drawers list
Though VisualN allows you to use any resource type as data source (e.g. csv, xls files or views), for demo purposes it is enough to have some dummy data. Such data can be obtained from data generators. Data generators are simple plugins returning an array of data (which is just another resource type) of a given structure that can be used by certain drawers (e.g. Leaflet uses lat, lon and title data fields).
Data generators may also provide info about drawer or drawers that can use generated data. Those drawers and data generators are considered compatible. Drawers highlighted green have compatible data generators.
There are a couple of use cases when you may want to use the Available drawers preview UI:
- check drawer in action, examine configuration form settings
- set configuration values to create a visualization style
- use the preview UI to help drawer development and to test changes
- check data format used by drawers (e.g. using table drawer)
This week we talked with David Valdez. Read about what impact Drupal made on him, what contribution is he the proudest of and what Drutopia is.READ MORE
WPTavern: Authors of Popular WordPress.org Themes Rolling Out Gutenberg Compatibility Updates Ahead of 5.0 Release
Astra, a free theme that has steadily been growing in popularity, is now fully compatible with Gutenberg. The theme was first released in May 2017 and has more than 100,000 active installations. It was downloaded approximately 2,000 – 4,500 times per day over the past month and currently maintains a 5-star average rating on WordPress.org after 844 reviews.
Astra’s creators advertise the theme as fast, lightweight (less than 50KB on frontend), and compatible with many page builders. These features have been key to its rapid growth. Last week they announced full Gutenberg compatibility, which means sites built with Astra will be able to take advantage of all the new features in the editor when 5.0 is released.
Astra’s Gutenberg compatibility update includes front-end styles displayed in the editor and support for the full-width alignment option. The width of the content in the editor matches that of the frontend, and the same is true for the typography, colors, and background.
The theme also ensures that the default Gutenberg blocks, i.e. quotes and galleries, will inherit Astra customizer styles to match the rest of the site.
Astra’s creators support the theme by offering commercial packages that include additional features and plugins, starter sites, add-ons for page builders, and support. They plan to offer additional Gutenberg features in commercial add-ons. Astra’s Ultimate Addons product will introduce custom blocks, such as Section, Heading, Info Box, Post Grid, Google Map, Table, Social Share, Menu, Buttons, along with pre-made starter templates.
After two months of weekend work, Anders Norén reported that all 18 of his free themes on WordPress.org have been updated to be compatible with Gutenberg. Norén’s popular minimalist style themes have a cumulative rating of 4.97 out of 5 stars and have been downloaded more than 2.2 million times. They are active on an estimated 100,000 WordPress installations.
“There are no custom blocks or other fancy stuff to be found in the updates, but if you’re running one of my themes, you should be able to update to WordPress 5.0 and start using Gutenberg without any hitches, in the editor or on the front-end,” Norén said. “If you plan to keep using the classic editor, things should look mostly the same after you install the update.”
The Gutenberg compatibility update for Norén’s themes includes editor styles, with layout, typography and colors matching the theme, styles for core blocks and new alignment options, and custom font sizes and color palette in the editor. Norén also took the opportunity to do an overall code cleanup and add improvements for older versions of PHP, accessibility and localization improvements, and bug fixes, amounting to 17,525 lines of code added or modified.
“The past couple of weekends have been grueling, but knowing that my themes will be ready for WordPress 5.0 – whether it hits the November 20th release date or not – was worth it,” Norén said.
Themeisle has updated Hestia with Gutenberg compatibility in the theme’s 2.0 release. The popular Material Design WordPress theme is the company’s flagship product and is installed on more than 100,000 WordPress sites. The company is planning to release a brand new theme that will be fully Gutenberg compatible. They have not yet announced if Zerif Lite (100,000+ installs) will be updated for the new editor.
Six weeks ago, searching the WordPress.org Theme Directory for “Gutenberg” produced 26 results where compatibility is mentioned in the theme descriptions. That number has jumped to 53. Support for the new editor seems to have happened much faster in the commercial theme space where searching for Gutenberg on Envato already turns up hundreds of results before the editor has even landed in core. Authors of free themes on WordPress.org don’t always have the same motivation. Those who support popular themes are more likely to have their themes compatible by the time WordPress 5.0 arrives, especially if the free theme is connected to a paid product.