Skip to content

Releases

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 19:36
b2bbcf7

What's Changed

  • server-documentation v1.2.0: align with Pelican beta34+ plugin system by @gavinmcfall in #5
  • server-documentation: move dev stack to Laravel 13 so CI resolves by @gavinmcfall in #6
  • Point plugin metadata and docs at nzvengeance/pelican-plugins by @gavinmcfall in #7
  • ci: ship only runtime files in the release zip (2.6 MB → ~180 KB) by @gavinmcfall in #8

Full Changelog: v1.1.5...v1.2.0

v1.1.5 - Correct Version Display

Choose a tag to compare

@gavinmcfall gavinmcfall released this 12 Feb 00:07

What's Fixed

Version Display

Plugin version now shows correctly in Pelican Panel - Updated plugin.json metadata file to display the correct version number.

Previously, the plugin showed version "1.1.0" in the Admin → Plugins page regardless of which release you installed. Now it correctly displays v1.1.5.

What's Included

This release includes all fixes and improvements from v1.1.3 and v1.1.4:

From v1.1.3: Beta32 Compatibility

  • ✅ Fixed invisible action buttons in Pelican Panel beta32
  • ✅ Added backward compatibility for button styling (works on both beta31 and beta32)
  • ✅ Added icons to form actions (Create, Save, Cancel buttons)
  • ✅ Dynamic button styling based on user preferences

From v1.1.4: Improved Documentation

  • ✅ Export/Import workflow as primary update method (no SSH required)
  • ✅ Clear upgrade paths for all user types
  • ✅ Better user experience for plugin updates

Updating from Previous Versions

Recommended Method: Export/Import (No SSH Required)

  1. Export your documents (Admin → Documents → Export JSON)
  2. Uninstall old version (Admin → Plugins → Uninstall)
  3. Upload v1.1.5 zip (Admin → Plugins → Upload)
  4. Import your documents (Admin → Documents → Import JSON)

Alternative Method: Manual File Replacement (SSH Required)

cd /var/www/html/plugins
wget https://github.com/gavinmcfall/pelican-plugins/releases/download/v1.1.5/server-documentation.zip
unzip -o server-documentation.zip
rm server-documentation.zip
cd /var/www/html && php artisan optimize:clear

Full Changelog: v1.1.2...v1.1.5

Full Changelog: v1.1.4...v1.1.5

Full Changelog: v1.1.4...v1.1.5

v1.1.4 - Improved Update Documentation

Choose a tag to compare

@gavinmcfall gavinmcfall released this 11 Feb 23:41

What's New

Documentation Improvements

Better Update Instructions - We've completely rewritten the update/upgrade documentation to make it easier for all users.

New Primary Method: Export/Import Workflow

No SSH required! Update entirely through the Pelican Panel UI:

  1. Export your documents as JSON backup (Admin → Documents → Export JSON)
  2. Uninstall old version (Admin → Plugins → Uninstall)
  3. Upload new version (Admin → Plugins → Upload)
  4. Import your documents back (Admin → Documents → Import JSON)

All documents, versions, roles, and settings are preserved!

Alternative Method: Manual File Replacement

For users with SSH access who want to avoid uninstall/reinstall:

cd /var/www/html/plugins
wget https://github.com/gavinmcfall/pelican-plugins/releases/latest/download/server-documentation.zip
unzip -o server-documentation.zip
rm server-documentation.zip
cd /var/www/html && php artisan optimize:clear

Updated v1.0.x Upgrade Instructions

  • Export/Import is now the recommended method for all users
  • Pre-upgrade patch script remains available as an advanced alternative

Why This Matters

Previously, updating required either SSH access or risk of data loss. Now anyone can safely update using only the Pelican Panel UI by leveraging the built-in backup/restore feature.


Full Changelog: v1.1.3...v1.1.4

Full Changelog: v1.1.3...v1.1.4

v1.1.3

Choose a tag to compare

@github-actions github-actions released this 11 Feb 23:18
a2653a0

What's Changed

Full Changelog: v1.1.2...v1.1.3

Server Documentation v1.1.2

Choose a tag to compare

@gavinmcfall gavinmcfall released this 25 Jan 19:42

🌍 Complete Internationalization Release

This release brings comprehensive internationalization support with 20 languages and significant security hardening.

✨ New Features

Multi-Language Support (20 Languages)

  • Complete translations: English, German, French, Spanish, Portuguese, Dutch, Polish, Russian, Chinese, Japanese
  • AI-generated translations (pending native speaker verification): Czech, Greek, Hungarian, Indonesian, Italian, Korean, Romanian, Swedish, Thai, Turkish, Ukrainian, Vietnamese

Full UI Internationalization

  • All admin panel labels, buttons, and messages now use the translation system
  • Content type badges (Rich Text, Markdown, Raw HTML) are translated
  • Form labels, helper texts, and placeholders are translated
  • Version history UI is fully translated
  • Preview section and empty states are translated

🔒 Security Improvements

  • SQL Injection Prevention: LIKE queries now use explicit ESCAPE clause for cross-database compatibility (MySQL, PostgreSQL, SQLite)
  • HTML Sanitization: All user content is sanitized before display
  • XSS Prevention: Template variables are properly escaped
  • Input Validation: Comprehensive import validation for JSON/Markdown files

🐛 Bug Fixes

  • Fixed German localization file syntax (removed accidental markdown code fences)
  • Fixed German grammar: "Reines HTML" → "reinem HTML" (dative case) - thanks @noriwanne!
  • Fixed version preview not rendering markdown content properly
  • Fixed SQL LIKE wildcard escaping for special characters (%, _, )

📦 Other Changes

  • Added content_type column to document_versions table for accurate version restoration
  • Bundled highlight.js locally as fallback for airgapped environments
  • CDN primary with automatic local fallback for syntax highlighting
  • Added comprehensive test suite (181 tests, 281 assertions)

📋 Upgrade Notes

  1. Run migrations: php artisan migrate
  2. Clear cache: php artisan cache:clear
  3. Publish assets: php artisan vendor:publish --tag=server-documentation-assets --force

🌐 Language Support

Status Languages
✅ Verified English (source), German (thanks @noriwanne!)
🤖 AI-Generated French, Spanish, Portuguese, Dutch, Polish, Russian, Chinese, Japanese, Czech, Greek, Hungarian, Indonesian, Italian, Korean, Romanian, Swedish, Thai, Turkish, Ukrainian, Vietnamese

Note: AI-generated translations have not been verified by native speakers. Community corrections are welcome via PR!


Full Changelog: v1.1.0...v1.1.2

Server Documentation v1.1.0

Choose a tag to compare

@gavinmcfall gavinmcfall released this 23 Jan 07:29

Server Documentation v1.1.0

A major release with three editor modes, template variables, syntax highlighting, and full backup/restore capabilities.


⚠️ BREAKING CHANGE: Upgrading from v1.0.x

If you have existing documents you want to KEEP, you MUST run the pre-upgrade patch before uninstalling!

Version 1.1.0 includes database schema changes. The standard uninstall process will DROP YOUR DOCUMENT TABLES and you will lose all data.

To preserve your documents:

# 1. SSH into your server
cd /var/www/pelican

# 2. Run the pre-upgrade patch BEFORE uninstalling
php plugins/server-documentation/scripts/pre-upgrade-patch.php

# 3. Uninstall the old plugin via Admin Panel → Plugins → Uninstall
#    (Documents are preserved because the patch disables table drops)

# 4. Upload and install v1.1.0

# 5. Clear caches
php artisan cache:clear
php artisan optimize:clear

If you don't need existing documents:

Simply uninstall the old version and install v1.1.0. Fresh tables will be created.

Going forward:

After upgrading to v1.1.0, use Export Backup before future upgrades to create a portable JSON backup of all your documents.


What's New in v1.1.0

🎨 Three Editor Modes

Choose the right editor for each document:

Mode Best For
Rich Text Non-technical users, formatted content, paste from web
Markdown Developers, technical docs, live preview
Raw HTML Full control, embedded content, advanced formatting

📝 Template Variables

Dynamic placeholders replaced when documents are displayed:

Welcome {{user.name}}!

Your server {{server.name}} is running on {{server.node}}.
Allocated: {{server.memory}}MB RAM, {{server.disk}}MB disk.

Available variables:

Category Variables
User {{user.name}}, {{user.username}}, {{user.email}}, {{user.id}}
Server {{server.name}}, {{server.uuid}}, {{server.egg}}, {{server.node}}, {{server.memory}}, {{server.disk}}, {{server.cpu}}
Time {{date}}, {{time}}, {{datetime}}, {{year}}

Escape with backslash to show literally: \{{user.name}}

🎯 Syntax Highlighting

Code blocks are automatically highlighted using highlight.js:

  • 180+ languages supported (JavaScript, Python, Bash, YAML, PHP, etc.)
  • GitHub Dark theme
  • Works in admin preview and server panel
  • Persists through Livewire form interactions

💾 JSON Backup & Restore

Full backup and restore of all documents:

  • Export Backup - Downloads JSON with all documents, settings, version history
  • Import Backup - Restore from JSON, optionally overwrite existing
  • Portable format using UUIDs and names (survives database changes)

🔄 Editor Content Conversion

Seamlessly switch between editor types:

  • Rich Text ↔ Markdown (preserves formatting)
  • Markdown ↔ Raw HTML
  • Graceful error handling if conversion fails

🛡️ Idempotent Migrations

Migrations now safely detect existing tables/columns:

  • No more "table already exists" errors on reinstall
  • Safe to run multiple times
  • Preserves existing data

Bug Fixes

  • Fixed egg-based visibility not showing documents (caching issue)
  • Fixed export button saying "Export as Markdown" when exporting JSON
  • Fixed syntax highlighting disappearing after Livewire form interactions
  • Fixed content preview not updating when switching editor types
  • Fixed editor switching losing content in some cases
  • Fixed markdown content not displaying in markdown editor
  • Added Laravel version compatibility for sanitizeHtml() method

Technical Changes

  • Added content_type column to documents table (html, markdown, raw_html)
  • Added VariableProcessor service for template variable replacement
  • Integrated highlight.js 11.9.0 for syntax highlighting
  • Added pre-upgrade patch script for v1.0.x migrations
  • Removed auto-update functionality (manual updates only, like official plugins)

Installation

Fresh Install

  1. Download server-documentation.zip below
  2. Admin Panel → Plugins → Upload
  3. Select the zip and click Install

Upgrade from v1.0.x

⚠️ See the breaking change warning above - run the patch script first if you have existing documents!


Requirements

  • Pelican Panel v1.0.0-beta31+
  • PHP 8.2+

Full Changelog

v1.0.4...v1.1.0

Full Changelog: v1.0.4...v1.1.0

Server Documentation v1.1.0-beta2

Pre-release

Choose a tag to compare

@gavinmcfall gavinmcfall released this 21 Jan 18:23

⚠️ Upgrading from v1.0.x? Read the upgrade guide first!

Download all three files and follow the instructions in README-BEFORE-UPGRADING.md.


What's New

v1.1.0-beta2

  • JSON Export/Import - Full backup and restore of documents with all settings
  • Idempotent migrations - Safe to reinstall without "table already exists" errors
  • Pre-upgrade patch - Script to preserve data when upgrading from v1.0.x
  • Update support - Plugin can check for updates automatically
  • Content conversion error handling - The editor type switch (Rich Text → Markdown, etc.) now has try-catch error handling. If conversion fails, it logs the error but keeps the content unchanged rather than showing a flash error.
  • Sanitize fallback - The sanitizeHtml() method now checks if Laravel's str()->sanitizeHtml() is available (Laravel 10.35+) and falls back to manual sanitization for older versions.

v1.1.0-beta

  • Three editor modes - Rich Text, Markdown, and Raw HTML
  • Content conversion - Automatically converts when switching editor types
  • Template variables - Use {{user.name}}, {{server.name}}, {{server.egg}}, etc.

Files

File Purpose
README-BEFORE-UPGRADING.md Read this first! Upgrade instructions
pre-upgrade-patch.php Patch script for v1.0.x installations
server-documentation.zip The plugin (v1.1.0-beta2)

v1.1.0-beta - Raw HTML Editor & Variable Support

Choose a tag to compare

@gavinmcfall gavinmcfall released this 21 Jan 04:55

Beta Release

This is a beta release for testing new features. The stable release remains v1.0.4.

New Features

🎨 Three Editor Modes

  • Rich Text - WYSIWYG editor with toolbar formatting
  • Markdown - Raw markdown syntax (converted to HTML on display)
  • Raw HTML - Direct HTML editing for advanced users

🔄 Editor Switching

Content is now automatically converted when switching between editor types:

  • Rich Text ↔ Markdown
  • Markdown ↔ Raw HTML
  • Raw HTML ↔ Rich Text

📝 Template Variables

Insert dynamic content using variables that are replaced when displayed:

User Variables:

  • {{user.name}} - Current user's display name
  • {{user.username}} - Username
  • {{user.email}} - Email address
  • {{user.id}} - User ID

Server Variables:

  • {{server.name}} - Server name
  • {{server.uuid}} - Server UUID
  • {{server.egg}} - Game type name
  • {{server.node}} - Node name
  • {{server.memory}} - Allocated memory (MB)
  • {{server.disk}} - Allocated disk (MB)
  • {{server.cpu}} - CPU limit (%)

Date/Time Variables:

  • {{date}} - Current date (Y-m-d)
  • {{time}} - Current time (H:i)
  • {{datetime}} - Full date and time
  • {{year}} - Current year

Bug Fixes

  • Fixed editor switching losing content
  • Fixed markdown content not displaying in markdown editor

Installation

Download server-documentation.zip and install via Pelican Panel → Plugins → Upload.

⚠️ Note: This is a beta release for testing. Report issues on GitHub.

Full Changelog: v1.0.4...v1.1.0-beta

v1.0.4

Choose a tag to compare

@github-actions github-actions released this 20 Jan 21:49

Full Changelog: v1.0.3...v1.0.4

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 20 Jan 21:38

Full Changelog: v1.0.2...v1.0.3