Documents 1.2.0: The Chameleon Content Plugin for Geeklog
- Saturday, September 19 2026 @ 04:24 am EDT
- Contributed by: ::Ben
- Views: 118
The Documents plugin for Geeklog has reached version 1.2.0, and this release shows just how far a configurable content plugin can go.
Documents is increasingly difficult to describe with a single label because it is no longer just a traditional “documents” plugin.
It can become a directory.
A knowledge base.
A technical reference library.
A product or equipment catalog.
A collection of tutorials.
A database of places.
A recipe collection.
A portfolio.
A resource center.
Or almost any other structured content application you can imagine.
That is why “chameleon” may be the best description of the plugin.
Documents is a chameleon in two dimensions: its configurable fields define almost any content structure, while its templates can completely transform how that content is presented.
The same plugin can therefore power sections that look and behave very differently while sharing the same permissions, workflow, SEO, search and interoperability foundation.
Build Your Own Content Types
The central idea behind Documents is simple: categories define their own fields.
Instead of forcing every record into the same title-and-body structure, an administrator can create categories containing fields adapted to the type of information being published.
A category might contain:
- a title;
- a short description;
- a long text area;
- an image;
- a date;
- a checkbox;
- a choice or status;
- a MediaGallery album;
- a Maps marker;
- structured properties;
- additional custom fields.
Another category can use a completely different structure.
This makes Documents particularly useful when a Geeklog site needs something more structured than a traditional article, but creating a dedicated plugin for every content type would be excessive.
The same Documents installation can therefore power many completely different sections of a website.
A Chameleon by Structure — and by Presentation
The “chameleon” nature of Documents does not come only from configurable fields.
It also comes from its template system.
A category can define what data should be stored, while templates determine how that data should appear on screen.
One category may look like a traditional editorial article.
Another can look like a technical data sheet.
Another can become a directory entry.
Another can behave like a product page.
Another can present a place, an activity, a tutorial, a resource or a reference record.
Documents 1.2.0 includes a modern default presentation, but administrators are not locked into it.
Custom templates remain supported, allowing site builders to control:
- document structure;
- field placement;
- primary content areas;
- image positioning;
- structured-property blocks;
- additional presentation zones;
- category-specific layouts.
The default template itself exposes clear presentation areas such as the main image, main content and structured properties.
This separation between content structure and presentation is one of Documents' strongest features.
In other words:
fields define what the content is, and templates define what the content becomes on screen.
That is what makes Documents a true chameleon inside Geeklog.
From Structured Records to Rich Editorial Pages
Documents 1.2.0 significantly improves the default public presentation.
Documents are no longer limited to looking like database records.
The modern presentation layer now includes:
- semantic document markup;
- a primary image area;
- long-form editorial content;
- structured properties;
- breadcrumbs;
- responsive layouts;
- improved typography for headings, paragraphs, lists, tables and quotations.
The public CSS is also designed to remain theme-friendly.
Themes such as Eclipse can provide visual variables, while Documents keeps portable fallbacks so the plugin remains usable with other Geeklog themes.
That means a technical specification can look like a structured data sheet, while another category can look much closer to a traditional article or feature page.
SEO Is Now a First-Class Feature
Version 1.2.0 also gives Documents a much stronger SEO foundation.
Public content can now benefit from:
- clean canonical URLs;
- dedicated meta descriptions;
- OpenGraph metadata;
- Twitter Card metadata;
- JSON-LD structured data;
- breadcrumb structured data;
- canonical document and category URLs.
Individual documents use CreativeWork as the default Schema.org representation, while supported configurations can select richer schema types.
Categories use CollectionPage structured data.
Documents can also derive useful descriptions from document content when dedicated metadata is unavailable.
This makes the plugin much more suitable for public content intended to be discovered and indexed by search engines, rather than being treated only as an internal database.
A Plugin That Plays Well With the Rest of Geeklog
One of the most important changes in Documents 1.2.0 is less visible to visitors but very important for the future of Geeklog.
Documents now exposes its content through shared Geeklog interoperability mechanisms instead of expecting other plugins to understand its database structure.
It supports normalized Item Info access through:
plugin_getiteminfo_documents()
Consumers can request individual documents or collections without knowing anything about Documents' private SQL tables.
Documents also exposes:
- canonical URL resolution;
- collection access;
- sitemap contribution;
- lifecycle notifications;
- feeds;
- statistics;
- recent and popular content.
This means plugins such as Hello, Hub, IndexNow, Agent and XML Sitemap can work with Documents content through stable contracts instead of plugin-specific SQL.
Ready for Agent and Machine Consumers
Documents 1.2.0 goes even further by exposing its configurable field structure.
A trusted consumer can discover what fields exist in a category through the fields_describe service.
It can retrieve exact stored source fields through:
source_fields_get
It can enumerate source fields through:
source_fields_collection
And, when authorized, it can update editable source fields through:
source_fields_update
Documents currently advertises capabilities including:
content.read
content.collection
content.search
content.popular
content.url.resolve
content.lifecycle
content.syndication
content.fields.read
content.source_fields.read
content.source_fields.collection
content.source_fields.update
dashboard.summary
This is particularly interesting for the developing Agent for Geeklog architecture.
An AI assistant, administration tool or migration utility should not need to reverse-engineer a plugin database before understanding its content.
Documents now describes its own content and remains responsible for permissions and mutations.
That is an important architectural step.
Controlled Editing Without Giving Away the Database
The source-field update capability is deliberately conservative.
Only editorial text and textarea fields can currently be modified through the generic source-field service.
Sensitive or integration-owned fields such as:
- images;
- MediaGallery albums;
- Maps markers;
- files;
- categories;
remain read-only through this interface.
Updates also include:
- Geeklog permission checks;
- required-field validation;
- SHA-256 fingerprints;
- optimistic concurrency protection;
- dry-run validation;
- modification timestamp updates;
- normal
PLG_itemSaved()lifecycle notifications.
This opens the door to future content audits, migrations, bulk maintenance and AI-assisted administration without allowing external consumers to bypass Documents' own rules.
Optional Integrations Stay Optional
Documents can become even more powerful when combined with other Geeklog plugins.
A category can use MediaGallery albums or Maps markers, for example.
But Documents 1.2.0 also reinforces an important design principle:
the plugin owning the data remains responsible for that data.
Maps remains responsible for marker operations.
MediaGallery remains responsible for albums and media.
Documents communicates through integration boundaries instead of taking ownership of another plugin's private database tables.
And if Maps or MediaGallery is not installed, normal Documents functionality continues to work.
Autotags, Blocks, Feeds and Statistics
Documents content can also participate naturally in the rest of a Geeklog site.
Version 1.2.0 provides reusable autotags such as:
[document:document-id]
[document:document-id card]
[documents:category-slug]
This makes it possible to reference Documents content from elsewhere in Geeklog without duplicating it.
The plugin also provides PHP blocks for:
- recent documents;
- popular documents.
Native Geeklog feed callbacks allow Documents content to participate in RSS/Atom syndication.
Native statistics callbacks expose document counts and popularity data.
Documents also maintains hit counts, allowing consumers to request popular content using hits-desc ordering.
Stronger Security and Workflows
The modernization work is not limited to visible features.
Documents 1.2.0 also significantly strengthens security and editorial workflow handling.
The release includes:
- CSRF protection for mutating operations;
- centralized visibility and edit checks;
- server-side field normalization;
- validation of selection values;
- protection against forged ownership and permission fields;
- secure document/category binding;
- safer image uploads;
- improved deletion logic;
- clearer handling of active, inactive, draft and submitted content.
Public visibility and editorial status are deliberately treated as separate concepts.
This allows authorized users to work with drafts, submissions or restricted content without accidentally exposing them to public indexing.
Multisite and Long-Term Compatibility
Documents 1.2.0 supports both single-site and multisite Geeklog installations.
Persistent plugin data is derived from each site's own data path so sites sharing plugin code do not accidentally share runtime content.
The supported compatibility range remains intentionally broad:
Geeklog 2.1.1 through 2.2.2
PHP 5.6 through PHP 8.1
MySQL / MariaDB
This makes the release suitable both for established Geeklog installations and for sites moving toward Geeklog 2.2.2.
Tested Before Packaging
The installable archive is produced through GitHub Actions only after the automated regression suite succeeds.
The workflow validates the plugin under both PHP 5.6 and PHP 8.1 before generating the release archive.
A failing regression test prevents a new package from being created.
This helps keep modernization work compatible with both ends of the supported environment range.
One Plugin, Many Applications
The most interesting thing about Documents 1.2.0 is probably not any single feature.
It is what happens when all of them are combined.
Configurable fields.
Custom templates.
Rich public presentation.
Images.
Maps and MediaGallery integration.
SEO.
Permissions.
Editorial workflows.
Autotags.
Feeds.
Statistics.
Machine-readable content.
Agent interoperability.
Together, these capabilities turn Documents into something much broader than its original name suggests.
You define the structure.
You define the presentation.
Geeklog manages permissions and lifecycle.
Documents adapts.
That is why Documents can reasonably be considered one of Geeklog's most flexible chameleon plugins.
If you need a new structured section on a Geeklog site, there is now a good chance you do not need to start by writing a dedicated plugin.
Start by asking a simpler question:
Can Documents become that application instead?
Download Documents 1.2.0
Documents 1.2.0 is available now from the official Geeklog Plugins repository: