=== Launchmind Blog ===
Contributors: launchmind
Tags: blog, content, ai, seo, articles
Requires at least: 5.8
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 2.6.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Display AI-powered Launchmind blog content on your WordPress site.

== Changelog ==

= 2.6.0 =
* New: Track all link clicks, not just external links
* New: Internal clicks to client website pages (e.g., /services/, /contact/) are now tracked
* New: target_url field in click data for better analytics
* Improved: Skip tracking for blog-to-blog navigation

= 2.5.0 =
* New: Analytics tracking - page views and clicks are now tracked for your Launchmind dashboard
* New: AI traffic detection - see how many visitors come from ChatGPT, Claude, Perplexity, etc.
* New: Organic vs AI traffic breakdown in your partner dashboard
* Privacy: All tracking is anonymous (no cookies, no PII)

= 2.4.1 =
* Fix: Language switcher now only shows available languages for each article
* Fix: Language switcher positioned between intro and main content for better UX
* Improved: Backend API now returns availableLanguages array to reduce API calls
* Improved: Language switching now works correctly - clicking a language updates the content
* Improved: Better visual styling for inline language switcher

= 2.4.0 =

Launchmind Blog lets you quickly display SEO-optimized blog articles on your WordPress site. Connect your Launchmind API key, choose a layout (Gutenberg block or shortcode), and publish instantly. Includes caching, multi-language support, and a modern admin dashboard.

**Features:**

* Modern admin dashboard with Articles / Analytics / Settings tabs
* Gutenberg blocks: blog list and single post
* Shortcodes for backward compatibility
* Cache and connection test from admin
* Optional branding (disabled by default)

**External Service**

This plugin connects to the [Launchmind.io](https://launchmind.io) API to retrieve blog content. A Launchmind account and API key are required for the plugin to function.

* [Launchmind Terms of Service](https://launchmind.io/terms)
* [Launchmind Privacy Policy](https://launchmind.io/privacy)

When using this plugin, blog content is fetched from Launchmind servers. No personal user data from your WordPress site visitors is sent to Launchmind. Only the API key and content requests are transmitted to authenticate and retrieve your blog posts.

== Installation ==

1. Upload the plugin to `/wp-content/plugins/launchmind-blog`.
2. Activate the plugin through the Plugins menu in WordPress.
3. Navigate to the Launchmind menu item (left sidebar) and enter your API key.
4. Add a Gutenberg block (`Launchmind Blog`) or use the shortcode `[launchmind_blog]` on any page.

== Testing ==

**For WordPress.org Reviewers:**

A demo API key is available for testing purposes:

`lm_test_demo1234567890`

This key provides access to 6 sample blog articles for testing the plugin functionality.

**Test the connection:**

1. Install and activate the plugin
2. Go to **Launchmind** in the WordPress admin sidebar
3. Click the **Settings** tab
4. Enter the demo API key: `lm_test_demo1234567890`
5. Click **Save Settings**
6. Click **Test Connection** - should show "Connection successful"
7. Go to the **Articles** tab to see 6 sample posts
8. Add the Gutenberg block (`Launchmind Blog`) or use shortcode `[launchmind_blog]` on any page

**Sample articles included:**

* 10 Tips to Boost Your E-commerce Conversion Rate
* The Ultimate Guide to SEO for Online Stores
* How to Create a Winning Product Description
* Email Marketing Strategies That Actually Work
* Social Media Marketing for Small Businesses
* Customer Retention: How to Keep Customers Coming Back

**Getting your own API key:**

Sign up at [launchmind.io](https://launchmind.io) to get your personal API key for production use.

== Frequently Asked Questions ==

= Where do I find my API key? =

Log in to your [Launchmind Dashboard](https://launchmind.io/backlinks/dashboard) and navigate to the "Webshop Plugins" tab. Your API key is displayed in the green box.

= Can I use shortcodes instead of Gutenberg blocks? =

Yes! Use `[launchmind_blog limit="6" columns="3"]` for a blog list or `[launchmind_post slug="your-post-slug"]` for a single post.

= Does this plugin track my visitors? =

No. This plugin only communicates with Launchmind servers to fetch your blog content. No personal data from your site visitors is collected or transmitted.

= What data is sent to Launchmind? =

Only your API key and content requests (such as post slugs and language preferences) are sent to authenticate and retrieve your blog posts. No visitor data is transmitted.

= Is the "Powered by Launchmind" branding required? =

No. The branding is disabled by default. You can optionally enable it in the block settings or shortcode attributes if you wish to display it.

== Screenshots ==

1. Modern admin dashboard with article overview
2. Gutenberg blog list block in the editor
3. Single post block displaying article content

== Privacy Policy ==

This plugin connects to external Launchmind.io servers to fetch blog content. By using this plugin, you agree to Launchmind's [Terms of Service](https://launchmind.io/terms) and [Privacy Policy](https://launchmind.io/privacy).

**Data transmitted:**
* Your Launchmind API key (for authentication)
* Content requests (post slugs, language preferences)

**Data NOT transmitted:**
* Personal data of your WordPress site visitors
* WordPress user information
* Any other site data

All API communication uses HTTPS encryption.

== Changelog ==

= 2.4.8 =
* CRITICAL FIX: Output buffering starts IMMEDIATELY to catch all canonical URLs and meta tags
* FIX: Removes incorrect <title> tags containing "Kennisbank" 
* FIX: Multiple regex patterns to catch all variants of canonical/og tags (with/without spaces, different quotes)
* IMPROVED: Processes head section separately for more reliable tag replacement
* IMPROVED: Adds correct <title> tag if missing or incorrect
* IMPROVED: Comprehensive error handling to prevent site crashes

= 2.4.7 =
* Fix: Aggressive HTML filtering to force correct canonical URL and og:title tags
* Fix: Output buffering with safety checks to override theme/plugin meta tags
* Improved: Multiple layers of protection (wp_head hooks + HTML filtering)
* Improved: Comprehensive error handling to prevent site crashes
* Improved: Only processes Launchmind blog posts (no impact on other pages)
* Improved: Works even when caching plugins have active output buffers

= 2.4.6 =
* Fix: Link previews now show correct article title instead of site/page title
* Fix: Canonical URL now correctly points to article instead of parent page
* Improved: Open Graph tags now override SEO plugin tags to ensure correct previews
* Improved: Image dimensions (1200x630) added for better LinkedIn/Facebook previews
* Improved: Image fallback system (coverImage → first image in content → site icon)
* Improved: Absolute URLs guaranteed for all images
* Improved: Multiple og:title tags for maximum compatibility across platforms

= 2.4.5 =
* New: Added Launchmind logo as plugin icon (icon-256x256.png) for WordPress.org directory
* Improved: Plugin now displays branded icon in WordPress admin and plugin directory

= 2.4.4 =
* New: Added comprehensive SEO meta tags (meta description, canonical URL)
* New: Added Open Graph tags for social sharing and AI engines
* New: Added Twitter Card tags for better social previews
* New: Added Schema.org JSON-LD structured data for Google and AI engine indexing (ChatGPT, Claude, Perplexity)
* Improved: Articles are now fully optimized for search engine and AI engine discovery

= 2.4.3 =
* Improved: Removed specific company references from example descriptions for cleaner documentation

= 2.4.2 =
* Improved: base_url parameter now prominently displayed as first option in Settings documentation
* Improved: Better organization of shortcode options (Essential vs Styling options)
* Improved: All examples now show base_url first to emphasize its importance

= 2.4.1 =
* Fix: Language switcher now only shows available languages for each article
* Fix: Language switcher positioned between intro and main content for better UX
* Improved: Backend API now returns availableLanguages array to reduce API calls
* Improved: Language switching now works correctly - clicking a language updates the content
* Improved: Better visual styling for inline language switcher

= 2.4.0 =
* New: Multi-language support with language switcher on single post pages
* New: Hindi (hi) language support added
* New: Automatic language detection from WordPress locale
* New: Language switcher displays available languages with flags (EN, NL, DE, FR, ES, IT, HI)
* New: Optional automatic dark/light mode detection (opt-in via theme="auto")
* Improved: Backward compatible - existing sites unchanged unless explicitly opting in
* Improved: Enhanced Settings page with comprehensive layout options documentation
* Improved: Better dark mode support with opt-in automatic detection
* Fixed: Dark mode only activates when explicitly enabled (prevents breaking existing custom CSS)

= 2.3.1 =
* Fixed: Markdown tables are now properly converted to HTML tables
* New: Beautiful table styling with responsive design
* New: Tables support header rows and proper cell alignment
* Improved: Tables scroll horizontally on mobile devices

= 2.3.0 =
* Major: Complete CSS rewrite for better website integration
* New: Plugin now inherits website typography and colors automatically
* New: `accent_color` parameter - use preset (teal, blue, gold) or hex (#00a69c)
* New: CSS variables can be overridden by website theme
* Improved: Cards use `inherit` and `currentColor` for seamless integration
* Improved: Cleaner, more neutral styling that adapts to any website
* Changed: Default columns from 4 to 3 for better readability

= 2.2.8 =
* Improved: Updated Settings documentation with all shortcode options
* Improved: Added dark theme example shortcode in Settings
* Improved: Reduced spacing between intro and blog grid
* Improved: Better documentation for theme, base_url, show_intro options

= 2.2.7 =
* New: Adaptive dark/light theme support - cards auto-detect theme
* New: `theme="dark"` or `theme="light"` shortcode attribute to force mode
* Improved: Reduced spacing and margins for cleaner look
* Improved: Cards now use semi-transparent backgrounds with backdrop blur
* Improved: Better mobile responsiveness

= 2.2.6 =
* Fix: Added safety checks to prevent fatal errors on activation
* Fix: Wrapped API calls in try-catch for error resilience
* Fix: Class existence checks before calling methods

= 2.2.5 =
* Fix: Resolved critical error caused by template handler
* Fix: Improved PHP 7.4 compatibility
* New: Automatic blog page creation on activation
* New: SEO-friendly URL structure for single posts (/blog/post-slug)
* Important: After update, go to Settings → Permalinks and click Save Changes

= 2.0.1 =
* Fix: Removed duplicate Plugin URI to comply with WordPress.org guidelines
* Fix: Assets excluded from plugin zip
* Changed: Branding disabled by default

= 2.0.0 =
* New: Modern admin dashboard with tabs, cards, and preview modal
* New: Gutenberg blocks (blog list + single post)
* New: Analytics tab with improved settings
* New: WordPress.org compliant readme
* Changed: Branding now defaults to off (opt-in only)

= 1.0.0 =
* Initial release with shortcodes, cache, and API client

== Upgrade Notice ==

= 2.0.0 =
Major update with new Gutenberg blocks and dashboard. Please verify your API key is still configured after updating.
