summaryrefslogtreecommitdiff
path: root/docs/build/mkdocs
diff options
context:
space:
mode:
Diffstat (limited to 'docs/build/mkdocs')
-rw-r--r--docs/build/mkdocs/search_index.json26
1 files changed, 13 insertions, 13 deletions
diff --git a/docs/build/mkdocs/search_index.json b/docs/build/mkdocs/search_index.json
index bf2f349..e8dad7b 100644
--- a/docs/build/mkdocs/search_index.json
+++ b/docs/build/mkdocs/search_index.json
@@ -27,7 +27,7 @@
},
{
"location": "/CLI/General-Usage/",
- "text": "$ ponzu \n[\nflags\n]\n \ncommand\n \nparams\n\n\n\n\n\n\nCommands\n\n\nnew\n\n\nCreates a project directory of the name supplied as a parameter immediately\nfollowing the 'new' option in the $GOPATH/src directory. Note: 'new' depends on \nthe program 'git' and possibly a network connection. If there is no local \nrepository to clone from at the local machine's $GOPATH, 'new' will attempt to \nclone the 'github.com/ponzu-cms/ponzu' package from over the network.\n\n\nExample:\n\n\n$ ponzu new github.com/nilslice/proj\n\n New ponzu project created at \n$GOPATH\n/src/github.com/nilslice/proj\n\n\n\n\n\n\n\ngenerate, gen, g\n\n\nGenerate boilerplate code for various Ponzu components, such as \ncontent\n.\n\n\nExample:\n\n\n generator struct fields and built-in types...\n \n|\n \n|\n\n v v \n$ ponzu gen content review title:\nstring\n body:\nstring\n:richtext rating:\nint\n\n ^ ^\n \n|\n \n|\n\n struct \ntype\n \n(\noptional\n)\n input view specifier\n\n\n\n\n\nThe command above will generate the file \ncontent/review.go\n with boilerplate\nmethods, as well as struct definition, and corresponding field tags like:\n\n\ntype\n \nReview\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nTitle\n \nstring\n \n`json:\ntitle\n`\n\n \nBody\n \nstring\n \n`json:\nbody\n`\n\n \nRating\n \nint\n \n`json:\nrating\n`\n\n \nTags\n \n[]\nstring\n \n`json:\ntags\n`\n\n\n}\n\n\n\n\n\n\nThe generate command will intelligently parse more sophisticated field names\nsuch as 'field_name' and convert it to 'FieldName' and vice versa, only where \nappropriate as per common Go idioms. Errors will be reported, but successful \ngenerate commands return nothing.\n\n\nInput View Specifiers\n \n(optional)\n\n\nThe CLI can optionally parse a third parameter on the fields provided to generate \nthe type of HTML view an editor field is presented within. If no third parameter\nis added, a plain text HTML input will be generated. In the example above, the \nargument shown as \nbody:string:richtext\n would show the Richtext input instead\nof a plain text HTML input (as shown in the screenshot). The following input\nview specifiers are implemented:\n\n\n\n\n\n\n\n\nCLI parameter\n\n\nGenerates\n\n\n\n\n\n\n\n\n\n\ncheckbox\n\n\neditor.Checkbox()\n\n\n\n\n\n\ncustom\n\n\ngenerates a pre-styled empty div to fill with HTML\n\n\n\n\n\n\nfile\n\n\neditor.File()\n\n\n\n\n\n\nhidden\n\n\neditor.Input()\n + uses type=hidden\n\n\n\n\n\n\ninput, text\n\n\neditor.Input()\n\n\n\n\n\n\nrichtext\n\n\neditor.Richtext()\n\n\n\n\n\n\nselect\n\n\neditor.Select()\n\n\n\n\n\n\ntextarea\n\n\neditor.Textarea()\n\n\n\n\n\n\ntags\n\n\neditor.Tags()\n\n\n\n\n\n\n\n\nGenerate Content References\n\n\nIt's also possible to generate all of the code needed to create references between\nyour content types. The syntax to do so is below, but refer to the \ndocumentation\n\nfor more details:\n\n\n$ ponzu gen c author name:string genre:string:select\n$ ponzu gen c book title:string author:@author,name,genre \n\n\n\n\n\nThe commands above will generate a \nBook\n Content type with a reference to an\n\nAuthor\n item, by also generating a \nreference.Select\n\nas the view for the \nauthor\n field.\n\n\n\n\nbuild\n\n\nFrom within your Ponzu project directory, running build will copy and move \nthe necessary files from your workspace into the vendored directory, and \nwill build/compile the project to then be run. \n\n\nOptional flags:\n- \n--gocmd\n sets the binary used when executing \ngo build\n within \nponzu\n build step\n\n\nExample:\n\n\n$ ponzu build\n\n(\nor\n)\n\n$ ponzu build --gocmd\n=\ngo1.8rc1 \n# useful for testing\n\n\n\n\n\n\nErrors will be reported, but successful build commands return nothing.\n\n\n\n\nrun\n\n\nStarts the HTTP server for the JSON API, Admin System, or both.\nThe segments, separated by a comma, describe which services to start, either \n'admin' (Admin System / CMS backend) or 'api' (JSON API), and, optionally, \nif the server should utilize TLS encryption - served over HTTPS, which is\nautomatically managed using Let's Encrypt (https://letsencrypt.org) \n\n\nOptional flags:\n\n\n\n\n--bind\n sets the address for ponzu to bind the HTTP(S) server\n\n\n--port\n sets the port on which the server listens for HTTP requests [defaults to 8080]\n\n\n--https-port\n sets the port on which the server listens for HTTPS requests [defaults to 443]\n\n\n--https\n enables auto HTTPS management via Let's Encrypt (port is always 443)\n\n\n--dev-https\n generates self-signed SSL certificates for development-only (port is 10443)\n\n\n--docs\n runs a local documentation server in case of no network connection\n\n\n--docs-port\n sets the port on which the docs server listens for HTTP requests [defaults to 1234]\n\n\n\n\nExample: \n\n\n$ ponzu run\n\n(\nor\n)\n\n$ ponzu run --bind\n=\n0\n.0.0.0\n\n(\nor\n)\n\n$ ponzu run --port\n=\n8080\n --https admin,api\n\n(\nor\n)\n \n$ ponzu run admin\n\n(\nor\n)\n\n$ ponzu run --port\n=\n8888\n api\n\n(\nor\n)\n\n$ ponzu run --dev-https\n\n\n\n\n\nDefaults to \n$ ponzu run --port=8080 admin,api\n (running Admin \n API on port 8080, without TLS)\n\n\nNote:\n \nAdmin and API cannot run on separate processes unless you use a copy of the\ndatabase, since the first process to open it receives a lock. If you intend\nto run the Admin and API on separate processes, you must call them with the\n'ponzu' command independently.\n\n\n\n\nupgrade\n\n\nWill backup your own custom project code (like content, addons, uploads, etc) so\nwe can safely re-clone Ponzu from the latest version you have or from the network \nif necessary. Before running \n$ ponzu upgrade\n, you should update the \nponzu\n\npackage by running \n$ go get -u github.com/ponzu-cms/ponzu/...\n \n\n\nExample:\n\n\n$ ponzu upgrade\n\n\n\n\n\n\n\nadd, a\n\n\nDownloads an addon to GOPATH/src and copies it to the current Ponzu project's\n\n/addons\n directory.\n\n\nExample:\n\n\n$ ponzu add github.com/bosssauce/fbscheduler\n\n\n\n\n\nErrors will be reported, but successful add commands return nothing.\n\n\n\n\nversion, v\n\n\nPrints the version of Ponzu your project is using. Must be called from within a \nPonzu project directory. By passing the \n--cli\n flag, the \nversion\n command will \nprint the version of the Ponzu CLI you have installed.\n\n\nExample:\n\n\n$ ponzu version\nPonzu v0.8.2\n\n# (or)\n\n$ ponzu version --cli\nPonzu v0.9.2\n\n\n\n\n\n\n\nContributing\n\n\n\n\nCheckout branch ponzu-dev\n\n\nMake code changes\n\n\nTest changes to ponzu-dev branch\n\n\nmake a commit to ponzu-dev\n\n\nto manually test, you will need to use a new copy (ponzu new path/to/code), \nbut pass the \n--dev\n flag so that ponzu generates a new copy from the \nponzu-dev\n \nbranch, not master by default (i.e. \n$ponzu new --dev /path/to/code\n)\n\n\nbuild and run with \n$ ponzu build\n and \n$ ponzu run\n\n\n\n\n\n\nTo add back to master: \n\n\nfirst push to origin ponzu-dev\n\n\ncreate a pull request \n\n\nwill then be merged into master\n\n\n\n\n\n\n\n\nA typical contribution workflow might look like:\n\n\n# clone the repository and checkout ponzu-dev\n\n$ git clone https://github.com/ponzu-cms/ponzu path/to/local/ponzu \n# (or your fork)\n\n$ git checkout ponzu-dev\n\n\n# install ponzu with go get or from your own local path\n\n$ go get github.com/ponzu-cms/ponzu/...\n\n# or\n\n$ \ncd\n /path/to/local/ponzu \n$ go install ./...\n\n\n# edit files, add features, etc\n\n$ git add -A\n$ git commit -m \nedited files, added features, etc\n\n\n\n# now you need to test the feature.. make a new ponzu project, but pass --dev flag\n\n$ ponzu --dev new /path/to/new/project \n# will create $GOPATH/src/path/to/new/project\n\n\n\n# build \n run ponzu from the new project directory\n\n$ \ncd\n /path/to/new/project\n$ ponzu build \n ponzu run\n\n\n# push to your origin:ponzu-dev branch and create a PR at ponzu-cms/ponzu\n\n$ git push origin ponzu-dev\n\n# ... go to https://github.com/ponzu-cms/ponzu and create a PR\n\n\n\n\n\n\nNote:\n if you intend to work on your own fork and contribute from it, you will\nneed to also pass \n--fork=path/to/your/fork\n (using OS-standard filepath structure),\nwhere \npath/to/your/fork\n \nmust\n be within \n$GOPATH/src\n, and you are working from a branch\ncalled \nponzu-dev\n. \n\n\nFor example: \n\n\n# ($GOPATH/src is implied in the fork path, do not add it yourself)\n\n$ ponzu new --dev --fork\n=\ngithub.com/nilslice/ponzu /path/to/new/project",
+ "text": "$ ponzu \n[\nflags\n]\n \ncommand\n \nparams\n\n\n\n\n\n\nCommands\n\n\nnew\n\n\nCreates a project directory of the name supplied as a parameter immediately\nfollowing the 'new' option in the $GOPATH/src directory. Note: 'new' depends on \nthe program 'git' and possibly a network connection. If there is no local \nrepository to clone from at the local machine's $GOPATH, 'new' will attempt to \nclone the 'github.com/haturatu/ponzu' package from over the network.\n\n\nExample:\n\n\n$ ponzu new github.com/nilslice/proj\n\n New ponzu project created at \n$GOPATH\n/src/github.com/nilslice/proj\n\n\n\n\n\n\n\ngenerate, gen, g\n\n\nGenerate boilerplate code for various Ponzu components, such as \ncontent\n.\n\n\nExample:\n\n\n generator struct fields and built-in types...\n \n|\n \n|\n\n v v \n$ ponzu gen content review title:\nstring\n body:\nstring\n:richtext rating:\nint\n\n ^ ^\n \n|\n \n|\n\n struct \ntype\n \n(\noptional\n)\n input view specifier\n\n\n\n\n\nThe command above will generate the file \ncontent/review.go\n with boilerplate\nmethods, as well as struct definition, and corresponding field tags like:\n\n\ntype\n \nReview\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nTitle\n \nstring\n \n`json:\ntitle\n`\n\n \nBody\n \nstring\n \n`json:\nbody\n`\n\n \nRating\n \nint\n \n`json:\nrating\n`\n\n \nTags\n \n[]\nstring\n \n`json:\ntags\n`\n\n\n}\n\n\n\n\n\n\nThe generate command will intelligently parse more sophisticated field names\nsuch as 'field_name' and convert it to 'FieldName' and vice versa, only where \nappropriate as per common Go idioms. Errors will be reported, but successful \ngenerate commands return nothing.\n\n\nInput View Specifiers\n \n(optional)\n\n\nThe CLI can optionally parse a third parameter on the fields provided to generate \nthe type of HTML view an editor field is presented within. If no third parameter\nis added, a plain text HTML input will be generated. In the example above, the \nargument shown as \nbody:string:richtext\n would show the Richtext input instead\nof a plain text HTML input (as shown in the screenshot). The following input\nview specifiers are implemented:\n\n\n\n\n\n\n\n\nCLI parameter\n\n\nGenerates\n\n\n\n\n\n\n\n\n\n\ncheckbox\n\n\neditor.Checkbox()\n\n\n\n\n\n\ncustom\n\n\ngenerates a pre-styled empty div to fill with HTML\n\n\n\n\n\n\nfile\n\n\neditor.File()\n\n\n\n\n\n\nhidden\n\n\neditor.Input()\n + uses type=hidden\n\n\n\n\n\n\ninput, text\n\n\neditor.Input()\n\n\n\n\n\n\nrichtext\n\n\neditor.Richtext()\n\n\n\n\n\n\nselect\n\n\neditor.Select()\n\n\n\n\n\n\ntextarea\n\n\neditor.Textarea()\n\n\n\n\n\n\ntags\n\n\neditor.Tags()\n\n\n\n\n\n\n\n\nGenerate Content References\n\n\nIt's also possible to generate all of the code needed to create references between\nyour content types. The syntax to do so is below, but refer to the \ndocumentation\n\nfor more details:\n\n\n$ ponzu gen c author name:string genre:string:select\n$ ponzu gen c book title:string author:@author,name,genre \n\n\n\n\n\nThe commands above will generate a \nBook\n Content type with a reference to an\n\nAuthor\n item, by also generating a \nreference.Select\n\nas the view for the \nauthor\n field.\n\n\n\n\nbuild\n\n\nFrom within your Ponzu project directory, running build will copy and move \nthe necessary files from your workspace into the vendored directory, and \nwill build/compile the project to then be run. \n\n\nOptional flags:\n- \n--gocmd\n sets the binary used when executing \ngo build\n within \nponzu\n build step\n\n\nExample:\n\n\n$ ponzu build\n\n(\nor\n)\n\n$ ponzu build --gocmd\n=\ngo1.8rc1 \n# useful for testing\n\n\n\n\n\n\nErrors will be reported, but successful build commands return nothing.\n\n\n\n\nrun\n\n\nStarts the HTTP server for the JSON API, Admin System, or both.\nThe segments, separated by a comma, describe which services to start, either \n'admin' (Admin System / CMS backend) or 'api' (JSON API), and, optionally, \nif the server should utilize TLS encryption - served over HTTPS, which is\nautomatically managed using Let's Encrypt (https://letsencrypt.org) \n\n\nOptional flags:\n\n\n\n\n--bind\n sets the address for ponzu to bind the HTTP(S) server\n\n\n--port\n sets the port on which the server listens for HTTP requests [defaults to 8080]\n\n\n--https-port\n sets the port on which the server listens for HTTPS requests [defaults to 443]\n\n\n--https\n enables auto HTTPS management via Let's Encrypt (port is always 443)\n\n\n--dev-https\n generates self-signed SSL certificates for development-only (port is 10443)\n\n\n--docs\n runs a local documentation server in case of no network connection\n\n\n--docs-port\n sets the port on which the docs server listens for HTTP requests [defaults to 1234]\n\n\n\n\nExample: \n\n\n$ ponzu run\n\n(\nor\n)\n\n$ ponzu run --bind\n=\n0\n.0.0.0\n\n(\nor\n)\n\n$ ponzu run --port\n=\n8080\n --https admin,api\n\n(\nor\n)\n \n$ ponzu run admin\n\n(\nor\n)\n\n$ ponzu run --port\n=\n8888\n api\n\n(\nor\n)\n\n$ ponzu run --dev-https\n\n\n\n\n\nDefaults to \n$ ponzu run --port=8080 admin,api\n (running Admin \n API on port 8080, without TLS)\n\n\nNote:\n \nAdmin and API cannot run on separate processes unless you use a copy of the\ndatabase, since the first process to open it receives a lock. If you intend\nto run the Admin and API on separate processes, you must call them with the\n'ponzu' command independently.\n\n\n\n\nupgrade\n\n\nWill backup your own custom project code (like content, addons, uploads, etc) so\nwe can safely re-clone Ponzu from the latest version you have or from the network \nif necessary. Before running \n$ ponzu upgrade\n, you should update the \nponzu\n\npackage by running \n$ go get -u github.com/haturatu/ponzu/...\n \n\n\nExample:\n\n\n$ ponzu upgrade\n\n\n\n\n\n\n\nadd, a\n\n\nDownloads an addon to GOPATH/src and copies it to the current Ponzu project's\n\n/addons\n directory.\n\n\nExample:\n\n\n$ ponzu add github.com/bosssauce/fbscheduler\n\n\n\n\n\nErrors will be reported, but successful add commands return nothing.\n\n\n\n\nversion, v\n\n\nPrints the version of Ponzu your project is using. Must be called from within a \nPonzu project directory. By passing the \n--cli\n flag, the \nversion\n command will \nprint the version of the Ponzu CLI you have installed.\n\n\nExample:\n\n\n$ ponzu version\nPonzu v0.8.2\n\n# (or)\n\n$ ponzu version --cli\nPonzu v0.9.2\n\n\n\n\n\n\n\nContributing\n\n\n\n\nCheckout branch ponzu-dev\n\n\nMake code changes\n\n\nTest changes to ponzu-dev branch\n\n\nmake a commit to ponzu-dev\n\n\nto manually test, you will need to use a new copy (ponzu new path/to/code), \nbut pass the \n--dev\n flag so that ponzu generates a new copy from the \nponzu-dev\n \nbranch, not master by default (i.e. \n$ponzu new --dev /path/to/code\n)\n\n\nbuild and run with \n$ ponzu build\n and \n$ ponzu run\n\n\n\n\n\n\nTo add back to master: \n\n\nfirst push to origin ponzu-dev\n\n\ncreate a pull request \n\n\nwill then be merged into master\n\n\n\n\n\n\n\n\nA typical contribution workflow might look like:\n\n\n# clone the repository and checkout ponzu-dev\n\n$ git clone https://github.com/haturatu/ponzu path/to/local/ponzu \n# (or your fork)\n\n$ git checkout ponzu-dev\n\n\n# install ponzu with go get or from your own local path\n\n$ go get github.com/haturatu/ponzu/...\n\n# or\n\n$ \ncd\n /path/to/local/ponzu \n$ go install ./...\n\n\n# edit files, add features, etc\n\n$ git add -A\n$ git commit -m \nedited files, added features, etc\n\n\n\n# now you need to test the feature.. make a new ponzu project, but pass --dev flag\n\n$ ponzu --dev new /path/to/new/project \n# will create $GOPATH/src/path/to/new/project\n\n\n\n# build \n run ponzu from the new project directory\n\n$ \ncd\n /path/to/new/project\n$ ponzu build \n ponzu run\n\n\n# push to your origin:ponzu-dev branch and create a PR at ponzu-cms/ponzu\n\n$ git push origin ponzu-dev\n\n# ... go to https://github.com/haturatu/ponzu and create a PR\n\n\n\n\n\n\nNote:\n if you intend to work on your own fork and contribute from it, you will\nneed to also pass \n--fork=path/to/your/fork\n (using OS-standard filepath structure),\nwhere \npath/to/your/fork\n \nmust\n be within \n$GOPATH/src\n, and you are working from a branch\ncalled \nponzu-dev\n. \n\n\nFor example: \n\n\n# ($GOPATH/src is implied in the fork path, do not add it yourself)\n\n$ ponzu new --dev --fork\n=\ngithub.com/nilslice/ponzu /path/to/new/project",
"title": "General Usage"
},
{
@@ -37,7 +37,7 @@
},
{
"location": "/CLI/General-Usage/#new",
- "text": "Creates a project directory of the name supplied as a parameter immediately\nfollowing the 'new' option in the $GOPATH/src directory. Note: 'new' depends on \nthe program 'git' and possibly a network connection. If there is no local \nrepository to clone from at the local machine's $GOPATH, 'new' will attempt to \nclone the 'github.com/ponzu-cms/ponzu' package from over the network. Example: $ ponzu new github.com/nilslice/proj New ponzu project created at $GOPATH /src/github.com/nilslice/proj",
+ "text": "Creates a project directory of the name supplied as a parameter immediately\nfollowing the 'new' option in the $GOPATH/src directory. Note: 'new' depends on \nthe program 'git' and possibly a network connection. If there is no local \nrepository to clone from at the local machine's $GOPATH, 'new' will attempt to \nclone the 'github.com/haturatu/ponzu' package from over the network. Example: $ ponzu new github.com/nilslice/proj New ponzu project created at $GOPATH /src/github.com/nilslice/proj",
"title": "new"
},
{
@@ -57,7 +57,7 @@
},
{
"location": "/CLI/General-Usage/#upgrade",
- "text": "Will backup your own custom project code (like content, addons, uploads, etc) so\nwe can safely re-clone Ponzu from the latest version you have or from the network \nif necessary. Before running $ ponzu upgrade , you should update the ponzu \npackage by running $ go get -u github.com/ponzu-cms/ponzu/... Example: $ ponzu upgrade",
+ "text": "Will backup your own custom project code (like content, addons, uploads, etc) so\nwe can safely re-clone Ponzu from the latest version you have or from the network \nif necessary. Before running $ ponzu upgrade , you should update the ponzu \npackage by running $ go get -u github.com/haturatu/ponzu/... Example: $ ponzu upgrade",
"title": "upgrade"
},
{
@@ -72,12 +72,12 @@
},
{
"location": "/CLI/General-Usage/#contributing",
- "text": "Checkout branch ponzu-dev Make code changes Test changes to ponzu-dev branch make a commit to ponzu-dev to manually test, you will need to use a new copy (ponzu new path/to/code), \nbut pass the --dev flag so that ponzu generates a new copy from the ponzu-dev \nbranch, not master by default (i.e. $ponzu new --dev /path/to/code ) build and run with $ ponzu build and $ ponzu run To add back to master: first push to origin ponzu-dev create a pull request will then be merged into master A typical contribution workflow might look like: # clone the repository and checkout ponzu-dev \n$ git clone https://github.com/ponzu-cms/ponzu path/to/local/ponzu # (or your fork) \n$ git checkout ponzu-dev # install ponzu with go get or from your own local path \n$ go get github.com/ponzu-cms/ponzu/... # or \n$ cd /path/to/local/ponzu \n$ go install ./... # edit files, add features, etc \n$ git add -A\n$ git commit -m edited files, added features, etc # now you need to test the feature.. make a new ponzu project, but pass --dev flag \n$ ponzu --dev new /path/to/new/project # will create $GOPATH/src/path/to/new/project # build run ponzu from the new project directory \n$ cd /path/to/new/project\n$ ponzu build ponzu run # push to your origin:ponzu-dev branch and create a PR at ponzu-cms/ponzu \n$ git push origin ponzu-dev # ... go to https://github.com/ponzu-cms/ponzu and create a PR Note: if you intend to work on your own fork and contribute from it, you will\nneed to also pass --fork=path/to/your/fork (using OS-standard filepath structure),\nwhere path/to/your/fork must be within $GOPATH/src , and you are working from a branch\ncalled ponzu-dev . For example: # ($GOPATH/src is implied in the fork path, do not add it yourself) \n$ ponzu new --dev --fork = github.com/nilslice/ponzu /path/to/new/project",
+ "text": "Checkout branch ponzu-dev Make code changes Test changes to ponzu-dev branch make a commit to ponzu-dev to manually test, you will need to use a new copy (ponzu new path/to/code), \nbut pass the --dev flag so that ponzu generates a new copy from the ponzu-dev \nbranch, not master by default (i.e. $ponzu new --dev /path/to/code ) build and run with $ ponzu build and $ ponzu run To add back to master: first push to origin ponzu-dev create a pull request will then be merged into master A typical contribution workflow might look like: # clone the repository and checkout ponzu-dev \n$ git clone https://github.com/haturatu/ponzu path/to/local/ponzu # (or your fork) \n$ git checkout ponzu-dev # install ponzu with go get or from your own local path \n$ go get github.com/haturatu/ponzu/... # or \n$ cd /path/to/local/ponzu \n$ go install ./... # edit files, add features, etc \n$ git add -A\n$ git commit -m edited files, added features, etc # now you need to test the feature.. make a new ponzu project, but pass --dev flag \n$ ponzu --dev new /path/to/new/project # will create $GOPATH/src/path/to/new/project # build run ponzu from the new project directory \n$ cd /path/to/new/project\n$ ponzu build ponzu run # push to your origin:ponzu-dev branch and create a PR at ponzu-cms/ponzu \n$ git push origin ponzu-dev # ... go to https://github.com/haturatu/ponzu and create a PR Note: if you intend to work on your own fork and contribute from it, you will\nneed to also pass --fork=path/to/your/fork (using OS-standard filepath structure),\nwhere path/to/your/fork must be within $GOPATH/src , and you are working from a branch\ncalled ponzu-dev . For example: # ($GOPATH/src is implied in the fork path, do not add it yourself) \n$ ponzu new --dev --fork = github.com/nilslice/ponzu /path/to/new/project",
"title": "Contributing"
},
{
"location": "/CLI/Generating-References/",
- "text": "In Ponzu, users make connections between Content types using references. In order \nto use the CLI to generate these references, a slightly different syntax is required. \nIn all cases, the Content type you wish to reference does not need to exist prior\nto the \"parent\" type referencing it at generate-time, but in the following examples,\nthe referenced \"child\" type will be shown before the parent type for clarity.\n\n\nSyntax\n\n\n@\n\n\nThe \n@\n symbol is used to declare that the following name is a reference. The \nCLI will take care to parse the name and treat it as a Content type to which the \ncurrent type refers.\n\n\n[]\n\n\nThe \n[]\n, which if used, is always in front of the \n@\n symbol. It signifies \nthat the reference type is a slice or a collection of references. When \n[]\n\nis used, the CLI will automatically generate a \nreference.SelectRepeater()\n view \nfor you.\n\n\n,arg1,arg2,argN\n\n\nImmediately following the reference name (after the @ symbol), users may optionally\npass arguments to specify how the reference is displayed in the parent type's\neditor. References are included in the parent types editor as a dropdown menu, with\neach possible reference as an option. These arguments define what goes inside the\n\noption\n/option\n text node, as would be seen by an Admin.\n\n\nThe arguments must be valid JSON struct tag names from the reference type's fields. \nNotice in the example below, the \ntitle\n and \nprice\n are formatted exactly as they \nwere in the generate command for the \nproduct\n type.\n\n\n\n\n\n\nExample\n\n\n$ ponzu gen content product title:string price:int description:string:textarea\n$ ponzu gen content catalog year:int products:\n[]@product\n,title,price\n\n\n\n\n\nThe commands above output the following. For demonstration, we will omit the full\ncode generated for the \nProduct\n, since the reference is in the \nCatalog\n type.\n\n\n// content/product.go\n\n\npackage\n \ncontent\n\n\n...\n\n\n\ntype\n \nProduct\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nTitle\n \nstring\n \n`json:\ntitle\n`\n\n \nPrice\n \nint\n \n`json:\nprice\n`\n\n \nDescription\n \nstring\n \n`json:\ndescription\n`\n\n\n}\n\n\n\n...\n\n\n\n\n\n\npackage\n \ncontent\n\n\n\nimport\n \n(\n\n \nfmt\n\n\n \ngithub.com/bosssauce/reference\n\n\n \ngithub.com/ponzu-cms/ponzu/management/editor\n\n \ngithub.com/ponzu-cms/ponzu/system/item\n\n\n)\n\n\n\ntype\n \nCatalog\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nYear\n \nint\n \n`json:\nyear\n`\n\n \n// all references are stored as []string or string types\n\n \nProducts\n \n[]\nstring\n \n`json:\nproducts\n`\n \n\n}\n\n\n\nfunc\n \n(\nc\n \n*\nCatalog\n)\n \nMarshalEditor\n()\n \n([]\nbyte\n,\n \nerror\n)\n \n{\n\n \nview\n,\n \nerr\n \n:=\n \neditor\n.\nForm\n(\nc\n,\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nInput\n(\nYear\n,\n \nc\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nYear\n,\n\n \ntype\n:\n \ntext\n,\n\n \nplaceholder\n:\n \nEnter the Year here\n,\n\n \n}),\n\n \n},\n\n \neditor\n.\nField\n{\n\n \n// reference.SelectRepeater since []@product was used\n\n \nView\n:\n \nreference\n.\nSelectRepeater\n(\nProducts\n,\n \nc\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nProducts\n,\n\n \n},\n\n \nProduct\n,\n \n// generated from @product\n\n \n`{{ .title }} {{ .price }} `\n,\n \n// generated from ,title,price args\n\n \n),\n\n \n},\n\n \n)\n\n\n \nif\n \nerr\n \n!=\n \nnil\n \n{\n\n \nreturn\n \nnil\n,\n \nfmt\n.\nErrorf\n(\nFailed to render Catalog editor view: %s\n,\n \nerr\n.\nError\n())\n\n \n}\n\n\n \nreturn\n \nview\n,\n \nnil\n\n\n}\n\n\n\nfunc\n \ninit\n()\n \n{\n\n \nitem\n.\nTypes\n[\nCatalog\n]\n \n=\n \nfunc\n()\n \ninterface\n{}\n \n{\n \nreturn\n \nnew\n(\nCatalog\n)\n \n}\n\n\n}\n\n\n\n\n\n\nNote:\n\nIf the reference should be only a single item, rather than a slice (or collection)\nof items, omit the \n[]\n, changing the command to:\n\n\n$ ponzu gen content catalog year:int product:@product,title,price",
+ "text": "In Ponzu, users make connections between Content types using references. In order \nto use the CLI to generate these references, a slightly different syntax is required. \nIn all cases, the Content type you wish to reference does not need to exist prior\nto the \"parent\" type referencing it at generate-time, but in the following examples,\nthe referenced \"child\" type will be shown before the parent type for clarity.\n\n\nSyntax\n\n\n@\n\n\nThe \n@\n symbol is used to declare that the following name is a reference. The \nCLI will take care to parse the name and treat it as a Content type to which the \ncurrent type refers.\n\n\n[]\n\n\nThe \n[]\n, which if used, is always in front of the \n@\n symbol. It signifies \nthat the reference type is a slice or a collection of references. When \n[]\n\nis used, the CLI will automatically generate a \nreference.SelectRepeater()\n view \nfor you.\n\n\n,arg1,arg2,argN\n\n\nImmediately following the reference name (after the @ symbol), users may optionally\npass arguments to specify how the reference is displayed in the parent type's\neditor. References are included in the parent types editor as a dropdown menu, with\neach possible reference as an option. These arguments define what goes inside the\n\noption\n/option\n text node, as would be seen by an Admin.\n\n\nThe arguments must be valid JSON struct tag names from the reference type's fields. \nNotice in the example below, the \ntitle\n and \nprice\n are formatted exactly as they \nwere in the generate command for the \nproduct\n type.\n\n\n\n\n\n\nExample\n\n\n$ ponzu gen content product title:string price:int description:string:textarea\n$ ponzu gen content catalog year:int products:\n[]@product\n,title,price\n\n\n\n\n\nThe commands above output the following. For demonstration, we will omit the full\ncode generated for the \nProduct\n, since the reference is in the \nCatalog\n type.\n\n\n// content/product.go\n\n\npackage\n \ncontent\n\n\n...\n\n\n\ntype\n \nProduct\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nTitle\n \nstring\n \n`json:\ntitle\n`\n\n \nPrice\n \nint\n \n`json:\nprice\n`\n\n \nDescription\n \nstring\n \n`json:\ndescription\n`\n\n\n}\n\n\n\n...\n\n\n\n\n\n\npackage\n \ncontent\n\n\n\nimport\n \n(\n\n \nfmt\n\n\n \ngithub.com/bosssauce/reference\n\n\n \ngithub.com/haturatu/ponzu/management/editor\n\n \ngithub.com/haturatu/ponzu/system/item\n\n\n)\n\n\n\ntype\n \nCatalog\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nYear\n \nint\n \n`json:\nyear\n`\n\n \n// all references are stored as []string or string types\n\n \nProducts\n \n[]\nstring\n \n`json:\nproducts\n`\n \n\n}\n\n\n\nfunc\n \n(\nc\n \n*\nCatalog\n)\n \nMarshalEditor\n()\n \n([]\nbyte\n,\n \nerror\n)\n \n{\n\n \nview\n,\n \nerr\n \n:=\n \neditor\n.\nForm\n(\nc\n,\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nInput\n(\nYear\n,\n \nc\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nYear\n,\n\n \ntype\n:\n \ntext\n,\n\n \nplaceholder\n:\n \nEnter the Year here\n,\n\n \n}),\n\n \n},\n\n \neditor\n.\nField\n{\n\n \n// reference.SelectRepeater since []@product was used\n\n \nView\n:\n \nreference\n.\nSelectRepeater\n(\nProducts\n,\n \nc\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nProducts\n,\n\n \n},\n\n \nProduct\n,\n \n// generated from @product\n\n \n`{{ .title }} {{ .price }} `\n,\n \n// generated from ,title,price args\n\n \n),\n\n \n},\n\n \n)\n\n\n \nif\n \nerr\n \n!=\n \nnil\n \n{\n\n \nreturn\n \nnil\n,\n \nfmt\n.\nErrorf\n(\nFailed to render Catalog editor view: %s\n,\n \nerr\n.\nError\n())\n\n \n}\n\n\n \nreturn\n \nview\n,\n \nnil\n\n\n}\n\n\n\nfunc\n \ninit\n()\n \n{\n\n \nitem\n.\nTypes\n[\nCatalog\n]\n \n=\n \nfunc\n()\n \ninterface\n{}\n \n{\n \nreturn\n \nnew\n(\nCatalog\n)\n \n}\n\n\n}\n\n\n\n\n\n\nNote:\n\nIf the reference should be only a single item, rather than a slice (or collection)\nof items, omit the \n[]\n, changing the command to:\n\n\n$ ponzu gen content catalog year:int product:@product,title,price",
"title": "Generating References"
},
{
@@ -102,17 +102,17 @@
},
{
"location": "/CLI/Generating-References/#example",
- "text": "$ ponzu gen content product title:string price:int description:string:textarea\n$ ponzu gen content catalog year:int products: []@product ,title,price The commands above output the following. For demonstration, we will omit the full\ncode generated for the Product , since the reference is in the Catalog type. // content/product.go package content ... type Product struct { \n item . Item \n\n Title string `json: title ` \n Price int `json: price ` \n Description string `json: description ` } ... package content import ( \n fmt \n\n github.com/bosssauce/reference \n\n github.com/ponzu-cms/ponzu/management/editor \n github.com/ponzu-cms/ponzu/system/item ) type Catalog struct { \n item . Item \n\n Year int `json: year ` \n // all references are stored as []string or string types \n Products [] string `json: products ` } func ( c * Catalog ) MarshalEditor () ([] byte , error ) { \n view , err := editor . Form ( c , \n editor . Field { \n View : editor . Input ( Year , c , map [ string ] string { \n label : Year , \n type : text , \n placeholder : Enter the Year here , \n }), \n }, \n editor . Field { \n // reference.SelectRepeater since []@product was used \n View : reference . SelectRepeater ( Products , c , map [ string ] string { \n label : Products , \n }, \n Product , // generated from @product \n `{{ .title }} {{ .price }} ` , // generated from ,title,price args \n ), \n }, \n ) \n\n if err != nil { \n return nil , fmt . Errorf ( Failed to render Catalog editor view: %s , err . Error ()) \n } \n\n return view , nil } func init () { \n item . Types [ Catalog ] = func () interface {} { return new ( Catalog ) } } Note: \nIf the reference should be only a single item, rather than a slice (or collection)\nof items, omit the [] , changing the command to: $ ponzu gen content catalog year:int product:@product,title,price",
+ "text": "$ ponzu gen content product title:string price:int description:string:textarea\n$ ponzu gen content catalog year:int products: []@product ,title,price The commands above output the following. For demonstration, we will omit the full\ncode generated for the Product , since the reference is in the Catalog type. // content/product.go package content ... type Product struct { \n item . Item \n\n Title string `json: title ` \n Price int `json: price ` \n Description string `json: description ` } ... package content import ( \n fmt \n\n github.com/bosssauce/reference \n\n github.com/haturatu/ponzu/management/editor \n github.com/haturatu/ponzu/system/item ) type Catalog struct { \n item . Item \n\n Year int `json: year ` \n // all references are stored as []string or string types \n Products [] string `json: products ` } func ( c * Catalog ) MarshalEditor () ([] byte , error ) { \n view , err := editor . Form ( c , \n editor . Field { \n View : editor . Input ( Year , c , map [ string ] string { \n label : Year , \n type : text , \n placeholder : Enter the Year here , \n }), \n }, \n editor . Field { \n // reference.SelectRepeater since []@product was used \n View : reference . SelectRepeater ( Products , c , map [ string ] string { \n label : Products , \n }, \n Product , // generated from @product \n `{{ .title }} {{ .price }} ` , // generated from ,title,price args \n ), \n }, \n ) \n\n if err != nil { \n return nil , fmt . Errorf ( Failed to render Catalog editor view: %s , err . Error ()) \n } \n\n return view , nil } func init () { \n item . Types [ Catalog ] = func () interface {} { return new ( Catalog ) } } Note: \nIf the reference should be only a single item, rather than a slice (or collection)\nof items, omit the [] , changing the command to: $ ponzu gen content catalog year:int product:@product,title,price",
"title": "Example"
},
{
"location": "/Content/An-Overview/",
- "text": "Nearly everything you work on in Ponzu is inside content files on the content types you create. These types must all reside in the \ncontent\n package and are the fundamental core of your CMS. In order for Content types to be rendered and managed by the CMS, they must implement the \neditor.Editable\n interface, and add their own \ninterface{}\n container to the global \nitem.Types\n map. \n\n\nSound like a lot? Don't worry, all of this can be done for you by using the code-generating command line tools that come with Ponzu.\n\n\nIt is rare to hand-write a new Content type, and should be generated instead!\n\n\nGenerating Content types\n\n\nTo generate content types and boilerplate code, use the Ponzu CLI \ngenerate\n command as such:\n\n\n$ ponzu generate content post title:string body:string:richtext author:string\n\n\n\n\n\nThe command above will create a file at \ncontent/post.go\n and will generate the following code:\n\n\npackage\n \ncontent\n\n\n\nimport\n \n(\n\n \nfmt\n\n\n \ngithub.com/ponzu-cms/ponzu/management/editor\n\n \ngithub.com/ponzu-cms/ponzu/system/item\n\n\n)\n\n\n\ntype\n \nPost\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nTitle\n \nstring\n \n`json:\ntitle\n`\n\n \nBody\n \nstring\n \n`json:\nbody\n`\n\n \nAuthor\n \nstring\n \n`json:\nauthor\n`\n\n\n}\n\n\n\n// MarshalEditor writes a buffer of html to edit a Post within the CMS\n\n\n// and implements editor.Editable\n\n\nfunc\n \n(\np\n \n*\nPost\n)\n \nMarshalEditor\n()\n \n([]\nbyte\n,\n \nerror\n)\n \n{\n\n \nview\n,\n \nerr\n \n:=\n \neditor\n.\nForm\n(\np\n,\n\n \n// Take note that the first argument to these Input-like functions\n\n \n// is the string version of each Post field, and must follow\n\n \n// this pattern for auto-decoding and auto-encoding reasons:\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nInput\n(\nTitle\n,\n \np\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nTitle\n,\n\n \ntype\n:\n \ntext\n,\n\n \nplaceholder\n:\n \nEnter the Title here\n,\n\n \n}),\n\n \n},\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nRichtext\n(\nBody\n,\n \np\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nBody\n,\n\n \nplaceholder\n:\n \nEnter the Body here\n,\n\n \n}),\n\n \n},\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nInput\n(\nAuthor\n,\n \np\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nAuthor\n,\n\n \ntype\n:\n \ntext\n,\n\n \nplaceholder\n:\n \nEnter the Author here\n,\n\n \n}),\n\n \n},\n\n \n)\n\n\n \nif\n \nerr\n \n!=\n \nnil\n \n{\n\n \nreturn\n \nnil\n,\n \nfmt\n.\nErrorf\n(\nFailed to render Post editor view: %s\n,\n \nerr\n.\nError\n())\n\n \n}\n\n\n \nreturn\n \nview\n,\n \nnil\n\n\n}\n\n\n\nfunc\n \ninit\n()\n \n{\n\n \nitem\n.\nTypes\n[\nPost\n]\n \n=\n \nfunc\n()\n \ninterface\n{}\n \n{\n \nreturn\n \nnew\n(\nPost\n)\n \n}\n\n\n}\n\n\n\n\n\n\nThe code above is the baseline amount required to manage content for the \nPost\n type from within the CMS. See \nExtending Content\n for information about how to add more functionality to your Content types. \n\n\nAll content managed by the CMS and exposed via the API is considered an \"item\", and thus should embed the \nitem.Item\n type. There are many benefits to this, such as becoming automatically sortable by time, and being given default methods that are useful inside and out of the CMS. All content types that are created by the \ngenerate\n command via Ponzu CLI will embed Item. \n\n\nRelated packages\n\n\nThe \nitem\n package has a number of useful interfaces, which make it simple to add functionality to all content types and other types that embed Item. \n\n\nThe \neditor\n package has the Editable interface, which allows types to create an editor for their fields within the CMS. Additionally, there is a helper function \neditor.Form\n which simplifies defining the editor's input layout and input types using \neditor.Input\n and various other functions to make HTML input elements like Select, Checkbox, Richtext, Textarea and more.\n\n\nThe \napi\n package has interfaces including \napi.Createable\n and \napi.Mergeable\n which make it trivial to accept and approve or reject content submitted from 3rd parties (POST from HTML forms, mobile clients, etc).",
+ "text": "Nearly everything you work on in Ponzu is inside content files on the content types you create. These types must all reside in the \ncontent\n package and are the fundamental core of your CMS. In order for Content types to be rendered and managed by the CMS, they must implement the \neditor.Editable\n interface, and add their own \ninterface{}\n container to the global \nitem.Types\n map. \n\n\nSound like a lot? Don't worry, all of this can be done for you by using the code-generating command line tools that come with Ponzu.\n\n\nIt is rare to hand-write a new Content type, and should be generated instead!\n\n\nGenerating Content types\n\n\nTo generate content types and boilerplate code, use the Ponzu CLI \ngenerate\n command as such:\n\n\n$ ponzu generate content post title:string body:string:richtext author:string\n\n\n\n\n\nThe command above will create a file at \ncontent/post.go\n and will generate the following code:\n\n\npackage\n \ncontent\n\n\n\nimport\n \n(\n\n \nfmt\n\n\n \ngithub.com/haturatu/ponzu/management/editor\n\n \ngithub.com/haturatu/ponzu/system/item\n\n\n)\n\n\n\ntype\n \nPost\n \nstruct\n \n{\n\n \nitem\n.\nItem\n\n\n \nTitle\n \nstring\n \n`json:\ntitle\n`\n\n \nBody\n \nstring\n \n`json:\nbody\n`\n\n \nAuthor\n \nstring\n \n`json:\nauthor\n`\n\n\n}\n\n\n\n// MarshalEditor writes a buffer of html to edit a Post within the CMS\n\n\n// and implements editor.Editable\n\n\nfunc\n \n(\np\n \n*\nPost\n)\n \nMarshalEditor\n()\n \n([]\nbyte\n,\n \nerror\n)\n \n{\n\n \nview\n,\n \nerr\n \n:=\n \neditor\n.\nForm\n(\np\n,\n\n \n// Take note that the first argument to these Input-like functions\n\n \n// is the string version of each Post field, and must follow\n\n \n// this pattern for auto-decoding and auto-encoding reasons:\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nInput\n(\nTitle\n,\n \np\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nTitle\n,\n\n \ntype\n:\n \ntext\n,\n\n \nplaceholder\n:\n \nEnter the Title here\n,\n\n \n}),\n\n \n},\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nRichtext\n(\nBody\n,\n \np\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nBody\n,\n\n \nplaceholder\n:\n \nEnter the Body here\n,\n\n \n}),\n\n \n},\n\n \neditor\n.\nField\n{\n\n \nView\n:\n \neditor\n.\nInput\n(\nAuthor\n,\n \np\n,\n \nmap\n[\nstring\n]\nstring\n{\n\n \nlabel\n:\n \nAuthor\n,\n\n \ntype\n:\n \ntext\n,\n\n \nplaceholder\n:\n \nEnter the Author here\n,\n\n \n}),\n\n \n},\n\n \n)\n\n\n \nif\n \nerr\n \n!=\n \nnil\n \n{\n\n \nreturn\n \nnil\n,\n \nfmt\n.\nErrorf\n(\nFailed to render Post editor view: %s\n,\n \nerr\n.\nError\n())\n\n \n}\n\n\n \nreturn\n \nview\n,\n \nnil\n\n\n}\n\n\n\nfunc\n \ninit\n()\n \n{\n\n \nitem\n.\nTypes\n[\nPost\n]\n \n=\n \nfunc\n()\n \ninterface\n{}\n \n{\n \nreturn\n \nnew\n(\nPost\n)\n \n}\n\n\n}\n\n\n\n\n\n\nThe code above is the baseline amount required to manage content for the \nPost\n type from within the CMS. See \nExtending Content\n for information about how to add more functionality to your Content types. \n\n\nAll content managed by the CMS and exposed via the API is considered an \"item\", and thus should embed the \nitem.Item\n type. There are many benefits to this, such as becoming automatically sortable by time, and being given default methods that are useful inside and out of the CMS. All content types that are created by the \ngenerate\n command via Ponzu CLI will embed Item. \n\n\nRelated packages\n\n\nThe \nitem\n package has a number of useful interfaces, which make it simple to add functionality to all content types and other types that embed Item. \n\n\nThe \neditor\n package has the Editable interface, which allows types to create an editor for their fields within the CMS. Additionally, there is a helper function \neditor.Form\n which simplifies defining the editor's input layout and input types using \neditor.Input\n and various other functions to make HTML input elements like Select, Checkbox, Richtext, Textarea and more.\n\n\nThe \napi\n package has interfaces including \napi.Createable\n and \napi.Mergeable\n which make it trivial to accept and approve or reject content submitted from 3rd parties (POST from HTML forms, mobile clients, etc).",
"title": "An Overview"
},
{
"location": "/Content/An-Overview/#generating-content-types",
- "text": "To generate content types and boilerplate code, use the Ponzu CLI generate command as such: $ ponzu generate content post title:string body:string:richtext author:string The command above will create a file at content/post.go and will generate the following code: package content import ( \n fmt \n\n github.com/ponzu-cms/ponzu/management/editor \n github.com/ponzu-cms/ponzu/system/item ) type Post struct { \n item . Item \n\n Title string `json: title ` \n Body string `json: body ` \n Author string `json: author ` } // MarshalEditor writes a buffer of html to edit a Post within the CMS // and implements editor.Editable func ( p * Post ) MarshalEditor () ([] byte , error ) { \n view , err := editor . Form ( p , \n // Take note that the first argument to these Input-like functions \n // is the string version of each Post field, and must follow \n // this pattern for auto-decoding and auto-encoding reasons: \n editor . Field { \n View : editor . Input ( Title , p , map [ string ] string { \n label : Title , \n type : text , \n placeholder : Enter the Title here , \n }), \n }, \n editor . Field { \n View : editor . Richtext ( Body , p , map [ string ] string { \n label : Body , \n placeholder : Enter the Body here , \n }), \n }, \n editor . Field { \n View : editor . Input ( Author , p , map [ string ] string { \n label : Author , \n type : text , \n placeholder : Enter the Author here , \n }), \n }, \n ) \n\n if err != nil { \n return nil , fmt . Errorf ( Failed to render Post editor view: %s , err . Error ()) \n } \n\n return view , nil } func init () { \n item . Types [ Post ] = func () interface {} { return new ( Post ) } } The code above is the baseline amount required to manage content for the Post type from within the CMS. See Extending Content for information about how to add more functionality to your Content types. All content managed by the CMS and exposed via the API is considered an \"item\", and thus should embed the item.Item type. There are many benefits to this, such as becoming automatically sortable by time, and being given default methods that are useful inside and out of the CMS. All content types that are created by the generate command via Ponzu CLI will embed Item.",
+ "text": "To generate content types and boilerplate code, use the Ponzu CLI generate command as such: $ ponzu generate content post title:string body:string:richtext author:string The command above will create a file at content/post.go and will generate the following code: package content import ( \n fmt \n\n github.com/haturatu/ponzu/management/editor \n github.com/haturatu/ponzu/system/item ) type Post struct { \n item . Item \n\n Title string `json: title ` \n Body string `json: body ` \n Author string `json: author ` } // MarshalEditor writes a buffer of html to edit a Post within the CMS // and implements editor.Editable func ( p * Post ) MarshalEditor () ([] byte , error ) { \n view , err := editor . Form ( p , \n // Take note that the first argument to these Input-like functions \n // is the string version of each Post field, and must follow \n // this pattern for auto-decoding and auto-encoding reasons: \n editor . Field { \n View : editor . Input ( Title , p , map [ string ] string { \n label : Title , \n type : text , \n placeholder : Enter the Title here , \n }), \n }, \n editor . Field { \n View : editor . Richtext ( Body , p , map [ string ] string { \n label : Body , \n placeholder : Enter the Body here , \n }), \n }, \n editor . Field { \n View : editor . Input ( Author , p , map [ string ] string { \n label : Author , \n type : text , \n placeholder : Enter the Author here , \n }), \n }, \n ) \n\n if err != nil { \n return nil , fmt . Errorf ( Failed to render Post editor view: %s , err . Error ()) \n } \n\n return view , nil } func init () { \n item . Types [ Post ] = func () interface {} { return new ( Post ) } } The code above is the baseline amount required to manage content for the Post type from within the CMS. See Extending Content for information about how to add more functionality to your Content types. All content managed by the CMS and exposed via the API is considered an \"item\", and thus should embed the item.Item type. There are many benefits to this, such as becoming automatically sortable by time, and being given default methods that are useful inside and out of the CMS. All content types that are created by the generate command via Ponzu CLI will embed Item.",
"title": "Generating Content types"
},
{
@@ -947,12 +947,12 @@
},
{
"location": "/Quickstart/Overview/",
- "text": "Quickstart Steps\n\n\n1) Install \nGo 1.8+\n\n\n2) Install Ponzu CLI:\n\n\n$ go get github.com/ponzu-cms/ponzu/\u2026\n\n\n\n\n\n3) Create a new project (path is created in your GOPATH):\n\n\n$ ponzu new github.com/nilslice/reviews\n\n\n\n\n\n4) Enter your new project directory:\n\n\n$ \ncd\n \n$GOPATH\n/src/github.com/nilslice/reviews\n\n\n\n\n\n5) Generate content type file and boilerplate code (creates \ncontent/review.go\n):\n\n\n$ ponzu generate content review title:\nstring\n author:\nstring\n rating:\nfloat64\n body:\nstring\n:richtext website_url:\nstring\n items:\n[]string\n photo:string:file\n`\n\n\n\n\n\n\n6) Build your project:\n\n\n$ ponzu build\n\n\n\n\n\n7) Run your project with defaults:\n\n\n$ ponzu run\n\n\n\n\n\n8) Open browser to \nhttp://localhost:8080/admin\n\n\nNotes\n\n\n\n\nOne-time initialization to set configuration\n\n\nAll fields can be changed in Configuration afterward",
+ "text": "Quickstart Steps\n\n\n1) Install \nGo 1.8+\n\n\n2) Install Ponzu CLI:\n\n\n$ go get github.com/haturatu/ponzu/\u2026\n\n\n\n\n\n3) Create a new project (path is created in your GOPATH):\n\n\n$ ponzu new github.com/nilslice/reviews\n\n\n\n\n\n4) Enter your new project directory:\n\n\n$ \ncd\n \n$GOPATH\n/src/github.com/nilslice/reviews\n\n\n\n\n\n5) Generate content type file and boilerplate code (creates \ncontent/review.go\n):\n\n\n$ ponzu generate content review title:\nstring\n author:\nstring\n rating:\nfloat64\n body:\nstring\n:richtext website_url:\nstring\n items:\n[]string\n photo:string:file\n`\n\n\n\n\n\n\n6) Build your project:\n\n\n$ ponzu build\n\n\n\n\n\n7) Run your project with defaults:\n\n\n$ ponzu run\n\n\n\n\n\n8) Open browser to \nhttp://localhost:8080/admin\n\n\nNotes\n\n\n\n\nOne-time initialization to set configuration\n\n\nAll fields can be changed in Configuration afterward",
"title": "Overview"
},
{
"location": "/Quickstart/Overview/#quickstart-steps",
- "text": "1) Install Go 1.8+ 2) Install Ponzu CLI: $ go get github.com/ponzu-cms/ponzu/\u2026 3) Create a new project (path is created in your GOPATH): $ ponzu new github.com/nilslice/reviews 4) Enter your new project directory: $ cd $GOPATH /src/github.com/nilslice/reviews 5) Generate content type file and boilerplate code (creates content/review.go ): $ ponzu generate content review title: string author: string rating: float64 body: string :richtext website_url: string items: []string photo:string:file ` 6) Build your project: $ ponzu build 7) Run your project with defaults: $ ponzu run 8) Open browser to http://localhost:8080/admin",
+ "text": "1) Install Go 1.8+ 2) Install Ponzu CLI: $ go get github.com/haturatu/ponzu/\u2026 3) Create a new project (path is created in your GOPATH): $ ponzu new github.com/nilslice/reviews 4) Enter your new project directory: $ cd $GOPATH /src/github.com/nilslice/reviews 5) Generate content type file and boilerplate code (creates content/review.go ): $ ponzu generate content review title: string author: string rating: float64 body: string :richtext website_url: string items: []string photo:string:file ` 6) Build your project: $ ponzu build 7) Run your project with defaults: $ ponzu run 8) Open browser to http://localhost:8080/admin",
"title": "Quickstart Steps"
},
{
@@ -997,7 +997,7 @@
},
{
"location": "/Running-Backups/Backups/",
- "text": "Both the databases \nsystem.db\n \n \nanalytics.db\n, and the \n/uploads\n directory can be backed up over HTTP using \nwget\n, \ncurl\n, etc. All of which are located at the \n/admin/backup\n route and require HTTP Basic Auth. In order to enable backups, you must add a user/password pair inside the CMS Configuration at \n/admin/configure\n near the bottom of the page.\n\n\nAll backups are made using a \nGET\n request to the \n/admin/backup\n path with a query parameter of \n?source={system,analytics,uploads}\n (only one source can be included in the URL).\n\n\nHere are some full backup scripts to use or modify to fit your needs:\n\nhttps://github.com/ponzu-cms/backup-scripts\n\n\nSystem \n Analytics\n\n\nThe \nsystem.db\n \n \nanalytics.db\n data files are sent uncompressed in their original form as they exist on your server. No temporary copy is stored on the origin server, and it is possible that the backup could fail so checking for successful backups is recommended. See https://github.com/boltdb/bolt#database-backups for more information about how BoltDB handles HTTP backups.\n\n\nAn example backup request for the \nsystem.db\n data file would look like:\n\n\n$ curl --user user:pass \nhttps://example.com/admin/backup?source=system\n \n system.db.bak\n\n\n\n\n\nUploads\n\n\nThe \nuploads\n directory is gzip compressed and archived as a tar file, stored in the temporary directory (typically \n/tmp\n on Linux) on your origin server with a timestamp in the file name. It is removed after the HTTP response for the backup has been written.\n\n\nAn example backup request for the \n/uploads\n directory would look like:\n\n\n$ curl --user user:pass \nhttps://example.com/admin/backup?source=uploads\n \n uploads.tar.gz\n\n# unarchive the tarball with gzip \n\n$ tar xzf uploads.tar.gz\n\n\n\n\n\nSearch Indexes\n\n\nThe \nsearch\n directory, which is created to store the various search indexes for your content types (only if they implement \nsearch.Searchable\n), is backed up in the same fashion as \nUploads\n. \n\n\nAn example backup request for the \n/search\n directory would look like:\n\n\n$ curl --user user:pass \nhttps://example.com/admin/backup?source=search\n \n search.tar.gz\n\n# unarchive the tarball with gzip \n\n$ tar xzf search.tar.gz",
+ "text": "Both the databases \nsystem.db\n \n \nanalytics.db\n, and the \n/uploads\n directory can be backed up over HTTP using \nwget\n, \ncurl\n, etc. All of which are located at the \n/admin/backup\n route and require HTTP Basic Auth. In order to enable backups, you must add a user/password pair inside the CMS Configuration at \n/admin/configure\n near the bottom of the page.\n\n\nAll backups are made using a \nGET\n request to the \n/admin/backup\n path with a query parameter of \n?source={system,analytics,uploads}\n (only one source can be included in the URL).\n\n\nHere are some full backup scripts to use or modify to fit your needs:\n\nhttps://github.com/haturatu/backup-scripts\n\n\nSystem \n Analytics\n\n\nThe \nsystem.db\n \n \nanalytics.db\n data files are sent uncompressed in their original form as they exist on your server. No temporary copy is stored on the origin server, and it is possible that the backup could fail so checking for successful backups is recommended. See https://github.com/boltdb/bolt#database-backups for more information about how BoltDB handles HTTP backups.\n\n\nAn example backup request for the \nsystem.db\n data file would look like:\n\n\n$ curl --user user:pass \nhttps://example.com/admin/backup?source=system\n \n system.db.bak\n\n\n\n\n\nUploads\n\n\nThe \nuploads\n directory is gzip compressed and archived as a tar file, stored in the temporary directory (typically \n/tmp\n on Linux) on your origin server with a timestamp in the file name. It is removed after the HTTP response for the backup has been written.\n\n\nAn example backup request for the \n/uploads\n directory would look like:\n\n\n$ curl --user user:pass \nhttps://example.com/admin/backup?source=uploads\n \n uploads.tar.gz\n\n# unarchive the tarball with gzip \n\n$ tar xzf uploads.tar.gz\n\n\n\n\n\nSearch Indexes\n\n\nThe \nsearch\n directory, which is created to store the various search indexes for your content types (only if they implement \nsearch.Searchable\n), is backed up in the same fashion as \nUploads\n. \n\n\nAn example backup request for the \n/search\n directory would look like:\n\n\n$ curl --user user:pass \nhttps://example.com/admin/backup?source=search\n \n search.tar.gz\n\n# unarchive the tarball with gzip \n\n$ tar xzf search.tar.gz",
"title": "Backups"
},
{
@@ -1077,7 +1077,7 @@
},
{
"location": "/System-Deployment/Docker/",
- "text": "Ponzu Docker build\n\n\nPonzu is distributed as a \ndocker image\n, \nwhich aids in ponzu deployment. The Dockerfile in this directory is used by Ponzu \nto generate the docker image which contains the ponzu executable.\n\n\nIf you are deploying your own Ponzu project, you can write a new Dockerfile that\nis based from the \nponzu/ponzu\n image of your choice. For example:\n\n\nFROM\n ponzu/ponzu:latest\n\n\n\n# your project set up ...\n\n\n# ...\n\n\n# ...\n\n\n\n\n\n\nThe following are convenient commands during development of Ponzu core:\n\n\nBuild the docker image. Run from the root of the project.\n\n\n# from the root of ponzu:\n\ndocker build -t ponzu-dev\n\n\n\n\n\nStart the image, share the local directory and pseudo terminal (tty) into for debugging:\n\n\ndocker run -v \n$(\npwd\n)\n:/go/src/github.com/ponzu-cms/ponzu -it ponzu-dev\n\npwd\n \n# will output the go src directory for ponzu\n\nponzu version \n# will output the ponzu version\n\n\n# make an edit on your local and rebuild\n\ngo install ./...\n\n\n\n\n\nSpecial thanks to \n@krismeister\n for contributing this!",
+ "text": "Ponzu Docker build\n\n\nPonzu is distributed as a \ndocker image\n, \nwhich aids in ponzu deployment. The Dockerfile in this directory is used by Ponzu \nto generate the docker image which contains the ponzu executable.\n\n\nIf you are deploying your own Ponzu project, you can write a new Dockerfile that\nis based from the \nponzu/ponzu\n image of your choice. For example:\n\n\nFROM\n ponzu/ponzu:latest\n\n\n\n# your project set up ...\n\n\n# ...\n\n\n# ...\n\n\n\n\n\n\nThe following are convenient commands during development of Ponzu core:\n\n\nBuild the docker image. Run from the root of the project.\n\n\n# from the root of ponzu:\n\ndocker build -t ponzu-dev\n\n\n\n\n\nStart the image, share the local directory and pseudo terminal (tty) into for debugging:\n\n\ndocker run -v \n$(\npwd\n)\n:/go/src/github.com/haturatu/ponzu -it ponzu-dev\n\npwd\n \n# will output the go src directory for ponzu\n\nponzu version \n# will output the ponzu version\n\n\n# make an edit on your local and rebuild\n\ngo install ./...\n\n\n\n\n\nSpecial thanks to \n@krismeister\n for contributing this!",
"title": "Docker"
},
{
@@ -1097,7 +1097,7 @@
},
{
"location": "/System-Deployment/Docker/#start-the-image-share-the-local-directory-and-pseudo-terminal-tty-into-for-debugging",
- "text": "docker run -v $( pwd ) :/go/src/github.com/ponzu-cms/ponzu -it ponzu-dev pwd # will output the go src directory for ponzu \nponzu version # will output the ponzu version # make an edit on your local and rebuild \ngo install ./... Special thanks to @krismeister for contributing this!",
+ "text": "docker run -v $( pwd ) :/go/src/github.com/haturatu/ponzu -it ponzu-dev pwd # will output the go src directory for ponzu \nponzu version # will output the ponzu version # make an edit on your local and rebuild \ngo install ./... Special thanks to @krismeister for contributing this!",
"title": "Start the image, share the local directory and pseudo terminal (tty) into for debugging:"
},
{