🚀 EzyPlatform Toolkit – Bootstrap & Sync for EzyArticle
Official Visual Studio Code extension for bootstrapping, synchronizing, previewing, and publishing EzyArticle projects directly from your local workspace to an EzyPlatform server.
Designed for structured enterprise CMS workflows and scalable content management.
✨ Key Features
- ⚡ Project Bootstrap for EzyArticle
- 🔐 Secure Environment Authentication
- 🔄 Two-way Synchronization (Local ↔ Server)
- 🚀 One-click Publish
- 👁 Live Preview
- 🖼 Media Upload with Automatic Normalization
- ⏱ Access Token Auto-Renew Scheduler
🏗 Project Bootstrap
When right-clicking inside the workspace and environment.json does not exist, a command:
Initialize EzyArticle Project
will generate:
[
{
"name": "production",
"default": true,
"admin_url": "<EzyPlatform Production Admin URL>",
"admin_access_token": "<Admin Access Token>"
},
{
"name": "beta",
"admin_url": "<EzyPlatform Beta Admin URL>",
"admin_access_token": "<Admin Access Token>",
"notes": "Optional environment"
}
]
And scaffold the project structure:
api/v1/media/.gitignore
pages/example-page/
content.html
head.html
foot.html
meta.json
🔐 Authentication & Token Management
The extension validates:
admin_url
admin_access_token
If missing or invalid, guided error messages will appear.
Automatic Token Renewal
The extension:
- Checks every 5 minutes for valid credentials.
- Fetches cookie-based access token.
- Schedules auto-renew 15 minutes before expiration.
- Handles failures gracefully without interrupting workflow.
🔄 Synchronization Features
Sync Page Fragments (Server → Local)
Fetch fragments via:
/ezyarticle/api/v1/pages/fragments
Generate structure:
page-fragments/
<page-name>/
<fragment-name>/
content.html
head.html
foot.html
Sync Individual Fragment Files
Supports:
- content.html / content..html
- head.html / head..html
- foot.html / foot..html
- meta.json / meta..json
Maps:
| File |
Server Field |
| content |
content |
| head |
additionalHead |
| foot |
additionalFoot |
| meta |
structured JSON |
Sync Pages (Server → Local)
API:
/ezyarticle/api/v1/post-by-slug/{slug}
Automatically maps:
- content
- title
- summary
- pageType
- contentType
- status
- metadata
- featuredImageId
⬆ Sync Local Changes to Server
When saving supported files, the extension:
- Detects language variants
- Extracts metadata
- Resolves slug or fragment info
- Sends structured payload
- Updates
meta.json with response data
🚀 Publish to Server
Right-click → Publish Content to Server
Calls:
/ezyarticle/api/v1/posts/save-simply?publish=true
Ensures:
- Language-aware content resolution
- Metadata integrity
- Safe overwrite confirmation
👁 Preview Page
Right-click → Preview
Triggers:
<admin_url>/ezyarticle/pages/{slug}/preview?lang=<language>
Automatically saves files before opening browser.
When adding files to:
/api/v1/media
The extension:
Normalizes filename:
- Removes special characters
- Converts accented characters
- Replaces spaces with hyphens
- Ensures regex compliance
Checks existence:
/api/v1/media/{file_name}/contains
- If exists → Replace
- If not → Add new media
Supports progress tracking and upload feedback.
🎯 Who Is This For?
- EzyPlatform developers
- EzyArticle CMS teams
- Enterprise content teams
- Structured content workflows
- Multi-language publishing environments
🧠 Why Use This Extension?
Instead of manual API calls and folder management, this extension provides:
- Consistent project structure
- Reliable token lifecycle management
- Bi-directional synchronization
- Reduced deployment errors
- Faster onboarding for new team members
📬 Support & Resources
License
This extension is distributed under the MIT License; see LICENSE for details.
Built and maintained by the EzyPlatform team at YoungMonkeys.