UNPKG

marc21-punctuation

Version:

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

105 lines (104 loc) 4.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const index_1 = require("./index"); // Функция для демонстрации использования библиотеки function demonstrateMarcFormatting() { var _a, _b, _c, _d, _e, _f, _g; // Создаем форматтер MARC21 const formatter = new index_1.Marc21Formatter(); // Пример записи MARC21 для книги const marcFields = [ // Поле автора { tag: '100', indicators: ['1', ' '], subfields: [ { code: 'a', value: 'Толстой' }, { code: 'b', value: 'Л. Н.' }, { code: 'd', value: '1828-1910' }, ], }, // Поле заголовка { tag: '245', indicators: ['1', '0'], subfields: [ { code: 'a', value: 'Война и мир' }, { code: 'b', value: 'роман-эпопея' }, { code: 'c', value: 'Лев Толстой' }, ], }, // Поле издания { tag: '260', indicators: [' ', ' '], subfields: [ { code: 'a', value: 'Москва' }, { code: 'b', value: 'Эксмо' }, { code: 'c', value: '2020' }, ], }, // Физическое описание { tag: '300', indicators: [' ', ' '], subfields: [ { code: 'a', value: '1225 с.' }, { code: 'b', value: 'ил.' }, { code: 'c', value: '22 см' }, ], }, // Серия { tag: '490', indicators: ['0', ' '], subfields: [ { code: 'a', value: 'Классика мировой литературы' }, { code: 'v', value: 'т. 1' }, ], }, // Примечание { tag: '500', indicators: [' ', ' '], subfields: [ { code: 'a', value: 'Библиогр.: с. 1220-1225' }, ], }, // Дополнительный автор { tag: '700', indicators: ['1', ' '], subfields: [ { code: 'a', value: 'Иванов' }, { code: 'b', value: 'И. И.' }, { code: 'c', value: 'переводчик' }, ], }, ]; console.log('==== Пример использования библиотеки Marc21Punctuation ===='); console.log(''); // Форматирование отдельных полей с выводом результата console.log('=== Форматирование отдельных полей ==='); marcFields.forEach((field) => { const formattedText = formatter.getDisplayText(field); console.log(`${field.tag}: ${formattedText}`); }); console.log(''); console.log('=== Форматирование всей записи ==='); // Форматирование всей записи const formattedRecord = formatter.formatRecord(marcFields); // Вывод результатов форматирования записи console.log('Библиографическое описание:'); console.log(`Автор: ${(_a = formattedRecord['100']) === null || _a === void 0 ? void 0 : _a.formattedText}`); console.log(`Заглавие: ${(_b = formattedRecord['245']) === null || _b === void 0 ? void 0 : _b.formattedText}`); console.log(`Выходные данные: ${(_c = formattedRecord['260']) === null || _c === void 0 ? void 0 : _c.formattedText}`); console.log(`Физическое описание: ${(_d = formattedRecord['300']) === null || _d === void 0 ? void 0 : _d.formattedText}`); console.log(`Серия: ${(_e = formattedRecord['490']) === null || _e === void 0 ? void 0 : _e.formattedText}`); console.log(`Примечание: ${(_f = formattedRecord['500']) === null || _f === void 0 ? void 0 : _f.formattedText}`); console.log(`Дополнительный автор: ${(_g = formattedRecord['700']) === null || _g === void 0 ? void 0 : _g.formattedText}`); } // Запуск примера if (require.main === module) { demonstrateMarcFormatting(); }