marc21-punctuation
Version:
Библиотека для обработки формата MARC21 и применения правил пунктуации согласно стандартам Библиотеки Конгресса США
105 lines (104 loc) • 4.49 kB
JavaScript
;
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();
}