# danza

> A Node script for building websites using Synergy Web Components.

Latest version **0.11.3** (published 2021-03-03) · ISC license · 0 weekly downloads

## Install

```sh
npm install danza
pnpm add danza
yarn add danza
bun add danza
```

Provides the command `danza`.

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.11.3 |
| Published | 2021-03-03 |
| First published | 2020-08-22 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 7 |
| Unpacked size | 10.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | defx |

## Links

- npm: https://www.npmjs.com/package/danza
- npm.io page: https://npm.io/package/danza

## Dependencies (7)

- [chai](https://npm.io/package/chai.md) ^4.3.0
- [execa](https://npm.io/package/execa.md) ^5.0.0
- [mocha](https://npm.io/package/mocha.md) ^8.3.0
- [mosaic](https://npm.io/package/mosaic.md) ^1.0.2
- [fs-extra](https://npm.io/package/fs-extra.md) ^9.1.0
- [puppeteer](https://npm.io/package/puppeteer.md) ^8.0.0
- [pkg-install](https://npm.io/package/pkg-install.md) ^1.0.0

## Recent versions

- 0.11.3 (latest) — 2021-03-03
- 0.11.2 — 2021-03-03
- 0.11.1 — 2021-03-03
- 0.11.0 — 2021-03-03
- 0.10.0 — 2020-10-23
- 0.9.0 — 2020-10-18
- 0.8.7 — 2020-10-06
- 0.8.6 — 2020-10-05
- 0.8.5 — 2020-10-05
- 0.8.4 — 2020-10-02
- 0.8.3 — 2020-09-29
- 0.8.2 — 2020-09-28
- 0.8.1 — 2020-09-28
- 0.8.0 — 2020-09-28
- 0.7.3 — 2020-09-25
- … 10 more at https://npm.io/package/danza/versions

## README

# Danza

A Node script for building websites using Synergy Web Components.

Danza expects a couple of things from your project...

1. you will have a `pages` folder, containg an html file for each page in your site.
2. you will have a `components` folder, containing a folder for each Custom Element

An example project folder structure...

```
YourProject
|
|_components
    |
    |_ header
        |
        |- index.html
        |- header.spec.js
        |
|_ pages
|   |
|   |- index.html
|   |- about.html
|   |
```

## components/

Danza assumes that your component...

1. will be described within a script within an HTML file (as an HTML fragment rather than a document)
2. will be self-initialising (e.g., defines itself with the Custom Elements registry)

Here's a simple component example:

```html
<script type="module">
  import { define } from 'https://unpkg.com/synergy';

  define('x-foo', ({ title = '' }) => {
    return {
      title,
    };
  }, document.getElementById('foo'));
</script>
<template id="foo">
  <h1>{{ title }}</h1>
</template>
```

## pages/

Each page is just a standard HTML file. Danza will inject the definitions for each of the components you use on a page just before the closing body tag so you can use any of the Custom Elements defined within your `/components` folder as if they were built-in elements.

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Made with Danza</title>
  </head>
  <body>
    <x-foo title="bar"></x-foo>
  </body>
</html>
```

## commands

- `danza dev` - Compiles all of your pages and then servers them over HTTP using an Express server with hot reloading.

- `danza build` - Compiles all of your pages and then saves them in the `public` folder.

- `danza test` - Loads all `*.spec.js` files inside your component folders (`components/**/*.spec.js`) and compiles them into a Mocha test suite with all of your local Custom Elements registered and available to use within your tests. The tests are run in a headless Chrome instance and the output is printed at the terminal.

---
_Source: https://npm.io/package/danza · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
