# Plugins

In this section you can find the list of officially supported PRESENTA Lib plugins, sorted by type.

# Blocks

A Block renders a content. When you need a different type of media or render a content in a different way, external blocks might help, such as:

Want to create your own Block?

Awesome! There's a guide for that!. If you plan to make it public, let us know!

# Modules

A Module extends a scene in order provide additional features at scene level. Here some examples:

Want to create your own Module?

Awesome! There's a guide for that!. If you plan to make it public, let us know!

# Controllers

A Controller extends the presentation as a whole by adding global capabilities:

Want to create your own Controller?

Awesome! There's a guide for that!. If you plan to make it public, let us know!

# Installation

This section describes the installation possibilities enforced by official plugins.

First off, you need to know the unique name of the plugin and replace the <PLUGIN-NAME> placeholder with it (i.e. block-youtube or controller-shuffle or module-markdown)

# From unpkg:

Using the script tag in the HTML document (recommended):

<script src="https://unpkg.com/@presenta/<PLUGIN-NAME>"></script>

# From npm:

If you are in a local dev enviroment with the common node.js based toolchain already installed, you can run npm with:

npm install @presenta/<PLUGIN-NAME>

now you can include the plugin in the browser with (it needs to be included after PRESENTA Lib):

<script src="/node_modules/@presenta/lib/dist/presenta.min.js"></script>
<script src="/node_modules/@presenta/<PLUGIN-NAME>/dist/presenta-<PLUGIN-NAME>.min.js"></script>

Or using SkyPack service in ES6:

<script type="module">
	import Presenta from 'https://cdn.skypack.dev/@presenta/lib'
	import myPluginName from 'https://cdn.skypack.dev/@presenta/<PLUGIN-NAME>'

	Presenta.use(myPluginName)
</script>

Or using a bundler:

import * as Presenta from '@presenta/lib'
import myPluginName from '@presenta/<PLUGIN-NAME>'

Presenta.use(myPluginName)

# Development

Go to this page to learn about how to develop you own PRESENTA Lib plugin.