|
@@ -1,97 +1,139 @@
|
|
-/*
|
|
|
|
|
|
+---
|
|
Title: Welcome
|
|
Title: Welcome
|
|
-Description: This description will go in the meta description tag
|
|
|
|
-*/
|
|
|
|
|
|
+Description: Pico is a stupidly simple, blazing fast, flat file CMS.
|
|
|
|
+---
|
|
|
|
|
|
## Welcome to Pico
|
|
## Welcome to Pico
|
|
|
|
|
|
-Congratulations, you have successfully installed [Pico](http://picocms.org/). Pico is a stupidly simple, blazing fast, flat file CMS.
|
|
|
|
|
|
+Congratulations, you have successfully installed [Pico](http://picocms.org/).
|
|
|
|
+%meta.description%
|
|
|
|
|
|
### Creating Content
|
|
### Creating Content
|
|
|
|
|
|
-Pico is a flat file CMS, this means there is no administration backend and database to deal with. You simply create `.md` files in the "content-sample"
|
|
|
|
-folder and that becomes a page. For example, this file is called `index.md` and is shown as the main landing page.
|
|
|
|
-
|
|
|
|
-If you create a folder within the content-sample folder (e.g. `content-sample/sub`) and put an `index.md` inside it, you can access that folder at the URL
|
|
|
|
-`http://yoursite.com/sub`. If you want another page within the sub folder, simply create a text file with the corresponding name (e.g. `content-sample/sub/page.md`)
|
|
|
|
-and you will be able to access it from the URL `http://yoursite.com/sub/page`. Below we've shown some examples of content-sample locations and their corresponing URL's:
|
|
|
|
-
|
|
|
|
-<table>
|
|
|
|
- <thead>
|
|
|
|
- <tr><th>Physical Location</th><th>URL</th></tr>
|
|
|
|
- </thead>
|
|
|
|
- <tbody>
|
|
|
|
- <tr><td>content-sample/index.md</td><td>/</td></tr>
|
|
|
|
- <tr><td>content-sample/sub.md</td><td>/sub</td></tr>
|
|
|
|
- <tr><td>content-sample/sub/index.md</td><td>/sub (same as above)</td></tr>
|
|
|
|
- <tr><td>content-sample/sub/page.md</td><td>/sub/page</td></tr>
|
|
|
|
- <tr><td>content-sample/a/very/long/url.md</td><td>/a/very/long/url</td></tr>
|
|
|
|
- </tbody>
|
|
|
|
|
|
+Pico is a flat file CMS, this means there is no administration backend and
|
|
|
|
+database to deal with. You simply create `.md` files in the `content-sample`
|
|
|
|
+folder and that becomes a page. For example, this file is called `index.md`
|
|
|
|
+and is shown as the main landing page.
|
|
|
|
+
|
|
|
|
+If you create a folder within the content folder (e.g. `content-sample/sub`)
|
|
|
|
+and put an `index.md` inside it, you can access that folder at the URL
|
|
|
|
+`http://yoursite.com/?sub`. If you want another page within the sub folder,
|
|
|
|
+simply create a text file with the corresponding name and you will be able to
|
|
|
|
+access it (e.g. `content-sample/sub/page.md` is accessible from the URL
|
|
|
|
+`http://yoursite.com/?sub/page`). Below we've shown some examples of locations
|
|
|
|
+and their corresponing URLs:
|
|
|
|
+
|
|
|
|
+<table style="width: 100%; max-width: 40em;">
|
|
|
|
+ <thead>
|
|
|
|
+ <tr>
|
|
|
|
+ <th style="width: 50%;">Physical Location</th>
|
|
|
|
+ <th style="width: 50%;">URL</th>
|
|
|
|
+ </tr>
|
|
|
|
+ </thead>
|
|
|
|
+ <tbody>
|
|
|
|
+ <tr>
|
|
|
|
+ <td>content-sample/index.md</td>
|
|
|
|
+ <td><a href="%base_url%">/</a></td>
|
|
|
|
+ </tr>
|
|
|
|
+ <tr>
|
|
|
|
+ <td>content-sample/sub.md</td>
|
|
|
|
+ <td><del>?sub</del> (not accessible, see below)</td>
|
|
|
|
+ </tr>
|
|
|
|
+ <tr>
|
|
|
|
+ <td>content-sample/sub/index.md</td>
|
|
|
|
+ <td><a href="%base_url%?sub">?sub</a> (same as above)</td>
|
|
|
|
+ </tr>
|
|
|
|
+ <tr>
|
|
|
|
+ <td>content-sample/sub/page.md</td>
|
|
|
|
+ <td><a href="%base_url%?sub/page">?sub/page</a></td>
|
|
|
|
+ </tr>
|
|
|
|
+ <tr>
|
|
|
|
+ <td>content-sample/a/very/long/url.md</td>
|
|
|
|
+ <td><a href="%base_url%?a/very/long/url">?a/very/long/url</a> (doesn't exist)</td>
|
|
|
|
+ </tr>
|
|
|
|
+ </tbody>
|
|
</table>
|
|
</table>
|
|
|
|
|
|
If a file cannot be found, the file `content-sample/404.md` will be shown.
|
|
If a file cannot be found, the file `content-sample/404.md` will be shown.
|
|
|
|
|
|
### Text File Markup
|
|
### Text File Markup
|
|
|
|
|
|
-Text files are marked up using [Markdown](http://daringfireball.net/projects/markdown/syntax). They can also contain regular HTML.
|
|
|
|
|
|
+Text files are marked up using [Markdown][]. They can also contain regular HTML.
|
|
|
|
|
|
-At the top of text files you can place a block comment and specify certain attributes of the page. For example:
|
|
|
|
|
|
+At the top of text files you can place a block comment and specify certain
|
|
|
|
+attributes of the page. For example:
|
|
|
|
|
|
- /*
|
|
|
|
- Title: Welcome
|
|
|
|
- Description: This description will go in the meta description tag
|
|
|
|
- Author: Joe Bloggs
|
|
|
|
- Date: 2013/01/01
|
|
|
|
- Robots: noindex,nofollow
|
|
|
|
- */
|
|
|
|
|
|
+ ---
|
|
|
|
+ Title: Welcome
|
|
|
|
+ Description: This description will go in the meta description tag
|
|
|
|
+ Author: Joe Bloggs
|
|
|
|
+ Date: 2013/01/01
|
|
|
|
+ Robots: noindex,nofollow
|
|
|
|
+ ---
|
|
|
|
|
|
-These values will be contained in the `{{ meta }}` variable in themes (see below).
|
|
|
|
|
|
+These values will be contained in the `{{ meta }}` variable in themes
|
|
|
|
+(see below).
|
|
|
|
|
|
There are also certain variables that you can use in your text files:
|
|
There are also certain variables that you can use in your text files:
|
|
|
|
|
|
-* <code>%base_url%</code> - The URL to your Pico site
|
|
|
|
|
|
+* <code>%site_title%</code> - The title of your Pico site
|
|
|
|
+* <code>%base_url%</code> - The URL to your Pico site; internal links
|
|
|
|
+ can be specified using <code>%base_url%?sub/page</code>
|
|
|
|
+* <code>%theme_url%</code> - The URL to the currently used theme
|
|
|
|
+* <code>%meta.*%</code> - Access any meta variable of the current page,
|
|
|
|
+ e.g. <code>%meta.author%</code> returns `Joe Bloggs`
|
|
|
|
|
|
### Themes
|
|
### Themes
|
|
|
|
|
|
-You can create themes for your Pico installation in the "themes" folder. Check out the default theme for an example of a theme. Pico uses
|
|
|
|
-[Twig](http://twig.sensiolabs.org/documentation) for it's templating engine. You can select your theme by setting the `$config['theme']` variable
|
|
|
|
-in `config/config.php` to your theme folder.
|
|
|
|
|
|
+You can create themes for your Pico installation in the `themes` folder. Check
|
|
|
|
+out the default theme for an example of a theme. Pico uses [Twig][] for
|
|
|
|
+template rendering. You can select your theme by setting the `$config['theme']`
|
|
|
|
+variable in `config/config.php` to your theme folder.
|
|
|
|
|
|
-All themes must include an `index.html` file to define the HTML structure of the theme. Below are the Twig variables that are available to use in your theme:
|
|
|
|
|
|
+All themes must include an `index.twig` file to define the HTML structure of
|
|
|
|
+the theme. Below are the Twig variables that are available to use in your
|
|
|
|
+theme. Paths (e.g. `{{ base_dir }}``) and URLs (e.g. `{{ base_url }}`) don't
|
|
|
|
+have a trailing slash.
|
|
|
|
|
|
-* `{{ config }}` - Conatins the values you set in `config/config.php` (e.g. `{{ config.theme }}` = "default")
|
|
|
|
|
|
+* `{{ config }}` - Conatins the values you set in `config/config.php`
|
|
|
|
+ (e.g. `{{ config.theme }}` = "default")
|
|
* `{{ base_dir }}` - The path to your Pico root directory
|
|
* `{{ base_dir }}` - The path to your Pico root directory
|
|
* `{{ base_url }}` - The URL to your Pico site
|
|
* `{{ base_url }}` - The URL to your Pico site
|
|
* `{{ theme_dir }}` - The path to the Pico active theme directory
|
|
* `{{ theme_dir }}` - The path to the Pico active theme directory
|
|
* `{{ theme_url }}` - The URL to the Pico active theme directory
|
|
* `{{ theme_url }}` - The URL to the Pico active theme directory
|
|
-* `{{ site_title }}` - Shortcut to the site title (defined in `config/config.php`)
|
|
|
|
|
|
+* `{{ rewrite_url }}` - A boolean flag indicating enabled/disabled URL rewriting
|
|
|
|
+* `{{ site_title }}` - Shortcut to the site title (see `config/config.php`)
|
|
* `{{ meta }}` - Contains the meta values from the current page
|
|
* `{{ meta }}` - Contains the meta values from the current page
|
|
- * `{{ meta.title }}`
|
|
|
|
- * `{{ meta.description }}`
|
|
|
|
- * `{{ meta.author }}`
|
|
|
|
- * `{{ meta.date }}`
|
|
|
|
- * `{{ meta.date_formatted }}`
|
|
|
|
- * `{{ meta.robots }}`
|
|
|
|
-* `{{ content-sample }}` - The content-sample of the current page (after it has been processed through Markdown)
|
|
|
|
-* `{{ pages }}` - A collection of all the content-sample in your site
|
|
|
|
- * `{{ page.title }}`
|
|
|
|
- * `{{ page.url }}`
|
|
|
|
- * `{{ page.author }}`
|
|
|
|
- * `{{ page.date }}`
|
|
|
|
- * `{{ page.date_formatted }}`
|
|
|
|
- * `{{ page.content-sample }}`
|
|
|
|
- * `{{ page.excerpt }}`
|
|
|
|
-* `{{ prev_page }}` - A page object of the previous page (relative to current_page)
|
|
|
|
-* `{{ current_page }}` - A page object of the current_page
|
|
|
|
-* `{{ next_page }}` - A page object of the next page (relative to current_page)
|
|
|
|
|
|
+ * `{{ meta.title }}`
|
|
|
|
+ * `{{ meta.description }}`
|
|
|
|
+ * `{{ meta.author }}`
|
|
|
|
+ * `{{ meta.date }}`
|
|
|
|
+ * `{{ meta.date_formatted }}`
|
|
|
|
+ * `{{ meta.robots }}`
|
|
|
|
+* `{{ content }}` - The content of the current page
|
|
|
|
+ (after it has been processed through Markdown)
|
|
|
|
+* `{{ pages }}` - A collection of all the content pages in your site
|
|
|
|
+ * `{{ page.id }}`
|
|
|
|
+ * `{{ page.url }}`
|
|
|
|
+ * `{{ page.title }}`
|
|
|
|
+ * `{{ page.description }}`
|
|
|
|
+ * `{{ page.author }}`
|
|
|
|
+ * `{{ page.time }}`
|
|
|
|
+ * `{{ page.date }}`
|
|
|
|
+ * `{{ page.date_formatted }}`
|
|
|
|
+ * `{{ page.raw_content }}`
|
|
|
|
+ * `{{ page.meta }}`
|
|
|
|
+* `{{ prev_page }}` - The data of the previous page (relative to `current_page`)
|
|
|
|
+* `{{ current_page }}` - The data of the current page
|
|
|
|
+* `{{ next_page }}` - The data of the next page (relative to `current_page`)
|
|
* `{{ is_front_page }}` - A boolean flag for the front page
|
|
* `{{ is_front_page }}` - A boolean flag for the front page
|
|
|
|
|
|
Pages can be used like:
|
|
Pages can be used like:
|
|
|
|
|
|
<pre><ul class="nav">
|
|
<pre><ul class="nav">
|
|
- {% for page in pages %}
|
|
|
|
- <li><a href="{{ page.url }}">{{ page.title }}</a></li>
|
|
|
|
- {% endfor %}
|
|
|
|
|
|
+ {% for page in pages %}
|
|
|
|
+ <li><a href="{{ page.url }}">{{ page.title }}</a></li>
|
|
|
|
+ {% endfor %}
|
|
</ul></pre>
|
|
</ul></pre>
|
|
|
|
|
|
### Plugins
|
|
### Plugins
|
|
@@ -100,10 +142,16 @@ See [http://pico.dev7studios.com/plugins](http://picocms.org/plugins)
|
|
|
|
|
|
### Config
|
|
### Config
|
|
|
|
|
|
-You can override the default Pico settings (and add your own custom settings) by editing `config/config.php` in the Pico directory.
|
|
|
|
-The `config/config.php.template` lists all of the settings and their defaults. To override a setting simply copy
|
|
|
|
-`config/config.php.template` to `config/config.php`, uncomment the setting and set your custom value.
|
|
|
|
|
|
+You can override the default Pico settings (and add your own custom settings)
|
|
|
|
+by editing `config/config.php` in the Pico directory. For a brief overview of
|
|
|
|
+the available settings and their defaults see `config/config.php.template`. To
|
|
|
|
+override a setting copy `config/config.php.template` to `config/config.php`,
|
|
|
|
+uncomment the setting and set your custom value.
|
|
|
|
|
|
### Documentation
|
|
### Documentation
|
|
|
|
|
|
-For more help have a look at the Pico documentation at [http://picocms.org/docs](http://picocms.org/docs)
|
|
|
|
|
|
+For more help have a look at the Pico documentation at
|
|
|
|
+[http://picocms.org/docs](http://picocms.org/docs)
|
|
|
|
+
|
|
|
|
+[Twig]: http://twig.sensiolabs.org/documentation
|
|
|
|
+[Markdown]: http://daringfireball.net/projects/markdown/syntax
|