Модуль:ЭЛ/volumes

Материал из Викитеки — свободной библиотеки

Для документации этого модуля может быть создана страница Модуль:ЭЛ/volumes/Документация

local data = {
	[ 1] = {
		num = 1,
		qid = 21282452,
		rsl_id = "01004103495",
		volume = "I",
		year = "1835",
		volume_name = {
			[true]  = "А — Алмелофеенъ",
			[false] = "А — Алмелофеен"
		},
		file = "Энциклопедический лексикон Плюшара Т. 1.djvu",
		page_map = {
			{from =   1, to = 558, start_with =  17},
			{from = 559, to = 568, start_with = 574}
		}
	},
	[ 2] = {
		num = 2,
		qid = 21282453,
		rsl_id = "01003822972",
		volume = "II",
		year = "1835",
		volume_name = {
			[true]  = "Альмогады — Арамъ",
			[false] = "Альмогады — Арамъ"
		},
		file = "Энциклопедический лексикон Плюшара Т. 2.djvu",
		page_map = {
			{from =   1, to = 490, start_with =   5},
			{from = 491, to = 498, start_with = 494}
		}
	},
	[ 3] = {
		num = 3,
		qid = 21282454,
		rsl_id = "01003822971",
		volume = "III",
		year = "1835",
		volume_name = {
			[true]  = "Арангъ — Аѳонская гора",
			[false] = "Аранг — Афонская гора"
		},
		file = "Энциклопедический лексикон Плюшара Т. 3.djvu",
		page_map = {
			{from = 1, to = 550, start_with = 7}
		}
	},
	[ 4] = {
		num = 4,
		qid = 21282455,
		rsl_id = "01004103492",
		volume = "IV",
		year = "1835",
		volume_name = {
			[true]  = "Б — Барремъ",
			[false] = "Б — Баррем"
		},
		file = "Энциклопедический лексикон Плюшара Т. 4.djvu",
		page_map = {
			{from =   1, to = 383, start_with =   7},
			{from = 385, to = 392, start_with = 390}
		}
	},
	[ 5] = {
		num = 5,
		qid = 21282456,
		rsl_id = "01003822970",
		volume = "V",
		year = "1836",
		volume_name = {
			[true]  = "Барреръ — Бинелліева вода",
			[false] = "Баррер — Бинеллиева вода"
		},
		file = "Энциклопедический лексикон Плюшара Т. 5.djvu",
		page_map = {
			{from = 1, to = 572, start_with = 7}
		}
	},
	[ 6] = {
		num = 6,
		qid = 21282457,
		rsl_id = "01004103487",
		volume = "VI",
		year = "1836",
		volume_name = {
			[true]  = "Бинокулярный телескопъ — Брандтъ",
			[false] = "Бинокулярный телескоп — Брандт"
		},
		file = "Энциклопедический лексикон Плюшара Т. 6.djvu",
		page_map = {
			{from = 1, to = 552, start_with = 9}
		}
	},
	[ 7] = {
		num = 7,
		qid = 21282458,
		rsl_id = "01004103484",
		volume = "VII",
		year = "1836",
		volume_name = {
			[true]  = "Брандтъ — Бялобржескій",
			[false] = "Брандт — Бялобржеский"
		},
		file = "Энциклопедический лексикон Плюшара Т. 7.djvu",
		page_map = {
			{from = 1, to = 622, start_with = 24}
		}
	},
	[ 8] = {
		num = 8,
		qid = 21282459,
		rsl_id = "01003822969",
		volume = "VIII",
		year = "1837",
		volume_name = {
			[true]  = "В — Варша",
			[false] = "В — Варша"
		},
		file = "Энциклопедический лексикон Плюшара Т. 8.djvu",
		page_map = {
			{from = 1, to = 320, start_with = 7}
		}
	},
	[ 9] = {
		num = 9,
		qid = 21282460,
		rsl_id = "01003822968",
		volume = "IX",
		year = "1837",
		volume_name = {
			[true]  = "Варшава — Вессексъ",
			[false] = "Варшава — Вессекс"
		},
		file = "Энциклопедический лексикон Плюшара Т. 9.djvu",
		page_map = {
			{from = 1, to = 552, start_with = 17}
		}
	},
	[10] = {
		num = 10,
		qid = 21282461,
		rsl_id = "01003822967",
		volume = "X",
		year = "1837",
		volume_name = {
			[true]  = "Весселингъ — Вкусъ",
			[false] = "Весселингъ — Вкус"
		},
		file = "Энциклопедический лексикон Плюшара Т. 10.djvu",
		page_map = {
			{from = 1, to = 556, start_with = 7}
		}
	},
	[11] = {
		num = 11,
		qid = 21282462,
		rsl_id = "01003822966",
		volume = "XI",
		year = "1838",
		volume_name = {
			[true]  = "Владимірецъ — Вонючій камень",
			[false] = "Владимирец — Вонючий камень"
		},
		file = "Энциклопедический лексикон Плюшара Т. 11.djvu",
		page_map = {
			{from =   1, to = 478, start_with = 17},
			{from = 487, to = 494, start_with =  9}
		}
	},
	[12] = {
		num = 12,
		qid = 21282463,
		rsl_id = "01003822965",
		volume = "XII",
		year = "1838",
		volume_name = {
			[true]  = "Воображеніе — Вячеславъ",
			[false] = "Воображение — Вячеслав"
		},
		file = "Энциклопедический лексикон Плюшара Т. 12.djvu",
		page_map = {
			{from = 1, to = 480, start_with = 13}
		}
	},
	[13] = {
		num = 13,
		qid = 21282464,
		rsl_id = "01003822964",
		volume = "XIII",
		year = "1838",
		volume_name = {
			[true]  = "Г — Геммы",
			[false] = "Г — Геммы"
		},
		file = "Энциклопедический лексикон Плюшара Т. 13.djvu",
		page_map = {
			{from =   1, to =  16, start_with =  16},
			{from =  17, to = 448, start_with =  33},
			{from = 449, to = 462, start_with = 466}
		}
	},
	[14] = {
		num = 14,
		qid = 21282465,
		rsl_id = "01003822963",
		volume = "XIV",
		year = "1838",
		volume_name = {
			[true]  = "Геморой — Горный трутъ",
			[false] = "Геморой — Горный трут"
		},
		file = "Энциклопедический лексикон Плюшара Т. 14.djvu",
		page_map = {
			{from = 1, to = 478, start_with = 17}
		}
	},
	[15] = {
		num = 15,
		qid = 21282466,
		rsl_id = "01003822962",
		volume = "XV",
		year = "1838",
		volume_name = {
			[true]  = "Горный хрусталь — Дашковы",
			[false] = "Горный хрусталь — Дашковы"
		},
		file = "Энциклопедический лексикон Плюшара Т. 15.djvu",
		page_map = {
			{from = 1, to = 436, start_with = 21}
		}
	},
	[16] = {
		num = 16,
		qid = 21282467,
		rsl_id = "01003822961",
		volume = "XVI",
		year = "1839",
		volume_name = {
			[true] = "Двадцатимужіе — Діонисіева эра",
			[false] = "Двадцатимужие — Дионисиева эра"
		},
		file = "Энциклопедический лексикон Плюшара Т. 16.djvu",
		page_map = {
			{from = 1, to = 400, start_with = 20}
		}
	},
	[17] = {
		num = 17,
		qid = 21282468,
		rsl_id = "01003822960",
		volume = "XVII",
		year = "1841",
		volume_name = {
			[true]  = "Діонисій — Дятлина",
			[false] = "Дионисий — Дятлина"
		},
		file = "Энциклопедический лексикон Плюшара Т. 17.djvu",
		page_map = {
			{from = 1, to = 452, start_with = 18}
		}
	}
};
--[[
function make_double_linked_list(t, s_first, s_last, s_next, s_prev)
	local n_index = 1;
	local prev = t[n_index];
	t[s_first] = prev;
	prev[s_prev] = nil;
	while true do
		n_index = n_index + 1;
		local curr = t[n_index];
		prev[s_next] = curr;
		if curr == nil then
			break;
		end;
		curr[s_prev] = prev;
		prev = curr;
	end;
	t[s_last] = prev;
end;]]
local el = require("Модуль:ЭЛ");
-- Для облегчения навигации делаем дважды связанный список. 
--[[
local prev_vol = data[1];
data.first = prev_vol;
prev_vol.prev = nil;
local n_index = 2;
while true do
    data.wd[prev_vol.qid] = prev_vol;
	local curr_vol = data[n_index];
	prev_vol.next = curr_vol;
	if curr_vol == nil then
		break;
	end;
	curr_vol.prev = prev_vol;
	prev_vol = curr_vol;
	n_index = n_index + 1;
end;
data.last = prev_vol;
]]
data.first, data.last = el.make_double_linked_list(data, "next", "prev");
-- индексируем по qid
data.wd = {};
local vol = data.first;
repeat 
	data.wd[vol.qid] = vol;
	vol.page_map.first, vol.page_map.last = el.make_double_linked_list(vol.page_map, "next", "prev");
	vol = vol.next;
until vol == nil;
return data;