diff --git a/experiments/outline-editor/editor.css b/experiments/outline-editor/editor.css
index 1a627f3..fdd080f 100755
--- a/experiments/outline-editor/editor.css
+++ b/experiments/outline-editor/editor.css
@@ -14,7 +14,8 @@
.editor .outline {
display: block;
position: relative;
- width: calc(100% - var(--button-size));
+ /* XXX do a better calculation... */
+ width: calc(100% - (var(--button-size) + 4em));
}
.editor .outline [tabindex] {
@@ -36,7 +37,6 @@
font-family: sans-serif;
font-size: 5mm;
- white-space: pre;
outline: none;
border: none;
@@ -92,10 +92,13 @@
right: 1em;
}
.editor .toolbar button {
+ --margin: 0.1em;
+
display: block;
- width: var(--button-size);
+ width: calc(var(--button-size) + var(--margin) * 2);
height: var(--button-size);
+ margin: var(--margin);
font-size: var(--button-size);
}
diff --git a/experiments/outline-editor/editor.js b/experiments/outline-editor/editor.js
index 3c2d56a..d2a37e6 100755
--- a/experiments/outline-editor/editor.js
+++ b/experiments/outline-editor/editor.js
@@ -289,13 +289,23 @@ var Outline = {
// block serialization...
__code2html__: function(code){
return code
+ .replace(/\n\s*/g, '
')
// XXX STUB...
+ .replace(/^# (.*)\s*$/g, '
$1
')
+ .replace(/^## (.*)\s*$/g, '$1
')
+ .replace(/^### (.*)\s*$/g, '$1
')
+ .replace(/^#### (.*)\s*$/g, '$1
')
.replace(/\*(.*)\*/g, '$1')
.replace(/~([^~]*)~/g, '$1')
.replace(/_([^_]*)_/g, '$1') },
__html2code__: function(html){
return html
+ .replace(/
\s*/g, '\n')
// XXX STUB...
+ .replace(/^(.*)<\/h1>\s*$/g, '# $1')
+ .replace(/^(.*)<\/h2>\s*$/g, '## $1')
+ .replace(/^(.*)<\/h3>\s*$/g, '### $1')
+ .replace(/^(.*)<\/h4>\s*$/g, '#### $1')
.replace(/(.*)<\/b>/g, '*$1*')
.replace(/(.*)<\/s>/g, '~$1~')
.replace(/(.*)<\/i>/g, '_$1_') },
@@ -347,6 +357,7 @@ var Outline = {
// XXX add scrollIntoView(..) to nav...
keyboard: {
// vertical navigation...
+ // XXX wrapped line navigation is broken...
ArrowUp: function(evt){
var state = 'focused'
var edited = this.get('edited')
diff --git a/experiments/outline-editor/index.html b/experiments/outline-editor/index.html
index 13660f9..fe001fa 100755
--- a/experiments/outline-editor/index.html
+++ b/experiments/outline-editor/index.html
@@ -3,6 +3,9 @@
@@ -42,17 +45,19 @@ var setup = function(){
C
This is a line of text
-
This is a set
-text lines
+
This is a set
+ text lines
+
-
-
+
+
+
@@ -70,13 +75,13 @@ TODO:
- shift subtree up/down
- create node
- edit node
+- shifting nodes up/down
+- multiple node selection
- undo
- delete node
- indent/deindent
- edit node
- copy/paste nodes/trees
-- shifting nodes up/down
-- multiple node selection
- serialize/deserialize
- add optional text styling to nodes
@@ -94,6 +99,7 @@ Controls:
esc - exit edit mode
+