/
stm_javascript.txt
136 lines (134 loc) · 9.43 KB
/
stm_javascript.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# stm_javascript v0.3
# Stores JavaScript files within the database and handles them similar to CSS files.
# Stanislav Müller
# http://lifedraft.de/
# ......................................................................
# This is a plugin for Textpattern - http://textpattern.com/
# To install: textpattern > admin > plugins
# Paste the following text into the 'Install plugin' box:
# ......................................................................
YTo5OntzOjQ6Im5hbWUiO3M6MTQ6InN0bV9qYXZhc2NyaXB0IjtzOjc6InZlcnNpb24iO3M6
MzoiMC4zIjtzOjY6ImF1dGhvciI7czoxNzoiU3RhbmlzbGF2IE3DvGxsZXIiO3M6MTA6ImF1
dGhvcl91cmkiO3M6MjA6Imh0dHA6Ly9saWZlZHJhZnQuZGUvIjtzOjExOiJkZXNjcmlwdGlv
biI7czo4MjoiU3RvcmVzIEphdmFTY3JpcHQgZmlsZXMgd2l0aGluIHRoZSBkYXRhYmFzZSBh
bmQgaGFuZGxlcyB0aGVtIHNpbWlsYXIgdG8gQ1NTIGZpbGVzLiI7czo0OiJ0eXBlIjtpOjE7
czo0OiJoZWxwIjtzOjYyNDoiCjxwPkluIGFkbWluIHNlY3Rpb24sIGdvIHRvIHRhYiAicHJl
c2VudGF0aW9uID4gamF2YXNjcmlwdCIgYW5kIGNyZWF0ZSBvbmUgb3JlIG1vcmUgamF2YXNj
cmlwdCBmaWxlcyB0aGF0IHlvdSB3YW50IHRvIGVtYmVkIHdpdGhpbiB5b3VyIHBhZ2UgdGVt
cGxhdGVzLiBUaGlzIGlzIHNpbWlsaWFyIHRvIHRoZSAic3R5bGVzIiB0YWIgLSB0aGUgSmF2
YVNjcmlwdCBmaWxlcyBnZXQgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSBhbmQgeW91IGNhbiBl
bWJlZCB0aGVtIHdpdGggYSBuZXcgVGV4dHBhdHRlcm4gdGFnOjwvcD4KCjxwPgoJPGNvZGU+
CiZsdDt0eHA6anMgLyZndDsgKGVtYmVkcyBkZWZhdWx0IEphdmFTY3JpcHQgZmlsZSkKPC9j
b2RlPjwvcD4KPHA+PGNvZGU+Cjx0eHA6anMgbj0ibXlEb21TY3JpcHQiIC8+IChlbWJlZHMg
SmF2YVNjcmlwdCBmaWxlIG5hbWVkICZxdW90O215RG9tU2NyaXB0JnF1b3Q7KQo8L2NvZGU+
PC9wPgoKPHA+T3V0cHV0OjwvcD4KPHA+PGNvZGU+CiZsdDtzY3JpcHQgdHlwZT0mcXVvdDt0
ZXh0L2phdmFzY3JpcHQmcXVvdDsgc3JjPSZxdW90O2h0dHA6Ly9teXNpdGUuY29tLz9qcz1t
eURvbVNjcmlwdCZxdW90OyZndDsmbHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcD4KIjtzOjQ6
ImNvZGUiO3M6NTcxOToiCi8vIFBsdWdpbiBjb2RlIGdvZXMgaGVyZS4gIE5vIG5lZWQgdG8g
ZXNjYXBlIHF1b3Rlcy4KCmlmIChAdHhwaW50ZXJmYWNlID09ICdhZG1pbicpIHsKCWFkZF9w
cml2cygnanMnLCAnMSwyJyk7CglyZWdpc3Rlcl90YWIoInByZXNlbnRhdGlvbiIsICJqcyIs
ICJKYXZhc2NyaXB0Iik7CglyZWdpc3Rlcl9jYWxsYmFjaygiaGFuZGxlX2JhY2tlbmRfamF2
YXNjcmlwdCIsICJqcyIpOwp9ZWxzZXsKCWlmKGdwcygnanMnKSl7CgkJcmV0dXJuX2pzKGdw
cygnanMnKSk7Cgl9Cn0KCmZ1bmN0aW9uIGpzKCRhcnJheT0nJyl7CglleHRyYWN0KCRhcnJh
eSk7CglpZighJG4pewoJCSRuID0gImRlZmF1bHQiOwoJfQoJcmV0dXJuIHNwcmludGYoJzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly8lcz9qcz0lcyI+PC9z
Y3JpcHQ+JywgJEdMT0JBTFNbJ3ByZWZzJ11bJ3NpdGV1cmwnXSwgJG4pOwp9CgpmdW5jdGlv
biByZXR1cm5fanMoJG5hbWUpewoJb2Jfc3RhcnQoKTsKCW9iX2VuZF9jbGVhbigpOwoKCgkk
anMgPSBmZXRjaCgianMiLCAidHhwX2pzIiwgJ25hbWUnLCAkbmFtZSk7CgoJaWYgKCRqcykg
ewoJCSRqc19kZWNvZGVkID0gIGJhc2U2NF9kZWNvZGUoJGpzKTsKCX1lbHNlewoJCSRqc19k
ZWNvZGVkID0gImFsZXJ0KCdKYXZhc2NyaXB0IEZpbGUgY291bGQgbm90IGJlIGZpbmQhJyki
OwoJfQoJaGVhZGVyKCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCcp
OwoJaGVhZGVyKHNwcmludGYoJ0NvbnRlbnQtTGVuZ3RoOiAlZCcsIHN0cmxlbigkanNfZGVj
b2RlZCkpKTsKCWVjaG8gJGpzX2RlY29kZWQ7CglleGl0Owp9CgpmdW5jdGlvbiBoYW5kbGVf
YmFja2VuZF9qYXZhc2NyaXB0KCl7CgkkanNfcHJlZml4ID0gInR4cF9qcyI7CgoJc2FmZV9x
dWVyeShzcHJpbnRmKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyAlcyAoCgkJCQkJCSAg
bmFtZSB2YXJjaGFyKDI1NSkgTk9UIE5VTEwgZGVmYXVsdCAnJywKCQkJCQkJICBqcyBsb25n
dGV4dCBOT1QgTlVMTCwKCQkJCQkJICBQUklNQVJZIEtFWSAgKG5hbWUpKTsiLCBzYWZlX3Bm
eCgkanNfcHJlZml4KSkpOwoJaWYoc2FmZV9jb3VudCgkanNfcHJlZml4LCAibmFtZT0nZGVm
YXVsdCciKSA9PSAiMCIpewoJCXNhZmVfaW5zZXJ0KCRqc19wcmVmaXgsICJuYW1lPSdkZWZh
dWx0JywganM9J0x5OGdVR3hsWVhObElHbHVjMlZ5ZENCNWIzVnlJRXBoZG1GVFkzSnBjSFFn
YUdWeVpUbz0nIik7Cgl9CgoKCglpZiAoIWRlZmluZWQoJ3R4cGludGVyZmFjZScpKSBkaWUo
J3R4cGludGVyZmFjZSBpcyB1bmRlZmluZWQuJyk7CgkJaWYgKGdwcygnZXZlbnQnKSA9PSAn
anMnKSB7CgkJCSRzdGVwID0gZ3BzKCdzdGVwJyk7CgkJCXJlcXVpcmVfcHJpdnMoJ2pzJyk7
CgkJCXN3aXRjaCAoJHN0ZXApIHsKCQkJCWNhc2UgJyc6IGpzX2VkaXQoKTsgCQkJCQkJCQkJ
CQlicmVhazsKCQkJCWNhc2UgJ2pzX2VkaXRfcmF3JzoganNfZWRpdCgpOyAgICAgICAgICAg
CWJyZWFrOwoJCQkJY2FzZSAnanNfZWRpdF9mb3JtJzoganNfZWRpdCgpOyAgICAgICAgICAJ
YnJlYWs7CgkJCQljYXNlICdwb3VyJzoganNfZWRpdCgpOwkgICAgICAgICAgICAgICAJCWJy
ZWFrOwoJCQkJY2FzZSAnanNfc2F2ZSc6IGpzX3NhdmUoKTsgICAgICAgICAgICAgIAlicmVh
azsKCQkJCWNhc2UgJ2pzX3NhdmVfYXMnOiBqc19zYXZlX2FzKCk7ICAgICAgICAgCWJyZWFr
OwoJCQkJY2FzZSAnanNfc2F2ZV9wb3N0ZWQnOiBqc19zYXZlX3Bvc3RlZCgpOyAJYnJlYWs7
CgkJCQljYXNlICdqc19kZWxldGUnOiBqc19kZWxldGUoKTsgICAgICAgICAgIAlicmVhazsK
CQkJCWNhc2UgJ2pzX2VkaXQnOiBqc19lZGl0KCk7ICAgICAgICAgICAgICAgCWJyZWFrOwoJ
CQkJY2FzZSAnZGVsX2RlYyc6IGpzX2VkaXQoKTsgICAgICAgICAgICAgICAJYnJlYWs7CgkJ
CQljYXNlICdhZGRfZGVjJzoganNfZWRpdCgpOyAgICAgICAgICAgICAgICBicmVhazsKCQkJ
CWNhc2UgJ2FkZF9zZWwnOiBqc19lZGl0KCk7CgkJCX0KCX0KfQoKLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCWZ1bmN0aW9uIGpzX2xpc3QoJG5hbWUp
ewoJCSRvdXRbXSA9IHN0YXJ0VGFibGUoJ2xpc3QnLCdsZWZ0Jyk7CgkJJHJzID0gc2FmZV9y
b3dzX3N0YXJ0KCJuYW1lIGFzIGpzbmFtZSIsICgidHhwX2pzIiksIjE9MSIpOwoJCWlmICgk
cnMpIHsKCQkJd2hpbGUgKCRhID0gbmV4dFJvdygkcnMpKSB7CgkJCQlleHRyYWN0KCRhKTsK
CQkJCSRuYW1lbGluayA9ICgkbmFtZSE9JGpzbmFtZSkKCQkJCT8JZUxpbmsoJ2pzJywnJywn
bmFtZScsJGpzbmFtZSwkanNuYW1lKQoJCQkJOgkkanNuYW1lOwoJCQkJJGRlbGV0ZWxpbmsg
PSAoJGpzbmFtZSE9J2RlZmF1bHQnKSA/CgkJCQkJZExpbmsoJ2pzJywnanNfZGVsZXRlJywn
bmFtZScsJGpzbmFtZSkgOiAnJzsKCQkJCSRvdXRbXSA9IHRyKHRkKCRuYW1lbGluaykudGQo
JGRlbGV0ZWxpbmspKTsKCQkJfQoJCQkkb3V0W10gPSAgZW5kVGFibGUoKTsKCQkJcmV0dXJu
IGpvaW4oJycsJG91dCk7CgkJfQoJfQoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCglmdW5jdGlvbiBqc19lZGl0KCRt
ZXNzYWdlPScnKXsKCQlwYWdldG9wKGdUeHQoImVkaXRfanMiKSwkbWVzc2FnZSk7CgkJZ2xv
YmFsICRzdGVwLCRwcmVmczsKCQlpZiAoISRzdGVwIG9yICRzdGVwID09ICdqc19zYXZlJyl7
CgkJCWpzX2VkaXRfcmF3KCk7CgkJfSBlbHNlIHsKCQkJaWYgKCRzdGVwPT0nanNfZWRpdF9y
YXcnIG9yICRzdGVwPT0ncG91cicgb3IgJHN0ZXA9PSdqc19kZWxldGUnKSB7CgkJCQlqc19l
ZGl0X3JhdygpOwoJCQl9CgkJfQoJfQoKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJZnVuY3Rpb24ganNfZWRpdF9y
YXcoKXsKCQlnbG9iYWwgJHN0ZXA7CgkJJG5hbWUgPSAoIWdwcygnbmFtZScpIG9yICRzdGVw
PT0nanNfZGVsZXRlJykgPyAnZGVmYXVsdCcgOiBncHMoJ25hbWUnKTsKCQlpZiAoZ3BzKCdj
b3B5JykgJiYgdHJpbShwcmVnX3JlcGxhY2UoJy9bPD4mIlwnXS8nLCAnJywgZ3BzKCduZXdu
YW1lJykpKSApCgkJCSRuYW1lID0gZ3BzKCduZXduYW1lJyk7CgoJCWlmICgkc3RlcD09J3Bv
dXInKXsKCQkJJGJ1dHRvbnMgPQoJCQlnVHh0KCdOYW1lIG9mIEphdmFTY3JpcHQgZmlsZScp
Lic6ICcKCQkJLmZJbnB1dCgndGV4dCcsJ25ld25hbWUnLCcnLCdlZGl0JywnJywnJywyMCku
CgkJCWhJbnB1dCgnc2F2ZW5ldycsJ3NhdmVuZXcnKTsKCQkJJHRoZWpzID0gJyc7CgkJfSBl
bHNlIHsKCQkJJGJ1dHRvbnMgPSAnJzsKCQkJJHRoZWpzID0gYmFzZTY0X2RlY29kZShmZXRj
aCgianMiLCAidHhwX2pzIiwnbmFtZScsJG5hbWUpKTsKCQl9CgoJCWlmICgkc3RlcCE9J3Bv
dXInKSB7CgkJCSRsZWZ0ID0gZ3JhZihnVHh0KCdZb3UgYXJlIGVkaXRpbmc6JykuYnIuc3Ry
b25nKCRuYW1lKSkuCgkJCQlncmFmKHNMaW5rKCdqcycsICdwb3VyJywgZ1R4dCgnQ3JlYXRl
IG5ldyBKYXZhU2NyaXB0IGZpbGUnKSkpOwoJCX0gZWxzZSB7CgkJCSRsZWZ0ID0gJyZuYnNw
Oyc7CgkJfQoKCQkkcmlnaHQgPQoJCWhlZChnVHh0KCdBbGwgSmF2YVNjcmlwdCBmaWxlcycp
LDIpLgoJCWpzX2xpc3QoJG5hbWUpOwoKCQllY2hvCgkJc3RhcnRUYWJsZSgnZWRpdCcpLgoJ
CXRyKAoJCQl0ZHRsKAoJCQkJJGxlZnQKCQkJKS4KCQkJdGQoCgkJCQlmb3JtKAoJCQkJCWdy
YWYoJGJ1dHRvbnMpLgoJCQkJCSc8dGV4dGFyZWEgaWQ9ImpzIiBjbGFzcz0iY29kZSIgbmFt
ZT0ianMiIGNvbHM9Ijc4IiByb3dzPSIzMiI+Jy4kdGhlanMuJzwvdGV4dGFyZWE+Jy5ici4K
CQkJCQlmSW5wdXQoJ3N1Ym1pdCcsJycsZ1R4dCgnc2F2ZScpLCdwdWJsaXNoJykuCgkJCQkJ
ZUlucHV0KCdqcycpLnNJbnB1dCgnanNfc2F2ZScpLgoJCQkJCWhJbnB1dCgnbmFtZScsJG5h
bWUpCgkJCQkpCgkJCSkuCgkJCXRkdGwoCgkJCQkkcmlnaHQKCQkJKQoJCSkuCgkJZW5kVGFi
bGUoKTsKCgl9CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoJZnVuY3Rpb24ganNfc2F2ZV9wb3N0ZWQoKXsKCQkk
bmFtZSA9IGdwcygnbmFtZScpOwoJCSMkanMgID0gcGFyc2VQb3N0ZWRqcygpOwoJCSRqcyAg
PSBkb1NsYXNoKGJhc2U2NF9lbmNvZGUoanNfZm9ybWF0KCRqcykpKTsKCgkJc2FmZV91cGRh
dGUoInR4cF9qcyIsICJqcyA9ICckanMnIiwgIm5hbWUgPSAnIi5kb1NsYXNoKCRuYW1lKS4i
JyIpOwoKCQkkbWVzc2FnZSA9IGdUeHQoJ2pzX3VwZGF0ZWQnLCBhcnJheSgne25hbWV9JyA9
PiAkbmFtZSkpOwoKCQlqc19lZGl0KCRtZXNzYWdlKTsKCX0KCi8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCWZ1bmN0
aW9uIGpzX3NhdmUoKXsKCQlleHRyYWN0KGdwc2EoYXJyYXkoJ25hbWUnLCdqcycsJ3NhdmVu
ZXcnLCduZXduYW1lJywnY29weScpKSk7CgkJJGpzID0gZG9TbGFzaChiYXNlNjRfZW5jb2Rl
KCRqcykpOwoKCQlpZiAoJHNhdmVuZXcgb3IgJGNvcHkpCgkJewoJCQkkbmV3bmFtZSA9IGRv
U2xhc2godHJpbShwcmVnX3JlcGxhY2UoJy9bPD4mIlwnXS8nLCAnJywgZ3BzKCduZXduYW1l
JykpKSk7CgoJCQlpZiAoJG5ld25hbWUgYW5kIHNhZmVfZmllbGQoJ25hbWUnLCAidHhwX2pz
IiwgIm5hbWUgPSAnJG5ld25hbWUnIikpCgkJCXsKCQkJCSRtZXNzYWdlID0gZ1R4dCgnanNf
YWxyZWFkeV9leGlzdHMnLCBhcnJheSgne25hbWV9JyA9PiAkbmV3bmFtZSkpOwoJCQl9CgkJ
CWVsc2VpZiAoJG5ld25hbWUpCgkJCXsKCQkJCXNhZmVfaW5zZXJ0KCJ0eHBfanMiLCAibmFt
ZSA9ICciLiRuZXduYW1lLiInLCBqcyA9ICckanMnIik7CgoJCQkJJG1lc3NhZ2UgPSBnVHh0
KCdqc19jcmVhdGVkJywgYXJyYXkoJ3tuYW1lfScgPT4gJG5ld25hbWUpKTsKCQkJfQoJCQll
bHNlCgkJCXsKCQkJCSRtZXNzYWdlID0gZ1R4dCgnanNfbmFtZV9yZXF1aXJlZCcpOwoJCQl9
CgoJCQlqc19lZGl0KCRtZXNzYWdlKTsKCQl9CgoJCWVsc2UKCQl7CgkJCXNhZmVfdXBkYXRl
KCJ0eHBfanMiLCAianMgPSAnJGpzJyIsICJuYW1lID0gJyIuZG9TbGFzaCgkbmFtZSkuIici
KTsKCgkJCSRtZXNzYWdlID0gZ1R4dCgnanNfdXBkYXRlZCcsIGFycmF5KCd7bmFtZX0nID0+
ICRuYW1lKSk7CgoJCQlqc19lZGl0KCRtZXNzYWdlKTsKCQl9Cgl9CgovLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgov
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCWZ1bmN0aW9uIGpzX2RlbGV0ZSgpewoJCSRuYW1lID0gcHMoJ25hbWUnKTsK
CgkJaWYgKCRuYW1lICE9ICdkZWZhdWx0JykKCQl7CgkJCXNhZmVfZGVsZXRlKCJ0eHBfanMi
LCAibmFtZSA9ICciLmRvU2xhc2goJG5hbWUpLiInIik7CgoJCQlqc19lZGl0KAoJCQkJZ1R4
dCgnanNfZGVsZXRlZCcsIGFycmF5KCd7bmFtZX0nID0+ICRuYW1lKSkKCQkJKTsKCQl9CgoJ
CWVsc2UKCQl7CgkJCWVjaG8gZ1R4dCgnY2Fubm90X2RlbGV0ZV9kZWZhdWx0X2pzJykuJy4n
OwoJCX0KCX0KCiI7czozOiJtZDUiO3M6MzI6IjM3YzBhM2Y4YmZkYjYxMWYyZGFmYzk1YjE0
MmMyYTY5Ijt9