UNPKG

marc21-punctuation

Version:

Библиотека для обработки формата MARC21 и применения правил пунктуации согласно стандартам Библиотеки Конгресса США

105 lines (84 loc) 3.74 kB
# Marc21 Punctuation Библиотека для обработки MARC21 и применения правил пунктуации согласно стандартам Библиотеки Конгресса США. ## Установка ```bash npm install marc21-punctuation ``` ## Использование ```typescript import { Marc21Formatter, Marc21Field } from 'marc21-punctuation'; // Создание форматтера MARC21 const formatter = new Marc21Formatter(); // Пример поля MARC21 const titleField: Marc21Field = { tag: '245', indicators: ['1', '0'], subfields: [ { code: 'a', value: 'Война и мир' }, { code: 'b', value: 'роман' }, { code: 'c', value: 'Лев Толстой' }, ], }; // Получение форматированного текста для отображения const displayText = formatter.getDisplayText(titleField); console.log(displayText); // Выведет: "Война и мир : роман / Лев Толстой" // Получение подробного результата форматирования const formattingResult = formatter.format(titleField); console.log(formattingResult); // Форматирование нескольких полей MARC21 const fields: Marc21Field[] = [ // Поле автора { tag: '100', indicators: ['1', ' '], subfields: [ { code: 'a', value: 'Толстой' }, { code: 'b', value: 'Л. Н.' }, { code: 'd', value: '1828-1910' }, ], }, // Поле заголовка titleField, // Поле издания { tag: '260', indicators: [' ', ' '], subfields: [ { code: 'a', value: 'Москва' }, { code: 'b', value: 'Эксмо' }, { code: 'c', value: '2020' }, ], }, ]; const formattedRecord = formatter.formatRecord(fields); console.log(formattedRecord); ``` ## Поддерживаемые поля MARC21 Библиотека поддерживает следующие поля MARC21 с соответствующими правилами пунктуации: | Тег | Описание | Примеры форматирования | |------|---------------------------------|-------------------------------------------| | 100 | Основной автор | Толстой, Л. Н., 1828-1910 | | 245 | Заголовок | Война и мир : роман / Лев Толстой | | 260 | Публикация | Москва : Эксмо, 2020 | | 300 | Физическое описание | 1225 с. : ил. ; 22 см | | 490 | Серия | (Классика мировой литературы ; т. 1) | | 500 | Примечания | Библиогр.: с. 1220-1225 | | 700 | Дополнительный автор | Иванов, И. И., переводчик | ## Расширение правил Вы можете добавить свои правила пунктуации: ```typescript import { Marc21Formatter, PunctuationRule } from 'marc21-punctuation'; const customRule: PunctuationRule = { tag: '520', // Поле аннотации apply: (field) => { // Ваша логика форматирования // ... return formattedSubfields; }, description: 'Правило для форматирования аннотаций' }; const formatter = new Marc21Formatter(); formatter.addRule(customRule); ``` ## Лицензия MIT