1.20.0 • Published 3 months ago

nano-format v1.20.0

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
3 months ago

English | Français | Español | Português | Italiano | Nederlands | Deutsch | Čeština | Беларуская | Български | Српски | Polski | Русский

Формат .nano - компактне зберігання HTML та XML у YAML або JSON.

nano-format — це бібліотека для конвертації та роботи з HTML/XML в компактному форматі Nano, який використовує YAML або JSON для зберігання даних.

Філософія

  • Просто і зрозуміло.
  • Кожне слово тут має значення.
  • Зручне збереження і редагування даних HTML і XML.

Цілі

  • Можливість опису формату будь яких даних у структурі YAML (JSON).
  • Створення простих і зрозумілих структур даних, обмін ними, і компоненти інтерфейсів для даних.

Встановлення

Для встановлення бібліотеки скористайтеся npm або yarn:

npm install nano-format

або

yarn add nano-format

Використання

Конвертація з Nano до HTML

Функція nano2html() дозволяє конвертувати структури Nano у HTML:

const { nano2html } = require('nano-format');

const nano = {
    p: {
        $class: 'text',
        content: 'Це тестовий параграф.'
    }
};

const html = nano2html(nano);
console.log(html);
// <p class="text">Це тестовий параграф.</p>

Еквівалент формату (без використання content):

const { nano2html } = require('nano-format');

const nano = {
    $class: 'text',
    p: 'Це тестовий параграф.'
};

const html = nano2html(nano);
console.log(html);
// <p class="text">Це тестовий параграф.</p>

Конвертація з HTML до Nano

Функція html2nano() конвертує HTML-код у структуру Nano:

const { html2nano } = require('nano-format');

const html = `<p class="text">Це тестовий параграф.</p>`;
const nano = html2nano(html);

console.log(nano);
/*
{
    p: {
        $class: 'text',
        content: 'Це тестовий параграф.'
    }
}
*/

Налаштування тегів та атрибутів

nano-format дозволяє налаштовувати теги та атрибути через функції setSelfClosedTags(), setDefaultAttributes(), та setTags():

const { setSelfClosedTags, setDefaultAttributes, setTags } = require('nano-format');

// Додаємо нові теги
setDefaultAttributes({ 'customComment': '$ref' });
setTags([
    { child: 'div', tags: ['section', 'article'] },
]);
setSelfClosedTags(['customComment']);
// customComment автоматично потрапить і у setTags через addTags { child: '', tags: ['customComment'] }

Скидання всіх налаштувань

Для скидання налаштувань до значень за замовчуванням використовуйте resetAll():

const { resetAll } = require('nano-format');

resetAll();

Документація API

Функції

  • nano2html(content, nextTag = null)
    Конвертує структуру Nano у HTML.
    Параметри:

    • content (any): Структура Nano для конвертації.
    • nextTag (string|null): Тег, який буде використовуватись для обгортки контенту (необов'язковий).
      Повертає:
    • HTML-рядок.
  • html2nano(html)
    Конвертує HTML-код у структуру Nano.
    Параметри:

    • html (string): HTML-код для конвертації.
      Повертає:
    • Структура Nano.
  • setSelfClosedTags(tags = null)
    Налаштовує список самозакритих тегів.
    Параметри:

    • tags (string[] | null): Масив тегів або null для скидання до значень за замовчуванням.
      Повертає:
    • Оновлений список самозакритих тегів.
  • setDefaultAttributes(attrs = null, value = undefined)
    Налаштовує атрибути за замовчуванням для тегів.
    Параметри:

    • attrs (DefaultTagsAttributes | null): Мапа тегів до атрибутів або null для скидання до значень за замовчуванням.
    • value (string | undefined): Значення для конкретного атрибута (необов'язковий).
      Повертає:
    • Оновлені атрибути за замовчуванням.
  • resetAll()
    Скидає всі налаштування до значень за замовчуванням.
    Повертає:

    • Об'єкт з початковими налаштуваннями самозакритих тегів, атрибутів та тегів.

Ліцензія

Цей проєкт ліцензовано на умовах ліцензії ISC.

1.14.0

5 months ago

1.12.0

5 months ago

1.18.0

4 months ago

1.16.1

5 months ago

1.16.0

5 months ago

1.19.12

3 months ago

1.19.13

3 months ago

1.19.10

3 months ago

1.8.0

6 months ago

1.19.11

3 months ago

1.6.0

6 months ago

1.19.14

3 months ago

1.4.0

6 months ago

1.11.0

5 months ago

1.15.0

5 months ago

1.13.0

5 months ago

1.19.0

4 months ago

1.17.1

4 months ago

1.17.0

4 months ago

1.19.4

4 months ago

1.9.1

5 months ago

1.19.3

4 months ago

1.9.0

6 months ago

1.19.2

4 months ago

1.19.1

4 months ago

1.7.0

6 months ago

1.5.2

6 months ago

1.19.8

4 months ago

1.5.1

6 months ago

1.19.7

4 months ago

1.5.0

6 months ago

1.19.6

4 months ago

1.19.5

4 months ago

1.19.9

3 months ago

1.20.0

3 months ago

1.10.1

5 months ago

1.10.0

5 months ago

1.3.3

9 months ago

1.3.2

9 months ago

1.3.1

9 months ago

1.2.3

9 months ago

1.2.2

9 months ago

1.2.1

9 months ago

1.1.4

9 months ago

1.1.3

9 months ago

1.1.2

9 months ago

1.0.1

10 months ago