diff --git a/pub/docs/dev/hoon/tutorial/0-nouns.mdy b/pub/docs/dev/hoon/tutorial/0-nouns.mdy index b0b040f81c..2de91dd8bc 100644 --- a/pub/docs/dev/hoon/tutorial/0-nouns.mdy +++ b/pub/docs/dev/hoon/tutorial/0-nouns.mdy @@ -1,7 +1,7 @@ --- title: Hoon 101.0: nouns, spans, and molds sort: 0 -next: false +next: true --- # Hoon 101.0: nouns, spans and molds @@ -32,8 +32,8 @@ digressions in braces. If you see a {paragraph} or two, assume it's of interest to language nerds only. These digressions are "guaranteed not on the test." -{The name "Hoon" is from the Wallace Stevens poem, _Tea at the -Palaz of Hoon_. It also means "hooligan" in Australian.} +> The name "Hoon" is from the Wallace Stevens poem, _Tea at the +Palaz of Hoon_. It also means "hooligan" in Australian. ## Nouns: data made boring @@ -48,11 +48,11 @@ Nouns are strict; there is no such thing as an infinite noun. And, of course, nouns are immutable. There's basically no way to have any real fun with nouns. -{Nouns are Lisp's S-expressions, minus a lot of hacks, tricks, +> Nouns are Lisp's S-expressions, minus a lot of hacks, tricks, and features that made sense 50 years ago. In particular, because atoms are not tagged (an atom can encode a string, for instance), nouns need a static type system. How do you print an -atom if you don't know whether it's a string or a number?} +atom if you don't know whether it's a string or a number? ## A type system for nouns diff --git a/pub/tree/src/css/main.css b/pub/tree/src/css/main.css index 898711d2c1..c5fd7e7ddc 100644 --- a/pub/tree/src/css/main.css +++ b/pub/tree/src/css/main.css @@ -164,6 +164,19 @@ code { padding: 0.2rem; display: inline-block; } +blockquote { + background-color: #f5f5f5; + margin: 0; + padding: 1rem; + font-style: italic; + margin-left: 3rem; +} +blockquote p { + margin: 0; +} +blockquote em { + font-style: normal; +} ul { list-style: none; padding: 0; diff --git a/pub/tree/src/css/main.styl b/pub/tree/src/css/main.styl index 045f6d1911..f59dc7832f 100644 --- a/pub/tree/src/css/main.styl +++ b/pub/tree/src/css/main.styl @@ -94,6 +94,19 @@ code padding .2rem display inline-block +blockquote + background-color #f5f5f5 + margin 0 + padding 1rem + font-style italic + margin-left 3rem + +blockquote p + margin 0 + +blockquote em + font-style normal + ul list-style none padding 0 diff --git a/pub/tree/src/js/components/BodyComponent.coffee b/pub/tree/src/js/components/BodyComponent.coffee index 6d17212929..ad92975683 100644 --- a/pub/tree/src/js/components/BodyComponent.coffee +++ b/pub/tree/src/js/components/BodyComponent.coffee @@ -20,7 +20,7 @@ Next = React.createFactory query { head:'r' meta:'j' }, (recl - displayName: "Links" + displayName: "Next" render: -> curr = @props.kids[@props.curr] if curr?.meta?.next @@ -32,9 +32,11 @@ Next = React.createFactory query { next = keys[next] next = @props.kids[next] - (div {className:"link-next"}, [ - (a {href:"#{@props.path}/#{next.name}"}, "Next: #{next.meta.title}") - ]) + if next + return (div {className:"link-next"}, [ + (a {href:"#{@props.path}/#{next.name}"}, "Next: #{next.meta.title}") + ]) + return (div {},"") ) module.exports = query { diff --git a/pub/tree/src/js/main.js b/pub/tree/src/js/main.js index 18a4eb6d25..c67d0651b6 100644 --- a/pub/tree/src/js/main.js +++ b/pub/tree/src/js/main.js @@ -35,7 +35,6 @@ module.exports = { }; - },{"../dispatcher/Dispatcher.coffee":14,"../persistence/TreePersistence.coffee":20}],2:[function(require,module,exports){ var BodyComponent, CLICK, Links, TreeActions, TreeStore, a, clas, div, query, reactify, recl, ref; @@ -315,7 +314,6 @@ module.exports = query({ }), div); - },{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":21,"./Async.coffee":3,"./BodyComponent.coffee":4,"./Reactify.coffee":11,"classnames":16}],3:[function(require,module,exports){ var TreeActions, TreeStore, _load, code, div, recl, ref, span; @@ -426,7 +424,6 @@ module.exports = function(queries, Child, load) { }; - },{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":21,"./LoadComponent.coffee":10}],4:[function(require,module,exports){ var Logo, Next, a, clas, div, img, p, query, reactify, recl, ref; @@ -469,7 +466,7 @@ Next = React.createFactory(query({ meta: 'j' } }, recl({ - displayName: "Links", + displayName: "Next", render: function() { var curr, index, keys, next, ref1; curr = this.props.kids[this.props.curr]; @@ -483,15 +480,18 @@ Next = React.createFactory(query({ } next = keys[next]; next = this.props.kids[next]; - return div({ - className: "link-next" - }, [ - a({ - href: this.props.path + "/" + next.name - }, "Next: " + next.meta.title) - ]); + if (next) { + return div({ + className: "link-next" + }, [ + a({ + href: this.props.path + "/" + next.name + }, "Next: " + next.meta.title) + ]); + } } } + return div({}, ""); } }))); @@ -532,7 +532,6 @@ module.exports = query({ })); - },{"./Async.coffee":3,"./Reactify.coffee":11,"classnames":16}],5:[function(require,module,exports){ var div, recl, ref, textarea; @@ -556,7 +555,6 @@ module.exports = recl({ }); - },{}],6:[function(require,module,exports){ var div, recl; @@ -579,7 +577,6 @@ module.exports = { }; - },{"./CodeMirror.coffee":5,"./EmailComponent.coffee":7,"./KidsComponent.coffee":8,"./ListComponent.coffee":9,"./SearchComponent.coffee":12,"./TocComponent.coffee":13}],7:[function(require,module,exports){ var button, div, input, p, reactify, recl, ref; @@ -660,7 +657,6 @@ module.exports = recl({ }); - },{"./Reactify.coffee":11}],8:[function(require,module,exports){ var a, div, hr, li, query, reactify, recl, ref, ul; @@ -732,7 +728,6 @@ module.exports = query({ })); - },{"./Async.coffee":3,"./Reactify.coffee":11}],9:[function(require,module,exports){ var a, clas, div, h1, li, pre, query, reactify, recl, ref, span, ul; @@ -888,7 +883,6 @@ module.exports = query({ })); - },{"./Async.coffee":3,"./Reactify.coffee":11,"classnames":16}],10:[function(require,module,exports){ var div, input, recl, ref, textarea; @@ -929,7 +923,6 @@ module.exports = recl({ }); - },{}],11:[function(require,module,exports){ var Virtual, div, load, reactify, recl, ref, rele, span, walk; @@ -997,7 +990,6 @@ module.exports = _.extend(reactify, { }); - },{"./LoadComponent.coffee":10}],12:[function(require,module,exports){ var a, div, input, query, reactify, recl, ref, slice = [].slice; @@ -1136,7 +1128,6 @@ module.exports = query({ })); - },{"./Async.coffee":3,"./Reactify.coffee":11}],13:[function(require,module,exports){ var div, query, reactify, recl, slice = [].slice; @@ -1265,7 +1256,6 @@ module.exports = query({ })); - },{"./Async.coffee":3,"./Reactify.coffee":11}],14:[function(require,module,exports){ var Dispatcher; @@ -1287,7 +1277,6 @@ module.exports = _.extend(new Dispatcher(), { }); - },{"flux":17}],15:[function(require,module,exports){ var rend; @@ -1461,7 +1450,6 @@ $(function() { }); - },{"./actions/TreeActions.coffee":1,"./components/AnchorComponent.coffee":2,"./components/BodyComponent.coffee":4,"./components/Components.coffee":6,"./persistence/TreePersistence.coffee":20}],16:[function(require,module,exports){ /*! Copyright (c) 2015 Jed Watson. @@ -1889,7 +1877,6 @@ module.exports = { }; - },{}],21:[function(require,module,exports){ var EventEmitter, MessageDispatcher, QUERIES, TreeStore, _curr, _data, _tree, clog; @@ -2115,7 +2102,6 @@ TreeStore.dispatchToken = MessageDispatcher.register(function(payload) { module.exports = TreeStore; - },{"../dispatcher/Dispatcher.coffee":14,"events":22}],22:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. //