PeakMaps Gallery (formerly Consigno Gallery) – changelog

= 2.1.5 =
* No changes to PHP error settings: the batch job for WebP sizes no longer turns off display_errors.
* Image sizes are read with wp_getimagesize() instead of getimagesize().
* All HTML built in PHP is escaped when it is printed: button icons with wp_kses() and a list of allowed SVG elements, tables and file lists with wp_kses_post().
* Downloads are streamed with fpassthru(), so nothing is echoed unescaped.
* Files are deleted with wp_delete_file() instead of unlink().

= 2.1.4 =
* Uploads: every field of $_FILES is sanitized where it is read (file name, type, temporary path, error code and size), and the nonce is verified in the same function.
* View counter, image descriptions and links to protected originals: input is sanitized directly where it is read, without relying on code-standard exceptions.

= 2.1.3 =
* Faster admin: the settings page and the gallery list open much faster on sites with many galleries. The list of gallery folders is read once per page load instead of once per gallery, the image sitemap is built from the file names only (no sorting, descriptions or EXIF), and the WebP status on the settings page is loaded after the page is shown.
* The check of whether original images are blocked is remembered for a week when the answer is certain (it is checked again when the setting is saved).
* Removed two unused functions.

= 2.1.2 =
* Photo direction: when the camera stores the direction relative to magnetic north (GPSImgDirectionRef = M, common on Android phones), the magnetic declination at the place and time of the photo is now added, so the arrow and view cone on the map point the right way. The declination is calculated offline with the World Magnetic Model 2025. In Norway the correction is from about 1° in western Norway to over 15° in Finnmark and on Svalbard. Directions stored relative to true north (most iPhones) are unchanged.
* The EXIF details show the direction from true north, and the value from the file when it was magnetic.

= 2.1.1 =
* Uploads now go through wp_handle_upload(), so WordPress's own upload checks and filters apply.
* All request input is sanitized as soon as it is read, including file names of uploads, the browser's user agent and the view counter data.
* Downloads and protected original images are read with WP_Filesystem (large ZIP files in chunks) instead of readfile().
* The link to a protected original image in admin now carries a nonce.

= 2.1.0 =
* The temporary transition from Consigno Gallery has been removed: the page «From Consigno Gallery», the automatic move of old settings, and support for the old [consigno_gallery] shortcodes, the old block names and the old sitemap address. Sites that still have old content should update with version 2.0.0 first.

= 2.0.0 =
* The rename is complete: the plugin slug, folder and text domain are now peakmaps-gallery. Shortcodes are [peakmaps_gallery] and [peakmaps_gallery_map], blocks are peakmaps/gallery and peakmaps/gallery-map, and new galleries are stored in wp-content/uploads/peakmaps-gallery/. Filters and actions use the peakmaps_gallery_ prefix (for example peakmaps_gallery_capability).
* Upgrading from Consigno Gallery: install and activate PeakMaps Gallery first. Settings, statistics and the search index are moved over automatically, and Consigno Gallery is deactivated. Then delete Consigno Gallery under Plugins; the galleries are not affected.
* Old [consigno_gallery] shortcodes and Consigno Gallery blocks keep working. The temporary page PeakMaps Gallery → From Consigno Gallery updates them in all posts, page builder fields and widgets in one go, and can move the image folder to uploads/peakmaps-gallery with a forwarding rule for old image addresses (Apache/LiteSpeed). The old sitemap address keeps working.

= 1.44.0 =
* New name: Consigno Gallery is now PeakMaps Gallery. Only the name you see has changed; shortcodes ([consigno_gallery]), blocks, the folder wp-content/uploads/consigno-gallery/, settings and statistics are unchanged, so existing galleries keep working without changes.
* The admin menu is now placed at the bottom, after the built-in WordPress menus, instead of right below Media.

= 1.43.3 =
* Faster pages: the images in the first row of the first gallery on a page are loaded right away (lazy loading for the rest). Gallery images have width and height, so the page no longer jumps while images load (layout shift), also with original proportions.
* Right image size in any theme: the script measures the actual cell width on the page and sets sizes in pixels, so the browser picks exactly the size it needs in narrow content columns as well as in wide and full-width blocks.
* Accessibility: Tab and Shift+Tab stay inside the lightbox and map windows and include all buttons (share, slideshow and map were missing), and focus moves into the lightbox when it opens.

= 1.43.2 =
* Fix: blurry images in the gallery grid. With a fixed shape (e.g. square), landscape images are drawn wider than the cell, but the browser was told the cell width and picked a size that was too small (newer Chrome also measured the cell with sizes="auto"). The sizes attribute is now calculated per image from its proportions, and the display version (2000 px by default) is offered too for large cells on sharp screens.

= 1.43.1 =
* Translations: load_plugin_textdomain() is no longer used. WordPress loads translations from translate.wordpress.org by itself. The bundled translations in /languages (Norwegian Bokmål) are registered as a fallback and are only used when there is no language pack for the language.

= 1.43.0 =
* Ready for WordPress.org: checked with Plugin Check (no errors).
* The credit link «Made with Consigno Gallery» is now off by default (WordPress.org guideline 10). Turn it on in Settings → Credit.
* readme.txt: «Tested up to», «License URI», new tags, and new sections «External services» (Kartverket, OpenTopoMap), «Privacy» and «Third-party libraries» (Leaflet).
* All inline JavaScript and JSON is now printed with wp_print_inline_script_tag() instead of <script> tags in the HTML.
* Security and code standards: input is sanitized (sort order, gallery and file names), uploads check that the error field exists, wp_delete_file() instead of unlink(), no «sslverify => false» when checking whether originals are blocked, and the database queries against Photo Gallery and Gmedia tables are documented.
* seems_utf8(), deprecated in WordPress 6.9, is no longer used.

= 1.42.3 =
* Gallery list: «Delete selected galleries» is now under the list, with the same trash icon as «Delete selected images» on the edit screen.

= 1.42.2 =
* Gallery edit screen: all buttons under the images have an icon (Save, Delete, Download, Copy, Move), with the same size and line, centred in the button.
* «To gallery …» is now to the right of «Copy selected» and «Move selected».

= 1.42.1 =
* Gallery edit screen: the checkboxes for selecting images (delete, download, copy or move) are now in the first column on the left, as in other WordPress lists.

= 1.42.0 =
* Removed tools that only fixed problems from earlier versions of the migration, which are no longer needed:
  * «Fix the image order in migrated galleries» (Check step). The migration numbers the images in the original order.
  * «Clean up: use the global column setting» (Tools). The migration no longer adds columns="…".
  * «Diagnostics: what the Gmedia tables contain» (Tools, Gmedia).
  * «Troubleshooting: find text in content» (Tools).
* Kept: the migration itself, Check, Replace shortcodes, Clean up and Tools → Gallery links, which is used when a gallery was migrated under another name.

= 1.41.1 =
* «+ New gallery»: the plus sign is now centred in the button (its own icon instead of a Dashicons glyph).

= 1.41.0 =
* Galleries: new galleries are created with a blue «+ New gallery» button next to the heading, which opens a small dialog. The name field is no longer next to the search field, so it is harder to create a gallery by mistake when you want to search.
* The name can be left empty. The gallery then gets a name with today's date (e.g. gallery-2026-10-15, or gallery-2026-10-15-2 if it exists), which can be changed later. If the name cannot be used, the dialog opens again with the error message.

= 1.40.2 =
* Photo map tile: only counts the photos visitors actually see in the map. Photos too far from the GPX track (see Settings → Map) are hidden in the map, and are no longer counted. If none are left, the tile is not shown. Editors still see the tile with all photos.
* GPS positions the camera has marked as invalid (GPSStatus V, no GPS signal) are ignored. Many cameras still write an old or random position in that case. The EXIF window shows «No GPS signal». The EXIF data is read again once after the update.

= 1.40.1 =
* Credit: same style as the PeakMaps credit (nu-branding): small light grey text, right-aligned, underlined link that turns darker grey on hover. The theme's link colour and font size no longer apply to it.

= 1.40.0 =
* New setting «Credit» (on by default): a small «Made with Consigno Gallery» text with a link to consigno.no in the bottom right corner under each gallery. It can be turned off in Settings.

= 1.39.2 =
* Removed the tool «Fix folder names with Norwegian letters» under Migrate → Tools. Migration, new galleries and renaming have given the right folder names (å → a, ø → o, æ → a, HTML codes and Mac/iPhone letters handled) since 1.35.0, so the tool is no longer needed. Galleries that were renamed with the tool keep working under their old name, so old shortcodes still show the right gallery.

= 1.39.1 =
* Removed the tool «Repair gallery blocks» again. It is no longer needed: Replace shortcodes now either replaces an old Photo Gallery or Gmedia block completely, or leaves it untouched. The second step (shortcodes) no longer changes anything inside old blocks or block attributes, so the new shortcode cannot end up inside a block that cannot be edited.

= 1.39.0 =
* New tool: Migration → Tools → «Repair gallery blocks». Finds posts where [consigno_gallery] ended up inside an old Photo Gallery or Gmedia block, which the editor shows as unsupported and cannot edit. The tool replaces the block with an ordinary shortcode block. «Find locked blocks» lists the posts first. A revision is saved for each changed post. The step Replace shortcodes shows a notice when such posts may exist.
* Replace shortcodes: fixed the cause. When the block attributes had lost their backslashes (u0022 instead of \u0022), the gallery in the attribute could not be read. The block was left in place, and only the shortcode inside it was replaced. The attributes are now repaired before they are read, and the shortcode inside the block is used when the attribute does not point to a gallery. Applies to both Photo Gallery and Gmedia blocks.

= 1.38.2 =
* New setting under Map: «Show the camera angle in the maps» (on by default). When it is off, neither the view cone in the lightbox map, the direction arrow in the photo map nor the «Direction» line is shown.
* Photo map: photos taken from the same place (within about 10 m) in different directions now get one arrow per direction. Before, only the direction of the first photo in the group was shown, so the arrow could point the wrong way for the others.

= 1.38.1 =
* Gmedia: galleries that only show one album are recognised even when they have display settings (sort order, number, status). They are no longer reported as migrated «together with» the album, with a wrong suggestion to migrate again (which made a duplicate folder such as gullingen-2).
* Migration list: «Exists, images will be added» is only shown for galleries that are not migrated yet.

= 1.38.0 =
* Migration: empty galleries (no published images) and hidden galleries (unpublished in Photo Gallery, private or draft in Gmedia) are hidden from the list and not selected by default. «Also show empty and hidden galleries (n)» shows them (remembered in the browser). Quick select and «Select all» only apply to visible galleries. The check step and Clean up no longer count them as not migrated.

= 1.37.1 =
* Replace shortcodes: Photo Gallery's and Gmedia's own internal pages (post types bwg_gallery, gmedia_gallery …) are no longer listed or counted; only post types with an edit screen and the usual statuses. This also fixes the «old shortcodes in posts» check under Clean up.
* Post titles in the list are shown without HTML codes (Rødsfjellet instead of R&amp;oslash;dsfjellet).

= 1.37.0 =
* Security: gallery management now requires edit_others_posts (editors and administrators) instead of upload_files (also authors). Filter: consigno_gallery_capability.
* Security/data: renaming a gallery only updates posts the current user can edit, and no longer runs other users' posts through the HTML filter (kses), which could remove embedded maps, iframes and scripts. Posts that are skipped keep working through the old name.
* Temporary ZIP files are removed even if the download is aborted.
* Escaping of the elevation profile text and map marker images; translation fix; code clean-up after static analysis (PHPCS/WordPress standards, PHPStan).

= 1.36.1 =
* Description fields (table and quick mode) are marked with spell check on and the site's language, so the browser's spell checker uses the right dictionary.

= 1.36.0 =
* Quick mode for descriptions on each gallery's edit screen: one large image at a time with a text field. Enter saves and goes to the next image, Shift+Enter gives a new line, Esc saves and closes. «Use previous text» for series, only images without description by default. Each description is saved immediately, and the table on the page is updated.

= 1.35.1 =
* Fix folder names tool: also finds names where æ, ø and å were removed (e.g. mrheinuten for Mårheinuten), HTML codes removed, or made from the source plugin's own slug (r-oslash-dsfjellet). Names you chose yourself are still left alone.
* Folder names: gallery names stored with the wrong character set in older databases (MÃ¥rheinuten) are repaired.

= 1.35.0 =
* Folder names: Norwegian letters are replaced (å → a, ø → o, æ → a) instead of removed. HTML codes in gallery names from Photo Gallery and Gmedia (also double-encoded), letters with a separate ring from Mac/iPhone, and percent-encoding are handled. Applies to migration, new galleries and renaming.
* New tool under Migrate → Tools: fix folder names with Norwegian letters for galleries that were migrated with wrong names (e.g. sta-p-ski → sata-pa-ski). Shortcodes and blocks are updated, and the old name keeps working.

= 1.34.2 =
* Statistics is a submenu item under Consigno Gallery again, now right after All galleries.

= 1.34.1 =
* Statistics moved to its own item in the main admin menu, right below Consigno Gallery.

= 1.34.0 =
* Copy or move selected images to another gallery (or a new one) from the gallery edit screen. Descriptions, thumbnails and WebP sizes follow, without being recreated; images are added last with the next free number. When moving, view counts follow.
* New Health check page: galleries not shown in any post, empty galleries, images without description, GPS or WebP sizes, files over 15 MB, and duplicate images across galleries (same size and content). Cached for an hour, GPS check in rounds on large sites.

= 1.33.0 =
* Share button in the lightbox: the phone's share menu on mobile, copies the link to the image (#image-21) on a computer. The top buttons (full screen, slideshow, share) are placed without gaps.
* Most viewed images: an image is counted when shown in the lightbox for at least 1.5 seconds, once per page view, sent in one request when the visitor leaves. No cookies or personal data; editors and bots are not counted. New Statistics page (7 days, 30 days, year, all time) and view counts per image on the gallery edit screen. Counts follow images when renumbered or when the gallery is renamed.

= 1.32.2 =
* Fix: «Shown in» and renaming counted internal entries (oEmbed cache, working copies from other plugins, customizer drafts) as posts. Only post types with an edit screen and the usual statuses (published, scheduled, draft, pending, private) are counted now.

= 1.32.1 =
* Gallery edit screen: «Shown in» lists the posts and pages that show the gallery, with Edit and View links. The rename form and the notice after renaming list the posts that are or were updated.

= 1.32.0 =
* Galleries can be renamed on the edit screen. Shortcodes and blocks (gallery and photo map) in posts are updated, with a revision saved. The old name keeps working as a shortcut for content the plugin cannot reach. Migration links, search index and image sitemap follow.

= 1.31.0 =
* Gallery edit screen: «Download selected» downloads the selected original images in full size with EXIF. One image is downloaded directly, several as a ZIP file named after the gallery. File names lose the number prefix (001-), so the images can be uploaded to another gallery. Works when the originals are blocked from the web.

= 1.30.0 =
* Gallery edit screen: when some images are missing the WebP sizes (e.g. added via FTP), a notice shows how many, with a button that creates them for that gallery only.

= 1.29.2 =
* Elevation profile: axis labels are ordinary text in the same size as the other map texts, instead of SVG text that was stretched on wide screens.

= 1.29.1 =
* Fix: the photo map tile and map popups failed when another plugin (e.g. PeakMaps) loads an older Leaflet. The plugin now loads its own Leaflet 1.9 alongside it with noConflict(), so both keep working. Map errors show a message instead of doing nothing.

= 1.29.0 =
* Faster and safer lightbox: the gallery links and the lightbox use a display version in WebP (1600, 2000 or 2560 px, default 2000) without EXIF, created together with the other WebP sizes. Falls back to the largest WebP size that exists. Setting to show the original instead.
* Optional block of direct access to the original images (rule in uploads/consigno-gallery/.htaccess, Apache/LiteSpeed). The settings page checks whether it works. Admin shows the originals through WordPress; Google gets the display versions.

= 1.28.0 =
* Route sort uses the timestamps in the GPX file when present: the right direction is chosen on there-and-back trips on the same path, and photos without GPS are placed along the route by time (with an approximate position on the maps). Camera clock offsets (per camera model) and time zones are calculated automatically; the EXIF time zone (OffsetTimeOriginal) is used when the photo has it.

= 1.27.0 =
* New sort order «route» (sort="route", the block and the gallery's own setting): photos are ordered along the GPX track from start to finish in the browser, starting from the time order. Show more, the lightbox and shared links follow the new order.
* Elevation profile under the photo map (tile window and [consigno_gallery_map]) with length, total ascent and highest point, camera markers where the photos were taken (click opens the photo), and a dot on the map following the pointer. profile="none" hides it.

= 1.26.0 =
* Map layer setting now also offers OpenTopoMap (the whole world) and Automatic (Kartverket in Norway, OpenTopoMap elsewhere, using a simplified outline of Norway). Applies to all maps; the map credit follows the choice. The photo map also accepts layer="opentopo" and layer="auto".

= 1.25.0 =
* Slideshow in the lightbox: play/pause button (and space bar), a thin progress bar, preloading of the next image, waits until each image has loaded, pauses on zoom, map and hidden tab. Seconds per image in Settings.
* «Show more images» in large galleries: shows the first 24 (setting, or limit="…" per gallery and in the block); the lightbox, links, search and maps still include all images.
* Fix: settings with the value 0 (off) were read as the default in the browser, and «0» from WordPress could count as on.

= 1.24.0 =
* New setting «Image protection»: prevents right-click, dragging and long-press «Save image» on the images in galleries, the lightbox and the maps, with an optional short copyright message. A deterrent, not a lock: screenshots and developer tools still work.

= 1.23.1 =
* WebP creation and search indexing in Settings: the button shows «Please wait …» with a spinner while working. Batches are shorter, warnings from other plugins no longer break the response, failed requests are retried automatically, and an image that stops the server (memory or time) is skipped so the rest continues.

= 1.23.0 =
* Gutenberg blocks «Consigno Gallery» and «Photo map»: choose the gallery from a searchable list, live preview of the gallery, all settings in the side panel. Dynamic blocks rendered with the same code as the shortcodes. Shortcode blocks can be transformed to the blocks and back, and pasted shortcodes become blocks.
* Search index, image sitemap and asset loading understand the blocks as well as the shortcodes.

= 1.22.0 =
* Migration step 4, Clean up: shows how much space the old Photo Gallery and Gmedia image folders use, checks that everything is migrated, that no posts use the old shortcodes and that the old plugin is deactivated, and moves the folder to a trash folder (can be restored) before it is deleted for good in batches. Database tables are not touched.

= 1.21.0 =
* Search in image descriptions: each post with a gallery gets a search text (custom field consigno_gallery_text) that is kept up to date automatically. The WordPress search finds posts by words in the image descriptions. Search plugins such as Ajax Search Lite can search the same custom field.
* Existing posts are indexed in the background after the update, or at once from Settings → Search.

= 1.20.0 =
* Faster images: WebP thumbnails in 400, 800 and 1200 px, served with <picture>, srcset and sizes. Created on upload and migration, gradually when galleries are viewed, or all at once from Settings. The ordinary thumbnail remains as a fallback.
* Thumbnails are rotated according to EXIF orientation.
* Images in Google: structured data (ImageObject with caption, creator, copyright and optional licence) on pages with galleries, and an image sitemap at /consigno-gallery-images.xml, announced in robots.txt and added to Yoast SEO / Rank Math sitemaps.

= 1.19.0 =
* Shareable links to a photo: the address changes to #image-21 (Norwegian #bilde-21) when a photo is opened. Opening such a link opens the photo. The back button closes the lightbox.
* Zoom in the lightbox: pinch, double-tap, double-click, mouse wheel, + / − / 0 keys, and drag to move around.

= 1.18.0 =
* «Tour map» is now called «Photo map» (Norwegian: «Bildekart»).
* The photo map uses camera markers instead of thumbnails (markers="camera" is the default; dots and thumbs are still available). The gallery tile shows a camera icon.

= 1.17.0 =
* Tour map as an extra tile in the gallery (last by default), with a small map preview. Clicking it opens the tour map; clicking a photo opens the lightbox, and closing it returns to the map. Setting under Map, and tourmap="first|last|none" per gallery.

= 1.16.0 =
* New shortcode [consigno_gallery_map]: tour map with the GPX track and all photos with a position. Photos at the same place are grouped, direction is shown, and clicking opens the lightbox.

= 1.15.1 =
* «Import» is now called «Migrate» (Norwegian: «Migrer») throughout.

= 1.15.0 =
* Import page reorganised into steps: 1 Import images, 2 Check, 3 Replace shortcodes, plus a Tools tab for links, clean-up, troubleshooting and diagnostics.
* Import list shows whether each gallery is already imported; only galleries not imported are selected by default. Quick select: not imported, all, none.
* Import options are collapsed with a short summary.

= 1.14.0 =
* Map: photos whose position is far from the GPX track (default more than 500 m, adjustable in Settings) get no map icon. Editors see a faded icon with the distance.

= 1.13.0 =
* New shortcode attribute gpx="…": GPX track(s) for the map, overriding tracks found in the post. gpx="none" turns tracks off.
* New Help page describing the shortcode and all attributes with examples.

= 1.12.1 =
* Map: if both «tour.gpx» and «tourF.gpx» are found, only the F version is used.

= 1.12.0 =
* Upload on the gallery edit screen: drag and drop or choose images, an Upload button, per-file progress, and automatic save (descriptions included) when the upload is finished.

= 1.11.7 =
* Gallery edit screen: EXIF and Delete image are icon buttons with tooltips.

= 1.11.6 =
* Preview size: three larger levels (900, 1100 and 1300 px). From 900 px the original image is shown, so it stays sharp.

= 1.11.5 =
* Gallery edit screen: the image table and description fields use the full screen width.

= 1.11.4 =
* Preview size buttons: icons centred, and the buttons stay right after «Image» instead of moving with the column width.

= 1.11.3 =
* Gallery edit screen: − and + buttons above the images change the preview size (160–720 px). The description field grows with it. The size is remembered in the browser.

= 1.11.2 =
* Gallery list: sorted by created date, newest first, by default.

= 1.11.1 =
* Map: the line naming the GPX file under the map is removed. The track is still drawn.

= 1.11.0 =
* Map: images with a compass direction in EXIF (GPSImgDirection) get a view cone marker showing which way the photo was taken. The width of the cone follows the focal length. The direction is shown under the map and in the EXIF popup.

= 1.10.4 =
* Map icon: stronger reset of theme button styles (no large frame on mobile), and the icon is no longer clipped by the three-line limit under the images.
* Map: opens inside the lightbox when it is in full screen (it was invisible before), and shows an error message instead of doing nothing if the map fails.

= 1.10.3 =
* Map: GPX tracks are also found on the page itself when the map opens (PeakMaps maps with data-peaks, links to .gpx files, data-gpx attributes), limited to the article the gallery is in. Works with page caching.

= 1.10.2 =
* Map: altitude is no longer shown (GPS altitude in photos is often inaccurate).

= 1.10.1 =
* GPX: paths are output without domain, so the file is always fetched from the same origin as the page (www/non-www).
* GPX: files with namespace prefixes (gpx:trkpt) and tracks without trkseg are read.
* GPX: also finds relative paths, paths relative to the uploads folder, and GPX URLs in custom fields (Elementor, ACF).
* GPX: editors see in the map why a track is not shown.

= 1.10.0 =
* Map: GPX tracks from the post the gallery is shown in (links, file blocks, GPX plugin shortcodes, or GPX files uploaded to the post) are drawn in the map. Only files on the same website. Filter: consigno_gallery_gpx_urls.

= 1.9.0 =
* Map: optional map icon next to the description for images with a GPS position (lightbox and grid). Opens a map popup with Kartverket tiles, altitude and a link to Norgeskart. Off by default.
* EXIF time, position and altitude are cached in gallery.json and only read again when a file changes.
* Leaflet 1.9.4 is bundled (BSD-2-Clause) and only loaded when a map is opened.

= 1.8.0 =
* Sort order per gallery: file name, date taken (EXIF), date added, description (ascending or descending), custom (drag and drop) or random. Saved and used on the website and in the lightbox.
* New shortcode attribute sort="…" to override the order for one post.

= 1.7.0 =
* New: EXIF button for each image on the gallery edit screen. Shows file information, camera, lens, exposure and GPS location (with map link) in a popup.

= 1.6.17 =
* Lightbox on touch screens: the arrows are hidden (swipe to browse). They are still available to screen readers.

= 1.6.16 =
* Lightbox on phones in portrait: the arrows sit as a pair centred above the image, or in the top bar when there is no room above.

= 1.6.15 =
* Lightbox on phones in portrait: the arrows sit on top of the image edges, also for narrow portrait images.

= 1.6.14 =
* Lightbox: own layout for phones in landscape. The image uses the full height, and the buttons lie on top of the image, clear of the iPhone notch.

= 1.6.13 =
* Gallery names stored with HTML entities (R&amp;oslash;dsfjellet) are decoded everywhere, so names and folder names come out right (rodsfjellet).
* Photo Gallery: galleries are linked automatically to a folder with a similar name or the same images, like Gmedia.
* Shortcodes whose stored row is missing are found by the gallery title, also when the title contains HTML entities.

= 1.6.12 =
* Lightbox texts and the description position are also stored on the gallery itself, so translations work even when a performance plugin moves or delays inline scripts.

= 1.6.11 =
* Lightbox buttons show translated tooltips with keyboard shortcuts.

= 1.6.10 =
* Larger image in the lightbox; buttons get a subtle background so they stay visible over the image.

= 1.6.9 =
* Photo Gallery: Gutenberg blocks are recognised more broadly (any bwg or photo-gallery block, with or without attributes, galleryId, or a shortcode inside the block).

= 1.6.8 =
* Troubleshooting tool on the import page: find text in post content and custom fields, to see how old galleries are stored.
* Old shortcodes are recognised regardless of upper or lower case.

= 1.6.7 =
* Gmedia: Gutenberg blocks are recognised more broadly (any gmedia or grand-media block, with or without attributes, nested attributes, or a shortcode inside the block).

= 1.6.6 =
* Check report: unpublished or private images that were imported are no longer reported as foreign images.
* Check report: shows which source gallery foreign images come from.

= 1.6.5 =
* Photo Gallery: image order now follows the sorting used by the gallery's shortcodes (or the global Photo Gallery settings), not only the manual order.
* Photo Gallery: check report and a button to fix the order of imported galleries, like for Gmedia.

= 1.6.4 =
* Gmedia: image order now matches Gmedia exactly (ties by ascending ID, tag and category order from the Gmedia settings, filename sorting).
* Gmedia: the check report shows when the order is wrong, and a new button fixes the order of imported albums without importing again.

= 1.6.3 =
* Gallery list: select several or all galleries and delete them at once.

= 1.6.2 =
* Gmedia: albums with the same name get separate folders instead of being merged.
* Gmedia: existing folders with other images are not reused; folders with the same images are.
* Gmedia: galleries that combine albums are explained and not selected by default.
* Gmedia: new report that checks each imported album against its folder.

= 1.6.1 =
* Full screen button in the lightbox (keyboard: F). Hidden where the browser does not support it.

= 1.6.0 =
* New global setting: show the description in small text under each image in the gallery grid.

= 1.5.2 =
* Larger image previews and a smaller description field on the gallery edit screen.

= 1.5.1 =
* Clearer image deletion: a Delete image link per image, select all, and a Delete selected images button. Save gallery no longer deletes anything.

= 1.5.0 =
* Gallery list: search field, created date column, and sorting by name and date.
* Each gallery stores its created date in gallery.json.

= 1.4.3 =
* Gmedia: albums are linked automatically to an existing folder with the same images, or with a similar name (æøå, case, -2 suffix).

= 1.4.2 =
* Gmedia: galleries that only show one album are hidden from the import list (their shortcodes still map to the album).

= 1.4.1 =
* Gmedia: images are recognised by file extension as well as MIME type, and more status values count as public.
* Gmedia: gallery queries stored as JSON or as query arguments (album__in etc.) are supported.
* Gmedia: diagnostics panel on the import page.

= 1.4.0 =
* New import source: Gmedia Gallery (albums and galleries, with descriptions, gallery links and shortcode replacement).
* The import page now has tabs for Photo Gallery and Gmedia.

= 1.3.6 =
* New clean-up tool: remove columns from all Consigno Gallery shortcodes so the global setting is used.
* Converted Photo Gallery shortcodes no longer get a columns attribute.

= 1.3.5 =
* Photo Gallery blocks that store the full shortcode in their attributes are now converted.
* Blocks whose inner shortcode was already converted are cleaned up.

= 1.3.4 =
* Import no longer stops on server errors: retries one image at a time and skips images that fail.
* Thumbnails are skipped for images too large for the available PHP memory, instead of causing a fatal error.

= 1.3.3 =
* Admin menu renamed to Consigno Gallery.

= 1.3.2 =
* The page keeps its scroll position when the lightbox is closed.

= 1.3.1 =
* Images on the gallery edit screen open in the lightbox instead of a new tab.

= 1.3.0 =
* New global setting: show the image description as an overlay at the top or bottom of the image, or below it.

= 1.2.1 =
* Shortcodes with typographic quotes, HTML entities or slashes are now converted.
* Falls back to the gallery title when the Photo Gallery shortcode row is missing.
* New table for linking Photo Gallery galleries to Consigno Gallery folders manually.
* The report shows each shortcode that could not be converted.

= 1.2.0 =
* Replace Photo Gallery shortcodes and blocks in posts with [consigno_gallery].

= 1.1.0 =
* Import from Photo Gallery by 10Web.

= 1.0.0 =
* First release.
