open-index/open-npm huggingface dataset:
npm package: @presenta/block-barcode
Description: This block render a BarCode in a PRESENTA Library project using [JsBarcode Library](https://github.com/lindell/JsBarcode/)
Latest version: 1.0.3

# PRESENTA BarCode Block

This block render a BarCode in a PRESENTA Library project using [JsBarcode Library](https://github.com/lindell/JsBarcode/)

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-starter`

## Usage

To configure this block use this setting:

```js
{
    type: 'barcode',
    content: 'Hello World'
}
```

You can add the JsBarcode options alongside the main options in the config object.


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/block-chartjs
Description: ![](https://img.shields.io/npm/v/@presenta/block-chartjs)
Latest version: 1.0.14

# PRESENTA Chart.js Block

![](https://img.shields.io/npm/v/@presenta/block-chartjs)

This block displays a [Chart.js](https://www.chartjs.org/) component within a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-chartjs `

## Usage

To configure this block use this setting:

```js
{
    type: 'chartjs', // required
    config: {...} // required A valid Chart.js configuration object
}
```

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/block-emoji
Latest version: 1.0.0

# PRESENTA Emoji Block



## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-emoji`

## Usage

To configure this block use this setting:

```js
{
    type: 'emoji',
    emoji: '😹'
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/block-fitty
Description: This block renders a text string using the [Fitty library](https://github.com/rikschennink/fitty) under the hood.
Latest version: 1.0.4



# PRESENTA Fitty Block

This block renders a text string using the [Fitty library](https://github.com/rikschennink/fitty) under the hood.

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/blocks/fitty).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/block-flowchartjs
Description: This block displays a [Flowchart.js](http://flowchart.js.org/) chart within a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document.
Latest version: 1.0.2

# PRESENTA Flowchart.js Block

This block displays a [Flowchart.js](http://flowchart.js.org/) chart within a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document.

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/blocks/flowchartjs).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/block-modelviewer
Description: ![](https://img.shields.io/npm/v/@presenta/block-modelviewer)
Latest version: 1.0.0

# PRESENTA ModelViewer Block

![](https://img.shields.io/npm/v/@presenta/block-modelviewer)

This block renders a [ModelViewer](https://modelviewer.dev/) component within a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document.

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/blocks/modelviewer).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/block-plotly
Description: This is a `starter` scaffonding to help develop your own PRESENTA block.
Latest version: 1.0.4

# PRESENTA Starter Block

This is a `starter` scaffonding to help develop your own PRESENTA block.

There are some parts you need to edit before publishing your own block:

- update the `name`, `version`, `unpkg` and `module` in `package.json`
- update the `file` and `name` in `rollup.config.js`
- update all the `starter` references in `src` and `test`

The following is a template documentation for the end user that needs to be integrated as well.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-starter`

## Usage

To configure this block use this setting:

```js
{
    type: 'starter',
    name: 'John'
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/block-qrcode
Description: Render a QRCode in a PRESENTA Block
Latest version: 1.0.3

# PRESENTA QRCode Block

This block render a QRCode in a PRESENTA Library project.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-qrcode`

## Usage

To configure this block use this setting:

```js
{
    type: 'qrcode',
    content: 'John',
    color: 'red'
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/block-tableau
Description: This block renders a publicly accessible Tableau project.
Latest version: 1.0.7

# PRESENTA Tableau Block

This block renders a publicly accessible Tableau project.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-tableau`

## Usage

To configure this block use this setting:

```js
{
    type: 'tableau',
    url: 'public url',
    toolbal: 'hidden'
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/block-tabulator
Description: This is a `starter` scaffonding to help develop your own PRESENTA block.
Latest version: 1.0.4

# PRESENTA Starter Block

This is a `starter` scaffonding to help develop your own PRESENTA block.

There are some parts you need to edit before publishing your own block:

- update the `name`, `version`, `unpkg` and `module` in `package.json`
- update the `file` and `name` in `rollup.config.js`
- update all the `starter` references in `src` and `test`

The following is a template documentation for the end user that needs to be integrated as well.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-starter`

## Usage

To configure this block use this setting:

```js
{
    type: 'starter',
    name: 'John'
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/block-vegalite
Description: A Presenta Block to render a Vega-Lite chart
Author: Franchino Fabio
Latest version: 1.0.4

# PRESENTA Vega-Lite Block

This block displays a [Vega-Lite](https:/www.youtube.com) chart within a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document.

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/blocks/vegalite).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/block-youtube
Description: A Presenta Block to display and control a Youtube video
Author: Franchino Fabio
Latest version: 1.0.18

# PRESENTA Youtube Block

![](https://img.shields.io/npm/v/@presenta/block-youtube)

This block displays and manages a [Youtube](https://www.youtube.com) video within a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document.


## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/blocks/youtube).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/config-interpolator
Description: Presenta Config Interpolator
Latest version: 1.0.46

## Presenta Config Interpolator

This function accepts a data config and a template config and return a merged version useful to create a PRESENTA Lib document.

### Usage

```js
import { interpolate } from '@presenta/config-interpolator

const data = {
	myText: 'Hello',
	myText[color]: 'red', //
	myText[coords][top]: 20, //
	myText[hidden][hidden]: true
}

const templateConfig = {
	scenes:[{
		blocks:[{
			type: 'text',
			ukey: 'myText',
			content: ''
		}]
	}]
}

const config = await interpolate(data, templateConfig)

/*
const data = {
	myText: 'Hello'
}

const templateConfig = {
	scenes:[{
		blocks:[{
			type: 'text',
			ukey: 'myText',
			content: 'Hello'
		}]
	}]
}

*/
```
npm package: @presenta/controller-console-notes
Description: ![](https://img.shields.io/npm/v/@presenta/controller-console-notes)
Latest version: 1.0.1

# PRESENTA Console Notes Controller

![](https://img.shields.io/npm/v/@presenta/controller-console-notes)

This controller adds the speaker notes capability in a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document using the Console of the Browser' Developer Tools as viewer.

![](console-notes.gif)



## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/controllers/console-notes).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/controller-markdown
Description: Presenta Text Block Add-On to have markdown to HTML conversion
Latest version: 1.0.7

# Presenta Markdown Controller

This controller extends the `text` block in a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document adding automatic markdown conversion.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `controller-markdown`

## Usage

To configure this module use this setting:

```js
{
    controller:{
      markdown:true
    }
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/controller-styles
Description: ![](https://img.shields.io/npm/v/@presenta/controller-styles)
Latest version: 1.0.3

# PRESENTA Styles Controller

![](https://img.shields.io/npm/v/@presenta/controller-styles)

This controller injects some CSS selectors to provide some pre-defined style options (fonts, colors, etc).

No parameters are required, just include the plugin.

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/controllers/styles).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/controller-swiper
Description: Add swipe gesture capability on touch-enabled devices
Latest version: 1.0.4

# PRESENTA Swiper Controller

![](https://img.shields.io/npm/v/@presenta/controller-swiper)

This controller adds the swipe gesture capability on touch-enabled devices to let the user navigating back and forth in a [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) document.

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/controllers/swiper).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/figma2pjson
Description: Figma to Presenta converter
Latest version: 1.0.35

## Figma Document to PRESENTA JSON converter

Features:

- Texts will be converted as Editable Text Block in PRESENTA, styles will be preserved
- Images will be converted as Editable Image Block in PRESENTA with a placeholder source
- All the graphics/paths will be rendered as Svg Block in PRESENTA
- Frame background color is added as Svg Block
- Masks are supported
- Locked Elements in FIGMA will hide the API Param Preview in FrameAPI Panel

Limitations:

- Only the first PAGE is considered for the conversion
- Only FRAMEs will be parsed
- The first FRAME size will define the document size in PRESENTA, other Figma frames will inherit the first frame size in PRESENTA
- GROUPs will be rendered as SVG, no matter what they contain (this can be exploited, i.e. text as path or image embeded)
- Editable TEXTs need to be in the FRAME root in order to remain editable in PRESENTA
- Editable IMAGEs need to be in the FRAME root in order to remain editable in PRESENTA
- Images from FIGMA will be used from their CDN. They might expire though after a while.
- Custom or local fonts are not converted. You can add it in PRESENTA though.

This function accepts a data config and a template config and return a merged version useful to create a PRESENTA Lib document.

### Usage

```js
import { interpolate } from '@presenta/config-interpolator

const data = {
	myText: 'Hello'
}

const templateConfig = {
	scenes:[{
		blocks:[{
			type: 'text',
			ukey: 'myText',
			content: ''
		}]
	}]
}

const config = await interpolate(data, templateConfig)

/*
const data = {
	myText: 'Hello'
}

const templateConfig = {
	scenes:[{
		blocks:[{
			type: 'text',
			ukey: 'myText',
			content: 'Hello'
		}]
	}]
}

*/
```
npm package: @presenta/lib
Description: Build presentations, the modern way.
Author: Fabio Franchino
Latest version: 1.0.26


![PRESENTA Lib](cover.png)


<p align="center">
	<img src="https://img.shields.io/npm/v/@presenta/lib"/>
	<img src="https://badgen.net/github/release/presenta-software/presenta-lib"/>
	<img src="https://badgen.net/github/stars/presenta-software/presenta-lib"/>
	<a href="https://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg"/></a>
</p>




## Get started

- 🚀 [Landing page for a quick overview](https://www.presenta.cc/lib)
- 📃 [Library documentation](https://lib.presenta.cc/)
- ⏯ [Examples to get started](examples.md)



## Interact

Questions and suggestions: [Discussions board](https://github.com/presenta-software/presenta-lib/discussions).

Issues and bugs: [Issues section](https://github.com/presenta-software/presenta-lib/issues).


## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

**PRESENTA Lib** is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020-21 Fabio Franchino, [https://www.fabiofranchino.com](fabiofranchino.com)
npm package: @presenta/md2pjson
Description: ![](https://img.shields.io/npm/v/@presenta/md2pjson)
Latest version: 1.0.24

# Markdown to PRESENTA JSON

![](https://img.shields.io/npm/v/@presenta/md2pjson)

This library converts from `markdown` to an opinionated [PRESENTA](https://github.com/presenta-software/presenta-lib) config object.

A quick example [here](https://codepen.io/abusedmedia/pen/WNGwMrR).

## Usage

Parse a raw markdown string to get a JSON object:

```js
md2pjson.parse(md)
```

Get the index of the scene passing the line number of the raw markdown:

```js
const index = md2pjson.findIndex(res, 7)
```


Get the lines range in the raw markdown passing the index of the scene:

```js
const range = md2pjson.findRange(res, 1)
```


Change the separators string used for both the scenes and fragments, before parsing:

```js
md2pjson.setting.sceneSeparator = '---'
md2pjson.setting.fragmentSeparator = '–'
```

The library parses the HTML comments as scene and block properties:

```markdown
<!--
textVar: section
colorBack: red
-->

# hello 

```

Also, you can create blocks using this notation:

```markdown
# hello

```youtube
url: YTcodeID
```  

```

The above chunk creates a scene with two blocks, the first one is a `text` block, the last one a `youtube` block.

This library understands a [subset](https://raw.githubusercontent.com/omnidan/node-emoji/master/lib/emoji.json) of [emoji shortcodes](https://emojipedia.org/shortcodes/), such as:

```markdown
# Hello! :heart:
```

## Development

Run the watcher:

    npm start

and the local webserver

    npm run test

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/module-css
Description: This module adds raw CSS capability to PRESENTA Blocks.
Latest version: 1.0.1

# PRESENTA CSS Module

This module adds raw CSS capability to PRESENTA Blocks.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `module-starter`

## Usage

To configure this module use this setting:

```js
{
    modules:{
      css:'p{color:blue;}'
    }
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/module-highlightjs
Description: This module converts any `pre code` selector found in [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) blocks using [highlightjs library](https://highlightjs.org/).
Latest version: 1.0.11

# Presenta HighlightJs Module

This module converts any `pre code` selector found in [PRESENTA Lib](https://github.com/presenta-software/presenta-lib) blocks using [highlightjs library](https://highlightjs.org/).

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/modules/highlightjs).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/module-script
Latest version: 1.0.4

# PRESENTA Script Module


## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `module-script`

## Usage

To configure this module use this setting:

```js
{
    modules:{
      script:{}
    }
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/module-starter
Description: This is a `starter` scaffonding to help develop your own PRESENTA module.
Latest version: 1.0.1

# PRESENTA Starter Module

This is a `starter` scaffonding to help develop your own PRESENTA module.

There are some parts you need to edit before publishing your own module:

- update the `name`, `version`, `unpkg` and `module` in `package.json`
- update the `file` and `name` in `rollup.config.js`
- update all the `starter` references in `src` and `test`

The following is a template documentation for the end user that needs to be integrated as well.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `module-starter`

## Usage

To configure this module use this setting:

```js
{
    modules:{
      starter:true
    }
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/module-toast
Description: This module adds a little tip message to a scene.
Latest version: 1.0.5

# PRESENTA Toast Module

This module adds a little tip message to a scene.

## Documentation

Full documentation can be found [here](https://lib.presenta.cc/plugins/modules/toast).

## Contribute

### Development

To start a development session:

	npm start

To build a release:

	npm run build

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/sdk
Description: This is a `starter` scaffonding to help develop your own PRESENTA block.
Latest version: 1.0.0

# PRESENTA Starter Block

This is a `starter` scaffonding to help develop your own PRESENTA block.

There are some parts you need to edit before publishing your own block:

- update the `name`, `version`, `unpkg` and `module` in `package.json`
- update the `file` and `name` in `rollup.config.js`
- update all the `starter` references in `src` and `test`

The following is a template documentation for the end user that needs to be integrated as well.

## Installation

Please read the installation istructions for official plugins [here](https://lib.presenta.cc/extend/#install-an-official-plugin) using this unique identifier: `block-starter`

## Usage

To configure this block use this setting:

```js
{
    type: 'starter',
    name: 'John'
}
```


## Development

Run the watcher:

    npm start

and the local webserver

    npm run test
npm package: @presenta/txt2pjson
Description: This library converts from `text` to an opinionated PRESENTA config object. It's currently used by [PRESENTA Play](https://play.presenta.cc/)
Latest version: 1.0.7

# Text to PRESENTA json

This library converts from `text` to an opinionated PRESENTA config object.
It's currently used by [PRESENTA Play](https://play.presenta.cc/)

## Development

Run the watcher:

    npm start

and the local webserver

    npm run test

## Licence

This plugin is released under the [3-Clause BSD license](LICENSE).

Copyright © 2020 Fabio Franchino, [https://fabiofranchino.com](https://fabiofranchino.com)
npm package: @presenta/unsorted
Description: PRESENTA unsorted plugins
Author: Fabio Franchino
Latest version: 0.0.4

# PRESENTA Unsorted Plugins

This repository contains Proof-Of-Concept and experimental plugins for **PRESENTA Lib**.

The main purpose is to test new ideas quickly leaving them available pubblicly for easy evaluation and learning.

For that reason, the whole repository is published under on NPM and available with UNPKG with this base URL:

```
https://unpkg.com/@presenta/unsorted/
```

as an example, `aCircle.js` can be reached by adding the relative parth:

```
https://unpkg.com/@presenta/unsorted/blocks/aCircle.js
```

This means that you can include one or more plugins both in [Playground](https://play.presenta.cc/view/qJyA0pW1bCcaQ) tool or within any online coding tool such as [Codepen](https://codepen.io/abusedmedia/pen/BapMvLQ).

**A word of caution:**

All these plugins have to be considered experimental or proof-of-concept, even if they looks finalized.

A well-structure plugin usually lives in its own repository, ideally alongside a build toolchain, in order to publish a single javscript file that might include external dependencies.