| <!doctype html> |
| <html class="no-js" lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Books</title> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <!-- No caching headers --> |
| <meta http-equiv="cache-control" content="no-cache"> |
| <meta http-equiv="pragma" content="no-cache"> |
| <meta http-equiv="expires" content="-1"> |
| <!-- TODO: need to (re)instate CDN in the future (not using for now just so can develop off-line --> |
| <link href="./css/foundation/5.5.1/foundation.css" rel="stylesheet"> |
| <script src="./js/foundation/5.5.1/vendor/modernizr.js"></script> |
| <link href="./css/asciidoctor/colony.css" rel="stylesheet"> |
| <link href="./css/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"> |
| <link href="./css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.css" rel="stylesheet"> |
| <!--[if lt IE 9]> |
| <link href="./css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.ie.css" rel="stylesheet" /> |
| <![endif]--> |
| <style type="text/css"> |
| pre code { |
| background-color: inherit; |
| border-style: none; |
| } |
| |
| pre code > span:first-child { |
| margin-left: -5px; |
| } |
| |
| <style> |
| |
| <!-- |
| <style type="text/css"> |
| /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */ |
| /*pre.CodeRay {background-color:#f7f7f8;}*/ |
| .CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em} |
| .CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)} |
| .CodeRay .line-numbers strong{color:rgba(0,0,0,.4)} |
| table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none} |
| table.CodeRay td{vertical-align: top;line-height:1.45} |
| table.CodeRay td.line-numbers{text-align:right} |
| table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)} |
| table.CodeRay td.code{padding:0 0 0 .5em} |
| table.CodeRay td.code>pre{padding:0} |
| .CodeRay .debug{color:#fff !important;background:#000080 !important} |
| .CodeRay .annotation{color:#007} |
| .CodeRay .attribute-name{color:#000080} |
| .CodeRay .attribute-value{color:#700} |
| .CodeRay .binary{color:#509} |
| .CodeRay .comment{color:#998;font-style:italic} |
| .CodeRay .char{color:#04d} |
| .CodeRay .char .content{color:#04d} |
| .CodeRay .char .delimiter{color:#039} |
| .CodeRay .class{color:#458;font-weight:bold} |
| .CodeRay .complex{color:#a08} |
| .CodeRay .constant,.CodeRay .predefined-constant{color:#008080} |
| .CodeRay .color{color:#099} |
| .CodeRay .class-variable{color:#369} |
| .CodeRay .decorator{color:#b0b} |
| .CodeRay .definition{color:#099} |
| .CodeRay .delimiter{color:#000} |
| .CodeRay .doc{color:#970} |
| .CodeRay .doctype{color:#34b} |
| .CodeRay .doc-string{color:#d42} |
| .CodeRay .escape{color:#666} |
| .CodeRay .entity{color:#800} |
| .CodeRay .error{color:#808} |
| .CodeRay .exception{color:inherit} |
| .CodeRay .filename{color:#099} |
| .CodeRay .function{color:#900;font-weight:bold} |
| .CodeRay .global-variable{color:#008080} |
| .CodeRay .hex{color:#058} |
| .CodeRay .integer,.CodeRay .float{color:#099} |
| .CodeRay .include{color:#555} |
| .CodeRay .inline{color:#000} |
| .CodeRay .inline .inline{background:#ccc} |
| .CodeRay .inline .inline .inline{background:#bbb} |
| .CodeRay .inline .inline-delimiter{color:#d14} |
| .CodeRay .inline-delimiter{color:#d14} |
| .CodeRay .important{color:#555;font-weight:bold} |
| .CodeRay .interpreted{color:#b2b} |
| .CodeRay .instance-variable{color:#008080} |
| .CodeRay .label{color:#970} |
| .CodeRay .local-variable{color:#963} |
| .CodeRay .octal{color:#40e} |
| .CodeRay .predefined{color:#369} |
| .CodeRay .preprocessor{color:#579} |
| .CodeRay .pseudo-class{color:#555} |
| .CodeRay .directive{font-weight:bold} |
| .CodeRay .type{font-weight:bold} |
| .CodeRay .predefined-type{color:inherit} |
| .CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold} |
| .CodeRay .key{color:#808} |
| .CodeRay .key .delimiter{color:#606} |
| .CodeRay .key .char{color:#80f} |
| .CodeRay .value{color:#088} |
| .CodeRay .regexp .delimiter{color:#808} |
| .CodeRay .regexp .content{color:#808} |
| .CodeRay .regexp .modifier{color:#808} |
| .CodeRay .regexp .char{color:#d14} |
| .CodeRay .regexp .function{color:#404;font-weight:bold} |
| .CodeRay .string{color:#d20} |
| .CodeRay .string .string .string{background:#ffd0d0} |
| .CodeRay .string .content{color:#d14} |
| .CodeRay .string .char{color:#d14} |
| .CodeRay .string .delimiter{color:#d14} |
| .CodeRay .shell{color:#d14} |
| .CodeRay .shell .delimiter{color:#d14} |
| .CodeRay .symbol{color:#990073} |
| .CodeRay .symbol .content{color:#a60} |
| .CodeRay .symbol .delimiter{color:#630} |
| .CodeRay .tag{color:#008080} |
| .CodeRay .tag-special{color:#d70} |
| .CodeRay .variable{color:#036} |
| .CodeRay .insert{background:#afa} |
| .CodeRay .delete{background:#faa} |
| .CodeRay .change{color:#aaf;background:#007} |
| .CodeRay .head{color:#f8f;background:#505} |
| .CodeRay .insert .insert{color:#080} |
| .CodeRay .delete .delete{color:#800} |
| .CodeRay .change .change{color:#66f} |
| .CodeRay .head .head{color:#f4f} |
| |
| pre.CodeRay code { |
| background-color: inherit; |
| border-style: none; |
| } |
| |
| pre.CodeRay code > span:first-child { |
| margin-left: -5px; |
| } |
| |
| .literalblock pre, |
| .listingblock pre:not(.highlight), |
| .listingblock pre[class="highlight"], |
| .listingblock pre[class^="highlight "], |
| .listingblock pre.CodeRay, |
| .listingblock pre.prettyprint { |
| background: rgb(253, 250, 246); |
| } |
| .sidebarblock .literalblock pre, |
| .sidebarblock .listingblock pre:not(.highlight), |
| .sidebarblock .listingblock pre[class="highlight"], |
| .sidebarblock .listingblock pre[class^="highlight "], |
| .sidebarblock .listingblock pre.CodeRay, |
| .sidebarblock .listingblock pre.prettyprint { |
| background: rgb(253, 250, 246); |
| } |
| |
| <style> |
| --> |
| |
| <style> |
| .github-fork-ribbon-wrapper.right { |
| position: fixed; |
| } |
| .github-fork-ribbon { |
| background: #090; |
| } |
| .github-fork-ribbon a:hover { |
| background:#0D0; |
| color:#fff; |
| font-size: 1.1em; |
| } |
| </style> |
| <style> |
| @media only screen and (min-width: 40.063em) { |
| .top-bar { |
| .contain-to-grid .top-bar { |
| max-width: 80rem; |
| } |
| } |
| } |
| .row { |
| max-width: 80rem; |
| } |
| </style> |
| <style> |
| .extended-quote, |
| .extended-quote-first { |
| margin-left: 40px; |
| margin-right: 40px; |
| font-style: italic; |
| } |
| .extended-quote-attribution { |
| text-align: right; |
| margin-right: 100px; |
| color: #10B061; |
| } |
| |
| .extended-quote-first:before { |
| content: "\201c"; |
| float: left; |
| font-size: 2.75em; |
| font-weight: bold; |
| line-height: 0.6em; |
| margin-left: -0.6em; |
| color: #003b6b; |
| text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); |
| } |
| |
| </style> |
| <style> |
| body { |
| position: relative; |
| } |
| |
| *:not(pre) a > code { |
| color: #210DDC; |
| } |
| |
| *:not(pre) > code { |
| background-color: inherit; |
| border: none; |
| font-weight: normal; |
| } |
| |
| body div#toc li, |
| body div#toc2 li { |
| list-style-type: none; |
| } |
| |
| div#doc-content { |
| margin-top: 30px; |
| padding-top: 30px; |
| } |
| |
| div.documentation-page table.frame-all { |
| border-left: none; |
| border-right: none; |
| } |
| |
| body div#toc li.active-region:before, |
| body div#toc2 li.active-region:before { |
| content: "\00BB \0020"; |
| margin-left: -12px; |
| } |
| |
| body div#toc li a.active, |
| body div#toc2 li a.active { |
| color: red; |
| } |
| |
| body div#toc.toc, |
| body div#toc.toc2 { |
| position: fixed; |
| left: auto; |
| padding-top: 60px; |
| z-index: auto; |
| background-color: white; |
| border-left-color: #eee; |
| border-left-style: solid; |
| border-right: none; |
| min-height: 2000px; |
| } |
| |
| </style> |
| <style> |
| |
| @media only screen and (min-width: 768px) { |
| #toc.toc2 ul ul { margin-left: -10px; } |
| } |
| |
| |
| body div#toc .tocify-subheader ul { |
| margin-bottom: 0px; |
| } |
| |
| body div#toc .tocify-subheader li { |
| font-size: 14px; |
| } |
| .tocify li.tocify-item, .tocify ul.tocify-item { |
| line-height: 24px; |
| } |
| |
| body div#toc li.tocify-item.active:before, |
| body div#toc2 li.tocify-item.active:before { |
| content: "\00BB \0020"; |
| margin-left: -12px; |
| } |
| |
| body div#toc li.tocify-item.active a, |
| body div#toc2 li.tocify-item.active a { |
| color: red; |
| } |
| </style> |
| <style> |
| footer { |
| margin-top: 1000px; |
| } |
| </style> |
| <style> |
| /* overriding colony.css stylesheet */ |
| .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { |
| /*padding: 1.25em 1.5625em 1.125em 1.5625em;*/ |
| padding: 0.3em 0.6em 0.25em 0.6em; |
| } |
| @media only screen and (min-width: 1280px) |
| #toc.toc2 { |
| /*width: 20em;*/ |
| width: 25em; |
| } |
| |
| #doc-content a { |
| color: #210DDC; |
| } |
| |
| .top-bar h1 { |
| border-bottom: inherit; |
| } |
| |
| h2 { |
| margin-top: 80px; |
| } |
| h3 { |
| margin-top: 40px; |
| } |
| h4,h5 { |
| margin-top: 30px; |
| } |
| |
| .admonitionblock.tip > table td.content { |
| color: #10B061; |
| } |
| .admonitionblock.note > table td.content { |
| color: #B509AB; |
| } |
| .admonitionblock.important > table td.content { |
| color: #D5810A; |
| } |
| |
| .admonitionblock .title { |
| font-size: larger; |
| font-style: italic; |
| } |
| |
| .imageblock img { |
| margin-bottom: 10px; |
| } |
| </style> |
| <style> |
| /* from http://ben.balter.com/2014/03/13/pages-anchor-links/ */ |
| .header-link { |
| position: absolute; |
| left: -0.5em; |
| opacity: 0; |
| |
| /* |
| -webkit-transition: opacity 0.2s ease-in-out 0.1s; |
| -moz-transition: opacity 0.2s ease-in-out 0.1s; |
| -ms-transition: opacity 0.2s ease-in-out 0.1s; |
| */ |
| } |
| |
| h2:hover .header-link, |
| h3:hover .header-link, |
| h4:hover .header-link, |
| h5:hover .header-link, |
| h6:hover .header-link { |
| opacity: 1; |
| } |
| </style> |
| <style> |
| .top-bar |
| { |
| -webkit-transition-duration: .5s; |
| transition-duration: .5s; |
| |
| -webkit-transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 ); |
| transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 ); |
| |
| -webkit-transition-property: -webkit-transform; |
| transition-property: transform; |
| } |
| |
| /* |
| http://osvaldas.info/auto-hide-sticky-header |
| MIT license |
| */ |
| .header--hidden |
| { |
| -webkit-transform: translateY( -100% ); |
| -ms-transform: translateY( -100% ); |
| transform: translateY( -100% ); |
| |
| transition-duration: .5s; |
| transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 1.000 ); |
| -webkit-transition-property: -webkit-transform; |
| transition-property: transform; |
| } |
| </style> |
| <style> |
| #doc-content a.guide { |
| color: white; |
| } |
| </style> |
| <style> |
| .tocify { |
| margin-top: 80px; |
| } |
| </style> |
| <style> |
| .tocify { |
| margin-top: 80px; |
| } |
| </style> |
| </head> |
| <body> |
| <div class="row"> |
| <div class="fixed contain-to-grid header"> |
| <nav class="top-bar" data-topbar role="navigation" style="max-width: 80rem"> |
| <ul class="title-area"> |
| <li class="name"> <h1> <a href="/index.html">Apache Isisâ„¢</a> </h1> </li> |
| <!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone --> |
| <li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li> |
| </ul> |
| <section class="top-bar-section"> |
| <ul class="right"> |
| <li class="has-form"> |
| <form class="searchbox navbar-form navbar-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse"> |
| <div class="row collapse"> |
| <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya"> |
| <input type="hidden" name="cof" value="FORID:0"> |
| <input class="form-control" name="q" type="text" placeholder="Search"> |
| </div> |
| </form> </li> |
| </ul> |
| <!-- Left Nav Section --> |
| <ul class="left"> |
| <li><a href="/documentation.html">Documentation</a></li> |
| <li><a href="/downloads.html">Downloads</a></li> |
| <li><a href="/help.html">Help</a></li> |
| <li><a href="/asf.html">@ASF</a></li> |
| </ul> |
| </section> |
| </nav> |
| </div> |
| </div> |
| <div class="row"> |
| <div id="doc-content-left" class="large-9 medium-9 columns"> |
| <div id="doc-content"> |
| <button type="button" class="button secondary" onclick="window.location.href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/books.adoc"" style="float: right; font-size: small; padding: 6px; "><i class="fa fa-pencil-square-o"></i> Edit</button> |
| <div id="preamble"> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Although it has evolved since, the <em>Apache Isis</em> framework started out as an open source implementation of the naked objects pattern. Indeed, the generic user interfaces provided by Apache Isis <a href="../../components/viewers/wicket/about.html">Wicket</a> viewer and the <a href="../../components/viewers/restfulobjects/about.html">Restful Objects</a> viewer are both "just" naked objects implementations; the first serves up a default generic representation of domain objects for human interaction, the latter serving up representation intended for machine consumption rather than human beings.</p> |
| </div> |
| <div class="paragraph"> |
| <p>If the idea of naked objects is of interest, then there are a couple of books on the topic that you might want to read.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_naked_objects">Naked Objects</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Richard Pawson and Robert Matthews, Wiley 2002</p> |
| </div> |
| <div class="imageblock"> |
| <div class="content"> |
| <a class="image" href="images//books/nakedobjects-book.jpg"><img src="images//books/nakedobjects-book.jpg" alt="nakedobjects book" width="159px"></a> |
| </div> |
| </div> |
| <div class="paragraph"> |
| <p>This book describes the original ideas of Naked Objects. Although based on a very early version of the framework, it’s still definitely worth a read (and beautifully produced).</p> |
| </div> |
| <div class="paragraph"> |
| <p>Amazon quotes: (avg 5 stars)</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> <p>Brilliant argument and toolkit for information systems</p> </li> |
| <li> <p>Most thoughtful and beautiful technical book I have read</p> </li> |
| <li> <p>Excellent presentation of an innovative practical idea</p> </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>The book is freely available online <a href="http://www.nakedobjects.org/book/">here</a>. Or, you can get a hardcopy of the book at <a href="http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470844205.html">Wiley (publisher)</a> and <a href="http://www.amazon.com/Naked-Objects-Richard-Pawson/dp/0470844205">Amazon</a>.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_domain_driven_design_using_naked_objects">Domain Driven Design using Naked Objects</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Dan Haywood, Pragmatic Bookshelf 2009</p> |
| </div> |
| <div class="imageblock"> |
| <div class="content"> |
| <a class="image" href="images//books/dhnako.jpg"><img src="images//books/dhnako.jpg" alt="dhnako" width="167px"></a> |
| </div> |
| </div> |
| <div class="paragraph"> |
| <p>This more recent book draws the parallel between domain-driven design and Naked Objects (4.0). In the spirit of the Pragmatic Bookshelf, it’s a practical, hands-on sort of book, building up a case study as it goes and encouraging you to build your own app as you go.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Amazon quotes: (avg 4.5 stars)</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> <p>Important Contribution to Domain-Driven Design</p> </li> |
| <li> <p>The easy-to-learn Naked Objects Framework .. provide[s] a masterful exposition on DDD</p> </li> |
| <li> <p>Clear and passionate book about a great subject</p> </li> |
| <li> <p>Excellent book and a great framework</p> </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>You can find the book at <a href="http://www.pragprog.com/titles/dhnako/domain-driven-design-using-naked-objects">Pragmatic Bookshelf (publisher)</a> and <a href="http://www.amazon.com/Domain-Driven-Design-Objects-Pragmatic-Programmers/dp/1934356441">Amazon</a>.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_restful_objects_specification">Restful Objects Specification</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Dan Haywood</p> |
| </div> |
| <div class="paragraph"> |
| <p>The <a href="http://restfulobjects.org">Restful Objects specification</a> defines a set of RESTful resources, and corresponding JSON representations, for accessing and manipulating a domain object model.</p> |
| </div> |
| <div class="paragraph"> |
| <p>This is a comprehensive specification, running to over 200 pages in length. It is implemented by Apache Isis' <a href="../../components/viewers/restfulobjects/about.html">Restful Objects</a> viewer, and is also implemented by another (non-Apache) open source project, <a href="http://nakedobjects.codeplex.com">Naked Objects MVC</a>.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| <footer> |
| <hr> |
| <p class="small"> Copyright © 2010~2016 The Apache Software Foundation, licensed under the Apache License, v2.0. <br> Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation. </p> |
| </footer> |
| </div> |
| <div id="doc-content-right" class="large-3 medium-3 xcolumns"> |
| <div id="toc" class="toc2"> |
| <div class="fallback-toc"> |
| <ul class="sectlevel1"> |
| <li><a href="#_naked_objects">Naked Objects</a></li> |
| <li><a href="#_domain_driven_design_using_naked_objects">Domain Driven Design using Naked Objects</a></li> |
| <li><a href="#_restful_objects_specification">Restful Objects Specification</a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </div> |
| <script src="./js/foundation/5.5.1/vendor/jquery.js"></script> |
| <script src="./js/foundation/5.5.1/foundation.min.js"></script> |
| <link href="./css/jquery.tocify/1.9.0/jquery.tocify.css" rel="stylesheet"> |
| <script src="./js/jqueryui/1.11.4/jquery-ui.min.js"></script> |
| <script src="./js/jquery.tocify/1.9.0/jquery.tocify.js"></script> |
| <script type="text/javascript"> |
| $(function () { |
| $("#toc").tocify({ |
| scrollTo: 50, |
| extendPage: true, |
| context: "#doc-content", |
| highlightOnScroll: true, |
| hashGenerator: "pretty", |
| hideEffect: "slideUp", |
| selectors: "h2,h3,h4,h5" |
| }); |
| $(".fallback-toc").hide(); |
| }); |
| </script> |
| <script type="text/javascript"> |
| |
| /**** |
| |
| $(document).foundation(); |
| |
| $(document).ready(function(){ |
| // Cache selectors |
| var lastId, |
| topMenu = $("div#toc ul"), |
| topMenuHeight = 100, |
| |
| menuItems = topMenu.find("a"), |
| menuItemsHrefs = menuItems.map(function(){ |
| var item = $($(this).attr("href")); |
| if (item.length) { return item; } |
| }); |
| |
| // Bind click handler to menu items to scroll animation |
| menuItems.click(function(e){ |
| var href = $(this).attr("href"), |
| offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight+1; |
| $('html, body').stop().animate({ |
| scrollTop: offsetTop |
| }, 300); |
| |
| e.preventDefault(); |
| }); |
| |
| // Bind to scroll of window |
| $( window ).scroll(function(){ |
| |
| // Get container scroll position |
| var fromTop = $(this).scrollTop()+topMenuHeight; |
| |
| var cur = menuItemsHrefs.map(function(){ |
| if ($(this).offset().top < fromTop) |
| return this; |
| }); |
| |
| // Get the id of the current element |
| cur = cur[cur.length-1]; |
| |
| var id = cur && cur.length ? cur[0].id : ""; |
| |
| if (lastId !== id && id) { |
| scrollTo(id); |
| } |
| |
| window.history.pushState({}, "", window.location.origin + window.location.pathname + "#" + id); |
| }); |
| |
| scrollTo = function(id) { |
| lastId = id; |
| |
| menuItems |
| .removeClass("active"); |
| |
| menuItems |
| .parents() |
| .removeClass("active-region"); |
| |
| menuItems |
| .parents("ul").hide(); |
| |
| menuItems |
| .filter("[href=#"+id+"]") |
| .addClass("active"); |
| |
| menuItems |
| .filter("[href=#"+id+"]") |
| .parents("ul").show(); |
| |
| menuItems |
| .filter("[href=#"+id+"]") |
| .parent().children("ul").show(); |
| |
| menuItems |
| .filter("[href=#"+id+"]") |
| .parents("li").addClass("active-region"); |
| |
| } |
| menuItems |
| .removeClass("active"); |
| |
| menuItems |
| .parents() |
| .removeClass("active-region"); |
| |
| var syncMenuItem; |
| if(window.location.hash!=="") { |
| var menuItemFor = $.grep(menuItems, function(e) { |
| return e.hash === window.location.hash; |
| }); |
| console.log(menuItemFor); |
| if(menuItemFor.length === 1) { |
| syncMenuItem = menuItemFor[0]; |
| } |
| } |
| |
| if(!syncMenuItem){ |
| syncMenuItem = menuItems[0]; |
| } |
| |
| $(syncMenuItem).click(); |
| |
| }); |
| |
| ***/ |
| |
| </script> |
| <script type="text/javascript"> |
| |
| $(document).ready(function(){ |
| if("Documentation" === "Books") { |
| console.log( "processing 'Documentation'" ); |
| |
| $("#doc-content-left").removeClass("large-9").removeClass("medium-9").addClass("large-12").addClass("medium-12"); |
| $("#doc-content-right").removeClass("large-3").removeClass("medium-3").hide(); |
| } |
| |
| }); |
| |
| </script> |
| <script> |
| |
| $( document ).ready(function() { |
| |
| (function() { |
| $(function() { |
| return $("#doc-content h2, #doc-content h3, #doc-content h4, #doc-content h5, #doc-content h6").each(function(i, el) { |
| var $el, icon, id; |
| $el = $(el); |
| id = $el.attr('id'); |
| icon = '<i class="fa fa-link"></i>'; |
| if (id) { |
| return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon)); |
| } |
| }); |
| }); |
| }).call(this); |
| |
| |
| |
| /* |
| http://osvaldas.info/auto-hide-sticky-header |
| MIT license |
| */ |
| ;( function( $, window, document, undefined ) |
| { |
| 'use strict'; |
| |
| var elSelector = '.header', |
| elClassHidden = 'header--hidden', |
| throttleTimeout = 500, |
| $element = $( elSelector ); |
| |
| if( !$element.length ) return true; |
| |
| var $window = $( window ), |
| wHeight = 0, |
| wScrollCurrent = 0, |
| wScrollBefore = 0, |
| wScrollDiff = 0, |
| $document = $( document ), |
| dHeight = 0, |
| |
| throttle = function( delay, fn ) |
| { |
| var last, deferTimer; |
| return function() |
| { |
| var context = this, args = arguments, now = +new Date; |
| if( last && now < last + delay ) |
| { |
| clearTimeout( deferTimer ); |
| deferTimer = setTimeout( function(){ last = now; fn.apply( context, args ); }, delay ); |
| } |
| else |
| { |
| last = now; |
| fn.apply( context, args ); |
| } |
| }; |
| }; |
| |
| $window.on( 'scroll', throttle( throttleTimeout, function() |
| { |
| dHeight = $document.height(); |
| wHeight = $window.height(); |
| wScrollCurrent = $window.scrollTop(); |
| wScrollDiff = wScrollBefore - wScrollCurrent; |
| |
| if( wScrollCurrent <= 0 ) // scrolled to the very top; element sticks to the top |
| $element.removeClass( elClassHidden ); |
| |
| else if( wScrollDiff > 0 && $element.hasClass( elClassHidden ) ) // scrolled up; element slides in |
| $element.removeClass( elClassHidden ); |
| |
| else if( wScrollDiff < 0 ) // scrolled down |
| { |
| if( wScrollCurrent + wHeight >= dHeight && $element.hasClass( elClassHidden ) ) // scrolled to the very bottom; element slides in |
| $element.removeClass( elClassHidden ); |
| |
| else // scrolled down; element slides out |
| $element.addClass( elClassHidden ); |
| } |
| |
| wScrollBefore = wScrollCurrent; |
| })); |
| |
| })( jQuery, window, document ); |
| |
| |
| }); |
| </script> |
| </body> |
| </html> |