Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation

Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus


local Serial = "2018-03-22"
--[=[ Runeberg/Salmonsen
require() table supporting: Salmonsens konversationsleksikon (1915...1930)
]=]



return {
    facet = function ( Data, aEdt, aVol, aPag )
        local r1, r2
        if aEdt > 0 then
            r1 = ""
            r2 = tostring( aEdt )
            if aVol then
                r2 = string.format( "%s/%d", r2, aVol )
                if aPag then
                    r2 = string.format( "%s/%04d.html",
                                        r2,
                                        Data.folio( aEdt, aVol, aPag ) )
                end
            end
        end
        return r1, r2
    end, -- .facet()
    figures = function ( Data )
        -- Retrieve numbers from invocation
        -- Returns numbers: edition, volume, column, error
        local sEdt = mw.text.trim( Data.params.ed or "" )
        local sVol = mw.text.trim( Data.params.vol or "" )
        local sPag = mw.text.trim( Data.params.sub or "" )
        local rEdt = sEdt:match( "^[12]$" )
        local rVol = sVol:match( "^[12]?%d$" )
        local rPag, rErr
        if rEdt then
            rEdt = tonumber( rEdt )
            if rVol then
                rVol = tonumber( rVol )
                if rVol > 0   and
                   ( ( rEdt == 1  and  rVol <= 19 )   or
                     ( rEdt == 2  and  rVol <= 26 ) ) then
                    rPag = sPag:match( "^%d+$" )
                    if rPag then
                        rPag = tonumber( rPag )
                    elseif sPag ~= "" then
                        rErr = 5
                    end
                else
                    rVol = false
                    rErr = 3
                end
            elseif sVol ~= ""  or  sPag ~= "" then
                rErr = 2
            end
        elseif sEdt ~= ""  or  sVol ~= ""  or  sPag ~= "" then
            rErr = 1
            rVol = false
        else
            rEdt = 0
        end
        return  rEdt, rVol, rPag, rErr
    end, -- .figures()
    pages = { false,                     --  1. Edition
              {                          --  2. Edition
                { {    3,   14,  8 },
                  {   15,   22, 10 },
                  {   23,   52, 12 },
                  {   53,   80, 14 },
                  {   81,  248, 16 },
                  {  249,  256, 18 },
                  {  257,  260, 22 },
                  {  261,  272, 24 },
                  {  273,  392, 26 },
                  {  393,  456, 28 },
                  {  457,  472, 32 },
                  {  473,  496, 34 },
                  {  497,  568, 36 },
                  {  569,  612, 38 },
                  {  613,  638, 40 },
                  {  639,  664, 42 },
                  {  665,  868, 44 },
                  {  869,  876, 46 },
                  {  877,  961, 48 } },    --  1 beginnt auf Seite 3
                { {    1,  162,  8 },
                  {  163,  224, 10 },
                  {  225,  230, 12 },
                  {  231,  232, 20 },
                  {  233,  248, 22 },
                  {  249,  316, 24 },
                  {  317,  322, 26 },
                  {  323,  388, 28 },
                  {  389,  394, 30 },
                  {  395,  398, 34 },
                  {  399,  452, 36 },
                  {  453,  510, 38 },
                  {  511,  546, 40 },
                  {  547,  562, 42 },
                  {  563,  604, 44 },
                  {  605,  736, 46 },
                  {  737,  770, 48 },
                  {  771,  864, 50 },
                  {  865,  878, 52 },
                  {  879,  953, 54 } },    --  2
                { {    1,   24,  8 },
                  {   25,   48, 10 },
                  {   49,  196, 12 },
                  {  197,  240, 18 },
                  {  241,  244, 42 },
                  {  245,  378, 44 },
                  {  379,  436, 46 },
                  {  437,  538, 50 },
                  {  539,  568, 54 },
                  {  569,  570, 56 },
                  {  571,  572, 60 },
                  {  573,  848, 62 },
                  {  849,  953, 66 } },    --  3
                { {    1,   50,  8 },
                  {   51,   56, 10 },
                  {   57,   80, 14 },
                  {   81,   84, 18 },
                  {   85,  136, 22 },
                  {  137,  170, 24 },
                  {  171,  196, 26 },
                  {  197,  232, 28 },
                  {  233,  320, 30 },
                  {  321,  388, 42 },
                  {  389,  452, 44 },
                  {  453,  840, 46 },
                  {  841,  912, 48 },
                  {  913,  951, 50 } },    --  4
                { {    1,  436,  8 },
                  {  437,  464, 10 },
                  {  465,  474, 12 },
                  {  475,  500, 14 },
                  {  501,  532, 18 },
                  {  533,  538, 20 },
                  {  539,  540, 22 },
                  {  541,  552, 24 },
                  {  553,  620, 26 },
                  {  621,  622, 28 },
                  {  623,  672, 30 },
                  {  673,  766, 62 },
                  {  767,  768, 64 },
                  {  769,  778, 66 },
                  {  779,  820, 68 },
                  {  821,  952, 70 } },   --  5
                { {    1,  108,  8 },
                  {  109,  198, 10 },
                  {  199,  210, 12 },
                  {  211,  280, 14 },
                  {  281,  304, 16 },
                  {  305,  394, 18 },
                  {  395,  416, 20 },
                  {  417,  464, 22 },
                  {  465,  488, 24 },
                  {  489,  570, 26 },
                  {  571,  584, 28 },
                  {  585,  612, 30 },
                  {  613,  626, 32 },
                  {  627,  640, 34 },
                  {  641,  654, 38 },
                  {  655,  718, 40 },
                  {  719,  900, 42 },     -- hier ist eine merkwürdige Zählung 897 bis 904 sind vier doppelseitige Bilder
                  {  901,  952, 38 }      -- so dass es textlich mit 905 weitergeht die Seiten 897 bis 904 fehlen quasi
                                     },   --  6
                { {    1,   92,  8 },
                  {   93,  140, 10 },
                  {  141,  216, 12 },
                  {  217,  356, 14 },
                  {  357,  378, 16 },
                  {  379,  440, 18 },
                  {  441,  454, 20 },
                  {  455,  562, 22 },
                  {  563,  576, 24 },
                  {  577,  620, 28 },
                  {  621,  640, 30 },
                  {  641,  688, 32 },
                  {  698,  776, 34 },
                  {  777,  779, 36 },
                  {  780,  951, 38 } },      --  7
                { {    1,    8, 10 },
                  {    9,   68, 14 },
                  {   69,  116, 15 },   -- ungerader Seitensprung
                  {  117,  136, 17 },
                  {  137,  152, 19 },
                  {  153,  204, 21 },
                  {  205,  288, 23 },
                  {  289,  296, 25 },
                  {  297,  322, 29 },
                  {  323,  348, 31 },
                  {  349,  462, 33 },
                  {  463,  524, 35 },
                  {  525,  658, 37 },
                  {  659,  820, 39 },
                  {  821,  872, 41 },
                  {  873,  951, 45 } },      --  8
                { {    1,   16, 11 },   -- ungerader Seitensprung
                  {   17,   42, 13 },
                  {   43,  577, 15 },   -- ungerade Seitenzahl vor Bild
                  {  578,  682, 17 },
                  {  683,  688, 21 },
                  {  689,  768, 23 },
                  {  769,  776, 25 },
                  {  777,  778, 27 },
                  {  779,  842, 29 },
                  {  843,  951, 31 } },      --  9
                { {    1,   72, 10 },
                  {   73,  208, 16 },
                  {  209,  288, 18 },
                  {  289,  416, 20 },
                  {  417,  952, 22 } },      -- 10
                { {    1,  752,  8 },
                  {  753,  874, 10 },
                  {  875,  949, 12 } },      -- 11
                { {    1,  136,  8 },
                  {  137,  422, 10 },
                  {  423,  544, 12 },
                  {  545,  632, 14 },
                  {  633,  816, 16 },
                  {  817,  952, 18 } },      -- 12
                { {    1,  284,  8 },
                  {  285,  374, 10 },
                  {  375,  502, 12 },
                  {  503,  708, 14 },
                  {  709,  856, 16 },
                  {  857,  954, 18 } },      -- 13
                { {    1,   48,  8 },
                  {   49,   66, 10 },
                  {   67,   70, 12 },
                  {   71,   78, 14 },
                  {   79,  106, 18 },
                  {  107,  194, 20 },
                  {  195,  378, 24 },
                  {  379,  526, 26 },
                  {  527,  606, 28 },
                  {  607,  698, 30 },
                  {  699,  873, 32 },
                  {  874,  963, 34 } },      -- 14
                { {    1,   64,  8 },
                  {   65,  192, 10 },
                  {  193,  324, 12 },
                  {  325,  894, 15 },   -- abnormal ungerader Sprung
                  {  895, 1016, 17 },
                  { 1017, 1087, 19 },   -- ungewöhnlicher Einschub S. 1088 und 1089 sind auf 1106a und 1106b
                  { 1090, 1120, 17 } },      -- 15
                { {    1,  292, 12 },
                  {  293,  312, 14 },
                  {  313,  362, 16 },
                  {  363,  370, 18 },
                  {  371,  826, 20 },
                  {  827, 1118, 24} },      -- 16
                { {    1,   58, 12 },
                  {   59,  270, 14 },
                  {  271,  334, 16 },
                  {  335,  400, 20 },
                  {  401,  528, 24 },
                  {  529,  562, 26 },
                  {  563,  592, 30 },
                  {  593,  610, 32 },
                  {  611,  682, 34 },
                  {  683,  684, 36 },
                  {  685,  686, 38 },
                  {  687,  688, 40 },
                  {  689,  752, 42 },
                  {  753,  888, 44 },
                  {  889, 1024, 46 },
                  { 1025, 1112, 48 } },      -- 17
                { {    1,   16, 10 },
                  {   17,   40, 12 },
                  {   41,   48, 14 },
                  {   49,  152, 18 },
                  {  153,  234, 22 },
                  {  235,  278, 26 },
                  {  279,  392, 28 },
                  {  393,  448, 30 },
                  {  449,  576, 32 },
                  {  577,  610, 36 },
                  {  611,  628, 38 },   -- zwischen S. 614 und 615 ist ein Bild mit Anhängsel 0652a
                  {  629,  644, 42 },
                  {  645,  832, 44 },
                  {  833,  848, 46 },
                  {  849,  888, 48 },
                  {  889, 1112, 50 } },      -- 18
                { {    1,   88, 10 },
                  {   89,  218, 12 },
                  {  219,  312, 14 },
                  {  313,  396, 16 },
                  {  397,  416, 18 },
                  {  417,  504, 20 },
                  {  505,  652, 22 },
                  {  653,  740, 24 },
                  {  741,  848, 26 },
                  {  849,  852, 28 },
                  {  853,  912, 30 },
                  {  913,  988, 32 },
                  {  989, 1114, 34 } },      -- 19
                { {    1,   92,  8 },
                  {   93,  202, 10 },
                  {  203,  272, 12 },
                  {  273,  304, 14 },
                  {  305,  344, 16 },
                  {  345,  372, 18 },
                  {  373,  456, 20 },
                  {  457,  458, 24 },
                  {  459,  536, 26 },
                  {  537,  692, 28 },
                  {  693,  918, 30 },
                  {  919, 1107, 32 } },      -- 20
                { {    1,  104,  8 },
                  {  105,  188, 10 },
                  {  189,  474, 12 },
                  {  413,  546, 14 },
                  {  547,  568, 16 },
                  {  569,  700, 18 },
                  {  701,  740, 24 },
                  {  741,  788, 26 },
                  {  789,  940, 28 },
                  {  941,  992, 30 },
                  {  993, 1096, 32 },
                  { 1097, 1110, 34 } },      -- 21
                { {    1,   98,  8 },
                  {   99,  256, 10 },
                  {  257,  352, 12 },
                  {  353,  490, 14 },
                  {  491,  688, 16 },
                  {  689,  848, 20 },
                  {  849, 1040, 22 },
                  { 1041, 1089, 24 } },      -- 22
                { {    1, 1015,  8 } },      -- 23
                { {    1,    8,  8 },
                  {    9,  574, 10 },
                  {  575,  976, 12 } },      -- 24
                { {    1,  104,  8 },
                  {  105,  680, 10 },
                  {  681,  740, 12 },
                  {  741,  760, 16 },
                  {  761,  943, 18 } },      -- 25
                { {    1,   24,  8 },
                  {   25,   74, 10 },
                  {   75,   86, 12 },
                  {   87,   96, 14 },
                  {   97,  108, 16 },
                  {  109,  248, 18 },
                  {  249,  360, 20 },
                  {  361,  440, 22 },
                  {  441,  680, 24 },
                  {  681,  840, 26 },
                  {  841, 1000, 28 },
                  { 1001, 1104, 30 } } } },  -- 26
    ranges = { {                        --  1. Edition Salmonsens store illustrerede konversationsleksikon; en nordisk encyklopædi
    	       	 "A–Arkaisk",                       --  1
    	       	 "Arkaisme–Bisceglio",              --  2
    	       	 "Bischarin–Canada",                --  3
    	       	 "Canadian River–Dase",             --  4
    	       	 "Dasent–Éon",                      --  5
    	       	 "Eon–Franske Revolutionskrige",    --  6
    	       	 "Franskfodet–Grækenland",          --  7
    	       	 "Grækenland–Horn",                 --  8
    	       	 "Horn–Jærv",                       --  9
    	       	 "Jætte–Kryolit",                   -- 10
    	       	 "Kryolitglas–Lydtragt",            -- 11
    	       	 "Lyell–Musik",                     -- 12
    	       	 "Musikakademi–Pantheon",           -- 13
    	       	 "Panthoos–Richter",                -- 14
    	       	 "Richter–Sjögren",                 -- 15
    	       	 "Sjøgren–Syntagma",                -- 16
    	       	 "Syntaks–Valence",                 -- 17
    	       	 "Valencia–Øynhausen",              -- 18
    	       	 "Supplement" },                    -- 19
               {                        --  2. Edition
                 "A–Arbejdergilder",                --  1
                 "Arbejderhaver–Benzol",            --  2
                 "Benzolderivater–Brides",          --  3
                 "Bridge–Cikader",                  --  4
                 "Cikorie–Demersale",               --  5
                 "Demeter–Elektriske Sikringer",    --  6
                 "Elektriske Sporveje–Fiesole",     --  7
                 "Fiévée–Friehling",                --  8
                 "Friele–Gradient",                 --  9
                 "Gradischa–Hasselgren",            -- 10
                 "Hasselmus–Hven",                  -- 11
                 "Hvene–Jernbaner",                 -- 12
                 "Jernbaneret–Kirkeskat",           -- 13
                 "Kirkeskov–Kvadratrix",            -- 14
                 "Kvadratrod–Ludmila",              -- 15
                 "Ludolf–Miel",                     -- 16
                 "Mielck–Nordland",                 -- 17
                 "Nordlandsbaad–Perleøerne",        -- 18
                 "Perlit–Rendehest",                -- 19
                 "Renden–Schinkel",                 -- 20
                 "Schinopsis–Spektrum",             -- 21
                 "Spekulation–Søøre",               -- 22
                 "T–Tysk frisindede Parti",         -- 23
                 "Tyskland–Vertere",                -- 24
                 "Werth–Øyslebø",                   -- 25
                 "Supplement: A–Øyslebø" } },       -- 26
  serial = Serial }



--    Runeberg/Salmonsen