An open API service indexing awesome lists of open source software.

https://github.com/jekyll-is/is-ial-parser

Universal Inline Attribute List (IAL) parser for Kramdown and Jekyll plugins
https://github.com/jekyll-is/is-ial-parser

gem jekyll kramdown parseing parsing ruby

Last synced: 4 months ago
JSON representation

Universal Inline Attribute List (IAL) parser for Kramdown and Jekyll plugins

Awesome Lists containing this project

README

          

| [en](README.md) | RU |
|----------|----------|

# is-ial-parser

Универсальный парсер Inline Attribute Lists (IAL) для плагинов Kramdown и Jekyll.

## Версия

+ **0.8.0** — предварительный релиз.

## Обзор

is-ial-parser — это Ruby gem, разработанный для разбора Inline Attribute Lists с поддержкой расширений, кавычек, интерполяции и преобразования типов. Он помогает обрабатывать строки атрибутов, обычно встраиваемых в markdown или генераторы статических сайтов, такие как Jekyll, обеспечивая расширенный контроль над атрибутами элементов, классами, id и пользовательскими расширениями.

Ключевые возможности включают:
- разбор id, классов, атрибутов с ключом-значением и специальных префиксов.
- поддержку кавычек и экранирования.
- преобразование строковых значений в нативные Ruby-типы (булевы, числа, символы).
- расширяемые пространства имён атрибутов через ключи с двоеточиями.
- настраиваемый строгий режим с подробной обработкой ошибок.
- сохранение исходных кавычек при необходимости.
- комплексная обработка крайних случаев и ошибок, таких как дублирование id или незакрытые кавычки.

## Установка

Добавьте строку в Gemfile вашего приложения:

```ruby
gem 'is-ial-parser', '~> 0.8.0'
```

Затем выполните:

```shell
bundle install
```

Или установите гем напрямую:

```shell
gem install is-ial-parser
```

## Использование

```ruby
require 'is-ial-parser'

source = '@/home/ivan scan=false link= title="Пример заголовка" .note.italic #header ext:sym=blabla\ ololo'
result = IALParser.parse(source, special_prefixes: ['@'])

puts result[:id] # :header
puts result[:classes] # Set['note', 'italic']
puts result[:"@"] # "/home/ivan"
puts result[:scan] # false
puts result[:title] # "Пример заголовка"
puts result[:ext][:sym] # "blabla ololo"
```

Подробные примеры и тесты в папке с тестами.

## Разработка

Для запуска тестов используйте команду:

```shell
bundle exec rake spec
```

Покрытие тестами включает разбор классов, id, атрибутов, кавычек, расширений, ошибок и преобразование типов.

## Вклад

Отчёты об ошибках и пулл-реквесты приветствуются на GitHub: https://github.com/jekyll-is/is-ial-parser.

Следуйте стилю кода и покрытию тестами при внесении изменений.

## Лицензия

Гем доступен как open source под лицензией GNU GPLv3.