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
- Host: GitHub
- URL: https://github.com/jekyll-is/is-ial-parser
- Owner: jekyll-is
- License: gpl-3.0
- Created: 2025-11-01T07:55:00.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-12-10T02:50:50.000Z (7 months ago)
- Last Synced: 2025-12-13T11:44:06.231Z (7 months ago)
- Topics: gem, jekyll, kramdown, parseing, parsing, ruby
- Language: Ruby
- Homepage:
- Size: 127 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README-ru.md
- License: LICENSE
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.