Better CLI, local docs server, CSV formatting, and better shared server support
In celebration of the 3,000 stars (!) Ponzu has received to-date, we're releasing v0.9.3
...we are far past due for a release. Lots has happened since releasing v0.9.2
, including:
-
@martint17r's fantastic refactoring of our CLI, now using the legendary
cobra
package by @spf13. This will make it much easier for others to contribute to the CLI, not to mention the organizational benefits it offers. Huge thank you to @martint17r for taking the lead on this. -
@torniker's fix for some really pesky bugs that would occur when using multiple selects or repeaters - this one saved me a huge headache on a real project, and I imagine tons of others. Additionally, @torniker fixed a number of bugs in the approve handlers when merging externally created content. Thank you @torniker for your work on these!
-
@guycalledseven fixed the system and database initialization steps which had a conflict when Ponzu users implemented the
search.Searchable
interface on their content types and were using UI-enabled addons. This was really tricky and took a lot of work.. especially in undocumented territory - so thank you, @guycalledseven! More to come from us on the addon user and developer experience, so keep an eye out. -
@tom-f responded to my issue / feature request to add a crucial search index backup routine in the same vain as the system / analytics / uploads backups via HTTP. This included a nice abstraction of file system archival which is now available in the
system/backup
package. Big thank you to @tom-f for helping on this! -
A handy CSV export feature from the admin UI. Just implement the CSVFormattable interface and you get a nice export / download button for your admins to use. This is part of the new family of
Format
interfaces which can be extended to add various export formats.
There were many more contributions (listed below) made by community members and all of them are truly appreciated - thank you all!
This release includes contributions from: @torniker, @tom-f, @bradleyfalzon, @guycalledseven, @ivanov, @martint17r, @nilslice
Everything new in v0.9.3
:
- [
f43c8b9
] include .gitignore in new projects, add hostname default to init, security enhancement, HTML unescape reference options - [
a931ae0
] add--bind
option to run cmd on CLI to set address of listener - [
3734011
] update addon api to support non-domain bind addresses - [
abd0e59
] fixed approve handler losing data for string slices - thank you @torniker! - [
efbc295
] fix issues #59 and #167 regarding multiple repeaters and data inconsistency - thank you @torniker! - [
0a1d7d9
] add backup routine for search indexes - thanks @tom-f! - [
30dea40
] create filesystem backup/archive abstraction package - thanks @tom-f! - [
f4c5d79
] fix for db initialization and addon compatibility when using full-text search indexing - thanks to @guycalledseven! - [
e3fb3ab
] provide--docs
&--docs-port
flags to run local docs server - [
1b15bb3
] hydrate item with data in Hookable methods - thanks to @ivanov! - [
fa6a490
] refactor for unix consistency and to use @spf13/cobra package - thanks to @martint17r! - [
f176e7d
] add CSV export support with new CSVFormattable](https://docs.ponzu-cms.org/Interfaces/Format/#formatcsvformattable) interface - [
70a0164
] docs typo fixes - thanks to @bradleyfalzon! - [
ed0922f
] Included video walkthrough / introduction to Ponzu
Breaking Changes:
- item.Pushable & item.Omittable now have slightly different method sets. See the updated documentation here: https://docs.ponzu-cms.org/Interfaces/Item
type Pushable interface {
// the values contained in []string fields returned by Push must be URL paths
Push(http.ResponseWriter, *http.Request) ([]string, error)
}
type Omittable interface {
Omit(http.ResponseWriter, *http.Request) ([]string, error)
}
With these changes, you can now intercept the request/response from within your implementation and act accordingly. For example, you may want to omit a field only if the request contains certain data.