Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Kellershoff
pwny.gorilla.moe
Commits
218355cf
Commit
218355cf
authored
Feb 02, 2017
by
Ysragh Heiden
Browse files
initial import
parents
Changes
354
Expand all
Hide whitespace changes
Inline
Side-by-side
README.md
0 → 100644
View file @
218355cf
# pwny.ysragh.com
assets/SourceCodePro-Regular.woff
0 → 100644
View file @
218355cf
File added
assets/ace/src-noconflict/ace.js
0 → 100644
View file @
218355cf
This diff is collapsed.
Click to expand it.
assets/ace/src-noconflict/ext-beautify.js
0 → 100644
View file @
218355cf
ace
.
define
(
"
ace/ext/beautify/php_rules
"
,[
"
require
"
,
"
exports
"
,
"
module
"
,
"
ace/token_iterator
"
],
function
(
require
,
exports
,
module
)
{
"
use strict
"
;
var
TokenIterator
=
require
(
"
ace/token_iterator
"
).
TokenIterator
;
exports
.
newLines
=
[{
type
:
'
support.php_tag
'
,
value
:
'
<?php
'
},
{
type
:
'
support.php_tag
'
,
value
:
'
<?
'
},
{
type
:
'
support.php_tag
'
,
value
:
'
?>
'
},
{
type
:
'
paren.lparen
'
,
value
:
'
{
'
,
indent
:
true
},
{
type
:
'
paren.rparen
'
,
breakBefore
:
true
,
value
:
'
}
'
,
indent
:
false
},
{
type
:
'
paren.rparen
'
,
breakBefore
:
true
,
value
:
'
})
'
,
indent
:
false
,
dontBreak
:
true
},
{
type
:
'
comment
'
},
{
type
:
'
text
'
,
value
:
'
;
'
},
{
type
:
'
text
'
,
value
:
'
:
'
,
context
:
'
php
'
},
{
type
:
'
keyword
'
,
value
:
'
case
'
,
indent
:
true
,
dontBreak
:
true
},
{
type
:
'
keyword
'
,
value
:
'
default
'
,
indent
:
true
,
dontBreak
:
true
},
{
type
:
'
keyword
'
,
value
:
'
break
'
,
indent
:
false
,
dontBreak
:
true
},
{
type
:
'
punctuation.doctype.end
'
,
value
:
'
>
'
},
{
type
:
'
meta.tag.punctuation.end
'
,
value
:
'
>
'
},
{
type
:
'
meta.tag.punctuation.begin
'
,
value
:
'
<
'
,
blockTag
:
true
,
indent
:
true
,
dontBreak
:
true
},
{
type
:
'
meta.tag.punctuation.begin
'
,
value
:
'
</
'
,
indent
:
false
,
breakBefore
:
true
,
dontBreak
:
true
},
{
type
:
'
punctuation.operator
'
,
value
:
'
;
'
}];
exports
.
spaces
=
[{
type
:
'
xml-pe
'
,
prepend
:
true
},{
type
:
'
entity.other.attribute-name
'
,
prepend
:
true
},
{
type
:
'
storage.type
'
,
value
:
'
var
'
,
append
:
true
},
{
type
:
'
storage.type
'
,
value
:
'
function
'
,
append
:
true
},
{
type
:
'
keyword.operator
'
,
value
:
'
=
'
},
{
type
:
'
keyword
'
,
value
:
'
as
'
,
prepend
:
true
,
append
:
true
},
{
type
:
'
keyword
'
,
value
:
'
function
'
,
append
:
true
},
{
type
:
'
support.function
'
,
next
:
/
[^\(]
/
,
append
:
true
},
{
type
:
'
keyword
'
,
value
:
'
or
'
,
append
:
true
,
prepend
:
true
},
{
type
:
'
keyword
'
,
value
:
'
and
'
,
append
:
true
,
prepend
:
true
},
{
type
:
'
keyword
'
,
value
:
'
case
'
,
append
:
true
},
{
type
:
'
keyword.operator
'
,
value
:
'
||
'
,
append
:
true
,
prepend
:
true
},
{
type
:
'
keyword.operator
'
,
value
:
'
&&
'
,
append
:
true
,
prepend
:
true
}];
exports
.
singleTags
=
[
'
!doctype
'
,
'
area
'
,
'
base
'
,
'
br
'
,
'
hr
'
,
'
input
'
,
'
img
'
,
'
link
'
,
'
meta
'
];
exports
.
transform
=
function
(
iterator
,
maxPos
,
context
)
{
var
token
=
iterator
.
getCurrentToken
();
var
newLines
=
exports
.
newLines
;
var
spaces
=
exports
.
spaces
;
var
singleTags
=
exports
.
singleTags
;
var
code
=
''
;
var
indentation
=
0
;
var
dontBreak
=
false
;
var
tag
;
var
lastTag
;
var
lastToken
=
{};
var
nextTag
;
var
nextToken
=
{};
var
breakAdded
=
false
;
var
value
=
''
;
while
(
token
!==
null
)
{
console
.
log
(
token
);
if
(
!
token
){
token
=
iterator
.
stepForward
();
continue
;
}
if
(
token
.
type
==
'
support.php_tag
'
&&
token
.
value
!=
'
?>
'
){
context
=
'
php
'
;
}
else
if
(
token
.
type
==
'
support.php_tag
'
&&
token
.
value
==
'
?>
'
){
context
=
'
html
'
;
}
else
if
(
token
.
type
==
'
meta.tag.name.style
'
&&
context
!=
'
css
'
){
context
=
'
css
'
;
}
else
if
(
token
.
type
==
'
meta.tag.name.style
'
&&
context
==
'
css
'
){
context
=
'
html
'
;
}
else
if
(
token
.
type
==
'
meta.tag.name.script
'
&&
context
!=
'
js
'
){
context
=
'
js
'
;
}
else
if
(
token
.
type
==
'
meta.tag.name.script
'
&&
context
==
'
js
'
){
context
=
'
html
'
;
}
nextToken
=
iterator
.
stepForward
();
if
(
nextToken
&&
nextToken
.
type
.
indexOf
(
'
meta.tag.name
'
)
==
0
)
{
nextTag
=
nextToken
.
value
;
}
if
(
lastToken
.
type
==
'
support.php_tag
'
&&
lastToken
.
value
==
'
<?=
'
)
{
dontBreak
=
true
;
}
if
(
token
.
type
==
'
meta.tag.name
'
)
{
token
.
value
=
token
.
value
.
toLowerCase
();
}
if
(
token
.
type
==
'
text
'
)
{
token
.
value
=
token
.
value
.
trim
();
}
if
(
!
token
.
value
)
{
token
=
nextToken
;
continue
;
}
value
=
token
.
value
;
for
(
var
i
in
spaces
)
{
if
(
token
.
type
==
spaces
[
i
].
type
&&
(
!
spaces
[
i
].
value
||
token
.
value
==
spaces
[
i
].
value
)
&&
(
nextToken
&&
(
!
spaces
[
i
].
next
||
spaces
[
i
].
next
.
test
(
nextToken
.
value
))
)
)
{
if
(
spaces
[
i
].
prepend
)
{
value
=
'
'
+
token
.
value
;
}
if
(
spaces
[
i
].
append
)
{
value
+=
'
'
;
}
}
}
if
(
token
.
type
.
indexOf
(
'
meta.tag.name
'
)
==
0
)
{
tag
=
token
.
value
;
}
breakAdded
=
false
;
for
(
i
in
newLines
)
{
if
(
token
.
type
==
newLines
[
i
].
type
&&
(
!
newLines
[
i
].
value
||
token
.
value
==
newLines
[
i
].
value
)
&&
(
!
newLines
[
i
].
blockTag
||
singleTags
.
indexOf
(
nextTag
)
===
-
1
)
&&
(
!
newLines
[
i
].
context
||
newLines
[
i
].
context
===
context
)
)
{
if
(
newLines
[
i
].
indent
===
false
)
{
indentation
--
;
}
if
(
newLines
[
i
].
breakBefore
&&
(
!
newLines
[
i
].
prev
||
newLines
[
i
].
prev
.
test
(
lastToken
.
value
)
)
)
{
code
+=
"
\n
"
;
breakAdded
=
true
;
for
(
i
=
0
;
i
<
indentation
;
i
++
)
{
code
+=
"
\t
"
;
}
}
break
;
}
}
if
(
dontBreak
===
false
)
{
for
(
i
in
newLines
)
{
if
(
lastToken
.
type
==
newLines
[
i
].
type
&&
(
!
newLines
[
i
].
value
||
lastToken
.
value
==
newLines
[
i
].
value
)
&&
(
!
newLines
[
i
].
blockTag
||
singleTags
.
indexOf
(
tag
)
===
-
1
)
&&
(
!
newLines
[
i
].
context
||
newLines
[
i
].
context
===
context
)
)
{
if
(
newLines
[
i
].
indent
===
true
)
{
indentation
++
;
}
if
(
!
newLines
[
i
].
dontBreak
&&
!
breakAdded
)
{
code
+=
"
\n
"
;
for
(
i
=
0
;
i
<
indentation
;
i
++
)
{
code
+=
"
\t
"
;
}
}
break
;
}
}
}
code
+=
value
;
if
(
lastToken
.
type
==
'
support.php_tag
'
&&
lastToken
.
value
==
'
?>
'
)
{
dontBreak
=
false
;
}
lastTag
=
tag
;
lastToken
=
token
;
token
=
nextToken
;
if
(
token
===
null
)
{
break
;
}
}
return
code
;
};
});
ace
.
define
(
"
ace/ext/beautify
"
,[
"
require
"
,
"
exports
"
,
"
module
"
,
"
ace/token_iterator
"
,
"
ace/ext/beautify/php_rules
"
],
function
(
require
,
exports
,
module
)
{
"
use strict
"
;
var
TokenIterator
=
require
(
"
ace/token_iterator
"
).
TokenIterator
;
var
phpTransform
=
require
(
"
./beautify/php_rules
"
).
transform
;
exports
.
beautify
=
function
(
session
)
{
var
iterator
=
new
TokenIterator
(
session
,
0
,
0
);
var
token
=
iterator
.
getCurrentToken
();
var
context
=
session
.
$modeId
.
split
(
"
/
"
).
pop
();
var
code
=
phpTransform
(
iterator
,
context
);
session
.
doc
.
setValue
(
code
);
};
exports
.
commands
=
[{
name
:
"
beautify
"
,
exec
:
function
(
editor
)
{
exports
.
beautify
(
editor
.
session
);
},
bindKey
:
"
Ctrl-Shift-B
"
}]
});
(
function
()
{
ace
.
require
([
"
ace/ext/beautify
"
],
function
()
{});
})();
\ No newline at end of file
assets/ace/src-noconflict/ext-chromevox.js
0 → 100644
View file @
218355cf
ace
.
define
(
"
ace/ext/chromevox
"
,[
"
require
"
,
"
exports
"
,
"
module
"
,
"
ace/editor
"
,
"
ace/config
"
],
function
(
require
,
exports
,
module
)
{
var
cvoxAce
=
{};
cvoxAce
.
SpeechProperty
;
cvoxAce
.
Cursor
;
cvoxAce
.
Token
;
cvoxAce
.
Annotation
;
var
CONSTANT_PROP
=
{
'
rate
'
:
0.8
,
'
pitch
'
:
0.4
,
'
volume
'
:
0.9
};
var
DEFAULT_PROP
=
{
'
rate
'
:
1
,
'
pitch
'
:
0.5
,
'
volume
'
:
0.9
};
var
ENTITY_PROP
=
{
'
rate
'
:
0.8
,
'
pitch
'
:
0.8
,
'
volume
'
:
0.9
};
var
KEYWORD_PROP
=
{
'
rate
'
:
0.8
,
'
pitch
'
:
0.3
,
'
volume
'
:
0.9
};
var
STORAGE_PROP
=
{
'
rate
'
:
0.8
,
'
pitch
'
:
0.7
,
'
volume
'
:
0.9
};
var
VARIABLE_PROP
=
{
'
rate
'
:
0.8
,
'
pitch
'
:
0.8
,
'
volume
'
:
0.9
};
var
DELETED_PROP
=
{
'
punctuationEcho
'
:
'
none
'
,
'
relativePitch
'
:
-
0.6
};
var
ERROR_EARCON
=
'
ALERT_NONMODAL
'
;
var
MODE_SWITCH_EARCON
=
'
ALERT_MODAL
'
;
var
NO_MATCH_EARCON
=
'
INVALID_KEYPRESS
'
;
var
INSERT_MODE_STATE
=
'
insertMode
'
;
var
COMMAND_MODE_STATE
=
'
start
'
;
var
REPLACE_LIST
=
[
{
substr
:
'
;
'
,
newSubstr
:
'
semicolon
'
},
{
substr
:
'
:
'
,
newSubstr
:
'
colon
'
}
];
var
Command
=
{
SPEAK_ANNOT
:
'
annots
'
,
SPEAK_ALL_ANNOTS
:
'
all_annots
'
,
TOGGLE_LOCATION
:
'
toggle_location
'
,
SPEAK_MODE
:
'
mode
'
,
SPEAK_ROW_COL
:
'
row_col
'
,
TOGGLE_DISPLACEMENT
:
'
toggle_displacement
'
,
FOCUS_TEXT
:
'
focus_text
'
};
var
KEY_PREFIX
=
'
CONTROL + SHIFT
'
;
cvoxAce
.
editor
=
null
;
var
lastCursor
=
null
;
var
annotTable
=
{};
var
shouldSpeakRowLocation
=
false
;
var
shouldSpeakDisplacement
=
false
;
var
changed
=
false
;
var
vimState
=
null
;
var
keyCodeToShortcutMap
=
{};
var
cmdToShortcutMap
=
{};
var
getKeyShortcutString
=
function
(
keyCode
)
{
return
KEY_PREFIX
+
String
.
fromCharCode
(
keyCode
);
};
var
isVimMode
=
function
()
{
var
keyboardHandler
=
cvoxAce
.
editor
.
keyBinding
.
getKeyboardHandler
();
return
keyboardHandler
.
$id
===
'
ace/keyboard/vim
'
;
};
var
getCurrentToken
=
function
(
cursor
)
{
return
cvoxAce
.
editor
.
getSession
().
getTokenAt
(
cursor
.
row
,
cursor
.
column
+
1
);
};
var
getCurrentLine
=
function
(
cursor
)
{
return
cvoxAce
.
editor
.
getSession
().
getLine
(
cursor
.
row
);
};
var
onRowChange
=
function
(
currCursor
)
{
if
(
annotTable
[
currCursor
.
row
])
{
cvox
.
Api
.
playEarcon
(
ERROR_EARCON
);
}
if
(
shouldSpeakRowLocation
)
{
cvox
.
Api
.
stop
();
speakChar
(
currCursor
);
speakTokenQueue
(
getCurrentToken
(
currCursor
));
speakLine
(
currCursor
.
row
,
1
);
}
else
{
speakLine
(
currCursor
.
row
,
0
);
}
};
var
isWord
=
function
(
cursor
)
{
var
line
=
getCurrentLine
(
cursor
);
var
lineSuffix
=
line
.
substr
(
cursor
.
column
-
1
);
if
(
cursor
.
column
===
0
)
{
lineSuffix
=
'
'
+
line
;
}
var
firstWordRegExp
=
/^
\W(\w
+
)
/
;
var
words
=
firstWordRegExp
.
exec
(
lineSuffix
);
return
words
!==
null
;
};
var
rules
=
{
'
constant
'
:
{
prop
:
CONSTANT_PROP
},
'
entity
'
:
{
prop
:
ENTITY_PROP
},
'
keyword
'
:
{
prop
:
KEYWORD_PROP
},
'
storage
'
:
{
prop
:
STORAGE_PROP
},
'
variable
'
:
{
prop
:
VARIABLE_PROP
},
'
meta
'
:
{
prop
:
DEFAULT_PROP
,
replace
:
[
{
substr
:
'
</
'
,
newSubstr
:
'
closing tag
'
},
{
substr
:
'
/>
'
,
newSubstr
:
'
close tag
'
},
{
substr
:
'
<
'
,
newSubstr
:
'
tag start
'
},
{
substr
:
'
>
'
,
newSubstr
:
'
tag end
'
}
]
}
};
var
DEFAULT_RULE
=
{
prop
:
DEFAULT_RULE
};
var
expand
=
function
(
value
,
replaceRules
)
{
var
newValue
=
value
;
for
(
var
i
=
0
;
i
<
replaceRules
.
length
;
i
++
)
{
var
replaceRule
=
replaceRules
[
i
];
var
regexp
=
new
RegExp
(
replaceRule
.
substr
,
'
g
'
);
newValue
=
newValue
.
replace
(
regexp
,
replaceRule
.
newSubstr
);
}
return
newValue
;
};
var
mergeTokens
=
function
(
tokens
,
start
,
end
)
{
var
newToken
=
{};
newToken
.
value
=
''
;
newToken
.
type
=
tokens
[
start
].
type
;
for
(
var
j
=
start
;
j
<
end
;
j
++
)
{
newToken
.
value
+=
tokens
[
j
].
value
;
}
return
newToken
;
};
var
mergeLikeTokens
=
function
(
tokens
)
{
if
(
tokens
.
length
<=
1
)
{
return
tokens
;
}
var
newTokens
=
[];
var
lastLikeIndex
=
0
;
for
(
var
i
=
1
;
i
<
tokens
.
length
;
i
++
)
{
var
lastLikeToken
=
tokens
[
lastLikeIndex
];
var
currToken
=
tokens
[
i
];
if
(
getTokenRule
(
lastLikeToken
)
!==
getTokenRule
(
currToken
))
{
newTokens
.
push
(
mergeTokens
(
tokens
,
lastLikeIndex
,
i
));
lastLikeIndex
=
i
;
}
}
newTokens
.
push
(
mergeTokens
(
tokens
,
lastLikeIndex
,
tokens
.
length
));
return
newTokens
;
};
var
isRowWhiteSpace
=
function
(
row
)
{
var
line
=
cvoxAce
.
editor
.
getSession
().
getLine
(
row
);
var
whiteSpaceRegexp
=
/^
\s
*$/
;
return
whiteSpaceRegexp
.
exec
(
line
)
!==
null
;
};
var
speakLine
=
function
(
row
,
queue
)
{
var
tokens
=
cvoxAce
.
editor
.
getSession
().
getTokens
(
row
);
if
(
tokens
.
length
===
0
||
isRowWhiteSpace
(
row
))
{
cvox
.
Api
.
playEarcon
(
'
EDITABLE_TEXT
'
);
return
;
}
tokens
=
mergeLikeTokens
(
tokens
);
var
firstToken
=
tokens
[
0
];
tokens
=
tokens
.
filter
(
function
(
token
)
{
return
token
!==
firstToken
;
});
speakToken_
(
firstToken
,
queue
);
tokens
.
forEach
(
speakTokenQueue
);
};
var
speakTokenFlush
=
function
(
token
)
{
speakToken_
(
token
,
0
);
};
var
speakTokenQueue
=
function
(
token
)
{
speakToken_
(
token
,
1
);
};
var
getTokenRule
=
function
(
token
)
{
if
(
!
token
||
!
token
.
type
)
{
return
;
}
var
split
=
token
.
type
.
split
(
'
.
'
);
if
(
split
.
length
===
0
)
{
return
;
}
var
type
=
split
[
0
];
var
rule
=
rules
[
type
];
if
(
!
rule
)
{
return
DEFAULT_RULE
;
}
return
rule
;
};
var
speakToken_
=
function
(
token
,
queue
)
{
var
rule
=
getTokenRule
(
token
);
var
value
=
expand
(
token
.
value
,
REPLACE_LIST
);
if
(
rule
.
replace
)
{
value
=
expand
(
value
,
rule
.
replace
);
}
cvox
.
Api
.
speak
(
value
,
queue
,
rule
.
prop
);
};
var
speakChar
=
function
(
cursor
)
{
var
line
=
getCurrentLine
(
cursor
);
cvox
.
Api
.
speak
(
line
[
cursor
.
column
],
1
);
};
var
speakDisplacement
=
function
(
lastCursor
,
currCursor
)
{
var
line
=
getCurrentLine
(
currCursor
);
var
displace
=
line
.
substring
(
lastCursor
.
column
,
currCursor
.
column
);
displace
=
displace
.
replace
(
/ /g
,
'
space
'
);
cvox
.
Api
.
speak
(
displace
);
};
var
speakCharOrWordOrLine
=
function
(
lastCursor
,
currCursor
)
{
if
(
Math
.
abs
(
lastCursor
.
column
-
currCursor
.
column
)
!==
1
)
{
var
currLineLength
=
getCurrentLine
(
currCursor
).
length
;
if
(
currCursor
.
column
===
0
||
currCursor
.
column
===
currLineLength
)
{
speakLine
(
currCursor
.
row
,
0
);
return
;