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;
|