You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/06/17 09:50:44 UTC
[24/46] isis-site git commit: recreating using new scripts...
http://git-wip-us.apache.org/repos/asf/isis-site/blob/8372c492/content/index.html
----------------------------------------------------------------------
diff --git a/content/index.html b/content/index.html
index dee20e2..7e7dd83 100644
--- a/content/index.html
+++ b/content/index.html
@@ -1,949 +1,949 @@
-<!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>Apache Isis</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/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
- <link href="./css/slick/1.5.0/slick.css" rel="stylesheet">
- <link href="./css/slick/1.5.0/slick-theme.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">
- <%= ::Asciidoctor::Stylesheets.instance.coderay_stylesheet_data %>
-
- 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>
- small {
- font-size: 90%;
- }
- </style>
- <style>
- .slick-slide img {
- padding:30px;
- }
- .slick-slide.slick-active img {
- padding: 10px;
- }
-
- .slick-prev:before, .slick-next:before {
- color: #AA3633;
- }
- </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;
- }
-
- 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: 200px;
- }
- </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>
- .tocify {
- margin-top: 80px;
- }
- </style>
-
-
-</script>
-
-</head>
-<body>
-
-<div class="github-fork-ribbon-wrapper right" style="position: fixed;">
- <div class="github-fork-ribbon">
- <a href="https://github.com/apache/isis/fork">Fork me on GitHub</a>
- </div>
-</div>
-
-<div class="homepage">
- <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 class="large-12 medium-12 columns">
-
- <br/>
- <br/>
- <br/>
-
- <div class="panel radius">
-
- <div class="row">
- <div class="large-6 medium-6 columns">
- <img class="logo" src="./images/isis-logo-568x286.png" alt="Apache Isis"/>
- </div>
- <div class="large-1 medium-1 columns">
-
- </div>
- <div class="large-4 medium-4 columns">
-
-
- <div class="quote-carousel">
-
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>I like the guidance Apache Isis gives me for structuring code along the lines of Domain Driven Design. My first web application in plain Java without writing a single line of DDL or HTML/*Script.</p>
- <small>Joerg Rade</small>
- </div>
- </div>
- </blockquote>
- </div>
-
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>A fantastic framework! With Apache Isis we can prototype a deployable application in minutes rather than days.</p>
- <small>Jeremy Branham</small>
- </div>
- </div>
- </blockquote>
- </div>
-
-
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>From a Sprint retrospective:</p>
- <p>"We normally don't see anything at all for the first three months, and now you're showing me working screens after two weeks"</p>
- <small>Project programme manager</small>
- </div>
- </div>
- </blockquote>
- </div>
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>Apache Isis enabled us to focus on the problem domain and data quality and - because the UI was generated for us by the framework - not get distracted by UI concerns. Identified security issues were quickly addressed by the Apache Isis committers.</p>
- <small>Architect</small>
- </div>
- </div>
- </blockquote>
- </div>
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>Support from the Apache Isis community is excellent. I sense a love and dedication that is inspiring.</p>
- <small>Johan Doornenbal</small>
- </div>
- </div>
- </blockquote>
- </div>
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>Isis provided us with a great starting point for our app; we simply took the todoapp archetype and used it as a template to help set up our integration tests and BDD specs. We were productive almost immediately</p>
- <small>Vladimir Nisevic, A1 Telekom Austria</small>
- </div>
- </div>
- </blockquote>
- </div>
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>From a Sprint retrospective, having switched to using Isis:</p>
- <p>"This is already looking better than anything we saw after six months of work in the first phase"</p>
- <small>Project test manager</small>
- </div>
- </div>
- </blockquote>
- </div>
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>We use Isis because of its simple and fast user interface generation.</p>
- <small>Andreas Lechner</small>
- </div>
- </div>
- </blockquote>
- </div>
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>Apache Isis is one of the best tools for hackathons. Given a 2 day hackathon challenge I have the perfect framework to create my prototype helping me to focus on business logic.</p>
- <small>Sunand Padmanabhan</small>
- </div>
- </div>
- </blockquote>
- </div>
- <div>
- <blockquote>
- <div class="row">
- <div class="large-12 medium-12">
- <p>From a Sprint retrospective, the criticism of one lead developer sounded more like praise:</p>
- <p>"The problem is that if we show this to the customer they will think that all the work is done."</p>
- <small>provided by Ged Byrne</small>
- </div>
- </div>
- </blockquote>
- </div>
-
- </div>
- </div>
- <div class="large-1 medium-1 columns">
-
- </div>
- </div>
-
- <div class="row">
- <div class="large-12 medium-12 columns">
- <div class="description">
- <h3 class="legend">Domain Driven Applications, Quickly</h3>
- <p>Apache Isis™ is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services or view models, and the framework dynamically generates a representation of that domain model as a webapp or a RESTful API.</p>
-
- <p><a class="button btn btn-primary btn-lg learn-more" href="./documentation.html" role="button">Learn more »</a></p>
- </div>
- </div>
- </div>
- </div>
-
-
- <div class="container">
- <div class="row">
- <div class="large-4 medium-4 columns">
- <h2>UI "for free"</h2>
- <p>Isis dynamically builds a generic UI directly from the underlying domain objects.
- This makes for extremely rapid prototyping and a short feedback cycle, perfect for agile development.
- The UI can also be extended for specific use cases, and can be themed using <a href="http://getbootstrap.com">Bootstrap</a>.</p>
- <p><a class="button small info radius" href="./isis-in-pictures.html" role="button">See Isis in action »</a></p>
- </div>
- <div class="large-4 medium-4 columns">
- <h2>Domain-Driven</h2>
- <p>The core of an Isis application are the domain objects, either persisted entities or view models.
- Business rules can be associated directly with domain objects, or can be factored out into separate
- services. Isis performs dependency injection everywhere to ensure that the application remains decoupled.</p>
- <p><a class="button small info radius" href="./documentation.html" role="button">Read the docs »</a></p>
- </div>
- <div class="large-4 medium-4 columns">
- <h2>Add-ons <small>(non ASF)</small></h2>
- <p>Isis has a large number of github-hosted add-on modules for security, auditing, command profiling, mail merge and other cross-cutting concerns. It also has a number of UI extensions
- for maps, calendars and so on. All are open source and designed for out-of-the-box use or to fork as you require.</p>
- <p><a class="button small info radius" href="http://www.isisaddons.org" role="button">Inspect the add-ons »</a></p>
- </div>
- </div>
-
- <br/>
-
- <div class="row">
- <div class="large-12 medium-12 columns">
- <h4>A typical application built with Apache Isis</h4>
- <br/>
- <p>Like all Isis apps, the UI is dynamically built from the domain model.</p>
-
- <img class="estatio" src="./images/powered-by/estatio-1.png" style="width: 98%"/>
-
- <div class="center">
- <br/>
- <p>You can learn more about this particular application <a href="./intro/powered-by/powered-by.html">here</a>.
- The app is also open source, so you can check out its source code on <a href="http://github.com/estatio/estatio">github</a>.</p>
- </div>
- <br/>
- </div>
- </div>
-
- <br/>
-
- <div class="row">
- <div class="large-12 medium-12 columns">
- <h4>Getting started</h4>
- <br/>
- <p>Start developing your own Isis application using our <a href="intro/getting-started/simpleapp-archetype.html">simpleapp archetype</a>:</p>
- </div>
- </div>
- <div class="row">
- <div class="large-12 medium-12 columns">
- <div class=panel>
- <pre>
-mvn archetype:generate \
- -D archetypeGroupId=org.apache.isis.archetype \
- -D archetypeArtifactId=simpleapp-archetype \
- -D archetypeVersion=1.8.0 \
- -D groupId=com.mycompany \
- -D artifactId=myapp \
- -D version=1.0-SNAPSHOT \
- -B</pre>
- </div>
- </div>
- </div>
-
- <br/>
-
- <div class="row">
- <div class="large-12 medium-12 columns">
- <h4>Tutorial</h4>
- <br/>
- <p>... and this short tutorial should give you an idea as to how Apache Isis dynamically builds the UI:</p>
- </div>
- </div>
-
- <div class="row panel">
-
- <div class="large-1 medium-1 columns">
-
- </div>
- <div class="large-10 medium-10 columns">
-
- <div class="tutorial-carousel">
-
- <div>
- <img src="images/index-screenshots/010-sign-in.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/020-object-layout.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/030-declarative-business-rules.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/040-imperative-business-rules.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/050-action-with-args.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/060-action-with-args-autocomplete.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/070-jdo.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/080-rest-api.png"></img>
- </div>
- <div>
- <img src="images/index-screenshots/090-integtesting.png"></img>
- </div>
- </div>
- </div>
- <div class="large-1 medium-1 columns">
-
- </div>
- </div>
- </div>
-
-
- <footer>
- <hr>
- <p class="small">
- Copyright © 2010~2015 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>
-</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 src="./js/slick/1.5.0/slick.min.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>
-
-$( document ).ready(function() {
- console.log( "ready!" );
-
- (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>
-
-
-<script type="text/javascript">
-$(document).ready(function(){
- $('.quote-carousel').slick({
- arrows: true,
- autoplay: true,
- dots:true,
- centerMode:false,
- infinite: true
- });
-$('.tutorial-carousel').slick({
- arrows: true,
- dots:true,
- autoplay: true,
- autoplaySpeed: 6000,
- slidesToShow: 1,
- centerMode:true,
- centerPadding:'80px',
- infinite: true
- });
-});
-</script>
-
-
- </body>
-</html>
+<!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>Apache Isis</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/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
+ <link href="./css/slick/1.5.0/slick.css" rel="stylesheet">
+ <link href="./css/slick/1.5.0/slick-theme.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">
+ <%= ::Asciidoctor::Stylesheets.instance.coderay_stylesheet_data %>
+
+ 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>
+ small {
+ font-size: 90%;
+ }
+ </style>
+ <style>
+ .slick-slide img {
+ padding:30px;
+ }
+ .slick-slide.slick-active img {
+ padding: 10px;
+ }
+
+ .slick-prev:before, .slick-next:before {
+ color: #AA3633;
+ }
+ </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;
+ }
+
+ 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: 200px;
+ }
+ </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>
+ .tocify {
+ margin-top: 80px;
+ }
+ </style>
+
+
+</script>
+
+</head>
+<body>
+
+<div class="github-fork-ribbon-wrapper right" style="position: fixed;">
+ <div class="github-fork-ribbon">
+ <a href="https://github.com/apache/isis/fork">Fork me on GitHub</a>
+ </div>
+</div>
+
+<div class="homepage">
+ <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 class="large-12 medium-12 columns">
+
+ <br/>
+ <br/>
+ <br/>
+
+ <div class="panel radius">
+
+ <div class="row">
+ <div class="large-6 medium-6 columns">
+ <img class="logo" src="./images/isis-logo-568x286.png" alt="Apache Isis"/>
+ </div>
+ <div class="large-1 medium-1 columns">
+
+ </div>
+ <div class="large-4 medium-4 columns">
+
+
+ <div class="quote-carousel">
+
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>I like the guidance Apache Isis gives me for structuring code along the lines of Domain Driven Design. My first web application in plain Java without writing a single line of DDL or HTML/*Script.</p>
+ <small>Joerg Rade</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>A fantastic framework! With Apache Isis we can prototype a deployable application in minutes rather than days.</p>
+ <small>Jeremy Branham</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+
+
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>From a Sprint retrospective:</p>
+ <p>"We normally don't see anything at all for the first three months, and now you're showing me working screens after two weeks"</p>
+ <small>Project programme manager</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>Apache Isis enabled us to focus on the problem domain and data quality and - because the UI was generated for us by the framework - not get distracted by UI concerns. Identified security issues were quickly addressed by the Apache Isis committers.</p>
+ <small>Architect</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>Support from the Apache Isis community is excellent. I sense a love and dedication that is inspiring.</p>
+ <small>Johan Doornenbal</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>Isis provided us with a great starting point for our app; we simply took the todoapp archetype and used it as a template to help set up our integration tests and BDD specs. We were productive almost immediately</p>
+ <small>Vladimir Nisevic, A1 Telekom Austria</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>From a Sprint retrospective, having switched to using Isis:</p>
+ <p>"This is already looking better than anything we saw after six months of work in the first phase"</p>
+ <small>Project test manager</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>We use Isis because of its simple and fast user interface generation.</p>
+ <small>Andreas Lechner</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>Apache Isis is one of the best tools for hackathons. Given a 2 day hackathon challenge I have the perfect framework to create my prototype helping me to focus on business logic.</p>
+ <small>Sunand Padmanabhan</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+ <div>
+ <blockquote>
+ <div class="row">
+ <div class="large-12 medium-12">
+ <p>From a Sprint retrospective, the criticism of one lead developer sounded more like praise:</p>
+ <p>"The problem is that if we show this to the customer they will think that all the work is done."</p>
+ <small>provided by Ged Byrne</small>
+ </div>
+ </div>
+ </blockquote>
+ </div>
+
+ </div>
+ </div>
+ <div class="large-1 medium-1 columns">
+
+ </div>
+ </div>
+
+ <div class="row">
+ <div class="large-12 medium-12 columns">
+ <div class="description">
+ <h3 class="legend">Domain Driven Applications, Quickly</h3>
+ <p>Apache Isis™ is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services or view models, and the framework dynamically generates a representation of that domain model as a webapp or a RESTful API.</p>
+
+ <p><a class="button btn btn-primary btn-lg learn-more" href="./documentation.html" role="button">Learn more »</a></p>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="container">
+ <div class="row">
+ <div class="large-4 medium-4 columns">
+ <h2>UI "for free"</h2>
+ <p>Isis dynamically builds a generic UI directly from the underlying domain objects.
+ This makes for extremely rapid prototyping and a short feedback cycle, perfect for agile development.
+ The UI can also be extended for specific use cases, and can be themed using <a href="http://getbootstrap.com">Bootstrap</a>.</p>
+ <p><a class="button small info radius" href="./isis-in-pictures.html" role="button">See Isis in action »</a></p>
+ </div>
+ <div class="large-4 medium-4 columns">
+ <h2>Domain-Driven</h2>
+ <p>The core of an Isis application are the domain objects, either persisted entities or view models.
+ Business rules can be associated directly with domain objects, or can be factored out into separate
+ services. Isis performs dependency injection everywhere to ensure that the application remains decoupled.</p>
+ <p><a class="button small info radius" href="./documentation.html" role="button">Read the docs »</a></p>
+ </div>
+ <div class="large-4 medium-4 columns">
+ <h2>Add-ons <small>(non ASF)</small></h2>
+ <p>Isis has a large number of github-hosted add-on modules for security, auditing, command profiling, mail merge and other cross-cutting concerns. It also has a number of UI extensions
+ for maps, calendars and so on. All are open source and designed for out-of-the-box use or to fork as you require.</p>
+ <p><a class="button small info radius" href="http://www.isisaddons.org" role="button">Inspect the add-ons »</a></p>
+ </div>
+ </div>
+
+ <br/>
+
+ <div class="row">
+ <div class="large-12 medium-12 columns">
+ <h4>A typical application built with Apache Isis</h4>
+ <br/>
+ <p>Like all Isis apps, the UI is dynamically built from the domain model.</p>
+
+ <img class="estatio" src="./images/powered-by/estatio-1.png" style="width: 98%"/>
+
+ <div class="center">
+ <br/>
+ <p>You can learn more about this particular application <a href="./intro/powered-by/powered-by.html">here</a>.
+ The app is also open source, so you can check out its source code on <a href="http://github.com/estatio/estatio">github</a>.</p>
+ </div>
+ <br/>
+ </div>
+ </div>
+
+ <br/>
+
+ <div class="row">
+ <div class="large-12 medium-12 columns">
+ <h4>Getting started</h4>
+ <br/>
+ <p>Start developing your own Isis application using our <a href="intro/getting-started/simpleapp-archetype.html">simpleapp archetype</a>:</p>
+ </div>
+ </div>
+ <div class="row">
+ <div class="large-12 medium-12 columns">
+ <div class=panel>
+ <pre>
+mvn archetype:generate \
+ -D archetypeGroupId=org.apache.isis.archetype \
+ -D archetypeArtifactId=simpleapp-archetype \
+ -D archetypeVersion=1.8.0 \
+ -D groupId=com.mycompany \
+ -D artifactId=myapp \
+ -D version=1.0-SNAPSHOT \
+ -B</pre>
+ </div>
+ </div>
+ </div>
+
+ <br/>
+
+ <div class="row">
+ <div class="large-12 medium-12 columns">
+ <h4>Tutorial</h4>
+ <br/>
+ <p>... and this short tutorial should give you an idea as to how Apache Isis dynamically builds the UI:</p>
+ </div>
+ </div>
+
+ <div class="row panel">
+
+ <div class="large-1 medium-1 columns">
+
+ </div>
+ <div class="large-10 medium-10 columns">
+
+ <div class="tutorial-carousel">
+
+ <div>
+ <img src="images/index-screenshots/010-sign-in.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/020-object-layout.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/030-declarative-business-rules.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/040-imperative-business-rules.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/050-action-with-args.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/060-action-with-args-autocomplete.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/070-jdo.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/080-rest-api.png"></img>
+ </div>
+ <div>
+ <img src="images/index-screenshots/090-integtesting.png"></img>
+ </div>
+ </div>
+ </div>
+ <div class="large-1 medium-1 columns">
+
+ </div>
+ </div>
+ </div>
+
+
+ <footer>
+ <hr>
+ <p class="small">
+ Copyright © 2010~2015 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>
+</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 src="./js/slick/1.5.0/slick.min.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>
+
+$( document ).ready(function() {
+ console.log( "ready!" );
+
+ (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>
+
+
+<script type="text/javascript">
+$(document).ready(function(){
+ $('.quote-carousel').slick({
+ arrows: true,
+ autoplay: true,
+ dots:true,
+ centerMode:false,
+ infinite: true
+ });
+$('.tutorial-carousel').slick({
+ arrows: true,
+ dots:true,
+ autoplay: true,
+ autoplaySpeed: 6000,
+ slidesToShow: 1,
+ centerMode:true,
+ centerPadding:'80px',
+ infinite: true
+ });
+});
+</script>
+
+
+ </body>
+</html>