Модуль:ЭЛ/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;