add plugin-dev content
This commit is contained in:
parent
64b583eb00
commit
8e4f55f45b
4 changed files with 111 additions and 1 deletions
|
@ -5,5 +5,8 @@ nav: 1
|
|||
---
|
||||
|
||||
# Basics
|
||||
Creating your own content for Pico is *easy*.
|
||||
|
||||
Coming soon!
|
||||
Inside the root Pico folder, all *themes* reside in the `themes` directory,
|
||||
and all *plugins* in the `plugins` directory. (As a developer, you may have
|
||||
changed these paths and/or directory names when you initialized Pico.)
|
||||
|
|
13
_plugin-dev/core.md
Normal file
13
_plugin-dev/core.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
toc:
|
||||
core:
|
||||
_title: Core
|
||||
|
||||
nav: 2
|
||||
---
|
||||
|
||||
#Pico Core
|
||||
|
||||
It's generally not a good idea to make modifications to the core of Pico. If you
|
||||
are looking to add or change functionality, can it be accomplished with a plugin?
|
||||
If not, and you are interested in helping to develop the Pico core, [fork us on GitHub](https://github.com/picocms/Pico)!
|
84
_plugin-dev/plugins.md
Normal file
84
_plugin-dev/plugins.md
Normal file
|
@ -0,0 +1,84 @@
|
|||
---
|
||||
toc:
|
||||
plugins:
|
||||
_title: Plugins
|
||||
migrating: Migrating 0.X -> 1.0
|
||||
your_first: Your First Plugin
|
||||
nav: 3
|
||||
---
|
||||
|
||||
#Plugins
|
||||
At the heart of customizing Pico is a plugin. You can 'hook-in' to the Pico
|
||||
engine at many different times during the rendering of your site and its content.
|
||||
You will find a full example template in `plugins/DummyPlugin.php` to get you
|
||||
started on building some great stuff. Otherwise, keep reading to learn how to
|
||||
create your first plugin!
|
||||
|
||||
Officially tested plugins can be found at http://pico.dev7studios.com/plugins,
|
||||
but there are many awesome third-party plugins out there! A good start point
|
||||
for discovery is our [Wiki](#plugin-wiki).
|
||||
|
||||
#Migrating from 0.X -> 1.0
|
||||
The new event system supports plugin dependencies as well as some new events.
|
||||
You will be able to set an enabled/disabled state by default as well. If you
|
||||
have previously cerated a plugin for Pico, it is *HIGHLY* recommended that you
|
||||
update your class to extend from `AbstractPicoPlugin` and use the new events
|
||||
to avoid activating the `PicoDeprecated` plugin.
|
||||
|
||||
|---------------------|-----------------------------------------------------------|
|
||||
| Event | ... triggers the deprecated event |
|
||||
|---------------------|-----------------------------------------------------------|
|
||||
| onPluginsLoaded | plugins_loaded() |
|
||||
| onConfigLoaded | config_loaded($config) |
|
||||
| onRequestUrl | request_url($url) |
|
||||
| onContentLoading | before_load_content($file) |
|
||||
| onContentLoaded | after_load_content($file, $rawContent) |
|
||||
| on404ContentLoading | before_404_load_content($file) |
|
||||
| on404ContentLoaded | after_404_load_content($file, $rawContent) |
|
||||
| onMetaHeaders | before_read_file_meta($headers) |
|
||||
| onMetaParsed | file_meta($meta) |
|
||||
| onContentParsing | before_parse_content($rawContent) |
|
||||
| onContentParsed | after_parse_content($content) |
|
||||
| onContentParsed | content_parsed($content) |
|
||||
| onSinglePageLoaded | get_page_data($pages, $meta) |
|
||||
| onPagesLoaded | get_pages($pages, $currentPage, $previousPage, $nextPage) |
|
||||
| onTwigRegistration | before_twig_register() |
|
||||
| onPageRendering | before_render($twigVariables, $twig, $templateName) |
|
||||
| onPageRendered | after_render($output) |
|
||||
|---------------------|-----------------------------------------------------------|
|
||||
|
||||
#Your First Plugin
|
||||
|
||||
## 1. To get started, navigate to your `plugins` directory
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 2. Create a new folder and name it your desired name using CammelCase
|
||||

|
||||
|
||||
> *Note:* It's not necessary to create the folder, if you do not have assets to
|
||||
> include, you can simply skip this step and continue to Step 3
|
||||
|
||||
---
|
||||
|
||||
## 3. Next, you should copy `DummyPlugin.php` inside your newly created folder and give it the same name as you did the folder
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 4. You will need to name the `class` the same as the `folder` and the `.php` file
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 5. From here, you will be able to hook-in to Pico's processing
|
||||
Choose an event that makes sense for your situation. Do you need to load configuration values?
|
||||
`onConfigLoaded`. You need to modify the content of the page before it is
|
||||
rendered by markdown? `onPageRendering`. Etc... Plugin developers shouldn't
|
||||
manipulate data in "wrong" events, this could lead to unexpected behavior.
|
||||
|
||||
> *Note:* Don't forget to set your plugins enabled/disabled state, either by default or
|
||||
> through your sites `config/config.php` file.
|
||||
|
||||
---
|
10
_plugin-dev/wiki.md
Normal file
10
_plugin-dev/wiki.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
toc:
|
||||
wiki: Wiki
|
||||
nav: 3
|
||||
---
|
||||
|
||||
#Plugin Wiki
|
||||
Whether you have an awesome new plugin you've created and you're dying to share,
|
||||
or if you're a new plugin developer and you're looking for some inspiration--
|
||||
our [Pico Plugin Wiki](https://github.com/picocms/Pico/wiki/Pico-Plugins) is here to help!
|
Loading…
Add table
Reference in a new issue