PageSourceSearch

https://rism.info/assets/js/lunr.de.js

js rism.info collected 2026-10-01 11:57:33 UTC 13,949 bytes, 384 lines download raw bytes

1/*!
2 * Lunr languages, `German` language
3 * https://github.com/MihaiValentin/lunr-languages
4 *
5 * Copyright 2014, Mihai Valentin
6 * http://www.mozilla.org/MPL/
7 */
8/*!
9 * based on
10 * Snowball JavaScript Library v0.3
11 * http://code.google.com/p/urim/
12 * http://snowball.tartarus.org/
13 *
14 * Copyright 2010, Oleg Mazko
15 * http://www.mozilla.org/MPL/
16 */
17
18/**
19 * export the module via AMD, CommonJS or as a browser global
20 * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
21 */
22;
23(function(root, factory) {
24  if (typeof define === 'function' && define.amd) {
25    // AMD. Register as an anonymous module.
26    define(factory)
27  } else if (typeof exports === 'object') {
28    /**
29     * Node. Does not work with strict CommonJS, but
30     * only CommonJS-like environments that support module.exports,
31     * like Node.
32     */
33    module.exports = factory()
34  } else {
35    // Browser globals (root is window)
36    factory()(root.lunr);
37  }
38}(this, function() {
39  /**
40   * Just return a value to define the module export.
41   * This example returns an object, but the module
42   * can return a function as the exported value.
43   */
44  return function(lunr) {
45    /* throw error if lunr is not yet included */
46    if ('undefined' === typeof lunr) {
47      throw new Error('Lunr is not present. Please include / require Lunr before this script.');
48    }
49
50    /* throw error if lunr stemmer support is not yet included */
51    if ('undefined' === typeof lunr.stemmerSupport) {
52      throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
53    }
54
55    /* register specific locale function */
56    lunr.de = function() {
57      this.pipeline.reset();
58      this.pipeline.add(
59        lunr.de.trimmer,
60        lunr.de.stopWordFilter,
61        lunr.de.stemmer
62      );
63
64      // for lunr version 2
65      // this is necessary so that every searched word is also stemmed before
66      // in lunr <= 1 this is not needed, as it is done using the normal pipeline
67      if (this.searchPipeline) {
68        this.searchPipeline.reset();
69        this.searchPipeline.add(lunr.de.stemmer
vendor: 10,308 bytes, lines 69-380
69)
70      }
71    };
72
73    /* lunr trimmer function */
74    lunr.de.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
75    lunr.de.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.de.wordCharacters);
76
77    lunr.Pipeline.registerFunction(lunr.de.trimmer, 'trimmer-de');
78
79    /* lunr stemmer function */
80    lunr.de.stemmer = (function() {
81      /* create the wrapped stemmer object */
82      var Among = lunr.stemmerSupport.Among,
83        SnowballProgram = lunr.stemmerSupport.SnowballProgram,
84        st = new function GermanStemmer() {
85          var a_0 = [new Among("", -1, 6), new Among("U", 0, 2),
86              new Among("Y", 0, 1), new Among("\u00E4", 0, 3),
87              new Among("\u00F6", 0, 4), new Among("\u00FC", 0, 5)
88            ],
89            a_1 = [
90              new Among("e", -1, 2), new Among("em", -1, 1),
91              new Among("en", -1, 2), new Among("ern", -1, 1),
92              new Among("er", -1, 1), new Among("s", -1, 3),
93              new Among("es", 5, 2)
94            ],
95            a_2 = [new Among("en", -1, 1),
96              new Among("er", -1, 1), new Among("st", -1, 2),
97              new Among("est", 2, 1)
98            ],
99            a_3 = [new Among("ig", -1, 1),
100              new Among("lich", -1, 1)
101            ],
102            a_4 = [new Among("end", -1, 1),
103              new Among("ig", -1, 2), new Among("ung", -1, 1),
104              new Among("lich", -1, 3), new Among("isch", -1, 2),
105              new Among("ik", -1, 2), new Among("heit", -1, 3),
106              new Among("keit", -1, 4)
107            ],
108            g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0,
109              0, 0, 0, 0, 0, 0, 8, 0, 32, 8
110            ],
111            g_s_ending = [117, 30, 5],
112            g_st_ending = [
113              117, 30, 4
114            ],
115            I_x, I_p2, I_p1, sbp = new SnowballProgram();
116          this.setCurrent = function(word) {
117            sbp.setCurrent(word);
118          };
119          this.getCurrent = function() {
120            return sbp.getCurrent();
121          };
122
123          function habr1(c1, c2, v_1) {
124            if (sbp.eq_s(1, c1)) {
125              sbp.ket = sbp.cursor;
126              if (sbp.in_grouping(g_v, 97, 252)) {
127                sbp.slice_from(c2);
128                sbp.cursor = v_1;
129                return true;
130              }
131            }
132            return false;
133          }
134
135          function r_prelude() {
136            var v_1 = sbp.cursor,
137              v_2, v_3, v_4, v_5;
138            while (true) {
139              v_2 = sbp.cursor;
140              sbp.bra = v_2;
141              if (sbp.eq_s(1, "\u00DF")) {
142                sbp.ket = sbp.cursor;
143                sbp.slice_from("ss");
144              } else {
145                if (v_2 >= sbp.limit)
146                  break;
147                sbp.cursor = v_2 + 1;
148              }
149            }
150            sbp.cursor = v_1;
151            while (true) {
152              v_3 = sbp.cursor;
153              while (true) {
154                v_4 = sbp.cursor;
155                if (sbp.in_grouping(g_v, 97, 252)) {
156                  v_5 = sbp.cursor;
157                  sbp.bra = v_5;
158                  if (habr1("u", "U", v_4))
159                    break;
160                  sbp.cursor = v_5;
161                  if (habr1("y", "Y", v_4))
162                    break;
163                }
164                if (v_4 >= sbp.limit) {
165                  sbp.cursor = v_3;
166                  return;
167                }
168                sbp.cursor = v_4 + 1;
169              }
170            }
171          }
172
173          function habr2() {
174            while (!sbp.in_grouping(g_v, 97, 252)) {
175              if (sbp.cursor >= sbp.limit)
176                return true;
177              sbp.cursor++;
178            }
179            while (!sbp.out_grouping(g_v, 97, 252)) {
180              if (sbp.cursor >= sbp.limit)
181                return true;
182              sbp.cursor++;
183            }
184            return false;
185          }
186
187          function r_mark_regions() {
188            I_p1 = sbp.limit;
189            I_p2 = I_p1;
190            var c = sbp.cursor + 3;
191            if (0 <= c && c <= sbp.limit) {
192              I_x = c;
193              if (!habr2()) {
194                I_p1 = sbp.cursor;
195                if (I_p1 < I_x)
196                  I_p1 = I_x;
197                if (!habr2())
198                  I_p2 = sbp.cursor;
199              }
200            }
201          }
202
203          function r_postlude() {
204            var among_var, v_1;
205            while (true) {
206              v_1 = sbp.cursor;
207              sbp.bra = v_1;
208              among_var = sbp.find_among(a_0, 6);
209              if (!among_var)
210                return;
211              sbp.ket = sbp.cursor;
212              switch (among_var) {
213                case 1:
214                  sbp.slice_from("y");
215                  break;
216                case 2:
217                case 5:
218                  sbp.slice_from("u");
219                  break;
220                case 3:
221                  sbp.slice_from("a");
222                  break;
223                case 4:
224                  sbp.slice_from("o");
225                  break;
226                case 6:
227                  if (sbp.cursor >= sbp.limit)
228                    return;
229                  sbp.cursor++;
230                  break;
231              }
232            }
233          }
234
235          function r_R1() {
236            return I_p1 <= sbp.cursor;
237          }
238
239          function r_R2() {
240            return I_p2 <= sbp.cursor;
241          }
242
243          function r_standard_suffix() {
244            var among_var, v_1 = sbp.limit - sbp.cursor,
245              v_2, v_3, v_4;
246            sbp.ket = sbp.cursor;
247            among_var = sbp.find_among_b(a_1, 7);
248            if (among_var) {
249              sbp.bra = sbp.cursor;
250              if (r_R1()) {
251                switch (among_var) {
252                  case 1:
253                    sbp.slice_del();
254                    break;
255                  case 2:
256                    sbp.slice_del();
257                    sbp.ket = sbp.cursor;
258                    if (sbp.eq_s_b(1, "s")) {
259                      sbp.bra = sbp.cursor;
260                      if (sbp.eq_s_b(3, "nis"))
261                        sbp.slice_del();
262                    }
263                    break;
264                  case 3:
265                    if (sbp.in_grouping_b(g_s_ending, 98, 116))
266                      sbp.slice_del();
267                    break;
268                }
269              }
270            }
271            sbp.cursor = sbp.limit - v_1;
272            sbp.ket = sbp.cursor;
273            among_var = sbp.find_among_b(a_2, 4);
274            if (among_var) {
275              sbp.bra = sbp.cursor;
276              if (r_R1()) {
277                switch (among_var) {
278                  case 1:
279                    sbp.slice_del();
280                    break;
281                  case 2:
282                    if (sbp.in_grouping_b(g_st_ending, 98, 116)) {
283                      var c = sbp.cursor - 3;
284                      if (sbp.limit_backward <= c && c <= sbp.limit) {
285                        sbp.cursor = c;
286                        sbp.slice_del();
287                      }
288                    }
289                    break;
290                }
291              }
292            }
293            sbp.cursor = sbp.limit - v_1;
294            sbp.ket = sbp.cursor;
295            among_var = sbp.find_among_b(a_4, 8);
296            if (among_var) {
297              sbp.bra = sbp.cursor;
298              if (r_R2()) {
299                switch (among_var) {
300                  case 1:
301                    sbp.slice_del();
302                    sbp.ket = sbp.cursor;
303                    if (sbp.eq_s_b(2, "ig")) {
304                      sbp.bra = sbp.cursor;
305                      v_2 = sbp.limit - sbp.cursor;
306                      if (!sbp.eq_s_b(1, "e")) {
307                        sbp.cursor = sbp.limit - v_2;
308                        if (r_R2())
309                          sbp.slice_del();
310                      }
311                    }
312                    break;
313                  case 2:
314                    v_3 = sbp.limit - sbp.cursor;
315                    if (!sbp.eq_s_b(1, "e")) {
316                      sbp.cursor = sbp.limit - v_3;
317                      sbp.slice_del();
318                    }
319                    break;
320                  case 3:
321                    sbp.slice_del();
322                    sbp.ket = sbp.cursor;
323                    v_4 = sbp.limit - sbp.cursor;
324                    if (!sbp.eq_s_b(2, "er")) {
325                      sbp.cursor = sbp.limit - v_4;
326                      if (!sbp.eq_s_b(2, "en"))
327                        break;
328                    }
329                    sbp.bra = sbp.cursor;
330                    if (r_R1())
331                      sbp.slice_del();
332                    break;
333                  case 4:
334                    sbp.slice_del();
335                    sbp.ket = sbp.cursor;
336                    among_var = sbp.find_among_b(a_3, 2);
337                    if (among_var) {
338                      sbp.bra = sbp.cursor;
339                      if (r_R2() && among_var == 1)
340                        sbp.slice_del();
341                    }
342                    break;
343                }
344              }
345            }
346          }
347          this.stem = function() {
348            var v_1 = sbp.cursor;
349            r_prelude();
350            sbp.cursor = v_1;
351            r_mark_regions();
352            sbp.limit_backward = v_1;
353            sbp.cursor = sbp.limit;
354            r_standard_suffix();
355            sbp.cursor = sbp.limit_backward;
356            r_postlude();
357            return true;
358          }
359        };
360
361      /* and return a function that stems a word for the current locale */
362      return function(token) {
363        // for lunr version 2
364        if (typeof token.update === "function") {
365          return token.update(function(word) {
366            st.setCurrent(word);
367            st.stem();
368            return st.getCurrent();
369          })
370        } else { // for lunr version <= 1
371          st.setCurrent(token);
372          st.stem();
373          return st.getCurrent();
374        }
375      }
376    })();
377
378    lunr.Pipeline.registerFunction(lunr.de.stemmer, 'stemmer-de');
379
380    lunr.de.
380stopWordFilter = lunr.generateStopWordFilter('aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über'.split(' '));
381
382    lunr.Pipeline.registerFunction(lunr.de.stopWordFilter, 'stopWordFilter-de');
383  };
384}))

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.