<?xml version="1.0" encoding="UTF-8"?> ## 2026.11.06.01 - Publish to Factory: the editor is now available via the Community Applications plugin index. <VERSION version="2026.11.06.01" date="2026-11-06"> <CHANGE>Publish to Factory: the editor is now available via the Community Applications plugin index.</CHANGE> </VERSION> <VERSION version="2026.07.11.11" date="2026-07-11"> <CHANGE>Fix: the standalone editor tab closes correctly when opened as a full-page tab.</CHANGE> </VERSION> <VERSION version="2026.07.11.10" date="2026-07-11"> <CHANGE>Feature: open the editor in a separate full-page tab instead of overlaying the Browse view.</CHANGE> </VERSION> <VERSION version="2026.07.11.09" date="2026-07-11"> <CHANGE>Fix: code editors fill the modal to the right edge instead of collapsing on narrow screens.</CHANGE> </VERSION> <VERSION version="2026.07.11.08" date="2026-07-11"> <CHANGE>Fix: non-preview languages render in a dedicated full-width workspace rather than stacking.</CHANGE> </VERSION> <VERSION version="2026.07.11.07" date="2026-07-11"> <CHANGE>Fix: the full-width code editor layout stabilises at larger screen widths.</CHANGE> </VERSION> <VERSION version="2026.07.11.06" date="2026-07-11"> <CHANGE>Feature: syntax highlighting through the full CodeMirror language catalog instead of a hand-picked set of extensions.</CHANGE> </VERSION> <VERSION version="2026.07.11.05" date="2026-07-11"> <CHANGE>First public release: adds Markdown and HTML source editing with live previews to Shares > Browse.</CHANGE> </VERSION> <VERSION version="2026.07.11.04" date="2026-07-11"> <CHANGE>Removes the redundant top-bar editor icon while retaining the global Browse integration.</CHANGE> </VERSION> <VERSION version="2026.07.11.03" date="2026-07-11"> <CHANGE>Adds a distraction-free full-page mode for Markdown and HTML editing and preview.</CHANGE> </VERSION> <VERSION version="2026.07.11.02" date="2026-07-11"> <CHANGE>Enables JavaScript in HTML previews while retaining opaque-origin sandbox isolation.</CHANGE> </VERSION> <VERSION version="2026.07.11.01" date="2026-07-11"> <CHANGE>Adds HTML and HTM source editing with a sandboxed live preview.</CHANGE> <CHANGE>Uses CodeMirror HTML language support with edit, split, and preview modes.</CHANGE> </VERSION> <VERSION version="2026.07.10.01" date="2026-07-10"> <CHANGE>Initial Markdown editor extension for the built-in Unraid Shares file browser.</CHANGE> <CHANGE>Adds a React and CodeMirror editor with split preview, CSRF validation, path allowlisting, and atomic saves.</CHANGE> </VERSION> https://raw.githubusercontent.com/johnpwhite/unraid-plg-file_editor_extentions/main/src.tar.gz a19bd810abede340d72182044ca08b06dbd0b769d966880588b9cabf894f8c58 #!/bin/bash set -e NAME="unraid-file-editor-extensions" VERSION="2026.11.06.01" EMHTTP_DEST="/usr/local/emhttp/plugins/unraid-file-editor-extensions" CONFIG_DIR="/boot/config/plugins/unraid-file-editor-extensions" LOCAL_SRC="$CONFIG_DIR" ARCHIVE="$LOCAL_SRC/src-$VERSION.tar.gz" SRC_TAR="$ARCHIVE" LOG_FILE="$CONFIG_DIR/install.log" exec 4>&1 exec 3>&1 get_ts() { date '+%Y-%m-%d %H:%M:%S'; } log_status() { echo "$1" >&4 2>/dev/null || true echo "[$(get_ts)] [FileEditorExtensions] $1" >> "$LOG_FILE" 2>/dev/null || true } log_progress() { echo "PROGRESS: $1" >&3 2>/dev/null || true } mkdir -p "$CONFIG_DIR" "$EMHTTP_DEST" echo "[$(get_ts)] [FileEditorExtensions] Installing v$VERSION" > "$LOG_FILE" log_progress "10% [[Preparing install directories]]" rm -rf "$EMHTTP_DEST/src" "$EMHTTP_DEST/assets" mkdir -p "$EMHTTP_DEST" log_progress "35% [[Extracting plugin payload]]" if [ ! -s "$SRC_TAR" ]; then log_status "Payload archive missing: $ARCHIVE" exit 1 fi tar -xzf "$SRC_TAR" -C "$EMHTTP_DEST" log_progress "65% [[Installing web entry points]]" cp "$EMHTTP_DEST/src/FileEditorExtensions.page" "$EMHTTP_DEST/FileEditorExtensions.page" cp "$EMHTTP_DEST/src/FileEditorExtensions.php" "$EMHTTP_DEST/FileEditorExtensions.php" cp "$EMHTTP_DEST/src/README.md" "$EMHTTP_DEST/README.md" cp -R "$EMHTTP_DEST/src/assets" "$EMHTTP_DEST/assets" log_progress "80% [[Registering editable extensions]]" if [ -f /boot/config/editor.cfg ]; then grep -qxF md /boot/config/editor.cfg || echo md >> /boot/config/editor.cfg grep -qxF markdown /boot/config/editor.cfg || echo markdown >> /boot/config/editor.cfg grep -qxF html /boot/config/editor.cfg || echo html >> /boot/config/editor.cfg grep -qxF htm /boot/config/editor.cfg || echo htm >> /boot/config/editor.cfg fi log_progress "90% [[Setting permissions]]" find "$EMHTTP_DEST" -type d -exec chmod 0755 {} + find "$EMHTTP_DEST" -type f -exec chmod 0644 {} + find "$EMHTTP_DEST/src/scripts" -type f -name "*.sh" -exec chmod 0755 {} + 2>/dev/null || true # Clean up old versioned source archives find "$LOCAL_SRC" -maxdepth 1 -name "src-*.tar.gz" ! -name "src-$VERSION.tar.gz" -delete 2>/dev/null || true log_status "Installed $NAME v$VERSION" log_progress "100% [[File Editor Extensions installed]]" #!/bin/bash set -e NAME="unraid-file-editor-extensions" EMHTTP_DEST="/usr/local/emhttp/plugins/unraid-file-editor-extensions" CONFIG_DIR="/boot/config/plugins/unraid-file-editor-extensions" LOG_FILE="$CONFIG_DIR/uninstall.log" mkdir -p "$CONFIG_DIR" echo "[$(date '+%Y-%m-%d %H:%M:%S')] [FileEditorExtensions] Uninstalling $NAME" > "$LOG_FILE" rm -rf "$EMHTTP_DEST" rm -rf "$LOCAL_SRC"/src-*.tar.gz 2>/dev/null || true echo "[$(date '+%Y-%m-%d %H:%M:%S')] [FileEditorExtensions] Runtime files removed; config preserved at $CONFIG_DIR" >> "$LOG_FILE"