Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

Parser.js

Zuletzt modifiziert: 09.10.2024, 12:58 - Dateigröße: 2.54 KiB


01  matches.forEach(function(m)
02  {
03      // Test whether this is an end tag
04      var isEnd = (text.charAt(m[0][1] + 1) === '/');
05   
06      var pos    = m[0][1],
07          len    = m[0][0].length,
08          elName = m[2 - isEnd][0].toLowerCase();
09   
10      // Use the element's alias if applicable, or the  name of the element (with the
11      // configured prefix) otherwise
12      var tagName = (config.aliases && config.aliases[elName] && config.aliases[elName][''])
13                  ? config.aliases[elName]['']
14                  : config.prefix + ':' + elName;
15   
16      if (isEnd)
17      {
18          addEndTag(tagName, pos, len);
19   
20          return;
21      }
22   
23      // Test whether it's a self-closing tag or a start tag.
24      //
25      // A self-closing tag will become one start tag consuming all of the text followed by a
26      // 0-width end tag. Alternatively, it could be replaced by a pair of 0-width tags plus
27      // an ignore tag to prevent the text in between from being output
28      var tag = (/(<\S+|['"\s])\/>$/.test(m[0][0]))
29              ? addTagPair(tagName, pos, len, pos + len, 0)
30              : addStartTag(tagName, pos, len);
31   
32      captureAttributes(tag, elName, m[3][0]);
33  });
34   
35  /**
36  * Capture all attributes in given string
37  *
38  * @param  {!Tag}    tag    Target tag
39  * @param  {!string} elName Name of the HTML element
40  * @param  {!string} str    String containing the attribute declarations
41  */
42  function captureAttributes(tag, elName, str)
43  {
44      // Capture attributes
45      var attrRegexp = /[a-z][-a-z0-9]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'=<>`]+))?/gi,
46          attrName,
47          attrValue,
48          attrMatch,
49          pos;
50   
51      while (attrMatch = attrRegexp.exec(str))
52      {
53          pos = attrMatch[0].indexOf('=');
54   
55          /**
56          * If there's no equal sign, it's a boolean attribute and we generate a value equal
57          * to the attribute's name, lowercased
58          *
59          * @link http://www.w3.org/html/wg/drafts/html/master/single-page.html#boolean-attributes
60          */
61          if (pos < 0)
62          {
63              pos = attrMatch[0].length;
64              attrMatch[0] += '=' + attrMatch[0].toLowerCase();
65          }
66   
67          // Normalize the attribute name, remove the whitespace around its value to account
68          // for cases like <b title = "foo"/>
69          attrName  = attrMatch[0].substr(0, pos).toLowerCase().replace(/^\s+/, '').replace('/\s+$/', '');
70          attrValue = attrMatch[0].substr(1 + pos).replace(/^\s+/, '').replace('/\s+$/', '');
71   
72          // Use the attribute's alias if applicable
73          if (HINT.HTMLELEMENTS_HAS_ALIASES && config.aliases && config.aliases[elName] && config.aliases[elName][attrName])
74          {
75              attrName = config.aliases[elName][attrName];
76          }
77   
78          // Remove quotes around the value
79          if (/^["']/.test(attrValue))
80          {
81              attrValue = attrValue.substr(1, attrValue.length - 2);
82          }
83   
84          tag.setAttribute(attrName, html_entity_decode(attrValue));
85      }
86  }