@ -1,45 +0,0 @@ |
||||
<!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> |
@ -1,66 +0,0 @@ |
||||
<!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 { |
||||
border: 1px solid lightgray; |
||||
margin: auto; |
||||
height: 200px; |
||||
width: 80%; |
||||
} |
||||
.scrollmargin { |
||||
height: 80px; |
||||
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="editor3" style="width: 40%;"></pre> |
||||
<div class="scrollmargin"></div> |
||||
<pre id="editor"></pre> |
||||
|
||||
<!-- load ace --> |
||||
<script src="../src/ace.js"></script> |
||||
<script> |
||||
var editor1 = ace.edit("editor1", { |
||||
theme: "ace/theme/tomorrow_night_eighties", |
||||
mode: "ace/mode/html", |
||||
maxLines: 30, |
||||
wrap: true, |
||||
autoScrollEditorIntoView: true |
||||
}); |
||||
|
||||
var editor2 = ace.edit("editor2", { |
||||
theme: "ace/theme/tomorrow_night_blue", |
||||
mode: "ace/mode/html", |
||||
autoScrollEditorIntoView: true, |
||||
maxLines: 30, |
||||
minLines: 2 |
||||
}); |
||||
|
||||
var editor = ace.edit("editor3"); |
||||
editor.setOptions({ |
||||
autoScrollEditorIntoView: true, |
||||
maxLines: 8 |
||||
}); |
||||
editor.renderer.setScrollMargin(10, 10, 10, 10); |
||||
|
||||
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> |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 20 KiB |
@ -1,120 +0,0 @@ |
||||
<!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="https://ajaxorg.github.io/ace-builds/src-noconflict"></input><br> |
||||
<br> |
||||
<a href="#" onmouseover="buildBookmarklet()" onmousedown="buildBookmarklet()" class="bookmarkletLink">Ace Bookmarklet Link</a> |
||||
<br> |
||||
<br> |
||||
<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"> |
||||
</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 a folder containing ace.js (you can leave the default to load the scripts from GitHub).</li> |
||||
<li>Drag the <a href="#" onmouseover="buildBookmarklet()" onmousedown="buildBookmarklet()" class="bookmarkletLink">"Ace Bookmarklet Link"</a> link to your toolbar or store it somewhere else.</li> |
||||
<li>Click the bookmarklet.</li> |
||||
<li>Click three times on a textarea you want to replace - Ace will replace it.</li> |
||||
<li>To change settings, use <strong>Ctrl-,</strong> shortcut. (<strong>Cmd-,</strong> on mac).</li> |
||||
</ul> |
||||
<textarea cols="80">Test bookmarklet here!</textarea> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<script> |
||||
|
||||
function inject(options, callback) { |
||||
var load = function(path, callback) { |
||||
var head = document.getElementsByTagName('head')[0]; |
||||
var s = document.createElement('script'); |
||||
|
||||
s.src = options.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(); |
||||
} |
||||
}; |
||||
}; |
||||
var pending = []; |
||||
var transform = function(el) { pending.push(el) }; |
||||
load("ace.js", function() { |
||||
ace.config.loadModule("ace/ext/textarea", function(m) { |
||||
transform = function(el) { |
||||
if (!el.ace) |
||||
el.ace = m.transformTextarea(el, options.ace); |
||||
}; |
||||
pending = pending.forEach(transform); |
||||
callback && setTimeout(callback); |
||||
}); |
||||
}); |
||||
if (options.target) |
||||
return transform(options.target); |
||||
window.addEventListener("click", function(e) { |
||||
if (e.detail == 3 && e.target.localName == "textarea") |
||||
transform(e.target); |
||||
}); |
||||
} |
||||
|
||||
// Call the inject function to load the ace files. |
||||
var textAce; |
||||
inject({ |
||||
baseUrl: "../../src-noconflict", |
||||
target: document.querySelector("textarea") |
||||
}, function () { |
||||
// Transform the textarea on the page into an ace editor. |
||||
textAce = document.querySelector("textarea").ace; |
||||
textAce.setDisplaySettings(true); |
||||
buildBookmarklet(); |
||||
}); |
||||
|
||||
|
||||
function buildBookmarklet() { |
||||
var injectSrc = inject.toString().split("\n").join(""); |
||||
injectSrc = injectSrc.replace(/\s+/g, " "); |
||||
Function("", injectSrc); // check if injectSrc is still valid js |
||||
|
||||
var options = textAce.getOptions(); |
||||
options.baseUrl = document.getElementById("srcURL").value; |
||||
|
||||
var els = document.querySelectorAll(".bookmarkletLink"); |
||||
for (var i = 0; i < els.length; i++) |
||||
els[i].href = "javascript:(" + injectSrc + ")(" + JSON.stringify(options) + ")"; |
||||
} |
||||
|
||||
|
||||
</script> |
||||
|
||||
</body> |
||||
</html> |
@ -1,226 +0,0 @@ |
||||
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; |
||||
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; |
||||
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; |
||||
} |
||||
|
||||
|
||||
|
||||
|
@ -1,39 +0,0 @@ |
||||
<!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> |
@ -1,122 +0,0 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title>ACE Code Lens 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 code_lens extension --> |
||||
<script src="../src/ext-code_lens.js"></script> |
||||
<script> |
||||
var editor = ace.edit("editor"); |
||||
editor.session.setMode("ace/mode/html"); |
||||
|
||||
var commandId = "describeCodeLens"; |
||||
editor.commands.addCommand({ |
||||
name: commandId, |
||||
exec: function(editor, args) { |
||||
// services available in `ctx` |
||||
alert('CodeLens command called with arguments ' + args); |
||||
} |
||||
}); |
||||
editor.commands.addCommand({ |
||||
name: "clearCodeLenses", |
||||
exec: function(editor, args) { |
||||
editor.setOption("enableCodeLens", false); |
||||
codeLens.clear(editor.session); |
||||
} |
||||
}); |
||||
editor.setOption("enableCodeLens", true); |
||||
|
||||
codeLens.registerCodeLensProvider(editor, { |
||||
provideCodeLenses: function(session, callback) { |
||||
var p = [{ |
||||
start: {row: 0}, |
||||
command: { |
||||
id: "clearCodeLenses", |
||||
title: "Clear all code lenses", |
||||
arguments: [] |
||||
} |
||||
}]; |
||||
var l = session.getLength() |
||||
|
||||
for (var row = 2; row < l; row ++) { |
||||
var line = session.getLine(row); |
||||
var endColumn = line.length; |
||||
|
||||
var m = /[{>]\s*$/.exec(line); |
||||
if (!m) continue; |
||||
|
||||
p.push({ |
||||
start: { |
||||
row: row, |
||||
column: m.index, |
||||
}, |
||||
command: { |
||||
id: commandId, |
||||
title: "Line " + (row + 1), |
||||
arguments: ["line", row] |
||||
} |
||||
}); |
||||
|
||||
if (m.index < 10) continue; |
||||
p.push({ |
||||
start: { |
||||
row: row, |
||||
column: m.index, |
||||
}, |
||||
end: { |
||||
row: row, |
||||
column: m.index + 1, |
||||
}, |
||||
command: { |
||||
id: commandId, |
||||
title: "column " + endColumn, |
||||
arguments: ["column", endColumn] |
||||
} |
||||
}); |
||||
|
||||
if (m.index < 30) continue; |
||||
p.push({ |
||||
start: { |
||||
row: row, |
||||
column: m.index, |
||||
}, |
||||
command: { |
||||
id: commandId, |
||||
title: "Third Link", |
||||
arguments: ["3", row] |
||||
} |
||||
}); |
||||
|
||||
} |
||||
callback(p); |
||||
} |
||||
}); |
||||
|
||||
window.editor = editor; |
||||
window.codeLens = codeLens; |
||||
</script> |
||||
|
||||
<script src="./show_own_source.js"></script> |
||||
</body> |
||||
</html> |
@ -1,41 +0,0 @@ |
||||
<!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://cloud9ide.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> |
@ -1,30 +0,0 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title>ACE Editor Inside iframe</title> |
||||
<style type="text/css" media="screen"> |
||||
body, html { |
||||
height: 100%; |
||||
margin:0; padding:0; |
||||
} |
||||
#editor { |
||||
padding: 20px; margin: 20px |
||||
width: 80%; height: 80%; |
||||
} |
||||
</style> |
||||
</head> |
||||
<body> |
||||
<div style="height: 100%"></div> |
||||
<div><textarea></textarea></div> |
||||
<iframe id="editor-iframe" src='data:text/html, |
||||
<pre id="editor" style="height:100%"></pre> |
||||
<script src="https://ajaxorg.github.io/ace-builds/src/ace.js"></script> |
||||
<script> |
||||
var editor = ace.edit("editor"); |
||||
editor.setTheme("ace/theme/twilight"); |
||||
editor.session.setMode("ace/mode/javascript"); |
||||
</script> |
||||
'></iframe> |
||||
</body> |
||||
</html> |
@ -1,48 +0,0 @@ |
||||
<!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> |
Before Width: | Height: | Size: 59 KiB |
@ -1,11 +0,0 @@ |
||||
# A sample .gitignore file. |
||||
|
||||
.buildlog |
||||
.DS_Store |
||||
.svn |
||||
|
||||
# Negated patterns: |
||||
!foo.bar |
||||
|
||||
# Also ignore user settings... |
||||
/.settings |
@ -1,53 +0,0 @@ |
||||
# |
||||
# 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"] |
@ -1,17 +0,0 @@ |
||||
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!"); |
||||
} |
||||
} |
@ -1,247 +0,0 @@ |
||||
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() |
@ -1,122 +0,0 @@ |
||||
.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
|
@ -1,57 +0,0 @@ |
||||
{ |
||||
# 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 = { }; |
||||
}; |
||||
}; |
||||
} |
@ -1,41 +0,0 @@ |
||||
*************************************** |
||||
** 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. |
||||
|
||||
SORT i_vbrk BY vbeln ASCENDING. |
||||
SORT i_vbrk BY vbeln DESCENDING. |
||||
|
||||
RETURN. |
@ -1,171 +0,0 @@ |
||||
%abc-2.1 |
||||
H:This file contains some example English tunes |
||||
% note that the comments (like this one) are to highlight usages |
||||
% and would not normally be included in such detail |
||||
O:England % the origin of all tunes is England |
||||
|
||||
X:1 % tune no 1 |
||||
T:Dusty Miller, The % title |
||||
T:Binny's Jig % an alternative title |
||||
C:Trad. % traditional |
||||
R:DH % double hornpipe |
||||
M:3/4 % meter |
||||
K:G % key |
||||
B>cd BAG|FA Ac BA|B>cd BAG|DG GB AG:| |
||||
Bdd gfg|aA Ac BA|Bdd gfa|gG GB AG:| |
||||
BG G/2G/2G BG|FA Ac BA|BG G/2G/2G BG|DG GB AG:| |
||||
W:Hey, the dusty miller, and his dusty coat; |
||||
W:He will win a shilling, or he spend a groat. |
||||
W:Dusty was the coat, dusty was the colour; |
||||
W:Dusty was the kiss, that I got frae the miller. |
||||
|
||||
X:2 |
||||
T:Old Sir Simon the King |
||||
C:Trad. |
||||
S:Offord MSS % from Offord manuscript |
||||
N:see also Playford % reference note |
||||
M:9/8 |
||||
R:SJ % slip jig |
||||
N:originally in C % transcription note |
||||
K:G |
||||
D|GFG GAG G2D|GFG GAG F2D|EFE EFE EFG|A2G F2E D2:| |
||||
D|GAG GAB d2D|GAG GAB c2D|[1 EFE EFE EFG|[A2G] F2E D2:|\ % no line-break in score |
||||
M:12/8 % change of meter |
||||
[2 E2E EFE E2E EFG|\ % no line-break in score |
||||
M:9/8 % change of meter |
||||
A2G F2E D2|] |
||||
|
||||
X:3 |
||||
T:William and Nancy |
||||
T:New Mown Hay |
||||
T:Legacy, The |
||||
C:Trad. |
||||
O:England; Gloucs; Bledington % place of origin |
||||
B:Sussex Tune Book % can be found in these books |
||||
B:Mally's Cotswold Morris vol.1 2 |
||||
D:Morris On % can be heard on this record |
||||
P:(AB)2(AC)2A % play the parts in this order |
||||
M:6/8 |
||||
K:G |
||||
[P:A] D|"G"G2G GBd|"C"e2e "G"dBG|"D7"A2d "G"BAG|"C"E2"D7"F "G"G2:| |
||||
[P:B] d|"G"e2d B2d|"C"gfe "G"d2d| "G"e2d B2d|"C"gfe "D7"d2c| |
||||
"G"B2B Bcd|"C"e2e "G"dBG|"D7"A2d "G"BAG|"C"E2"D7"F "G"G2:| |
||||
% changes of meter, using inline fields |
||||
[T:Slows][M:4/4][L:1/4][P:C]"G"d2|"C"e2 "G"d2|B2 d2|"Em"gf "A7"e2|"D7"d2 "G"d2|\ |
||||
"C"e2 "G"d2|[M:3/8][L:1/8] "G"B2 d |[M:6/8] "C"gfe "D7"d2c| |
||||
"G"B2B Bcd|"C"e2e "G"dBG|"D7"A2d "G"BAG|"C"E2"D7"F "G"G2:| |
||||
|
||||
X:4 |
||||
T:South Downs Jig |
||||
R:jig |
||||
S:Robert Harbron |
||||
M:6/8 |
||||
L:1/8 |
||||
K:G |
||||
|: d | dcA G3 | EFG AFE | DEF GAB | cde d2d | |
||||
dcA G3 | EFG AFE | DEF GAB | cAF G2 :| |
||||
B | Bcd e2c | d2B c2A | Bcd e2c | [M:9/8]d2B c2B A3 | |
||||
[M:6/8]DGF E3 | cBA FED | DEF GAB |1 cAF G2 :|2 cAF G3 |] |
||||
|
||||
X:5 |
||||
T:Atholl Brose |
||||
% in this example, which reproduces Highland Bagpipe gracing, |
||||
% the large number of grace notes mean that it is more convenient to be specific about |
||||
% score line-breaks (using the $ symbol), rather than using code line breaks to indicate them |
||||
I:linebreak $ |
||||
K:D |
||||
{gcd}c<{e}A {gAGAG}A2 {gef}e>A {gAGAG}Ad| |
||||
{gcd}c<{e}A {gAGAG}A>e {ag}a>f {gef}e>d| |
||||
{gcd}c<{e}A {gAGAG}A2 {gef}e>A {gAGAG}Ad| |
||||
{g}c/d/e {g}G>{d}B {gf}gG {dc}d>B:|$ |
||||
{g}c<e {gf}g>e {ag}a>e {gf}g>e| |
||||
{g}c<e {gf}g>e {ag}a2 {GdG}a>d| |
||||
{g}c<e {gf}g>e {ag}a>e {gf}g>f| |
||||