Skip to content
PushwordPublic

Latest commit

 

History

366 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pushword Flat — Flat-File CMS

Turn Pushword into a flat-file CMS — pages and media stored as Markdown + CSV on disk, round-tripped with the database and trackable in Git.

Latest Version Software License GitHub Tests Action Status

Code Coverage Total Downloads

Features

  • Two-way pw:flat:sync between Markdown/CSV files and the database.
  • Auto-export after admin edits, optional auto git commit.
  • Conflict resolution, editorial locks and webhook locking.
  • Optional user sync (users.yaml), conversation and snippet sync.

Installation

composer require pushword/flat

Documentation

Visit pushword.piedweb.com/extension/flat.

Sync flow (pw:flat:sync)

Each entity decides its own direction: import when files are newer, export when the database is. Details: sync behavior reference.

flowchart TD
    Start([pw:flat:sync]) --> LockCheck{Webhook lock?}
    LockCheck -->|Yes| Blocked([Blocked])
    LockCheck -->|No| Media{Media: file hash changed?}

    Media -->|Yes| MediaImport[Import media.csv + files<br/>delete media missing from CSV<br/>regenerate media.csv]
    Media -->|No| MediaExport[Export media.csv]
    MediaImport --> Page
    MediaExport --> Page

    Page{Pages: .md newer than DB?} -->|Yes| PageImport[Import redirection.csv + .md<br/>resolve relations, delete orphan pages<br/>regenerate index.csv]
    Page -->|No| PageExport[Export .md, index.csv, redirection.csv]
    PageImport --> Others
    PageExport --> Others

    Others[Conversations, users.yaml, snippets,<br/>extension syncs] --> End([Done])
Loading

The Pushword ecosystem

Pushword is a modular CMS — one Symfony bundle for the core and one bundle per feature. See the full list and guides at pushword.piedweb.com/extensions.

Contributing

If you're interested in contributing to Pushword, please read our contributing docs before submitting a pull request.

Credits

License

The MIT License (MIT). Please see License File for more information.

PHP Packages Open Source

Releases

Packages

Used by

Contributors

Languages