Skip to content

Commit cf7ee9c

Browse files
authored
Merge pull request #29 from BeAPI/release/2.1.0
Release 2.1.0
2 parents 1bcb917 + 5ebdaf2 commit cf7ee9c

11 files changed

Lines changed: 232 additions & 11 deletions

File tree

.plugin-data

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"version": "2.0.3",
2+
"version": "2.1.0",
33
"slug": "blockparty-faq"
44
}

CHANGELOG.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [2.1.0] - 2026-06-30
9+
10+
### Added
11+
12+
- Configurable FAQ question heading level (h2–h6) from the block settings panel.
13+
- Rank Math SEO integration for FAQ structured data (JSON-LD).
14+
- SEOPress integration for FAQ structured data (JSON-LD).
15+
- SEO service resolver to delegate schema output to the active SEO plugin (Yoast SEO, Rank Math, or SEOPress).
16+
- PSR-4 autoloading for plugin PHP classes via Composer.
17+
- Block example in the FAQ block inserter preview.
18+
- Deprecated save handlers to preserve front-end markup for content saved in 2.0.x.
19+
20+
### Changed
21+
22+
- Refactored FAQ block markup to use WordPress block class names (aligned with blockparty-accordion).
23+
- Refactored Yoast SEO integration into a dedicated service class alongside other SEO plugins.
24+
- Updated French translations for all block editor scripts.
25+
- Replaced wp-env npm scripts (`start:env` / `stop:env` / `setup:env`) with `env:start` / `env:stop`.
26+
- Local development environment now mounts Yoast SEO, Rank Math, and SEOPress via Composer.
27+
28+
### Fixed
29+
30+
- Removed duplicate block wrapper in the FAQ item editor component (`useBlockProps` called twice).
31+
- Renamed `includes/` subdirectories to match PSR-4 namespace casing (`Schema/`, `Services/`, `Hooks/`).
32+
33+
### Removed
34+
35+
- Psalm static analysis configuration and dependency.
36+
37+
## [2.0.3] - 2026-02-17
38+
39+
### Added
40+
41+
- Support for core/button blocks inside FAQ answers.
42+
- Spacing support for FAQ answers.
43+
- Font size (typography) support for FAQ questions.
44+
45+
### Changed
46+
47+
- FAQ question text is stripped of HTML tags in structured data output.
48+
49+
## [2.0.2] - 2026-01-27
50+
51+
### Fixed
52+
53+
- Added missing `isAccordion` attribute to the parent FAQ block.
54+
55+
## [2.0.1] - 2026-01-27
56+
57+
### Fixed
58+
59+
- Block registration now uses block metadata from `block.json` correctly after the 2.0 build restructure.
60+
61+
## [2.0.0] - 2026-01-27
62+
63+
### Added
64+
65+
- Nested block architecture with child blocks: `faq-item`, `faq-question`, and `faq-answer`.
66+
- Configurable accordion mode via the `isAccordion` attribute (interactive accordion or static layout).
67+
- InnerBlocks support in FAQ answers (paragraphs, lists, images, and other Gutenberg blocks).
68+
- InnerBlocks support in FAQ questions when accordion mode is disabled.
69+
- Front-end accordion script with configurable behavior via the `beapi_faq_block_config` filter.
70+
- Automatic migration from the legacy `questions` array attribute to the InnerBlocks format.
71+
- Add and remove FAQ item controls in the block editor toolbar.
72+
- Full internationalization: PO/MO translations for PHP and JSON translations for JavaScript.
73+
- Yoast SEO FAQPage structured data integration.
74+
- wp-env local development environment.
75+
76+
### Changed
77+
78+
- Build structure reorganized to follow the blockparty-accordion model (one `block.json` per block directory).
79+
80+
## [1.0.2] - 2024-06-07
81+
82+
### Changed
83+
84+
- Added PHP 8.2 to supported PHP versions.
85+
86+
## [1.0.1] - 2024-04-03
87+
88+
### Fixed
89+
90+
- Corrected CSS custom property variable names.
91+
92+
## [1.0.0] - 2024-04-02
93+
94+
### Added
95+
96+
- Initial release of the Blockparty FAQ Gutenberg block.
97+
- Accessible accordion front-end behavior powered by `@beapi/be-a11y`.
98+
- Yoast SEO FAQPage structured data (JSON-LD) generation.
99+
- Editor controls to add and remove FAQ items.
100+
101+
[2.1.0]: https://github.com/BeAPI/blockparty-faq/compare/2.0.3...2.1.0
102+
[2.0.3]: https://github.com/BeAPI/blockparty-faq/compare/2.0.2...2.0.3
103+
[2.0.2]: https://github.com/BeAPI/blockparty-faq/compare/2.0.1...2.0.2
104+
[2.0.1]: https://github.com/BeAPI/blockparty-faq/compare/2.0.0...2.0.1
105+
[2.0.0]: https://github.com/BeAPI/blockparty-faq/compare/1.0.2...2.0.0
106+
[1.0.2]: https://github.com/BeAPI/blockparty-faq/compare/1.0.1...1.0.2
107+
[1.0.1]: https://github.com/BeAPI/blockparty-faq/compare/1.0.0...1.0.1
108+
[1.0.0]: https://github.com/BeAPI/blockparty-faq/releases/tag/1.0.0

blockparty-faq.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Description: A FAQ block for WordPress Editor that provided structured data based on FAQ schema.
55
* Requires at least: 6.2
66
* Requires PHP: 8.1
7-
* Version: 2.0.3
7+
* Version: 2.1.0
88
* Plugin URI: https://beapi.fr
99
* Author: Be API Technical team
1010
* Author URI: https://beapi.fr
@@ -45,7 +45,7 @@
4545
}
4646

4747
// Plugin constants
48-
define( 'BLOCKPARTY_FAQ_VERSION', '2.0.3' );
48+
define( 'BLOCKPARTY_FAQ_VERSION', '2.1.0' );
4949

5050
// Plugin URL and PATH
5151
define( 'BLOCKPARTY_FAQ_DIR', plugin_dir_path( __FILE__ ) );

languages/blockparty-faq.pot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This file is distributed under the GPL-2.0-or-later.
33
msgid ""
44
msgstr ""
5-
"Project-Id-Version: Blockparty FAQ 2.0.3\n"
5+
"Project-Id-Version: Blockparty FAQ 2.1.0\n"
66
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/blockparty-faq\n"
77
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
88
"Language-Team: LANGUAGE <LL@li.org>\n"

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "blockparty-faq",
3-
"version": "2.0.3",
3+
"version": "2.1.0",
44
"description": "SEO friendly FAQ module in an accessible accordion",
55
"author": "Be API Technical team",
66
"license": "GPL-2.0-or-later",

readme.txt

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
=== Blockparty FAQ ===
2+
Contributors: beapi
3+
Tags: block, faq, accordion, gutenberg, schema, seo, accessibility
4+
Requires at least: 6.2
5+
Tested up to: 6.8
6+
Requires PHP: 8.1
7+
Stable tag: 2.1.0
8+
License: GPL-2.0-or-later
9+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
10+
11+
A Gutenberg FAQ block with accessible accordion behavior and SEO-friendly structured data.
12+
13+
== Description ==
14+
15+
Blockparty FAQ provides a nested Gutenberg block for building frequently asked questions pages. Each FAQ entry is composed of a question and a rich-text answer that can contain any supported inner blocks (paragraphs, lists, images, buttons, and more).
16+
17+
**Key features:**
18+
19+
* Accessible accordion on the front end, powered by `@beapi/be-a11y`.
20+
* Toggle between accordion and static display modes.
21+
* Configurable question heading level (h2–h6).
22+
* Nested block architecture: FAQ → FAQ Item → Question + Answer.
23+
* FAQPage structured data (JSON-LD) via Yoast SEO, Rank Math, or SEOPress.
24+
* Automatic migration from the legacy single-block format (pre-2.0).
25+
* Full editor internationalization (JavaScript JSON translations and PHP PO/MO files).
26+
27+
**SEO plugins**
28+
29+
FAQ structured data requires one of the following SEO plugins to be active:
30+
31+
* Yoast SEO
32+
* Rank Math
33+
* SEOPress
34+
35+
Only one SEO plugin should be active at a time. The plugin automatically detects which one is available and outputs the appropriate schema.
36+
37+
== Installation ==
38+
39+
1. Upload the plugin files to the `/wp-content/plugins/blockparty-faq` directory, or install the plugin through the WordPress plugins screen directly.
40+
2. Activate the plugin through the **Plugins** screen in WordPress.
41+
3. Install and activate Yoast SEO, Rank Math, or SEOPress if you need FAQ structured data output.
42+
4. Insert the **FAQ** block from the block inserter in the WordPress editor.
43+
44+
== Frequently Asked Questions ==
45+
46+
= Does this block work without an SEO plugin? =
47+
48+
Yes. The FAQ block renders correctly on the front end without any SEO plugin. Structured data (JSON-LD) output requires Yoast SEO, Rank Math, or SEOPress.
49+
50+
= Can I use multiple FAQ blocks on the same page? =
51+
52+
Yes. All FAQ blocks on a page are aggregated into a single FAQPage schema entry.
53+
54+
= Is the accordion accessible? =
55+
56+
Yes. The front-end accordion uses `@beapi/be-a11y` with proper ARIA attributes (`aria-expanded`, `role="region"`) and keyboard support.
57+
58+
== Changelog ==
59+
60+
= 2.1.0 - 2026-06-30 =
61+
* Added configurable FAQ question heading level (h2–h6).
62+
* Added Rank Math SEO integration for FAQ structured data.
63+
* Added SEOPress integration for FAQ structured data.
64+
* Added SEO service resolver to delegate schema output to the active SEO plugin.
65+
* Added PSR-4 autoloading for plugin PHP classes.
66+
* Added block inserter example preview for the FAQ block.
67+
* Added deprecated save handlers for content saved in 2.0.x.
68+
* Changed FAQ block markup to WordPress block class names (aligned with blockparty-accordion).
69+
* Changed Yoast SEO integration into a dedicated service class.
70+
* Changed wp-env npm scripts to `env:start` / `env:stop`.
71+
* Fixed duplicate block wrapper in the FAQ item editor component.
72+
* Fixed PSR-4 directory casing for Composer autoloading.
73+
* Removed Psalm static analysis.
74+
75+
= 2.0.3 - 2026-02-17 =
76+
* Added support for core/button blocks in FAQ answers.
77+
* Added spacing support for FAQ answers.
78+
* Added font size support for FAQ questions.
79+
* Changed FAQ question text to strip HTML tags in structured data.
80+
81+
= 2.0.2 - 2026-01-27 =
82+
* Fixed missing `isAccordion` attribute on the parent FAQ block.
83+
84+
= 2.0.1 - 2026-01-27 =
85+
* Fixed block registration to use block metadata after the 2.0 build restructure.
86+
87+
= 2.0.0 - 2026-01-27 =
88+
* Added nested block architecture (`faq-item`, `faq-question`, `faq-answer`).
89+
* Added configurable accordion mode (`isAccordion` attribute).
90+
* Added InnerBlocks support in FAQ answers and questions.
91+
* Added front-end accordion script with `beapi_faq_block_config` filter.
92+
* Added automatic migration from the legacy `questions` array format.
93+
* Added add/remove FAQ item controls in the block editor.
94+
* Added full internationalization (PO/MO and JSON translations).
95+
* Added Yoast SEO FAQPage structured data integration.
96+
* Changed build structure to one `block.json` per block directory.
97+
98+
= 1.0.2 - 2024-06-07 =
99+
* Added PHP 8.2 to supported PHP versions.
100+
101+
= 1.0.1 - 2024-04-03 =
102+
* Fixed CSS custom property variable names.
103+
104+
= 1.0.0 - 2024-04-02 =
105+
* Initial release with accessible accordion and Yoast SEO FAQPage structured data.
106+
107+
== Upgrade Notice ==
108+
109+
= 2.1.0 =
110+
Adds Rank Math and SEOPress support, configurable question heading levels, and updated block markup. Existing content is preserved via deprecated save handlers.
111+
112+
= 2.0.0 =
113+
Major block architecture change. Existing FAQ blocks are automatically migrated to the new nested format on save.

src/faq-answer/block.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://schemas.wp.org/trunk/block.json",
33
"apiVersion": 3,
44
"name": "blockparty/faq-answer",
5-
"version": "2.0.3",
5+
"version": "2.1.0",
66
"title": "FAQ Answer",
77
"category": "design",
88
"parent": [ "blockparty/faq-item" ],

src/faq-item/block.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://schemas.wp.org/trunk/block.json",
33
"apiVersion": 3,
44
"name": "blockparty/faq-item",
5-
"version": "2.0.3",
5+
"version": "2.1.0",
66
"title": "FAQ Item",
77
"category": "design",
88
"parent": [ "blockparty/faq" ],

src/faq-question/block.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://schemas.wp.org/trunk/block.json",
33
"apiVersion": 3,
44
"name": "blockparty/faq-question",
5-
"version": "2.0.3",
5+
"version": "2.1.0",
66
"title": "FAQ Question",
77
"category": "design",
88
"parent": [ "blockparty/faq-item" ],

0 commit comments

Comments
 (0)