initial commit, GULP
@ -0,0 +1,2 @@
|
|||||||
|
*.pyc
|
||||||
|
*~
|
@ -0,0 +1,138 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import cgitb; cgitb.enable()
|
||||||
|
import cgi, os, sys, subprocess
|
||||||
|
from tempfile import NamedTemporaryFile as NTF
|
||||||
|
from settings import PANDOC
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
Simple Upload form that saves files to a temp named file,
|
||||||
|
calls pandoc for conversion to a given format,
|
||||||
|
& displays results in browser.
|
||||||
|
|
||||||
|
Uses a temp file because formats like docx are considered "archives"
|
||||||
|
and need to be accessed by pandoc as filenames to actual filenames
|
||||||
|
(not piped directly in)
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
method = os.environ.get("REQUEST_METHOD")
|
||||||
|
_types = {
|
||||||
|
'markdown': { 'mime': "text/plain;charset=utf-8", 'ext': 'markdown' },
|
||||||
|
# 'icml': { 'mime': "application/xml;charset=utf-8", 'ext': 'icml' },
|
||||||
|
'icml': { 'mime': "text/plain;charset=utf-8", 'ext': 'icml' },
|
||||||
|
'docx': { 'mime': "application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8", 'ext': 'docx' },
|
||||||
|
'html': { 'mime': "text/html;charset=utf-8", 'ext': 'html' }
|
||||||
|
}
|
||||||
|
DEFAULT_TYPE = { 'mime': "text/plain;charset=utf-8", 'ext': 'txt' }
|
||||||
|
|
||||||
|
def guess_format_from_filename (fn):
|
||||||
|
if fn.endswith(".docx"):
|
||||||
|
return "docx"
|
||||||
|
return "txt"
|
||||||
|
|
||||||
|
if method == "POST":
|
||||||
|
fs = cgi.FieldStorage()
|
||||||
|
from_format = fs.getvalue("from")
|
||||||
|
to_format = fs.getvalue("to", "markdown")
|
||||||
|
to_type = _types.get(to_format, DEFAULT_TYPE)
|
||||||
|
submit = fs.getvalue("_submit", "submit")
|
||||||
|
download = submit == "download"
|
||||||
|
download_filename = None
|
||||||
|
if download:
|
||||||
|
download_filename = "pandoc" + to_type['ext']
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
f = fs["file"]
|
||||||
|
except KeyError:
|
||||||
|
f = None
|
||||||
|
###################################
|
||||||
|
# FILE INPUT
|
||||||
|
###################################
|
||||||
|
if f != None and f.file:
|
||||||
|
|
||||||
|
if from_format == None:
|
||||||
|
from_format = guess_format_from_filename(f.filename)
|
||||||
|
|
||||||
|
tmp = NTF(delete=False)
|
||||||
|
bytes = 0
|
||||||
|
while True:
|
||||||
|
data = f.file.read()
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
bytes += len(data)
|
||||||
|
tmp.write(data)
|
||||||
|
# print "saved to '{0}'<br>".format(tmp.name)
|
||||||
|
# print "read {0} bytes<br>".format(bytes)
|
||||||
|
tmp.close()
|
||||||
|
try:
|
||||||
|
|
||||||
|
print "Content-type: {0}".format(to_type['mime'])
|
||||||
|
if download:
|
||||||
|
print "Content-Disposition: attachment;filename=\"pandoc.{0}\"".format(to_type['ext'])
|
||||||
|
print
|
||||||
|
# p = subprocess.check_output('pandoc --from {0} --to {1} "{2}"'.format(ffrom, to, tmp.name), shell=True, stderr=subprocess.STDOUT)
|
||||||
|
# print p
|
||||||
|
p = subprocess.Popen([PANDOC, '--from', from_format, '--to', to_format, tmp.name], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
|
||||||
|
out, err = p.communicate()
|
||||||
|
print out
|
||||||
|
|
||||||
|
except subprocess.CalledProcessError, e:
|
||||||
|
print "Content-type: text/html;charset=utf-8"
|
||||||
|
print
|
||||||
|
print u"<span style='font-family:monospace'>An error occurred, pandoc said: {0}</span>".format(e.output).format("utf-8")
|
||||||
|
|
||||||
|
tmp.unlink(tmp.name)
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# FORM/TEXT INPUT
|
||||||
|
###################################
|
||||||
|
else:
|
||||||
|
text = fs.getvalue("text")
|
||||||
|
if from_format and to_format:
|
||||||
|
try:
|
||||||
|
print "Content-type: {0}".format(to_type['mime'])
|
||||||
|
if download:
|
||||||
|
print "Content-Disposition: attachment;filename=\"pandoc.{0}\"".format(to_type['ext'])
|
||||||
|
print
|
||||||
|
# p = subprocess.check_output('pandoc --from {0} --to {1} "{2}"'.format(ffrom, to, tmp.name), shell=True, stderr=subprocess.STDOUT)
|
||||||
|
# print p
|
||||||
|
p = subprocess.Popen([PANDOC, '--from', from_format, '--to', to_format], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
|
||||||
|
out, err = p.communicate(text)
|
||||||
|
print out
|
||||||
|
|
||||||
|
except subprocess.CalledProcessError, e:
|
||||||
|
print "Content-type: text/html;charset=utf-8"
|
||||||
|
print
|
||||||
|
print u"<span style='font-family:monospace'>An error occurred, pandoc said: {0}</span>".format(e.output).encode("utf-8")
|
||||||
|
|
||||||
|
else:
|
||||||
|
print "Content-type: text/html;charset=utf-8"
|
||||||
|
print
|
||||||
|
print u"<span style='font-family:monospace'>Format unspecified</span>".encode("utf-8")
|
||||||
|
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
print "Content-type: text/html;charset=utf-8"
|
||||||
|
print
|
||||||
|
print """<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form enctype="multipart/form-data" action="" method="post">
|
||||||
|
<p>Convert: <input type="file" name="file"></p>
|
||||||
|
to: <select name="to">
|
||||||
|
<option>markdown</option>
|
||||||
|
<option>html</option>
|
||||||
|
</select>
|
||||||
|
<p><input type="submit" value="OK"></p>
|
||||||
|
</form>
|
||||||
|
</body></html>
|
||||||
|
"""
|
@ -0,0 +1,2 @@
|
|||||||
|
PANDOC = "pandoc"
|
||||||
|
EPUB_PATH = None
|
@ -0,0 +1,151 @@
|
|||||||
|
body {}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
#split {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0;
|
||||||
|
top: 0; bottom: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor {
|
||||||
|
border-right: 2px dotted gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor textarea {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#preview {}
|
||||||
|
|
||||||
|
#preview .iframe {
|
||||||
|
position: absolute;
|
||||||
|
top: 32px;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#preview .iframe iframe {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#previewform {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editortext {
|
||||||
|
position: absolute;
|
||||||
|
top: 32px;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#openmenucontext {
|
||||||
|
position: relative;
|
||||||
|
display: inline;
|
||||||
|
z-index: 10000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#openmenu {
|
||||||
|
padding: 10px;
|
||||||
|
position: absolute;
|
||||||
|
left: 0; top: 32px;
|
||||||
|
background: #EEE;
|
||||||
|
width: 360px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
text-align: center;
|
||||||
|
font-size: smaller;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ********************************* */
|
||||||
|
/* aa_frames.js: Simple css "frames" */
|
||||||
|
/* ********************************* */
|
||||||
|
|
||||||
|
.frame {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0;
|
||||||
|
top: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 50%;
|
||||||
|
top: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%; right: 0;
|
||||||
|
top: 0; bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0;
|
||||||
|
top: 0; bottom: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0;
|
||||||
|
top: 50%; bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hdiv {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 0; bottom: 0;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hdiv .divcontents {
|
||||||
|
position: absolute;
|
||||||
|
left: -15px;
|
||||||
|
width: 30px;
|
||||||
|
top: 10%; bottom: 10%;
|
||||||
|
cursor: move;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vdiv {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 0; right: 0;
|
||||||
|
background: gray;
|
||||||
|
cursor: move;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vdiv .divcontents {
|
||||||
|
position: absolute;
|
||||||
|
top: -15px;
|
||||||
|
height: 30px;
|
||||||
|
left: 0; right: 0;
|
||||||
|
cursor: move;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Hybrid Publishing Editor</title>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="lib/jquery-ui/jquery-ui.min.css"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" href="hype.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="split">
|
||||||
|
<div id="editor" class="left">
|
||||||
|
<div class="header">
|
||||||
|
<span class="label">markdown</span>
|
||||||
|
<div id="openmenucontext">
|
||||||
|
<button id="openbutton">open...</button>
|
||||||
|
<div id="openmenu">
|
||||||
|
<form id="dropzone" action="/cgi-bin/pandoc.cgi" class="dropzone">
|
||||||
|
<div class="fallback">
|
||||||
|
<input name="file" type="file" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<!-- <form id="sideload" style="margin-top: 5px" action="/cgi-bin/pandoc.cgi">
|
||||||
|
<label for="importurl">Upload from URL:</label><br />
|
||||||
|
<input id="importurl" name="url" type="text" />
|
||||||
|
<input type="submit" name="_submit" value="import" />
|
||||||
|
</form> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="editortext"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hdiv"></div>
|
||||||
|
<div id="preview" class="right">
|
||||||
|
<div class="header">
|
||||||
|
<form id="previewform" method="post" action="/cgi-bin/pandoc.cgi" target="previewiframe">
|
||||||
|
<input type="hidden" name="text" id="previewformtext" />
|
||||||
|
<input type="hidden" name="from" value="markdown" />
|
||||||
|
<select id="formatselect" name="to">
|
||||||
|
<option value="html">HTML</option>
|
||||||
|
<option value="plain">Plain text</option>
|
||||||
|
<option value="icml">ICML (InDesign)</option>
|
||||||
|
<option value="markdown">Markdown</option>
|
||||||
|
</select>
|
||||||
|
<input type="submit" name="_submit" value="show"/>
|
||||||
|
<input type="submit" name="_submit" value="download"/>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="iframe"><iframe name="previewiframe"></iframe></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer"><a href="https://github.com/DigitalPublishingToolkit">Hybrid Publishing Editor</a> is <a href="http://www.gnu.org/copyleft/gpl.html">free software</a> based on <a href="http://daringfireball.net/projects/markdown/">markdown</a>, <a href="http://johnmacfarlane.net/pandoc/">pandoc</a> & <a href="http://ace.c9.io/">ace</a>.</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<script src="lib/jquery.min.js"></script>
|
||||||
|
<script src="lib/jquery-ui/jquery-ui.min.js"></script>
|
||||||
|
<script src="/lib/ace-builds/src/ace.js" type="text/javascript" charset="utf-8"></script>
|
||||||
|
<script src="lib/frames.js"></script>
|
||||||
|
<script src="lib/dropzone/dropzone.js"></script>
|
||||||
|
<script src="hype.js"></script>
|
||||||
|
</html>
|
@ -0,0 +1,54 @@
|
|||||||
|
function set_editor (text) {
|
||||||
|
// var textarea = $("#editor textarea");
|
||||||
|
// textarea.val(text);
|
||||||
|
// var session = editor.createEditSession(text, "ace/mode/markdown");
|
||||||
|
// editor.aceeditor.setSession(session);
|
||||||
|
editor.setValue(text);
|
||||||
|
editor.clearSelection();
|
||||||
|
editor.scrollToRow(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_editor_text () {
|
||||||
|
// return $("#editor textarea").val();
|
||||||
|
return editor.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#previewform").on("submit", function () {
|
||||||
|
// console.log("preview form submit")
|
||||||
|
$("#previewformtext").val(get_editor_text());
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
|
||||||
|
Dropzone.options.dropzone = {
|
||||||
|
paramName: "file", // The name that will be used to transfer the file
|
||||||
|
maxFilesize: 20, // MB
|
||||||
|
// accept: function(file, done) {
|
||||||
|
// if (file.name == "justinbieber.jpg") {
|
||||||
|
// done("Naha, you don't.");
|
||||||
|
// }
|
||||||
|
// else { done(); }
|
||||||
|
// },
|
||||||
|
success: function (file, resp) {
|
||||||
|
// console.log("success")
|
||||||
|
$("#openmenu").hide();
|
||||||
|
file.previewElement.classList.add("dz-success");
|
||||||
|
set_editor(resp);
|
||||||
|
var pf = $("#previewform");
|
||||||
|
// console.log("about to submit", pf.get(0));
|
||||||
|
pf.submit();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$("#openbutton").click(function () {
|
||||||
|
$("#openmenu").toggle();
|
||||||
|
});
|
||||||
|
|
||||||
|
aa_frames("#split");
|
||||||
|
|
||||||
|
var editor = ace.edit($("#editortext").get(0));
|
||||||
|
editor.setTheme("ace/theme/chrome");
|
||||||
|
editor.setHighlightActiveLine(false);
|
||||||
|
editor.setShowInvisibles(true);
|
||||||
|
editor.getSession().setMode("ace/mode/markdown");
|
||||||
|
editor.getSession().setUseWrapMode(true);
|
||||||
|
|
@ -0,0 +1,307 @@
|
|||||||
|
2014.08.17 Version 1.1.6
|
||||||
|
|
||||||
|
* Bugfixes
|
||||||
|
- fix regression in double tap to highlight
|
||||||
|
- Improved Latex Mode (Daniel Felder)
|
||||||
|
|
||||||
|
* API Changes
|
||||||
|
- editor.destroy destroys editor.session too (call editor.setSession(null) to prevent that)
|
||||||
|
|
||||||
|
* new language modes
|
||||||
|
- Praat (José Joaquín Atria)
|
||||||
|
- Eiffel (Victorien Elvinger)
|
||||||
|
- G-code (Adam Joseph Cook)
|
||||||
|
|
||||||
|
2014.07.09 Version 1.1.5
|
||||||
|
|
||||||
|
* Bugfixes
|
||||||
|
- fix regression in autocomplete popup
|
||||||
|
|
||||||
|
* new language modes
|
||||||
|
- gitignore (Devon Carew)
|
||||||
|
|
||||||
|
2014.07.01 Version 1.1.4
|
||||||
|
|
||||||
|
* New Features
|
||||||
|
- Highlight matching tags (Adam Jimenez)
|
||||||
|
- Improved jump to matching command (Adam Jimenez)
|
||||||
|
|
||||||
|
* new language modes
|
||||||
|
- AppleScript (Yaogang Lian)
|
||||||
|
- Vala
|
||||||
|
|
||||||
|
2014.03.08 Version 1.1.3
|
||||||
|
|
||||||
|
* New Features
|
||||||
|
- Allow syntax checkers to be loaded from CDN (Derk-Jan Hartman)
|
||||||
|
- Add ColdFusion behavior (Abram Adams)
|
||||||
|
- add showLineNumbers option
|
||||||
|
- Add html syntax checker (danyaPostfactum)
|
||||||
|
|
||||||
|
* new language modes
|
||||||
|
- Gherkin (Patrick Nevels)
|
||||||
|
- Smarty
|
||||||
|
|
||||||
|
2013.12.02 Version 1.1.2
|
||||||
|
|
||||||
|
* New Features
|
||||||
|
- Accessibility Theme for Ace (Peter Xiao)
|
||||||
|
- use snipetManager for expanding emmet snippets
|
||||||
|
- update jshint to 2.1.4
|
||||||
|
- improve php syntax checker (jdalegonzalez)
|
||||||
|
- add option for autoresizing
|
||||||
|
- add option for autohiding vertical scrollbar
|
||||||
|
- improvements to highlighting of xml like languages (danyaPostfactum)
|
||||||
|
- add support for autocompletion and snippets (gjtorikyan danyaPostfactum and others)
|
||||||
|
- add option to merge similar changes in undo history
|
||||||
|
- add scrollPastEnd option
|
||||||
|
- use html5 dragndrop for text dragging (danyaPostfactum)
|
||||||
|
|
||||||
|
* API Changes
|
||||||
|
- fixed typo in HashHandler commmandManager
|
||||||
|
|
||||||
|
* new language modes
|
||||||
|
- Nix (Zef Hemel)
|
||||||
|
- Protobuf (Zef Hemel)
|
||||||
|
- Soy
|
||||||
|
- Handlebars
|
||||||
|
|
||||||
|
2013.06.04 Version 1.1.1
|
||||||
|
|
||||||
|
- Improved emacs keybindings (Robert Krahn)
|
||||||
|
- Added markClean, isClean methods to UndoManager (Joonsoo Jeon)
|
||||||
|
- Do not allow `Toggle comments` command to remove spaces from indentation
|
||||||
|
- Softer colors for indent guides in dark themes
|
||||||
|
|
||||||
|
* new language modes
|
||||||
|
- Ada
|
||||||
|
- Assembly_x86
|
||||||
|
- Cobol
|
||||||
|
- D
|
||||||
|
- ejs
|
||||||
|
- MATLAB
|
||||||
|
- MySQL
|
||||||
|
- Twig
|
||||||
|
- Verilog
|
||||||
|
|
||||||
|
2013.05.01, Version 1.1.0
|
||||||
|
|
||||||
|
* API Changes
|
||||||
|
- Default position of the editor container is changed to relative. Add `.ace_editor {position: absolute}` css rule to restore old behavior
|
||||||
|
- Changed default line-height to `normal` to not conflict with bootstrap. Use `line-height: inherit` for old behavior.
|
||||||
|
- Changed marker types accepted by session.addMarker. It now accepts "text"|"line"|"fullLine"|"screenLine"
|
||||||
|
- Internal classnames used by editor were made more consistent
|
||||||
|
- Introduced `editor.setOption/getOption/setOptions/getOptions` methods
|
||||||
|
- Introduced positionToIndex, indexToPosition methods
|
||||||
|
|
||||||
|
* New Features
|
||||||
|
- Improved emacs mode (chetstone)
|
||||||
|
with Incremental search and Occur modes (Robert Krahn)
|
||||||
|
|
||||||
|
- Improved ime handling
|
||||||
|
- Searchbox (Vlad Zinculescu)
|
||||||
|
|
||||||
|
- Added elastic tabstops lite extension (Garen Torikian)
|
||||||
|
- Added extension for whitespace manipulation
|
||||||
|
- Added extension for enabling spellchecking from contextmenu
|
||||||
|
- Added extension for displaying available keyboard shortcuts (Matthew Christopher Kastor-Inare III)
|
||||||
|
- Added extension for displaying options panel (Matthew Christopher Kastor-Inare III)
|
||||||
|
- Added modelist extension (Matthew Christopher Kastor-Inare III)
|
||||||
|
|
||||||
|
- Improved toggleCommentLines and added ToggleCommentBlock command
|
||||||
|
- `:;` pairing in CSS mode (danyaPostfactum)
|
||||||
|
|
||||||
|
- Added suppoert for Delete and SelectAll from context menu (danyaPostfactum)
|
||||||
|
|
||||||
|
- Make wrapping behavior optional
|
||||||
|
- Selective bracket insertion/skipping
|
||||||
|
|
||||||
|
- Added commands for increase/decrease numbers, sort lines (Vlad Zinculescu)
|
||||||
|
- Folding for Markdown, Lua, LaTeX
|
||||||
|
- Selective bracket insertion/skipping for C-like languages
|
||||||
|
|
||||||
|
* Many new languages
|
||||||
|
- Scheme (Mu Lei)
|
||||||
|
- Dot (edwardsp)
|
||||||
|
- FreeMarker (nguillaumin)
|
||||||
|
- Tiny Mushcode (h3rb)
|
||||||
|
- Velocity (Ryan Griffith)
|
||||||
|
- TOML (Garen Torikian)
|
||||||
|
- LSL (Nemurimasu Neiro, Builders Brewery)
|
||||||
|
- Curly (Libo Cannici)
|
||||||
|
- vbScript (Jan Jongboom)
|
||||||
|
- R (RStudio)
|
||||||
|
- ABAP
|
||||||
|
- Lucene (Graham Scott)
|
||||||
|
- Haml (Garen Torikian)
|
||||||
|
- Objective-C (Garen Torikian)
|
||||||
|
- Makefile (Garen Torikian)
|
||||||
|
- TypeScript (Garen Torikian)
|
||||||
|
- Lisp (Garen Torikian)
|
||||||
|
- Stylus (Garen Torikian)
|
||||||
|
- Dart (Garen Torikian)
|
||||||
|
|
||||||
|
* Live syntax checks
|
||||||
|
- PHP (danyaPostfactum)
|
||||||
|
- Lua
|
||||||
|
|
||||||
|
* New Themes
|
||||||
|
- Chaos
|
||||||
|
- Terminal
|
||||||
|
|
||||||
|
2012.09.17, Version 1.0.0
|
||||||
|
|
||||||
|
* New Features
|
||||||
|
- Multiple cursors and selections (https://c9.io/site/blog/2012/08/be-an-armenian-warrior-with-block-selection-on-steroids/)
|
||||||
|
- Fold buttons displayed in the gutter
|
||||||
|
- Indent Guides
|
||||||
|
- Completely reworked vim mode (Sergi Mansilla)
|
||||||
|
- Improved emacs keybindings
|
||||||
|
- Autoclosing of html tags (danyaPostfactum)
|
||||||
|
|
||||||
|
* 20 New language modes
|
||||||
|
- Coldfusion (Russ)
|
||||||
|
- Diff
|
||||||
|
- GLSL (Ed Mackey)
|
||||||
|
- Go (Davide Saurino)
|
||||||
|
- Haxe (Jason O'Neil)
|
||||||
|
- Jade (Garen Torikian)
|
||||||
|
- jsx (Syu Kato)
|
||||||
|
- LaTeX (James Allen)
|
||||||
|
- Less (John Roepke)
|
||||||
|
- Liquid (Bernie Telles)
|
||||||
|
- Lua (Lee Gao)
|
||||||
|
- LuaPage (Choonster)
|
||||||
|
- Markdown (Chris Spencer)
|
||||||
|
- PostgreSQL (John DeSoi)
|
||||||
|
- Powershell (John Kane)
|
||||||
|
- Sh (Richo Healey)
|
||||||
|
- SQL (Jonathan Camile)
|
||||||
|
- Tcl (Cristoph Hochreiner)
|
||||||
|
- XQuery (William Candillion)
|
||||||
|
- Yaml (Meg Sharkey)
|
||||||
|
|
||||||
|
* Live syntax checks
|
||||||
|
- for XQuery and JSON
|
||||||
|
|
||||||
|
* New Themes
|
||||||
|
- Ambiance (Irakli Gozalishvili)
|
||||||
|
- Dreamweaver (Adam Jimenez)
|
||||||
|
- Github (bootstraponline)
|
||||||
|
- Tommorrow themes (https://github.com/chriskempson/tomorrow-theme)
|
||||||
|
- XCode
|
||||||
|
|
||||||
|
* Many Small Enhancements and Bugfixes
|
||||||
|
|
||||||
|
2011.08.02, Version 0.2.0
|
||||||
|
|
||||||
|
* Split view (Julian Viereck)
|
||||||
|
- split editor area horizontally or vertivally to show two files at the same
|
||||||
|
time
|
||||||
|
|
||||||
|
* Code Folding (Julian Viereck)
|
||||||
|
- Unstructured code folding
|
||||||
|
- Will be the basis for language aware folding
|
||||||
|
|
||||||
|
* Mode behaviours (Chris Spencer)
|
||||||
|
- Adds mode specific hooks which allow transformations of entered text
|
||||||
|
- Autoclosing of braces, paranthesis and quotation marks in C style modes
|
||||||
|
- Autoclosing of angular brackets in XML style modes
|
||||||
|
|
||||||
|
* New language modes
|
||||||
|
- Clojure (Carin Meier)
|
||||||
|
- C# (Rob Conery)
|
||||||
|
- Groovy (Ben Tilford)
|
||||||
|
- Scala (Ben Tilford)
|
||||||
|
- JSON
|
||||||
|
- OCaml (Sergi Mansilla)
|
||||||
|
- Perl (Panagiotis Astithas)
|
||||||
|
- SCSS/SASS (Andreas Madsen)
|
||||||
|
- SVG
|
||||||
|
- Textile (Kelley van Evert)
|
||||||
|
- SCAD (Jacob Hansson)
|
||||||
|
|
||||||
|
* Live syntax checks
|
||||||
|
- Lint for CSS using CSS Lint <http://csslint.net/>
|
||||||
|
- CoffeeScript
|
||||||
|
|
||||||
|
* New Themes
|
||||||
|
- Crimson Editor (iebuggy)
|
||||||
|
- Merbivore (Michael Schwartz)
|
||||||
|
- Merbivore soft (Michael Schwartz)
|
||||||
|
- Solarized dark/light <http://ethanschoonover.com/solarized> (David Alan Hjelle)
|
||||||
|
- Vibrant Ink (Michael Schwartz)
|
||||||
|
|
||||||
|
* Small Features/Enhancements
|
||||||
|
- Lots of render performance optimizations (Harutyun Amirjanyan)
|
||||||
|
- Improved Ruby highlighting (Chris Wanstrath, Trent Ogren)
|
||||||
|
- Improved PHP highlighting (Thomas Hruska)
|
||||||
|
- Improved CSS highlighting (Sean Kellogg)
|
||||||
|
- Clicks which cause the editor to be focused don't reset the selection
|
||||||
|
- Make padding text layer specific so that print margin and active line
|
||||||
|
highlight are not affected (Irakli Gozalishvili)
|
||||||
|
- Added setFontSize method
|
||||||
|
- Improved vi keybindings (Trent Ogren)
|
||||||
|
- When unfocused make cursor transparent instead of removing it (Harutyun Amirjanyan)
|
||||||
|
- Support for matching groups in tokenizer with arrays of tokens (Chris Spencer)
|
||||||
|
|
||||||
|
* Bug fixes
|
||||||
|
- Add support for the new OSX scroll bars
|
||||||
|
- Properly highlight JavaScript regexp literals
|
||||||
|
- Proper handling of unicode characters in JavaScript identifiers
|
||||||
|
- Fix remove lines command on last line (Harutyun Amirjanyan)
|
||||||
|
- Fix scroll wheel sluggishness in Safari
|
||||||
|
- Make keyboard infrastructure route keys like []^$ the right way (Julian Viereck)
|
||||||
|
|
||||||
|
2011.02.14, Version 0.1.6
|
||||||
|
|
||||||
|
* Floating Anchors
|
||||||
|
- An Anchor is a floating pointer in the document.
|
||||||
|
- Whenever text is inserted or deleted before the cursor, the position of
|
||||||
|
the cursor is updated
|
||||||
|
- Usesd for the cursor and selection
|
||||||
|
- Basis for bookmarks, multiple cursors and snippets in the future
|
||||||
|
* Extensive support for Cocoa style keybindings on the Mac <https://github.com/ajaxorg/ace/issues/closed#issue/116/comment/767803>
|
||||||
|
* New commands:
|
||||||
|
- center selection in viewport
|
||||||
|
- remove to end/start of line
|
||||||
|
- split line
|
||||||
|
- transpose letters
|
||||||
|
* Refator markers
|
||||||
|
- Custom code can be used to render markers
|
||||||
|
- Markers can be in front or behind the text
|
||||||
|
- Markers are now stored in the session (was in the renderer)
|
||||||
|
* Lots of IE8 fixes including copy, cut and selections
|
||||||
|
* Unit tests can also be run in the browser
|
||||||
|
<https://github.com/ajaxorg/ace/blob/master/lib/ace/test/tests.html>
|
||||||
|
* Soft wrap can adapt to the width of the editor (Mike Ratcliffe, Joe Cheng)
|
||||||
|
* Add minimal node server server.js to run the Ace demo in Chrome
|
||||||
|
* The top level editor.html demo has been renamed to index.html
|
||||||
|
* Bug fixes
|
||||||
|
- Fixed gotoLine to consider wrapped lines when calculating where to scroll to (James Allen)
|
||||||
|
- Fixed isues when the editor was scrolled in the web page (Eric Allam)
|
||||||
|
- Highlighting of Python string literals
|
||||||
|
- Syntax rule for PHP comments
|
||||||
|
|
||||||
|
2011.02.08, Version 0.1.5
|
||||||
|
|
||||||
|
* Add Coffeescript Mode (Satoshi Murakami)
|
||||||
|
* Fix word wrap bug (Julian Viereck)
|
||||||
|
* Fix packaged version of the Eclipse mode
|
||||||
|
* Loading of workers is more robust
|
||||||
|
* Fix "click selection"
|
||||||
|
* Allow tokizing empty lines (Daniel Krech)
|
||||||
|
* Make PageUp/Down behavior more consistent with native OS (Joe Cheng)
|
||||||
|
|
||||||
|
2011.02.04, Version 0.1.4
|
||||||
|
|
||||||
|
* Add C/C++ mode contributed by Gastón Kleiman
|
||||||
|
* Fix exception in key input
|
||||||
|
|
||||||
|
2011.02.04, Version 0.1.3
|
||||||
|
|
||||||
|
* Let the packaged version play nice with requireJS
|
||||||
|
* Add Ruby mode contributed by Shlomo Zalman Heigh
|
||||||
|
* Add Java mode contributed by Tom Tasche
|
||||||
|
* Fix annotation bug
|
||||||
|
* Changing a document added a new empty line at the end
|
@ -0,0 +1,24 @@
|
|||||||
|
Copyright (c) 2010, Ajax.org B.V.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of Ajax.org B.V. nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@ -0,0 +1,21 @@
|
|||||||
|
Ace (Ajax.org Cloud9 Editor)
|
||||||
|
============================
|
||||||
|
|
||||||
|
Ace is a code editor written in JavaScript.
|
||||||
|
|
||||||
|
This repository has only generated files.
|
||||||
|
If you want to work on ace please go to https://github.com/ajaxorg/ace instead.
|
||||||
|
|
||||||
|
|
||||||
|
here you can find pre-built files for convenience of embedding.
|
||||||
|
it contains 4 versions
|
||||||
|
* [src](https://github.com/ajaxorg/ace-builds/tree/master/src) concatenated but not minified
|
||||||
|
* [src-min](https://github.com/ajaxorg/ace-builds/tree/master/src-min) concatenated and minified with uglify.js
|
||||||
|
* [src-noconflict](https://github.com/ajaxorg/ace-builds/tree/master/src-noconflict) uses ace.require instead of require
|
||||||
|
* [src-min-noconflict](https://github.com/ajaxorg/ace-builds/tree/master/src-min-noconflict) -
|
||||||
|
|
||||||
|
|
||||||
|
For a simple way of embedding ace into webpage see https://github.com/ajaxorg/ace-builds/blob/master/editor.html
|
||||||
|
To see ace in action go to [kitchen-sink-demo](http://ajaxorg.github.com/ace-builds/kitchen-sink.html), [scrollable-page-demo](http://ajaxorg.github.com/ace-builds/scrollable-page.html), or [minimal demo](http://ajaxorg.github.com/ace-builds/editor.html)
|
||||||
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>ACE Autocompletion demo</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
body {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<pre id="editor"></pre>
|
||||||
|
|
||||||
|
<!-- load ace -->
|
||||||
|
<script src="../src-noconflict/ace.js"></script>
|
||||||
|
<!-- load ace language tools -->
|
||||||
|
<script src="../src-noconflict/ext-language_tools.js"></script>
|
||||||
|
<script>
|
||||||
|
// trigger extension
|
||||||
|
ace.require("ace/ext/language_tools");
|
||||||
|
var editor = ace.edit("editor");
|
||||||
|
editor.session.setMode("ace/mode/html");
|
||||||
|
editor.setTheme("ace/theme/tomorrow");
|
||||||
|
// enable autocompletion and snippets
|
||||||
|
editor.setOptions({
|
||||||
|
enableBasicAutocompletion: true,
|
||||||
|
enableSnippets: true,
|
||||||
|
enableLiveAutocompletion: false
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="./show_own_source.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,56 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Editor</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
|
||||||
|
.ace_editor {
|
||||||
|
position: relative !important;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
margin: auto;
|
||||||
|
height: 200px;
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
.scrollmargin {
|
||||||
|
height: 100px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<pre id="editor1">autoresizing editor</pre>
|
||||||
|
<div class="scrollmargin"></div>
|
||||||
|
<pre id="editor2">minHeight = 2 lines</pre>
|
||||||
|
<div class="scrollmargin"></div>
|
||||||
|
<pre id="editor"></pre>
|
||||||
|
|
||||||
|
<script src="../src/ace.js"></script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var editor1 = ace.edit("editor1");
|
||||||
|
editor1.setTheme("ace/theme/tomorrow_night_eighties");
|
||||||
|
editor1.session.setMode("ace/mode/html");
|
||||||
|
editor1.setAutoScrollEditorIntoView(true);
|
||||||
|
editor1.setOption("maxLines", 30);
|
||||||
|
|
||||||
|
var editor2 = ace.edit("editor2");
|
||||||
|
editor2.setTheme("ace/theme/tomorrow_night_blue");
|
||||||
|
editor2.session.setMode("ace/mode/html");
|
||||||
|
editor2.setAutoScrollEditorIntoView(true);
|
||||||
|
editor2.setOption("maxLines", 30);
|
||||||
|
editor2.setOption("minLines", 2);
|
||||||
|
|
||||||
|
var editor = ace.edit("editor");
|
||||||
|
editor.setTheme("ace/theme/tomorrow");
|
||||||
|
editor.session.setMode("ace/mode/html");
|
||||||
|
editor.setAutoScrollEditorIntoView(true);
|
||||||
|
editor.setOption("maxLines", 100);
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="./show_own_source.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 20 KiB |
@ -0,0 +1,112 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<link href="style.css" rel="stylesheet" type="text/css">
|
||||||
|
<title>Ace Bookmarklet Builder</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="wrapper">
|
||||||
|
|
||||||
|
<div class="content" style="width: 950px">
|
||||||
|
<div class="column1" style="margin-top: 47px">
|
||||||
|
<textarea id="textarea" style="width:300px; height:300px">
|
||||||
|
/**
|
||||||
|
* This is Ace injected using a bookmarklet.
|
||||||
|
*/
|
||||||
|
function foo() {
|
||||||
|
var bar = true;
|
||||||
|
}</textarea><br>
|
||||||
|
SourceUrl: <br>
|
||||||
|
<input id="srcURL" style="width:300px" value="http://ajaxorg.github.com/ace-builds/src-noconflict"></input><br>
|
||||||
|
<button id="buBuild">Build Link</button> <br> <a href="#"></a>
|
||||||
|
<a href="https://github.com/ajaxorg/ace/">
|
||||||
|
<div class="fork_on_github" ></div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="column2">
|
||||||
|
<h1>Ace Bookmarklet Builder</h1>
|
||||||
|
|
||||||
|
<p id="first">
|
||||||
|
<strong>WARNING:</strong> Currently, this is only supported in non IE browsers.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>How to use it:</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Select the options as you want them to be by default.</li>
|
||||||
|
<li>Enter the "SourceUrl". This has to be the URL pointing to build/textarea/src/ (you can leave the default to server the scripts from GitHub).</li>
|
||||||
|
<li>Click the "Build Link" button to generate your custom Ace Bookmarklet.</li>
|
||||||
|
<li>Drag the generated link to your toolbar or store it somewhere else.</li>
|
||||||
|
<li>Go to a page with a textarea element and click the bookmarklet - wait a little bit till the files are loaded.</li>
|
||||||
|
<li>Click three times on the textarea you want to replace - Ace will replace it.</li>
|
||||||
|
<li>To change settings, just click the red icon in the bottom right corner.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
function inject(options, callback) {
|
||||||
|
var baseUrl = options.baseUrl || "../../src-noconflict";
|
||||||
|
|
||||||
|
var load = function(path, callback) {
|
||||||
|
var head = document.getElementsByTagName('head')[0];
|
||||||
|
var s = document.createElement('script');
|
||||||
|
|
||||||
|
s.src = baseUrl + "/" + path;
|
||||||
|
head.appendChild(s);
|
||||||
|
|
||||||
|
s.onload = s.onreadystatechange = function(_, isAbort) {
|
||||||
|
if (isAbort || !s.readyState || s.readyState == "loaded" || s.readyState == "complete") {
|
||||||
|
s = s.onload = s.onreadystatechange = null;
|
||||||
|
if (!isAbort)
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
load("ace.js", function() {
|
||||||
|
ace.config.loadModule("ace/ext/textarea", function() {
|
||||||
|
var event = ace.require("ace/lib/event");
|
||||||
|
var areas = document.getElementsByTagName("textarea");
|
||||||
|
for (var i = 0; i < areas.length; i++) {
|
||||||
|
event.addListener(areas[i], "click", function(e) {
|
||||||
|
if (e.detail == 3) {
|
||||||
|
ace.transformTextarea(e.target, options.ace);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
callback && callback();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call the inject function to load the ace files.
|
||||||
|
var textAce;
|
||||||
|
inject({}, function () {
|
||||||
|
// Transform the textarea on the page into an ace editor.
|
||||||
|
var t = document.querySelector("textarea");
|
||||||
|
textAce = ace.require("ace/ext/textarea").transformTextarea(t);
|
||||||
|
setTimeout(function(){textAce.setDisplaySettings(true)});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
document.getElementById("buBuild").onclick = function() {
|
||||||
|
var injectSrc = inject.toString().split("\n").join("");
|
||||||
|
injectSrc = injectSrc.replace(/\s+/g, " ");
|
||||||
|
|
||||||
|
var options = textAce.getOptions();
|
||||||
|
options.baseUrl = document.getElementById("srcURL").value;
|
||||||
|
|
||||||
|
var a = document.querySelector("a");
|
||||||
|
a.href = "javascript:(" + injectSrc + ")(" + JSON.stringify(options) + ")";
|
||||||
|
a.innerHTML = "Ace Bookmarklet Link";
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,228 @@
|
|||||||
|
body {
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
background-color:#e6f5fc;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
H2, H3, H4 {
|
||||||
|
font-family:Trebuchet MS;
|
||||||
|
font-weight:bold;
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
H2 {
|
||||||
|
font-size:28px;
|
||||||
|
color:#263842;
|
||||||
|
padding-bottom:6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
H3 {
|
||||||
|
font-family:Trebuchet MS;
|
||||||
|
font-weight:bold;
|
||||||
|
font-size:22px;
|
||||||
|
color:#253741;
|
||||||
|
margin-top:43px;
|
||||||
|
margin-bottom:8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
H4 {
|
||||||
|
font-family:Trebuchet MS;
|
||||||
|
font-weight:bold;
|
||||||
|
font-size:21px;
|
||||||
|
color:#222222;
|
||||||
|
margin-bottom:4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
P {
|
||||||
|
padding:13px 0;
|
||||||
|
margin:0;
|
||||||
|
line-height:22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL{
|
||||||
|
line-height : 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
PRE{
|
||||||
|
background : #333;
|
||||||
|
color : white;
|
||||||
|
padding : 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header {
|
||||||
|
height : 227px;
|
||||||
|
position:relative;
|
||||||
|
overflow:hidden;
|
||||||
|
background: url(images/background.png) repeat-x 0 0;
|
||||||
|
border-bottom:1px solid #c9e8fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header .content .signature {
|
||||||
|
font-family:Trebuchet MS;
|
||||||
|
font-size:11px;
|
||||||
|
color:#ebe4d6;
|
||||||
|
position:absolute;
|
||||||
|
bottom:5px;
|
||||||
|
right:42px;
|
||||||
|
letter-spacing : 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
width:970px;
|
||||||
|
position:relative;
|
||||||
|
margin:0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header .content {
|
||||||
|
height:184px;
|
||||||
|
margin-top:22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header .content .logo {
|
||||||
|
width : 282px;
|
||||||
|
height : 184px;
|
||||||
|
background:url(images/logo.png) no-repeat 0 0;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header .content .title {
|
||||||
|
width : 605px;
|
||||||
|
height : 58px;
|
||||||
|
background:url(images/ace.png) no-repeat 0 0;
|
||||||
|
position:absolute;
|
||||||
|
top:98px;
|
||||||
|
left:329px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper {
|
||||||
|
background:url(images/body_background.png) repeat-x 0 0;
|
||||||
|
min-height:250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper .content {
|
||||||
|
font-family:Arial;
|
||||||
|
font-size:14px;
|
||||||
|
color:#222222;
|
||||||
|
width:1000px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper .content .column1 {
|
||||||
|
position:relative;
|
||||||
|
float:left;
|
||||||
|
width:315px;
|
||||||
|
margin-right:31px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper .content .column2 {
|
||||||
|
position:relative;
|
||||||
|
overflow:hidden;
|
||||||
|
float:left;
|
||||||
|
width:600px;
|
||||||
|
padding-top:47px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fork_on_github {
|
||||||
|
width:310px;
|
||||||
|
height:80px;
|
||||||
|
background:url(images/fork_on_github.png) no-repeat 0 0;
|
||||||
|
position:relative;
|
||||||
|
overflow:hidden;
|
||||||
|
margin-top:49px;
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fork_on_github:hover {
|
||||||
|
background-position:0 -80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
height:3px;
|
||||||
|
background-color:#bedaea;
|
||||||
|
margin-bottom:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
padding:23px 0 0 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.content-list {
|
||||||
|
padding:15px;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.menu-list {
|
||||||
|
padding:0;
|
||||||
|
margin:0 0 20px 0;
|
||||||
|
list-style-type:none;
|
||||||
|
line-height : 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.menu-list LI {
|
||||||
|
color:#2557b4;
|
||||||
|
font-family:Trebuchet MS;
|
||||||
|
font-size:14px;
|
||||||
|
padding:7px 0;
|
||||||
|
border-bottom:1px dotted #d6e2e7;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.menu-list LI:last-child {
|
||||||
|
border-bottom:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
A {
|
||||||
|
color:#2557b4;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
A:hover {
|
||||||
|
text-decoration:underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
P#first{
|
||||||
|
background : rgba(255,255,255,0.5);
|
||||||
|
padding : 20px;
|
||||||
|
font-size : 16px;
|
||||||
|
line-height : 24px;
|
||||||
|
margin : 0 0 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
height:40px;
|
||||||
|
position:relative;
|
||||||
|
overflow:hidden;
|
||||||
|
background:url(images/bottombar.png) repeat-x 0 0;
|
||||||
|
position:relative;
|
||||||
|
margin-top:40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.menu-footer {
|
||||||
|
padding:0;
|
||||||
|
margin:8px 11px 0 0;
|
||||||
|
list-style-type:none;
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.menu-footer LI {
|
||||||
|
color:white;
|
||||||
|
font-family:Arial;
|
||||||
|
font-size:12px;
|
||||||
|
display:inline-block;
|
||||||
|
margin:0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.menu-footer LI A {
|
||||||
|
color:#8dd0ff;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
UL.menu-footer LI A:hover {
|
||||||
|
text-decoration:underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>ACE ChromeVox demo</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
body {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<pre id="editor"></pre>
|
||||||
|
|
||||||
|
<!-- load ace -->
|
||||||
|
<script src="../src/ace.js"></script>
|
||||||
|
<!-- load ace accessibility extension -->
|
||||||
|
<script src="../src/ext-chromevox.js"></script>
|
||||||
|
<script>
|
||||||
|
// trigger extension
|
||||||
|
ace.require("ace/ext/chromevox");
|
||||||
|
var editor = ace.edit("editor");
|
||||||
|
editor.session.setMode("ace/mode/html");
|
||||||
|
editor.setTheme("ace/theme/tomorrow");
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="./show_own_source.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,41 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>ACE Emmet demo</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
body {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<pre id="editor"></pre>
|
||||||
|
|
||||||
|
<!-- load emmet code and snippets compiled for browser -->
|
||||||
|
<script src="https://nightwing.github.io/emmet-core/emmet.js"></script>
|
||||||
|
|
||||||
|
<!-- load ace -->
|
||||||
|
<script src="../src/ace.js"></script>
|
||||||
|
<!-- load ace emmet extension -->
|
||||||
|
<script src="../src/ext-emmet.js"></script>
|
||||||
|
<script>
|
||||||
|
var editor = ace.edit("editor");
|
||||||
|
editor.session.setMode("ace/mode/html");
|
||||||
|
// enable emmet on the current editor
|
||||||
|
editor.setOption("enableEmmet", true);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="./show_own_source.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,44 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>ACE Editor StatusBar Demo</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
/*!important without this top: 0; bottom: 0 doesn't work on old ie */
|
||||||
|
body, html {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px; bottom: 0; left: 0; right: 0;
|
||||||
|
margin:0; padding:0;
|
||||||
|
overflow:hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0; bottom: 0; left: 0; right: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<pre id="editor">
|
||||||
|
require("ace/ext/old_ie");
|
||||||
|
// now ace will work even on ie7!
|
||||||
|
var editor = ace.edit("editor");
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<script src="../src/ace.js"></script>
|
||||||
|
<script src="../src/ext-old_ie.js"></script>
|
||||||
|
<script>
|
||||||
|
// before creating an editor patch up things for old ie
|
||||||
|
require("ace/ext/old_ie");
|
||||||
|
// now ace will work even on ie7!
|
||||||
|
var editor = ace.edit("editor");
|
||||||
|
editor.setTheme("ace/theme/textmate");
|
||||||
|
editor.session.setMode("ace/mode/javascript");
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,29 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>ACE Editor Inside iframe</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
/*!important without this top: 0; bottom: 0 doesn't work */
|
||||||
|
body, html {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px; bottom: 0; left: 0; right: 0;
|
||||||
|
margin:0; padding:0;
|
||||||
|
overflow:hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor {
|
||||||
|
padding: 20px;
|
||||||
|
position: absolute;
|
||||||
|
width: 80%;
|
||||||
|
height: 80%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<iframe id="editor" src="../kitchen-sink.html"></iframe>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,48 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title>Editor</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
body {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
#editor {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<pre id="editor"></pre>
|
||||||
|
|
||||||
|
<!-- load ace -->
|
||||||
|
<script src="../src/ace.js"></script>
|
||||||
|
<script>
|
||||||
|
var editor = ace.edit("editor")
|
||||||
|
editor.setTheme("ace/theme/twilight")
|
||||||
|
editor.session.setMode("ace/mode/html")
|
||||||
|
|
||||||
|
// add command to lazy-load keybinding_menu extension
|
||||||
|
editor.commands.addCommand({
|
||||||
|
name: "showKeyboardShortcuts",
|
||||||
|
bindKey: {win: "Ctrl-Alt-h", mac: "Command-Alt-h"},
|
||||||
|
exec: function(editor) {
|
||||||
|
ace.config.loadModule("ace/ext/keybinding_menu", function(module) {
|
||||||
|
module.init(editor);
|
||||||
|
editor.showKeyboardShortcuts()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
editor.execCommand("showKeyboardShortcuts")
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="./show_own_source.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,53 @@
|
|||||||
|
#
|
||||||
|
# example Dockerfile for http://docs.docker.io/en/latest/examples/postgresql_service/
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
MAINTAINER SvenDowideit@docker.com
|
||||||
|
|
||||||
|
# Add the PostgreSQL PGP key to verify their Debian packages.
|
||||||
|
# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
||||||
|
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
|
||||||
|
|
||||||
|
# Add PostgreSQL's repository. It contains the most recent stable release
|
||||||
|
# of PostgreSQL, ``9.3``.
|
||||||
|
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
||||||
|
|
||||||
|
# Update the Ubuntu and PostgreSQL repository indexes
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3
|
||||||
|
# There are some warnings (in red) that show up during the build. You can hide
|
||||||
|
# them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN apt-get -y -q install python-software-properties software-properties-common
|
||||||
|
RUN apt-get -y -q install postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
|
||||||
|
|
||||||
|
# Note: The official Debian and Ubuntu images automatically ``apt-get clean``
|
||||||
|
# after each ``apt-get``
|
||||||
|
|
||||||
|
# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed``
|
||||||
|
USER postgres
|
||||||
|
|
||||||
|
# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and
|
||||||
|
# then create a database `docker` owned by the ``docker`` role.
|
||||||
|
# Note: here we use ``&&\`` to run commands one after the other - the ``\``
|
||||||
|
# allows the RUN command to span multiple lines.
|
||||||
|
RUN /etc/init.d/postgresql start &&\
|
||||||
|
psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\
|
||||||
|
createdb -O docker docker
|
||||||
|
|
||||||
|
# Adjust PostgreSQL configuration so that remote connections to the
|
||||||
|
# database are possible.
|
||||||
|
RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf
|
||||||
|
|
||||||
|
# And add ``listen_addresses`` to ``/etc/postgresql/9.3/main/postgresql.conf``
|
||||||
|
RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf
|
||||||
|
|
||||||
|
# Expose the PostgreSQL port
|
||||||
|
EXPOSE 5432
|
||||||
|
|
||||||
|
# Add VOLUMEs to allow backup of config, logs and databases
|
||||||
|
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
|
||||||
|
|
||||||
|
# Set the default command to run when starting the container
|
||||||
|
CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]
|
@ -0,0 +1,17 @@
|
|||||||
|
class Haxe
|
||||||
|
{
|
||||||
|
public static function main()
|
||||||
|
{
|
||||||
|
// Say Hello!
|
||||||
|
var greeting:String = "Hello World";
|
||||||
|
trace(greeting);
|
||||||
|
|
||||||
|
var targets:Array<String> = ["Flash","Javascript","PHP","Neko","C++","iOS","Android","webOS"];
|
||||||
|
trace("Haxe is a great language that can target:");
|
||||||
|
for (target in targets)
|
||||||
|
{
|
||||||
|
trace (" - " + target);
|
||||||
|
}
|
||||||
|
trace("And many more!");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,247 @@
|
|||||||
|
vars it, p
|
||||||
|
|
||||||
|
p = {label, value|
|
||||||
|
print("\n" + label)
|
||||||
|
print(inspect(value))
|
||||||
|
}
|
||||||
|
-- Create an array from 0 to 15
|
||||||
|
p("range", i-collect(range(5)))
|
||||||
|
|
||||||
|
-- Create an array from 0 to 15 and break up in chunks of 4
|
||||||
|
p("chunked range", i-collect(i-chunk(4, range(16))))
|
||||||
|
|
||||||
|
-- Check if all or none items in stream pass test.
|
||||||
|
p("all < 60 in range(60)", i-all?({i|i<60}, range(60)))
|
||||||
|
p("any < 60 in range(60)", i-any?({i|i>60}, range(60)))
|
||||||
|
p("all < 60 in range(70)", i-all?({i|i<60}, range(70)))
|
||||||
|
p("any < 60 in range(70)", i-any?({i|i>60}, range(70)))
|
||||||
|
|
||||||
|
-- Zip three different collections together
|
||||||
|
p("zipped", i-collect(i-zip(
|
||||||
|
range(10),
|
||||||
|
[1,2,3,4,5],
|
||||||
|
i-map({i|i*i}, range(10))
|
||||||
|
)))
|
||||||
|
|
||||||
|
vars names, person, i, doubles, lengths, cubeRange
|
||||||
|
names = ["Thorin", "Dwalin", "Balin", "Bifur", "Bofur", "Bombur", "Oin",
|
||||||
|
"Gloin", "Ori", "Nori", "Dori", "Fili", "Kili", "Bilbo", "Gandalf"]
|
||||||
|
|
||||||
|
for name in names {
|
||||||
|
if name != "Bilbo" && name != "Gandalf" {
|
||||||
|
print(name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
person = {name: "Tim", age: 30}
|
||||||
|
for key, value in person {
|
||||||
|
print(key + " = " + value)
|
||||||
|
}
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
while i < 10 {
|
||||||
|
i = i + 1
|
||||||
|
print(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
print("range")
|
||||||
|
for i in range(10) {
|
||||||
|
print(i + 1)
|
||||||
|
}
|
||||||
|
for i in range(10) {
|
||||||
|
print(10 - i)
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Dynamic object that gives the first 10 doubles
|
||||||
|
doubles = {
|
||||||
|
@len: {| 10 }
|
||||||
|
@get: {key|
|
||||||
|
if key is Integer { key * key }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("#doubles", #doubles)
|
||||||
|
|
||||||
|
print("Doubles")
|
||||||
|
for k, v in doubles {
|
||||||
|
print([k, v])
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Dynamic object that has names list as keys and string lenth as values
|
||||||
|
lengths = {
|
||||||
|
@keys: {| names }
|
||||||
|
@get: {key|
|
||||||
|
if key is String { #key }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print ("Lengths")
|
||||||
|
for k, v in lengths {
|
||||||
|
print([k, v])
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cubeRange = {n|
|
||||||
|
vars i, v
|
||||||
|
i = 0
|
||||||
|
{
|
||||||
|
@call: {|
|
||||||
|
v = i
|
||||||
|
i = i + 1
|
||||||
|
if v < n { v * v * v }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print("Cubes")
|
||||||
|
for k, v in cubeRange(5) {
|
||||||
|
print([k, v])
|
||||||
|
}
|
||||||
|
print("String")
|
||||||
|
for k, v in "Hello World" {
|
||||||
|
print([k, v])
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
print([i for i in range(10)])
|
||||||
|
print([i for i in range(20) if i % 3])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Example showing how to do parallel work using split..and
|
||||||
|
base = {bootstrap, target-dir|
|
||||||
|
split {
|
||||||
|
copy("res", target-dir)
|
||||||
|
} and {
|
||||||
|
if newer("src/*.less", target-dir + "/style.css") {
|
||||||
|
lessc("src/" + bootstrap + ".less", target-dir + "/style.css")
|
||||||
|
}
|
||||||
|
} and {
|
||||||
|
build("src/" + bootstrap + ".js", target-dir + "/app.js")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
vars Dragon, pet
|
||||||
|
|
||||||
|
Dragon = {name|
|
||||||
|
vars asleep, stuff-in-belly, stuff-in-intestine,
|
||||||
|
feed, walk, put-to-bed, toss, rock,
|
||||||
|
hungry?, poopy?, passage-of-time
|
||||||
|
|
||||||
|
asleep = false
|
||||||
|
stuff-in-belly = 10 -- He's full.
|
||||||
|
stuff-in-intestine = 0 -- He doesn't need to go.
|
||||||
|
|
||||||
|
print(name + ' is born.')
|
||||||
|
|
||||||
|
feed = {|
|
||||||
|
print('You feed ' + name + '.')
|
||||||
|
stuff-in-belly = 10
|
||||||
|
passage-of-time()
|
||||||
|
}
|
||||||
|
|
||||||
|
walk = {|
|
||||||
|
print('You walk ' + name + ".")
|
||||||
|
stuff-in-intestine = 0
|
||||||
|
passage-of-time
|
||||||
|
}
|
||||||
|
|
||||||
|
put-to-bed = {|
|
||||||
|
print('You put ' + name + ' to bed.')
|
||||||
|
asleep = true
|
||||||
|
for i in range(3) {
|
||||||
|
if asleep {
|
||||||
|
passage-of-time()
|
||||||
|
}
|
||||||
|
if asleep {
|
||||||
|
print(name + ' snores, filling the room with smoke.')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if asleep {
|
||||||
|
asleep = false
|
||||||
|
print(name + ' wakes up slowly.')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
toss = {|
|
||||||
|
print('You toss ' + name + ' up into the air.')
|
||||||
|
print('He giggles, which singes your eyebrows.')
|
||||||
|
passage-of-time()
|
||||||
|
}
|
||||||
|
|
||||||
|
rock = {|
|
||||||
|
print('You rock ' + name + ' gently.')
|
||||||
|
asleep = true
|
||||||
|
print('He briefly dozes off...')
|
||||||
|
passage-of-time()
|
||||||
|
if asleep {
|
||||||
|
asleep = false
|
||||||
|
print('...but wakes when you stop.')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hungry? = {|
|
||||||
|
stuff-in-belly <= 2
|
||||||
|
}
|
||||||
|
|
||||||
|
poopy? = {|
|
||||||
|
stuff-in-intestine >= 8
|
||||||
|
}
|
||||||
|
|
||||||
|
passage-of-time = {|
|
||||||
|
if stuff-in-belly > 0 {
|
||||||
|
-- Move food from belly to intestine
|
||||||
|
stuff-in-belly = stuff-in-belly - 1
|
||||||
|
stuff-in-intestine = stuff-in-intestine + 1
|
||||||
|
} else { -- Our dragon is starving!
|
||||||
|
if asleep {
|
||||||
|
asleep = false
|
||||||
|
print('He wakes up suddenly!')
|
||||||
|
}
|
||||||
|
print(name + ' is starving! In desperation, he ate YOU!')
|
||||||
|
abort "died"
|
||||||
|
}
|
||||||
|
|
||||||
|
if stuff-in-intestine >= 10 {
|
||||||
|
stuff-in-intestine = 0
|
||||||
|
print('Whoops! ' + name + ' had an accident...')
|
||||||
|
}
|
||||||
|
|
||||||
|
if hungry?() {
|
||||||
|
if asleep {
|
||||||
|
asleep = false
|
||||||
|
print('He wakes up suddenly!')
|
||||||
|
}
|
||||||
|
print(name + "'s stomach grumbles...")
|
||||||
|
}
|
||||||
|
|
||||||
|
if poopy?() {
|
||||||
|
if asleep {
|
||||||
|
asleep = false
|
||||||
|
print('He wakes up suddenly!')
|
||||||
|
}
|
||||||
|
print(name + ' does the potty dance...')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Export the public interface to this closure object.
|
||||||
|
{
|
||||||
|
feed: feed
|
||||||
|
walk: walk
|
||||||
|
put-to-bed: put-to-bed
|
||||||
|
toss: toss
|
||||||
|
rock: rock
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
pet = Dragon('Norbert')
|
||||||
|
pet.feed()
|
||||||
|
pet.toss()
|
||||||
|
pet.walk()
|
||||||
|
pet.put-to-bed()
|
||||||
|
pet.rock()
|
||||||
|
pet.put-to-bed()
|
||||||
|
pet.put-to-bed()
|
||||||
|
pet.put-to-bed()
|
||||||
|
pet.put-to-bed()
|
@ -0,0 +1,122 @@
|
|||||||
|
.PHONY: apf ext worker mode theme package test
|
||||||
|
|
||||||
|
default: apf worker
|
||||||
|
|
||||||
|
update: worker
|
||||||
|
|
||||||
|
# packages apf
|
||||||
|
|
||||||
|
# This is the first line of a comment \
|
||||||
|
and this is still part of the comment \
|
||||||
|
as is this, since I keep ending each line \
|
||||||
|
with a backslash character
|
||||||
|
|
||||||
|
apf:
|
||||||
|
cd node_modules/packager; node package.js projects/apf_cloud9.apr
|
||||||
|
cd node_modules/packager; cat build/apf_release.js | sed 's/\(\/\*FILEHEAD(\).*//g' > ../../plugins-client/lib.apf/www/apf-packaged/apf_release.js
|
||||||
|
|
||||||
|
# package debug version of apf
|
||||||
|
apfdebug:
|
||||||
|
cd node_modules/packager/projects; cat apf_cloud9.apr | sed 's/<p:define name=\"__DEBUG\" value=\"0\" \/>/<p:define name=\"__DEBUG\" value=\"1\" \/>/g' > apf_cloud9_debug2.apr
|
||||||
|
cd node_modules/packager/projects; cat apf_cloud9_debug2.apr | sed 's/apf_release/apf_debug/g' > apf_cloud9_debug.apr; rm apf_cloud9_debug2.apr
|
||||||
|
cd node_modules/packager; node package.js projects/apf_cloud9_debug.apr
|
||||||
|
cd node_modules/packager; cat build/apf_debug.js | sed 's/\(\/\*FILEHEAD(\).*\/apf\/\(.*\)/\1\2/g' > ../../plugins-client/lib.apf/www/apf-packaged/apf_debug.js
|
||||||
|
|
||||||
|
# package_apf--temporary fix for non-workering infra
|
||||||
|
pack_apf:
|
||||||
|
mkdir -p build/src
|
||||||
|
mv plugins-client/lib.apf/www/apf-packaged/apf_release.js build/src/apf_release.js
|
||||||
|
node build/r.js -o name=./build/src/apf_release.js out=./plugins-client/lib.apf/www/apf-packaged/apf_release.js baseUrl=.
|
||||||
|
|
||||||
|
# makes ace; at the moment, requires dryice@0.4.2
|
||||||
|
ace:
|
||||||
|
cd node_modules/ace; make clean pre_build; ./Makefile.dryice.js minimal
|
||||||
|
|
||||||
|
|
||||||
|
# packages core
|
||||||
|
core: ace
|
||||||
|
mkdir -p build/src
|
||||||
|
node build/r.js -o build/core.build.js
|
||||||
|
|
||||||
|
# generates packed template
|
||||||
|
helper:
|
||||||
|
node build/packed_helper.js
|
||||||
|
|
||||||
|
helper_clean:
|
||||||
|
mkdir -p build/src
|
||||||
|
node build/packed_helper.js 1
|
||||||
|
|
||||||
|
# packages ext
|
||||||
|
ext:
|
||||||
|
node build/r.js -o build/app.build.js
|
||||||
|
|
||||||
|
# calls dryice on worker & packages it
|
||||||
|
worker: plugins-client/lib.ace/www/worker/worker-language.js
|
||||||
|
|
||||||
|
plugins-client/lib.ace/www/worker/worker-language.js plugins-client/lib.ace/www/worker/worker-javascript.js : \
|
||||||
|
$(wildcard node_modules/ace/*) $(wildcard node_modules/ace/*/*) $(wildcard node_modules/ace/*/*/mode/*) \
|
||||||
|
$(wildcard plugins-client/ext.language/*) \
|
||||||
|
$(wildcard plugins-client/ext.language/*/*) \
|
||||||
|
$(wildcard plugins-client/ext.linereport/*) \
|
||||||
|
$(wildcard plugins-client/ext.codecomplete/*) \
|
||||||
|
$(wildcard plugins-client/ext.codecomplete/*/*) \
|
||||||
|
$(wildcard plugins-client/ext.jslanguage/*) \
|
||||||
|
$(wildcard plugins-client/ext.jslanguage/*/*) \
|
||||||
|
$(wildcard plugins-client/ext.csslanguage/*) \
|
||||||
|
$(wildcard plugins-client/ext.csslanguage/*/*) \
|
||||||
|
$(wildcard plugins-client/ext.htmllanguage/*) \
|
||||||
|
$(wildcard plugins-client/ext.htmllanguage/*/*) \
|
||||||
|
$(wildcard plugins-client/ext.jsinfer/*) \
|
||||||
|
$(wildcard plugins-client/ext.jsinfer/*/*) \
|
||||||
|
$(wildcard node_modules/treehugger/lib/*) \
|
||||||
|
$(wildcard node_modules/treehugger/lib/*/*) \
|
||||||
|
$(wildcard node_modules/ace/lib/*) \
|
||||||
|
$(wildcard node_modules/ace/*/*) \
|
||||||
|
Makefile.dryice.js
|
||||||
|
mkdir -p plugins-client/lib.ace/www/worker
|
||||||
|
rm -rf /tmp/c9_worker_build
|
||||||
|
mkdir -p /tmp/c9_worker_build/ext
|
||||||
|
ln -s `pwd`/plugins-client/ext.language /tmp/c9_worker_build/ext/language
|
||||||
|
ln -s `pwd`/plugins-client/ext.codecomplete /tmp/c9_worker_build/ext/codecomplete
|
||||||
|
ln -s `pwd`/plugins-client/ext.jslanguage /tmp/c9_worker_build/ext/jslanguage
|
||||||
|
ln -s `pwd`/plugins-client/ext.csslanguage /tmp/c9_worker_build/ext/csslanguage
|
||||||
|
ln -s `pwd`/plugins-client/ext.htmllanguage /tmp/c9_worker_build/ext/htmllanguage
|
||||||
|
ln -s `pwd`/plugins-client/ext.linereport /tmp/c9_worker_build/ext/linereport
|
||||||
|
ln -s `pwd`/plugins-client/ext.linereport_php /tmp/c9_worker_build/ext/linereport_php
|
||||||
|
node Makefile.dryice.js worker
|
||||||
|
cp node_modules/ace/build/src/worker* plugins-client/lib.ace/www/worker
|
||||||
|
|
||||||
|
define
|
||||||
|
|
||||||
|
ifeq
|
||||||
|
|
||||||
|
override
|
||||||
|
|
||||||
|
# copies built ace modes
|
||||||
|
mode:
|
||||||
|
mkdir -p plugins-client/lib.ace/www/mode
|
||||||
|
cp `find node_modules/ace/build/src | grep -E "mode-[a-zA-Z_0-9]+.js"` plugins-client/lib.ace/www/mode
|
||||||
|
|
||||||
|
# copies built ace themes
|
||||||
|
theme:
|
||||||
|
mkdir -p plugins-client/lib.ace/www/theme
|
||||||
|
cp `find node_modules/ace/build/src | grep -E "theme-[a-zA-Z_0-9]+.js"` plugins-client/lib.ace/www/theme
|
||||||
|
|
||||||
|
gzip_safe:
|
||||||
|
for i in `ls ./plugins-client/lib.packed/www/*.js`; do \
|
||||||
|
gzip -9 -v -c -q -f $$i > $$i.gz ; \
|
||||||
|
done
|
||||||
|
|
||||||
|
gzip:
|
||||||
|
for i in `ls ./plugins-client/lib.packed/www/*.js`; do \
|
||||||
|
gzip -9 -v -q -f $$i ; \
|
||||||
|
done
|
||||||
|
|
||||||
|
c9core: apf ace core worker mode theme
|
||||||
|
|
||||||
|
package_clean: helper_clean c9core ext
|
||||||
|
|
||||||
|
package: helper c9core ext
|
||||||
|
|
||||||
|
test check:
|
||||||
|
test/run-tests.sh
|
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
# Name of our deployment
|
||||||
|
network.description = "HelloWorld";
|
||||||
|
# Enable rolling back to previous versions of our infrastructure
|
||||||
|
network.enableRollback = true;
|
||||||
|
|
||||||
|
# It consists of a single server named 'helloserver'
|
||||||
|
helloserver =
|
||||||
|
# Every server gets passed a few arguments, including a reference
|
||||||
|
# to nixpkgs (pkgs)
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
# We import our custom packages from ./default passing pkgs as argument
|
||||||
|
packages = import ./default.nix { pkgs = pkgs; };
|
||||||
|
# This is the nodejs version specified in default.nix
|
||||||
|
nodejs = packages.nodejs;
|
||||||
|
# And this is the application we'd like to deploy
|
||||||
|
app = packages.app;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# We'll be running our application on port 8080, because a regular
|
||||||
|
# user cannot bind to port 80
|
||||||
|
# Then, using some iptables magic we'll forward traffic designated to port 80 to 8080
|
||||||
|
networking.firewall.enable = true;
|
||||||
|
# We will open up port 22 (SSH) as well otherwise we're locking ourselves out
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 8080 22 ];
|
||||||
|
networking.firewall.allowPing = true;
|
||||||
|
|
||||||
|
# Port forwarding using iptables
|
||||||
|
networking.firewall.extraCommands = ''
|
||||||
|
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
|
||||||
|
'';
|
||||||
|
|
||||||
|
# To run our node.js program we're going to use a systemd service
|
||||||
|
# We can configure the service to automatically start on boot and to restart
|
||||||
|
# the process in case it crashes
|
||||||
|
systemd.services.helloserver = {
|
||||||
|
description = "Hello world application";
|
||||||
|
# Start the service after the network is available
|
||||||
|
after = [ "network.target" ];
|
||||||
|
# We're going to run it on port 8080 in production
|
||||||
|
environment = { PORT = "8080"; };
|
||||||
|
serviceConfig = {
|
||||||
|
# The actual command to run
|
||||||
|
ExecStart = "${nodejs}/bin/node ${app}/server.js";
|
||||||
|
# For security reasons we'll run this process as a special 'nodejs' user
|
||||||
|
User = "nodejs";
|
||||||
|
Restart = "always";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# And lastly we ensure the user we run our application as is created
|
||||||
|
users.extraUsers = {
|
||||||
|
nodejs = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
// ace can highlight scad!
|
||||||
|
module Element(xpos, ypos, zpos){
|
||||||
|
translate([xpos,ypos,zpos]){
|
||||||
|
union(){
|
||||||
|
cube([10,10,4],true);
|
||||||
|
cylinder(10,15,5);
|
||||||
|
translate([0,0,10])sphere(5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
union(){
|
||||||
|
for(i=[0:30]){
|
||||||
|
# Element(0,0,0);
|
||||||
|
Element(15*i,0,0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = [3, 5, 7, 11]){
|
||||||
|
rotate([i*10,0,0])scale([1,1,i])cube(10);
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
***************************************
|
||||||
|
** Program: EXAMPLE **
|
||||||
|
** Author: Joe Byte, 07-Jul-2007 **
|
||||||
|
***************************************
|
||||||
|
|
||||||
|
REPORT BOOKINGS.
|
||||||
|
|
||||||
|
* Read flight bookings from the database
|
||||||
|
SELECT * FROM FLIGHTINFO
|
||||||
|
WHERE CLASS = 'Y' "Y = economy
|
||||||
|
OR CLASS = 'C'. "C = business
|
||||||
|
(...)
|
||||||
|
|
||||||
|
REPORT TEST.
|
||||||
|
WRITE 'Hello World'.
|
||||||
|
|
||||||
|
USERPROMPT = 'Please double-click on a line in the output list ' &
|
||||||
|
'to see the complete details of the transaction.'.
|
||||||
|
|
||||||
|
|
||||||
|
DATA LAST_EOM TYPE D. "last end-of-month date
|
||||||
|
|
||||||
|
* Start from today's date
|
||||||
|
LAST_EOM = SY-DATUM.
|
||||||
|
* Set characters 6 and 7 (0-relative) of the YYYYMMDD string to "01",
|
||||||
|
* giving the first day of the current month
|
||||||
|
LAST_EOM+6(2) = '01'.
|
||||||
|
* Subtract one day
|
||||||
|
LAST_EOM = LAST_EOM - 1.
|
||||||
|
|
||||||
|
WRITE: 'Last day of previous month was', LAST_EOM.
|
||||||
|
|
||||||
|
DATA : BEGIN OF I_VBRK OCCURS 0,
|
||||||
|
VBELN LIKE VBRK-VBELN,
|
||||||
|
ZUONR LIKE VBRK-ZUONR,
|
||||||
|
END OF I_VBRK.
|
@ -0,0 +1,51 @@
|
|||||||
|
package code
|
||||||
|
{
|
||||||
|
/*****************************************
|
||||||
|
* based on textmate actionscript bundle
|
||||||
|
****************************************/
|
||||||
|
|
||||||
|
import fl.events.SliderEvent;
|
||||||
|
|
||||||
|
public class Foo extends MovieClip
|
||||||
|
{
|
||||||
|
//*************************
|
||||||
|
// Properties:
|
||||||
|
|
||||||
|
public var activeSwatch:MovieClip;
|
||||||
|
|
||||||
|
// Color offsets
|
||||||
|
public var c1:Number = 0; // R
|
||||||
|
|
||||||
|
//*************************
|
||||||
|
// Constructor:
|
||||||
|
|
||||||
|
public function Foo()
|
||||||
|
{
|
||||||
|
// Respond to mouse events
|
||||||
|
swatch1_btn.addEventListener(MouseEvent.CLICK,swatchHandler,false,0,false);
|
||||||
|
previewBox_btn.addEventListener(MouseEvent.MOUSE_DOWN,dragPressHandler);
|
||||||
|
|
||||||
|
// Respond to drag events
|
||||||
|
red_slider.addEventListener(SliderEvent.THUMB_DRAG,sliderHandler);
|
||||||
|
|
||||||
|
// Draw a frame later
|
||||||
|
addEventListener(Event.ENTER_FRAME,draw);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function clickHandler(event:MouseEvent):void
|
||||||
|
{
|
||||||
|
car.transform.colorTransform = new ColorTransform(0,0,0,1,c1,c2,c3);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function changeRGBHandler(event:Event):void
|
||||||
|
{
|
||||||
|
c1 = Number(c1_txt.text);
|
||||||
|
|
||||||
|
if(!(c1>=0)){
|
||||||
|
c1 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateSliders();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
with Ada.Text_IO; use Ada.Text_IO;
|
||||||
|
procedure Hello is
|
||||||
|
begin
|
||||||
|
Put_Line("Hello, world!");
|
||||||
|
end Hello;
|
@ -0,0 +1,18 @@
|
|||||||
|
section .text
|
||||||
|
global main ;must be declared for using gcc
|
||||||
|
|
||||||
|
main: ;tell linker entry point
|
||||||
|
|
||||||
|
mov edx, len ;message length
|
||||||
|
mov ecx, msg ;message to write
|
||||||
|
mov ebx, 1 ;file descriptor (stdout)
|
||||||
|
mov eax, 4 ;system call number (sys_write)
|
||||||
|
int 0x80 ;call kernel
|
||||||
|
|
||||||
|
mov eax, 1 ;system call number (sys_exit)
|
||||||
|
int 0x80 ;call kernel
|
||||||
|
|
||||||
|
section .data
|
||||||
|
|
||||||
|
msg db 'Hello, world!',0xa ;our dear string
|
||||||
|
len equ $ - msg ;length of our dear string
|
@ -0,0 +1,35 @@
|
|||||||
|
#NoEnv
|
||||||
|
SetBatchLines -1
|
||||||
|
|
||||||
|
CoordMode Mouse, Screen
|
||||||
|
OnExit GuiClose
|
||||||
|
|
||||||
|
zoom := 9
|
||||||
|
|
||||||
|
computeSize(){
|
||||||
|
global as_x
|
||||||
|
as_x := Round(ws_x/zoom/2 - 0.5)
|
||||||
|
if (zoom>1) {
|
||||||
|
pix := Round(zoom)
|
||||||
|
} ele {
|
||||||
|
pix := 1
|
||||||
|
}
|
||||||
|
ToolTip Message %as_x% %zoom% %ws_x% %hws_x%
|
||||||
|
}
|
||||||
|
|
||||||
|
hdc_frame := DllCall("GetDC", UInt, MagnifierID)
|
||||||
|
|
||||||
|
; comment
|
||||||
|
DrawCross(byRef x="", rX,rY,z, dc){
|
||||||
|
;specify the style, thickness and color of the cross lines
|
||||||
|
h_pen := DllCall( "gdi32.dll\CreatePen", Int, 0, Int, 1, UInt, 0x0000FF)
|
||||||
|
}
|
||||||
|
|
||||||
|
;Ctrl ^; Shift +; Win #; Alt !
|
||||||
|
^NumPadAdd::
|
||||||
|
^WheelUp::
|
||||||
|
^;:: ;comment
|
||||||
|
If(zoom < ws_x and ( A_ThisHotKey = "^WheelUp" or A_ThisHotKey ="^NumPadAdd") )
|
||||||
|
zoom *= 1.189207115 ; sqrt(sqrt(2))
|
||||||
|
Gosub,setZoom
|
||||||
|
return
|
@ -0,0 +1,15 @@
|
|||||||
|
:: batch file highlighting in Ace!
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
CALL set var1=%cd%
|
||||||
|
echo unhide everything in %var1%!
|
||||||
|
|
||||||
|
:: FOR loop in bat is super strange!
|
||||||
|
FOR /f "tokens=*" %%G IN ('dir /A:D /b') DO (
|
||||||
|
echo %var1%%%G
|
||||||
|
attrib -r -a -h -s "%var1%%%G" /D /S
|
||||||
|
)
|
||||||
|
|
||||||
|
pause
|
||||||
|
|
||||||
|
REM that's all
|
@ -0,0 +1,44 @@
|
|||||||
|
// compound assignment operators
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include \
|
||||||
|
<iostream>
|
||||||
|
|
||||||
|
#include \
|
||||||
|
\
|
||||||
|
<iostream>
|
||||||
|
|
||||||
|
#include \
|
||||||
|
\
|
||||||
|
"iostream"
|
||||||
|
|
||||||
|
#include <boost/asio/io_service.hpp>
|
||||||
|
#include "boost/asio/io_service.hpp"
|
||||||
|
|
||||||
|
#include \
|
||||||
|
\
|
||||||
|
"iostream" \
|
||||||
|
"string" \
|
||||||
|
<vector>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
int a, b=3; /* foobar */
|
||||||
|
a = b;
|
||||||
|
a+=2; // equivalent to a=a+2
|
||||||
|
cout << a;
|
||||||
|
#if VERBOSE >= 2
|
||||||
|
prints("trace message");
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Print an error message and get out */
|
||||||
|
#define ABORT \
|
||||||
|
do { \
|
||||||
|
print( "Abort\n" ); \
|
||||||
|
exit(8); \
|
||||||
|
} while (0) /* Note: No semicolon */
|
@ -0,0 +1,42 @@
|
|||||||
|
-- https://github.com/Cirru/cirru-gopher/blob/master/code/scope.cr,
|
||||||
|
|
||||||
|
set a (int 2)
|
||||||
|
|
||||||
|
print (self)
|
||||||
|
|
||||||
|
set c (child)
|
||||||
|
|
||||||
|
under c
|
||||||
|
under parent
|
||||||
|
print a
|
||||||
|
|
||||||
|
print $ get c a
|
||||||
|
|
||||||
|
set c x (int 3)
|
||||||
|
print $ get c x
|
||||||
|
|
||||||
|
set just-print $ code
|
||||||
|
print a
|
||||||
|
|
||||||
|
print just-print
|
||||||
|
|
||||||
|
eval (self) just-print
|
||||||
|
eval just-print
|
||||||
|
|
||||||
|
print (string "string with space")
|
||||||
|
print (string "escapes \n \"\\")
|
||||||
|
|
||||||
|
brackets ((((()))))
|
||||||
|
|
||||||
|
"eval" $ string "eval"
|
||||||
|
|
||||||
|
print (add $ (int 1) (int 2))
|
||||||
|
|
||||||
|
print $ unwrap $
|
||||||
|
map (a $ int 1) (b $ int 2)
|
||||||
|
|
||||||
|
print a
|
||||||
|
int 1
|
||||||
|
, b c
|
||||||
|
int 2
|
||||||
|
, d
|
@ -0,0 +1,19 @@
|
|||||||
|
(defn parting
|
||||||
|
"returns a String parting in a given language"
|
||||||
|
([] (parting "World"))
|
||||||
|
([name] (parting name "en"))
|
||||||
|
([name language]
|
||||||
|
; condp is similar to a case statement in other languages.
|
||||||
|
; It is described in more detail later.
|
||||||
|
; It is used here to take different actions based on whether the
|
||||||
|
; parameter "language" is set to "en", "es" or something else.
|
||||||
|
(condp = language
|
||||||
|
"en" (str "Goodbye, " name)
|
||||||
|
"es" (str "Adios, " name)
|
||||||
|
(throw (IllegalArgumentException.
|
||||||
|
(str "unsupported language " language))))))
|
||||||
|
|
||||||
|
(println (parting)) ; -> Goodbye, World
|
||||||
|
(println (parting "Mark")) ; -> Goodbye, Mark
|
||||||
|
(println (parting "Mark" "es")) ; -> Adios, Mark
|
||||||
|
(println (parting "Mark", "xy")) ; -> java.lang.IllegalArgumentException: unsupported language xy
|
@ -0,0 +1 @@
|
|||||||
|
TODO
|
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env coffee
|
||||||
|
|
||||||
|
try
|
||||||
|
throw URIError decodeURI(0xC0ffee * 123456.7e-8 / .9)
|
||||||
|
catch e
|
||||||
|
console.log 'qstring' + "qqstring" + '''
|
||||||
|
qdoc
|
||||||
|
''' + """
|
||||||
|
qqdoc
|
||||||
|
"""
|
||||||
|
|
||||||
|
do ->
|
||||||
|
###
|
||||||
|
herecomment
|
||||||
|
###
|
||||||
|
re = /regex/imgy.test ///
|
||||||
|
heregex # comment
|
||||||
|
///imgy
|
||||||
|
this isnt: `just JavaScript`
|
||||||
|
undefined
|
||||||
|
|
||||||
|
sentence = "#{ 22 / 7 } is a decent approximation of π"
|
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env coffee
|
||||||
|
|
||||||
|
try
|
||||||
|
throw URIError decodeURI(0xC0ffee * 123456.7e-8 / .9)
|
||||||
|
catch e
|
||||||
|
console.log 'qstring' + "qqstring" + '''
|
||||||
|
qdoc
|
||||||
|
''' + """
|
||||||
|
qqdoc
|
||||||
|
"""
|
||||||
|
|
||||||
|
do ->
|
||||||
|
###
|
||||||
|
herecomment
|
||||||
|
###
|
||||||
|
re = /regex/imgy.test ///
|
||||||
|
heregex # comment
|
||||||
|
///imgy
|
||||||
|
this isnt: `just JavaScript`
|
||||||
|
undefined
|
||||||
|
|
||||||
|
sentence = "#{ 22 / 7 } is a decent approximation of π"
|
@ -0,0 +1,5 @@
|
|||||||
|
<!--- hello world --->
|
||||||
|
|
||||||
|
<cfset welcome="Hello World!">
|
||||||
|
|
||||||
|
<cfoutput>#welcome#</cfoutput>
|
@ -0,0 +1,44 @@
|
|||||||
|
// compound assignment operators
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include \
|
||||||
|
<iostream>
|
||||||
|
|
||||||
|
#include \
|
||||||
|
\
|
||||||
|
<iostream>
|
||||||
|
|
||||||
|
#include \
|
||||||
|
\
|
||||||
|
"iostream"
|
||||||
|
|
||||||
|
#include <boost/asio/io_service.hpp>
|
||||||
|
#include "boost/asio/io_service.hpp"
|
||||||
|
|
||||||
|
#include \
|
||||||
|
\
|
||||||
|
"iostream" \
|
||||||
|
"string" \
|
||||||
|
<vector>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
int a, b=3; /* foobar */
|
||||||
|
a = b;
|
||||||
|
a+=2; // equivalent to a=a+2
|
||||||
|
cout << a;
|
||||||
|
#if VERBOSE >= 2
|
||||||
|
prints("trace message");
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Print an error message and get out */
|
||||||
|
#define ABORT \
|
||||||
|
do { \
|
||||||
|
print( "Abort\n" ); \
|
||||||
|
exit(8); \
|
||||||
|
} while (0) /* Note: No semicolon */
|
@ -0,0 +1,4 @@
|
|||||||
|
public void HelloWorld() {
|
||||||
|
//Say Hello!
|
||||||
|
Console.WriteLine("Hello World");
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
.text-layer {
|
||||||
|
font-family: Monaco, "Courier New", monospace;
|
||||||
|
font-size: 12pX;
|
||||||
|
cursor: text;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blinker {
|
||||||
|
animation-duration: 1s;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40.5% {
|
||||||
|
opacity: 1
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
.text-layer {
|
||||||
|
font-family: Monaco, "Courier New", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
cursor: text;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 style="color:red">{{author_name}}</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env rdmd
|
||||||
|
// Computes average line length for standard input.
|
||||||
|
import std.stdio;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
ulong lines = 0;
|
||||||
|
double sumLength = 0;
|
||||||
|
foreach (line; stdin.byLine()) {
|
||||||
|
++lines;
|
||||||
|
sumLength += line.length;
|
||||||
|
}
|
||||||
|
writeln("Average line length: ",
|
||||||
|
lines ? sumLength / lines : 0);
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
// Go ahead and modify this example.
|
||||||
|
|
||||||
|
import "dart:html";
|
||||||
|
|
||||||
|
// Computes the nth Fibonacci number.
|
||||||
|
int fibonacci(int n) {
|
||||||
|
if (n < 2) return n;
|
||||||
|
return fibonacci(n - 1) + fibonacci(n - 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Displays a Fibonacci number.
|
||||||
|
void main() {
|
||||||
|
int i = 20;
|
||||||
|
String message = "fibonacci($i) = ${fibonacci(i)}";
|
||||||
|
|
||||||
|
// This example uses HTML to display the result and it will appear
|
||||||
|
// in a nested HTML frame (an iframe).
|
||||||
|
document.body.append(new HeadingElement.h1()..appendText(message));
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js
|
||||||
|
index 23fc3fc..ed3b273 100644
|
||||||
|
--- a/lib/ace/edit_session.js
|
||||||
|
+++ b/lib/ace/edit_session.js
|
||||||
|
@@ -51,6 +51,7 @@ var TextMode = require("./mode/text").Mode;
|
||||||
|
var Range = require("./range").Range;
|
||||||
|
var Document = require("./document").Document;
|
||||||
|
var BackgroundTokenizer = require("./background_tokenizer").BackgroundTokenizer;
|
||||||
|
+var SearchHighlight = require("./search_highlight").SearchHighlight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* class EditSession
|
||||||
|
@@ -307,6 +308,13 @@ var EditSession = function(text, mode) {
|
||||||
|
return token;
|
||||||
|
};
|
||||||
|
|
||||||
|
+ this.highlight = function(re) {
|
||||||
|
+ if (!this.$searchHighlight) {
|
||||||
|
+ var highlight = new SearchHighlight(null, "ace_selected-word", "text");
|
||||||
|
+ this.$searchHighlight = this.addDynamicMarker(highlight);
|
||||||
|
+ }
|
||||||
|
+ this.$searchHighlight.setRegexp(re);
|
||||||
|
+ }
|
||||||
|
/**
|
||||||
|
* EditSession.setUndoManager(undoManager)
|
||||||
|
* - undoManager (UndoManager): The new undo manager
|
||||||
|
@@ -556,7 +564,8 @@ var EditSession = function(text, mode) {
|
||||||
|
type : type || "line",
|
||||||
|
renderer: typeof type == "function" ? type : null,
|
||||||
|
clazz : clazz,
|
||||||
|
- inFront: !!inFront
|
||||||
|
+ inFront: !!inFront,
|
||||||
|
+ id: id
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inFront) {
|
||||||
|
diff --git a/lib/ace/editor.js b/lib/ace/editor.js
|
||||||
|
index 834e603..b27ec73 100644
|
||||||
|
--- a/lib/ace/editor.js
|
||||||
|
+++ b/lib/ace/editor.js
|
||||||
|
@@ -494,7 +494,7 @@ var Editor = function(renderer, session) {
|
||||||
|
* Emitted when a selection has changed.
|
||||||
|
**/
|
||||||
|
this.onSelectionChange = function(e) {
|
||||||
|
- var session = this.getSession();
|
||||||
|
+ var session = this.session;
|
||||||
|
|
||||||
|
if (session.$selectionMarker) {
|
||||||
|
session.removeMarker(session.$selectionMarker);
|
||||||
|
@@ -509,12 +509,40 @@ var Editor = function(renderer, session) {
|
||||||
|
this.$updateHighlightActiveLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
- var self = this;
|
||||||
|
- if (this.$highlightSelectedWord && !this.$wordHighlightTimer)
|
||||||
|
- this.$wordHighlightTimer = setTimeout(function() {
|
||||||
|
- self.session.$mode.highlightSelection(self);
|
||||||
|
- self.$wordHighlightTimer = null;
|
||||||
|
- }, 30, this);
|
||||||
|
+ var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp()
|
||||||
|
};
|
||||||
|
diff --git a/lib/ace/search_highlight.js b/lib/ace/search_highlight.js
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b2df779
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/lib/ace/search_highlight.js
|
||||||
|
@@ -0,0 +1,3 @@
|
||||||
|
+new
|
||||||
|
+empty file
|
@ -0,0 +1,110 @@
|
|||||||
|
// Original source: http://www.graphviz.org/content/lion_share
|
||||||
|
##"A few people in the field of genetics are using dot to draw "marriage node diagram" pedigree drawings. Here is one I have done of a test pedigree from the FTREE pedigree drawing package (Lion Share was a racehorse)." Contributed by David Duffy.
|
||||||
|
|
||||||
|
##Command to get the layout: "dot -Tpng thisfile > thisfile.png"
|
||||||
|
|
||||||
|
digraph Ped_Lion_Share {
|
||||||
|
# page = "8.2677165,11.692913" ;
|
||||||
|
ratio = "auto" ;
|
||||||
|
mincross = 2.0 ;
|
||||||
|
label = "Pedigree Lion_Share" ;
|
||||||
|
|
||||||
|
"001" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"002" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"003" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"004" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"005" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"006" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"007" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"009" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"014" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"015" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"016" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"ZZ01" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"ZZ02" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"017" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"012" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"008" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"011" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"013" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"010" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"023" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"020" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"021" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"018" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"025" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"019" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"022" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"024" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"027" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"026" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
||||||
|
"028" [shape=box , regular=1,style=filled,fillcolor=grey ] ;
|
||||||
|
"marr0001" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"001" -> "marr0001" [dir=none,weight=1] ;
|
||||||
|
"007" -> "marr0001" [dir=none,weight=1] ;
|
||||||
|
"marr0001" -> "017" [dir=none, weight=2] ;
|
||||||
|
"marr0002" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"001" -> "marr0002" [dir=none,weight=1] ;
|
||||||
|
"ZZ02" -> "marr0002" [dir=none,weight=1] ;
|
||||||
|
"marr0002" -> "012" [dir=none, weight=2] ;
|
||||||
|
"marr0003" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"002" -> "marr0003" [dir=none,weight=1] ;
|
||||||
|
"003" -> "marr0003" [dir=none,weight=1] ;
|
||||||
|
"marr0003" -> "008" [dir=none, weight=2] ;
|
||||||
|
"marr0004" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"002" -> "marr0004" [dir=none,weight=1] ;
|
||||||
|
"006" -> "marr0004" [dir=none,weight=1] ;
|
||||||
|
"marr0004" -> "011" [dir=none, weight=2] ;
|
||||||
|
"marr0005" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"002" -> "marr0005" [dir=none,weight=1] ;
|
||||||
|
"ZZ01" -> "marr0005" [dir=none,weight=1] ;
|
||||||
|
"marr0005" -> "013" [dir=none, weight=2] ;
|
||||||
|
"marr0006" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"004" -> "marr0006" [dir=none,weight=1] ;
|
||||||
|
"009" -> "marr0006" [dir=none,weight=1] ;
|
||||||
|
"marr0006" -> "010" [dir=none, weight=2] ;
|
||||||
|
"marr0007" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"005" -> "marr0007" [dir=none,weight=1] ;
|
||||||
|
"015" -> "marr0007" [dir=none,weight=1] ;
|
||||||
|
"marr0007" -> "023" [dir=none, weight=2] ;
|
||||||
|
"marr0008" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"005" -> "marr0008" [dir=none,weight=1] ;
|
||||||
|
"016" -> "marr0008" [dir=none,weight=1] ;
|
||||||
|
"marr0008" -> "020" [dir=none, weight=2] ;
|
||||||
|
"marr0009" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"005" -> "marr0009" [dir=none,weight=1] ;
|
||||||
|
"012" -> "marr0009" [dir=none,weight=1] ;
|
||||||
|
"marr0009" -> "021" [dir=none, weight=2] ;
|
||||||
|
"marr0010" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"008" -> "marr0010" [dir=none,weight=1] ;
|
||||||
|
"017" -> "marr0010" [dir=none,weight=1] ;
|
||||||
|
"marr0010" -> "018" [dir=none, weight=2] ;
|
||||||
|
"marr0011" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"011" -> "marr0011" [dir=none,weight=1] ;
|
||||||
|
"023" -> "marr0011" [dir=none,weight=1] ;
|
||||||
|
"marr0011" -> "025" [dir=none, weight=2] ;
|
||||||
|
"marr0012" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"013" -> "marr0012" [dir=none,weight=1] ;
|
||||||
|
"014" -> "marr0012" [dir=none,weight=1] ;
|
||||||
|
"marr0012" -> "019" [dir=none, weight=2] ;
|
||||||
|
"marr0013" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"010" -> "marr0013" [dir=none,weight=1] ;
|
||||||
|
"021" -> "marr0013" [dir=none,weight=1] ;
|
||||||
|
"marr0013" -> "022" [dir=none, weight=2] ;
|
||||||
|
"marr0014" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"019" -> "marr0014" [dir=none,weight=1] ;
|
||||||
|
"020" -> "marr0014" [dir=none,weight=1] ;
|
||||||
|
"marr0014" -> "024" [dir=none, weight=2] ;
|
||||||
|
"marr0015" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"022" -> "marr0015" [dir=none,weight=1] ;
|
||||||
|
"025" -> "marr0015" [dir=none,weight=1] ;
|
||||||
|
"marr0015" -> "027" [dir=none, weight=2] ;
|
||||||
|
"marr0016" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"024" -> "marr0016" [dir=none,weight=1] ;
|
||||||
|
"018" -> "marr0016" [dir=none,weight=1] ;
|
||||||
|
"marr0016" -> "026" [dir=none, weight=2] ;
|
||||||
|
"marr0017" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
||||||
|
"026" -> "marr0017" [dir=none,weight=1] ;
|
||||||
|
"027" -> "marr0017" [dir=none,weight=1] ;
|
||||||
|
"marr0017" -> "028" [dir=none, weight=2] ;
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Cloud9 Rocks!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<table class="table">
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Size</th>
|
||||||
|
</tr>
|
||||||
|
<% if (!isRoot) { %>
|
||||||
|
<tr>
|
||||||
|
<td><a href="..">..</a></td>
|
||||||
|
<td></td></td>
|
||||||
|
</tr>
|
||||||
|
<% } %>
|
||||||
|
<% entries.forEach(function(entry) { %>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span class="glyphicon <%= entry.mime == 'directory' ? 'folder': 'file'%>"></span>
|
||||||
|
<a href="<%= entry.name %>"><%= entry.name %></a>
|
||||||
|
</td>
|
||||||
|
<td><%= entry.size %></td>
|
||||||
|
</tr>
|
||||||
|
<% }) %>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,20 @@
|
|||||||
|
%% A process whose only job is to keep a counter.
|
||||||
|
%% First version
|
||||||
|
-module(counter).
|
||||||
|
-export([start/0, codeswitch/1]).
|
||||||
|
|
||||||
|
start() -> loop(0).
|
||||||
|
|
||||||
|
loop(Sum) ->
|
||||||
|
receive
|
||||||
|
{increment, Count} ->
|
||||||
|
loop(Sum+Count);
|
||||||
|
{counter, Pid} ->
|
||||||
|
Pid ! {counter, Sum},
|
||||||
|
loop(Sum);
|
||||||
|
code_switch ->
|
||||||
|
?MODULE:codeswitch(Sum)
|
||||||
|
% Force the use of 'codeswitch/1' from the latest MODULE version
|
||||||
|
end.
|
||||||
|
|
||||||
|
codeswitch(Sum) -> loop(Sum).
|
@ -0,0 +1,41 @@
|
|||||||
|
: HELLO ( -- ) CR ." Hello, world!" ;
|
||||||
|
|
||||||
|
HELLO <cr>
|
||||||
|
Hello, world!
|
||||||
|
|
||||||
|
: [CHAR] CHAR POSTPONE LITERAL ; IMMEDIATE
|
||||||
|
|
||||||
|
0 value ii 0 value jj
|
||||||
|
0 value KeyAddr 0 value KeyLen
|
||||||
|
create SArray 256 allot \ state array of 256 bytes
|
||||||
|
: KeyArray KeyLen mod KeyAddr ;
|
||||||
|
|
||||||
|
: get_byte + c@ ;
|
||||||
|
: set_byte + c! ;
|
||||||
|
: as_byte 255 and ;
|
||||||
|
: reset_ij 0 TO ii 0 TO jj ;
|
||||||
|
: i_update 1 + as_byte TO ii ;
|
||||||
|
: j_update ii SArray get_byte + as_byte TO jj ;
|
||||||
|
: swap_s_ij
|
||||||
|
jj SArray get_byte
|
||||||
|
ii SArray get_byte jj SArray set_byte
|
||||||
|
ii SArray set_byte
|
||||||
|
;
|
||||||
|
|
||||||
|
: rc4_init ( KeyAddr KeyLen -- )
|
||||||
|
256 min TO KeyLen TO KeyAddr
|
||||||
|
256 0 DO i i SArray set_byte LOOP
|
||||||
|
reset_ij
|
||||||
|
BEGIN
|
||||||
|
ii KeyArray get_byte jj + j_update
|
||||||
|
swap_s_ij
|
||||||
|
ii 255 < WHILE
|
||||||
|
ii i_update
|
||||||
|
REPEAT
|
||||||
|
reset_ij
|
||||||
|
;
|
||||||
|
: rc4_byte
|
||||||
|
ii i_update jj j_update
|
||||||
|
swap_s_ij
|
||||||
|
ii SArray get_byte jj SArray get_byte + as_byte SArray get_byte xor
|
||||||
|
;
|
@ -0,0 +1,46 @@
|
|||||||
|
<#ftl encoding="utf-8" />
|
||||||
|
<#setting locale="en_US" />
|
||||||
|
<#import "library" as lib />
|
||||||
|
<#--
|
||||||
|
FreeMarker comment
|
||||||
|
${abc} <#assign a=12 />
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-us">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
|
||||||
|
<title>${title!"FreeMarker"}<title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>Hello ${name!""}</h1>
|
||||||
|
|
||||||
|
<p>Today is: ${.now?date}</p>
|
||||||
|
|
||||||
|
<#assign x = 13>
|
||||||
|
<#if x > 12 && x lt 14>x equals 13: ${x}</#if>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<#list items as item>
|
||||||
|
<li>${item_index}: ${item.name!?split("\n")[0]}</li>
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
User directive: <@lib.function attr1=true attr2='value' attr3=-42.12>Test</@lib.function>
|
||||||
|
<@anotherOne />
|
||||||
|
|
||||||
|
<#if variable?exists>
|
||||||
|
Deprecated
|
||||||
|
<#elseif variable??>
|
||||||
|
Better
|
||||||
|
<#else>
|
||||||
|
Default
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
<img src="images/${user.id}.png" />
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,46 @@
|
|||||||
|
<#ftl encoding="utf-8" />
|
||||||
|
<#setting locale="en_US" />
|
||||||
|
<#import "library" as lib />
|
||||||
|
<#--
|
||||||
|
FreeMarker comment
|
||||||
|
${abc} <#assign a=12 />
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-us">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
|
||||||
|
<title>${title!"FreeMarker"}<title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>Hello ${name!""}</h1>
|
||||||
|
|
||||||
|
<p>Today is: ${.now?date}</p>
|
||||||
|
|
||||||
|
<#assign x = 13>
|
||||||
|
<#if x > 12 && x lt 14>x equals 13: ${x}</#if>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<#list items as item>
|
||||||
|
<li>${item_index}: ${item.name!?split("\n")[0]}</li>
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
User directive: <@lib.function attr1=true attr2='value' attr3=-42.12>Test</@lib.function>
|
||||||
|
<@anotherOne />
|
||||||
|
|
||||||
|
<#if variable?exists>
|
||||||
|
Deprecated
|
||||||
|
<#elseif variable??>
|
||||||
|
Better
|
||||||
|
<#else>
|
||||||
|
Default
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
<img src="images/${user.id}.png" />
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
@these @are @tags
|
||||||
|
Feature: Serve coffee
|
||||||
|
Coffee should not be served until paid for
|
||||||
|
Coffee should not be served until the button has been pressed
|
||||||
|
If there is no coffee left then money should be refunded
|
||||||
|
|
||||||
|
Scenario Outline: Eating
|
||||||
|
Given there are <start> cucumbers
|
||||||
|
When I eat <eat> cucumbers
|
||||||
|
Then I should have <left> cucumbers
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
| start | eat | left |
|
||||||
|
| 12 | 5 | 7 |
|
||||||
|
| 20 | 5 | 15 |
|
||||||
|
|
||||||
|
Scenario: Buy last coffee
|
||||||
|
Given there are 1 coffees left in the machine
|
||||||
|
And I have deposited 1$
|
||||||
|
When I press the coffee button
|
||||||
|
Then I should be served a "coffee"
|
||||||
|
|
||||||
|
# this a comment
|
||||||
|
|
||||||
|
"""
|
||||||
|
this is a
|
||||||
|
pystring
|
||||||
|
"""
|
@ -0,0 +1,20 @@
|
|||||||
|
uniform float amplitude;
|
||||||
|
attribute float displacement;
|
||||||
|
varying vec3 vNormal;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
|
||||||
|
vNormal = normal;
|
||||||
|
|
||||||
|
// multiply our displacement by the
|
||||||
|
// amplitude. The amp will get animated
|
||||||
|
// so we'll have animated displacement
|
||||||
|
vec3 newPosition = position +
|
||||||
|
normal *
|
||||||
|
vec3(displacement *
|
||||||
|
amplitude);
|
||||||
|
|
||||||
|
gl_Position = projectionMatrix *
|
||||||
|
modelViewMatrix *
|
||||||
|
vec4(newPosition,1.0);
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
// Concurrent computation of pi.
|
||||||
|
// See http://goo.gl/ZuTZM.
|
||||||
|
//
|
||||||
|
// This demonstrates Go's ability to handle
|
||||||
|
// large numbers of concurrent processes.
|
||||||
|
// It is an unreasonable way to calculate pi.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"math"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println(pi(5000))
|
||||||
|
}
|
||||||
|
|
||||||
|
// pi launches n goroutines to compute an
|
||||||
|
// approximation of pi.
|
||||||
|
func pi(n int) float64 {
|
||||||
|
ch := make(chan float64)
|
||||||
|
for k := 0; k <= n; k++ {
|
||||||
|
go term(ch, float64(k))
|
||||||
|
}
|
||||||
|
f := 0.0
|
||||||
|
for k := 0; k <= n; k++ {
|
||||||
|
f += <-ch
|
||||||
|
}
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
|
||||||
|
func term(ch chan float64, k float64) {
|
||||||
|
ch <- 4 * math.Pow(-1, k) / (2*k + 1)
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
//http://groovy.codehaus.org/Martin+Fowler%27s+closure+examples+in+Groovy
|
||||||
|
|
||||||
|
class Employee {
|
||||||
|
def name, salary
|
||||||
|
boolean manager
|
||||||
|
String toString() { return name }
|
||||||
|
}
|
||||||
|
|
||||||
|
def emps = [new Employee(name:'Guillaume', manager:true, salary:200),
|
||||||
|
new Employee(name:'Graeme', manager:true, salary:200),
|
||||||
|
new Employee(name:'Dierk', manager:false, salary:151),
|
||||||
|
new Employee(name:'Bernd', manager:false, salary:50)]
|
||||||
|
|
||||||
|
def managers(emps) {
|
||||||
|
emps.findAll { e -> e.isManager() }
|
||||||
|
}
|
||||||
|
|
||||||
|
assert emps[0..1] == managers(emps) // [Guillaume, Graeme]
|
||||||
|
|
||||||
|
def highPaid(emps) {
|
||||||
|
threshold = 150
|
||||||
|
emps.findAll { e -> e.salary > threshold }
|
||||||
|
}
|
||||||
|
|
||||||
|
assert emps[0..2] == highPaid(emps) // [Guillaume, Graeme, Dierk]
|
||||||
|
|
||||||
|
def paidMore(amount) {
|
||||||
|
{ e -> e.salary > amount}
|
||||||
|
}
|
||||||
|
def highPaid = paidMore(150)
|
||||||
|
|
||||||
|
assert highPaid(emps[0]) // true
|
||||||
|
assert emps[0..2] == emps.findAll(highPaid)
|
||||||
|
|
||||||
|
def filename = 'test.txt'
|
||||||
|
new File(filename).withReader{ reader -> doSomethingWith(reader) }
|
||||||
|
|
||||||
|
def readersText
|
||||||
|
def doSomethingWith(reader) { readersText = reader.text }
|
||||||
|
|
||||||
|
assert new File(filename).text == readersText
|
@ -0,0 +1,36 @@
|
|||||||
|
!!!5
|
||||||
|
|
||||||
|
# <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
|
||||||
|
# <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
|
||||||
|
# <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
|
||||||
|
# <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
||||||
|
|
||||||
|
|
||||||
|
/adasdasdad
|
||||||
|
%div{:id => "#{@item.type}_#{@item.number}", :class => '#{@item.type} #{@item.urgency}', :phoney => `asdasdasd`}
|
||||||
|
/ file: app/views/movies/index.html.haml
|
||||||
|
\d
|
||||||
|
%ads:{:bleh => 33}
|
||||||
|
%p==ddd==
|
||||||
|
Date/Time:
|
||||||
|
- now = DateTime.now
|
||||||
|
%strong= now
|
||||||
|
= if now DateTime.parse("December 31, 2006")
|
||||||
|
= "Happy new " + "year!"
|
||||||
|
%sfd.dfdfg
|
||||||
|
#content
|
||||||
|
.title
|
||||||
|
%h1= @title
|
||||||
|
= link_to 'Home', home_url
|
||||||
|
|
||||||
|
#contents
|
||||||
|
%div#content
|
||||||
|
%div.articles
|
||||||
|
%div.article.title Blah
|
||||||
|
%div.article.date 2006-11-05
|
||||||
|
%div.article.entry
|
||||||
|
Neil Patrick Harris
|
||||||
|
|
||||||
|
%div[@user, :greeting]
|
||||||
|
%bar[290]/
|
||||||
|
==Hello!==
|
@ -0,0 +1,8 @@
|
|||||||
|
{{!-- Ace + :-}} --}}
|
||||||
|
|
||||||
|
<div id="comments">
|
||||||
|
{{#each comments}}
|
||||||
|
<h2><a href="/posts/{{../permalink}}#{{id}}">{{title}}</a></h2>
|
||||||
|
<div>{{body}}</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
@ -0,0 +1,20 @@
|
|||||||
|
-- Type annotation (optional)
|
||||||
|
fib :: Int -> Integer
|
||||||
|
|
||||||
|
-- With self-referencing data
|
||||||
|
fib n = fibs !! n
|
||||||
|
where fibs = 0 : scanl (+) 1 fibs
|
||||||
|
-- 0,1,1,2,3,5,...
|
||||||
|
|
||||||
|
-- Same, coded directly
|
||||||
|
fib n = fibs !! n
|
||||||
|
where fibs = 0 : 1 : next fibs
|
||||||
|
next (a : t@(b:_)) = (a+b) : next t
|
||||||
|
|
||||||
|
-- Similar idea, using zipWith
|
||||||
|
fib n = fibs !! n
|
||||||
|
where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
|
||||||
|
|
||||||
|
-- Using a generator function
|
||||||
|
fib n = fibs (0,1) !! n
|
||||||
|
where fibs (a,b) = a : fibs (b,a+b)
|
@ -0,0 +1,10 @@
|
|||||||
|
Redirect /linux http://www.linux.org
|
||||||
|
Redirect 301 /kernel http://www.linux.org
|
||||||
|
|
||||||
|
# comment
|
||||||
|
RewriteEngine on
|
||||||
|
|
||||||
|
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
|
||||||
|
RewriteRule ^/$ /homepage.max.html [L]
|
||||||
|
|
||||||
|
RewriteRule ^/$ /homepage.std.html [L]
|
@ -0,0 +1,17 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
.text-layer {
|
||||||
|
font-family: Monaco, "Courier New", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
cursor: text;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 style="color:red">Juhu Kinners</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,26 @@
|
|||||||
|
<h1>Listing Books</h1>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Title</th>
|
||||||
|
<th>Summary</th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% @books.each do |book| %>
|
||||||
|
<tr>
|
||||||
|
<%# comment %>
|
||||||
|
<td><%= book.title %></td>
|
||||||
|
<td><%= book.content %></td>
|
||||||
|
<td><%= link_to 'Show', book %></td>
|
||||||
|
<td><%= link_to 'Edit', edit_book_path(book) %></td>
|
||||||
|
<td><%= link_to 'Remove', book, :confirm => 'Are you sure?', :method => :delete %></td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<%= link_to 'New book', new_book_path %>
|
@ -0,0 +1,4 @@
|
|||||||
|
[.ShellClassInfo]
|
||||||
|
IconResource=..\logo.png
|
||||||
|
[ViewState]
|
||||||
|
FolderType=Generic
|
@ -0,0 +1,45 @@
|
|||||||
|
!!!doctype
|
||||||
|
!!!5
|
||||||
|
!!!
|
||||||
|
|
||||||
|
include something
|
||||||
|
|
||||||
|
include another_thing
|
||||||
|
|
||||||
|
// let's talk about it
|
||||||
|
|
||||||
|
//
|
||||||
|
here it is. a block comment!
|
||||||
|
and another row!
|
||||||
|
but not here.
|
||||||
|
|
||||||
|
//
|
||||||
|
a far spaced
|
||||||
|
should be lack of block
|
||||||
|
|
||||||
|
// also not a comment
|
||||||
|
div.attemptAtBlock
|
||||||
|
|
||||||
|
span#myName
|
||||||
|
|
||||||
|
#{implicit}
|
||||||
|
!{more_explicit}
|
||||||
|
|
||||||
|
#idDiv
|
||||||
|
|
||||||
|
.idDiv
|
||||||
|
|
||||||
|
test(id="tag")
|
||||||
|
header(id="tag", blah="foo", meh="aads")
|
||||||
|
mixin article(obj, parents)
|
||||||
|
|
||||||
|
mixin bleh()
|
||||||
|
|
||||||
|
mixin clever-name
|
||||||
|
|
||||||
|
-var x = "0";
|
||||||
|
- y each z
|
||||||
|
|
||||||
|
- var items = ["one", "two", "three"]
|
||||||
|
each item in items
|
||||||
|
li= item
|
@ -0,0 +1,15 @@
|
|||||||
|
public class InfiniteLoop {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This will cause the program to hang...
|
||||||
|
*
|
||||||
|
* Taken from:
|
||||||
|
* http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
double d = Double.parseDouble("2.2250738585072012e-308");
|
||||||
|
|
||||||
|
// unreachable code
|
||||||
|
System.out.println("Value: " + d);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
function foo(items, nada) {
|
||||||
|
for (var i=0; i<items.length; i++) {
|
||||||
|
alert(items[i] + "juhu\n");
|
||||||
|
} // Real Tab.
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"query": {
|
||||||
|
"count": 10,
|
||||||
|
"created": "2011-06-21T08:10:46Z",
|
||||||
|
"lang": "en-US",
|
||||||
|
"results": {
|
||||||
|
"photo": [
|
||||||
|
{
|
||||||
|
"farm": "6",
|
||||||
|
"id": "5855620975",
|
||||||
|
"isfamily": "0",
|
||||||
|
"isfriend": "0",
|
||||||
|
"ispublic": "1",
|
||||||
|
"owner": "32021554@N04",
|
||||||
|
"secret": "f1f5e8515d",
|
||||||
|
"server": "5110",
|
||||||
|
"title": "7087 bandit cat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"farm": "4",
|
||||||
|
"id": "5856170534",
|
||||||
|
"isfamily": "0",
|
||||||
|
"isfriend": "0",
|
||||||
|
"ispublic": "1",
|
||||||
|
"owner": "32021554@N04",
|
||||||
|
"secret": "ff1efb2a6f",
|
||||||
|
"server": "3217",
|
||||||
|
"title": "6975 rusty cat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"farm": "6",
|
||||||
|
"id": "5856172972",
|
||||||
|
"isfamily": "0",
|
||||||
|
"isfriend": "0",
|
||||||
|
"ispublic": "1",
|
||||||
|
"owner": "51249875@N03",
|
||||||
|
"secret": "6c6887347c",
|
||||||
|
"server": "5192",
|
||||||
|
"title": "watermarked-cats"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"farm": "6",
|
||||||
|
"id": "5856168328",
|
||||||
|
"isfamily": "0",
|
||||||
|
"isfriend": "0",
|
||||||
|
"ispublic": "1",
|
||||||
|
"owner": "32021554@N04",
|
||||||
|
"secret": "0c1cfdf64c",
|
||||||
|
"server": "5078",
|
||||||
|
"title": "7020 mandy cat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"farm": "3",
|
||||||
|
"id": "5856171774",
|
||||||
|
"isfamily": "0",
|
||||||
|
"isfriend": "0",
|
||||||
|
"ispublic": "1",
|
||||||
|
"owner": "32021554@N04",
|
||||||
|
"secret": "7f5a3180ab",
|
||||||
|
"server": "2696",
|
||||||
|
"title": "7448 bobby cat"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
TODO
|
@ -0,0 +1,46 @@
|
|||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
var x = "abc";
|
||||||
|
function y {
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.class {
|
||||||
|
background: #124356;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Today's date: <%= (new java.util.Date()).toLocaleString()%>
|
||||||
|
</p>
|
||||||
|
<%! int i = 0; %>
|
||||||
|
<jsp:declaration>
|
||||||
|
int j = 10;
|
||||||
|
</jsp:declaration>
|
||||||
|
|
||||||
|
<%-- This is JSP comment --%>
|
||||||
|
<%@ directive attribute="value" %>
|
||||||
|
|
||||||
|
<h2>Select Languages:</h2>
|
||||||
|
|
||||||
|
<form ACTION="jspCheckBox.jsp">
|
||||||
|
<input type="checkbox" name="id" value="Java"> Java<BR>
|
||||||
|
<input type="checkbox" name="id" value=".NET"> .NET<BR>
|
||||||
|
<input type="checkbox" name="id" value="PHP"> PHP<BR>
|
||||||
|
<input type="checkbox" name="id" value="C/C++"> C/C++<BR>
|
||||||
|
<input type="checkbox" name="id" value="PERL"> PERL <BR>
|
||||||
|
<input type="submit" value="Submit">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String select[] = request.getParameterValues("id");
|
||||||
|
if (select != null && select.length != 0) {
|
||||||
|
out.println("You have selected: ");
|
||||||
|
for (int i = 0; i < select.length; i++) {
|
||||||
|
out.println(select[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,9 @@
|
|||||||
|
/*EXPECTED
|
||||||
|
hello world!
|
||||||
|
*/
|
||||||
|
class Test {
|
||||||
|
static function run() : void {
|
||||||
|
// console.log("hello world!");
|
||||||
|
log "hello world!";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
\usepackage{amsmath}
|
||||||
|
\title{\LaTeX}
|
||||||
|
\date{}
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
\LaTeX{} is a document preparation system for the \TeX{}
|
||||||
|
typesetting program. It offers programmable desktop publishing
|
||||||
|
features and extensive facilities for automating most aspects of
|
||||||
|
typesetting and desktop publishing, including numbering and
|
||||||
|
cross-referencing, tables and figures, page layout, bibliographies,
|
||||||
|
and much more. \LaTeX{} was originally written in 1984 by Leslie
|
||||||
|
Lamport and has become the dominant method for using \TeX; few
|
||||||
|
people write in plain \TeX{} anymore. The current version is
|
||||||
|
\LaTeXe.
|
||||||
|
|
||||||
|
% This is a comment; it will not be shown in the final output.
|
||||||
|
% The following shows a little of the typesetting power of LaTeX:
|
||||||
|
\begin{align}
|
||||||
|
E &= mc^2 \\
|
||||||
|
m &= \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}
|
||||||
|
\end{align}
|
||||||
|
\end{document}
|
@ -0,0 +1,28 @@
|
|||||||
|
/* styles.less */
|
||||||
|
|
||||||
|
@base: #f938ab;
|
||||||
|
|
||||||
|
.box-shadow(@style, @c) when (iscolor(@c)) {
|
||||||
|
box-shadow: @style @c;
|
||||||
|
-webkit-box-shadow: @style @c;
|
||||||
|
-moz-box-shadow: @style @c;
|
||||||
|
}
|
||||||
|
.box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {
|
||||||
|
.box-shadow(@style, rgba(0, 0, 0, @alpha));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Box styles
|
||||||
|
.box {
|
||||||
|
color: saturate(@base, 5%);
|
||||||
|
border-color: lighten(@base, 30%);
|
||||||
|
|
||||||
|
div { .box-shadow(0 0 5px, 30%) }
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: @base;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: lighten(@base, 50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,76 @@
|
|||||||
|
The following examples can be found in full at http://liquidmarkup.org/
|
||||||
|
|
||||||
|
Liquid is an extraction from the e-commerce system Shopify.
|
||||||
|
Shopify powers many thousands of e-commerce stores which all call for unique designs.
|
||||||
|
For this we developed Liquid which allows our customers complete design freedom while
|
||||||
|
maintaining the integrity of our servers.
|
||||||
|
|
||||||
|
Liquid has been in production use since June 2006 and is now used by many other
|
||||||
|
hosted web applications.
|
||||||
|
|
||||||
|
It was developed for usage in Ruby on Rails web applications and integrates seamlessly
|
||||||
|
as a plugin but it also works excellently as a stand alone library.
|
||||||
|
|
||||||
|
Here's what it looks like:
|
||||||
|
|
||||||
|
<ul id="products">
|
||||||
|
{% for product in products %}
|
||||||
|
<li>
|
||||||
|
<h2>{{ product.title }}</h2>
|
||||||
|
Only {{ product.price | format_as_money }}
|
||||||
|
|
||||||
|
<p>{{ product.description | prettyprint | truncate: 200 }}</p>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
Some more features include:
|
||||||
|
|
||||||
|
<h2>Filters</h2>
|
||||||
|
<p> The word "tobi" in uppercase: {{ 'tobi' | upcase }} </p>
|
||||||
|
<p>The word "tobi" has {{ 'tobi' | size }} letters! </p>
|
||||||
|
<p>Change "Hello world" to "Hi world": {{ 'Hello world' | replace: 'Hello', 'Hi' }} </p>
|
||||||
|
<p>The date today is {{ 'now' | date: "%Y %b %d" }} </p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>If</h2>
|
||||||
|
<p>
|
||||||
|
{% if user.name == 'tobi' or user.name == 'marc' %}
|
||||||
|
hi marc or tobi
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Case</h2>
|
||||||
|
<p>
|
||||||
|
{% case template %}
|
||||||
|
{% when 'index' %}
|
||||||
|
Welcome
|
||||||
|
{% when 'product' %}
|
||||||
|
{{ product.vendor | link_to_vendor }} / {{ product.title }}
|
||||||
|
{% else %}
|
||||||
|
{{ page_title }}
|
||||||
|
{% endcase %}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>For Loops</h2>
|
||||||
|
<p>
|
||||||
|
{% for item in array %}
|
||||||
|
{{ item }}
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Tables</h2>
|
||||||
|
<p>
|
||||||
|
{% tablerow item in items cols: 3 %}
|
||||||
|
{% if tablerowloop.col_first %}
|
||||||
|
First column: {{ item.variable }}
|
||||||
|
{% else %}
|
||||||
|
Different column: {{ item.variable }}
|
||||||
|
{% endif %}
|
||||||
|
{% endtablerow %}
|
||||||
|
</p>
|
@ -0,0 +1,22 @@
|
|||||||
|
(defun prompt-for-cd ()
|
||||||
|
"Prompts
|
||||||
|
for CD"
|
||||||
|
(prompt-read "Title" 1.53 1 2/4 1.7 1.7e0 2.9E-4 +42 -7 #b001 #b001/100 #o777 #O777 #xabc55 #c(0 -5.6))
|
||||||
|
(prompt-read "Artist" &rest)
|
||||||
|
(or (parse-integer (prompt-read "Rating") :junk-allowed t) 0)
|
||||||
|
(if x (format t "yes") (format t "no" nil) ;and here comment
|
||||||
|
) 0xFFLL -23ull
|
||||||
|
;; second line comment
|
||||||
|
'(+ 1 2)
|
||||||
|
(defvar *lines*) ; list of all lines
|
||||||
|
(position-if-not #'sys::whitespacep line :start beg))
|
||||||
|
(quote (privet 1 2 3))
|
||||||
|
'(hello world)
|
||||||
|
(* 5 7)
|
||||||
|
(1 2 34 5)
|
||||||
|
(:use "aaaa")
|
||||||
|
(let ((x 10) (y 20))
|
||||||
|
(print (+ x y))
|
||||||
|
) LAmbDa
|
||||||
|
|
||||||
|
"asdad\0eqweqe"
|
@ -0,0 +1,245 @@
|
|||||||
|
# Defines an editing mode for [Ace](http://ace.ajax.org).
|
||||||
|
#
|
||||||
|
# Open [test/ace.html](../test/ace.html) to test.
|
||||||
|
|
||||||
|
require, exports, module <-! define \ace/mode/ls
|
||||||
|
|
||||||
|
identifier = /(?![\d\s])[$\w\xAA-\uFFDC](?:(?!\s)[$\w\xAA-\uFFDC]|-[A-Za-z])*/$
|
||||||
|
|
||||||
|
exports.Mode = class LiveScriptMode extends require(\ace/mode/text)Mode
|
||||||
|
->
|
||||||
|
@$tokenizer =
|
||||||
|
new (require \ace/tokenizer)Tokenizer LiveScriptMode.Rules
|
||||||
|
if require \ace/mode/matching_brace_outdent
|
||||||
|
@$outdent = new that.MatchingBraceOutdent
|
||||||
|
|
||||||
|
indenter = // (?
|
||||||
|
: [({[=:]
|
||||||
|
| [-~]>
|
||||||
|
| \b (?: e(?:lse|xport) | d(?:o|efault) | t(?:ry|hen) | finally |
|
||||||
|
import (?:\s* all)? | const | var |
|
||||||
|
let | new | catch (?:\s* #identifier)? )
|
||||||
|
) \s* $ //
|
||||||
|
|
||||||
|
getNextLineIndent: (state, line, tab) ->
|
||||||
|
indent = @$getIndent line
|
||||||
|
{tokens} = @$tokenizer.getLineTokens line, state
|
||||||
|
unless tokens.length and tokens[*-1]type is \comment
|
||||||
|
indent += tab if state is \start and indenter.test line
|
||||||
|
indent
|
||||||
|
|
||||||
|
toggleCommentLines: (state, doc, startRow, endRow) ->
|
||||||
|
comment = /^(\s*)#/; range = new (require \ace/range)Range 0 0 0 0
|
||||||
|
for i from startRow to endRow
|
||||||
|
if out = comment.test line = doc.getLine i
|
||||||
|
then line.=replace comment, \$1
|
||||||
|
else line.=replace /^\s*/ \$&#
|
||||||
|
range.end.row = range.start.row = i
|
||||||
|
range.end.column = line.length + 1
|
||||||
|
doc.replace range, line
|
||||||
|
1 - out * 2
|
||||||
|
|
||||||
|
checkOutdent: (state, line, input) -> @$outdent?checkOutdent line, input
|
||||||
|
|
||||||
|
autoOutdent: (state, doc, row) -> @$outdent?autoOutdent doc, row
|
||||||
|
|
||||||
|
### Highlight Rules
|
||||||
|
|
||||||
|
keywordend = /(?![$\w]|-[A-Za-z]|\s*:(?![:=]))/$
|
||||||
|
stringfill = token: \string, regex: '.+'
|
||||||
|
|
||||||
|
LiveScriptMode.Rules =
|
||||||
|
start:
|
||||||
|
* token: \keyword
|
||||||
|
regex: //(?
|
||||||
|
:t(?:h(?:is|row|en)|ry|ypeof!?)
|
||||||
|
|c(?:on(?:tinue|st)|a(?:se|tch)|lass)
|
||||||
|
|i(?:n(?:stanceof)?|mp(?:ort(?:\s+all)?|lements)|[fs])
|
||||||
|
|d(?:e(?:fault|lete|bugger)|o)
|
||||||
|
|f(?:or(?:\s+own)?|inally|unction)
|
||||||
|
|s(?:uper|witch)
|
||||||
|
|e(?:lse|x(?:tends|port)|val)
|
||||||
|
|a(?:nd|rguments)
|
||||||
|
|n(?:ew|ot)
|
||||||
|
|un(?:less|til)
|
||||||
|
|w(?:hile|ith)
|
||||||
|
|o[fr]|return|break|let|var|loop
|
||||||
|
)//$ + keywordend
|
||||||
|
|
||||||
|
* token: \constant.language
|
||||||
|
regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend
|
||||||
|
|
||||||
|
* token: \invalid.illegal
|
||||||
|
regex: '(?
|
||||||
|
:p(?:ackage|r(?:ivate|otected)|ublic)
|
||||||
|
|i(?:mplements|nterface)
|
||||||
|
|enum|static|yield
|
||||||
|
)' + keywordend
|
||||||
|
|
||||||
|
* token: \language.support.class
|
||||||
|
regex: '(?
|
||||||
|
:R(?:e(?:gExp|ferenceError)|angeError)
|
||||||
|
|S(?:tring|yntaxError)
|
||||||
|
|E(?:rror|valError)
|
||||||
|
|Array|Boolean|Date|Function|Number|Object|TypeError|URIError
|
||||||
|
)' + keywordend
|
||||||
|
|
||||||
|
* token: \language.support.function
|
||||||
|
regex: '(?
|
||||||
|
:is(?:NaN|Finite)
|
||||||
|
|parse(?:Int|Float)
|
||||||
|
|Math|JSON
|
||||||
|
|(?:en|de)codeURI(?:Component)?
|
||||||
|
)' + keywordend
|
||||||
|
|
||||||
|
* token: \variable.language
|
||||||
|
regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend
|
||||||
|
|
||||||
|
* token: \identifier
|
||||||
|
regex: identifier + /\s*:(?![:=])/$
|
||||||
|
|
||||||
|
* token: \variable
|
||||||
|
regex: identifier
|
||||||
|
|
||||||
|
* token: \keyword.operator
|
||||||
|
regex: /(?:\.{3}|\s+\?)/$
|
||||||
|
|
||||||
|
* token: \keyword.variable
|
||||||
|
regex: /(?:@+|::|\.\.)/$
|
||||||
|
next : \key
|
||||||
|
|
||||||
|
* token: \keyword.operator
|
||||||
|
regex: /\.\s*/$
|
||||||
|
next : \key
|
||||||
|
|
||||||
|
* token: \string
|
||||||
|
regex: /\\\S[^\s,;)}\]]*/$
|
||||||
|
|
||||||
|
* token: \string.doc
|
||||||
|
regex: \'''
|
||||||
|
next : \qdoc
|
||||||
|
|
||||||
|
* token: \string.doc
|
||||||
|
regex: \"""
|
||||||
|
next : \qqdoc
|
||||||
|
|
||||||
|
* token: \string
|
||||||
|
regex: \'
|
||||||
|
next : \qstring
|
||||||
|
|
||||||
|
* token: \string
|
||||||
|
regex: \"
|
||||||
|
next : \qqstring
|
||||||
|
|
||||||
|
* token: \string
|
||||||
|
regex: \`
|
||||||
|
next : \js
|
||||||
|
|
||||||
|
* token: \string
|
||||||
|
regex: '<\\['
|
||||||
|
next : \words
|
||||||
|
|
||||||
|
* token: \string.regex
|
||||||
|
regex: \//
|
||||||
|
next : \heregex
|
||||||
|
|
||||||
|
* token: \comment.doc
|
||||||
|
regex: '/\\*'
|
||||||
|
next : \comment
|
||||||
|
|
||||||
|
* token: \comment
|
||||||
|
regex: '#.*'
|
||||||
|
|
||||||
|
* token: \string.regex
|
||||||
|
regex: //
|
||||||
|
/(?: [^ [ / \n \\ ]*
|
||||||
|
(?: (?: \\.
|
||||||
|
| \[ [^\]\n\\]* (?:\\.[^\]\n\\]*)* \]
|
||||||
|
) [^ [ / \n \\ ]*
|
||||||
|
)*
|
||||||
|
)/ [gimy$]{0,4}
|
||||||
|
//$
|
||||||
|
next : \key
|
||||||
|
|
||||||
|
* token: \constant.numeric
|
||||||
|
regex: '(?:0x[\\da-fA-F][\\da-fA-F_]*
|
||||||
|
|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*
|
||||||
|
|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)
|
||||||
|
(?:e[+-]?\\d[\\d_]*)?[\\w$]*)'
|
||||||
|
|
||||||
|
* token: \lparen
|
||||||
|
regex: '[({[]'
|
||||||
|
|
||||||
|
* token: \rparen
|
||||||
|
regex: '[)}\\]]'
|
||||||
|
next : \key
|
||||||
|
|
||||||
|
* token: \keyword.operator
|
||||||
|
regex: \\\S+
|
||||||
|
|
||||||
|
* token: \text
|
||||||
|
regex: \\\s+
|
||||||
|
|
||||||
|
heregex:
|
||||||
|
* token: \string.regex
|
||||||
|
regex: '.*?//[gimy$?]{0,4}'
|
||||||
|
next : \start
|
||||||
|
* token: \string.regex
|
||||||
|
regex: '\\s*#{'
|
||||||
|
* token: \comment.regex
|
||||||
|
regex: '\\s+(?:#.*)?'
|
||||||
|
* token: \string.regex
|
||||||
|
regex: '\\S+'
|
||||||
|
|
||||||
|
key:
|
||||||
|
* token: \keyword.operator
|
||||||
|
regex: '[.?@!]+'
|
||||||
|
* token: \identifier
|
||||||
|
regex: identifier
|
||||||
|
next : \start
|
||||||
|
* token: \text
|
||||||
|
regex: '.'
|
||||||
|
next : \start
|
||||||
|
|
||||||
|
comment:
|
||||||
|
* token: \comment.doc
|
||||||
|
regex: '.*?\\*/'
|
||||||
|
next : \start
|
||||||
|
* token: \comment.doc
|
||||||
|
regex: '.+'
|
||||||
|
|
||||||
|
qdoc:
|
||||||
|
token: \string
|
||||||
|
regex: ".*?'''"
|
||||||
|
next : \key
|
||||||
|
stringfill
|
||||||
|
|
||||||
|
qqdoc:
|
||||||
|
token: \string
|
||||||
|
regex: '.*?"""'
|
||||||
|
next : \key
|
||||||
|
stringfill
|
||||||
|
|
||||||
|
qstring:
|
||||||
|
token: \string
|
||||||
|
regex: /[^\\']*(?:\\.[^\\']*)*'/$
|
||||||
|
next : \key
|
||||||
|
stringfill
|
||||||
|
|
||||||
|
qqstring:
|
||||||
|
token: \string
|
||||||
|
regex: /[^\\"]*(?:\\.[^\\"]*)*"/$
|
||||||
|
next : \key
|
||||||
|
stringfill
|
||||||
|
|
||||||
|
js:
|
||||||
|
token: \string
|
||||||
|
regex: /[^\\`]*(?:\\.[^\\`]*)*`/$
|
||||||
|
next : \key
|
||||||
|
stringfill
|
||||||
|
|
||||||
|
words:
|
||||||
|
token: \string
|
||||||
|
regex: '.*?\\]>'
|
||||||
|
next : \key
|
||||||
|
stringfill
|
@ -0,0 +1,16 @@
|
|||||||
|
// ancestors
|
||||||
|
parentof("douglas", "john").
|
||||||
|
parentof("john", "bob").
|
||||||
|
parentof("bob", "ebbon").
|
||||||
|
|
||||||
|
parentof("douglas", "jane").
|
||||||
|
parentof("jane", "jan").
|
||||||
|
|
||||||
|
ancestorof(A, B) <- parentof(A, B).
|
||||||
|
ancestorof(A, C) <- ancestorof(A, B), parentof(B,C).
|
||||||
|
|
||||||
|
grandparentof(A, B) <- parentof(A, C), parentof(C, B).
|
||||||
|
|
||||||
|
cousins(A,B) <- grandparentof(C,A), grandparentof(C,B).
|
||||||
|
|
||||||
|
parentof[`arg](A, B) -> int[32](A), !string(B).
|
@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
Testing syntax highlighting
|
||||||
|
of Ace Editor
|
||||||
|
for the Linden Scripting Language
|
||||||
|
*/
|
||||||
|
|
||||||
|
integer someIntNormal = 3672;
|
||||||
|
integer someIntHex = 0x00000000;
|
||||||
|
integer someIntMath = PI_BY_TWO;
|
||||||
|
|
||||||
|
integer event = 5673; // invalid.illegal
|
||||||
|
|
||||||
|
key someKeyTexture = TEXTURE_DEFAULT;
|
||||||
|
string someStringSpecial = EOF;
|
||||||
|
|
||||||
|
some_user_defined_function_without_return_type(string inputAsString)
|
||||||
|
{
|
||||||
|
llSay(PUBLIC_CHANNEL, inputAsString);
|
||||||
|
}
|
||||||
|
|
||||||
|
string user_defined_function_returning_a_string(key inputAsKey)
|
||||||
|
{
|
||||||
|
return (string)inputAsKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
state_entry()
|
||||||
|
{
|
||||||
|
key someKey = NULL_KEY;
|
||||||
|
someKey = llGetOwner();
|
||||||
|
|
||||||
|
string someString = user_defined_function_returning_a_string(someKey);
|
||||||
|
|
||||||
|
some_user_defined_function_without_return_type(someString);
|
||||||
|
}
|
||||||
|
|
||||||
|
touch_start(integer num_detected)
|
||||||
|
{
|
||||||
|
list agentsInRegion = llGetAgentList(AGENT_LIST_REGION, []);
|
||||||
|
integer numOfAgents = llGetListLength(agentsInRegion);
|
||||||
|
|
||||||
|
integer index; // defaults to 0
|
||||||
|
for (; index <= numOfAgents - 1; index++) // for each agent in region
|
||||||
|
{
|
||||||
|
llRegionSayTo(llList2Key(agentsInRegion, index), PUBLIC_CHANNEL, "Hello, Avatar!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
touch_end(integer num_detected)
|
||||||
|
{
|
||||||
|
someIntNormal = 3672;
|
||||||
|
someIntHex = 0x00000000;
|
||||||
|
someIntMath = PI_BY_TWO;
|
||||||
|
|
||||||
|
event = 5673; // invalid.illegal
|
||||||
|
|
||||||
|
someKeyTexture = TEXTURE_DEFAULT;
|
||||||
|
someStringSpecial = EOF;
|
||||||
|
|
||||||
|
llSetInventoryPermMask("some item", MASK_NEXT, PERM_ALL); // reserved.godmode
|
||||||
|
|
||||||
|
llWhisper(PUBLIC_CHANNEL, "Leaving \"default\" now...");
|
||||||
|
state other;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
state other
|
||||||
|
{
|
||||||
|
state_entry()
|
||||||
|
{
|
||||||
|
llWhisper(PUBLIC_CHANNEL, "Entered \"state other\", returning to \"default\" again...");
|
||||||
|
state default;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
--[[--
|
||||||
|
num_args takes in 5.1 byte code and extracts the number of arguments
|
||||||
|
from its function header.
|
||||||
|
--]]--
|
||||||
|
|
||||||
|
function int(t)
|
||||||
|
return t:byte(1)+t:byte(2)*0x100+t:byte(3)*0x10000+t:byte(4)*0x1000000
|
||||||
|
end
|
||||||
|
|
||||||
|
function num_args(func)
|
||||||
|
local dump = string.dump(func)
|
||||||
|
local offset, cursor = int(dump:sub(13)), offset + 26
|
||||||
|
--Get the params and var flag (whether there's a ... in the param)
|
||||||
|
return dump:sub(cursor):byte(), dump:sub(cursor+1):byte()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Usage:
|
||||||
|
num_args(function(a,b,c,d, ...) end) -- return 4, 7
|
||||||
|
|
||||||
|
-- Python styled string format operator
|
||||||
|
local gm = debug.getmetatable("")
|
||||||
|
|
||||||
|
gm.__mod=function(self, other)
|
||||||
|
if type(other) ~= "table" then other = {other} end
|
||||||
|
for i,v in ipairs(other) do other[i] = tostring(v) end
|
||||||
|
return self:format(unpack(other))
|
||||||
|
end
|
||||||
|
|
||||||
|
print([===[
|
||||||
|
blah blah %s, (%d %d)
|
||||||
|
]===]%{"blah", num_args(int)})
|
||||||
|
|
||||||
|
--[=[--
|
||||||
|
table.maxn is deprecated, use # instead.
|
||||||
|
--]=]--
|
||||||
|
print(table.maxn{1,2,[4]=4,[8]=8) -- outputs 8 instead of 2
|
||||||
|
|
||||||
|
print(5 --[[ blah ]])
|
@ -0,0 +1,71 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html>
|
||||||
|
<% --[[--
|
||||||
|
index.lp from the Kepler Project's LuaDoc HTML doclet.
|
||||||
|
http://keplerproject.github.com/luadoc/
|
||||||
|
--]] %>
|
||||||
|
<head>
|
||||||
|
<title>Reference</title>
|
||||||
|
<link rel="stylesheet" href="<%=luadoc.doclet.html.link("luadoc.css")%>" type="text/css" />
|
||||||
|
<!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<div id="product">
|
||||||
|
<div id="product_logo"></div>
|
||||||
|
<div id="product_name"><big><b></b></big></div>
|
||||||
|
<div id="product_description"></div>
|
||||||
|
</div> <!-- id="product" -->
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
|
||||||
|
<div id="navigation">
|
||||||
|
<%=luadoc.doclet.html.include("menu.lp", { doc=doc })%>
|
||||||
|
|
||||||
|
</div> <!-- id="navigation" -->
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
|
||||||
|
<%if not options.nomodules and #doc.modules > 0 then%>
|
||||||
|
<h2>Modules</h2>
|
||||||
|
<table class="module_list">
|
||||||
|
<!--<tr><td colspan="2">Modules</td></tr>-->
|
||||||
|
<%for _, modulename in ipairs(doc.modules) do%>
|
||||||
|
<tr>
|
||||||
|
<td class="name"><a href="<%=luadoc.doclet.html.module_link(modulename, doc)%>"><%=modulename%></a></td>
|
||||||
|
<td class="summary"><%=doc.modules[modulename].summary%></td>
|
||||||
|
</tr>
|
||||||
|
<%end%>
|
||||||
|
</table>
|
||||||
|
<%end%>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<%if not options.nofiles and #doc.files > 0 then%>
|
||||||
|
<h2>Files</h2>
|
||||||
|
<table class="file_list">
|
||||||
|
<!--<tr><td colspan="2">Files</td></tr>-->
|
||||||
|
<%for _, filepath in ipairs(doc.files) do%>
|
||||||
|
<tr>
|
||||||
|
<td class="name"><a href="<%=luadoc.doclet.html.file_link(filepath)%>"><%=filepath%></a></td>
|
||||||
|
<td class="summary"></td>
|
||||||
|
</tr>
|
||||||
|
<%end%>
|
||||||
|
</table>
|
||||||
|
<%end%>
|
||||||
|
|
||||||
|
</div> <!-- id="content" -->
|
||||||
|
|
||||||
|
</div> <!-- id="main" -->
|
||||||
|
|
||||||
|
<div id="about">
|
||||||
|
<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
|
||||||
|
</div> <!-- id="about" -->
|
||||||
|
|
||||||
|
</div> <!-- id="container" -->
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1 @@
|
|||||||
|
(title:"foo bar" AND body:"quick fox") OR title:fox
|
@ -0,0 +1 @@
|
|||||||
|
TODO
|
@ -0,0 +1,33 @@
|
|||||||
|
// animated duplicates, instances script
|
||||||
|
proc animatedDuplication (int $rangeStart, int $rangeEnd, int $numOfDuplicates, int $duplicateOrInstance)
|
||||||
|
{
|
||||||
|
int $range_start = $rangeStart;
|
||||||
|
int $range_end = $rangeEnd;
|
||||||
|
int $num_of_duplicates = $numOfDuplicates;
|
||||||
|
int $step_size = ($range_end - $range_start) / $num_of_duplicates;
|
||||||
|
int $i = 0;
|
||||||
|
int $temp;
|
||||||
|
|
||||||
|
currentTime $range_start; // set to range start
|
||||||
|
|
||||||
|
string $selectedObjects[]; // to store selected objects
|
||||||
|
$selectedObjects = `ls -sl`; // store selected objects
|
||||||
|
select $selectedObjects;
|
||||||
|
|
||||||
|
while ($i <= $num_of_duplicates)
|
||||||
|
{
|
||||||
|
$temp = $range_start + ($step_size * $i);
|
||||||
|
currentTime ($temp);
|
||||||
|
// seleced the objects to duplicate or instance
|
||||||
|
select $selectedObjects;
|
||||||
|
if($duplicateOrInstance == 0)
|
||||||
|
{
|
||||||
|
duplicate;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
instance;
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
@create phone
|
||||||
|
&pickup phone=$pick up:@ifelse [u(is,u(mode),ICC)]={@pemit %#=You pick up the [fullname(me)].[set(me,PHONER:%#)][set(me,MODE:CIP)][set([u(INCOMING)],CONNECTED:[num(me)])][set(me,CONNECTED:[u(INCOMING)])]%r[showpicture(PICPICKUP)]%rUse '[color(green,black,psay <message>)]' (or '[color(green,black,p <message>)]') to talk into the phone.;@oemit %#=%N picks up the [fullname(me)].},{@pemit %#=You pick up the phone but no one is there. You hear a dialtone and then hang up. [play(u(DIALTONE))];@oemit %#=%N picks up the phone, but no one is on the other end.}
|
||||||
|
&ringfun phone=[ifelse(eq(comp([u(%0/ringtone)],off),0),[color(black,cyan,INCOMING CALL FROM %1)],[play([switch([u(%0/ringtone)],1,[u(%0/ringtone1)],2,[u(%0/ringtone2)],3,[u(%0/ringtone3)],4,[u(%0/ringtone4)],5,[u(%0/ringtone5)],6,[u(%0/ringtone6)],7,[u(%0/ringtone7)],8,[u(%0/ringtone8)],9,[u(%0/ringtone9)],custom,[u(%0/customtone)],vibrate,[u(%0/vibrate)])])]
|
||||||
|
&ringloop phone=@switch [u(ringstate)]=1,{@emit [setq(q,[u(connecting)])][set(%qq,rangs:0)][set(%qq,mode:WFC)][set(%qq,INCOMING:)];@ifelse [u(%qq/HASVMB)]={@tr me/ROUTEVMB=[u(connecting)];},{@pemit %#=[u(MSGCNC)];}},2,{@pemit %#=The call is connected.[setq(q,[u(CONNECTING)])][set(me,CONNECTED:%qq)][set(%qq,CONNECTED:[num(me)])][set(%qq,MODE:CIP)];@tr me/ciploop;@tr %qq/ciploop;},3,{@emit On [fullname(me)]'s earpiece you hear a ringing sound.[play(u(LINETONE))];@tr me/ringhere;@increment [u(connecting)]/RANGS;@wait 5={@tr me/ringloop};},4,{}
|
||||||
|
&ringstate phone=[setq(q,u(connecting))][setq(1,[gt(u(%qq/rangs),sub(u(%qq/rings),1))])][setq(2,[and(u(is,u(%qq/MODE),CIP),u(is,u(%qq/INCOMING),[num(me)]))][setq(3,[u(is,u(%qq/MODE),ICC)])][ifelse(%q1,1,ifelse(%q2,2,ifelse(%q3,3,4)))]
|
||||||
|
;comment
|
||||||
|
@@(comment)
|
||||||
|
say [time()]
|
@ -0,0 +1 @@
|
|||||||
|
TODO
|
@ -0,0 +1,104 @@
|
|||||||
|
@protocol Printing: someParent
|
||||||
|
-(void) print;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface Fraction: NSObject <Printing, NSCopying> {
|
||||||
|
int numerator;
|
||||||
|
int denominator;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@"blah\8" @"a\222sd\d" @"\faw\"\? \' \4 n\\" @"\56"
|
||||||
|
@"\xSF42"
|
||||||
|
|
||||||
|
-(NSDecimalNumber*)addCount:(id)addObject{
|
||||||
|
|
||||||
|
return [count decimalNumberByAdding:addObject.count];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_DURING NS_HANDLER NS_ENDHANDLER
|
||||||
|
|
||||||
|
@try {
|
||||||
|
if (argc > 1) {
|
||||||
|
@throw [NSException exceptionWithName:@"Throwing a test exception" reason:@"Testing the @throw directive." userInfo:nil];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@catch (id theException) {
|
||||||
|
NSLog(@"%@", theException);
|
||||||
|
result = 1 ;
|
||||||
|
}
|
||||||
|
@finally {
|
||||||
|
NSLog(@"This always happens.");
|
||||||
|
result += 2 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
@synchronized(lock) {
|
||||||
|
NSLog(@"Hello World");
|
||||||
|
}
|
||||||
|
|
||||||
|
struct { @defs( NSObject) }
|
||||||
|
|
||||||
|
char *enc1 = @encode(int);
|
||||||
|
|
||||||
|
IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class
|
||||||
|
|
||||||
|
|
||||||
|
@class @protocol
|
||||||
|
|
||||||
|
@public
|
||||||
|
// instance variables
|
||||||
|
@package
|
||||||
|
// instance variables
|
||||||
|
@protected
|
||||||
|
// instance variables
|
||||||
|
@private
|
||||||
|
// instance variables
|
||||||
|
|
||||||
|
YES NO Nil nil
|
||||||
|
NSApp()
|
||||||
|
NSRectToCGRect (Protocol ProtocolFromString:"NSTableViewDelegate"))
|
||||||
|
|
||||||
|
[SPPoint pointFromCGPoint:self.position]
|
||||||
|
|
||||||
|
NSRoundDownToMultipleOfPageSize
|
||||||
|
|
||||||
|
#import <stdio.h>
|
||||||
|
|
||||||
|
int main( int argc, const char *argv[] ) {
|
||||||
|
printf( "hello world\n" );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSChangeSpelling
|
||||||
|
|
||||||
|
@"0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count"
|
||||||
|
|
||||||
|
@selector(lowercaseString) @selector(uppercaseString:)
|
||||||
|
|
||||||
|
NSFetchRequest *localRequest = [[NSFetchRequest alloc] init];
|
||||||
|
localRequest.entity = [NSEntityDescription entityForName:@"VNSource" inManagedObjectContext:context];
|
||||||
|
localRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"resolution" ascending:YES]];
|
||||||
|
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count"];
|
||||||
|
[NSPredicate predicateWithFormat:]
|
||||||
|
NSString *predicateString = [NSString stringWithFormat:@"SELF beginsWith[cd] %@", searchString];
|
||||||
|
NSPredicate *pred = [NSPredicate predicateWithFormat:predicateString];
|
||||||
|
NSArray *filteredKeys = [[myMutableDictionary allKeys] filteredArrayUsingPredicate:pred];
|
||||||
|
|
||||||
|
localRequest.predicate = [NSPredicate predicateWithFormat:@"whichChart = %@" argumentArray: listChartToDownload];
|
||||||
|
localRequest.fetchBatchSize = 100;
|
||||||
|
arrayRequest = [context executeFetchRequest:localRequest error:&error1];
|
||||||
|
|
||||||
|
[localRequest release];
|
||||||
|
|
||||||
|
#ifndef Nil
|
||||||
|
#define Nil __DARWIN_NULL /* id of Nil class */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@implementation MyObject
|
||||||
|
- (unsigned int)areaOfWidth:(unsigned int)width
|
||||||
|
height:(unsigned int)height
|
||||||
|
{
|
||||||
|
return width*height;
|
||||||
|
}
|
||||||
|
@end
|
@ -0,0 +1,18 @@
|
|||||||
|
(*
|
||||||
|
* Example of early return implementation taken from
|
||||||
|
* http://ocaml.janestreet.com/?q=node/91
|
||||||
|
*)
|
||||||
|
|
||||||
|
let with_return (type t) (f : _ -> t) =
|
||||||
|
let module M =
|
||||||
|
struct exception Return of t end
|
||||||
|
in
|
||||||
|
let return = { return = (fun x -> raise (M.Return x)); } in
|
||||||
|
try f return with M.Return x -> x
|
||||||
|
|
||||||
|
|
||||||
|
(* Function that uses the 'early return' functionality provided by `with_return` *)
|
||||||
|
let sum_until_first_negative list =
|
||||||
|
with_return (fun r ->
|
||||||
|
List.fold list ~init:0 ~f:(fun acc x ->
|
||||||
|
if x >= 0 then acc + x else r.return acc))
|
@ -0,0 +1,48 @@
|
|||||||
|
(*****************************************************************************
|
||||||
|
* A simple bubble sort program. Reads integers, one per line, and prints *
|
||||||
|
* them out in sorted order. Blows up if there are more than 49. *
|
||||||
|
*****************************************************************************)
|
||||||
|
PROGRAM Sort(input, output);
|
||||||
|
CONST
|
||||||
|
(* Max array size. *)
|
||||||
|
MaxElts = 50;
|
||||||
|
TYPE
|
||||||
|
(* Type of the element array. *)
|
||||||
|
IntArrType = ARRAY [1..MaxElts] OF Integer;
|
||||||
|
|
||||||
|
VAR
|
||||||
|
(* Indexes, exchange temp, array size. *)
|
||||||
|
i, j, tmp, size: integer;
|
||||||
|
|
||||||
|
(* Array of ints *)
|
||||||
|
arr: IntArrType;
|
||||||
|
|
||||||
|
(* Read in the integers. *)
|
||||||
|
PROCEDURE ReadArr(VAR size: Integer; VAR a: IntArrType);
|
||||||
|
BEGIN
|
||||||
|
size := 1;
|
||||||
|
WHILE NOT eof DO BEGIN
|
||||||
|
readln(a[size]);
|
||||||
|
IF NOT eof THEN
|
||||||
|
size := size + 1
|
||||||
|
END
|
||||||
|
END;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
(* Read *)
|
||||||
|
ReadArr(size, arr);
|
||||||
|
|
||||||
|
(* Sort using bubble sort. *)
|
||||||
|
FOR i := size - 1 DOWNTO 1 DO
|
||||||
|
FOR j := 1 TO i DO
|
||||||
|
IF arr[j] > arr[j + 1] THEN BEGIN
|
||||||
|
tmp := arr[j];
|
||||||
|
arr[j] := arr[j + 1];
|
||||||
|
arr[j + 1] := tmp;
|
||||||
|
END;
|
||||||
|
|
||||||
|
(* Print. *)
|
||||||
|
FOR i := 1 TO size DO
|
||||||
|
writeln(arr[i])
|
||||||
|
END.
|
||||||
|
|
@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
=begin
|
||||||
|
perl example code for Ace
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
my $num_primes = 0;
|
||||||
|
my @primes;
|
||||||
|
|
||||||
|
# Put 2 as the first prime so we won't have an empty array
|
||||||
|
$primes[$num_primes] = 2;
|
||||||
|
$num_primes++;
|
||||||
|
|
||||||
|
MAIN_LOOP:
|
||||||
|
for my $number_to_check (3 .. 200)
|
||||||
|
{
|
||||||
|
for my $p (0 .. ($num_primes-1))
|
||||||
|
{
|
||||||
|
if ($number_to_check % $primes[$p] == 0)
|
||||||
|
{
|
||||||
|
next MAIN_LOOP;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If we reached this point it means $number_to_check is not
|
||||||
|
# divisable by any prime number that came before it.
|
||||||
|
$primes[$num_primes] = $number_to_check;
|
||||||
|
$num_primes++;
|
||||||
|
}
|
||||||
|
|
||||||
|
for my $p (0 .. ($num_primes-1))
|
||||||
|
{
|
||||||
|
print $primes[$p], ", ";
|
||||||
|
}
|
||||||
|
print "\n";
|
||||||
|
|
@ -0,0 +1,118 @@
|
|||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Samples from PostgreSQL src/tutorial/basics.source
|
||||||
|
*/
|
||||||
|
CREATE TABLE weather (
|
||||||
|
city varchar(80),
|
||||||
|
temp_lo int, -- low temperature
|
||||||
|
temp_hi int, -- high temperature
|
||||||
|
prcp real, -- precipitation
|
||||||
|
"date" date
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE cities (
|
||||||
|
name varchar(80),
|
||||||
|
location point
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO weather
|
||||||
|
VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
|
||||||
|
|
||||||
|
INSERT INTO cities
|
||||||
|
VALUES ('San Francisco', '(-194.0, 53.0)');
|
||||||
|
|
||||||
|
INSERT INTO weather (city, temp_lo, temp_hi, prcp, "date")
|
||||||
|
VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');
|
||||||
|
|
||||||
|
INSERT INTO weather (date, city, temp_hi, temp_lo)
|
||||||
|
VALUES ('1994-11-29', 'Hayward', 54, 37);
|
||||||
|
|
||||||
|
|
||||||
|
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, "date" FROM weather;
|
||||||
|
|
||||||
|
SELECT city, temp_lo, temp_hi, prcp, "date", location
|
||||||
|
FROM weather, cities
|
||||||
|
WHERE city = name;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dollar quotes starting at the end of the line are colored as SQL unless
|
||||||
|
* a special language tag is used. Dollar quote syntax coloring is implemented
|
||||||
|
* for Perl, Python, JavaScript, and Json.
|
||||||
|
*/
|
||||||
|
create or replace function blob_content_chunked(
|
||||||
|
in p_data bytea,
|
||||||
|
in p_chunk integer)
|
||||||
|
returns setof bytea as $$
|
||||||
|
-- Still SQL comments
|
||||||
|
declare
|
||||||
|
v_size integer = octet_length(p_data);
|
||||||
|
begin
|
||||||
|
for i in 1..v_size by p_chunk loop
|
||||||
|
return next substring(p_data from i for p_chunk);
|
||||||
|
end loop;
|
||||||
|
end;
|
||||||
|
$$ language plpgsql stable;
|
||||||
|
|
||||||
|
|
||||||
|
-- pl/perl
|
||||||
|
CREATE FUNCTION perl_max (integer, integer) RETURNS integer AS $perl$
|
||||||
|
# perl comment...
|
||||||
|
my ($x,$y) = @_;
|
||||||
|
if (! defined $x) {
|
||||||
|
if (! defined $y) { return undef; }
|
||||||
|
return $y;
|
||||||
|
}
|
||||||
|
if (! defined $y) { return $x; }
|
||||||
|
if ($x > $y) { return $x; }
|
||||||
|
return $y;
|
||||||
|
$perl$ LANGUAGE plperl;
|
||||||
|
|
||||||
|
-- pl/python
|
||||||
|
CREATE FUNCTION usesavedplan() RETURNS trigger AS $python$
|
||||||
|
# python comment...
|
||||||
|
if SD.has_key("plan"):
|
||||||
|
plan = SD["plan"]
|
||||||
|
else:
|
||||||
|
plan = plpy.prepare("SELECT 1")
|
||||||
|
SD["plan"] = plan
|
||||||
|
$python$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
|
-- pl/v8 (javascript)
|
||||||
|
CREATE FUNCTION plv8_test(keys text[], vals text[]) RETURNS text AS $javascript$
|
||||||
|
var o = {};
|
||||||
|
for(var i=0; i<keys.length; i++){
|
||||||
|
o[keys[i]] = vals[i];
|
||||||
|
}
|
||||||
|
return JSON.stringify(o);
|
||||||
|
$javascript$ LANGUAGE plv8 IMMUTABLE STRICT;
|
||||||
|
|
||||||
|
-- json
|
||||||
|
select * from json_object_keys($json$
|
||||||
|
{
|
||||||
|
"f1": 5,
|
||||||
|
"f2": "test",
|
||||||
|
"f3": {}
|
||||||
|
}
|
||||||
|
$json$);
|
||||||
|
|
||||||
|
|
||||||
|
-- psql commands
|
||||||
|
\df cash*
|
||||||
|
|
||||||
|
|
||||||
|
-- Some string samples.
|
||||||
|
select 'don''t do it now;' || 'maybe later';
|
||||||
|
select E'dont\'t do it';
|
||||||
|
select length('some other''s stuff' || $$cat in hat's stuff $$);
|
||||||
|
|
||||||
|
select $$ strings
|
||||||
|
over multiple
|
||||||
|
lines - use dollar quotes
|
||||||
|
$$;
|
||||||
|
|
||||||
|
END;
|