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. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Parser.js
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 }