marc21-punctuation
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Marc21 Punctuation

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

Установка

npm install marc21-punctuation

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

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 Дополнительный автор Иванов, И. И., переводчик

Расширение правил

Вы можете добавить свои правила пунктуации:

import { Marc21Formatter, PunctuationRule } from 'marc21-punctuation';

const customRule: PunctuationRule = {
  tag: '520',  // Поле аннотации
  apply: (field) => {
    // Ваша логика форматирования
    // ...
    return formattedSubfields;
  },
  description: 'Правило для форматирования аннотаций'
};

const formatter = new Marc21Formatter();
formatter.addRule(customRule);

Лицензия

MIT

Package Sidebar

Install

npm i marc21-punctuation

Weekly Downloads

3

Version

1.0.0

License

MIT

Unpacked Size

30.2 kB

Total Files

14

Last publish

Collaborators

  • uvaissov