r101080 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r101079‎ | r101080 | r101081 >
Date:23:08, 27 October 2011
Author:inez
Status:deferred
Tags:
Comment:
Support for Lists, Tables and Headings in new Hype demo. Tons of bugs in Hype killed.
Modified paths:
  • /trunk/parsers/wikidom/demos/hype/es.css (added) (history)
  • /trunk/parsers/wikidom/demos/hype/es.js (modified) (history)
  • /trunk/parsers/wikidom/demos/hype/index.html (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/bases/es.DocumentModelNode.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/bases/es.DocumentViewLeafNode.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/bases/es.ModelNode.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/es.Surface.css (added) (history)
  • /trunk/parsers/wikidom/lib/hype/models/es.HeadingModel.js (added) (history)
  • /trunk/parsers/wikidom/lib/hype/views/es.HeadingView.js (added) (history)
  • /trunk/parsers/wikidom/lib/hype/views/es.ListItemView.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/views/es.ListView.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/views/es.ParagraphView.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/views/es.TableCellView.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/views/es.TableRowView.js (modified) (history)
  • /trunk/parsers/wikidom/lib/hype/views/es.TableView.js (modified) (history)

Diff [purge]

Index: trunk/parsers/wikidom/lib/hype/models/es.HeadingModel.js
@@ -0,0 +1,31 @@
 2+/**
 3+ * Creates an es.HeadingModel object.
 4+ *
 5+ * @class
 6+ * @constructor
 7+ */
 8+es.HeadingModel = function( element, length ) {
 9+ // Extension
 10+ return es.extendObject( new es.DocumentModelNode( element, length ), this );
 11+};
 12+
 13+/* Methods */
 14+
 15+/**
 16+ * Creates a heading view for this model.
 17+ *
 18+ * @method
 19+ * @returns {es.ParagraphView}
 20+ */
 21+es.HeadingModel.prototype.createView = function() {
 22+ return new es.HeadingView( this );
 23+};
 24+
 25+/* Registration */
 26+
 27+es.DocumentModel.nodeModels.heading = es.HeadingModel;
 28+
 29+es.DocumentModel.nodeRules.heading = {
 30+ 'parents': null,
 31+ 'children': []
 32+};
Index: trunk/parsers/wikidom/lib/hype/es.Surface.css
@@ -0,0 +1,221 @@
 2+.editSurface-input {
 3+ position: absolute;
 4+ z-index: -1;
 5+ opacity: 0;
 6+ color: white;
 7+ background-color: white;
 8+ border: none;
 9+ padding: 0;
 10+ margin: 0;
 11+ width: 1px;
 12+}
 13+
 14+.editSurface-input:focus {
 15+ outline: none;
 16+}
 17+
 18+.editSurface {
 19+ overflow: hidden;
 20+}
 21+
 22+.editSurface-document {
 23+ cursor: text;
 24+ margin-top: 1em;
 25+ overflow: hidden;
 26+ -webkit-user-select: none;
 27+}
 28+
 29+.editSurface-content {
 30+ position: relative;
 31+}
 32+
 33+.editSurface-headingBlock,
 34+.editSurface-tableBlock,
 35+.editSurface-listBlock,
 36+.editSurface-paragraphBlock {
 37+ margin: 1em;
 38+ margin-top: 0;
 39+ position: relative;
 40+ min-height: 1.5em;
 41+ font-size: 1em;
 42+}
 43+
 44+h1.editSurface-headingBlock, h2.editSurface-headingBlock {
 45+ border-bottom: 1px solid #AAA;
 46+}
 47+
 48+h1.editSurface-headingBlock > * {
 49+ font-size:188%;
 50+ font-weight: normal;
 51+}
 52+
 53+h2.editSurface-headingBlock > * {
 54+ font-size:150%;
 55+ font-weight: normal;
 56+}
 57+
 58+h3.editSurface-headingBlock > * {
 59+ font-size:132%;
 60+ font-weight: bold;
 61+}
 62+
 63+h4.editSurface-headingBlock > * {
 64+ font-size:116%;
 65+ font-weight: bold;
 66+}
 67+
 68+h5.editSurface-headingBlock > * {
 69+ font-size:100%;
 70+ font-weight: bold;
 71+}
 72+
 73+h6.editSurface-headingBlock > * {
 74+ font-size:80%;
 75+ font-weight: bold;
 76+}
 77+
 78+.editSurface-listItem {
 79+ position: relative;
 80+ padding: 0 0 0 1em;
 81+ background-position: left 0.6em;
 82+ background-repeat: no-repeat;
 83+}
 84+
 85+.editSurface-listItem-bullet {
 86+ background-image: url(images/bullet.png);
 87+}
 88+
 89+.editSurface-listItem-number {
 90+ /* */
 91+}
 92+
 93+.editSurface-listItem-bullet .editSurface-listItem-icon {
 94+ display: none;
 95+}
 96+
 97+.editSurface-listItem-number .editSurface-listItem-icon {
 98+ position: absolute;
 99+ right: 100%;
 100+ margin-right: -0.5em;
 101+ height: 1.5em;
 102+ line-height: 1.5em;
 103+}
 104+
 105+.editSurface-listItem-level0 {
 106+ margin-left: 0.5em;
 107+}
 108+
 109+.editSurface-listItem-level1 {
 110+ margin-left: 2.5em;
 111+}
 112+
 113+.editSurface-listItem-level2 {
 114+ margin-left: 4.5em;
 115+}
 116+
 117+.editSurface-listItem-level3 {
 118+ margin-left: 6.5em;
 119+}
 120+
 121+.editSurface-listItem-level4 {
 122+ margin-left: 8.5em;
 123+}
 124+
 125+.editSurface-listItem-level5 {
 126+ margin-left: 10.5em;
 127+}
 128+
 129+.editSurface-listItem-level6 {
 130+ margin-left: 12.5em;
 131+}
 132+
 133+.editSurface-line,
 134+.editSurface-ruler {
 135+ line-height: 1.5em;
 136+ cursor: text;
 137+ white-space: nowrap;
 138+ color: #000000;
 139+}
 140+
 141+.editSurface-ruler {
 142+ position: absolute;
 143+ top: 0;
 144+ left: 0;
 145+ display: inline-block;
 146+ z-index: -1000;
 147+}
 148+
 149+.editSurface-line.empty {
 150+ display: block;
 151+ width: 0px;
 152+}
 153+
 154+.editSurface-whitespace {
 155+ color: #ffffff;
 156+}
 157+
 158+.editSurface-range {
 159+ display: none;
 160+ position: absolute;
 161+ background-color: #bbffcc;
 162+ cursor: text;
 163+ z-index: -1;
 164+}
 165+
 166+.editSurface-cursor {
 167+ position: absolute;
 168+ background-color: black;
 169+ width: 1px;
 170+ height: 1.5em;
 171+ min-height: 1.5em;
 172+ display: none;
 173+}
 174+
 175+.editSurface-format-object {
 176+ background-color: rgba(0,0,0,0.05);
 177+ border-radius: 0.25em;
 178+ margin: 1px 0 1px 1px;
 179+ padding: 0.25em 0;
 180+ cursor: default;
 181+}
 182+
 183+.editSurface-format-object * {
 184+ cursor: default !important;
 185+}
 186+
 187+.editSurface-format-object a:link,
 188+.editSurface-format-object a:visited,
 189+.editSurface-format-object a:active {
 190+ color: blue;
 191+}
 192+
 193+.editSurface-format-italic {
 194+ font-style: italic;
 195+}
 196+
 197+.editSurface-format-bold {
 198+ font-weight: bold;
 199+}
 200+
 201+.editSurface-format-link {
 202+ color: blue;
 203+ text-decoration: underline;
 204+}
 205+
 206+.editSurface-format-big {
 207+ font-size: 1.2em;
 208+}
 209+
 210+.editSurface-format-small,
 211+.editSurface-format-sub,
 212+.editSurface-format-super {
 213+ font-size: .8em;
 214+}
 215+
 216+.editSurface-format-sub {
 217+ vertical-align: sub;
 218+}
 219+
 220+.editSurface-format-super {
 221+ vertical-align: super;
 222+}
Index: trunk/parsers/wikidom/lib/hype/bases/es.DocumentModelNode.js
@@ -182,6 +182,7 @@
183183 es.DocumentModelNode.prototype.getContent = function( range ) {
184184 // Find root
185185 var root = this.data ? this : ( this.root.data ? this.root : null );
 186+
186187 if ( root ) {
187188 return root.getContentFromNode( this, range );
188189 }
Index: trunk/parsers/wikidom/lib/hype/bases/es.ModelNode.js
@@ -31,6 +31,7 @@
3232 if ( es.isArray( children ) ) {
3333 for ( var i = 0; i < children.length; i++ ) {
3434 node.push( children[i] );
 35+ children[i].parent = node;
3536 }
3637 }
3738
Index: trunk/parsers/wikidom/lib/hype/bases/es.DocumentViewLeafNode.js
@@ -12,7 +12,8 @@
1313 var node = es.extendObject( new es.DocumentNode( new es.ViewNode( model, $element ) ), this );
1414
1515 // Content
16 - node.contentView = new es.ContentView( node.$, model );
 16+ node.$content = $( '<div class="editSurface-content"></div>' ).appendTo( node.$ );
 17+ node.contentView = new es.ContentView( node.$content, model );
1718
1819 return node;
1920 };
Index: trunk/parsers/wikidom/lib/hype/views/es.ParagraphView.js
@@ -7,5 +7,7 @@
88 */
99 es.ParagraphView = function( model ) {
1010 // Extension
11 - return es.extendObject( new es.DocumentViewLeafNode( model ), this );
 11+ var view = es.extendObject( new es.DocumentViewLeafNode( model ), this );
 12+ view.$.addClass( 'editSurface-paragraphBlock' );
 13+ return view;
1214 };
Index: trunk/parsers/wikidom/lib/hype/views/es.TableCellView.js
@@ -7,5 +7,7 @@
88 */
99 es.TableCellView = function( model ) {
1010 // Extension
11 - return es.extendObject( new es.DocumentViewBranchNode( model ), this );
 11+ var view = es.extendObject( new es.DocumentViewBranchNode( model, $( '<td>' ) ), this );
 12+ view.$.attr( 'style', model.getElementAttribute( 'html/style' ) );
 13+ return view;
1214 };
Index: trunk/parsers/wikidom/lib/hype/views/es.TableView.js
@@ -7,5 +7,8 @@
88 */
99 es.TableView = function( model ) {
1010 // Extension
11 - return es.extendObject( new es.DocumentViewBranchNode( model ), this );
 11+ var view = es.extendObject( new es.DocumentViewBranchNode( model, $( '<table>' ) ), this );
 12+ view.$.attr( 'style', model.getElementAttribute( 'html/style' ) );
 13+ view.$.addClass( 'editSurface-tableBlock' );
 14+ return view;
1215 };
Index: trunk/parsers/wikidom/lib/hype/views/es.ListItemView.js
@@ -7,5 +7,18 @@
88 */
99 es.ListItemView = function( model ) {
1010 // Extension
11 - return es.extendObject( new es.DocumentViewLeafNode( model ), this );
 11+ var view = es.extendObject( new es.DocumentViewLeafNode( model ), this );
 12+ view.$icon = $( '<div class="editSurface-listItem-icon"></div>' ).prependTo( view.$ );
 13+ view.$.addClass( 'editSurface-listItem' );
 14+ view.on( 'update', view.setClasses );
 15+ view.setClasses();
 16+ return view;
1217 };
 18+
 19+es.ListItemView.prototype.setClasses = function() {
 20+ // TODO: Unset previously set classes in case of switching from bullet list to numbered list
 21+ // or changing indentation level
 22+ var styles = this.model.getElementAttribute( 'styles' );
 23+ this.$.addClass( 'editSurface-listItem-' + styles[ styles.length - 1 ] )
 24+ .addClass( 'editSurface-listItem-level' + ( styles.length - 1 ) );
 25+};
\ No newline at end of file
Index: trunk/parsers/wikidom/lib/hype/views/es.ListView.js
@@ -7,5 +7,7 @@
88 */
99 es.ListView = function( model ) {
1010 // Extension
11 - return es.extendObject( new es.DocumentViewBranchNode( model ), this );
 11+ var view = es.extendObject( new es.DocumentViewBranchNode( model ), this );
 12+ view.$.addClass( 'editSurface-listBlock' );
 13+ return view;
1214 };
Index: trunk/parsers/wikidom/lib/hype/views/es.HeadingView.js
@@ -0,0 +1,13 @@
 2+/**
 3+ * Creates an es.HeadingView object.
 4+ *
 5+ * @class
 6+ * @constructor
 7+ * @extends {es.DocumentViewLeafNode}
 8+ */
 9+es.HeadingView = function( model ) {
 10+ // Extension
 11+ var view = es.extendObject( new es.DocumentViewLeafNode( model, $('<h' + model.getElementAttribute( 'level' ) +'/>') ), this );
 12+ view.$.addClass( 'editSurface-headingBlock' );
 13+ return view;
 14+};
Index: trunk/parsers/wikidom/lib/hype/views/es.TableRowView.js
@@ -7,5 +7,7 @@
88 */
99 es.TableRowView = function( model ) {
1010 // Extension
11 - return es.extendObject( new es.DocumentViewBranchNode( model ), this );
 11+ var view = es.extendObject( new es.DocumentViewBranchNode( model, $( '<tr>' ) ), this );
 12+ view.$.attr( 'style', model.getElementAttribute( 'html/style' ) );
 13+ return view;
1214 };
Index: trunk/parsers/wikidom/demos/hype/es.js
@@ -3,6 +3,22 @@
44 'type': 'document',
55 'children': [
66 {
 7+ 'type': 'heading',
 8+ 'attributes': { 'level': 1 },
 9+ 'content': {
 10+ 'text': 'This is a heading (level 1)',
 11+ 'annotations': [
 12+ {
 13+ 'type': 'italic',
 14+ 'range': {
 15+ 'start': 10,
 16+ 'end': 17
 17+ }
 18+ }
 19+ ]
 20+ }
 21+ },
 22+ {
723 'type': 'paragraph',
824 'content': { 'text': 'Test 1' }
925 },
@@ -45,6 +61,69 @@
4662 }
4763 }
4864 ]
 65+ },
 66+ {
 67+ 'type': 'table',
 68+ 'attributes': { 'html/style': 'width: 600px; border: solid 1px;' },
 69+ 'children': [
 70+ {
 71+ 'type': 'tableRow',
 72+ 'children': [
 73+ {
 74+ 'type': 'tableCell',
 75+ 'attributes': { 'html/style': 'border: solid 1px;' },
 76+ 'children': [
 77+ {
 78+ 'type': 'paragraph',
 79+ 'content': { 'text': 'row 1 & cell 1' }
 80+ },
 81+ {
 82+ 'type': 'list',
 83+ 'children': [
 84+ {
 85+ 'type': 'listItem',
 86+ 'attributes': {
 87+ 'styles': ['bullet']
 88+ },
 89+ 'content': {
 90+ 'text': 'Test 4444'
 91+ }
 92+ },
 93+ {
 94+ 'type': 'listItem',
 95+ 'attributes': {
 96+ 'styles': ['bullet', 'bullet']
 97+ },
 98+ 'content': {
 99+ 'text': 'Test 55555'
 100+ }
 101+ },
 102+ {
 103+ 'type': 'listItem',
 104+ 'attributes': {
 105+ 'styles': ['number']
 106+ },
 107+ 'content': {
 108+ 'text': 'Test 666666'
 109+ }
 110+ }
 111+ ]
 112+ }
 113+ ]
 114+ },
 115+ {
 116+ 'type': 'tableCell',
 117+ 'attributes': { 'html/style': 'border: solid 1px;' },
 118+ 'children': [
 119+ {
 120+ 'type': 'paragraph',
 121+ 'content': { 'text': 'row 1 & cell 2' }
 122+ }
 123+ ]
 124+ }
 125+ ]
 126+ },
 127+ ]
49128 }
50129 ]
51130 };
Index: trunk/parsers/wikidom/demos/hype/index.html
@@ -3,10 +3,53 @@
44 <html>
55 <head>
66 <title>EditSurface Demo</title>
 7+ <link rel="stylesheet" href="../../lib/hype/es.Surface.css">
 8+ <link rel="stylesheet" href="es.css">
79 </head>
810 <body>
9 - <div id="es-editor">
10 -
 11+ <div id="es-base">
 12+ <div id="es-toolbar" class="es-toolbar">
 13+ <div class="es-toolbarGroup">
 14+ <div class="es-toolbarLabel">Text</div>
 15+ <div class="es-toolbarTool" id="es-toolbar-bold"><img src="images/bold.png"></div>
 16+ <div class="es-toolbarTool" id="es-toolbar-italic"><img src="images/italic.png"></div>
 17+ <div class="es-toolbarTool" id="es-toolbar-link"><img src="images/link.png"></div>
 18+ <div class="es-toolbarTool" id="es-toolbar-small"><img src="images/small.png"></div>
 19+ <div class="es-toolbarTool" id="es-toolbar-big"><img src="images/big.png"></div>
 20+ <div class="es-toolbarTool" id="es-toolbar-sub"><img src="images/sub.png"></div>
 21+ <div class="es-toolbarTool" id="es-toolbar-super"><img src="images/super.png"></div>
 22+ <div class="es-toolbarTool" id="es-toolbar-clear"><img src="images/clear.png"></div>
 23+ <div style="clear:both"></div>
 24+ </div>
 25+ <div class="es-toolbarDivider"></div>
 26+ <div class="es-toolbarGroup">
 27+ <div class="es-toolbarLabel">Lists</div>
 28+ <div class="es-toolbarTool" id="es-toolbar-bullet"><img src="images/bullet.png"></div>
 29+ <div class="es-toolbarTool" id="es-toolbar-number"><img src="images/number.png"></div>
 30+ <div class="es-toolbarTool" id="es-toolbar-indent"><img src="images/indent.png"></div>
 31+ <div class="es-toolbarTool" id="es-toolbar-outdent"><img src="images/outdent.png"></div>
 32+ <div style="clear:both"></div>
 33+ </div>
 34+ <div class="es-toolbarGroup es-toolbarGroup-preview">
 35+ <div class="es-toolbarTool" id="es-toolbar-json" rel="json"><img src="images/json.png"></div>
 36+ <div class="es-toolbarTool" id="es-toolbar-wikitext" rel="wikitext"><img src="images/wikitext.png"></div>
 37+ <div class="es-toolbarTool" id="es-toolbar-html" rel="html"><img src="images/html.png"></div>
 38+ <div class="es-toolbarTool" id="es-toolbar-render" rel="render"><img src="images/render.png"></div>
 39+ </div>
 40+ <div style="clear:both"></div>
 41+ </div>
 42+ <div id="es-panes">
 43+ <div id="es-visual">
 44+ <div id="es-editor"></div>
 45+ </div>
 46+ <div id="es-previews">
 47+ <div id="es-preview-wikitext" class="es-preview es-code"></div>
 48+ <div id="es-preview-json" class="es-preview es-code"></div>
 49+ <div id="es-preview-html" class="es-preview es-code"></div>
 50+ <div id="es-preview-render" class="es-preview es-render"></div>
 51+ </div>
 52+ <div style="clear:both"></div>
 53+ </div>
1154 </div>
1255
1356 <!-- EditSurface -->
@@ -30,6 +73,10 @@
3174 <script src="../../lib/hype/models/es.ParagraphModel.js"></script>
3275 <script src="../../lib/hype/models/es.ListModel.js"></script>
3376 <script src="../../lib/hype/models/es.ListItemModel.js"></script>
 77+ <script src="../../lib/hype/models/es.TableModel.js"></script>
 78+ <script src="../../lib/hype/models/es.TableRowModel.js"></script>
 79+ <script src="../../lib/hype/models/es.TableCellModel.js"></script>
 80+ <script src="../../lib/hype/models/es.HeadingModel.js"></script>
3481
3582 <!-- Views -->
3683 <script src="../../lib/hype/views/es.SurfaceView.js"></script>
@@ -38,6 +85,10 @@
3986 <script src="../../lib/hype/views/es.ParagraphView.js"></script>
4087 <script src="../../lib/hype/views/es.ListView.js"></script>
4188 <script src="../../lib/hype/views/es.ListItemView.js"></script>
 89+ <script src="../../lib/hype/views/es.TableView.js"></script>
 90+ <script src="../../lib/hype/views/es.TableRowView.js"></script>
 91+ <script src="../../lib/hype/views/es.TableCellView.js"></script>
 92+ <script src="../../lib/hype/views/es.HeadingView.js"></script>
4293
4394 <!-- Demo -->
4495 <script src="es.js"></script>
Index: trunk/parsers/wikidom/demos/hype/es.css
@@ -0,0 +1,132 @@
 2+body {
 3+ font-family: "Arial";
 4+ font-size: 1em;
 5+ width: 100%;
 6+ margin: 1em 0;
 7+ padding: 0;
 8+ overflow-y: scroll;
 9+ -webkit-user-select: none;
 10+ background-color: white;
 11+}
 12+#es-base {
 13+ margin: 2em;
 14+ -webkit-box-shadow: 0 0.25em 1.5em 0 #dddddd;
 15+ -moz-box-shadow: 0 0.25em 1.5em 0 #dddddd;
 16+ box-shadow: 0 0.25em 1.5em 0 #dddddd;
 17+ -webkit-border-radius: 0.5em;
 18+ -moz-border-radius: 0.5em;
 19+ -o-border-radius: 0.5em;
 20+ border-radius: 0.5em;
 21+}
 22+#es-toolbar,
 23+#es-panes {
 24+ border: solid 1px #dddddd;
 25+}
 26+#es-toolbar {
 27+ border-bottom: none;
 28+ -webkit-border-top-right-radius: 0.25em;
 29+ -moz-border-top-right-radius: 0.25em;
 30+ -o-border-top-right-radius: 0.25em;
 31+ border-top-right-radius: 0.25em;
 32+ -webkit-border-top-left-radius: 0.25em;
 33+ -moz-border-top-left-radius: 0.25em;
 34+ -o-border-top-left-radius: 0.25em;
 35+ border-top-left-radius: 0.25em;
 36+ background-image: url(images/fade-up.png);
 37+ background-position: bottom left;
 38+ background-repeat: repeat-x;
 39+}
 40+.es-showData #es-visual,
 41+.es-showData #es-previews {
 42+ width: 50%;
 43+ float: left;
 44+ overflow: hidden;
 45+}
 46+.es-showData #es-editor {
 47+ border-right: solid 1px #dddddd;
 48+}
 49+.es-toolbarGroup {
 50+ float: left;
 51+ padding: 0.25em;
 52+}
 53+.es-toolbarGroup-preview {
 54+ float: right;
 55+}
 56+.es-toolbarDivider {
 57+ float: left;
 58+ width: 1px;
 59+ height: 24px;
 60+ margin: 0.5em 0 0.5em 0.5em;
 61+ background-color: #dddddd;
 62+}
 63+.es-toolbarLabel {
 64+ float: left;
 65+ padding: 0.5em 0.75em;
 66+ line-height: 22px;
 67+ font-size: 0.8em;
 68+ color: #555555;
 69+}
 70+.es-toolbarTool {
 71+ float: left;
 72+ padding: 0.25em;
 73+ border: solid 1px transparent;
 74+ border-radius: 0.125em;
 75+ -webkit-border-radius: 0.125em;
 76+ -moz-border-radius: 0.125em;
 77+ -o-border-radius: 0.125em;
 78+ cursor: pointer;
 79+}
 80+.es-toolbarTool:hover,
 81+.es-toolbarTool-down:hover {
 82+ border-color: #eeeeee;
 83+}
 84+.es-toolbarTool:active,
 85+.es-toolbarTool-down {
 86+ border-color: #dddddd;
 87+ background-image: url(images/fade-down.png);
 88+ background-position: top left;
 89+ background-repeat: repeat-x;
 90+}
 91+.es-toolbarTool img {
 92+ display: block;
 93+ width: 22px;
 94+ height: 22px;
 95+}
 96+#es-previews {
 97+ display: none;
 98+}
 99+.es-showData #es-previews {
 100+ display: block;
 101+}
 102+.es-preview {
 103+ margin: 0;
 104+ padding: 1em;
 105+}
 106+.es-code {
 107+ white-space: pre-wrap;
 108+ font-family: "Droid Sans Mono", "Courier New", monospace;
 109+ font-size: 0.8em;
 110+}
 111+.es-render {
 112+ line-height: 1.5em;
 113+ padding-top: 0;
 114+}
 115+
 116+/* General MediaWiki Styles */
 117+
 118+.es-render ul {
 119+ line-height: 1.5em;
 120+ list-style-type: square;
 121+ margin: .3em 0 0 1.5em;
 122+ padding: 0;
 123+ list-style-image: url(images/bullet-icon.png);
 124+}
 125+.es-render ol {
 126+ line-height: 1.5em;
 127+ margin: .3em 0 0 3.2em;
 128+ padding: 0;
 129+ list-style-image: none;
 130+}
 131+.es-render li {
 132+ margin-bottom: .1em;
 133+}

Status & tagging log