The Drop Times: Brian Perry Discusses Latest Updates and Future Vision for the API Client Initiative

Dive into an in-depth conversation with Brian Perry as he unveils the latest updates and future trajectory of the API Client initiative. Discover how the Drupal API Client is revolutionizing the interaction with Drupal APIs, and explore the exciting opportunities it presents for web development enthusiasts. Join us as we unravel the journey of innovation and collaboration within the Drupal ecosystem.

Théodore 'nod_' Biadala: Sponsored Drupal Contribution

Back in March I started to look at sponsors for the time I’m spending working on the Drupal core issue queue. It’s been a few months and I wanted to go back on all the sponsored commits I made as a Frontend Framework Manager, to show how the sponsorships helped Drupal for the past few months.

The sponsorship offer is simple: you send me a fixed monthly fee of 2500€, and I share the issue credit of every Drupal core commit that I make. I’m very thankful to Palantir.net and OPTASY who are sponsoring me. Thanks to them I was able to increase the amount of commits I can make to Drupal core. In the last 3 months I committed 61 issues (worth 610 weighted issue credits) and the more sponsors I have, the more time I can spend reviewing and committing issues.

  1. Differentiate visually dragging with and without hierarchy A nice improvement for editors working a lot with lists and trees
  2. Sticky table header is not sticky if --drupal-displace-offset-top is not defined
  3. [jQuery 4] ajax.js and jquery.form.js use deprecated function $.parseJSON() Preparing for the next release of jQuery 4 with some cleanup.
  4. cspell check is broken in commit-code-check.sh Sometimes we break the CI and it needs to be fixed 🤷
  5. CKEditor admin toolbar config buttons using ::before to add content: have invalid screen reader text It takes dedication to land those accessibility fixes, kudos to our accessibility contributors.
  6. Linking in CKEditor 5: URLs with top-level domain but without protocol should get a protocol added automatically
  7. #states disable property has stopped working for submit button and other elements Sometimes when we clean-up code, we clean too much and break some other parts of the code
  8. Setting width for sticky-header is broken
  9. Negotiate max width/height of oEmbed assets more intelligently
  10. States API doesn't work with multiple select fields This was a a 13 years old issue! It _always_ feels good to close an issue that old.
  11. Add deprecation/bc support for library-overrides when files are moved Making sure backwards compatibility is working and useful
  12. Remove default event from collpased nav-tabs button
  13. [DrupalHtmlEngine] HTML-reserved characters (>, <, &) in <script> and <style> tag are converted to HTML entities It happens that we fix things for uses cases that stretch the reasonable (like having whole script tags in a WYSIWYG field)
  14. Olivero: Show content preview checkbox is not center aligned with the layout builder buttons. Even a minor issue of a misaligned text by a few pixels is worth fixing
  15. Drupal.theme.progressBar() does not escape output correctly
  16. filter_autop should ignore twig.config debug html comments Making sure Developer experience doesn't impact regular users
  17. tablePositionSticky should not be called on a non-array variable
  18. CKEditor 5 table cell vertical align "middle" doesn't work
  19. Move system/base component CSS to respective libraries where they exist A surprising performance improvement. There are still some low hanging fruits to improve the default frontend performance of Drupal
  20. Remove country setting from the installer When you don't need a piece of data, just don't collect it
  21. Media Library widget display doesn't return to first page on applying filters
  22. Deprecate and remove the AJAX replace method That was a leftover D7 era deprecation
  23. Claro should use libraries-extend for views_ui.css Even in core it happens that we don't use the right way to do something
  24. Removal :tabbable usage in dialog.js Some more jQuery 4 preparation
  25. Close icon is ovrlapping the title text in modal in claro Yes, typos can make it in the commit log
  26. Convert Olivero's teaser into a single directory component Slowly but surely we're adding Single directory components to Drupal core
  27. Refactor (if feasible) uses of the jQuery animate function to use Vanilla/native More CSS awesomeness making JavaScript code disapear
  28. [11.x] Update to jQuery 4.0.x beta Drupal staying on the bleading edge of frontend developement :)
  29. Refactor some uses of the jQuery parents function to use vanillaJS Did a small post earlier about this, CSS is really very good
  30. [regression] Uncaught TypeError: Cannot read properties of null (reading 'style') (toolbar.js)
  31. JSDoc for ajax command "changed" is incorrect There was a bunch of documentation fixes around this time
  32. menu_heading_id variable is not set in menu-region--footer.html.twig
  33. Add @file documentation to navigation.html.twig layout template
  34. Add @file documentation to menu-region--footer.html.twig template
  35. Views UI action buttons create janky layout shift on page load Polishing the loading of pages with heavy JS usage is important to show we care about UX
  36. Remove bottom radius on hover state of expanded sub menu item
  37. Setting empty URL when making embedded media a link in CKEditor5 causes JS errors
  38. Update color of submenu title text
  39. Collapsed nav-tabs status not exposed to screen reader There is a good number of accessibility fixes after this one, always nice to commit
  40. Incorrect padding on child menu items
  41. Claro: Form labels that are disabled have too low color contrast
  42. Claro should not hardcode decimal list style type for <ol>
  43. Some of string comparisons should use String.prototype.startsWith() or String.prototype.endsWith() Removing regular expressions as much as we can is a noble goal
  44. Location of "Skip to Main" link below admin toolbar in Claro is problematic for screen magnifier users
  45. Focus states on mobile second level navigation items can get cut off in Olivero
  46. Regression: Shortcuts menu flickers when the page is loaded Those toolbar flickering issues are tricky. Thankfully the new navigation module code is simpler than the existing Toolbar code, so it's much much easier to deal with
  47. escapeAdmin.js functionality should be removed(it not used anymore) Removed the feature that removed the overlay… for now, escapeAdmin will be back one way or another)
  48. Navigation module offsets the Olivero skip link element
  49. Umami page.tpl.php breaks block placeholders Sometime themes can break really nice Drupal features (like bigpipe)
  50. Claro CSS for dropbutton items adds large gap of white space
  51. Replace dialogContentResize jQuery event with CustomEvent Those events issues are really exciting, we're moving away slowly from jQuery for event management
  52. Umami views should use responsive grid Another case of core not using the awesome features we provide, not anymore :)
  53. Claro highlighted row not communicated to keyboard users
  54. Fix overflow visibility for wrapper content in navigation CSS
  55. Claro details component does not have the right class
  56. Make drupal.tableheader only use CSS for sticky table headers I will always welcome CSS-removing-JS patches
  57. Mismatch between implementation and description for Drupal.Message.prototype.remove().
  58. "Skip to main content" link skips over content that is essential to the page, banner role should be for global content
  59. Add pdureau as a co-maintainer for the Theme API with a focus on SDC Adding new maintainers is too rare. In this case the community is better for having him around
  60. Choose an icon for the Announcements link
  61. Remove deprecated moved_files entries in core

Many of these issues are maintenance focused, it’s not shiny, it’s not exciting, and it needs to be done. Sponsoring big initiatives like Starshot is exciting, let’s not forget the unexciting day to day that keeps things running. If you’re interested in supporting my work on Drupal core and keep the frontend fixes coming, consider sponsoring me.

simonbaese - blog: Drupal: Asynchronously send emails with Symfony Mailer Queue

Recently, we built a queue worker to send emails asynchronously, meeting a client's unique requirements to ensure email delivery. There is a lot of movement in the Drupal contribution space to innovate on the mailer. Traditionally, Drupal uses a plain PHP mailer to deliver transactional emails such as sign-up confirmation or password reset instructions. Nowadays, many websites rely on the contribution module Drupal Symfony Mailer to use the framework mailer by Symfony and leverage the flexible setup of mailer policies, transport, and HTML theming with templates. What needs to be added to the mix are easy-to-implement ways to send emails asynchronously. Today, we announce the first stable release of the new contribution module Symfony Mailer Queue.

LN Webworks: How to Improve Drupal SEO with the Help of a Global Module

Image removed.

The person with the most trouble with duplicate material is the content writer. The hardest task is having to start over and make the necessary corrections after spending hours writing something and discovering that your content is plagiarized. 

This not only gives you a lot of work to do, but it may also interfere with the SEO of your website. Further, we’ll discuss the main problems brought on by duplicate content and discuss how the Drupal SEO module might assist in resolving this issue. 

Drupal Association blog: Introducing the Local Associations Initiative: Empowering Drupal Communities Worldwide

We are thrilled to announce the launch of our new initiative led by Programs Manager, Joi Garrett. This program is designed to support the success of Drupal Local Associations by engaging directly with community leaders who work to promote the Drupal project in their global regions.

Connecting Communities

The heart of the Local Associations Initiative lies in fostering meaningful connections. We recognize the efforts of local leaders and the unique challenges they face. By hosting a series of virtual meetings, we aim to create a platform for leaders to share their experiences, successes and challenges. These sessions will not only provide valuable insight to the state of various local associations but help to strengthen our global community. 

Identifying and Addressing Common Needs

Understanding the diverse needs of our local associations is crucial. Through open dialogue in our virtual meetings, we will identify common needs and prioritize them. We hope by facilitating a collaborative environment the Drupal Association can support efforts for the most pressing issues faced by community leaders. The Drupal Association is committed to finding solutions that drive success. 

Join Us on This Journey

We invite local association leaders to participate in this initiative and attend the virtual meetings. Your insights and contributions are invaluable as we work together to strengthen our global Drupal Community. Stay tuned for announcements about the upcoming virtual meetings. Through this initiative, we aim to foster a collaborative environment where our global community feels more connected and supported. Once we have concluded the meetings, we will discuss the findings and future plans during DrupalCon Barcelona 2024. 

We have been collecting contact information of Local Association leaders for the past few months, if you would like to be included please fill out the following form.

Thank you to our local leaders for being an integral part of our community. We look forward to collaborating with you to make this initiative a success!

Continent Expected Start Europe April (working with Network of European Drupal Associations)  Asia June Australia July North America July South America August Africa August

Drupal Core News: Announcing Drupal Starshot sessions

A few weeks ago at DrupalCon Portland, I announced Drupal Starshot, a project to create the new default download of Drupal. Built on Drupal Core, Drupal Starshot will include popular features from the contributed project ecosystem. It focuses on delivering a great user experience right out of the box. Drupal Starshot builds on recent initiatives like Recipes, Project Browser, and Automatic Updates to elevate Drupal to new heights.

The response has been incredible! Hundreds of people have pledged their support on the Drupal Starshot page, and many more have asked how to get involved. Over the past few weeks, we have been planning and preparing, so I'm excited to share some next steps!

We're launching a series of sessions to get everyone up to speed and involved. These will be held as interactive Zoom calls, and the recordings will be shared publicly for everyone to watch at their convenience.

The main goal of these Zoom sessions is to help you get involved in each area. We'll cover details not included in my keynote, update you on our progress, and give you practical advice on where and how you can contribute.

We've scheduled six sessions, and we invite everyone to attend. The first one will be on this Friday on participation, funding, and governance! You can find the latest schedule online at https://www.drupal.org/starshot#sessions and the core calendar in the sidebar of the Drupal core news page.

We look forward to seeing you there and working together to make Drupal Starshot a success!
 

Specbee: How CKEditor 5 is transforming content authoring experience in Drupal 10

When the editing tools are intuitive, content creators can channel their energy into what truly counts-producing great content. User-friendly content management systems help them save time, reduce frustration, and streamline their editing process. Drupal strives to enhance user experience for both technical and non-technical users with every new update. With the latest version, Drupal 10, content authors can now focus on enhancing their productivity and creating better content for their audience. A standout feature in this release is CKEditor 5, now integrated into the core. This means it's available right out of the box!   In this blog, we're diving into the content editing powers of CKEditor 5 in Drupal 10. So buckle up, because we're about to take your content creation game to the next level. Redefining Content Editing Experience with Drupal 10’s CKEditor 5 CKEditor 5 has brought in many new additional features and abilities compared to CKEditor 4 which not only offers a streamlined content editing process but also gives you the power to make your content more engaging and appealing. Adding links, media, creating tables, etc. is now quicker and easier with CKEditor 5 in Drupal 10. Here's an overview of what the upgraded CKEditor module brings to the table: Revamped WYSIWYG Editor - A contemporary and user-centric interface, Drupal 10’s latest WYSIWYG editor prioritizes intuitiveness, featuring enhanced toolbar options, a more adaptable layout, and a streamlined interface. Streamlined Inline Editing - Edit content directly from the front end of your website without having to navigate to the back end. Collaborative Work Features (Premium Feature) - You can collaborate among multiple users on the same content now. With the collaboration features, you can track changes, comment on the content, check content revision history, and more! Now, let’s understand what are the content editing benefits of the additional features in CKEditor 5 in detail. Modern User Interface Compared to the somewhat outdated interface of Drupal 7, Drupal 10 offers a sleek and intuitive user interface where you can streamline content editing workflows. While new users may find using Drupal 7 overwhelming, Drupal 10 offers a more user-friendly UI, making content creation and editing more accessible and efficient. You now get a refined user experience with simplified improvements to interface colors, icons, toolbar items mechanics, and the theme. You can select among three UI options: Classic - It allows you to edit with a fixed toolbar without any interference in content editing. Balloon - This option offers a floating toolbar to allow you to edit content in any location. Inline - The inline display option displays the toolbar when you focus the editor. Media Widgets and Dedicated Toolbar With CKEditor 5 in Drupal 10, you get to experience enhanced media management with new media widgets and a dedicated toolbar. These tools provide a streamlined interface for adding and managing media content, making it easier to embed images, videos, and other media directly within content. New Styles Dropdown The new styles dropdown feature in CKEditor 5 allows content editors to apply predefined styles to text and elements seamlessly. This dropdown is integrated into the text editor toolbar, offering a user-friendly way to ensure consistent styling across content without requiring HTML or CSS knowledge. Easy Tables with Quick Dropdown CKeditor 5 in D10 simplifies table creation and management with an easy tables feature. This includes a quick dropdown menu within the text editor, enabling users to insert, customize, and format tables efficiently. This enhancement helps you maintain data organization and presentation quality. Balloon Panels Balloon panels are a new addition that provides contextual tooltips and editing options directly within the text editor. These panels appear as floating, interactive elements, making it easier to access relevant tools and information without navigating away from the content. Plus, it’s much more intuitive and mobile-friendly. Insert Links and Special Characters When you select the “link” button on the toolbar, a balloon panel for inserting links will appear, resembling the one used for adding alternative text. This panel features a clean and contemporary design, with a green checkmark to confirm the link entered in the “Link URL” field and a red cross to cancel the action. The updated special characters dropdown allows content editors to insert various symbols, including special letters, mathematical symbols, currency signs, copyright symbols, trademark symbols, and more. The Material Icons Module Google's Material Icons collection offers a range of simple, contemporary icons. The Material Icons module allows you to choose from style families like Baseline, Outlined, Two-Tone, Round, and Sharp. Baseline style is activated by default, but you can enable other styles in the module settings at Configuration > Content Authoring > Material Icons. To include the Material Icons button in the CKEditor 5 toolbar, navigate to Configuration > Content authoring > Text formats and editors, select your preferred format, and drag the Material Icons button from “Available” to “Active.” Once added to the toolbar, you can search for icons by name, choose the style family from the dropdown, and apply optional classes. The autocomplete feature and a link to the full icon list simplify the process of finding the desired icons. The Editor Advanced Link Module The Enhanced Link Editor module enriches the CKEditor 5 link dialog box with additional options for incorporating link attributes. Version 2.1.1 is compatible with CKEditor 5. Following installation, navigate to Configuration > Content authoring > Text formats and editors. Choose the input format and locate the CKEditor 5 plugins list. Activate the "Enhanced links" plugin and designate attributes such as: ARIA label Title CSS classes ID Open in a new window (target attribute) Link relationship  Activate these attributes by ticking the boxes and then, save the configuration. Subsequently, these attributes become accessible during the creation or modification of links within the content editor. Better Lists Feature The lists feature improves the creation and management of ordered and unordered lists. Enhanced list formatting options allow for more control over list appearance, making it easier to create structured and visually appealing content. Autoformatting & Transformations Autoformatting allows content editing without needing to use toolbar buttons. You can swiftly create lists or format text by using simple typing shortcuts. Transformations enable the automatic creation of symbols using shortcut text, like generating a copyright symbol by typing (C). You can also set up auto-correct rules using this feature. TypeScript The new CKEditor will soon support official TypeScript for its entire API. This setup will offer content admins several benefits, such as producing clean, high-quality, maintainable code and providing code autocompletion and type suggestions for CKEditor APIs. Final Thoughts Drupal 10 introduced a range of improvements, like an upgraded content editing experience with CKEditor 5, a more modular architecture, better performance, and scalability. For content creators, Drupal 10’s CKEditor 5 is a game-changer. You can whip up killer user experiences quicker and slicker than ever before. Thinking about migrating to Drupal 10? That's not just a good idea-it's a strategic move! Your audience will thank you for it with faster load times, smoother navigation, and a website packed with more features than a Texas barbecue. Did you know we’re Certified Drupal Migration Partners? Reach out to us today to find out how we can help you.

Talking Drupal: Talking Drupal #452 - Starshot & Experience Builder

Today we are talking about web design and development, from a group of people with one thing in common… We love Drupal. This is episode #452 Starshot & Experience Builder.

For show notes visit: www.talkingDrupal.com/452

Topics
  • What is Starshot
  • What is Experience builder
  • How will Starshot build on Drupal Core
  • Will Experience builder be added to Core
  • Listener thejimbirch:
    • When will people hear about their pledge
  • Listener brook_heaton:
    • Will experience builder be compatible with layout builder
  • Will Experience builder allow people to style content
  • Listener Matthieu Scarset
    • Who is Starshot trying to compete with
  • Listener Andy Blum
    • Does the DA or other major hosting companies plan to set up cheap, easy hosted Drupal
  • Listener Ryan Szarma
    • Who does this initiative serve in the business community
  • How can people get involved
Resources Guests

Lauri Eskola - lauriii

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Matthew Grasmick - grasmash

MOTW Correspondent

Martin Anderson-Clutz - mandclu.com mandclu

  • Brief description:
    • Have you ever wanted to have your modules create content when they’re installed? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in Oct 2015 by prolific contributor Lee Rowlands (larowlan) though the most recent releases are by Sascha Grossenbacher (Berdir), also a maintainer of many popular Drupal modules
    • Versions available: 2.0.0-alpha2, which works with Drupal 9 and 10
  • Maintainership
    • Security coverage: opted in, but needs a stable release
    • Test coverage
    • Documentation
    • Number of open issues: 105 open issues, 29 of which are bugs against the current branch
  • Usage stats:
    • Almost 20,000 sites
  • Module features and usage
    • Provides a way for modules to include default content, in the same way that many modules already include default configuration
    • The module exports content as YAML files, and your module can specify the content that should be exported by listing the UUIDs in the info.yml file
    • It also provides a number of drush commands, to export a single entity, to export an entity and all of its dependencies, or to bulk export all of the content referenced in a module’s .info.yml file
    • There is also a companion project to export default content using an action within a view, which also makes me think it could probably be automated with something like ECA if you needed that
    • Exported content should be kept in a content directory in your module, where it will imported during install on any site that has the default_content module installed
    • I thought this would be a good module to cover today because Drupal core’s recipe system also includes support for default content, so when you install a recipe it will similarly import any YAML-encoded content in the recipe. In fact, I used this module for the first time exporting taxonomy terms I wanted a recipe to create as default values for a taxonomy it creates. Since Recipes will be a big part of Starshot, I expect default_content to be getting a lot of use in the coming months