Preserved HTML Editor Markup
This plugin preserves the user-generated HTML markup in the TinyMCE editor. Unlike other plugins this one allows developers to work in the HTML tab AND end-users to work in the WYSIWYG Visual tab at the same time! No longer will your HTML markup be completely munged into an unrecognizable form when you switch between those tabs. And you don’t have to hang your users/editors out to dry when you hand off the project with a disabled Visual tab. IMPORTANT: Please read the installation instructions carefully. If you have existing content it will not render properly after activating this plugin until you use the Fix It Tools. (One user didn’t read or follow these steps and panicked thinking I ruined their website.) It also supports HTML5 Block Anchor tags in addition to other HTML5 elements, something that is currently not supported in WordPress via any existing plugins. Version 1.5 will probably be the last version I release for a while since my daughter will be born soon. I’ve added support for full JavaScript code blocks in the HTML tab. They are compatible and preserved when switching to Visual mode. This rounds out the support for almost complete html preservation, with full use of the WYSIWYG editor. And you don’t need to wrap comment codes around it per the recommendations located here: https://codex.wordpress.org/Using_Javascript but you can leave them in if you want. Version 1.4 was just a minor patch release. User @denl noticed a problem with the plugin CataBlog which implements its own administrative management features by disabling the ‘show_ui’ flag for its custom post type. I was ignoring any custom post type that didn’t have a GUI, but it was an unecessary filter that probably limited other plugins. This fix allows any post type that supports the TinyMCE editor to be “fixed” using the tools under Admin > Settings > Writing. Since version 1.3 you can now use inline CSS and JavaScript in the HTML editor and everything should be preserved. To be clear, this applies to tags only, like onclick events and style definitions – not script blocks themselves. To enable this feature you must disable the wptexturize and convert_chars filters by adding the following code to your theme’s functions.php: remove_filter("the_content", "wptexturize"); remove_filter("the_content", "convert_chars"); This new feature is pretty experimental at the moment. I tried to make it compatible with wptexturize but that proved close to impossible without duplicating a lot of core code in my plugin. It’s also not compatible with TinyMCE Advanced when the “stop removing p and br tags” setting is enabled. I’ve tested it on a variety of code samples and I’m pleased with the results but if you find any content that isn’t preserved just open a support ticket and I should be able to fix it. Since version 1.2, you now have a little more control over how content is created. And most of the previous caveats to using this plugin are now resolved. You can now choose whether to use BR tags OR P tags for newlines. Even better you can use both, where one return key press injects a BR tag, and two return key presses will wrap a Paragraph tag. This is great for being able to wrap headers at specific break points all while enjoying the semantic perks of paragraphs. In addition to choosing what type of tags to use, you can also change the behavior depending on the type of post, including custom post types. So Pages can default to BR tags, and Blog Posts can default to Paragraph tags. If you have existing content that was created before activating this plugin, you can now use the Fixit feature to convert your existing content in a way that makes it render the same as before. Only use this feature (located under Admin > Settings > Writing: Fixing Existing Content) if you are installing this plugin for the first time, otherwise it will remove all of the formatted white space in your posts. Multi-line HTML comments are now supported (Thanks to @cwlee_klagroup for suggesting the working fix!) The Format drop down in the TinyMCE editor had a bug which is now fixed. It will now select “Format” if you place the cursor on a section of bare text. Currently the editor just leaves the previously selected format option in place. It’s minor but it’s good to know when you have bare text in your content. There was a fairly problematic bug in the old version where in some browsers you couldn’t change the formatting of a single line in the Visual editor if you started from scratch. Choosing a different Format option would change the entire document, with the only work around being to edit the document in HTML mode. That was bad, and somehow went unnoticed for far too long. Anyway, that is fixed now. The caveats that still remains are: With script blocks added to your HTML markup, the right arrow key does not pass over them in the Visual Tab. You can down arrow over them however so this will likely never be addressed. If you use the Paragraph tag setting for newlines there is a minor bug where it will only wrap your content in Paragraph tags if you specify Paragraph in the Format drop down or if you enter more than one paragraph of text. So if you just type one sentence and click save it will not wrap the content in Paragraph tags. I tried to fix this but ran out of my allotted time working on other core issues. Should be fixed in the next release. For performance reasons, it will only preserve spaces if 4 spaces are used consecutively – i.e. an expanded tab in developer terms. It will not preserve intra-tag white space like . If you do add 4 or more spaces inside of an element tag it will corrupt the markup and mangle the output. But as this is intended for developer edits, this should be an extreme rarity given the habit is virtually non-existent in development communities. PRE tags are not affected and behave as you would expect, however due to how browsers parse tags, the first newline in the content of a PRE tag will be wiped out unless it is padded with either another new line or multiple spaces. CODE tags are not preserving white space at all, and when wrapped with PRE tags white space is still removed. I’m working to resolve this problem. Arbitrary section
ZoloBlocks – Advanced Gutenberg Blocks, Website Builder & Page Design Toolkit
ZoloBlocks is a collection of blocks, patterns, and page templates for the WordPress block editor. It helps you design complete pages using the native editor without a third-party page builder. Live Demo | Pro Version | Documentation What ZoloBlocks Provides A library of advanced blocks that extend the default WordPress block editor. Pre-designed patterns and page templates you can insert into pages. Full Site Editing compatibility with block themes. Dynamic content options for site, post, or user data. Query loop options for posts, products, or custom post types. Animation and visual effect options for supported blocks. Optional AI text generation to help draft headings and paragraphs (third-party service, see “External services” below). Pattern import and export for reuse across sites. Key Features Layout building with pre-built sections and templates. Responsive containers for mobile, tablet, and desktop. Mega menu for multi-level navigation. Dynamic content and query loop for posts or custom post types. Entrance and scroll-based animations on supported blocks. Optional AI text generation inside the editor (third-party service). Pattern import / export for reuse across pages or sites. Available Blocks ZoloBlocks ships 60+ free and pro blocks across categories such as Image, Slider & Carousel, Post, Review, Form, Popup, Utility, Creative, Loop & Animation, Grid & List, Single Page Elements, and Advanced. A full list with live demos is available at https://zoloblocks.com/demo/. Who Is It For Website designers, freelancers, agencies, bloggers, content creators, small business owners, portfolio builders, and digital marketers who want to design WordPress pages directly in the block editor. Support The team behind ZoloBlocks ships regular updates. For help, contact support. Visit BdThemes for more plugins and documentation. Source code The compiled JavaScript and CSS files in the build/ and assets/ directories are generated from the source code in the src/ directory. Public source repository: https://github.com/bdthemes/zoloblocks Build instructions: Clone the repository. Run npm install to install dependencies. Run npm run build to generate the production assets in build/. Run composer install to install PHP dependencies (used for development tooling only). External services This plugin connects to several third-party services. Each service is only contacted when the related feature is used or configured. No personal data is sent unless the corresponding feature is enabled or the user interacts with it. 1. Google reCAPTCHA Used by the Form block when the site administrator enables reCAPTCHA protection and provides site / secret keys in ZoloBlocks settings. – What is sent: the reCAPTCHA token generated in the visitor’s browser, the visitor’s IP address, and the configured secret key, sent to https://www.google.com/recaptcha/api/siteverify on form submission. The Google reCAPTCHA JavaScript (https://www.google.com/recaptcha/api.js) is loaded on pages containing a form when reCAPTCHA is enabled. – When: only when reCAPTCHA is enabled and a form is submitted. – Provider: Google LLC. Terms: https://policies.google.com/terms Privacy: https://policies.google.com/privacy 2. Google Maps Used by the Google Map block when added to a page. – What is sent: the configured Google Maps API key and a request to load the Google Maps JavaScript API from https://maps.googleapis.com/maps/api/js. The browser of any visitor viewing a page containing a Google Map block will load map tiles from Google. – When: only when a Google Map block is present on a page. – Provider: Google LLC. Terms: https://cloud.google.com/maps-platform/terms Privacy: https://policies.google.com/privacy 3. Google Fonts list (WordPress.org mirror) Optional. Used by the typography controls only when a site administrator enables Settings → Editor Options → Load Google Fonts catalog (WordPress.org mirror) in the ZoloBlocks dashboard. – What is sent: a simple HTTP GET request (no personal data) to https://s.w.org/images/fonts/wp-7.0/collections/google-fonts-with-preview.json to retrieve the list of Google Fonts. – When: only after the option is enabled, and only when the block editor needs to refresh the font list. – Provider: WordPress.org. Terms and privacy: https://wordpress.org/about/privacy/ 4. Zolo AI (AI text generation by Sigmative) Used by the optional AI text generation feature inside the block editor. – What is sent: the prompt text entered by the site administrator in the editor, and the API key configured in ZoloBlocks settings, sent to https://ai.sigmative.com/api/prompt/v1/generation/chat/completions. – When: only when an administrator clicks the AI generation action in the editor. – Provider: Sigmative. Privacy: https://sigmative.com/privacy-policy 5. Mailchimp (optional Form integration) Used only when a site administrator configures a Form block to send subscriber data to Mailchimp. – What is sent: the visitor’s email address, optional first name, the configured Mailchimp API key and list ID, sent to https:// .api.mailchimp.com/3.0/lists/{list_id}/members (where is the data center prefix derived from the API key). – When: only when a visitor submits a form whose Mailchimp integration has been configured by the administrator. – Provider: Intuit Mailchimp. Terms: https://mailchimp.com/legal/terms/ Privacy: https://www.intuit.com/privacy/statement/ 6. Custom Webhooks (optional Form integration) Used only when a site administrator pastes a custom webhook URL into the Form block settings. – What is sent: the visitor’s email address and optional first name, sent as a JSON POST request to the URL configured by the administrator. – When: only when a visitor submits a form whose webhook URL has been configured by the administrator. – Provider: the third-party service chosen by the administrator. The administrator is responsible for ensuring the destination has an appropriate privacy policy.