diff --git a/assets/javascripts/ga.js b/assets/javascripts/ga.js index b9e9ad7..94723a8 100644 --- a/assets/javascripts/ga.js +++ b/assets/javascripts/ga.js @@ -1,11 +1,6 @@ - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-18736001-1']); - _gaq.push(['_setDomainName', 'c9.io']); - _gaq.push(['_setAllowLinker', true]); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); \ No newline at end of file + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', 'UA-58752400-1', 'auto'); + ga('send', 'pageview'); \ No newline at end of file diff --git a/out/assets/font/fontawesome-webfont.eot b/out/assets/font/fontawesome-webfont.eot deleted file mode 100644 index 89070c1..0000000 Binary files a/out/assets/font/fontawesome-webfont.eot and /dev/null differ diff --git a/out/assets/font/fontawesome-webfont.svg b/out/assets/font/fontawesome-webfont.svg deleted file mode 100644 index 1245f92..0000000 --- a/out/assets/font/fontawesome-webfont.svg +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/out/assets/font/fontawesome-webfont.ttf b/out/assets/font/fontawesome-webfont.ttf deleted file mode 100644 index c17e9f8..0000000 Binary files a/out/assets/font/fontawesome-webfont.ttf and /dev/null differ diff --git a/out/assets/font/fontawesome-webfont.woff b/out/assets/font/fontawesome-webfont.woff deleted file mode 100644 index 09f2469..0000000 Binary files a/out/assets/font/fontawesome-webfont.woff and /dev/null differ diff --git a/out/assets/img/favicon.ico b/out/assets/img/favicon.ico deleted file mode 100644 index 02c8aed..0000000 Binary files a/out/assets/img/favicon.ico and /dev/null differ diff --git a/out/assets/img/toh_icon.png b/out/assets/img/toh_icon.png deleted file mode 100644 index 5572922..0000000 Binary files a/out/assets/img/toh_icon.png and /dev/null differ diff --git a/out/assets/javascripts.js.mf b/out/assets/javascripts.js.mf deleted file mode 100644 index 66fe418..0000000 --- a/out/assets/javascripts.js.mf +++ /dev/null @@ -1,4 +0,0 @@ -require "javascripts/iframes.js" -require "javascripts/ga.js" -require "javascripts/docs.js" -require "javascripts/bootstrap.js" diff --git a/out/assets/javascripts/bootstrap.js b/out/assets/javascripts/bootstrap.js deleted file mode 100644 index 774b636..0000000 --- a/out/assets/javascripts/bootstrap.js +++ /dev/null @@ -1,195 +0,0 @@ -/* =================================================== - * bootstrap-transition.js v2.1.1 - * http://twitter.github.com/bootstrap/javascript.html#transitions - * =================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed 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. - * ========================================================== */ - - -!function ($) { - - $(function () { - - "use strict"; // jshint ;_; - - - /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) - * ======================================================= */ - - $.support.transition = (function () { - - var transitionEnd = (function () { - - var el = document.createElement('bootstrap') - , transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd otransitionend' - , 'transition' : 'transitionend' - } - , name - - for (name in transEndEventNames){ - if (el.style[name] !== undefined) { - return transEndEventNames[name] - } - } - - }()) - - return transitionEnd && { - end: transitionEnd - } - - })() - - }) - -}(window.jQuery); -/* ======================================================== - * bootstrap-tab.js v2.1.1 - * http://twitter.github.com/bootstrap/javascript.html#tabs - * ======================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed 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. - * ======================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* TAB CLASS DEFINITION - * ==================== */ - - var Tab = function (element) { - this.element = $(element) - } - - Tab.prototype = { - - constructor: Tab - - , show: function () { - var $this = this.element - , $ul = $this.closest('ul:not(.dropdown-menu)') - , selector = $this.attr('data-target') - , previous - , $target - , e - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - if ( $this.parent('li').hasClass('active') ) return - - previous = $ul.find('.active a').last()[0] - - e = $.Event('show', { - relatedTarget: previous - }) - - $this.trigger(e) - - if (e.isDefaultPrevented()) return - - $target = $(selector) - - this.activate($this.parent('li'), $ul) - this.activate($target, $target.parent(), function () { - $this.trigger({ - type: 'shown' - , relatedTarget: previous - }) - }) - } - - , activate: function ( element, container, callback) { - var $active = container.find('> .active') - , transition = callback - && $.support.transition - && $active.hasClass('fade') - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - - element.addClass('active') - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if ( element.parent('.dropdown-menu') ) { - element.closest('li.dropdown').addClass('active') - } - - callback && callback() - } - - transition ? - $active.one($.support.transition.end, next) : - next() - - $active.removeClass('in') - } - } - - - /* TAB PLUGIN DEFINITION - * ===================== */ - - $.fn.tab = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('tab') - if (!data) $this.data('tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.tab.Constructor = Tab - - - /* TAB DATA-API - * ============ */ - - $(function () { - $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { - e.preventDefault() - $(this).tab('show') - }) - }) - -}(window.jQuery); \ No newline at end of file diff --git a/out/assets/javascripts/disqus-ext.js b/out/assets/javascripts/disqus-ext.js deleted file mode 100644 index de82e5a..0000000 --- a/out/assets/javascripts/disqus-ext.js +++ /dev/null @@ -1,12 +0,0 @@ -var disqus_shortname = 'c9userdocs'; - -var paths = window.location.pathname.split("/"); -var fileName = paths[paths.length - 2] + "/" + paths[paths.length - 1]; - -var disqus_identifier = fileName; - -(function() { - var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; - dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js'; - (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); -})(); \ No newline at end of file diff --git a/out/assets/javascripts/docs.js b/out/assets/javascripts/docs.js deleted file mode 100644 index 7d661c2..0000000 --- a/out/assets/javascripts/docs.js +++ /dev/null @@ -1,270 +0,0 @@ -/* ------------------------------------------------------------------------------------------ - * Proper min-height - * --------------------------------------------------------------------------------------- */ - $(window).resize(function(){ - $("#wrapper").css("min-height", $(window).height() - $("#header_iframe").height() - $("#footer_iframe").height() ); - }); - /* ------------------------------------------------------------------------------------------ - * END Proper min-height - * --------------------------------------------------------------------------------------- */ - -var navBarIsFixed = false; - -var h2s; -var h2positions = []; -var h2poslen = 0; - -var scrollPosUpdateTOH = 138; - -function getH2s() { - h2s = $("#content h2"); - h2positions = []; - for (var i = 0; i < h2s.length; i++) { - h2positions[i] = $(h2s[i]).position().top; - } - - h2poslen = h2positions.length; -} - -function toggleTOH(el) { - if ($("#tocHolder").is(":visible")) { - $(el).removeClass("active"); - $("#tocHolder").hide(); - $("#toh_btn").fadeOut(90); - $(".documentationContainer").css({"width": "720px"}); - $("#toh_btn").fadeIn(90); - setTimeout(function() { - updateTOHButtonPosition($(window).scrollTop()); - }, 150); - } - else { - $("#toh_btn").fadeOut(90); - $(".documentationContainer").css({"width": "520px"}); - $("#toh_btn").fadeIn(90); - $(el).addClass("active"); - setTimeout(function() { - container = $(".container"); - updateTOHPos(container); - $("#tocHolder").show(); - updateTOHButtonPosition($(window).scrollTop()); - }, 150); - } - -} - -function updateTOHButtonPosition(scrollTop) { - if (scrollTop > scrollPosUpdateTOH) { - $("#toh_btn").css({ - "position" : "fixed", - "top" : "19px", - "left" : ($("#content").outerWidth() + $("#content").offset().left - 36) + "px", - "right" : "" - }); - } - else { - $("#toh_btn").css({ - "position" : "absolute", - "top" : "10px", - "left" : "", - "right" : "12px" - }); - } -} - -function updateTOHPos(container) { - $("#tocHolder > ol.tocContainer").css({ - "left": $(container).outerWidth() + $(container).offset().left - $("#tocHolder > ol.tocContainer").outerWidth() + 75 - }); -} - -$(document).ready(function() { - - $(window).resize(); - - // prep nav expands - var pagePath = document.location.pathname.substring(document.location.pathname.lastIndexOf("/") + 1); - - if (pagePath === "") - pagePath = "index.html"; - - $("#st-search-input[title]").keydown( - function(evt){ - if (evt.keyCode == 13) { - var query = $(this).val(); - if (query) { - $(this).val(""); - $(this).blur(); - var url = "https://www.google.com/search?q=" + encodeURIComponent("site:docs.c9.io " + query); - window.open(url); - } - return false; - } - } - ); - - // select current page in sidenav and set up prev/next links if they exist - var $selNavLink = $('#nav').find('a[href="' + pagePath + '"]'); - if ($selNavLink.length) { - $selListItem = $selNavLink.closest('li'); - - $selListItem.addClass('selected'); - $selListItem.closest('li.nav-section').addClass('expanded'); - $selListItem.closest('li.nav-section').children('ul').show(); - $selListItem.closest('li.nav-section').parent().closest('li.nav-section').addClass('expanded'); - $selListItem.closest('li.nav-section').parent().closest('ul').show(); - } - - $("a.heading_anchor").children("i").addClass("icon-hand-right"); - - $("h2, h3, h4, h5, h6").hover( - function () { - $(this).find("i").css({"opacity": "1"}); - $(this).find("a").css({"margin-left": "-30px"}); - }, - function () { - $(this).find("i").css({"opacity": "0"}); - $(this).find("a").css({"margin-left": "-35px"}); - } - ); - - $('#macTab a').click(function (e) { - e.preventDefault(); - $(this).tab('show'); - }); - $('#winTab a').click(function (e) { - e.preventDefault(); - $(this).tab('show'); - }); - - // Set up expand/collapse behavior - $('#nav li.nav-section .nav-section-header').click(function() { - var section = $(this).closest('li.nav-section'); - if (section.hasClass('expanded')) { - // hide me - section.children('ul').slideUp(100, 'swing', function() { - section.closest('li').removeClass('expanded'); - }); - } else { - // show me - // first hide all other siblings - //var $others = $('li.nav-section.expanded', $(this).closest('ul')); - //$others.removeClass('expanded').children('ul').slideUp(250); - - // now expand me - section.closest('li').addClass('expanded'); - section.children('ul').slideDown(100, 'swing', function() { - }); - } - }); - - $(".scroll-pane").scroll(function(event) { - event.preventDefault(); - return false; - }); - - updateTOHButtonPosition($(window).scrollTop()); - - /* Resize nav height when window height changes */ - $(window).resize(function() { - getH2s(); - updateTOHButtonPosition($(window).scrollTop()); - container = $(".container"); - updateTOHPos(container); - }); - - // Get the positions of all the H2s - getH2s(); - - // Set up fixed navbar - var prevScrollLeft = 0; // used to compare current position to previous position of horiz scroll - - $(window).scroll(function(event) { - var scrollTop = $(window).scrollTop(); - - $($(".tocContainer.level_1").children()).removeClass("highlight"); - for (var i = 0; i < h2poslen; i++) { - if(scrollTop + $(window).height() == $(document).height()) { - $($(".tocContainer.level_1").children()[h2poslen - 2]).removeClass("highlight"); - $($(".tocContainer.level_1").children()[h2poslen - 1]).addClass("highlight"); - break; - } - if (scrollTop > (h2positions[i]-50)) { - if (h2positions[i+1] && scrollTop < h2positions[i+1]) { - $($(".tocContainer.level_1").children()[i]).addClass("highlight"); - break; - } - - else if (i === (h2poslen - 1)) { - $($(".tocContainer.level_1").children()[i]).addClass("highlight"); - } - } - } - - - container = $(".container"); - updateTOHPos(container); - - if (scrollTop > scrollPosUpdateTOH) { - $("#tocHolder > ol.tocContainer").css({ - "position" : "fixed", - "top": "20px" - }); - } - else { - $("#tocHolder > ol.tocContainer").css({ - "position" : "absolute", - "top": "163px" - }); - } - - updateTOHButtonPosition(scrollTop); - - if ($('#side-nav').length == 0) return; - if (event.target.nodeName == "DIV") { - // Dump scroll event if the target is a DIV, because that means the event is coming - // from a scrollable div and so there's no need to make adjustments to our layout - return; - } - var headerHeight = $('#header').outerHeight(); - var subheaderHeight = $('#nav-x').outerHeight(); - var searchResultHeight = $('#searchResults').is(":visible") ? - $('#searchResults').outerHeight() : 0; - var totalHeaderHeight = headerHeight + subheaderHeight + searchResultHeight; - var navBarShouldBeFixed = scrollTop > totalHeaderHeight; - - // Don't continue if the header is sufficently far away - // (to avoid intensive resizing that slows scrolling) - if (navBarIsFixed && navBarShouldBeFixed) { - return; - } - - if (navBarIsFixed != navBarShouldBeFixed) { - if (navBarShouldBeFixed) { - // make it fixed - var width = $('#doc-nav').width(); - $('#doc-nav') - .addClass('fixed') - .css({'width':width+'px'}) - .prependTo('#body-content'); - // add neato "back to top" button - $('#doc-nav a.totop').css({'display':'block','width':$("#nav").innerWidth()+'px'}); - - } else { - // make it static again - $('#doc-nav') - .removeClass('fixed') - .css({'width':'auto','margin':''}) - .prependTo('#side-nav'); - $('#doc-nav a.totop').hide(); - } - navBarIsFixed = navBarShouldBeFixed; - } - }); - - // Revise the sidenav widths to make room for the scrollbar - // which avoids the visible width from changing each time the bar appears - var $sidenav = $("#side-nav"); - var sidenav_width = parseInt($sidenav.innerWidth()); - - $("#doc-nav #nav").css("width", sidenav_width - 4 + "px"); // 4px is scrollbar width -}); diff --git a/out/assets/javascripts/embed.js b/out/assets/javascripts/embed.js deleted file mode 100644 index 659b410..0000000 --- a/out/assets/javascripts/embed.js +++ /dev/null @@ -1,52 +0,0 @@ -var Swiftype = window.Swiftype || {}; -Swiftype.root_url = Swiftype.root_url || "https://api.swiftype.com"; -Swiftype.renderStyle = Swiftype.renderStyle || 'inline'; - -Swiftype.loadScript = function(url, callback) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - script.src = url; - - var entry = document.getElementsByTagName('script')[0]; - entry.parentNode.insertBefore(script, entry); - - if (script.addEventListener) { - script.addEventListener('load', callback, false); - } else { - script.attachEvent('onreadystatechange', function() { - if (/complete|loaded/.test(script.readyState)) - callback(); - }); - } -}; - -Swiftype.loadStylesheet = function(url) { - var link = document.createElement('link'); - link.rel = 'stylesheet'; - link.type = 'text/css'; - link.href = url; - (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(link); -}; - -Swiftype.loadSupportingFiles = function(callback) { - if (Swiftype.renderStyle === 'overlay' || typeof Swiftype.resultContainingElement === 'undefined') { - Swiftype.loadScript("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype_overlay-5559d7aee6fc448efbaa6d84327a19ad.js", callback); - Swiftype.loadStylesheet("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype_overlay-3a2e7bb5cdce27f41ea7dc1ce2144c84.css"); - } else if (Swiftype.renderStyle === 'new_page') { - Swiftype.loadScript("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype_newpage-351dba23a403e1c834b130266fbab3e5.js", callback); - Swiftype.loadStylesheet("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype-10cd1205b9d8d818b6e2a489a7f7a971.css"); - } else if (Swiftype.renderStyle === 'beta') { - Swiftype.loadScript("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype_beta-3ae39a0e3ef76d02d53502810cf39f65.js", callback); - Swiftype.loadStylesheet("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype-10cd1205b9d8d818b6e2a489a7f7a971.css"); - } else { - Swiftype.loadScript("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype_onpage-d5ac6ea253486e3afe1a1805f69cfd9f.js", callback); - Swiftype.loadStylesheet("https://swiftype-assets.a.ssl.fastly.net/assets/swiftype-10cd1205b9d8d818b6e2a489a7f7a971.css"); - } - -}; - -var Swiftype = (function(window, undefined) { - Swiftype.loadSupportingFiles(function(){}); - return Swiftype; -})(window); diff --git a/out/assets/javascripts/ga.js b/out/assets/javascripts/ga.js deleted file mode 100644 index b9e9ad7..0000000 --- a/out/assets/javascripts/ga.js +++ /dev/null @@ -1,11 +0,0 @@ - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-18736001-1']); - _gaq.push(['_setDomainName', 'c9.io']); - _gaq.push(['_setAllowLinker', true]); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); \ No newline at end of file diff --git a/out/assets/javascripts/iframes.js b/out/assets/javascripts/iframes.js deleted file mode 100644 index 2b6c8aa..0000000 --- a/out/assets/javascripts/iframes.js +++ /dev/null @@ -1,4 +0,0 @@ -$(document).ready(function() { - $('iframe#header_iframe').attr('src', 'https://c9.io/site/onlyheader/?simulate=menu-item-documentation'); - $('iframe#footer_iframe').attr('src', 'https://c9.io/site/onlyfooter/'); -}); \ No newline at end of file diff --git a/out/assets/javascripts/swiftype.js b/out/assets/javascripts/swiftype.js deleted file mode 100644 index 893dd1c..0000000 --- a/out/assets/javascripts/swiftype.js +++ /dev/null @@ -1,18 +0,0 @@ -var Swiftype = window.Swiftype || {}; - -(function() { - Swiftype.key = 'zphqNpNqsFz4MJEq8ZaM'; - Swiftype.inputElement = '#st-search-input'; - Swiftype.resultContainingElement = '#st-results-container'; - Swiftype.attachElement = '#st-search-input'; - Swiftype.renderStyle = "overlay"; - Swiftype.disableAutocomplete = true; - - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - script.src = "//swiftype.com/embed.js"; - //script.src = "./assets/javascripts/embed.js"; - var entry = document.getElementsByTagName('script')[0]; - entry.parentNode.insertBefore(script, entry); -}()); \ No newline at end of file diff --git a/out/assets/min/javascripts.js b/out/assets/min/javascripts.js deleted file mode 100644 index f66844f..0000000 --- a/out/assets/min/javascripts.js +++ /dev/null @@ -1 +0,0 @@ -function getH2s(){h2s=$("#content h2"),h2positions=[];for(var e=0;escrollPosUpdateTOH?$("#toh_btn").css({position:"fixed",top:"19px",left:$("#content").outerWidth()+$("#content").offset().left-36+"px",right:""}):$("#toh_btn").css({position:"absolute",top:"10px",left:"",right:"12px"})}function updateTOHPos(e){$("#tocHolder > ol.tocContainer").css({left:$(e).outerWidth()+$(e).offset().left-$("#tocHolder > ol.tocContainer").outerWidth()+75})}$(document).ready(function(){$("iframe#header_iframe").attr("src","https://c9.io/site/onlyheader/?simulate=menu-item-documentation"),$("iframe#footer_iframe").attr("src","https://c9.io/site/onlyfooter/")});var _gaq=_gaq||[];_gaq.push(["_setAccount","UA-18736001-1"]),_gaq.push(["_setDomainName","c9.io"]),_gaq.push(["_setAllowLinker",!0]),_gaq.push(["_trackPageview"]),function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}(),$(window).resize(function(){$("#wrapper").css("min-height",$(window).height()-$("#header_iframe").height()-$("#footer_iframe").height())});var navBarIsFixed=!1,h2s,h2positions=[],h2poslen=0,scrollPosUpdateTOH=138;$(document).ready(function(){$(window).resize();var e=document.location.pathname.substring(document.location.pathname.lastIndexOf("/")+1);e===""&&(e="index.html"),$("#st-search-input[title]").keydown(function(e){if(e.keyCode==13){var t=$(this).val();if(t){$(this).val(""),$(this).blur();var n="https://www.google.com/search?q="+encodeURIComponent("site:docs.c9.io "+t);window.open(n)}return!1}});var t=$("#nav").find('a[href="'+e+'"]');t.length&&($selListItem=t.closest("li"),$selListItem.addClass("selected"),$selListItem.closest("li.nav-section").addClass("expanded"),$selListItem.closest("li.nav-section").children("ul").show(),$selListItem.closest("li.nav-section").parent().closest("li.nav-section").addClass("expanded"),$selListItem.closest("li.nav-section").parent().closest("ul").show()),$("a.heading_anchor").children("i").addClass("icon-hand-right"),$("h2, h3, h4, h5, h6").hover(function(){$(this).find("i").css({opacity:"1"}),$(this).find("a").css({"margin-left":"-30px"})},function(){$(this).find("i").css({opacity:"0"}),$(this).find("a").css({"margin-left":"-35px"})}),$("#macTab a").click(function(e){e.preventDefault(),$(this).tab("show")}),$("#winTab a").click(function(e){e.preventDefault(),$(this).tab("show")}),$("#nav li.nav-section .nav-section-header").click(function(){var e=$(this).closest("li.nav-section");e.hasClass("expanded")?e.children("ul").slideUp(100,"swing",function(){e.closest("li").removeClass("expanded")}):(e.closest("li").addClass("expanded"),e.children("ul").slideDown(100,"swing",function(){}))}),$(".scroll-pane").scroll(function(e){return e.preventDefault(),!1}),updateTOHButtonPosition($(window).scrollTop()),$(window).resize(function(){getH2s(),updateTOHButtonPosition($(window).scrollTop()),container=$(".container"),updateTOHPos(container)}),getH2s();var n=0;$(window).scroll(function(e){var t=$(window).scrollTop();$($(".tocContainer.level_1").children()).removeClass("highlight");for(var n=0;nh2positions[n]-50){if(h2positions[n+1]&&tscrollPosUpdateTOH?$("#tocHolder > ol.tocContainer").css({position:"fixed",top:"20px"}):$("#tocHolder > ol.tocContainer").css({position:"absolute",top:"163px"}),updateTOHButtonPosition(t);if($("#side-nav").length==0)return;if(e.target.nodeName=="DIV")return;var r=$("#header").outerHeight(),i=$("#nav-x").outerHeight(),s=$("#searchResults").is(":visible")?$("#searchResults").outerHeight():0,o=r+i+s,u=t>o;if(navBarIsFixed&&u)return;if(navBarIsFixed!=u){if(u){var a=$("#doc-nav").width();$("#doc-nav").addClass("fixed").css({width:a+"px"}).prependTo("#body-content"),$("#doc-nav a.totop").css({display:"block",width:$("#nav").innerWidth()+"px"})}else $("#doc-nav").removeClass("fixed").css({width:"auto",margin:""}).prependTo("#side-nav"),$("#doc-nav a.totop").hide();navBarIsFixed=u}});var r=$("#side-nav"),i=parseInt(r.innerWidth());$("#doc-nav #nav").css("width",i-4+"px")}),!function(e){e(function(){"use strict";e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active a").last()[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}},e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e(function(){e("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})})}(window.jQuery) \ No newline at end of file diff --git a/out/assets/min/styles.css b/out/assets/min/styles.css deleted file mode 100644 index 4b21c2c..0000000 --- a/out/assets/min/styles.css +++ /dev/null @@ -1,6610 +0,0 @@ -/*! - * Bootstrap v2.1.0 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} - -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} - -audio:not([controls]) { - display: none; -} - -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -a:hover, -a:active { - outline: 0; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - height: auto; - max-width: 100%; - vertical-align: middle; - border: 0; - -ms-interpolation-mode: bicubic; -} - -#map_canvas img { - max-width: none; -} - -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} - -button, -input { - *overflow: visible; - line-height: normal; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} - -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} - -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - -textarea { - overflow: auto; - vertical-align: top; -} - -.clearfix { - *zoom: 1; -} - -.clearfix:before, -.clearfix:after { - display: table; - line-height: 0; - content: ""; -} - -.clearfix:after { - clear: both; -} - -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -body { - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 20px; - color: #333333; - background-color: #ffffff; -} - -a { - color: #0088cc; - text-decoration: none; -} - -a:hover { - color: #005580; - text-decoration: underline; -} - -.img-rounded { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.img-polaroid { - padding: 4px; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -} - -.img-circle { - -webkit-border-radius: 500px; - -moz-border-radius: 500px; - border-radius: 500px; -} - -.row { - margin-left: -20px; - *zoom: 1; -} - -.row:before, -.row:after { - display: table; - line-height: 0; - content: ""; -} - -.row:after { - clear: both; -} - -[class*="span"] { - float: left; - margin-left: 20px; -} - -.container, -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.span12 { - width: 940px; -} - -.span11 { - width: 860px; -} - -.span10 { - width: 780px; -} - -.span9 { - width: 700px; -} - -.span8 { - width: 620px; -} - -.span7 { - width: 540px; -} - -.span6 { - width: 460px; -} - -.span5 { - width: 380px; -} - -.span4 { - width: 300px; -} - -.span3 { - width: 220px; -} - -.span2 { - width: 140px; -} - -.span1 { - width: 60px; -} - -.offset12 { - margin-left: 980px; -} - -.offset11 { - margin-left: 900px; -} - -.offset10 { - margin-left: 820px; -} - -.offset9 { - margin-left: 740px; -} - -.offset8 { - margin-left: 660px; -} - -.offset7 { - margin-left: 580px; -} - -.offset6 { - margin-left: 500px; -} - -.offset5 { - margin-left: 420px; -} - -.offset4 { - margin-left: 340px; -} - -.offset3 { - margin-left: 260px; -} - -.offset2 { - margin-left: 180px; -} - -.offset1 { - margin-left: 100px; -} - -.row-fluid { - width: 100%; - *zoom: 1; -} - -.row-fluid:before, -.row-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.row-fluid:after { - clear: both; -} - -.row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.127659574468085%; - *margin-left: 2.074468085106383%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.row-fluid [class*="span"]:first-child { - margin-left: 0; -} - -.row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; -} - -.row-fluid .span11 { - width: 91.48936170212765%; - *width: 91.43617021276594%; -} - -.row-fluid .span10 { - width: 82.97872340425532%; - *width: 82.92553191489361%; -} - -.row-fluid .span9 { - width: 74.46808510638297%; - *width: 74.41489361702126%; -} - -.row-fluid .span8 { - width: 65.95744680851064%; - *width: 65.90425531914893%; -} - -.row-fluid .span7 { - width: 57.44680851063829%; - *width: 57.39361702127659%; -} - -.row-fluid .span6 { - width: 48.93617021276595%; - *width: 48.88297872340425%; -} - -.row-fluid .span5 { - width: 40.42553191489362%; - *width: 40.37234042553192%; -} - -.row-fluid .span4 { - width: 31.914893617021278%; - *width: 31.861702127659576%; -} - -.row-fluid .span3 { - width: 23.404255319148934%; - *width: 23.351063829787233%; -} - -.row-fluid .span2 { - width: 14.893617021276595%; - *width: 14.840425531914894%; -} - -.row-fluid .span1 { - width: 6.382978723404255%; - *width: 6.329787234042553%; -} - -.row-fluid .offset12 { - margin-left: 104.25531914893617%; - *margin-left: 104.14893617021275%; -} - -.row-fluid .offset12:first-child { - margin-left: 102.12765957446808%; - *margin-left: 102.02127659574467%; -} - -.row-fluid .offset11 { - margin-left: 95.74468085106382%; - *margin-left: 95.6382978723404%; -} - -.row-fluid .offset11:first-child { - margin-left: 93.61702127659574%; - *margin-left: 93.51063829787232%; -} - -.row-fluid .offset10 { - margin-left: 87.23404255319149%; - *margin-left: 87.12765957446807%; -} - -.row-fluid .offset10:first-child { - margin-left: 85.1063829787234%; - *margin-left: 84.99999999999999%; -} - -.row-fluid .offset9 { - margin-left: 78.72340425531914%; - *margin-left: 78.61702127659572%; -} - -.row-fluid .offset9:first-child { - margin-left: 76.59574468085106%; - *margin-left: 76.48936170212764%; -} - -.row-fluid .offset8 { - margin-left: 70.2127659574468%; - *margin-left: 70.10638297872339%; -} - -.row-fluid .offset8:first-child { - margin-left: 68.08510638297872%; - *margin-left: 67.9787234042553%; -} - -.row-fluid .offset7 { - margin-left: 61.70212765957446%; - *margin-left: 61.59574468085106%; -} - -.row-fluid .offset7:first-child { - margin-left: 59.574468085106375%; - *margin-left: 59.46808510638297%; -} - -.row-fluid .offset6 { - margin-left: 53.191489361702125%; - *margin-left: 53.085106382978715%; -} - -.row-fluid .offset6:first-child { - margin-left: 51.063829787234035%; - *margin-left: 50.95744680851063%; -} - -.row-fluid .offset5 { - margin-left: 44.68085106382979%; - *margin-left: 44.57446808510638%; -} - -.row-fluid .offset5:first-child { - margin-left: 42.5531914893617%; - *margin-left: 42.4468085106383%; -} - -.row-fluid .offset4 { - margin-left: 36.170212765957444%; - *margin-left: 36.06382978723405%; -} - -.row-fluid .offset4:first-child { - margin-left: 34.04255319148936%; - *margin-left: 33.93617021276596%; -} - -.row-fluid .offset3 { - margin-left: 27.659574468085104%; - *margin-left: 27.5531914893617%; -} - -.row-fluid .offset3:first-child { - margin-left: 25.53191489361702%; - *margin-left: 25.425531914893618%; -} - -.row-fluid .offset2 { - margin-left: 19.148936170212764%; - *margin-left: 19.04255319148936%; -} - -.row-fluid .offset2:first-child { - margin-left: 17.02127659574468%; - *margin-left: 16.914893617021278%; -} - -.row-fluid .offset1 { - margin-left: 10.638297872340425%; - *margin-left: 10.53191489361702%; -} - -.row-fluid .offset1:first-child { - margin-left: 8.51063829787234%; - *margin-left: 8.404255319148938%; -} - -[class*="span"].hide, -.row-fluid [class*="span"].hide { - display: none; -} - -[class*="span"].pull-right, -.row-fluid [class*="span"].pull-right { - float: right; -} - -.container { - margin-right: auto; - margin-left: auto; - *zoom: 1; -} - -.container:before, -.container:after { - display: table; - line-height: 0; - content: ""; -} - -.container:after { - clear: both; -} - -.container-fluid { - padding-right: 20px; - padding-left: 20px; - *zoom: 1; -} - -.container-fluid:before, -.container-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.container-fluid:after { - clear: both; -} - -p { - margin: 0 0 10px; -} - -.lead { - margin-bottom: 20px; - font-size: 20px; - font-weight: 200; - line-height: 30px; -} - -small { - font-size: 85%; -} - -strong { - font-weight: bold; -} - -em { - font-style: italic; -} - -cite { - font-style: normal; -} - -.muted { - color: #999999; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 10px 0; - font-family: inherit; - font-weight: bold; - line-height: 1; - color: inherit; - text-rendering: optimizelegibility; -} - -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - font-weight: normal; - line-height: 1; - color: #999999; -} - -h1 { - font-size: 36px; - line-height: 40px; -} - -h2 { - font-size: 30px; - line-height: 40px; -} - -h3 { - font-size: 24px; - line-height: 40px; -} - -h4 { - font-size: 18px; - line-height: 20px; -} - -h5 { - font-size: 14px; - line-height: 20px; -} - -h6 { - font-size: 12px; - line-height: 20px; -} - -h1 small { - font-size: 24px; -} - -h2 small { - font-size: 18px; -} - -h3 small { - font-size: 14px; -} - -h4 small { - font-size: 14px; -} - -.page-header { - padding-bottom: 9px; - margin: 20px 0 30px; - border-bottom: 1px solid #eeeeee; -} - -ul, -ol { - padding: 0; - margin: 0 0 10px 25px; -} - -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; -} - -li { - line-height: 20px; -} - -ul.unstyled, -ol.unstyled { - margin-left: 0; - list-style: none; -} - -dl { - margin-bottom: 20px; -} - -dt, -dd { - line-height: 20px; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 10px; -} - -.dl-horizontal dt { - float: left; - width: 120px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; -} - -.dl-horizontal dd { - margin-left: 130px; -} - -hr { - margin: 20px 0; - border: 0; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #ffffff; -} - -abbr[title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -abbr.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 0 0 0 15px; - margin: 0 0 20px; - border-left: 5px solid #eeeeee; -} - -blockquote p { - margin-bottom: 0; - font-size: 16px; - font-weight: 300; - line-height: 25px; -} - -blockquote small { - display: block; - line-height: 20px; - color: #999999; -} - -blockquote small:before { - content: '\2014 \00A0'; -} - -blockquote.pull-right { - float: right; - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; -} - -blockquote.pull-right p, -blockquote.pull-right small { - text-align: right; -} - -blockquote.pull-right small:before { - content: ''; -} - -blockquote.pull-right small:after { - content: '\00A0 \2014'; -} - -q:before, -q:after, -blockquote:before, -blockquote:after { - content: ""; -} - -address { - display: block; - margin-bottom: 20px; - font-style: normal; - line-height: 20px; -} - -code, -pre { - padding: 0 3px 2px; - font-family: Monaco, Menlo, Consolas, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -code { - padding: 2px 4px; - color: #d14; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 20px; - word-break: break-all; - word-wrap: break-word; - white-space: pre; - white-space: pre-wrap; - background-color: #f5f5f5; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -pre.prettyprint { - margin-bottom: 20px; -} - -pre code { - padding: 0; - color: inherit; - background-color: transparent; - border: 0; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -form { - margin: 0 0 20px; -} - -fieldset { - padding: 0; - margin: 0; - border: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: 40px; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -legend small { - font-size: 15px; - color: #999999; -} - -label, -input, -button, -select, -textarea { - font-size: 14px; - font-weight: normal; - line-height: 20px; -} - -input, -button, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} - -label { - display: block; - margin-bottom: 5px; -} - -select, -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - display: inline-block; - height: 20px; - padding: 4px 6px; - margin-bottom: 9px; - font-size: 14px; - line-height: 20px; - color: #555555; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -input, -textarea { - width: 210px; -} - -textarea { - height: auto; -} - -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - background-color: #ffffff; - border: 1px solid #cccccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} - -textarea:focus, -input[type="text"]:focus, -input[type="password"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="time"]:focus, -input[type="week"]:focus, -input[type="number"]:focus, -input[type="email"]:focus, -input[type="url"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="color"]:focus, -.uneditable-input:focus { - border-color: rgba(82, 168, 236, 0.8); - outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); -} - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - *margin-top: 0; - line-height: normal; - cursor: pointer; -} - -input[type="file"], -input[type="image"], -input[type="submit"], -input[type="reset"], -input[type="button"], -input[type="radio"], -input[type="checkbox"] { - width: auto; -} - -select, -input[type="file"] { - height: 30px; - /* In IE7, the height of the select element cannot be changed by height, only font-size */ - - *margin-top: 4px; - /* For IE7, add top margin to align select with labels */ - - line-height: 30px; -} - -select { - width: 220px; - background-color: #ffffff; - border: 1px solid #bbb; -} - -select[multiple], -select[size] { - height: auto; -} - -select:focus, -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.uneditable-input, -.uneditable-textarea { - color: #999999; - cursor: not-allowed; - background-color: #fcfcfc; - border-color: #cccccc; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -} - -.uneditable-input { - overflow: hidden; - white-space: nowrap; -} - -.uneditable-textarea { - width: auto; - height: auto; -} - -input:-moz-placeholder, -textarea:-moz-placeholder { - color: #999999; -} - -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { - color: #999999; -} - -input::-webkit-input-placeholder, -textarea::-webkit-input-placeholder { - color: #999999; -} - -.radio, -.checkbox { - min-height: 18px; - padding-left: 18px; -} - -.radio input[type="radio"], -.checkbox input[type="checkbox"] { - float: left; - margin-left: -18px; -} - -.controls > .radio:first-child, -.controls > .checkbox:first-child { - padding-top: 5px; -} - -.radio.inline, -.checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; -} - -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left: 10px; -} - -.input-mini { - width: 60px; -} - -.input-small { - width: 90px; -} - -.input-medium { - width: 150px; -} - -.input-large { - width: 210px; -} - -.input-xlarge { - width: 270px; -} - -.input-xxlarge { - width: 530px; -} - -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { - float: none; - margin-left: 0; -} - -.input-append input[class*="span"], -.input-append .uneditable-input[class*="span"], -.input-prepend input[class*="span"], -.input-prepend .uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"], -.row-fluid .input-prepend [class*="span"], -.row-fluid .input-append [class*="span"] { - display: inline-block; -} - -input, -textarea, -.uneditable-input { - margin-left: 0; -} - -.controls-row [class*="span"] + [class*="span"] { - margin-left: 20px; -} - -input.span12, -textarea.span12, -.uneditable-input.span12 { - width: 926px; -} - -input.span11, -textarea.span11, -.uneditable-input.span11 { - width: 846px; -} - -input.span10, -textarea.span10, -.uneditable-input.span10 { - width: 766px; -} - -input.span9, -textarea.span9, -.uneditable-input.span9 { - width: 686px; -} - -input.span8, -textarea.span8, -.uneditable-input.span8 { - width: 606px; -} - -input.span7, -textarea.span7, -.uneditable-input.span7 { - width: 526px; -} - -input.span6, -textarea.span6, -.uneditable-input.span6 { - width: 446px; -} - -input.span5, -textarea.span5, -.uneditable-input.span5 { - width: 366px; -} - -input.span4, -textarea.span4, -.uneditable-input.span4 { - width: 286px; -} - -input.span3, -textarea.span3, -.uneditable-input.span3 { - width: 206px; -} - -input.span2, -textarea.span2, -.uneditable-input.span2 { - width: 126px; -} - -input.span1, -textarea.span1, -.uneditable-input.span1 { - width: 46px; -} - -.controls-row { - *zoom: 1; -} - -.controls-row:before, -.controls-row:after { - display: table; - line-height: 0; - content: ""; -} - -.controls-row:after { - clear: both; -} - -.controls-row [class*="span"] { - float: left; -} - -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #eeeeee; -} - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"][readonly], -input[type="checkbox"][readonly] { - background-color: transparent; -} - -.control-group.warning > label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #c09853; -} - -.control-group.warning .checkbox, -.control-group.warning .radio, -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #c09853; - border-color: #c09853; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.warning .checkbox:focus, -.control-group.warning .radio:focus, -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; -} - -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} - -.control-group.error > label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #b94a48; -} - -.control-group.error .checkbox, -.control-group.error .radio, -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #b94a48; - border-color: #b94a48; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.error .checkbox:focus, -.control-group.error .radio:focus, -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; -} - -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} - -.control-group.success > label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #468847; -} - -.control-group.success .checkbox, -.control-group.success .radio, -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #468847; - border-color: #468847; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.success .checkbox:focus, -.control-group.success .radio:focus, -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; -} - -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} - -input:focus:required:invalid, -textarea:focus:required:invalid, -select:focus:required:invalid { - color: #b94a48; - border-color: #ee5f5b; -} - -input:focus:required:invalid:focus, -textarea:focus:required:invalid:focus, -select:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} - -.form-actions { - padding: 19px 20px 20px; - margin-top: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - *zoom: 1; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.help-block, -.help-inline { - color: #595959; -} - -.help-block { - display: block; - margin-bottom: 10px; -} - -.help-inline { - display: inline-block; - *display: inline; - padding-left: 5px; - vertical-align: middle; - *zoom: 1; -} - -.input-append, -.input-prepend { - margin-bottom: 5px; - font-size: 0; - white-space: nowrap; -} - -.input-append input, -.input-prepend input, -.input-append select, -.input-prepend select, -.input-append .uneditable-input, -.input-prepend .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - font-size: 14px; - vertical-align: top; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -.input-append input:focus, -.input-prepend input:focus, -.input-append select:focus, -.input-prepend select:focus, -.input-append .uneditable-input:focus, -.input-prepend .uneditable-input:focus { - z-index: 2; -} - -.input-append .add-on, -.input-prepend .add-on { - display: inline-block; - width: auto; - height: 20px; - min-width: 16px; - padding: 4px 5px; - font-size: 14px; - font-weight: normal; - line-height: 20px; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - background-color: #eeeeee; - border: 1px solid #ccc; -} - -.input-append .add-on, -.input-prepend .add-on, -.input-append .btn, -.input-prepend .btn { - margin-left: -1px; - vertical-align: top; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-append .active, -.input-prepend .active { - background-color: #a9dba9; - border-color: #46a546; -} - -.input-prepend .add-on, -.input-prepend .btn { - margin-right: -1px; -} - -.input-prepend .add-on:first-child, -.input-prepend .btn:first-child { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.input-append input, -.input-append select, -.input-append .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.input-append .add-on:last-child, -.input-append .btn:last-child { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -.input-prepend.input-append input, -.input-prepend.input-append select, -.input-prepend.input-append .uneditable-input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-prepend.input-append .add-on:first-child, -.input-prepend.input-append .btn:first-child { - margin-right: -1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.input-prepend.input-append .add-on:last-child, -.input-prepend.input-append .btn:last-child { - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -input.search-query { - padding-right: 14px; - padding-right: 4px \9; - padding-left: 14px; - padding-left: 4px \9; - /* IE7-8 doesn't have border-radius, so don't indent the padding */ - - margin-bottom: 0; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -/* Allow for input prepend/append in search forms */ - -.form-search .input-append .search-query, -.form-search .input-prepend .search-query { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.form-search .input-append .search-query { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search .input-append .btn { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .search-query { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .btn { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search input, -.form-inline input, -.form-horizontal input, -.form-search textarea, -.form-inline textarea, -.form-horizontal textarea, -.form-search select, -.form-inline select, -.form-horizontal select, -.form-search .help-inline, -.form-inline .help-inline, -.form-horizontal .help-inline, -.form-search .uneditable-input, -.form-inline .uneditable-input, -.form-horizontal .uneditable-input, -.form-search .input-prepend, -.form-inline .input-prepend, -.form-horizontal .input-prepend, -.form-search .input-append, -.form-inline .input-append, -.form-horizontal .input-append { - display: inline-block; - *display: inline; - margin-bottom: 0; - vertical-align: middle; - *zoom: 1; -} - -.form-search .hide, -.form-inline .hide, -.form-horizontal .hide { - display: none; -} - -.form-search label, -.form-inline label, -.form-search .btn-group, -.form-inline .btn-group { - display: inline-block; -} - -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - margin-bottom: 0; -} - -.form-search .radio, -.form-search .checkbox, -.form-inline .radio, -.form-inline .checkbox { - padding-left: 0; - margin-bottom: 0; - vertical-align: middle; -} - -.form-search .radio input[type="radio"], -.form-search .checkbox input[type="checkbox"], -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float: left; - margin-right: 3px; - margin-left: 0; -} - -.control-group { - margin-bottom: 10px; -} - -legend + .control-group { - margin-top: 20px; - -webkit-margin-top-collapse: separate; -} - -.form-horizontal .control-group { - margin-bottom: 20px; - *zoom: 1; -} - -.form-horizontal .control-group:before, -.form-horizontal .control-group:after { - display: table; - line-height: 0; - content: ""; -} - -.form-horizontal .control-group:after { - clear: both; -} - -.form-horizontal .control-label { - float: left; - width: 140px; - padding-top: 5px; - text-align: right; -} - -.form-horizontal .controls { - *display: inline-block; - *padding-left: 20px; - margin-left: 160px; - *margin-left: 0; -} - -.form-horizontal .controls:first-child { - *padding-left: 160px; -} - -.form-horizontal .help-block { - margin-top: 10px; - margin-bottom: 0; -} - -.form-horizontal .form-actions { - padding-left: 160px; -} - -table { - max-width: 100%; - background-color: transparent; - border-collapse: collapse; - border-spacing: 0; -} - -.table { - width: 100%; - margin-bottom: 20px; -} - -.table th, -.table td { - padding: 8px; - line-height: 20px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} - -.table th { - font-weight: bold; -} - -.table thead th { - vertical-align: bottom; -} - -.table caption + thead tr:first-child th, -.table caption + thead tr:first-child td, -.table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, -.table thead:first-child tr:first-child th, -.table thead:first-child tr:first-child td { - border-top: 0; -} - -.table tbody + tbody { - border-top: 2px solid #dddddd; -} - -.table-condensed th, -.table-condensed td { - padding: 4px 5px; -} - -.table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapse; - border-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.table-bordered th, -.table-bordered td { - border-left: 1px solid #dddddd; -} - -.table-bordered caption + thead tr:first-child th, -.table-bordered caption + tbody tr:first-child th, -.table-bordered caption + tbody tr:first-child td, -.table-bordered colgroup + thead tr:first-child th, -.table-bordered colgroup + tbody tr:first-child th, -.table-bordered colgroup + tbody tr:first-child td, -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} - -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered thead:first-child tr:first-child th:last-child, -.table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.table-bordered thead:last-child tr:last-child th:first-child, -.table-bordered tbody:last-child tr:last-child td:first-child, -.table-bordered tfoot:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.table-bordered thead:last-child tr:last-child th:last-child, -.table-bordered tbody:last-child tr:last-child td:last-child, -.table-bordered tfoot:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.table-bordered caption + thead tr:first-child th:first-child, -.table-bordered caption + tbody tr:first-child td:first-child, -.table-bordered colgroup + thead tr:first-child th:first-child, -.table-bordered colgroup + tbody tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered caption + thead tr:first-child th:last-child, -.table-bordered caption + tbody tr:first-child td:last-child, -.table-bordered colgroup + thead tr:first-child th:last-child, -.table-bordered colgroup + tbody tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-right-topleft: 4px; -} - -.table-striped tbody tr:nth-child(odd) td, -.table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} - -.table-hover tbody tr:hover td, -.table-hover tbody tr:hover th { - background-color: #f5f5f5; -} - -table [class*=span], -.row-fluid table [class*=span] { - display: table-cell; - float: none; - margin-left: 0; -} - -table .span1 { - float: none; - width: 44px; - margin-left: 0; -} - -table .span2 { - float: none; - width: 124px; - margin-left: 0; -} - -table .span3 { - float: none; - width: 204px; - margin-left: 0; -} - -table .span4 { - float: none; - width: 284px; - margin-left: 0; -} - -table .span5 { - float: none; - width: 364px; - margin-left: 0; -} - -table .span6 { - float: none; - width: 444px; - margin-left: 0; -} - -table .span7 { - float: none; - width: 524px; - margin-left: 0; -} - -table .span8 { - float: none; - width: 604px; - margin-left: 0; -} - -table .span9 { - float: none; - width: 684px; - margin-left: 0; -} - -table .span10 { - float: none; - width: 764px; - margin-left: 0; -} - -table .span11 { - float: none; - width: 844px; - margin-left: 0; -} - -table .span12 { - float: none; - width: 924px; - margin-left: 0; -} - -table .span13 { - float: none; - width: 1004px; - margin-left: 0; -} - -table .span14 { - float: none; - width: 1084px; - margin-left: 0; -} - -table .span15 { - float: none; - width: 1164px; - margin-left: 0; -} - -table .span16 { - float: none; - width: 1244px; - margin-left: 0; -} - -table .span17 { - float: none; - width: 1324px; - margin-left: 0; -} - -table .span18 { - float: none; - width: 1404px; - margin-left: 0; -} - -table .span19 { - float: none; - width: 1484px; - margin-left: 0; -} - -table .span20 { - float: none; - width: 1564px; - margin-left: 0; -} - -table .span21 { - float: none; - width: 1644px; - margin-left: 0; -} - -table .span22 { - float: none; - width: 1724px; - margin-left: 0; -} - -table .span23 { - float: none; - width: 1804px; - margin-left: 0; -} - -table .span24 { - float: none; - width: 1884px; - margin-left: 0; -} - -.table tbody tr.success td { - background-color: #dff0d8; -} - -.table tbody tr.error td { - background-color: #f2dede; -} - -.table tbody tr.info td { - background-color: #d9edf7; -} - -.icon-glass { - background-position: 0 0; -} - -.icon-music { - background-position: -24px 0; -} - -.icon-search { - background-position: -48px 0; -} - -.icon-envelope { - background-position: -72px 0; -} - -.icon-heart { - background-position: -96px 0; -} - -.icon-star { - background-position: -120px 0; -} - -.icon-star-empty { - background-position: -144px 0; -} - -.icon-user { - background-position: -168px 0; -} - -.icon-film { - background-position: -192px 0; -} - -.icon-th-large { - background-position: -216px 0; -} - -.icon-th { - background-position: -240px 0; -} - -.icon-th-list { - background-position: -264px 0; -} - -.icon-ok { - background-position: -288px 0; -} - -.icon-remove { - background-position: -312px 0; -} - -.icon-zoom-in { - background-position: -336px 0; -} - -.icon-zoom-out { - background-position: -360px 0; -} - -.icon-off { - background-position: -384px 0; -} - -.icon-signal { - background-position: -408px 0; -} - -.icon-cog { - background-position: -432px 0; -} - -.icon-trash { - background-position: -456px 0; -} - -.icon-home { - background-position: 0 -24px; -} - -.icon-file { - background-position: -24px -24px; -} - -.icon-time { - background-position: -48px -24px; -} - -.icon-road { - background-position: -72px -24px; -} - -.icon-download-alt { - background-position: -96px -24px; -} - -.icon-download { - background-position: -120px -24px; -} - -.icon-upload { - background-position: -144px -24px; -} - -.icon-inbox { - background-position: -168px -24px; -} - -.icon-play-circle { - background-position: -192px -24px; -} - -.icon-repeat { - background-position: -216px -24px; -} - -.icon-refresh { - background-position: -240px -24px; -} - -.icon-list-alt { - background-position: -264px -24px; -} - -.icon-lock { - background-position: -287px -24px; -} - -.icon-flag { - background-position: -312px -24px; -} - -.icon-headphones { - background-position: -336px -24px; -} - -.icon-volume-off { - background-position: -360px -24px; -} - -.icon-volume-down { - background-position: -384px -24px; -} - -.icon-volume-up { - background-position: -408px -24px; -} - -.icon-qrcode { - background-position: -432px -24px; -} - -.icon-barcode { - background-position: -456px -24px; -} - -.icon-tag { - background-position: 0 -48px; -} - -.icon-tags { - background-position: -25px -48px; -} - -.icon-book { - background-position: -48px -48px; -} - -.icon-bookmark { - background-position: -72px -48px; -} - -.icon-print { - background-position: -96px -48px; -} - -.icon-camera { - background-position: -120px -48px; -} - -.icon-font { - background-position: -144px -48px; -} - -.icon-bold { - background-position: -167px -48px; -} - -.icon-italic { - background-position: -192px -48px; -} - -.icon-text-height { - background-position: -216px -48px; -} - -.icon-text-width { - background-position: -240px -48px; -} - -.icon-align-left { - background-position: -264px -48px; -} - -.icon-align-center { - background-position: -288px -48px; -} - -.icon-align-right { - background-position: -312px -48px; -} - -.icon-align-justify { - background-position: -336px -48px; -} - -.icon-list { - background-position: -360px -48px; -} - -.icon-indent-left { - background-position: -384px -48px; -} - -.icon-indent-right { - background-position: -408px -48px; -} - -.icon-facetime-video { - background-position: -432px -48px; -} - -.icon-picture { - background-position: -456px -48px; -} - -.icon-pencil { - background-position: 0 -72px; -} - -.icon-map-marker { - background-position: -24px -72px; -} - -.icon-adjust { - background-position: -48px -72px; -} - -.icon-tint { - background-position: -72px -72px; -} - -.icon-edit { - background-position: -96px -72px; -} - -.icon-share { - background-position: -120px -72px; -} - -.icon-check { - background-position: -144px -72px; -} - -.icon-move { - background-position: -168px -72px; -} - -.icon-step-backward { - background-position: -192px -72px; -} - -.icon-fast-backward { - background-position: -216px -72px; -} - -.icon-backward { - background-position: -240px -72px; -} - -.icon-play { - background-position: -264px -72px; -} - -.icon-pause { - background-position: -288px -72px; -} - -.icon-stop { - background-position: -312px -72px; -} - -.icon-forward { - background-position: -336px -72px; -} - -.icon-fast-forward { - background-position: -360px -72px; -} - -.icon-step-forward { - background-position: -384px -72px; -} - -.icon-eject { - background-position: -408px -72px; -} - -.icon-chevron-left { - background-position: -432px -72px; -} - -.icon-chevron-right { - background-position: -456px -72px; -} - -.icon-plus-sign { - background-position: 0 -96px; -} - -.icon-minus-sign { - background-position: -24px -96px; -} - -.icon-remove-sign { - background-position: -48px -96px; -} - -.icon-ok-sign { - background-position: -72px -96px; -} - -.icon-question-sign { - background-position: -96px -96px; -} - -.icon-info-sign { - background-position: -120px -96px; -} - -.icon-screenshot { - background-position: -144px -96px; -} - -.icon-remove-circle { - background-position: -168px -96px; -} - -.icon-ok-circle { - background-position: -192px -96px; -} - -.icon-ban-circle { - background-position: -216px -96px; -} - -.icon-arrow-left { - background-position: -240px -96px; -} - -.icon-arrow-right { - background-position: -264px -96px; -} - -.icon-arrow-up { - background-position: -289px -96px; -} - -.icon-arrow-down { - background-position: -312px -96px; -} - -.icon-share-alt { - background-position: -336px -96px; -} - -.icon-resize-full { - background-position: -360px -96px; -} - -.icon-resize-small { - background-position: -384px -96px; -} - -.icon-plus { - background-position: -408px -96px; -} - -.icon-minus { - background-position: -433px -96px; -} - -.icon-asterisk { - background-position: -456px -96px; -} - -.icon-exclamation-sign { - background-position: 0 -120px; -} - -.icon-gift { - background-position: -24px -120px; -} - -.icon-leaf { - background-position: -48px -120px; -} - -.icon-fire { - background-position: -72px -120px; -} - -.icon-eye-open { - background-position: -96px -120px; -} - -.icon-eye-close { - background-position: -120px -120px; -} - -.icon-warning-sign { - background-position: -144px -120px; -} - -.icon-plane { - background-position: -168px -120px; -} - -.icon-calendar { - background-position: -192px -120px; -} - -.icon-random { - width: 16px; - background-position: -216px -120px; -} - -.icon-comment { - background-position: -240px -120px; -} - -.icon-magnet { - background-position: -264px -120px; -} - -.icon-chevron-up { - background-position: -288px -120px; -} - -.icon-chevron-down { - background-position: -313px -119px; -} - -.icon-retweet { - background-position: -336px -120px; -} - -.icon-shopping-cart { - background-position: -360px -120px; -} - -.icon-folder-close { - background-position: -384px -120px; -} - -.icon-folder-open { - width: 16px; - background-position: -408px -120px; -} - -.icon-resize-vertical { - background-position: -432px -119px; -} - -.icon-resize-horizontal { - background-position: -456px -118px; -} - -.icon-hdd { - background-position: 0 -144px; -} - -.icon-bullhorn { - background-position: -24px -144px; -} - -.icon-bell { - background-position: -48px -144px; -} - -.icon-certificate { - background-position: -72px -144px; -} - -.icon-thumbs-up { - background-position: -96px -144px; -} - -.icon-thumbs-down { - background-position: -120px -144px; -} - -.icon-hand-right { - background-position: -144px -144px; -} - -.icon-hand-left { - background-position: -168px -144px; -} - -.icon-hand-up { - background-position: -192px -144px; -} - -.icon-hand-down { - background-position: -216px -144px; -} - -.icon-circle-arrow-right { - background-position: -240px -144px; -} - -.icon-circle-arrow-left { - background-position: -264px -144px; -} - -.icon-circle-arrow-up { - background-position: -288px -144px; -} - -.icon-circle-arrow-down { - background-position: -312px -144px; -} - -.icon-globe { - background-position: -336px -144px; -} - -.icon-wrench { - background-position: -360px -144px; -} - -.icon-tasks { - background-position: -384px -144px; -} - -.icon-filter { - background-position: -408px -144px; -} - -.icon-briefcase { - background-position: -432px -144px; -} - -.icon-fullscreen { - background-position: -456px -144px; -} - -.dropup, -.dropdown { - position: relative; -} - -.dropdown-toggle { - *margin-bottom: -3px; -} - -.dropdown-toggle:active, -.open .dropdown-toggle { - outline: 0; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-top: 4px solid #000000; - border-right: 4px solid transparent; - border-left: 4px solid transparent; - content: ""; -} - -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.dropdown-menu a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 20px; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu li > a:hover, -.dropdown-menu li > a:focus, -.dropdown-submenu:hover > a { - color: #ffffff; - text-decoration: none; - background-color: #0088cc; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #0088cc; - background-color: #0081c2; - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-repeat: repeat-x; - outline: 0; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu .disabled > a, -.dropdown-menu .disabled > a:hover { - color: #999999; -} - -.dropdown-menu .disabled > a:hover { - text-decoration: none; - cursor: default; - background-color: transparent; -} - -.open { - *z-index: 1000; -} - -.open > .dropdown-menu { - display: block; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid #000000; - content: "\2191"; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu > .dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px 6px; - border-radius: 0 6px 6px 6px; -} - -.dropdown-submenu:hover .dropdown-menu { - display: block; -} - -.dropdown-submenu > a:after { - display: block; - float: right; - width: 0; - height: 0; - margin-top: 5px; - margin-right: -10px; - border-color: transparent; - border-left-color: #cccccc; - border-style: solid; - border-width: 5px 0 5px 5px; - content: " "; -} - -.dropdown-submenu:hover > a:after { - border-left-color: #ffffff; -} - -.dropdown .dropdown-menu .nav-header { - padding-right: 20px; - padding-left: 20px; -} - -.typeahead { - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} - -.well-large { - padding: 24px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.well-small { - padding: 9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - -.fade.in { - opacity: 1; -} - -.collapse { - position: relative; - height: 0; - overflow: hidden; - overflow: visible \9; - -webkit-transition: height 0.35s ease; - -moz-transition: height 0.35s ease; - -o-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -.collapse.in { - height: auto; -} - -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 20px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - -.close:hover { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - filter: alpha(opacity=40); -} - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.btn { - display: inline-block; - *display: inline; - padding: 4px 14px; - margin-bottom: 0; - *margin-left: .3em; - font-size: 14px; - line-height: 20px; - *line-height: 20px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - vertical-align: middle; - cursor: pointer; - background-color: #f5f5f5; - *background-color: #e6e6e6; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-repeat: repeat-x; - border: 1px solid #bbbbbb; - *border: 0; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-bottom-color: #a2a2a2; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn:hover, -.btn:active, -.btn.active, -.btn.disabled, -.btn[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; -} - -.btn:active, -.btn.active { - background-color: #cccccc \9; -} - -.btn:first-child { - *margin-left: 0; -} - -.btn:hover { - color: #333333; - text-decoration: none; - background-color: #e6e6e6; - *background-color: #d9d9d9; - /* Buttons in IE7 don't get borders, so darken on hover */ - - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; -} - -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn.active, -.btn:active { - background-color: #e6e6e6; - background-color: #d9d9d9 \9; - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn.disabled, -.btn[disabled] { - cursor: default; - background-color: #e6e6e6; - background-image: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-large { - padding: 9px 14px; - font-size: 16px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.btn-large [class^="icon-"] { - margin-top: 2px; -} - -.btn-small { - padding: 3px 9px; - font-size: 12px; - line-height: 18px; -} - -.btn-small [class^="icon-"] { - margin-top: 0; -} - -.btn-mini { - padding: 2px 6px; - font-size: 11px; - line-height: 16px; -} - -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.btn-block + .btn-block { - margin-top: 5px; -} - -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); -} - -.btn { - border-color: #c5c5c5; - border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); -} - -.btn-primary { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #006dcc; - *background-color: #0044cc; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(to bottom, #0088cc, #0044cc); - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-repeat: repeat-x; - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-primary:hover, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - color: #ffffff; - background-color: #0044cc; - *background-color: #003bb3; -} - -.btn-primary:active, -.btn-primary.active { - background-color: #003399 \9; -} - -.btn-warning { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #faa732; - *background-color: #f89406; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-repeat: repeat-x; - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-warning:hover, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - color: #ffffff; - background-color: #f89406; - *background-color: #df8505; -} - -.btn-warning:active, -.btn-warning.active { - background-color: #c67605 \9; -} - -.btn-danger { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #da4f49; - *background-color: #bd362f; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-repeat: repeat-x; - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-danger:hover, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - color: #ffffff; - background-color: #bd362f; - *background-color: #a9302a; -} - -.btn-danger:active, -.btn-danger.active { - background-color: #942a25 \9; -} - -.btn-success { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #5bb75b; - *background-color: #51a351; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(to bottom, #62c462, #51a351); - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-repeat: repeat-x; - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-success:hover, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - color: #ffffff; - background-color: #51a351; - *background-color: #499249; -} - -.btn-success:active, -.btn-success.active { - background-color: #408140 \9; -} - -.btn-info { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #49afcd; - *background-color: #2f96b4; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-repeat: repeat-x; - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-info:hover, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - color: #ffffff; - background-color: #2f96b4; - *background-color: #2a85a0; -} - -.btn-info:active, -.btn-info.active { - background-color: #24748c \9; -} - -.btn-inverse { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #363636; - *background-color: #222222; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); - background-image: -webkit-linear-gradient(top, #444444, #222222); - background-image: -o-linear-gradient(top, #444444, #222222); - background-image: linear-gradient(to bottom, #444444, #222222); - background-image: -moz-linear-gradient(top, #444444, #222222); - background-repeat: repeat-x; - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-inverse:hover, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - color: #ffffff; - background-color: #222222; - *background-color: #151515; -} - -.btn-inverse:active, -.btn-inverse.active { - background-color: #080808 \9; -} - -button.btn, -input[type="submit"].btn { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn::-moz-focus-inner, -input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; -} - -button.btn.btn-large, -input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; -} - -button.btn.btn-small, -input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn.btn-mini, -input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; -} - -.btn-link, -.btn-link:active { - background-color: transparent; - background-image: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-link { - color: #0088cc; - cursor: pointer; - border-color: transparent; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-link:hover { - color: #005580; - text-decoration: underline; - background-color: transparent; -} - -.btn-group { - position: relative; - *margin-left: .3em; - font-size: 0; - white-space: nowrap; -} - -.btn-group:first-child { - *margin-left: 0; -} - -.btn-group + .btn-group { - margin-left: 5px; -} - -.btn-toolbar { - margin-top: 10px; - margin-bottom: 10px; - font-size: 0; -} - -.btn-toolbar .btn-group { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} - -.btn-toolbar .btn + .btn, -.btn-toolbar .btn-group + .btn, -.btn-toolbar .btn + .btn-group { - margin-left: 5px; -} - -.btn-group > .btn { - position: relative; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group > .btn + .btn { - margin-left: -1px; -} - -.btn-group > .btn, -.btn-group > .dropdown-menu { - font-size: 14px; -} - -.btn-group > .btn-mini { - font-size: 11px; -} - -.btn-group > .btn-small { - font-size: 12px; -} - -.btn-group > .btn-large { - font-size: 16px; -} - -.btn-group > .btn:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-topleft: 4px; -} - -.btn-group > .btn:last-child, -.btn-group > .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; -} - -.btn-group > .btn.large:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-left-radius: 6px; - border-top-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - -moz-border-radius-topleft: 6px; -} - -.btn-group > .btn.large:last-child, -.btn-group > .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-bottomright: 6px; -} - -.btn-group > .btn:hover, -.btn-group > .btn:focus, -.btn-group > .btn:active, -.btn-group > .btn.active { - z-index: 2; -} - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group > .btn + .dropdown-toggle { - *padding-top: 5px; - padding-right: 8px; - *padding-bottom: 5px; - padding-left: 8px; - -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group > .btn-mini + .dropdown-toggle { - *padding-top: 2px; - padding-right: 5px; - *padding-bottom: 2px; - padding-left: 5px; -} - -.btn-group > .btn-small + .dropdown-toggle { - *padding-top: 5px; - *padding-bottom: 4px; -} - -.btn-group > .btn-large + .dropdown-toggle { - *padding-top: 7px; - padding-right: 12px; - *padding-bottom: 7px; - padding-left: 12px; -} - -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group.open .btn.dropdown-toggle { - background-color: #e6e6e6; -} - -.btn-group.open .btn-primary.dropdown-toggle { - background-color: #0044cc; -} - -.btn-group.open .btn-warning.dropdown-toggle { - background-color: #f89406; -} - -.btn-group.open .btn-danger.dropdown-toggle { - background-color: #bd362f; -} - -.btn-group.open .btn-success.dropdown-toggle { - background-color: #51a351; -} - -.btn-group.open .btn-info.dropdown-toggle { - background-color: #2f96b4; -} - -.btn-group.open .btn-inverse.dropdown-toggle { - background-color: #222222; -} - -.btn .caret { - margin-top: 8px; - margin-left: 0; -} - -.btn-mini .caret, -.btn-small .caret, -.btn-large .caret { - margin-top: 6px; -} - -.btn-large .caret { - border-top-width: 5px; - border-right-width: 5px; - border-left-width: 5px; -} - -.dropup .btn-large .caret { - border-top: 0; - border-bottom: 5px solid #000000; -} - -.btn-primary .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.btn-group-vertical { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} - -.btn-group-vertical .btn { - display: block; - float: none; - width: 100%; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group-vertical .btn + .btn { - margin-top: -1px; - margin-left: 0; -} - -.btn-group-vertical .btn:first-child { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.btn-group-vertical .btn:last-child { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.btn-group-vertical .btn-large:first-child { - -webkit-border-radius: 6px 6px 0 0; - -moz-border-radius: 6px 6px 0 0; - border-radius: 6px 6px 0 0; -} - -.btn-group-vertical .btn-large:last-child { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 20px; - color: #c09853; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - background-color: #fcf8e3; - border: 1px solid #fbeed5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.alert h4 { - margin: 0; -} - -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 20px; -} - -.alert-success { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.alert-danger, -.alert-error { - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7; -} - -.alert-info { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.alert-block { - padding-top: 14px; - padding-bottom: 14px; -} - -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; -} - -.alert-block p + p { - margin-top: 5px; -} - -.nav { - margin-bottom: 20px; - margin-left: 0; - list-style: none; -} - -.nav > li > a { - display: block; -} - -.nav > li > a:hover { - text-decoration: none; - background-color: #eeeeee; -} - -.nav > .pull-right { - float: right; -} - -.nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 20px; - color: #999999; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-transform: uppercase; -} - -.nav li + .nav-header { - margin-top: 9px; -} - -.nav-list { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 0; -} - -.nav-list > li > a, -.nav-list .nav-header { - margin-right: -15px; - margin-left: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} - -.nav-list > li > a { - padding: 3px 15px; -} - -.nav-list > .active > a, -.nav-list > .active > a:hover { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - background-color: #0088cc; -} - -.nav-list [class^="icon-"] { - margin-right: 2px; -} - -.nav-list .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.nav-tabs, -.nav-pills { - *zoom: 1; -} - -.nav-tabs:before, -.nav-pills:before, -.nav-tabs:after, -.nav-pills:after { - display: table; - line-height: 0; - content: ""; -} - -.nav-tabs:after, -.nav-pills:after { - clear: both; -} - -.nav-tabs > li, -.nav-pills > li { - float: left; -} - -.nav-tabs > li > a, -.nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; -} - -.nav-tabs { - border-bottom: 1px solid #ddd; -} - -.nav-tabs > li { - margin-bottom: -1px; -} - -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 20px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; -} - -.nav-tabs > .active > a, -.nav-tabs > .active > a:hover { - color: #555555; - cursor: default; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} - -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.nav-pills > .active > a, -.nav-pills > .active > a:hover { - color: #ffffff; - background-color: #0088cc; -} - -.nav-stacked > li { - float: none; -} - -.nav-stacked > li > a { - margin-right: 0; -} - -.nav-tabs.nav-stacked { - border-bottom: 0; -} - -.nav-tabs.nav-stacked > li > a { - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; -} - -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomright: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.nav-tabs.nav-stacked > li > a:hover { - z-index: 2; - border-color: #ddd; -} - -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} - -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} - -.nav-tabs .dropdown-menu { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.nav-pills .dropdown-menu { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.nav .dropdown-toggle .caret { - margin-top: 6px; - border-top-color: #0088cc; - border-bottom-color: #0088cc; -} - -.nav .dropdown-toggle:hover .caret { - border-top-color: #005580; - border-bottom-color: #005580; -} - -/* move down carets for tabs */ - -.nav-tabs .dropdown-toggle .caret { - margin-top: 8px; -} - -.nav .active .dropdown-toggle .caret { - border-top-color: #fff; - border-bottom-color: #fff; -} - -.nav-tabs .active .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.nav > .dropdown.active > a:hover { - cursor: pointer; -} - -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} - -.nav li.dropdown.open .caret, -.nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); -} - -.tabs-stacked .open > a:hover { - border-color: #999999; -} - -.tabbable { - *zoom: 1; -} - -.tabbable:before, -.tabbable:after { - display: table; - line-height: 0; - content: ""; -} - -.tabbable:after { - clear: both; -} - -.tab-content { - overflow: auto; -} - -.tabs-below > .nav-tabs, -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; -} - -.tab-content > .tab-pane, -.pill-content > .pill-pane { - display: none; -} - -.tab-content > .active, -.pill-content > .active { - display: block; -} - -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; -} - -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} - -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.tabs-below > .nav-tabs > li > a:hover { - border-top-color: #ddd; - border-bottom-color: transparent; -} - -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover { - border-color: transparent #ddd #ddd #ddd; -} - -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; -} - -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} - -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} - -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.tabs-left > .nav-tabs > li > a:hover { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} - -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} - -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} - -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.tabs-right > .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} - -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} - -.nav > .disabled > a { - color: #999999; -} - -.nav > .disabled > a:hover { - text-decoration: none; - cursor: default; - background-color: transparent; -} - -.navbar { - *position: relative; - *z-index: 2; - margin-bottom: 20px; - overflow: visible; - color: #555555; -} - -.navbar-inner { - min-height: 40px; - padding-right: 20px; - padding-left: 20px; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - border: 1px solid #d4d4d4; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -} - -.navbar .container { - width: auto; -} - -.nav-collapse.collapse { - height: auto; -} - -.navbar .brand { - display: block; - float: left; - padding: 10px 20px 10px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - color: #555555; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .brand:hover { - text-decoration: none; -} - -.navbar-text { - margin-bottom: 0; - line-height: 40px; -} - -.navbar-link { - color: #555555; -} - -.navbar-link:hover { - color: #333333; -} - -.navbar .divider-vertical { - height: 40px; - margin: 0 9px; - border-right: 1px solid #ffffff; - border-left: 1px solid #f2f2f2; -} - -.navbar .btn, -.navbar .btn-group { - margin-top: 6px; -} - -.navbar .btn-group .btn { - margin: 0; -} - -.navbar-form { - margin-bottom: 0; - *zoom: 1; -} - -.navbar-form:before, -.navbar-form:after { - display: table; - line-height: 0; - content: ""; -} - -.navbar-form:after { - clear: both; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .radio, -.navbar-form .checkbox { - margin-top: 5px; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .btn { - display: inline-block; - margin-bottom: 0; -} - -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; -} - -.navbar-form .input-append, -.navbar-form .input-prepend { - margin-top: 6px; - white-space: nowrap; -} - -.navbar-form .input-append input, -.navbar-form .input-prepend input { - margin-top: 0; -} - -.navbar-search { - position: relative; - float: left; - margin-top: 5px; - margin-bottom: 0; -} - -.navbar-search .search-query { - padding: 4px 14px; - margin-bottom: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.navbar-static-top { - position: static; - width: 100%; - margin-bottom: 0; -} - -.navbar-static-top .navbar-inner { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - margin-bottom: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner, -.navbar-static-top .navbar-inner { - border: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner { - padding-right: 0; - padding-left: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.navbar-fixed-top { - top: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar-fixed-bottom { - bottom: 0; -} - -.navbar-fixed-bottom .navbar-inner { - -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; -} - -.navbar .nav.pull-right { - float: right; -} - -.navbar .nav > li { - float: left; -} - -.navbar .nav > li > a { - float: none; - padding: 10px 15px 10px; - color: #555555; - text-decoration: none; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .nav .dropdown-toggle .caret { - margin-top: 8px; -} - -.navbar .nav > li > a:focus, -.navbar .nav > li > a:hover { - color: #333333; - text-decoration: none; - background-color: transparent; -} - -.navbar .nav > .active > a, -.navbar .nav > .active > a:hover, -.navbar .nav > .active > a:focus { - color: #555555; - text-decoration: none; - background-color: #e5e5e5; - -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); -} - -.navbar .btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-right: 5px; - margin-left: 5px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #ededed; - *background-color: #e5e5e5; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); - background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); - background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); - background-repeat: repeat-x; - border-color: #e5e5e5 #e5e5e5 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); -} - -.navbar .btn-navbar:hover, -.navbar .btn-navbar:active, -.navbar .btn-navbar.active, -.navbar .btn-navbar.disabled, -.navbar .btn-navbar[disabled] { - color: #ffffff; - background-color: #e5e5e5; - *background-color: #d9d9d9; -} - -.navbar .btn-navbar:active, -.navbar .btn-navbar.active { - background-color: #cccccc \9; -} - -.navbar .btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); -} - -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; -} - -.navbar .nav > li > .dropdown-menu:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.navbar .nav > li > .dropdown-menu:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - border-left: 6px solid transparent; - content: ''; -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:before { - top: auto; - bottom: -7px; - border-top: 7px solid #ccc; - border-bottom: 0; - border-top-color: rgba(0, 0, 0, 0.2); -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:after { - top: auto; - bottom: -6px; - border-top: 6px solid #ffffff; - border-bottom: 0; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle, -.navbar .nav li.dropdown.active > .dropdown-toggle, -.navbar .nav li.dropdown.open.active > .dropdown-toggle { - color: #555555; - background-color: #e5e5e5; -} - -.navbar .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.navbar .pull-right > li > .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:before, -.navbar .nav > li > .dropdown-menu.pull-right:before { - right: 12px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:after, -.navbar .nav > li > .dropdown-menu.pull-right:after { - right: 13px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { - right: 100%; - left: auto; - margin-right: -1px; - margin-left: 0; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -.navbar-inverse { - color: #999999; -} - -.navbar-inverse .navbar-inner { - background-color: #1b1b1b; - background-image: -moz-linear-gradient(top, #222222, #111111); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); - background-image: -webkit-linear-gradient(top, #222222, #111111); - background-image: -o-linear-gradient(top, #222222, #111111); - background-image: linear-gradient(to bottom, #222222, #111111); - background-repeat: repeat-x; - border-color: #252525; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); -} - -.navbar-inverse .brand, -.navbar-inverse .nav > li > a { - color: #999999; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} - -.navbar-inverse .brand:hover, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; -} - -.navbar-inverse .nav > li > a:focus, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .nav .active > a, -.navbar-inverse .nav .active > a:hover, -.navbar-inverse .nav .active > a:focus { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .navbar-link { - color: #999999; -} - -.navbar-inverse .navbar-link:hover { - color: #ffffff; -} - -.navbar-inverse .divider-vertical { - border-right-color: #222222; - border-left-color: #111111; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #999999; - border-bottom-color: #999999; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.navbar-inverse .navbar-search .search-query { - color: #ffffff; - background-color: #515151; - border-color: #111111; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; -} - -.navbar-inverse .navbar-search .search-query:-moz-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:focus, -.navbar-inverse .navbar-search .search-query.focused { - padding: 5px 15px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - outline: 0; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -} - -.navbar-inverse .btn-navbar { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e0e0e; - *background-color: #040404; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); - background-image: -webkit-linear-gradient(top, #151515, #040404); - background-image: -o-linear-gradient(top, #151515, #040404); - background-image: linear-gradient(to bottom, #151515, #040404); - background-image: -moz-linear-gradient(top, #151515, #040404); - background-repeat: repeat-x; - border-color: #040404 #040404 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.navbar-inverse .btn-navbar:hover, -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active, -.navbar-inverse .btn-navbar.disabled, -.navbar-inverse .btn-navbar[disabled] { - color: #ffffff; - background-color: #040404; - *background-color: #000000; -} - -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active { - background-color: #000000 \9; -} - -.breadcrumb { - padding: 8px 15px; - margin: 0 0 20px; - list-style: none; - background-color: #f5f5f5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.breadcrumb li { - display: inline-block; - *display: inline; - text-shadow: 0 1px 0 #ffffff; - *zoom: 1; -} - -.breadcrumb .divider { - padding: 0 5px; - color: #ccc; -} - -.breadcrumb .active { - color: #999999; -} - -.pagination { - height: 40px; - margin: 20px 0; -} - -.pagination ul { - display: inline-block; - *display: inline; - margin-bottom: 0; - margin-left: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - *zoom: 1; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.pagination li { - display: inline; -} - -.pagination a, -.pagination span { - float: left; - padding: 0 14px; - line-height: 38px; - text-decoration: none; - background-color: #ffffff; - border: 1px solid #dddddd; - border-left-width: 0; -} - -.pagination a:hover, -.pagination .active a, -.pagination .active span { - background-color: #f5f5f5; -} - -.pagination .active a, -.pagination .active span { - color: #999999; - cursor: default; -} - -.pagination .disabled span, -.pagination .disabled a, -.pagination .disabled a:hover { - color: #999999; - cursor: default; - background-color: transparent; -} - -.pagination li:first-child a, -.pagination li:first-child span { - border-left-width: 1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.pagination li:last-child a, -.pagination li:last-child span { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -.pagination-centered { - text-align: center; -} - -.pagination-right { - text-align: right; -} - -.pager { - margin: 20px 0; - text-align: center; - list-style: none; - *zoom: 1; -} - -.pager:before, -.pager:after { - display: table; - line-height: 0; - content: ""; -} - -.pager:after { - clear: both; -} - -.pager li { - display: inline; -} - -.pager a { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.pager a:hover { - text-decoration: none; - background-color: #f5f5f5; -} - -.pager .next a { - float: right; -} - -.pager .previous a { - float: left; -} - -.pager .disabled a, -.pager .disabled a:hover { - color: #999999; - cursor: default; - background-color: #fff; -} - -.modal-open .dropdown-menu { - z-index: 2050; -} - -.modal-open .dropdown.open { - *z-index: 2050; -} - -.modal-open .popover { - z-index: 2060; -} - -.modal-open .tooltip { - z-index: 2080; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} - -.modal-backdrop.fade { - opacity: 0; -} - -.modal-backdrop, -.modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.modal { - position: fixed; - top: 50%; - left: 50%; - z-index: 1050; - width: 560px; - margin: -250px 0 0 -280px; - overflow: auto; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} - -.modal.fade { - top: -25%; - -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; - -moz-transition: opacity 0.3s linear, top 0.3s ease-out; - -o-transition: opacity 0.3s linear, top 0.3s ease-out; - transition: opacity 0.3s linear, top 0.3s ease-out; -} - -.modal.fade.in { - top: 50%; -} - -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; -} - -.modal-header .close { - margin-top: 2px; -} - -.modal-header h3 { - margin: 0; - line-height: 30px; -} - -.modal-body { - max-height: 400px; - padding: 15px; - overflow-y: auto; -} - -.modal-form { - margin-bottom: 0; -} - -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - text-align: right; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - line-height: 0; - content: ""; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} - -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} - -.tooltip { - position: absolute; - z-index: 1030; - display: block; - padding: 5px; - font-size: 11px; - opacity: 0; - filter: alpha(opacity=0); - visibility: visible; -} - -.tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.tooltip.top { - margin-top: -3px; -} - -.tooltip.right { - margin-left: 3px; -} - -.tooltip.bottom { - margin-top: 3px; -} - -.tooltip.left { - margin-left: -3px; -} - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-right-color: #000000; - border-width: 5px 5px 5px 0; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-left-color: #000000; - border-width: 5px 0 5px 5px; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - width: 236px; - padding: 1px; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.popover.top { - margin-bottom: 10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-right: 10px; -} - -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -.popover-content p, -.popover-content ul, -.popover-content ol { - margin-bottom: 0; -} - -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: inline-block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover .arrow:after { - z-index: -1; - content: ""; -} - -.popover.top .arrow { - bottom: -10px; - left: 50%; - margin-left: -10px; - border-top-color: #ffffff; - border-width: 10px 10px 0; -} - -.popover.top .arrow:after { - bottom: -1px; - left: -11px; - border-top-color: rgba(0, 0, 0, 0.25); - border-width: 11px 11px 0; -} - -.popover.right .arrow { - top: 50%; - left: -10px; - margin-top: -10px; - border-right-color: #ffffff; - border-width: 10px 10px 10px 0; -} - -.popover.right .arrow:after { - bottom: -11px; - left: -1px; - border-right-color: rgba(0, 0, 0, 0.25); - border-width: 11px 11px 11px 0; -} - -.popover.bottom .arrow { - top: -10px; - left: 50%; - margin-left: -10px; - border-bottom-color: #ffffff; - border-width: 0 10px 10px; -} - -.popover.bottom .arrow:after { - top: -1px; - left: -11px; - border-bottom-color: rgba(0, 0, 0, 0.25); - border-width: 0 11px 11px; -} - -.popover.left .arrow { - top: 50%; - right: -10px; - margin-top: -10px; - border-left-color: #ffffff; - border-width: 10px 0 10px 10px; -} - -.popover.left .arrow:after { - right: -1px; - bottom: -11px; - border-left-color: rgba(0, 0, 0, 0.25); - border-width: 11px 0 11px 11px; -} - -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} - -.thumbnails:before, -.thumbnails:after { - display: table; - line-height: 0; - content: ""; -} - -.thumbnails:after { - clear: both; -} - -.row-fluid .thumbnails { - margin-left: 0; -} - -.thumbnails > li { - float: left; - margin-bottom: 20px; - margin-left: 20px; -} - -.thumbnail { - display: block; - padding: 4px; - line-height: 20px; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -a.thumbnail:hover { - border-color: #0088cc; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} - -.thumbnail > img { - display: block; - max-width: 100%; - margin-right: auto; - margin-left: auto; -} - -.thumbnail .caption { - padding: 9px; - color: #555555; -} - -.label, -.badge { - font-size: 11.844px; - font-weight: bold; - line-height: 14px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - white-space: nowrap; - vertical-align: baseline; - background-color: #999999; -} - -.label { - padding: 1px 4px 2px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.badge { - padding: 1px 9px 2px; - -webkit-border-radius: 9px; - -moz-border-radius: 9px; - border-radius: 9px; -} - -a.label:hover, -a.badge:hover { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label-important, -.badge-important { - background-color: #b94a48; -} - -.label-important[href], -.badge-important[href] { - background-color: #953b39; -} - -.label-warning, -.badge-warning { - background-color: #f89406; -} - -.label-warning[href], -.badge-warning[href] { - background-color: #c67605; -} - -.label-success, -.badge-success { - background-color: #468847; -} - -.label-success[href], -.badge-success[href] { - background-color: #356635; -} - -.label-info, -.badge-info { - background-color: #3a87ad; -} - -.label-info[href], -.badge-info[href] { - background-color: #2d6987; -} - -.label-inverse, -.badge-inverse { - background-color: #333333; -} - -.label-inverse[href], -.badge-inverse[href] { - background-color: #1a1a1a; -} - -.btn .label, -.btn .badge { - position: relative; - top: -1px; -} - -.btn-mini .label, -.btn-mini .badge { - top: 0; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-ms-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress .bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - color: #ffffff; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(to bottom, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress .bar + .bar { - -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); -} - -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} - -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -ms-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-danger .bar, -.progress .bar-danger { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); -} - -.progress-danger.progress-striped .bar, -.progress-striped .bar-danger { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-success .bar, -.progress .bar-success { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(to bottom, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); -} - -.progress-success.progress-striped .bar, -.progress-striped .bar-success { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-info .bar, -.progress .bar-info { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(to bottom, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); -} - -.progress-info.progress-striped .bar, -.progress-striped .bar-info { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-warning .bar, -.progress .bar-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); -} - -.progress-warning.progress-striped .bar, -.progress-striped .bar-warning { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.accordion { - margin-bottom: 20px; -} - -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.accordion-heading { - border-bottom: 0; -} - -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} - -.accordion-toggle { - cursor: pointer; -} - -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} - -.carousel { - position: relative; - margin-bottom: 20px; - line-height: 1; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - -moz-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} - -.carousel .item > img { - display: block; - line-height: 1; -} - -.carousel .active, -.carousel .next, -.carousel .prev { - display: block; -} - -.carousel .active { - left: 0; -} - -.carousel .next, -.carousel .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel .next { - left: 100%; -} - -.carousel .prev { - left: -100%; -} - -.carousel .next.left, -.carousel .prev.right { - left: 0; -} - -.carousel .active.left { - left: -100%; -} - -.carousel .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; - text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; - filter: alpha(opacity=50); -} - -.carousel-control.right { - right: 15px; - left: auto; -} - -.carousel-control:hover { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.carousel-caption { - position: absolute; - right: 0; - bottom: 0; - left: 0; - padding: 15px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} - -.carousel-caption h4, -.carousel-caption p { - line-height: 20px; - color: #ffffff; -} - -.carousel-caption h4 { - margin: 0 0 5px; -} - -.carousel-caption p { - margin-bottom: 0; -} - -.hero-unit { - padding: 60px; - margin-bottom: 30px; - background-color: #eeeeee; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - letter-spacing: -1px; - color: inherit; -} - -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 30px; - color: inherit; -} - -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.hide { - display: none; -} - -.show { - display: block; -} - -.invisible { - visibility: hidden; -} - -.affix { - position: fixed; -} -/* Font Awesome - the iconic font designed for use with Twitter Bootstrap - ------------------------------------------------------- - The full suite of pictographic icons, examples, and documentation - can be found at: http://fortawesome.github.com/Font-Awesome/ - - License - ------------------------------------------------------- - The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0: - http://creativecommons.org/licenses/by/3.0/ A mention of - 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable - source code is considered acceptable attribution (most common on the web). - If human readable source code is not available to the end user, a mention in - an 'About' or 'Credits' screen is considered acceptable (most common in desktop - or mobile software). - - Contact - ------------------------------------------------------- - Email: dave@davegandy.com - Twitter: http://twitter.com/fortaweso_me - Work: http://lemonwi.se co-founder - - */ -@font-face { - font-family: "FontAwesome"; - src: url('../font/fontawesome-webfont.eot'); - src: url('../font/fontawesome-webfont.eot?#iefix') format('eot'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svg#FontAwesome') format('svg'); - font-weight: normal; - font-style: normal; -} - -/* Font Awesome styles - ------------------------------------------------------- */ -[class^="icon-"]:before, [class*=" icon-"]:before { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - display: inline-block; - text-decoration: inherit; -} -a [class^="icon-"], a [class*=" icon-"] { - display: inline-block; - text-decoration: inherit; -} -/* makes the font 33% larger relative to the icon container */ -.icon-large:before { - vertical-align: top; - font-size: 1.3333333333333333em; -} -.btn [class^="icon-"], .btn [class*=" icon-"] { - /* keeps button heights with and without icons the same */ - - line-height: .9em; -} -li [class^="icon-"], li [class*=" icon-"] { - display: inline-block; - width: 1.25em; - text-align: center; -} -li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] { - /* 1.5 increased font size for icon-large * 1.25 width */ - - width: 1.875em; -} -li[class^="icon-"], li[class*=" icon-"] { - margin-left: 0; - list-style-type: none; -} -li[class^="icon-"]:before, li[class*=" icon-"]:before { - text-indent: -2em; - text-align: center; -} -li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before { - text-indent: -1.3333333333333333em; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.icon-glass:before { content: "\f000"; } -.icon-music:before { content: "\f001"; } -.icon-search:before { content: "\f002"; } -.icon-envelope:before { content: "\f003"; } -.icon-heart:before { content: "\f004"; } -.icon-star:before { content: "\f005"; } -.icon-star-empty:before { content: "\f006"; } -.icon-user:before { content: "\f007"; } -.icon-film:before { content: "\f008"; } -.icon-th-large:before { content: "\f009"; } -.icon-th:before { content: "\f00a"; } -.icon-th-list:before { content: "\f00b"; } -.icon-ok:before { content: "\f00c"; } -.icon-remove:before { content: "\f00d"; } -.icon-zoom-in:before { content: "\f00e"; } - -.icon-zoom-out:before { content: "\f010"; } -.icon-off:before { content: "\f011"; } -.icon-signal:before { content: "\f012"; } -.icon-cog:before { content: "\f013"; } -.icon-trash:before { content: "\f014"; } -.icon-home:before { content: "\f015"; } -.icon-file:before { content: "\f016"; } -.icon-time:before { content: "\f017"; } -.icon-road:before { content: "\f018"; } -.icon-download-alt:before { content: "\f019"; } -.icon-download:before { content: "\f01a"; } -.icon-upload:before { content: "\f01b"; } -.icon-inbox:before { content: "\f01c"; } -.icon-play-circle:before { content: "\f01d"; } -.icon-repeat:before { content: "\f01e"; } - -/* \f020 doesn't work in Safari. all shifted one down */ -.icon-refresh:before { content: "\f021"; } -.icon-list-alt:before { content: "\f022"; } -.icon-lock:before { content: "\f023"; } -.icon-flag:before { content: "\f024"; } -.icon-headphones:before { content: "\f025"; } -.icon-volume-off:before { content: "\f026"; } -.icon-volume-down:before { content: "\f027"; } -.icon-volume-up:before { content: "\f028"; } -.icon-qrcode:before { content: "\f029"; } -.icon-barcode:before { content: "\f02a"; } -.icon-tag:before { content: "\f02b"; } -.icon-tags:before { content: "\f02c"; } -.icon-book:before { content: "\f02d"; } -.icon-bookmark:before { content: "\f02e"; } -.icon-print:before { content: "\f02f"; } - -.icon-camera:before { content: "\f030"; } -.icon-font:before { content: "\f031"; } -.icon-bold:before { content: "\f032"; } -.icon-italic:before { content: "\f033"; } -.icon-text-height:before { content: "\f034"; } -.icon-text-width:before { content: "\f035"; } -.icon-align-left:before { content: "\f036"; } -.icon-align-center:before { content: "\f037"; } -.icon-align-right:before { content: "\f038"; } -.icon-align-justify:before { content: "\f039"; } -.icon-list:before { content: "\f03a"; } -.icon-indent-left:before { content: "\f03b"; } -.icon-indent-right:before { content: "\f03c"; } -.icon-facetime-video:before { content: "\f03d"; } -.icon-picture:before { content: "\f03e"; } - -.icon-pencil:before { content: "\f040"; } -.icon-map-marker:before { content: "\f041"; } -.icon-adjust:before { content: "\f042"; } -.icon-tint:before { content: "\f043"; } -.icon-edit:before { content: "\f044"; } -.icon-share:before { content: "\f045"; } -.icon-check:before { content: "\f046"; } -.icon-move:before { content: "\f047"; } -.icon-step-backward:before { content: "\f048"; } -.icon-fast-backward:before { content: "\f049"; } -.icon-backward:before { content: "\f04a"; } -.icon-play:before { content: "\f04b"; } -.icon-pause:before { content: "\f04c"; } -.icon-stop:before { content: "\f04d"; } -.icon-forward:before { content: "\f04e"; } - -.icon-fast-forward:before { content: "\f050"; } -.icon-step-forward:before { content: "\f051"; } -.icon-eject:before { content: "\f052"; } -.icon-chevron-left:before { content: "\f053"; } -.icon-chevron-right:before { content: "\f054"; } -.icon-plus-sign:before { content: "\f055"; } -.icon-minus-sign:before { content: "\f056"; } -.icon-remove-sign:before { content: "\f057"; } -.icon-ok-sign:before { content: "\f058"; } -.icon-question-sign:before { content: "\f059"; } -.icon-info-sign:before { content: "\f05a"; } -.icon-screenshot:before { content: "\f05b"; } -.icon-remove-circle:before { content: "\f05c"; } -.icon-ok-circle:before { content: "\f05d"; } -.icon-ban-circle:before { content: "\f05e"; } - -.icon-arrow-left:before { content: "\f060"; } -.icon-arrow-right:before { content: "\f061"; } -.icon-arrow-up:before { content: "\f062"; } -.icon-arrow-down:before { content: "\f063"; } -.icon-share-alt:before { content: "\f064"; } -.icon-resize-full:before { content: "\f065"; } -.icon-resize-small:before { content: "\f066"; } -.icon-plus:before { content: "\f067"; } -.icon-minus:before { content: "\f068"; } -.icon-asterisk:before { content: "\f069"; } -.icon-exclamation-sign:before { content: "\f06a"; } -.icon-gift:before { content: "\f06b"; } -.icon-leaf:before { content: "\f06c"; } -.icon-fire:before { content: "\f06d"; } -.icon-eye-open:before { content: "\f06e"; } - -.icon-eye-close:before { content: "\f070"; } -.icon-warning-sign:before { content: "\f071"; } -.icon-plane:before { content: "\f072"; } -.icon-calendar:before { content: "\f073"; } -.icon-random:before { content: "\f074"; } -.icon-comment:before { content: "\f075"; } -.icon-magnet:before { content: "\f076"; } -.icon-chevron-up:before { content: "\f077"; } -.icon-chevron-down:before { content: "\f078"; } -.icon-retweet:before { content: "\f079"; } -.icon-shopping-cart:before { content: "\f07a"; } -.icon-folder-close:before { content: "\f07b"; } -.icon-folder-open:before { content: "\f07c"; } -.icon-resize-vertical:before { content: "\f07d"; } -.icon-resize-horizontal:before { content: "\f07e"; } - -.icon-bar-chart:before { content: "\f080"; } -.icon-twitter-sign:before { content: "\f081"; } -.icon-facebook-sign:before { content: "\f082"; } -.icon-camera-retro:before { content: "\f083"; } -.icon-key:before { content: "\f084"; } -.icon-cogs:before { content: "\f085"; } -.icon-comments:before { content: "\f086"; } -.icon-thumbs-up:before { content: "\f087"; } -.icon-thumbs-down:before { content: "\f088"; } -.icon-star-half:before { content: "\f089"; } -.icon-heart-empty:before { content: "\f08a"; } -.icon-signout:before { content: "\f08b"; } -.icon-linkedin-sign:before { content: "\f08c"; } -.icon-pushpin:before { content: "\f08d"; } -.icon-external-link:before { content: "\f08e"; } - -.icon-signin:before { content: "\f090"; } -.icon-trophy:before { content: "\f091"; } -.icon-github-sign:before { content: "\f092"; } -.icon-upload-alt:before { content: "\f093"; } -.icon-lemon:before { content: "\f094"; } -.icon-phone:before { content: "\f095"; } -.icon-check-empty:before { content: "\f096"; } -.icon-bookmark-empty:before { content: "\f097"; } -.icon-phone-sign:before { content: "\f098"; } -.icon-twitter:before { content: "\f099"; } -.icon-facebook:before { content: "\f09a"; } -.icon-github:before { content: "\f09b"; } -.icon-unlock:before { content: "\f09c"; } -.icon-credit-card:before { content: "\f09d"; } -.icon-rss:before { content: "\f09e"; } - -.icon-hdd:before { content: "\f0a0"; } -.icon-bullhorn:before { content: "\f0a1"; } -.icon-bell:before { content: "\f0a2"; } -.icon-certificate:before { content: "\f0a3"; } -.icon-hand-right:before { content: "\f0a4"; } -.icon-hand-left:before { content: "\f0a5"; } -.icon-hand-up:before { content: "\f0a6"; } -.icon-hand-down:before { content: "\f0a7"; } -.icon-circle-arrow-left:before { content: "\f0a8"; } -.icon-circle-arrow-right:before { content: "\f0a9"; } -.icon-circle-arrow-up:before { content: "\f0aa"; } -.icon-circle-arrow-down:before { content: "\f0ab"; } -.icon-globe:before { content: "\f0ac"; } -.icon-wrench:before { content: "\f0ad"; } -.icon-tasks:before { content: "\f0ae"; } - -.icon-filter:before { content: "\f0b0"; } -.icon-briefcase:before { content: "\f0b1"; } -.icon-fullscreen:before { content: "\f0b2"; } - -.icon-group:before { content: "\f0c0"; } -.icon-link:before { content: "\f0c1"; } -.icon-cloud:before { content: "\f0c2"; } -.icon-beaker:before { content: "\f0c3"; } -.icon-cut:before { content: "\f0c4"; } -.icon-copy:before { content: "\f0c5"; } -.icon-paper-clip:before { content: "\f0c6"; } -.icon-save:before { content: "\f0c7"; } -.icon-sign-blank:before { content: "\f0c8"; } -.icon-reorder:before { content: "\f0c9"; } -.icon-list-ul:before { content: "\f0ca"; } -.icon-list-ol:before { content: "\f0cb"; } -.icon-strikethrough:before { content: "\f0cc"; } -.icon-underline:before { content: "\f0cd"; } -.icon-table:before { content: "\f0ce"; } - -.icon-magic:before { content: "\f0d0"; } -.icon-truck:before { content: "\f0d1"; } -.icon-pinterest:before { content: "\f0d2"; } -.icon-pinterest-sign:before { content: "\f0d3"; } -.icon-google-plus-sign:before { content: "\f0d4"; } -.icon-google-plus:before { content: "\f0d5"; } -.icon-money:before { content: "\f0d6"; } -.icon-caret-down:before { content: "\f0d7"; } -.icon-caret-up:before { content: "\f0d8"; } -.icon-caret-left:before { content: "\f0d9"; } -.icon-caret-right:before { content: "\f0da"; } -.icon-columns:before { content: "\f0db"; } -.icon-sort:before { content: "\f0dc"; } -.icon-sort-down:before { content: "\f0dd"; } -.icon-sort-up:before { content: "\f0de"; } - -.icon-envelope-alt:before { content: "\f0e0"; } -.icon-linkedin:before { content: "\f0e1"; } -.icon-undo:before { content: "\f0e2"; } -.icon-legal:before { content: "\f0e3"; } -.icon-dashboard:before { content: "\f0e4"; } -.icon-comment-alt:before { content: "\f0e5"; } -.icon-comments-alt:before { content: "\f0e6"; } -.icon-bolt:before { content: "\f0e7"; } -.icon-sitemap:before { content: "\f0e8"; } -.icon-umbrella:before { content: "\f0e9"; } -.icon-paste:before { content: "\f0ea"; } - -.icon-user-md:before { content: "\f200"; } -[class^="icon-"], [class*=" icon-"] { - background-image: ""; /* reset bootstrap crap */ -} - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; -} - -img { - vertical-align: baseline; -} - -html, -body { - min-height: 100%; -} - -body { - background: #F9F9F9; - font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, Verdana, sans-serif; - color: #404040; -} - -.tocContainer ol { - padding: 0; - margin: 0 0 0 12px; -} - -.alert h4 { - font-weight: bold; - padding-bottom: 0px; -} - -.documentationContainer { - margin-top: 20px; - margin-bottom: 20px; - -webkit-transition: width 0.15s; - -moz-transition: width 0.15s; -} - -#nav-container { - width: 160px; - min-height: 10px; - margin-right: 20px; - float: left; } - -#nav { - margin:0; - padding:0 0 30px; -} - -#nav li ul > ul { - margin: 5px 0; -} - -#side-nav { - min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */ - margin-bottom:1px; -} -#doc-nav { - outline:none; - width:auto; -} - -#doc-nav h2 { - border:0; -} - -#doc-nav.fixed { - position: fixed; - margin:0; - top: 20px; } - -a:hover, -acronym:hover, -a code:hover, -a:hover code { - color: #7aa1b0 !important; - text-decoration: none; -} - -a:focus, -a:active { - color: #33b5e5 !important; } - -/* nav */ -#nav { - /* section header divs */ - /* expanded section header divs */ - /* sublinks */ } - #nav li { - list-style-type: none; - font-size: 14px; - margin:0; - padding:0; - line-height: 15px; } - #nav a { - color: #555555; - text-decoration: none; - -webkit-transition: color 0.2s; - -moz-transition: color 0.2s; - } - #nav .nav-section-header { - cursor: pointer; - position: relative; - margin-bottom: 1px; - margin-top: 5px; - padding: 0 30px 0 0; } - #nav .selected a, - #nav .selected > .nav-section-header > a { - color: #09C; - } - #nav .selected ul li a { - /* don't highlight child items */ - color: #555555; } - #nav .nav-section .nav-section .nav-section-header { - /* no white line between second level sections */ - margin-bottom: 0; } - /* section header links */ - #nav > li > div > a { - display: block; - color: #333333; - font-weight: 500; - padding: 10px 0 10px 10px; } - #nav .nav-section-header.empty:after { - display: none; } - /* nested nav headers */ - #nav .nav-section .nav-section { - position: relative; - padding: 0; - margin: 0; } - #nav .nav-section li a { - /* first gen child (2nd level li) */ - display:block; - font-weight: normal; - text-transform: none; - padding: 5px 5px 5px 10px; - font-size: 13px; - } - #nav .nav-section li li a { - /* second gen child (3rd level li) */ - padding: 5px 5px 5px 10px; - } - #nav .expanded .nav-section-header { - background:#e9e9e9; - background: rgba(0, 0, 0, 0.05); } - #nav .expanded li .nav-section-header { - background: transparent; } - #nav .expanded li ul { - /* 3rd level ul */ - padding:0 10px; - } - #nav .nav-section > ul { - display:none; - } - #nav li ul { - overflow: hidden; - margin: 0; } - #nav li ul.animate-height-in { - -webkit-transition: height 0.25s ease-in; - -moz-transition: height 0.25s ease-in; - transition: height 0.25s ease-in; } - #nav li ul.animate-height-out { - -webkit-transition: height 0.25s ease-out; - -moz-transition: height 0.25s ease-out; - transition: height 0.25s ease-out; } - #nav li ul li { - padding: 0; } - #nav li li li { - padding: 0; } - #nav .expanded ul { - } - #nav li ul > li { - padding:0; - } - #nav li ul ul li { - padding-left: 5px; - border-left: 1px dotted #BBB; - margin-left: 13px; - } - #nav li ul > li:last-child { - padding-bottom:5px; - } - #nav .expanded > ul { - background: rgba(0, 0, 0, 0.03); - } - #nav .expanded ul > li { - /*background:#efefef; - background: rgba(0, 0, 0, 0.03);*/ - } - #nav .expanded ul > li li { - background:inherit; } - -.new, -.new-child { - font-size: .78em; - font-weight: bold; - color: #ff3d3d; - vertical-align:top; - white-space:nowrap; -} - -#doc-nav .totop { - display:block; - top:0; - width:inherit; - background: transparent url(../img/nav_gototop.png) no-repeat scroll 50% 50%; - text-indent:-9999em; -} -#doc-nav .totop { - position:fixed; - display:none; -} -#doc-nav .totop:hover { - background-color:#33B5E5; -} - -p { - font-size: 14px; - line-height: 20px; - margin: 15px 0; -} - -span.menucascade { - white-space:nowrap; -} - -#content .meta { - color: #999; - font-size: 11px; - font-style: italic; - margin: 0 0 8px 3px; -} - -#content { - padding: 15px 25px; - background: white; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2); - box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2); -} - -#content p { - line-height: 21px; -} - -#content ul li, -#content ol li { - padding-left: 5px; -} - - -pre { - border: none; -} - -pre code { - padding: 0; - border: 1px solid #ccc; -} - -pre, -code { - font-family: 'Inconsolata', monospace; - font-size: 14px; - background-color: transparent; -} - -code { - color: #333; -} - -a code { - color: #08C; -} - -/* Pointer link styling */ -h2, h3, h4, h5, h6 { - position: relative; - padding-top: 5px; - padding-bottom: 5px; -} - -h2 a .headerLinkIcon.icon-hand-right, -h3 a .headerLinkIcon.icon-hand-right, -h4 a .headerLinkIcon.icon-hand-right, -h5 a .headerLinkIcon.icon-hand-right, -h6 a .headerLinkIcon.icon-hand-right { - display: inline-table; - opacity: 0; - vertical-align: middle; - position: relative; - left: -25px; - text-decoration: none; - color: black; - transition: 0.1s opacity; - -moz-transition: 0.1s opacity; - -webkit-transition: 0.1s opacity; -} - -.heading_anchor { - color: black; - display: block; - top: 5px; - left: 0; - bottom: 0; - position: absolute; - padding-left: 30px; - margin-left: -35px; - -webkit-transition: 0.2s margin-left; - -moz-transition: 0.2s margin-left; -} - -.codeSegment { - border-bottom: 1px solid rgba(234, 46, 73, .3); - -webkit-background-clip: padding-box; - background-clip: padding-box; -} - -#content { - padding-right: 45px; - position: relative; -} - -#toh_btn { - cursor: pointer; - width: 22px; - height: 18px; - position: absolute; - top: 10px; - background: url(../img/toh_icon.png) 0px 0px no-repeat; - border: 1px solid transparent; - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-transition: border 0.2s; - -moz-transition: border 0.2s; -} - -#toh_btn.active { - -moz-box-shadow: inset 0px 0px 2px rgba(0, 0, 0, 0.7); - -webkit-box-shadow: inset 0px 0px 2px rgba(0, 0, 0, 0.7); - box-shadow: inset 0px 0px 2px rgba(0, 0, 0, 0.7); - background-color: #f4f4f4; -} - -#toh_btn:hover { - border-color: #bbb; -} - -#toh_btn.active:hover { - border-color: transparent; -} - -.tocContainer li { - list-style-type: none; -} -#tocHolder { - display: none; -} - -#tocHolder > .tocContainer { - background: #fafafa; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.55) inset; - border-radius: 2px; - margin-left: -39px; - padding: 10px; - position: fixed; - top: 163px; - width: 200px; -} - -.tocItem > a { - font-weight: 300; - color: #08C; - transition: 0.3s color; - -webkit-transition: 0.3s color; - -moz-transition: 0.3s color; -} -.tocItem.highlight > a { - color: #DA196E; -} - -.copyright { - font-size: 13px; - color: #999; - margin-top: 10px; -} - -.copyright a { - color: #7AB7D6; -} - -#topbar { - height: 40px; - border-bottom: 1px solid #BBB; - margin-bottom: 10px; - background: #DDD; - background: -moz-linear-gradient(top, #f7f7f7 0%, #dddddd 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7f7f7), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #f7f7f7 0%,#dddddd 100%); - background: -o-linear-gradient(top, #f7f7f7 0%,#dddddd 100%); - background: -ms-linear-gradient(top, #f7f7f7 0%,#dddddd 100%); - background: linear-gradient(to bottom, #f7f7f7 0%,#dddddd 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#dddddd',GradientType=0 ); -} - -#headerlink { - background: url(../img/c9devlogosmaller.png) 0 3px no-repeat; - float: left; - height: 26px; - display: inline-block; - margin: 2px 25px 0 19px; - font-size: 21px; - padding: 11px 0 0 55px; - font-weight: 100; - font-family: Helvetica; - color: #35434B; - -moz-transition: 0.2s color; - -webkit-transition: 0.2s color; - text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.7); -} - -#headerlink:hover { - text-decoration: none; - color: #666 !important; -} - -#headerlink:hover { - text-decoration: none; - color: #666 !important; -} - -.toplink { - float: left; - border-left: 1px solid transparent; - -webkit-transition: 0.2s background, 0.2s border; - -moz-transition: 0.2s background, 0.2s border; -} - -.toplink:hover { - background: #eee; - border-left: 1px solid #ddd; -} - -.toplink.active:hover { - border-left: 1px solid transparent; -} - -.toplink a { - display: inline-block; - padding: 11px 25px 11px 25px; - cursor: pointer; - font-size: 15px; -} - -.toplink.active { - background: #555; - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5); -} - -.toplink.active a { - color: #fff; -} - -.toplink a:hover { - text-decoration: none; -} - -.alert-heading { - display: inline-block; - padding-right: 5px; - font-size: 14px; -} - -li .tocNavArrow { - display: none; - position: absolute; - top: 11px; - right: 7px; - float: right; -} - -.nav-section.expanded .icon-chevron-up.tocNavArrow { - display: block; -} - -.nav-section:not(.expanded) .icon-chevron-down.tocNavArrow { - display: block; -} - -.centered { - width: 75%; - margin: 0px auto; -} - -#search-box { - margin-top: 20px; -} - -.container { - padding: 20px 0; - width: 960px; -} - -.container > .row { - margin-left: 0; -} - -#footer { - padding-bottom: 10px; -} - -#nav div.alert { - margin-top: 5px; -} - -#nav div.alert a { - color: #33B5E5; - text-decoration: underline; -} - -table .debug_tools { - width: 181px; -} - -table.ide_preferences { - table-layout: fixed; - } - -table.ide_preferences th, table.ide_preferences td { overflow: hidden; } - -table th.preferenceCol { - width: 40%; -} - -.sidebar-nav { - padding-top: 19px; -} - -footer { - color: #666; - background: #222; -} -footer a { - color: #999; -} -footer a:hover { - color: #efefef; -} -.wrapper { - margin: 0 auto; -} -.push { - height: 0px; - overflow: hidden; -} - - -.span3 { - margin: 0; -} -.sidebar-nav { - padding-top: 0; -} -.documentationContainer { - margin-bottom: 0; - margin-top: 0; - position: relative; - width: 720px; -} - -#header_iframe, -#footer_iframe { - box-shadow: 0 0 20px 0 rgba(0, 0, 0, .5); - display: block; -} -/* - -Original style from softwaremaniacs.org (c) Ivan Sagalaev - -*/ - -pre code { - display: block; padding: 0.5em; - background: #F0F0F0; -} - -pre code, -pre .ruby .subst, -pre .tag .title, -pre .lisp .title, -pre .clojure .built_in, -pre .nginx .title { - color: black; -} - -pre .string, -pre .title, -pre .constant, -pre .parent, -pre .tag .value, -pre .rules .value, -pre .rules .value .number, -pre .preprocessor, -pre .ruby .symbol, -pre .ruby .symbol .string, -pre .aggregate, -pre .template_tag, -pre .django .variable, -pre .smalltalk .class, -pre .addition, -pre .flow, -pre .stream, -pre .bash .variable, -pre .apache .tag, -pre .apache .cbracket, -pre .tex .command, -pre .tex .special, -pre .erlang_repl .function_or_atom, -pre .markdown .header { - color: #800; -} - -pre .comment, -pre .annotation, -pre .template_comment, -pre .diff .header, -pre .chunk, -pre .markdown .blockquote { - color: #888; -} - -pre .number, -pre .date, -pre .regexp, -pre .literal, -pre .smalltalk .symbol, -pre .smalltalk .char, -pre .go .constant, -pre .change, -pre .markdown .bullet, -pre .markdown .link_url { - color: #080; -} - -pre .label, -pre .javadoc, -pre .ruby .string, -pre .decorator, -pre .filter .argument, -pre .localvars, -pre .array, -pre .attr_selector, -pre .important, -pre .pseudo, -pre .pi, -pre .doctype, -pre .deletion, -pre .envvar, -pre .shebang, -pre .apache .sqbracket, -pre .nginx .built_in, -pre .tex .formula, -pre .erlang_repl .reserved, -pre .input_number, -pre .markdown .link_label, -pre .vhdl .attribute, -pre .clojure .attribute { - color: #88F -} - -pre .keyword, -pre .id, -pre .phpdoc, -pre .title, -pre .built_in, -pre .aggregate, -pre .css .tag, -pre .javadoctag, -pre .phpdoc, -pre .yardoctag, -pre .smalltalk .class, -pre .winutils, -pre .bash .variable, -pre .apache .tag, -pre .go .typename, -pre .tex .command, -pre .markdown .strong, -pre .request, -pre .status { - font-weight: bold; -} - -pre .markdown .emphasis { - font-style: italic; -} - -pre .nginx .built_in { - font-weight: normal; -} - -pre .coffeescript .javascript, -pre .xml .css, -pre .xml .javascript, -pre .xml .vbscript, -pre .tex .formula { - opacity: 0.5; -} diff --git a/out/assets/styles.css.mf b/out/assets/styles.css.mf deleted file mode 100644 index 1bfbadd..0000000 --- a/out/assets/styles.css.mf +++ /dev/null @@ -1,4 +0,0 @@ -require "stylesheets/bootstrap.css" -require "stylesheets/font-awesome.css" -require "stylesheets/docs.css" -require "stylesheets/default.css" \ No newline at end of file diff --git a/out/assets/stylesheets/bootstrap.css b/out/assets/stylesheets/bootstrap.css deleted file mode 100644 index 68a1586..0000000 --- a/out/assets/stylesheets/bootstrap.css +++ /dev/null @@ -1,5598 +0,0 @@ -/*! - * Bootstrap v2.1.0 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} - -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} - -audio:not([controls]) { - display: none; -} - -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -a:hover, -a:active { - outline: 0; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - height: auto; - max-width: 100%; - vertical-align: middle; - border: 0; - -ms-interpolation-mode: bicubic; -} - -#map_canvas img { - max-width: none; -} - -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} - -button, -input { - *overflow: visible; - line-height: normal; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} - -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} - -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - -textarea { - overflow: auto; - vertical-align: top; -} - -.clearfix { - *zoom: 1; -} - -.clearfix:before, -.clearfix:after { - display: table; - line-height: 0; - content: ""; -} - -.clearfix:after { - clear: both; -} - -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -body { - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 20px; - color: #333333; - background-color: #ffffff; -} - -a { - color: #0088cc; - text-decoration: none; -} - -a:hover { - color: #005580; - text-decoration: underline; -} - -.img-rounded { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.img-polaroid { - padding: 4px; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -} - -.img-circle { - -webkit-border-radius: 500px; - -moz-border-radius: 500px; - border-radius: 500px; -} - -.row { - margin-left: -20px; - *zoom: 1; -} - -.row:before, -.row:after { - display: table; - line-height: 0; - content: ""; -} - -.row:after { - clear: both; -} - -[class*="span"] { - float: left; - margin-left: 20px; -} - -.container, -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.span12 { - width: 940px; -} - -.span11 { - width: 860px; -} - -.span10 { - width: 780px; -} - -.span9 { - width: 700px; -} - -.span8 { - width: 620px; -} - -.span7 { - width: 540px; -} - -.span6 { - width: 460px; -} - -.span5 { - width: 380px; -} - -.span4 { - width: 300px; -} - -.span3 { - width: 220px; -} - -.span2 { - width: 140px; -} - -.span1 { - width: 60px; -} - -.offset12 { - margin-left: 980px; -} - -.offset11 { - margin-left: 900px; -} - -.offset10 { - margin-left: 820px; -} - -.offset9 { - margin-left: 740px; -} - -.offset8 { - margin-left: 660px; -} - -.offset7 { - margin-left: 580px; -} - -.offset6 { - margin-left: 500px; -} - -.offset5 { - margin-left: 420px; -} - -.offset4 { - margin-left: 340px; -} - -.offset3 { - margin-left: 260px; -} - -.offset2 { - margin-left: 180px; -} - -.offset1 { - margin-left: 100px; -} - -.row-fluid { - width: 100%; - *zoom: 1; -} - -.row-fluid:before, -.row-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.row-fluid:after { - clear: both; -} - -.row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.127659574468085%; - *margin-left: 2.074468085106383%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.row-fluid [class*="span"]:first-child { - margin-left: 0; -} - -.row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; -} - -.row-fluid .span11 { - width: 91.48936170212765%; - *width: 91.43617021276594%; -} - -.row-fluid .span10 { - width: 82.97872340425532%; - *width: 82.92553191489361%; -} - -.row-fluid .span9 { - width: 74.46808510638297%; - *width: 74.41489361702126%; -} - -.row-fluid .span8 { - width: 65.95744680851064%; - *width: 65.90425531914893%; -} - -.row-fluid .span7 { - width: 57.44680851063829%; - *width: 57.39361702127659%; -} - -.row-fluid .span6 { - width: 48.93617021276595%; - *width: 48.88297872340425%; -} - -.row-fluid .span5 { - width: 40.42553191489362%; - *width: 40.37234042553192%; -} - -.row-fluid .span4 { - width: 31.914893617021278%; - *width: 31.861702127659576%; -} - -.row-fluid .span3 { - width: 23.404255319148934%; - *width: 23.351063829787233%; -} - -.row-fluid .span2 { - width: 14.893617021276595%; - *width: 14.840425531914894%; -} - -.row-fluid .span1 { - width: 6.382978723404255%; - *width: 6.329787234042553%; -} - -.row-fluid .offset12 { - margin-left: 104.25531914893617%; - *margin-left: 104.14893617021275%; -} - -.row-fluid .offset12:first-child { - margin-left: 102.12765957446808%; - *margin-left: 102.02127659574467%; -} - -.row-fluid .offset11 { - margin-left: 95.74468085106382%; - *margin-left: 95.6382978723404%; -} - -.row-fluid .offset11:first-child { - margin-left: 93.61702127659574%; - *margin-left: 93.51063829787232%; -} - -.row-fluid .offset10 { - margin-left: 87.23404255319149%; - *margin-left: 87.12765957446807%; -} - -.row-fluid .offset10:first-child { - margin-left: 85.1063829787234%; - *margin-left: 84.99999999999999%; -} - -.row-fluid .offset9 { - margin-left: 78.72340425531914%; - *margin-left: 78.61702127659572%; -} - -.row-fluid .offset9:first-child { - margin-left: 76.59574468085106%; - *margin-left: 76.48936170212764%; -} - -.row-fluid .offset8 { - margin-left: 70.2127659574468%; - *margin-left: 70.10638297872339%; -} - -.row-fluid .offset8:first-child { - margin-left: 68.08510638297872%; - *margin-left: 67.9787234042553%; -} - -.row-fluid .offset7 { - margin-left: 61.70212765957446%; - *margin-left: 61.59574468085106%; -} - -.row-fluid .offset7:first-child { - margin-left: 59.574468085106375%; - *margin-left: 59.46808510638297%; -} - -.row-fluid .offset6 { - margin-left: 53.191489361702125%; - *margin-left: 53.085106382978715%; -} - -.row-fluid .offset6:first-child { - margin-left: 51.063829787234035%; - *margin-left: 50.95744680851063%; -} - -.row-fluid .offset5 { - margin-left: 44.68085106382979%; - *margin-left: 44.57446808510638%; -} - -.row-fluid .offset5:first-child { - margin-left: 42.5531914893617%; - *margin-left: 42.4468085106383%; -} - -.row-fluid .offset4 { - margin-left: 36.170212765957444%; - *margin-left: 36.06382978723405%; -} - -.row-fluid .offset4:first-child { - margin-left: 34.04255319148936%; - *margin-left: 33.93617021276596%; -} - -.row-fluid .offset3 { - margin-left: 27.659574468085104%; - *margin-left: 27.5531914893617%; -} - -.row-fluid .offset3:first-child { - margin-left: 25.53191489361702%; - *margin-left: 25.425531914893618%; -} - -.row-fluid .offset2 { - margin-left: 19.148936170212764%; - *margin-left: 19.04255319148936%; -} - -.row-fluid .offset2:first-child { - margin-left: 17.02127659574468%; - *margin-left: 16.914893617021278%; -} - -.row-fluid .offset1 { - margin-left: 10.638297872340425%; - *margin-left: 10.53191489361702%; -} - -.row-fluid .offset1:first-child { - margin-left: 8.51063829787234%; - *margin-left: 8.404255319148938%; -} - -[class*="span"].hide, -.row-fluid [class*="span"].hide { - display: none; -} - -[class*="span"].pull-right, -.row-fluid [class*="span"].pull-right { - float: right; -} - -.container { - margin-right: auto; - margin-left: auto; - *zoom: 1; -} - -.container:before, -.container:after { - display: table; - line-height: 0; - content: ""; -} - -.container:after { - clear: both; -} - -.container-fluid { - padding-right: 20px; - padding-left: 20px; - *zoom: 1; -} - -.container-fluid:before, -.container-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.container-fluid:after { - clear: both; -} - -p { - margin: 0 0 10px; -} - -.lead { - margin-bottom: 20px; - font-size: 20px; - font-weight: 200; - line-height: 30px; -} - -small { - font-size: 85%; -} - -strong { - font-weight: bold; -} - -em { - font-style: italic; -} - -cite { - font-style: normal; -} - -.muted { - color: #999999; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 10px 0; - font-family: inherit; - font-weight: bold; - line-height: 1; - color: inherit; - text-rendering: optimizelegibility; -} - -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - font-weight: normal; - line-height: 1; - color: #999999; -} - -h1 { - font-size: 36px; - line-height: 40px; -} - -h2 { - font-size: 30px; - line-height: 40px; -} - -h3 { - font-size: 24px; - line-height: 40px; -} - -h4 { - font-size: 18px; - line-height: 20px; -} - -h5 { - font-size: 14px; - line-height: 20px; -} - -h6 { - font-size: 12px; - line-height: 20px; -} - -h1 small { - font-size: 24px; -} - -h2 small { - font-size: 18px; -} - -h3 small { - font-size: 14px; -} - -h4 small { - font-size: 14px; -} - -.page-header { - padding-bottom: 9px; - margin: 20px 0 30px; - border-bottom: 1px solid #eeeeee; -} - -ul, -ol { - padding: 0; - margin: 0 0 10px 25px; -} - -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; -} - -li { - line-height: 20px; -} - -ul.unstyled, -ol.unstyled { - margin-left: 0; - list-style: none; -} - -dl { - margin-bottom: 20px; -} - -dt, -dd { - line-height: 20px; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 10px; -} - -.dl-horizontal dt { - float: left; - width: 120px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; -} - -.dl-horizontal dd { - margin-left: 130px; -} - -hr { - margin: 20px 0; - border: 0; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #ffffff; -} - -abbr[title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -abbr.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 0 0 0 15px; - margin: 0 0 20px; - border-left: 5px solid #eeeeee; -} - -blockquote p { - margin-bottom: 0; - font-size: 16px; - font-weight: 300; - line-height: 25px; -} - -blockquote small { - display: block; - line-height: 20px; - color: #999999; -} - -blockquote small:before { - content: '\2014 \00A0'; -} - -blockquote.pull-right { - float: right; - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; -} - -blockquote.pull-right p, -blockquote.pull-right small { - text-align: right; -} - -blockquote.pull-right small:before { - content: ''; -} - -blockquote.pull-right small:after { - content: '\00A0 \2014'; -} - -q:before, -q:after, -blockquote:before, -blockquote:after { - content: ""; -} - -address { - display: block; - margin-bottom: 20px; - font-style: normal; - line-height: 20px; -} - -code, -pre { - padding: 0 3px 2px; - font-family: Monaco, Menlo, Consolas, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -code { - padding: 2px 4px; - color: #d14; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 20px; - word-break: break-all; - word-wrap: break-word; - white-space: pre; - white-space: pre-wrap; - background-color: #f5f5f5; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -pre.prettyprint { - margin-bottom: 20px; -} - -pre code { - padding: 0; - color: inherit; - background-color: transparent; - border: 0; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -form { - margin: 0 0 20px; -} - -fieldset { - padding: 0; - margin: 0; - border: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: 40px; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -legend small { - font-size: 15px; - color: #999999; -} - -label, -input, -button, -select, -textarea { - font-size: 14px; - font-weight: normal; - line-height: 20px; -} - -input, -button, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} - -label { - display: block; - margin-bottom: 5px; -} - -select, -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - display: inline-block; - height: 20px; - padding: 4px 6px; - margin-bottom: 9px; - font-size: 14px; - line-height: 20px; - color: #555555; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -input, -textarea { - width: 210px; -} - -textarea { - height: auto; -} - -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - background-color: #ffffff; - border: 1px solid #cccccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} - -textarea:focus, -input[type="text"]:focus, -input[type="password"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="time"]:focus, -input[type="week"]:focus, -input[type="number"]:focus, -input[type="email"]:focus, -input[type="url"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="color"]:focus, -.uneditable-input:focus { - border-color: rgba(82, 168, 236, 0.8); - outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); -} - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - *margin-top: 0; - line-height: normal; - cursor: pointer; -} - -input[type="file"], -input[type="image"], -input[type="submit"], -input[type="reset"], -input[type="button"], -input[type="radio"], -input[type="checkbox"] { - width: auto; -} - -select, -input[type="file"] { - height: 30px; - /* In IE7, the height of the select element cannot be changed by height, only font-size */ - - *margin-top: 4px; - /* For IE7, add top margin to align select with labels */ - - line-height: 30px; -} - -select { - width: 220px; - background-color: #ffffff; - border: 1px solid #bbb; -} - -select[multiple], -select[size] { - height: auto; -} - -select:focus, -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.uneditable-input, -.uneditable-textarea { - color: #999999; - cursor: not-allowed; - background-color: #fcfcfc; - border-color: #cccccc; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -} - -.uneditable-input { - overflow: hidden; - white-space: nowrap; -} - -.uneditable-textarea { - width: auto; - height: auto; -} - -input:-moz-placeholder, -textarea:-moz-placeholder { - color: #999999; -} - -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { - color: #999999; -} - -input::-webkit-input-placeholder, -textarea::-webkit-input-placeholder { - color: #999999; -} - -.radio, -.checkbox { - min-height: 18px; - padding-left: 18px; -} - -.radio input[type="radio"], -.checkbox input[type="checkbox"] { - float: left; - margin-left: -18px; -} - -.controls > .radio:first-child, -.controls > .checkbox:first-child { - padding-top: 5px; -} - -.radio.inline, -.checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; -} - -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left: 10px; -} - -.input-mini { - width: 60px; -} - -.input-small { - width: 90px; -} - -.input-medium { - width: 150px; -} - -.input-large { - width: 210px; -} - -.input-xlarge { - width: 270px; -} - -.input-xxlarge { - width: 530px; -} - -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { - float: none; - margin-left: 0; -} - -.input-append input[class*="span"], -.input-append .uneditable-input[class*="span"], -.input-prepend input[class*="span"], -.input-prepend .uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"], -.row-fluid .input-prepend [class*="span"], -.row-fluid .input-append [class*="span"] { - display: inline-block; -} - -input, -textarea, -.uneditable-input { - margin-left: 0; -} - -.controls-row [class*="span"] + [class*="span"] { - margin-left: 20px; -} - -input.span12, -textarea.span12, -.uneditable-input.span12 { - width: 926px; -} - -input.span11, -textarea.span11, -.uneditable-input.span11 { - width: 846px; -} - -input.span10, -textarea.span10, -.uneditable-input.span10 { - width: 766px; -} - -input.span9, -textarea.span9, -.uneditable-input.span9 { - width: 686px; -} - -input.span8, -textarea.span8, -.uneditable-input.span8 { - width: 606px; -} - -input.span7, -textarea.span7, -.uneditable-input.span7 { - width: 526px; -} - -input.span6, -textarea.span6, -.uneditable-input.span6 { - width: 446px; -} - -input.span5, -textarea.span5, -.uneditable-input.span5 { - width: 366px; -} - -input.span4, -textarea.span4, -.uneditable-input.span4 { - width: 286px; -} - -input.span3, -textarea.span3, -.uneditable-input.span3 { - width: 206px; -} - -input.span2, -textarea.span2, -.uneditable-input.span2 { - width: 126px; -} - -input.span1, -textarea.span1, -.uneditable-input.span1 { - width: 46px; -} - -.controls-row { - *zoom: 1; -} - -.controls-row:before, -.controls-row:after { - display: table; - line-height: 0; - content: ""; -} - -.controls-row:after { - clear: both; -} - -.controls-row [class*="span"] { - float: left; -} - -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #eeeeee; -} - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"][readonly], -input[type="checkbox"][readonly] { - background-color: transparent; -} - -.control-group.warning > label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #c09853; -} - -.control-group.warning .checkbox, -.control-group.warning .radio, -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #c09853; - border-color: #c09853; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.warning .checkbox:focus, -.control-group.warning .radio:focus, -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; -} - -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} - -.control-group.error > label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #b94a48; -} - -.control-group.error .checkbox, -.control-group.error .radio, -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #b94a48; - border-color: #b94a48; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.error .checkbox:focus, -.control-group.error .radio:focus, -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; -} - -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} - -.control-group.success > label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #468847; -} - -.control-group.success .checkbox, -.control-group.success .radio, -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #468847; - border-color: #468847; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.success .checkbox:focus, -.control-group.success .radio:focus, -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; -} - -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} - -input:focus:required:invalid, -textarea:focus:required:invalid, -select:focus:required:invalid { - color: #b94a48; - border-color: #ee5f5b; -} - -input:focus:required:invalid:focus, -textarea:focus:required:invalid:focus, -select:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} - -.form-actions { - padding: 19px 20px 20px; - margin-top: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - *zoom: 1; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.help-block, -.help-inline { - color: #595959; -} - -.help-block { - display: block; - margin-bottom: 10px; -} - -.help-inline { - display: inline-block; - *display: inline; - padding-left: 5px; - vertical-align: middle; - *zoom: 1; -} - -.input-append, -.input-prepend { - margin-bottom: 5px; - font-size: 0; - white-space: nowrap; -} - -.input-append input, -.input-prepend input, -.input-append select, -.input-prepend select, -.input-append .uneditable-input, -.input-prepend .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - font-size: 14px; - vertical-align: top; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -.input-append input:focus, -.input-prepend input:focus, -.input-append select:focus, -.input-prepend select:focus, -.input-append .uneditable-input:focus, -.input-prepend .uneditable-input:focus { - z-index: 2; -} - -.input-append .add-on, -.input-prepend .add-on { - display: inline-block; - width: auto; - height: 20px; - min-width: 16px; - padding: 4px 5px; - font-size: 14px; - font-weight: normal; - line-height: 20px; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - background-color: #eeeeee; - border: 1px solid #ccc; -} - -.input-append .add-on, -.input-prepend .add-on, -.input-append .btn, -.input-prepend .btn { - margin-left: -1px; - vertical-align: top; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-append .active, -.input-prepend .active { - background-color: #a9dba9; - border-color: #46a546; -} - -.input-prepend .add-on, -.input-prepend .btn { - margin-right: -1px; -} - -.input-prepend .add-on:first-child, -.input-prepend .btn:first-child { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.input-append input, -.input-append select, -.input-append .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.input-append .add-on:last-child, -.input-append .btn:last-child { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -.input-prepend.input-append input, -.input-prepend.input-append select, -.input-prepend.input-append .uneditable-input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-prepend.input-append .add-on:first-child, -.input-prepend.input-append .btn:first-child { - margin-right: -1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.input-prepend.input-append .add-on:last-child, -.input-prepend.input-append .btn:last-child { - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -input.search-query { - padding-right: 14px; - padding-right: 4px \9; - padding-left: 14px; - padding-left: 4px \9; - /* IE7-8 doesn't have border-radius, so don't indent the padding */ - - margin-bottom: 0; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -/* Allow for input prepend/append in search forms */ - -.form-search .input-append .search-query, -.form-search .input-prepend .search-query { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.form-search .input-append .search-query { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search .input-append .btn { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .search-query { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .btn { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search input, -.form-inline input, -.form-horizontal input, -.form-search textarea, -.form-inline textarea, -.form-horizontal textarea, -.form-search select, -.form-inline select, -.form-horizontal select, -.form-search .help-inline, -.form-inline .help-inline, -.form-horizontal .help-inline, -.form-search .uneditable-input, -.form-inline .uneditable-input, -.form-horizontal .uneditable-input, -.form-search .input-prepend, -.form-inline .input-prepend, -.form-horizontal .input-prepend, -.form-search .input-append, -.form-inline .input-append, -.form-horizontal .input-append { - display: inline-block; - *display: inline; - margin-bottom: 0; - vertical-align: middle; - *zoom: 1; -} - -.form-search .hide, -.form-inline .hide, -.form-horizontal .hide { - display: none; -} - -.form-search label, -.form-inline label, -.form-search .btn-group, -.form-inline .btn-group { - display: inline-block; -} - -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - margin-bottom: 0; -} - -.form-search .radio, -.form-search .checkbox, -.form-inline .radio, -.form-inline .checkbox { - padding-left: 0; - margin-bottom: 0; - vertical-align: middle; -} - -.form-search .radio input[type="radio"], -.form-search .checkbox input[type="checkbox"], -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float: left; - margin-right: 3px; - margin-left: 0; -} - -.control-group { - margin-bottom: 10px; -} - -legend + .control-group { - margin-top: 20px; - -webkit-margin-top-collapse: separate; -} - -.form-horizontal .control-group { - margin-bottom: 20px; - *zoom: 1; -} - -.form-horizontal .control-group:before, -.form-horizontal .control-group:after { - display: table; - line-height: 0; - content: ""; -} - -.form-horizontal .control-group:after { - clear: both; -} - -.form-horizontal .control-label { - float: left; - width: 140px; - padding-top: 5px; - text-align: right; -} - -.form-horizontal .controls { - *display: inline-block; - *padding-left: 20px; - margin-left: 160px; - *margin-left: 0; -} - -.form-horizontal .controls:first-child { - *padding-left: 160px; -} - -.form-horizontal .help-block { - margin-top: 10px; - margin-bottom: 0; -} - -.form-horizontal .form-actions { - padding-left: 160px; -} - -table { - max-width: 100%; - background-color: transparent; - border-collapse: collapse; - border-spacing: 0; -} - -.table { - width: 100%; - margin-bottom: 20px; -} - -.table th, -.table td { - padding: 8px; - line-height: 20px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} - -.table th { - font-weight: bold; -} - -.table thead th { - vertical-align: bottom; -} - -.table caption + thead tr:first-child th, -.table caption + thead tr:first-child td, -.table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, -.table thead:first-child tr:first-child th, -.table thead:first-child tr:first-child td { - border-top: 0; -} - -.table tbody + tbody { - border-top: 2px solid #dddddd; -} - -.table-condensed th, -.table-condensed td { - padding: 4px 5px; -} - -.table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapse; - border-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.table-bordered th, -.table-bordered td { - border-left: 1px solid #dddddd; -} - -.table-bordered caption + thead tr:first-child th, -.table-bordered caption + tbody tr:first-child th, -.table-bordered caption + tbody tr:first-child td, -.table-bordered colgroup + thead tr:first-child th, -.table-bordered colgroup + tbody tr:first-child th, -.table-bordered colgroup + tbody tr:first-child td, -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} - -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered thead:first-child tr:first-child th:last-child, -.table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.table-bordered thead:last-child tr:last-child th:first-child, -.table-bordered tbody:last-child tr:last-child td:first-child, -.table-bordered tfoot:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.table-bordered thead:last-child tr:last-child th:last-child, -.table-bordered tbody:last-child tr:last-child td:last-child, -.table-bordered tfoot:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.table-bordered caption + thead tr:first-child th:first-child, -.table-bordered caption + tbody tr:first-child td:first-child, -.table-bordered colgroup + thead tr:first-child th:first-child, -.table-bordered colgroup + tbody tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered caption + thead tr:first-child th:last-child, -.table-bordered caption + tbody tr:first-child td:last-child, -.table-bordered colgroup + thead tr:first-child th:last-child, -.table-bordered colgroup + tbody tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-right-topleft: 4px; -} - -.table-striped tbody tr:nth-child(odd) td, -.table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} - -.table-hover tbody tr:hover td, -.table-hover tbody tr:hover th { - background-color: #f5f5f5; -} - -table [class*=span], -.row-fluid table [class*=span] { - display: table-cell; - float: none; - margin-left: 0; -} - -table .span1 { - float: none; - width: 44px; - margin-left: 0; -} - -table .span2 { - float: none; - width: 124px; - margin-left: 0; -} - -table .span3 { - float: none; - width: 204px; - margin-left: 0; -} - -table .span4 { - float: none; - width: 284px; - margin-left: 0; -} - -table .span5 { - float: none; - width: 364px; - margin-left: 0; -} - -table .span6 { - float: none; - width: 444px; - margin-left: 0; -} - -table .span7 { - float: none; - width: 524px; - margin-left: 0; -} - -table .span8 { - float: none; - width: 604px; - margin-left: 0; -} - -table .span9 { - float: none; - width: 684px; - margin-left: 0; -} - -table .span10 { - float: none; - width: 764px; - margin-left: 0; -} - -table .span11 { - float: none; - width: 844px; - margin-left: 0; -} - -table .span12 { - float: none; - width: 924px; - margin-left: 0; -} - -table .span13 { - float: none; - width: 1004px; - margin-left: 0; -} - -table .span14 { - float: none; - width: 1084px; - margin-left: 0; -} - -table .span15 { - float: none; - width: 1164px; - margin-left: 0; -} - -table .span16 { - float: none; - width: 1244px; - margin-left: 0; -} - -table .span17 { - float: none; - width: 1324px; - margin-left: 0; -} - -table .span18 { - float: none; - width: 1404px; - margin-left: 0; -} - -table .span19 { - float: none; - width: 1484px; - margin-left: 0; -} - -table .span20 { - float: none; - width: 1564px; - margin-left: 0; -} - -table .span21 { - float: none; - width: 1644px; - margin-left: 0; -} - -table .span22 { - float: none; - width: 1724px; - margin-left: 0; -} - -table .span23 { - float: none; - width: 1804px; - margin-left: 0; -} - -table .span24 { - float: none; - width: 1884px; - margin-left: 0; -} - -.table tbody tr.success td { - background-color: #dff0d8; -} - -.table tbody tr.error td { - background-color: #f2dede; -} - -.table tbody tr.info td { - background-color: #d9edf7; -} - -.icon-glass { - background-position: 0 0; -} - -.icon-music { - background-position: -24px 0; -} - -.icon-search { - background-position: -48px 0; -} - -.icon-envelope { - background-position: -72px 0; -} - -.icon-heart { - background-position: -96px 0; -} - -.icon-star { - background-position: -120px 0; -} - -.icon-star-empty { - background-position: -144px 0; -} - -.icon-user { - background-position: -168px 0; -} - -.icon-film { - background-position: -192px 0; -} - -.icon-th-large { - background-position: -216px 0; -} - -.icon-th { - background-position: -240px 0; -} - -.icon-th-list { - background-position: -264px 0; -} - -.icon-ok { - background-position: -288px 0; -} - -.icon-remove { - background-position: -312px 0; -} - -.icon-zoom-in { - background-position: -336px 0; -} - -.icon-zoom-out { - background-position: -360px 0; -} - -.icon-off { - background-position: -384px 0; -} - -.icon-signal { - background-position: -408px 0; -} - -.icon-cog { - background-position: -432px 0; -} - -.icon-trash { - background-position: -456px 0; -} - -.icon-home { - background-position: 0 -24px; -} - -.icon-file { - background-position: -24px -24px; -} - -.icon-time { - background-position: -48px -24px; -} - -.icon-road { - background-position: -72px -24px; -} - -.icon-download-alt { - background-position: -96px -24px; -} - -.icon-download { - background-position: -120px -24px; -} - -.icon-upload { - background-position: -144px -24px; -} - -.icon-inbox { - background-position: -168px -24px; -} - -.icon-play-circle { - background-position: -192px -24px; -} - -.icon-repeat { - background-position: -216px -24px; -} - -.icon-refresh { - background-position: -240px -24px; -} - -.icon-list-alt { - background-position: -264px -24px; -} - -.icon-lock { - background-position: -287px -24px; -} - -.icon-flag { - background-position: -312px -24px; -} - -.icon-headphones { - background-position: -336px -24px; -} - -.icon-volume-off { - background-position: -360px -24px; -} - -.icon-volume-down { - background-position: -384px -24px; -} - -.icon-volume-up { - background-position: -408px -24px; -} - -.icon-qrcode { - background-position: -432px -24px; -} - -.icon-barcode { - background-position: -456px -24px; -} - -.icon-tag { - background-position: 0 -48px; -} - -.icon-tags { - background-position: -25px -48px; -} - -.icon-book { - background-position: -48px -48px; -} - -.icon-bookmark { - background-position: -72px -48px; -} - -.icon-print { - background-position: -96px -48px; -} - -.icon-camera { - background-position: -120px -48px; -} - -.icon-font { - background-position: -144px -48px; -} - -.icon-bold { - background-position: -167px -48px; -} - -.icon-italic { - background-position: -192px -48px; -} - -.icon-text-height { - background-position: -216px -48px; -} - -.icon-text-width { - background-position: -240px -48px; -} - -.icon-align-left { - background-position: -264px -48px; -} - -.icon-align-center { - background-position: -288px -48px; -} - -.icon-align-right { - background-position: -312px -48px; -} - -.icon-align-justify { - background-position: -336px -48px; -} - -.icon-list { - background-position: -360px -48px; -} - -.icon-indent-left { - background-position: -384px -48px; -} - -.icon-indent-right { - background-position: -408px -48px; -} - -.icon-facetime-video { - background-position: -432px -48px; -} - -.icon-picture { - background-position: -456px -48px; -} - -.icon-pencil { - background-position: 0 -72px; -} - -.icon-map-marker { - background-position: -24px -72px; -} - -.icon-adjust { - background-position: -48px -72px; -} - -.icon-tint { - background-position: -72px -72px; -} - -.icon-edit { - background-position: -96px -72px; -} - -.icon-share { - background-position: -120px -72px; -} - -.icon-check { - background-position: -144px -72px; -} - -.icon-move { - background-position: -168px -72px; -} - -.icon-step-backward { - background-position: -192px -72px; -} - -.icon-fast-backward { - background-position: -216px -72px; -} - -.icon-backward { - background-position: -240px -72px; -} - -.icon-play { - background-position: -264px -72px; -} - -.icon-pause { - background-position: -288px -72px; -} - -.icon-stop { - background-position: -312px -72px; -} - -.icon-forward { - background-position: -336px -72px; -} - -.icon-fast-forward { - background-position: -360px -72px; -} - -.icon-step-forward { - background-position: -384px -72px; -} - -.icon-eject { - background-position: -408px -72px; -} - -.icon-chevron-left { - background-position: -432px -72px; -} - -.icon-chevron-right { - background-position: -456px -72px; -} - -.icon-plus-sign { - background-position: 0 -96px; -} - -.icon-minus-sign { - background-position: -24px -96px; -} - -.icon-remove-sign { - background-position: -48px -96px; -} - -.icon-ok-sign { - background-position: -72px -96px; -} - -.icon-question-sign { - background-position: -96px -96px; -} - -.icon-info-sign { - background-position: -120px -96px; -} - -.icon-screenshot { - background-position: -144px -96px; -} - -.icon-remove-circle { - background-position: -168px -96px; -} - -.icon-ok-circle { - background-position: -192px -96px; -} - -.icon-ban-circle { - background-position: -216px -96px; -} - -.icon-arrow-left { - background-position: -240px -96px; -} - -.icon-arrow-right { - background-position: -264px -96px; -} - -.icon-arrow-up { - background-position: -289px -96px; -} - -.icon-arrow-down { - background-position: -312px -96px; -} - -.icon-share-alt { - background-position: -336px -96px; -} - -.icon-resize-full { - background-position: -360px -96px; -} - -.icon-resize-small { - background-position: -384px -96px; -} - -.icon-plus { - background-position: -408px -96px; -} - -.icon-minus { - background-position: -433px -96px; -} - -.icon-asterisk { - background-position: -456px -96px; -} - -.icon-exclamation-sign { - background-position: 0 -120px; -} - -.icon-gift { - background-position: -24px -120px; -} - -.icon-leaf { - background-position: -48px -120px; -} - -.icon-fire { - background-position: -72px -120px; -} - -.icon-eye-open { - background-position: -96px -120px; -} - -.icon-eye-close { - background-position: -120px -120px; -} - -.icon-warning-sign { - background-position: -144px -120px; -} - -.icon-plane { - background-position: -168px -120px; -} - -.icon-calendar { - background-position: -192px -120px; -} - -.icon-random { - width: 16px; - background-position: -216px -120px; -} - -.icon-comment { - background-position: -240px -120px; -} - -.icon-magnet { - background-position: -264px -120px; -} - -.icon-chevron-up { - background-position: -288px -120px; -} - -.icon-chevron-down { - background-position: -313px -119px; -} - -.icon-retweet { - background-position: -336px -120px; -} - -.icon-shopping-cart { - background-position: -360px -120px; -} - -.icon-folder-close { - background-position: -384px -120px; -} - -.icon-folder-open { - width: 16px; - background-position: -408px -120px; -} - -.icon-resize-vertical { - background-position: -432px -119px; -} - -.icon-resize-horizontal { - background-position: -456px -118px; -} - -.icon-hdd { - background-position: 0 -144px; -} - -.icon-bullhorn { - background-position: -24px -144px; -} - -.icon-bell { - background-position: -48px -144px; -} - -.icon-certificate { - background-position: -72px -144px; -} - -.icon-thumbs-up { - background-position: -96px -144px; -} - -.icon-thumbs-down { - background-position: -120px -144px; -} - -.icon-hand-right { - background-position: -144px -144px; -} - -.icon-hand-left { - background-position: -168px -144px; -} - -.icon-hand-up { - background-position: -192px -144px; -} - -.icon-hand-down { - background-position: -216px -144px; -} - -.icon-circle-arrow-right { - background-position: -240px -144px; -} - -.icon-circle-arrow-left { - background-position: -264px -144px; -} - -.icon-circle-arrow-up { - background-position: -288px -144px; -} - -.icon-circle-arrow-down { - background-position: -312px -144px; -} - -.icon-globe { - background-position: -336px -144px; -} - -.icon-wrench { - background-position: -360px -144px; -} - -.icon-tasks { - background-position: -384px -144px; -} - -.icon-filter { - background-position: -408px -144px; -} - -.icon-briefcase { - background-position: -432px -144px; -} - -.icon-fullscreen { - background-position: -456px -144px; -} - -.dropup, -.dropdown { - position: relative; -} - -.dropdown-toggle { - *margin-bottom: -3px; -} - -.dropdown-toggle:active, -.open .dropdown-toggle { - outline: 0; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-top: 4px solid #000000; - border-right: 4px solid transparent; - border-left: 4px solid transparent; - content: ""; -} - -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.dropdown-menu a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 20px; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu li > a:hover, -.dropdown-menu li > a:focus, -.dropdown-submenu:hover > a { - color: #ffffff; - text-decoration: none; - background-color: #0088cc; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #0088cc; - background-color: #0081c2; - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-repeat: repeat-x; - outline: 0; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu .disabled > a, -.dropdown-menu .disabled > a:hover { - color: #999999; -} - -.dropdown-menu .disabled > a:hover { - text-decoration: none; - cursor: default; - background-color: transparent; -} - -.open { - *z-index: 1000; -} - -.open > .dropdown-menu { - display: block; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid #000000; - content: "\2191"; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu > .dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px 6px; - border-radius: 0 6px 6px 6px; -} - -.dropdown-submenu:hover .dropdown-menu { - display: block; -} - -.dropdown-submenu > a:after { - display: block; - float: right; - width: 0; - height: 0; - margin-top: 5px; - margin-right: -10px; - border-color: transparent; - border-left-color: #cccccc; - border-style: solid; - border-width: 5px 0 5px 5px; - content: " "; -} - -.dropdown-submenu:hover > a:after { - border-left-color: #ffffff; -} - -.dropdown .dropdown-menu .nav-header { - padding-right: 20px; - padding-left: 20px; -} - -.typeahead { - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} - -.well-large { - padding: 24px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.well-small { - padding: 9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - -.fade.in { - opacity: 1; -} - -.collapse { - position: relative; - height: 0; - overflow: hidden; - overflow: visible \9; - -webkit-transition: height 0.35s ease; - -moz-transition: height 0.35s ease; - -o-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -.collapse.in { - height: auto; -} - -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 20px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - -.close:hover { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - filter: alpha(opacity=40); -} - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.btn { - display: inline-block; - *display: inline; - padding: 4px 14px; - margin-bottom: 0; - *margin-left: .3em; - font-size: 14px; - line-height: 20px; - *line-height: 20px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - vertical-align: middle; - cursor: pointer; - background-color: #f5f5f5; - *background-color: #e6e6e6; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-repeat: repeat-x; - border: 1px solid #bbbbbb; - *border: 0; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-bottom-color: #a2a2a2; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn:hover, -.btn:active, -.btn.active, -.btn.disabled, -.btn[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; -} - -.btn:active, -.btn.active { - background-color: #cccccc \9; -} - -.btn:first-child { - *margin-left: 0; -} - -.btn:hover { - color: #333333; - text-decoration: none; - background-color: #e6e6e6; - *background-color: #d9d9d9; - /* Buttons in IE7 don't get borders, so darken on hover */ - - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; -} - -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn.active, -.btn:active { - background-color: #e6e6e6; - background-color: #d9d9d9 \9; - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn.disabled, -.btn[disabled] { - cursor: default; - background-color: #e6e6e6; - background-image: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-large { - padding: 9px 14px; - font-size: 16px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.btn-large [class^="icon-"] { - margin-top: 2px; -} - -.btn-small { - padding: 3px 9px; - font-size: 12px; - line-height: 18px; -} - -.btn-small [class^="icon-"] { - margin-top: 0; -} - -.btn-mini { - padding: 2px 6px; - font-size: 11px; - line-height: 16px; -} - -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.btn-block + .btn-block { - margin-top: 5px; -} - -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); -} - -.btn { - border-color: #c5c5c5; - border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); -} - -.btn-primary { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #006dcc; - *background-color: #0044cc; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(to bottom, #0088cc, #0044cc); - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-repeat: repeat-x; - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-primary:hover, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - color: #ffffff; - background-color: #0044cc; - *background-color: #003bb3; -} - -.btn-primary:active, -.btn-primary.active { - background-color: #003399 \9; -} - -.btn-warning { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #faa732; - *background-color: #f89406; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-repeat: repeat-x; - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-warning:hover, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - color: #ffffff; - background-color: #f89406; - *background-color: #df8505; -} - -.btn-warning:active, -.btn-warning.active { - background-color: #c67605 \9; -} - -.btn-danger { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #da4f49; - *background-color: #bd362f; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-repeat: repeat-x; - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-danger:hover, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - color: #ffffff; - background-color: #bd362f; - *background-color: #a9302a; -} - -.btn-danger:active, -.btn-danger.active { - background-color: #942a25 \9; -} - -.btn-success { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #5bb75b; - *background-color: #51a351; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(to bottom, #62c462, #51a351); - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-repeat: repeat-x; - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-success:hover, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - color: #ffffff; - background-color: #51a351; - *background-color: #499249; -} - -.btn-success:active, -.btn-success.active { - background-color: #408140 \9; -} - -.btn-info { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #49afcd; - *background-color: #2f96b4; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-repeat: repeat-x; - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-info:hover, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - color: #ffffff; - background-color: #2f96b4; - *background-color: #2a85a0; -} - -.btn-info:active, -.btn-info.active { - background-color: #24748c \9; -} - -.btn-inverse { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #363636; - *background-color: #222222; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); - background-image: -webkit-linear-gradient(top, #444444, #222222); - background-image: -o-linear-gradient(top, #444444, #222222); - background-image: linear-gradient(to bottom, #444444, #222222); - background-image: -moz-linear-gradient(top, #444444, #222222); - background-repeat: repeat-x; - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.btn-inverse:hover, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - color: #ffffff; - background-color: #222222; - *background-color: #151515; -} - -.btn-inverse:active, -.btn-inverse.active { - background-color: #080808 \9; -} - -button.btn, -input[type="submit"].btn { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn::-moz-focus-inner, -input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; -} - -button.btn.btn-large, -input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; -} - -button.btn.btn-small, -input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn.btn-mini, -input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; -} - -.btn-link, -.btn-link:active { - background-color: transparent; - background-image: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-link { - color: #0088cc; - cursor: pointer; - border-color: transparent; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-link:hover { - color: #005580; - text-decoration: underline; - background-color: transparent; -} - -.btn-group { - position: relative; - *margin-left: .3em; - font-size: 0; - white-space: nowrap; -} - -.btn-group:first-child { - *margin-left: 0; -} - -.btn-group + .btn-group { - margin-left: 5px; -} - -.btn-toolbar { - margin-top: 10px; - margin-bottom: 10px; - font-size: 0; -} - -.btn-toolbar .btn-group { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} - -.btn-toolbar .btn + .btn, -.btn-toolbar .btn-group + .btn, -.btn-toolbar .btn + .btn-group { - margin-left: 5px; -} - -.btn-group > .btn { - position: relative; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group > .btn + .btn { - margin-left: -1px; -} - -.btn-group > .btn, -.btn-group > .dropdown-menu { - font-size: 14px; -} - -.btn-group > .btn-mini { - font-size: 11px; -} - -.btn-group > .btn-small { - font-size: 12px; -} - -.btn-group > .btn-large { - font-size: 16px; -} - -.btn-group > .btn:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-topleft: 4px; -} - -.btn-group > .btn:last-child, -.btn-group > .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; -} - -.btn-group > .btn.large:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-left-radius: 6px; - border-top-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - -moz-border-radius-topleft: 6px; -} - -.btn-group > .btn.large:last-child, -.btn-group > .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-bottomright: 6px; -} - -.btn-group > .btn:hover, -.btn-group > .btn:focus, -.btn-group > .btn:active, -.btn-group > .btn.active { - z-index: 2; -} - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group > .btn + .dropdown-toggle { - *padding-top: 5px; - padding-right: 8px; - *padding-bottom: 5px; - padding-left: 8px; - -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group > .btn-mini + .dropdown-toggle { - *padding-top: 2px; - padding-right: 5px; - *padding-bottom: 2px; - padding-left: 5px; -} - -.btn-group > .btn-small + .dropdown-toggle { - *padding-top: 5px; - *padding-bottom: 4px; -} - -.btn-group > .btn-large + .dropdown-toggle { - *padding-top: 7px; - padding-right: 12px; - *padding-bottom: 7px; - padding-left: 12px; -} - -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group.open .btn.dropdown-toggle { - background-color: #e6e6e6; -} - -.btn-group.open .btn-primary.dropdown-toggle { - background-color: #0044cc; -} - -.btn-group.open .btn-warning.dropdown-toggle { - background-color: #f89406; -} - -.btn-group.open .btn-danger.dropdown-toggle { - background-color: #bd362f; -} - -.btn-group.open .btn-success.dropdown-toggle { - background-color: #51a351; -} - -.btn-group.open .btn-info.dropdown-toggle { - background-color: #2f96b4; -} - -.btn-group.open .btn-inverse.dropdown-toggle { - background-color: #222222; -} - -.btn .caret { - margin-top: 8px; - margin-left: 0; -} - -.btn-mini .caret, -.btn-small .caret, -.btn-large .caret { - margin-top: 6px; -} - -.btn-large .caret { - border-top-width: 5px; - border-right-width: 5px; - border-left-width: 5px; -} - -.dropup .btn-large .caret { - border-top: 0; - border-bottom: 5px solid #000000; -} - -.btn-primary .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.btn-group-vertical { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} - -.btn-group-vertical .btn { - display: block; - float: none; - width: 100%; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group-vertical .btn + .btn { - margin-top: -1px; - margin-left: 0; -} - -.btn-group-vertical .btn:first-child { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.btn-group-vertical .btn:last-child { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.btn-group-vertical .btn-large:first-child { - -webkit-border-radius: 6px 6px 0 0; - -moz-border-radius: 6px 6px 0 0; - border-radius: 6px 6px 0 0; -} - -.btn-group-vertical .btn-large:last-child { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 20px; - color: #c09853; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - background-color: #fcf8e3; - border: 1px solid #fbeed5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.alert h4 { - margin: 0; -} - -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 20px; -} - -.alert-success { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.alert-danger, -.alert-error { - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7; -} - -.alert-info { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.alert-block { - padding-top: 14px; - padding-bottom: 14px; -} - -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; -} - -.alert-block p + p { - margin-top: 5px; -} - -.nav { - margin-bottom: 20px; - margin-left: 0; - list-style: none; -} - -.nav > li > a { - display: block; -} - -.nav > li > a:hover { - text-decoration: none; - background-color: #eeeeee; -} - -.nav > .pull-right { - float: right; -} - -.nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 20px; - color: #999999; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-transform: uppercase; -} - -.nav li + .nav-header { - margin-top: 9px; -} - -.nav-list { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 0; -} - -.nav-list > li > a, -.nav-list .nav-header { - margin-right: -15px; - margin-left: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} - -.nav-list > li > a { - padding: 3px 15px; -} - -.nav-list > .active > a, -.nav-list > .active > a:hover { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - background-color: #0088cc; -} - -.nav-list [class^="icon-"] { - margin-right: 2px; -} - -.nav-list .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.nav-tabs, -.nav-pills { - *zoom: 1; -} - -.nav-tabs:before, -.nav-pills:before, -.nav-tabs:after, -.nav-pills:after { - display: table; - line-height: 0; - content: ""; -} - -.nav-tabs:after, -.nav-pills:after { - clear: both; -} - -.nav-tabs > li, -.nav-pills > li { - float: left; -} - -.nav-tabs > li > a, -.nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; -} - -.nav-tabs { - border-bottom: 1px solid #ddd; -} - -.nav-tabs > li { - margin-bottom: -1px; -} - -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 20px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; -} - -.nav-tabs > .active > a, -.nav-tabs > .active > a:hover { - color: #555555; - cursor: default; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} - -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.nav-pills > .active > a, -.nav-pills > .active > a:hover { - color: #ffffff; - background-color: #0088cc; -} - -.nav-stacked > li { - float: none; -} - -.nav-stacked > li > a { - margin-right: 0; -} - -.nav-tabs.nav-stacked { - border-bottom: 0; -} - -.nav-tabs.nav-stacked > li > a { - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; -} - -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomright: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.nav-tabs.nav-stacked > li > a:hover { - z-index: 2; - border-color: #ddd; -} - -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} - -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} - -.nav-tabs .dropdown-menu { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.nav-pills .dropdown-menu { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.nav .dropdown-toggle .caret { - margin-top: 6px; - border-top-color: #0088cc; - border-bottom-color: #0088cc; -} - -.nav .dropdown-toggle:hover .caret { - border-top-color: #005580; - border-bottom-color: #005580; -} - -/* move down carets for tabs */ - -.nav-tabs .dropdown-toggle .caret { - margin-top: 8px; -} - -.nav .active .dropdown-toggle .caret { - border-top-color: #fff; - border-bottom-color: #fff; -} - -.nav-tabs .active .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.nav > .dropdown.active > a:hover { - cursor: pointer; -} - -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} - -.nav li.dropdown.open .caret, -.nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); -} - -.tabs-stacked .open > a:hover { - border-color: #999999; -} - -.tabbable { - *zoom: 1; -} - -.tabbable:before, -.tabbable:after { - display: table; - line-height: 0; - content: ""; -} - -.tabbable:after { - clear: both; -} - -.tab-content { - overflow: auto; -} - -.tabs-below > .nav-tabs, -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; -} - -.tab-content > .tab-pane, -.pill-content > .pill-pane { - display: none; -} - -.tab-content > .active, -.pill-content > .active { - display: block; -} - -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; -} - -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} - -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.tabs-below > .nav-tabs > li > a:hover { - border-top-color: #ddd; - border-bottom-color: transparent; -} - -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover { - border-color: transparent #ddd #ddd #ddd; -} - -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; -} - -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} - -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} - -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.tabs-left > .nav-tabs > li > a:hover { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} - -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} - -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} - -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.tabs-right > .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} - -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} - -.nav > .disabled > a { - color: #999999; -} - -.nav > .disabled > a:hover { - text-decoration: none; - cursor: default; - background-color: transparent; -} - -.navbar { - *position: relative; - *z-index: 2; - margin-bottom: 20px; - overflow: visible; - color: #555555; -} - -.navbar-inner { - min-height: 40px; - padding-right: 20px; - padding-left: 20px; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - border: 1px solid #d4d4d4; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -} - -.navbar .container { - width: auto; -} - -.nav-collapse.collapse { - height: auto; -} - -.navbar .brand { - display: block; - float: left; - padding: 10px 20px 10px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - color: #555555; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .brand:hover { - text-decoration: none; -} - -.navbar-text { - margin-bottom: 0; - line-height: 40px; -} - -.navbar-link { - color: #555555; -} - -.navbar-link:hover { - color: #333333; -} - -.navbar .divider-vertical { - height: 40px; - margin: 0 9px; - border-right: 1px solid #ffffff; - border-left: 1px solid #f2f2f2; -} - -.navbar .btn, -.navbar .btn-group { - margin-top: 6px; -} - -.navbar .btn-group .btn { - margin: 0; -} - -.navbar-form { - margin-bottom: 0; - *zoom: 1; -} - -.navbar-form:before, -.navbar-form:after { - display: table; - line-height: 0; - content: ""; -} - -.navbar-form:after { - clear: both; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .radio, -.navbar-form .checkbox { - margin-top: 5px; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .btn { - display: inline-block; - margin-bottom: 0; -} - -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; -} - -.navbar-form .input-append, -.navbar-form .input-prepend { - margin-top: 6px; - white-space: nowrap; -} - -.navbar-form .input-append input, -.navbar-form .input-prepend input { - margin-top: 0; -} - -.navbar-search { - position: relative; - float: left; - margin-top: 5px; - margin-bottom: 0; -} - -.navbar-search .search-query { - padding: 4px 14px; - margin-bottom: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.navbar-static-top { - position: static; - width: 100%; - margin-bottom: 0; -} - -.navbar-static-top .navbar-inner { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - margin-bottom: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner, -.navbar-static-top .navbar-inner { - border: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner { - padding-right: 0; - padding-left: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.navbar-fixed-top { - top: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar-fixed-bottom { - bottom: 0; -} - -.navbar-fixed-bottom .navbar-inner { - -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; -} - -.navbar .nav.pull-right { - float: right; -} - -.navbar .nav > li { - float: left; -} - -.navbar .nav > li > a { - float: none; - padding: 10px 15px 10px; - color: #555555; - text-decoration: none; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .nav .dropdown-toggle .caret { - margin-top: 8px; -} - -.navbar .nav > li > a:focus, -.navbar .nav > li > a:hover { - color: #333333; - text-decoration: none; - background-color: transparent; -} - -.navbar .nav > .active > a, -.navbar .nav > .active > a:hover, -.navbar .nav > .active > a:focus { - color: #555555; - text-decoration: none; - background-color: #e5e5e5; - -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); -} - -.navbar .btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-right: 5px; - margin-left: 5px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #ededed; - *background-color: #e5e5e5; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); - background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); - background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); - background-repeat: repeat-x; - border-color: #e5e5e5 #e5e5e5 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); -} - -.navbar .btn-navbar:hover, -.navbar .btn-navbar:active, -.navbar .btn-navbar.active, -.navbar .btn-navbar.disabled, -.navbar .btn-navbar[disabled] { - color: #ffffff; - background-color: #e5e5e5; - *background-color: #d9d9d9; -} - -.navbar .btn-navbar:active, -.navbar .btn-navbar.active { - background-color: #cccccc \9; -} - -.navbar .btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); -} - -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; -} - -.navbar .nav > li > .dropdown-menu:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.navbar .nav > li > .dropdown-menu:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - border-left: 6px solid transparent; - content: ''; -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:before { - top: auto; - bottom: -7px; - border-top: 7px solid #ccc; - border-bottom: 0; - border-top-color: rgba(0, 0, 0, 0.2); -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:after { - top: auto; - bottom: -6px; - border-top: 6px solid #ffffff; - border-bottom: 0; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle, -.navbar .nav li.dropdown.active > .dropdown-toggle, -.navbar .nav li.dropdown.open.active > .dropdown-toggle { - color: #555555; - background-color: #e5e5e5; -} - -.navbar .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.navbar .pull-right > li > .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:before, -.navbar .nav > li > .dropdown-menu.pull-right:before { - right: 12px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:after, -.navbar .nav > li > .dropdown-menu.pull-right:after { - right: 13px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { - right: 100%; - left: auto; - margin-right: -1px; - margin-left: 0; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -.navbar-inverse { - color: #999999; -} - -.navbar-inverse .navbar-inner { - background-color: #1b1b1b; - background-image: -moz-linear-gradient(top, #222222, #111111); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); - background-image: -webkit-linear-gradient(top, #222222, #111111); - background-image: -o-linear-gradient(top, #222222, #111111); - background-image: linear-gradient(to bottom, #222222, #111111); - background-repeat: repeat-x; - border-color: #252525; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); -} - -.navbar-inverse .brand, -.navbar-inverse .nav > li > a { - color: #999999; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} - -.navbar-inverse .brand:hover, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; -} - -.navbar-inverse .nav > li > a:focus, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .nav .active > a, -.navbar-inverse .nav .active > a:hover, -.navbar-inverse .nav .active > a:focus { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .navbar-link { - color: #999999; -} - -.navbar-inverse .navbar-link:hover { - color: #ffffff; -} - -.navbar-inverse .divider-vertical { - border-right-color: #222222; - border-left-color: #111111; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #999999; - border-bottom-color: #999999; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.navbar-inverse .navbar-search .search-query { - color: #ffffff; - background-color: #515151; - border-color: #111111; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; -} - -.navbar-inverse .navbar-search .search-query:-moz-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:focus, -.navbar-inverse .navbar-search .search-query.focused { - padding: 5px 15px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - outline: 0; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -} - -.navbar-inverse .btn-navbar { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e0e0e; - *background-color: #040404; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); - background-image: -webkit-linear-gradient(top, #151515, #040404); - background-image: -o-linear-gradient(top, #151515, #040404); - background-image: linear-gradient(to bottom, #151515, #040404); - background-image: -moz-linear-gradient(top, #151515, #040404); - background-repeat: repeat-x; - border-color: #040404 #040404 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); -} - -.navbar-inverse .btn-navbar:hover, -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active, -.navbar-inverse .btn-navbar.disabled, -.navbar-inverse .btn-navbar[disabled] { - color: #ffffff; - background-color: #040404; - *background-color: #000000; -} - -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active { - background-color: #000000 \9; -} - -.breadcrumb { - padding: 8px 15px; - margin: 0 0 20px; - list-style: none; - background-color: #f5f5f5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.breadcrumb li { - display: inline-block; - *display: inline; - text-shadow: 0 1px 0 #ffffff; - *zoom: 1; -} - -.breadcrumb .divider { - padding: 0 5px; - color: #ccc; -} - -.breadcrumb .active { - color: #999999; -} - -.pagination { - height: 40px; - margin: 20px 0; -} - -.pagination ul { - display: inline-block; - *display: inline; - margin-bottom: 0; - margin-left: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - *zoom: 1; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.pagination li { - display: inline; -} - -.pagination a, -.pagination span { - float: left; - padding: 0 14px; - line-height: 38px; - text-decoration: none; - background-color: #ffffff; - border: 1px solid #dddddd; - border-left-width: 0; -} - -.pagination a:hover, -.pagination .active a, -.pagination .active span { - background-color: #f5f5f5; -} - -.pagination .active a, -.pagination .active span { - color: #999999; - cursor: default; -} - -.pagination .disabled span, -.pagination .disabled a, -.pagination .disabled a:hover { - color: #999999; - cursor: default; - background-color: transparent; -} - -.pagination li:first-child a, -.pagination li:first-child span { - border-left-width: 1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} - -.pagination li:last-child a, -.pagination li:last-child span { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} - -.pagination-centered { - text-align: center; -} - -.pagination-right { - text-align: right; -} - -.pager { - margin: 20px 0; - text-align: center; - list-style: none; - *zoom: 1; -} - -.pager:before, -.pager:after { - display: table; - line-height: 0; - content: ""; -} - -.pager:after { - clear: both; -} - -.pager li { - display: inline; -} - -.pager a { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.pager a:hover { - text-decoration: none; - background-color: #f5f5f5; -} - -.pager .next a { - float: right; -} - -.pager .previous a { - float: left; -} - -.pager .disabled a, -.pager .disabled a:hover { - color: #999999; - cursor: default; - background-color: #fff; -} - -.modal-open .dropdown-menu { - z-index: 2050; -} - -.modal-open .dropdown.open { - *z-index: 2050; -} - -.modal-open .popover { - z-index: 2060; -} - -.modal-open .tooltip { - z-index: 2080; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} - -.modal-backdrop.fade { - opacity: 0; -} - -.modal-backdrop, -.modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.modal { - position: fixed; - top: 50%; - left: 50%; - z-index: 1050; - width: 560px; - margin: -250px 0 0 -280px; - overflow: auto; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} - -.modal.fade { - top: -25%; - -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; - -moz-transition: opacity 0.3s linear, top 0.3s ease-out; - -o-transition: opacity 0.3s linear, top 0.3s ease-out; - transition: opacity 0.3s linear, top 0.3s ease-out; -} - -.modal.fade.in { - top: 50%; -} - -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; -} - -.modal-header .close { - margin-top: 2px; -} - -.modal-header h3 { - margin: 0; - line-height: 30px; -} - -.modal-body { - max-height: 400px; - padding: 15px; - overflow-y: auto; -} - -.modal-form { - margin-bottom: 0; -} - -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - text-align: right; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - line-height: 0; - content: ""; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} - -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} - -.tooltip { - position: absolute; - z-index: 1030; - display: block; - padding: 5px; - font-size: 11px; - opacity: 0; - filter: alpha(opacity=0); - visibility: visible; -} - -.tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.tooltip.top { - margin-top: -3px; -} - -.tooltip.right { - margin-left: 3px; -} - -.tooltip.bottom { - margin-top: 3px; -} - -.tooltip.left { - margin-left: -3px; -} - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-right-color: #000000; - border-width: 5px 5px 5px 0; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-left-color: #000000; - border-width: 5px 0 5px 5px; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - width: 236px; - padding: 1px; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.popover.top { - margin-bottom: 10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-right: 10px; -} - -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -.popover-content p, -.popover-content ul, -.popover-content ol { - margin-bottom: 0; -} - -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: inline-block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover .arrow:after { - z-index: -1; - content: ""; -} - -.popover.top .arrow { - bottom: -10px; - left: 50%; - margin-left: -10px; - border-top-color: #ffffff; - border-width: 10px 10px 0; -} - -.popover.top .arrow:after { - bottom: -1px; - left: -11px; - border-top-color: rgba(0, 0, 0, 0.25); - border-width: 11px 11px 0; -} - -.popover.right .arrow { - top: 50%; - left: -10px; - margin-top: -10px; - border-right-color: #ffffff; - border-width: 10px 10px 10px 0; -} - -.popover.right .arrow:after { - bottom: -11px; - left: -1px; - border-right-color: rgba(0, 0, 0, 0.25); - border-width: 11px 11px 11px 0; -} - -.popover.bottom .arrow { - top: -10px; - left: 50%; - margin-left: -10px; - border-bottom-color: #ffffff; - border-width: 0 10px 10px; -} - -.popover.bottom .arrow:after { - top: -1px; - left: -11px; - border-bottom-color: rgba(0, 0, 0, 0.25); - border-width: 0 11px 11px; -} - -.popover.left .arrow { - top: 50%; - right: -10px; - margin-top: -10px; - border-left-color: #ffffff; - border-width: 10px 0 10px 10px; -} - -.popover.left .arrow:after { - right: -1px; - bottom: -11px; - border-left-color: rgba(0, 0, 0, 0.25); - border-width: 11px 0 11px 11px; -} - -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} - -.thumbnails:before, -.thumbnails:after { - display: table; - line-height: 0; - content: ""; -} - -.thumbnails:after { - clear: both; -} - -.row-fluid .thumbnails { - margin-left: 0; -} - -.thumbnails > li { - float: left; - margin-bottom: 20px; - margin-left: 20px; -} - -.thumbnail { - display: block; - padding: 4px; - line-height: 20px; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -a.thumbnail:hover { - border-color: #0088cc; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} - -.thumbnail > img { - display: block; - max-width: 100%; - margin-right: auto; - margin-left: auto; -} - -.thumbnail .caption { - padding: 9px; - color: #555555; -} - -.label, -.badge { - font-size: 11.844px; - font-weight: bold; - line-height: 14px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - white-space: nowrap; - vertical-align: baseline; - background-color: #999999; -} - -.label { - padding: 1px 4px 2px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.badge { - padding: 1px 9px 2px; - -webkit-border-radius: 9px; - -moz-border-radius: 9px; - border-radius: 9px; -} - -a.label:hover, -a.badge:hover { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label-important, -.badge-important { - background-color: #b94a48; -} - -.label-important[href], -.badge-important[href] { - background-color: #953b39; -} - -.label-warning, -.badge-warning { - background-color: #f89406; -} - -.label-warning[href], -.badge-warning[href] { - background-color: #c67605; -} - -.label-success, -.badge-success { - background-color: #468847; -} - -.label-success[href], -.badge-success[href] { - background-color: #356635; -} - -.label-info, -.badge-info { - background-color: #3a87ad; -} - -.label-info[href], -.badge-info[href] { - background-color: #2d6987; -} - -.label-inverse, -.badge-inverse { - background-color: #333333; -} - -.label-inverse[href], -.badge-inverse[href] { - background-color: #1a1a1a; -} - -.btn .label, -.btn .badge { - position: relative; - top: -1px; -} - -.btn-mini .label, -.btn-mini .badge { - top: 0; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-ms-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress .bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - color: #ffffff; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(to bottom, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress .bar + .bar { - -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); -} - -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} - -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -ms-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-danger .bar, -.progress .bar-danger { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); -} - -.progress-danger.progress-striped .bar, -.progress-striped .bar-danger { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-success .bar, -.progress .bar-success { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(to bottom, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); -} - -.progress-success.progress-striped .bar, -.progress-striped .bar-success { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-info .bar, -.progress .bar-info { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(to bottom, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); -} - -.progress-info.progress-striped .bar, -.progress-striped .bar-info { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-warning .bar, -.progress .bar-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); -} - -.progress-warning.progress-striped .bar, -.progress-striped .bar-warning { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.accordion { - margin-bottom: 20px; -} - -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.accordion-heading { - border-bottom: 0; -} - -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} - -.accordion-toggle { - cursor: pointer; -} - -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} - -.carousel { - position: relative; - margin-bottom: 20px; - line-height: 1; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - -moz-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} - -.carousel .item > img { - display: block; - line-height: 1; -} - -.carousel .active, -.carousel .next, -.carousel .prev { - display: block; -} - -.carousel .active { - left: 0; -} - -.carousel .next, -.carousel .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel .next { - left: 100%; -} - -.carousel .prev { - left: -100%; -} - -.carousel .next.left, -.carousel .prev.right { - left: 0; -} - -.carousel .active.left { - left: -100%; -} - -.carousel .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; - text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; - filter: alpha(opacity=50); -} - -.carousel-control.right { - right: 15px; - left: auto; -} - -.carousel-control:hover { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.carousel-caption { - position: absolute; - right: 0; - bottom: 0; - left: 0; - padding: 15px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} - -.carousel-caption h4, -.carousel-caption p { - line-height: 20px; - color: #ffffff; -} - -.carousel-caption h4 { - margin: 0 0 5px; -} - -.carousel-caption p { - margin-bottom: 0; -} - -.hero-unit { - padding: 60px; - margin-bottom: 30px; - background-color: #eeeeee; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - letter-spacing: -1px; - color: inherit; -} - -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 30px; - color: inherit; -} - -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.hide { - display: none; -} - -.show { - display: block; -} - -.invisible { - visibility: hidden; -} - -.affix { - position: fixed; -} diff --git a/out/assets/stylesheets/default.css b/out/assets/stylesheets/default.css deleted file mode 100644 index ea6437c..0000000 --- a/out/assets/stylesheets/default.css +++ /dev/null @@ -1,132 +0,0 @@ -/* - -Original style from softwaremaniacs.org (c) Ivan Sagalaev - -*/ - -pre code { - display: block; padding: 0.5em; - background: #F0F0F0; -} - -pre code, -pre .ruby .subst, -pre .tag .title, -pre .lisp .title, -pre .clojure .built_in, -pre .nginx .title { - color: black; -} - -pre .string, -pre .title, -pre .constant, -pre .parent, -pre .tag .value, -pre .rules .value, -pre .rules .value .number, -pre .preprocessor, -pre .ruby .symbol, -pre .ruby .symbol .string, -pre .aggregate, -pre .template_tag, -pre .django .variable, -pre .smalltalk .class, -pre .addition, -pre .flow, -pre .stream, -pre .bash .variable, -pre .apache .tag, -pre .apache .cbracket, -pre .tex .command, -pre .tex .special, -pre .erlang_repl .function_or_atom, -pre .markdown .header { - color: #800; -} - -pre .comment, -pre .annotation, -pre .template_comment, -pre .diff .header, -pre .chunk, -pre .markdown .blockquote { - color: #888; -} - -pre .number, -pre .date, -pre .regexp, -pre .literal, -pre .smalltalk .symbol, -pre .smalltalk .char, -pre .go .constant, -pre .change, -pre .markdown .bullet, -pre .markdown .link_url { - color: #080; -} - -pre .label, -pre .javadoc, -pre .ruby .string, -pre .decorator, -pre .filter .argument, -pre .localvars, -pre .array, -pre .attr_selector, -pre .important, -pre .pseudo, -pre .pi, -pre .doctype, -pre .deletion, -pre .envvar, -pre .shebang, -pre .apache .sqbracket, -pre .nginx .built_in, -pre .tex .formula, -pre .erlang_repl .reserved, -pre .input_number, -pre .markdown .link_label, -pre .vhdl .attribute, -pre .clojure .attribute { - color: #88F -} - -pre .keyword, -pre .id, -pre .phpdoc, -pre .title, -pre .built_in, -pre .aggregate, -pre .css .tag, -pre .javadoctag, -pre .phpdoc, -pre .yardoctag, -pre .smalltalk .class, -pre .winutils, -pre .bash .variable, -pre .apache .tag, -pre .go .typename, -pre .tex .command, -pre .markdown .strong, -pre .request, -pre .status { - font-weight: bold; -} - -pre .markdown .emphasis { - font-style: italic; -} - -pre .nginx .built_in { - font-weight: normal; -} - -pre .coffeescript .javascript, -pre .xml .css, -pre .xml .javascript, -pre .xml .vbscript, -pre .tex .formula { - opacity: 0.5; -} diff --git a/out/assets/stylesheets/docs.css b/out/assets/stylesheets/docs.css deleted file mode 100644 index 141c2d3..0000000 --- a/out/assets/stylesheets/docs.css +++ /dev/null @@ -1,577 +0,0 @@ -[class^="icon-"], [class*=" icon-"] { - background-image: ""; /* reset bootstrap crap */ -} - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; -} - -img { - vertical-align: baseline; -} - -html, -body { - min-height: 100%; -} - -body { - background: #F9F9F9; - font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, Verdana, sans-serif; - color: #404040; -} - -.tocContainer ol { - padding: 0; - margin: 0 0 0 12px; -} - -.alert h4 { - font-weight: bold; - padding-bottom: 0px; -} - -.documentationContainer { - margin-top: 20px; - margin-bottom: 20px; - -webkit-transition: width 0.15s; - -moz-transition: width 0.15s; -} - -#nav-container { - width: 160px; - min-height: 10px; - margin-right: 20px; - float: left; } - -#nav { - margin:0; - padding:0 0 30px; -} - -#nav li ul > ul { - margin: 5px 0; -} - -#side-nav { - min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */ - margin-bottom:1px; -} -#doc-nav { - outline:none; - width:auto; -} - -#doc-nav h2 { - border:0; -} - -#doc-nav.fixed { - position: fixed; - margin:0; - top: 20px; } - -a:hover, -acronym:hover, -a code:hover, -a:hover code { - color: #7aa1b0 !important; - text-decoration: none; -} - -a:focus, -a:active { - color: #33b5e5 !important; } - -/* nav */ -#nav { - /* section header divs */ - /* expanded section header divs */ - /* sublinks */ } - #nav li { - list-style-type: none; - font-size: 14px; - margin:0; - padding:0; - line-height: 15px; } - #nav a { - color: #555555; - text-decoration: none; - -webkit-transition: color 0.2s; - -moz-transition: color 0.2s; - } - #nav .nav-section-header { - cursor: pointer; - position: relative; - margin-bottom: 1px; - margin-top: 5px; - padding: 0 30px 0 0; } - #nav .selected a, - #nav .selected > .nav-section-header > a { - color: #09C; - } - #nav .selected ul li a { - /* don't highlight child items */ - color: #555555; } - #nav .nav-section .nav-section .nav-section-header { - /* no white line between second level sections */ - margin-bottom: 0; } - /* section header links */ - #nav > li > div > a { - display: block; - color: #333333; - font-weight: 500; - padding: 10px 0 10px 10px; } - #nav .nav-section-header.empty:after { - display: none; } - /* nested nav headers */ - #nav .nav-section .nav-section { - position: relative; - padding: 0; - margin: 0; } - #nav .nav-section li a { - /* first gen child (2nd level li) */ - display:block; - font-weight: normal; - text-transform: none; - padding: 5px 5px 5px 10px; - font-size: 13px; - } - #nav .nav-section li li a { - /* second gen child (3rd level li) */ - padding: 5px 5px 5px 10px; - } - #nav .expanded .nav-section-header { - background:#e9e9e9; - background: rgba(0, 0, 0, 0.05); } - #nav .expanded li .nav-section-header { - background: transparent; } - #nav .expanded li ul { - /* 3rd level ul */ - padding:0 10px; - } - #nav .nav-section > ul { - display:none; - } - #nav li ul { - overflow: hidden; - margin: 0; } - #nav li ul.animate-height-in { - -webkit-transition: height 0.25s ease-in; - -moz-transition: height 0.25s ease-in; - transition: height 0.25s ease-in; } - #nav li ul.animate-height-out { - -webkit-transition: height 0.25s ease-out; - -moz-transition: height 0.25s ease-out; - transition: height 0.25s ease-out; } - #nav li ul li { - padding: 0; } - #nav li li li { - padding: 0; } - #nav .expanded ul { - } - #nav li ul > li { - padding:0; - } - #nav li ul ul li { - padding-left: 5px; - border-left: 1px dotted #BBB; - margin-left: 13px; - } - #nav li ul > li:last-child { - padding-bottom:5px; - } - #nav .expanded > ul { - background: rgba(0, 0, 0, 0.03); - } - #nav .expanded ul > li { - /*background:#efefef; - background: rgba(0, 0, 0, 0.03);*/ - } - #nav .expanded ul > li li { - background:inherit; } - -.new, -.new-child { - font-size: .78em; - font-weight: bold; - color: #ff3d3d; - vertical-align:top; - white-space:nowrap; -} - -#doc-nav .totop { - display:block; - top:0; - width:inherit; - background: transparent url(../img/nav_gototop.png) no-repeat scroll 50% 50%; - text-indent:-9999em; -} -#doc-nav .totop { - position:fixed; - display:none; -} -#doc-nav .totop:hover { - background-color:#33B5E5; -} - -p { - font-size: 14px; - line-height: 20px; - margin: 15px 0; -} - -span.menucascade { - white-space:nowrap; -} - -#content .meta { - color: #999; - font-size: 11px; - font-style: italic; - margin: 0 0 8px 3px; -} - -#content { - padding: 15px 25px; - background: white; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2); - box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2); -} - -#content p { - line-height: 21px; -} - -#content ul li, -#content ol li { - padding-left: 5px; -} - - -pre { - border: none; -} - -pre code { - padding: 0; - border: 1px solid #ccc; -} - -pre, -code { - font-family: 'Inconsolata', monospace; - font-size: 14px; - background-color: transparent; -} - -code { - color: #333; -} - -a code { - color: #08C; -} - -/* Pointer link styling */ -h2, h3, h4, h5, h6 { - position: relative; - padding-top: 5px; - padding-bottom: 5px; -} - -h2 a .headerLinkIcon.icon-hand-right, -h3 a .headerLinkIcon.icon-hand-right, -h4 a .headerLinkIcon.icon-hand-right, -h5 a .headerLinkIcon.icon-hand-right, -h6 a .headerLinkIcon.icon-hand-right { - display: inline-table; - opacity: 0; - vertical-align: middle; - position: relative; - left: -25px; - text-decoration: none; - color: black; - transition: 0.1s opacity; - -moz-transition: 0.1s opacity; - -webkit-transition: 0.1s opacity; -} - -.heading_anchor { - color: black; - display: block; - top: 5px; - left: 0; - bottom: 0; - position: absolute; - padding-left: 30px; - margin-left: -35px; - -webkit-transition: 0.2s margin-left; - -moz-transition: 0.2s margin-left; -} - -.codeSegment { - border-bottom: 1px solid rgba(234, 46, 73, .3); - -webkit-background-clip: padding-box; - background-clip: padding-box; -} - -#content { - padding-right: 45px; - position: relative; -} - -#toh_btn { - cursor: pointer; - width: 22px; - height: 18px; - position: absolute; - top: 10px; - background: url(../img/toh_icon.png) 0px 0px no-repeat; - border: 1px solid transparent; - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-transition: border 0.2s; - -moz-transition: border 0.2s; -} - -#toh_btn.active { - -moz-box-shadow: inset 0px 0px 2px rgba(0, 0, 0, 0.7); - -webkit-box-shadow: inset 0px 0px 2px rgba(0, 0, 0, 0.7); - box-shadow: inset 0px 0px 2px rgba(0, 0, 0, 0.7); - background-color: #f4f4f4; -} - -#toh_btn:hover { - border-color: #bbb; -} - -#toh_btn.active:hover { - border-color: transparent; -} - -.tocContainer li { - list-style-type: none; -} -#tocHolder { - display: none; -} - -#tocHolder > .tocContainer { - background: #fafafa; - box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.55) inset; - border-radius: 2px; - margin-left: -39px; - padding: 10px; - position: fixed; - top: 163px; - width: 200px; -} - -.tocItem > a { - font-weight: 300; - color: #08C; - transition: 0.3s color; - -webkit-transition: 0.3s color; - -moz-transition: 0.3s color; -} -.tocItem.highlight > a { - color: #DA196E; -} - -.copyright { - font-size: 13px; - color: #999; - margin-top: 10px; -} - -.copyright a { - color: #7AB7D6; -} - -#topbar { - height: 40px; - border-bottom: 1px solid #BBB; - margin-bottom: 10px; - background: #DDD; - background: -moz-linear-gradient(top, #f7f7f7 0%, #dddddd 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7f7f7), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #f7f7f7 0%,#dddddd 100%); - background: -o-linear-gradient(top, #f7f7f7 0%,#dddddd 100%); - background: -ms-linear-gradient(top, #f7f7f7 0%,#dddddd 100%); - background: linear-gradient(to bottom, #f7f7f7 0%,#dddddd 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#dddddd',GradientType=0 ); -} - -#headerlink { - background: url(../img/c9devlogosmaller.png) 0 3px no-repeat; - float: left; - height: 26px; - display: inline-block; - margin: 2px 25px 0 19px; - font-size: 21px; - padding: 11px 0 0 55px; - font-weight: 100; - font-family: Helvetica; - color: #35434B; - -moz-transition: 0.2s color; - -webkit-transition: 0.2s color; - text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.7); -} - -#headerlink:hover { - text-decoration: none; - color: #666 !important; -} - -#headerlink:hover { - text-decoration: none; - color: #666 !important; -} - -.toplink { - float: left; - border-left: 1px solid transparent; - -webkit-transition: 0.2s background, 0.2s border; - -moz-transition: 0.2s background, 0.2s border; -} - -.toplink:hover { - background: #eee; - border-left: 1px solid #ddd; -} - -.toplink.active:hover { - border-left: 1px solid transparent; -} - -.toplink a { - display: inline-block; - padding: 11px 25px 11px 25px; - cursor: pointer; - font-size: 15px; -} - -.toplink.active { - background: #555; - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5); -} - -.toplink.active a { - color: #fff; -} - -.toplink a:hover { - text-decoration: none; -} - -.alert-heading { - display: inline-block; - padding-right: 5px; - font-size: 14px; -} - -li .tocNavArrow { - display: none; - position: absolute; - top: 11px; - right: 7px; - float: right; -} - -.nav-section.expanded .icon-chevron-up.tocNavArrow { - display: block; -} - -.nav-section:not(.expanded) .icon-chevron-down.tocNavArrow { - display: block; -} - -.centered { - width: 75%; - margin: 0px auto; -} - -#search-box { - margin-top: 20px; -} - -.container { - padding: 20px 0; - width: 960px; -} - -.container > .row { - margin-left: 0; -} - -#footer { - padding-bottom: 10px; -} - -#nav div.alert { - margin-top: 5px; -} - -#nav div.alert a { - color: #33B5E5; - text-decoration: underline; -} - -table .debug_tools { - width: 181px; -} - -table.ide_preferences { - table-layout: fixed; - } - -table.ide_preferences th, table.ide_preferences td { overflow: hidden; } - -table th.preferenceCol { - width: 40%; -} - -.sidebar-nav { - padding-top: 19px; -} - -footer { - color: #666; - background: #222; -} -footer a { - color: #999; -} -footer a:hover { - color: #efefef; -} -.wrapper { - margin: 0 auto; -} -.push { - height: 0px; - overflow: hidden; -} - - -.span3 { - margin: 0; -} -.sidebar-nav { - padding-top: 0; -} -.documentationContainer { - margin-bottom: 0; - margin-top: 0; - position: relative; - width: 720px; -} - -#header_iframe, -#footer_iframe { - box-shadow: 0 0 20px 0 rgba(0, 0, 0, .5); - display: block; -} diff --git a/out/assets/stylesheets/font-awesome.css b/out/assets/stylesheets/font-awesome.css deleted file mode 100644 index 4697599..0000000 --- a/out/assets/stylesheets/font-awesome.css +++ /dev/null @@ -1,303 +0,0 @@ -/* Font Awesome - the iconic font designed for use with Twitter Bootstrap - ------------------------------------------------------- - The full suite of pictographic icons, examples, and documentation - can be found at: http://fortawesome.github.com/Font-Awesome/ - - License - ------------------------------------------------------- - The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0: - http://creativecommons.org/licenses/by/3.0/ A mention of - 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable - source code is considered acceptable attribution (most common on the web). - If human readable source code is not available to the end user, a mention in - an 'About' or 'Credits' screen is considered acceptable (most common in desktop - or mobile software). - - Contact - ------------------------------------------------------- - Email: dave@davegandy.com - Twitter: http://twitter.com/fortaweso_me - Work: http://lemonwi.se co-founder - - */ -@font-face { - font-family: "FontAwesome"; - src: url('../font/fontawesome-webfont.eot'); - src: url('../font/fontawesome-webfont.eot?#iefix') format('eot'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svg#FontAwesome') format('svg'); - font-weight: normal; - font-style: normal; -} - -/* Font Awesome styles - ------------------------------------------------------- */ -[class^="icon-"]:before, [class*=" icon-"]:before { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - display: inline-block; - text-decoration: inherit; -} -a [class^="icon-"], a [class*=" icon-"] { - display: inline-block; - text-decoration: inherit; -} -/* makes the font 33% larger relative to the icon container */ -.icon-large:before { - vertical-align: top; - font-size: 1.3333333333333333em; -} -.btn [class^="icon-"], .btn [class*=" icon-"] { - /* keeps button heights with and without icons the same */ - - line-height: .9em; -} -li [class^="icon-"], li [class*=" icon-"] { - display: inline-block; - width: 1.25em; - text-align: center; -} -li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] { - /* 1.5 increased font size for icon-large * 1.25 width */ - - width: 1.875em; -} -li[class^="icon-"], li[class*=" icon-"] { - margin-left: 0; - list-style-type: none; -} -li[class^="icon-"]:before, li[class*=" icon-"]:before { - text-indent: -2em; - text-align: center; -} -li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before { - text-indent: -1.3333333333333333em; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.icon-glass:before { content: "\f000"; } -.icon-music:before { content: "\f001"; } -.icon-search:before { content: "\f002"; } -.icon-envelope:before { content: "\f003"; } -.icon-heart:before { content: "\f004"; } -.icon-star:before { content: "\f005"; } -.icon-star-empty:before { content: "\f006"; } -.icon-user:before { content: "\f007"; } -.icon-film:before { content: "\f008"; } -.icon-th-large:before { content: "\f009"; } -.icon-th:before { content: "\f00a"; } -.icon-th-list:before { content: "\f00b"; } -.icon-ok:before { content: "\f00c"; } -.icon-remove:before { content: "\f00d"; } -.icon-zoom-in:before { content: "\f00e"; } - -.icon-zoom-out:before { content: "\f010"; } -.icon-off:before { content: "\f011"; } -.icon-signal:before { content: "\f012"; } -.icon-cog:before { content: "\f013"; } -.icon-trash:before { content: "\f014"; } -.icon-home:before { content: "\f015"; } -.icon-file:before { content: "\f016"; } -.icon-time:before { content: "\f017"; } -.icon-road:before { content: "\f018"; } -.icon-download-alt:before { content: "\f019"; } -.icon-download:before { content: "\f01a"; } -.icon-upload:before { content: "\f01b"; } -.icon-inbox:before { content: "\f01c"; } -.icon-play-circle:before { content: "\f01d"; } -.icon-repeat:before { content: "\f01e"; } - -/* \f020 doesn't work in Safari. all shifted one down */ -.icon-refresh:before { content: "\f021"; } -.icon-list-alt:before { content: "\f022"; } -.icon-lock:before { content: "\f023"; } -.icon-flag:before { content: "\f024"; } -.icon-headphones:before { content: "\f025"; } -.icon-volume-off:before { content: "\f026"; } -.icon-volume-down:before { content: "\f027"; } -.icon-volume-up:before { content: "\f028"; } -.icon-qrcode:before { content: "\f029"; } -.icon-barcode:before { content: "\f02a"; } -.icon-tag:before { content: "\f02b"; } -.icon-tags:before { content: "\f02c"; } -.icon-book:before { content: "\f02d"; } -.icon-bookmark:before { content: "\f02e"; } -.icon-print:before { content: "\f02f"; } - -.icon-camera:before { content: "\f030"; } -.icon-font:before { content: "\f031"; } -.icon-bold:before { content: "\f032"; } -.icon-italic:before { content: "\f033"; } -.icon-text-height:before { content: "\f034"; } -.icon-text-width:before { content: "\f035"; } -.icon-align-left:before { content: "\f036"; } -.icon-align-center:before { content: "\f037"; } -.icon-align-right:before { content: "\f038"; } -.icon-align-justify:before { content: "\f039"; } -.icon-list:before { content: "\f03a"; } -.icon-indent-left:before { content: "\f03b"; } -.icon-indent-right:before { content: "\f03c"; } -.icon-facetime-video:before { content: "\f03d"; } -.icon-picture:before { content: "\f03e"; } - -.icon-pencil:before { content: "\f040"; } -.icon-map-marker:before { content: "\f041"; } -.icon-adjust:before { content: "\f042"; } -.icon-tint:before { content: "\f043"; } -.icon-edit:before { content: "\f044"; } -.icon-share:before { content: "\f045"; } -.icon-check:before { content: "\f046"; } -.icon-move:before { content: "\f047"; } -.icon-step-backward:before { content: "\f048"; } -.icon-fast-backward:before { content: "\f049"; } -.icon-backward:before { content: "\f04a"; } -.icon-play:before { content: "\f04b"; } -.icon-pause:before { content: "\f04c"; } -.icon-stop:before { content: "\f04d"; } -.icon-forward:before { content: "\f04e"; } - -.icon-fast-forward:before { content: "\f050"; } -.icon-step-forward:before { content: "\f051"; } -.icon-eject:before { content: "\f052"; } -.icon-chevron-left:before { content: "\f053"; } -.icon-chevron-right:before { content: "\f054"; } -.icon-plus-sign:before { content: "\f055"; } -.icon-minus-sign:before { content: "\f056"; } -.icon-remove-sign:before { content: "\f057"; } -.icon-ok-sign:before { content: "\f058"; } -.icon-question-sign:before { content: "\f059"; } -.icon-info-sign:before { content: "\f05a"; } -.icon-screenshot:before { content: "\f05b"; } -.icon-remove-circle:before { content: "\f05c"; } -.icon-ok-circle:before { content: "\f05d"; } -.icon-ban-circle:before { content: "\f05e"; } - -.icon-arrow-left:before { content: "\f060"; } -.icon-arrow-right:before { content: "\f061"; } -.icon-arrow-up:before { content: "\f062"; } -.icon-arrow-down:before { content: "\f063"; } -.icon-share-alt:before { content: "\f064"; } -.icon-resize-full:before { content: "\f065"; } -.icon-resize-small:before { content: "\f066"; } -.icon-plus:before { content: "\f067"; } -.icon-minus:before { content: "\f068"; } -.icon-asterisk:before { content: "\f069"; } -.icon-exclamation-sign:before { content: "\f06a"; } -.icon-gift:before { content: "\f06b"; } -.icon-leaf:before { content: "\f06c"; } -.icon-fire:before { content: "\f06d"; } -.icon-eye-open:before { content: "\f06e"; } - -.icon-eye-close:before { content: "\f070"; } -.icon-warning-sign:before { content: "\f071"; } -.icon-plane:before { content: "\f072"; } -.icon-calendar:before { content: "\f073"; } -.icon-random:before { content: "\f074"; } -.icon-comment:before { content: "\f075"; } -.icon-magnet:before { content: "\f076"; } -.icon-chevron-up:before { content: "\f077"; } -.icon-chevron-down:before { content: "\f078"; } -.icon-retweet:before { content: "\f079"; } -.icon-shopping-cart:before { content: "\f07a"; } -.icon-folder-close:before { content: "\f07b"; } -.icon-folder-open:before { content: "\f07c"; } -.icon-resize-vertical:before { content: "\f07d"; } -.icon-resize-horizontal:before { content: "\f07e"; } - -.icon-bar-chart:before { content: "\f080"; } -.icon-twitter-sign:before { content: "\f081"; } -.icon-facebook-sign:before { content: "\f082"; } -.icon-camera-retro:before { content: "\f083"; } -.icon-key:before { content: "\f084"; } -.icon-cogs:before { content: "\f085"; } -.icon-comments:before { content: "\f086"; } -.icon-thumbs-up:before { content: "\f087"; } -.icon-thumbs-down:before { content: "\f088"; } -.icon-star-half:before { content: "\f089"; } -.icon-heart-empty:before { content: "\f08a"; } -.icon-signout:before { content: "\f08b"; } -.icon-linkedin-sign:before { content: "\f08c"; } -.icon-pushpin:before { content: "\f08d"; } -.icon-external-link:before { content: "\f08e"; } - -.icon-signin:before { content: "\f090"; } -.icon-trophy:before { content: "\f091"; } -.icon-github-sign:before { content: "\f092"; } -.icon-upload-alt:before { content: "\f093"; } -.icon-lemon:before { content: "\f094"; } -.icon-phone:before { content: "\f095"; } -.icon-check-empty:before { content: "\f096"; } -.icon-bookmark-empty:before { content: "\f097"; } -.icon-phone-sign:before { content: "\f098"; } -.icon-twitter:before { content: "\f099"; } -.icon-facebook:before { content: "\f09a"; } -.icon-github:before { content: "\f09b"; } -.icon-unlock:before { content: "\f09c"; } -.icon-credit-card:before { content: "\f09d"; } -.icon-rss:before { content: "\f09e"; } - -.icon-hdd:before { content: "\f0a0"; } -.icon-bullhorn:before { content: "\f0a1"; } -.icon-bell:before { content: "\f0a2"; } -.icon-certificate:before { content: "\f0a3"; } -.icon-hand-right:before { content: "\f0a4"; } -.icon-hand-left:before { content: "\f0a5"; } -.icon-hand-up:before { content: "\f0a6"; } -.icon-hand-down:before { content: "\f0a7"; } -.icon-circle-arrow-left:before { content: "\f0a8"; } -.icon-circle-arrow-right:before { content: "\f0a9"; } -.icon-circle-arrow-up:before { content: "\f0aa"; } -.icon-circle-arrow-down:before { content: "\f0ab"; } -.icon-globe:before { content: "\f0ac"; } -.icon-wrench:before { content: "\f0ad"; } -.icon-tasks:before { content: "\f0ae"; } - -.icon-filter:before { content: "\f0b0"; } -.icon-briefcase:before { content: "\f0b1"; } -.icon-fullscreen:before { content: "\f0b2"; } - -.icon-group:before { content: "\f0c0"; } -.icon-link:before { content: "\f0c1"; } -.icon-cloud:before { content: "\f0c2"; } -.icon-beaker:before { content: "\f0c3"; } -.icon-cut:before { content: "\f0c4"; } -.icon-copy:before { content: "\f0c5"; } -.icon-paper-clip:before { content: "\f0c6"; } -.icon-save:before { content: "\f0c7"; } -.icon-sign-blank:before { content: "\f0c8"; } -.icon-reorder:before { content: "\f0c9"; } -.icon-list-ul:before { content: "\f0ca"; } -.icon-list-ol:before { content: "\f0cb"; } -.icon-strikethrough:before { content: "\f0cc"; } -.icon-underline:before { content: "\f0cd"; } -.icon-table:before { content: "\f0ce"; } - -.icon-magic:before { content: "\f0d0"; } -.icon-truck:before { content: "\f0d1"; } -.icon-pinterest:before { content: "\f0d2"; } -.icon-pinterest-sign:before { content: "\f0d3"; } -.icon-google-plus-sign:before { content: "\f0d4"; } -.icon-google-plus:before { content: "\f0d5"; } -.icon-money:before { content: "\f0d6"; } -.icon-caret-down:before { content: "\f0d7"; } -.icon-caret-up:before { content: "\f0d8"; } -.icon-caret-left:before { content: "\f0d9"; } -.icon-caret-right:before { content: "\f0da"; } -.icon-columns:before { content: "\f0db"; } -.icon-sort:before { content: "\f0dc"; } -.icon-sort-down:before { content: "\f0dd"; } -.icon-sort-up:before { content: "\f0de"; } - -.icon-envelope-alt:before { content: "\f0e0"; } -.icon-linkedin:before { content: "\f0e1"; } -.icon-undo:before { content: "\f0e2"; } -.icon-legal:before { content: "\f0e3"; } -.icon-dashboard:before { content: "\f0e4"; } -.icon-comment-alt:before { content: "\f0e5"; } -.icon-comments-alt:before { content: "\f0e6"; } -.icon-bolt:before { content: "\f0e7"; } -.icon-sitemap:before { content: "\f0e8"; } -.icon-umbrella:before { content: "\f0e9"; } -.icon-paste:before { content: "\f0ea"; } - -.icon-user-md:before { content: "\f200"; } diff --git a/out/autocompletion.html b/out/autocompletion.html deleted file mode 100644 index 02adf3d..0000000 --- a/out/autocompletion.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - Code Autocompletion | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Code Autocompletion

-

For Javascript programs, Cloud9 IDE provides intelligent and responsive autocompletion for your code. Autocompletion is based not only on the content within your files, but also on the ECMAScript and Node.js standard library:

-

Autocompletion sample

-

Methods defined in ECMAScript and Node.js also have documentation provided for you. Simply hover over a method name for a moment, and a second box quickly shows some additional information.

-

You can disable autocompletion in the Settings menu.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/cloud9-user-documentation.json b/out/cloud9-user-documentation.json deleted file mode 100644 index 76207ae..0000000 --- a/out/cloud9-user-documentation.json +++ /dev/null @@ -1,463 +0,0 @@ -{ - "files": [ - { - "filename": "deploying_code", - "mtime": 1412172002000, - "pageTitle": "Deploying Your Code", - "contents": "\n

Deploying Your Code

\n

Cloud9 IDE offers many different ways to get your code from your editor to your \nproduction server. To deploy your code, click on the Deploy button in the \nProject Bar:

\n

\"The

\n

We offer tight integration with the following environments:

\n\n

Following these links will provide you with more information on code deployment.\nYou can deploy your code to as many services and servers as you like. Keep in \nmind that you'll already need an account at those hosting providers before you \ncan deploy your app to them!

\n

If you're comfortable with the command line, you can also deploy to several more\nenvironments, such as:

\n\n

Warning:

Before you attempt to deploy your application, make sure that you have \ncommitted all your changes to version control. Cloud9 deploys for you whatever \nwas last committed to version control.
\n\n
" - }, - { - "filename": "deploying_to_heroku", - "mtime": 1412172002000, - "pageTitle": "Deploying to Heroku", - "contents": "\n

Deploying to Heroku

\n

This section will show you how to deploy your applications to Heroku, a cloud-based application platform. The integration with Cloud9 IDE makes your development process even more agile. If you don't have a Heroku account, visit their website to create one for free.

\n

To get started, create a simple Node.js application. If you don't have one yet, you can follow our tutorial on developing one.

\n

After you click on the Deploy button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Heroku as an option. After you have signed into your Heroku account, you can create a new deploy target or choose an existing one from your account:

\n

\"Showing

\n

Note:

Heroku only allows you to create names for your apps that contain letters and dashes.\n\n
\n

Next, press Deploy to continue the process; the following window might appear:

\n

\"Dialog

\n

Heroku Node.js apps are required to have a package.json file, much like with NPM. Cloud9 can generate a package.json file for you, containing metadata to share Heroku. The following lines represent what that file might looks like:

\n
{\n    \"name\": \"cloud9-heroku-example\",\n    \"version\": \"0.0.1\"\n}
\n

After you have a package.json file, you might see this dialog:

\n

\"Dialog

\n

Sometimes, a Heroku app also requires a Procfile. The Procfile is needed to start the application in Heroku. You can just create a new file, add the line below, and save it as 'Procfile'. Don't add any file extensions.

\n
web: node web.js
\n

Try the deploy button again. The console will directly output the following when the deployment is completed:

\n

\"Console

\n

And just like that, you've deployed your project to Heroku.

\n\n
" - }, - { - "filename": "deploying_to_windows_azure_sites", - "mtime": 1412172002000, - "pageTitle": "Deploying to Windows Azure Sites", - "contents": "\n

Deploying to Windows Azure Sites

\n

This article will show you how to deploy your applications to Windows Azure. If you don't have an account yet, the Windows Azure process will help you create one. Keep in mind that Windows Azure is not free, though it does come with a free trial. Windows Azure projects can be deployed from any operating system.

\n

To get started, create a simple Node.js application. If you don't have one yet, you can follow our tutorial on developing one.

\n

After you click on the Deploy button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Windows Azure as an option. You'll be prompted with this dialog:
\"Windows

\n

You must click on the Download Windows Azure Settings button before you can continue. If you don't have a Windows Azure account, here is where you can create one. If you do have an account, your browser will automatically download the required file.

\n

When that's finished, simply select the downloaded file from your computer, and upload it to Cloud9. You'll only have to do this process once. If you ever need to upload a new certificate, be sure to click Clear cert in the lower-right corner of this dialog.

\n

After the file has uploaded, click on Create new to create a new hosted service. A hosted service is the container in which your application is hosted when it is deployed to Windows Azure. For more information, see Overview of Creating a Hosted Service for Windows Azure.

\n

You can set a few configuration options such as the number of instances to use, its host OS, and where the data center is located. Selecting "Enable RDP" and providing a username and password enables remote desktop for your deployment.

\n

Your new Windows Azure server will appear in the Deploy list:
\"Windows

\n

Go ahead and click on DEPLOY. If this is the first time you're trying to deploy this project to Windows Azure, you'll receive three prompts:

\n
    \n
  1. A dialog will inform you of a missing web.config file. If you click Yes, Cloud9 will create a file called Web.cloud.config in your project. This file contains configuration information about your app.

    \n
  2. \n
  3. You'll be told about a missing csdef file. If you click Yes, Cloud9 will create a file called ServiceDefinition.csdef in your project. ServiceDefinition.csdef is a Windows Azure-specific files necessary for publishing your application For more information, see Overview of Creating a Hosted Service for Windows Azure.

    \n
  4. \n
  5. You'll be asked to select the instance size for this application. For this tutorial, just select Small, and then click Create. For more details about Windows Azure VM sizes, see How to Configure Virtual Machine Sizes.

    \n
  6. \n
\n

Your app will now deploy to a Windows Azure server! You can follow its progress in the Deploy panel, or by watching the messages in the console:\n\"Windows

\n

For more information on configuring your app on the Windows Azure website, see Deploying a Windows Azure App from Cloud9.

\n\n
" - }, - { - "filename": "deploying_via_cli", - "mtime": 1412172002000, - "pageTitle": "Deploying via the Command Line", - "contents": "

Deploying via the Command Line

\n

In the new version of Cloud9 we don't have support for deployment from the UI yet, but we're going to add those features soon.

\n

Until then, you can manually install various command-line tools into your workspace and deploy using the command line. \nIt should go without saying that this is for super 31337 developers that aren't afraid of the command line.

\n

Below is a list of some of the services we have tested and support deploying to. \nAll the commands need to be executed in the terminal unless stated otherwise.

\n

Heroku

\n

Heroku's toolbelt is installed by default in new VMs.

\n

Now, you can use the heroku command for your projects, as described in the \nHeroku documentation.

\n

If deploying to Heroku, you should probably be using a local instance of PostgresQL, or you may run into problems caused by different database interpretations of SQL.

\n

Windows Azure Web Sites

\n

Free and Premium Plans

\n

In the Console or a Terminal, type the \nfollowing:

\n
npm install azure
\n

Now, you can use the azure command from the Console/Terminal. For more \ninformation, read the official azure documentation.

\n

Premium Plans

\n

To deploy to Azure sites from the command line, open the Terminal and type:

\n
cd ~/lib/azure-sites\nnpm install
\n

Then, add the bin to your workspace's path:

\n
PATH=$PATH:$HOME/lib/azure-sites/bin
\n

Now, you can use the azure command in the terminal.

\n

Windows Azure Cloud Services

\n

For free and premium plans, follow the instructions on the \nazure-cmdlet-node repository. This \nproject is maintained by Cloud9.

\n

Google App Engine

\n

First, setup Push to Deploy: Create a new App Engine application at \ncloud.google.com/console, and then enable \nPush-to-Deploy under 'App Engine' in the Application Settings page. Leave this \ntab open to note the URL for your repo.

\n

Secondly, configure Cloud9. Run the following commands (making sure to replace \nyour email address, auth-token, and repo-url):

\n
echo \"machine code.google.com login EMAIL password PASSWORD\" >> ~/.netrc\ngit remote add appengine REPO
\n

Note:

The email in this case is the mail address you use to login to your Google\nApp Engine account and the password is the auth-token generated from the admin\nconsole, it is not your google password, never type that into a third party tool.\n'REPO' is the repository URL generated before.\n\n
\n

Finally, do a commit, and a push:

\n
git commit -a -m \"First commit\"\ngit push appengine master
\n

OpenShift

\n
# Install rhc:\ngem install rhc\nrhc setup\n\n# After this you can use rhc to manage your account:\n\n# list apps:\nrhc apps\n# To show what you can do with apps do:\nrhc app help\n# You deploy via a git push\ngit push <giturl> master
\n

CloudFoundry

\n

To deploy to CloudFoundry from the command line in the Console \nor a Terminal, type:

\n
cd ~\nwget https://github.com/cloudfoundry/vmc/zipball/master\nmv master cloudfoundry\nunzip cloudfoundry\ncd cloudfoundry-vmc-nnnn\nbundle
\n

NodeJitsu

\n

Free and Premium Plans

\n

In the the Console or a Terminal, type:

\n
npm install jitsu@0.7.x -g\nmkdir node_modules\nmv ../lib/node_modules/jitsu node_modules
\n

Now, you can run jitsu from the command line. For more information, see \nthe official jitsu documentation.

\n

Premium Plans

\n
npm install jitsu@0.7.x -g
\n

You can now run jitsu from both the Console and the Terminal.

\n

Modulus

\n

In the the Console or a Terminal, type:

\n
npm install modulus -g
\n

Now, you can run modulus from the command line. For more information, see \nthe official modulus documentation.

\n\n
" - }, - { - "filename": "faq_general", - "mtime": 1416998245000, - "pageTitle": "FAQ: General", - "contents": "

FAQ: General

\n

Can I use FTP workspaces on Cloud9?

\n

Yes, Cloud9 supports FTP workspaces that allow you to edit your files directly on your FTP server. \nCurrently FTP workspaces still open in the old version of Cloud9, but soon we'll also support FTP workspaces with the new version of Cloud9.

\n

One thing that was removed for reliability reasons in the new version of Cloud9, is the ability to deploy over FTP from a regular workspace.\nWe're bringing back those features in a new format and with much higher reliability in the coming months.

\n

How do I deploy to Heroku/Openshift/Azure/...?

\n

See Deploying via CLI.

\n

Can I connect to SMTP servers (port 25)?

\n

No, this is not supported by our hosting platform. It does currently allow access to the GMail servers though, so you can use that service during development.

\n

My workspace says it's out of quota. how do I fix it?

\n

You can inspect your current quota usage with the df command in the Terminal:

\n
$ df
\n

To find which files and directories are consuming a lot of space, go to a directory such as your home directory, and run this command:

\n
$ du -m -d 1 -a | sort -n
\n

This should give you a list of all members of that directory and how much space they use in megabytes.

\n

Alternatively, try du-c9 for seeing all files you added to your workspace and account for the quota.

\n

Can I use two-factor authentication with Cloud9?

\n

You can sign into Cloud9 with your github or bitbucket account and set that up to use two-factor authentication.\nWe don't currently provide an option to directly setup your Cloud9 account for two-factor authentication.

\n

I can't preview my running app.

\n

Try using port 8080 instead, which often solves this case.

\n

EADDRINUSE: My app complains that the address/port is in use

\n

Applications won't start if another application is already listening to the same port. In order to fix it you first need to find out which process that is:

\n
$ netstat -nlp | grep $PORT
\n

This will report the process id (PID) which you can then kill using

\n
$ sudo kill -9 <PID>
\n

Often apache is still running in the background. In that case you can kill it using

\n
$ sudo pkill apache2
\n

How can I upload local files to my project?

\n

Either drag a local file directly from your desktop into the Cloud9 file tree,\nor use the "File > Upload Local Files" menu item.

\n

How can I download my project files?

\n

Use "File > Download project". Currently, this will give you a .tar.gz file, which\nensures maximum portability. To open these files, you can use something like\nWinRAR or 7-zip.

\n

How can I share a single directory of a private workspace

\n

Sometime you might want others to open a file or directory in the browser \nwithout opening up the whole workspace. This can be done by starting a small \nhttp server in that directory and make sure that the running application is public.

\n

To make the running application public you have to click the "sharing" button at\nthe top right and the check "public" for application.

\n

To run the server open a terminal and do

\n
$ cd /dir/i/want/to/share\n$ python3 -m http.server 8080
\n\n
" - }, - { - "filename": "faq_ssh", - "mtime": 1416998221000, - "pageTitle": "FAQ: SSH workspaces", - "contents": "

FAQ: SSH workspaces

\n

I cannot create a SSH workspace using a Digital Ocean droplet

\n

We recently discovered our web host is blocking connections to some Digital Ocean IP addresses because they suspect they are being used by Iranian users. They are legally forced to block them.

\n

Digital Ocean maintains a whitelist of droplet IP addresses which should not be blocked and our web host follows this list.

\n

Please raise a support ticket with Digital Ocean mentioning that you would like to have your droplet IP added to the whitelist. After this is complete you will be able to create your SSH workspace within 24 - 48 hours.

\n

I'm getting an error on the SSH install script: "ncurses not found"

\n

Try executing the following command:

\n
yum install ncurses-devel 
\n

or

\n
yum install glibc-static 
\n\n
" - }, - { - "filename": "faq_php", - "mtime": 1412172002000, - "pageTitle": "FAQ: PHP", - "contents": "

FAQ: PHP

\n

where are the Apache logs?

\n

By default the logs are in ~/lib/apache2/log

\n

Is mail() supported?

\n

No, this is currently not supported; see FAQ: General about SMTP access.

\n\n
" - }, - { - "filename": "faq_python", - "mtime": 1412172002000, - "pageTitle": "FAQ: Python", - "contents": "

FAQ: Python

\n

Why does easy_install report a permission_denied error?

\n

Please use sudo easy_install instead.

\n\n
" - }, - { - "filename": "colorpicker", - "mtime": 1412172002000, - "pageTitle": "Color Picker", - "contents": "\n

Color Picker

\n

Note:

this feature is deprecated\n\n
\n
\n\n
\n\n

The color picker is an awesome feature in Cloud9 IDE, designed to not only make color selections easier, but also, more harmonious. At its core, the color picker is a way to represent words (red, blue, e.t.c.), RGBA values (rgba(175, 3, 124, .6)), or hex values (#f00f00) into actual colors.

\n

To enable the color picker, flip the preferences on in the Settings panel. You can use the color picker in CSS, SVG, HTML, or APF Skin files. All you have to do is hover over the value of a color definition, and it'll instantly highlight, like this: \"Color

\n

When the represented color is highlighted, click on it. You'll get a color square defining all the possible color arrangements. To select a color, you can click in the square, pick your own RGB or HSB values, or enter some hex code. Best of all, at the bottom of the window, you'll find a list of other colors found within the same document--just in case you want to achieve matching shades:
\"Color

\n

To set the value, just click anywhere outside of the color picker.

\n\n
" - }, - { - "filename": "language_analysis", - "mtime": 1412172002000, - "pageTitle": "Language Analysis", - "contents": "

Language Analysis

\n

For JavaScript files, Cloud9 provides analysis using a combination of our own analysis tools, as well as JSHint (specifically for Javascript code). Our language analysis can't detect if your program is correct, fast, or has memory leaks, but it can save you time by spotting things like undeclared variables, syntax errors, or other preventable typos.

\n

When Cloud9 detects an issue with your code, an icon appears in the gutter for the offending lines of code. There are three types of identifiers available for your code:

\n
    \n
  • Informational (\"Little): these are non-critical, non-dangerous updates about your code
  • \n
  • Warnings (\"Warning): these are potentially incorrect pieces of code
  • \n
  • Errors (\"Error): these are incorrect lines of code that will almost certainly throw a runtime error when you try to run your script
  • \n
\n

If you hover over any of these icons in the gutter, you'll get a pop-up that presents some information as to what, exactly, the problem is. For example, suppose we have a variable declared, called fs, that is never used:
\"fs

\n

Notice also that fs has a strikethrough, to provide further visual clues that something is not quite right.

\n

If you're concerned with the level of information that's listed in the gutter, you can always configure its "strictness" in the IDE preferences. For example, you could choose to hide every icon that isn't a warning or an error.

\n

Configuring Global Options

\n

JSHint provides additional configuration options that Cloud9 incorporates on a per-file basis. Typically, you declare these options as comments at the very top of a file, like this:

\n
/*jshint curly:true, debug:true */
\n

For a full list of the JSHint configutation options, please check the documentation page describing them.

\n\n
" - }, - { - "filename": "autocompletion", - "mtime": 1412172002000, - "pageTitle": "Code Autocompletion", - "contents": "\n

Code Autocompletion

\n

For Javascript programs, Cloud9 IDE provides intelligent and responsive autocompletion for your code. Autocompletion is based not only on the content within your files, but also on the ECMAScript and Node.js standard library:

\n

\"Autocompletion

\n

Methods defined in ECMAScript and Node.js also have documentation provided for you. Simply hover over a method name for a moment, and a second box quickly shows some additional information.

\n

You can disable autocompletion in the Settings menu.

\n\n
" - }, - { - "filename": "custom_runners", - "mtime": 1412172002000, - "pageTitle": "Custom Runners", - "contents": "

Custom Runners

\n

Luckily you're not limited to the default set of Runners in Cloud9.\nYou can simply define your own custom Runner, which is both simple and very powerful.\nAll you need to do is create a Runner file.\nIn this article we'll describe how to do this in just a few steps.

\n

In the Run panel (usually at the bottom of the UI), click the 'Runner' text input and choose 'New Runner'. \nIn the new Runner file that's now opened, you can configure your runner\nusing a simple JSON format. We'll show a basic example below\nand then explain the different properties you can use.

\n

Let's start with a basic example: a runner for go files.

\n
{\n    \"cmd\": [\"go\", \"run\", \"$file\", \"$args\"],\n    \"selector\": \"source.go\",\n    \"info\": \"Your code is running :)\"\n}
\n

This runner will use "go run" for any file that has a ".go" file extension.\nIf you add it, it'll override our default Go runner.

\n

As another example, let's save a new Node 0.11 configuration, including Harmony support. \nCreate a new Runner, add this code, and save it as 'Node 0.11.x.run':

\n
// This file overrides the built-in Node 0.11.x runner\n// For more information see http://docs.c9.io:8080/#!/api/run-method-run\n{\n  \"cmd\": [\n    \"bash\",\n    \"--login\",\n    \"-c\",\n    \"nvm use 0.11 > /dev/null; node --harmony ${debug?--nocrankshaft --nolazy --debug-brk=15454} '$file' $args\"\n  ],\n  \"debugger\": \"v8\",\n  \"debugport\": 15454,\n  \"info\": \"Your code is running at \\\\033[01;34m$url\\\\033[00m.\\n\\\\033[01;31mImportant:\\\\033[00m use \\\\033[01;32mprocess.env.PORT\\\\033[00m as the port and \\\\033[01;32mprocess.env.IP\\\\033[00m as the host in your scripts!\\n\"\n}
\n

Note:

alternatively, you can check 'Show Hidden Files' in your workspace directory tree (the small gear in the upper right corner), and create a new file in the '.c9/runners' folder called 'Node 0.11.x.run' with this code.\n\n
\n

That's it! Your custom Runner should be available in the Run panel.

\n

Runner Variables

\n

Here's a list of all the variables you can use in your runners:

\n
    \n
  • $file_path The directory of the current file, e. g., /home/ubuntu/workspace/docs

    \n
  • \n
  • $file The full path to the current file, e. g., /home/ubuntu/workspace/docs/Chapter1.txt.

    \n
  • \n
  • $args Any arguments entered after the file name.

    \n
  • \n
  • $file_name The name portion of the current file, e. g., Chapter1.txt.

    \n
  • \n
  • $file_extension The extension portion of the current file, e. g., txt.

    \n
  • \n
  • $file_base_name The name only portion of the current file, e. g., Document.

    \n
  • \n
  • $packages The full path to the Packages folder.

    \n
  • \n
  • $project The full path to the current project file.

    \n
  • \n
  • $project_path The directory of the current project file.

    \n
  • \n
  • $project_name The name portion of the current project file.

    \n
  • \n
  • $project_extension The extension portion of the current project file.

    \n
  • \n
  • $project_base_name The name only portion of the current project file.

    \n
  • \n
  • $hostname The hostname of the workspace.

    \n
  • \n
  • $hostname_path The hostname of the workspace together with the relative path of the project file.

    \n
  • \n
  • $url The full url to access the workspace.

    \n
  • \n
  • $port The port assigned to the workspace.

    \n
  • \n
  • $ip The ip address to run a process against in the workspace.

    \n
  • \n
\n\n
" - }, - { - "filename": "gotofile_and_definition", - "mtime": 1412172002000, - "pageTitle": "Using Goto File and Goto Definition", - "contents": "\n

Using Goto File and Goto Definition

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n
\n\n
\n\n

Let's say you're working a large project containing many files, and you kind-of sort-of know the name of a file that you want to open up. Goto File is our feature to help you quickly and easily jump to any file in your workspace, without the need to search through different directories. Simply hit Cmd-E (or Ctrl-E on Unix/Windows) and away you go:

\n

\"Goto

\n

Goto File offers filtering for any portion of a filename, including directories. Search for the beginning, middle, or end of a file path, or even just an extension, like .js, and Goto File with instantly present the results to you. Clicking on a name in the list opens the file right up. Goto File does not support case-insensitive, wildcard (*, ?), or regular expression (., +) searching.

\n

Goto Definition takes the same concept and applies it to files. You can easily navigate between classes and members defined in your files. By entering text, you can filter your class' member results. Finally, as you navigate through your file, Cloud9 IDE will jump to the relevant portion of the code:

\n

\"Goto

\n

Note:

Currently, Goto Definition only works for Javascript files.\n\n
\n

Another feature that's available is the capability to "jump to definition." If your cursor is on a variable or function name, you can tap F12 (or type jumptodef in the console) to instantly scroll the editor to the member's definition.

\n\n
" - }, - { - "filename": "collaboration", - "mtime": 1412172002000, - "pageTitle": "Collaboration", - "contents": "

Collaboration

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n

Collaboration with Cloud9 IDE is an amazing feature that lets you do more than just share your projects with any other Cloud9 developer. You can grant someone else access to change files in your workspace, in realtime--or just let them view the workspace without any other rights. While you're collaborating, you can discuss the code through a built-in chat room.

\n

To invite someone to collaborate on a project with you, simply copy the URL in the browser and send it to a friend. You can also click on Share in the menu bar to get quick access to other ways to share, such as via e-mail, Twitter, or Facebook.

\n

Let's take a look at some of the additional features available while you collaborate.

\n

Members List

\n

There are two terms used for people accessing your project: members and visitors. Members are individuals that have read and write access to your project--that means they can change any code; visitors only have read access. The Members panel lists all the collaborators in a project, both active and inactive:

\n

\"The

\n

If you are the owner of a project, you can click on anyone's username to grant (or revoke) write access:

\n

\"Granting

\n

If you're worried about the sanctity of your code after grant access to other developers, fear not. You can always take a look at a file revision history to view line-by-line changes made to your project over time.

\n

Chatting

\n

Any member or visitor can participate in group chat with each other. Developers can also choose to double-click on a person's username and engage in a private, instant-message-style conversation.

\n

Collaborate on Code

\n

When a collaborator changes a file you're also working on, Cloud9 detects it and asks you whether you'd like to use their changes, or your version. We're also simply giving you the option to merge both, using a three-way-merge algorithm to handle any conflicts. This is the same algorithm used by version control systems like git for merging branches.

\n

To make the experience even smoother you can choose "Always merge by default" and we'll never interrupt you about file changes again.

\n

Check out the video below to see this in action.

\n
\n\n
\n\n
" - }, - { - "filename": "searching_in_files", - "mtime": 1412172002000, - "pageTitle": "Searching and Replacing in Files", - "contents": "

Searching and Replacing in Files

\n
\n\n
\n\n

Aside from Goto File and Goto Definition, Cloud9 also offers more traditional search functionality. There are three types of search modes available: quicksearch, search and replace, and find in files.

\n

Quicksearch

\n

Quicksearch can be activated by hitting Cmd-F on a Mac, or Ctrl-F on a Unix/Windows machine. As you type in the quicksearch bar, the IDE instantly shifts to the next available result. This is a great way to quickly search around in your code without hassle.

\n

Quicksearch offers the following options:

\n
    \n
  • Regular Expressions: when enabled, your search is treated as a regular expression
  • \n
  • Match Case: when enabled, your search takes capitalizations seriously:
  • \n
  • Whole Words: when enabled, your search will only be considered for whole words:
  • \n
  • Search Backwards: when enabled, the search goes backwards, instead of forwards
  • \n
  • Wrap Around: when enabled, the search loops around the file, from bottom to top
  • \n
  • Search Selection: when enabled, the search only considers code that you've currently highlighted
  • \n
\n

Search and Replace

\n

Building on the features of quicksearch, search and replace allows you to replace segments of code in your file. You can again continue to use regular expressions, keeping in mind the groupings are prefixed with a dollar sign, i.e. $1.

\n

Replacing offers two more options:

\n
    \n
  • Preserve Case: if enabled, case is preserved while replacing content
  • \n
  • Highlight Matches: if enabled, the new replaced matches are highlighted in the document
  • \n
\n

Find in Files

\n

In order to search across a set of files, you'll want to use the Find in Files feature. Here, you can search of a string or regular expression, within your entire workspace or a single directory. You can also filter based on extensions, like *.js or *.rb.

\n

Find in files offers some of the same search options as quicksearch:

\n
    \n
  • Regular Expressions: when enabled, your search is treated as a regular expression
  • \n
  • Match Case: when enabled, your search takes capitalizations seriously
  • \n
  • Whole Words: when enabled, your search will only be considered for whole words
  • \n
\n

One more feature of find in files is the ability to render search results either in the console or the IDE. You can fold results to keep them out of the way, or, edited the file if you're working down a list:
\"Search

\n\n
" - }, - { - "filename": "multiple_cursors", - "mtime": 1412172002000, - "pageTitle": "Multiple Cursors", - "contents": "\n

Multiple Cursors

\n

Multiple cursors is one of the most useful features available in the Cloud9 editor. You can use multiple cursors to perform tasks like rename several variables or members at once, break up lists separated by commas, or insert the same text in multiple locations.

\n

\"Showing

\n

Multiple selections can be copied and pasted, and you can insert or remove entire lines in several locations.

\n

There are several ways to get access to mutliple cursors:

\n
    \n
  • Via keyboard shortcuts, you can create a new cursor in any direction
  • \n
  • By holding the Alt key, clicking the mouse, and dragging the cursor up or down in the editor
  • \n
  • Through the menu bar at Selection > Multiple Selections
  • \n
\n

One of the best capabilities is the ability to instantly select the next instance of your currently highlighted section. This is especially useful for refactoring several parts of the code at once. To do this, press Ctrl-Alt, followed by the right (or left) arrow key to navigate around in the code.

\n\n
" - }, - { - "filename": "supported_languages", - "mtime": 1412172002000, - "pageTitle": "Supported Languages", - "contents": "

Supported Languages

\n

Cloud9 IDE has varying levels of support for different programming languages. \nUsually you will at least have Syntax Highlighting in the editor and the ability\nto run apps from the Terminal.

\n

Syntax Highlighting

\n

Cloud9 IDE develops and builds on Ace, an \neditor for writing code online. Cloud9's Ace editor currently supports \nhighlighting for about 100 programming languages, and any changes made to Ace are \nreflected back into Cloud9 IDE.

\n

The list of supported languages is growing, and you can get the full list from \nthe View > Syntax menu. Feel free to create an issue in the Ace repository \nfor new requests, or add your own syntax highlighting mode.

\n

See Syntax Highlighting & Themes for more \ninfo.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n

Running apps

\n

The Run panel currently supports running the following by default:

\n
    \n
  • Apache httpd (PHP, HTML)
  • \n
  • Node
  • \n
  • Python
  • \n
  • Ruby
  • \n
  • Ruby on Rails
  • \n
  • Go
  • \n
  • CoffeeScript
  • \n
  • Julia
  • \n
  • Mocha
  • \n
  • Shell script
  • \n
\n

If you'd like to run any other language, simply create a new "Runner".

\n

You can also do so from the Terminal. \nEach workspace is an Ubuntu VM with the standard tools like bash, make, \ngcc, vim, java SDK or perl pre-installed.

\n\n
" - }, - { - "filename": "syntax_highlighting_themes", - "mtime": 1412172002000, - "pageTitle": "Syntax Higlighting and Themes", - "contents": "\n

Syntax Higlighting and Themes

\n
\n\n

Cloud9 IDE develops and builds on Ace, an editor for writing code online. Ace supports over two dozen different themes for highlighting your code, and any changes made to Ace are reflected back into Cloud9 IDE.

\n

You can change your current theme by going to View > Themes, and selecting from one of the many options. By hovering over the menu items, you'll be able to get a preview of the theme. To activate a theme you like, just click on its name.

\n

The IDE contains the following themes:

\n
    \n
  • Chrome
  • \n
  • Clouds
  • \n
  • Clouds Midnight
  • \n
  • Cobalt
  • \n
  • Crimson Editor
  • \n
  • Dawn
  • \n
  • Eclipse
  • \n
  • Idle Fingers
  • \n
  • Kr Theme
  • \n
  • Merbivore
  • \n
  • Merbivore Soft
  • \n
  • Mono Industrial
  • \n
  • Monokai
  • \n
  • Pastel On Dark
  • \n
  • Solarized Dark
  • \n
  • Solarized Light
  • \n
  • TextMate
  • \n
  • Tomorrow
  • \n
  • Tomorrow Night
  • \n
  • Tomorrow Night Blue
  • \n
  • Tomorrow Night Bright
  • \n
  • Tomorrow Night Eighties
  • \n
  • Twilight
  • \n
  • Vibrant Ink
  • \n
\n

By default, files are highlighted based on their file extension. You can change this by going to View > Syntax, and selecting a different context. This forces a single file to use a different highlighter.

\n

We support highlighting for at least the following languages, and many more:

\n
    \n
  • CoffeeScript
  • \n
  • ColdFusion
  • \n
  • C#
  • \n
  • CSS
  • \n
  • Go
  • \n
  • Groovy
  • \n
  • haXe
  • \n
  • HTML
  • \n
  • C/C++
  • \n
  • Clojure
  • \n
  • Java
  • \n
  • JavaScript
  • \n
  • JSON
  • \n
  • LaTeX
  • \n
  • LESS
  • \n
  • Liquid
  • \n
  • Lua
  • \n
  • Markdown
  • \n
  • OCaml
  • \n
  • Perl
  • \n
  • pgSQL
  • \n
  • PHP
  • \n
  • Powershell
  • \n
  • Python
  • \n
  • Ruby
  • \n
  • OpenSCAD
  • \n
  • Scala
  • \n
  • SCSS
  • \n
  • SH
  • \n
  • SQL
  • \n
  • SVG
  • \n
  • Text
  • \n
  • Textile
  • \n
  • XML
  • \n
  • XQuery
  • \n
  • YAML
  • \n
\n

We are always adding new themes and new languages to support, so check the menu often! Since we use Ace to provide syntax highlighting, feel free to log an issue there for new requests.

\n\n
" - }, - { - "filename": "uploading_downloading", - "mtime": 1412172002000, - "pageTitle": "Uploading and Downloading Workspace Files", - "contents": "\n

Uploading and Downloading Workspace Files

\n

Cloud9 IDE allows you to easily add files to your curent workspace at any time. You can drag and drop files from your computer directly into the Project Files pane, and the IDE will add them to your project. Google Chrome users can also drag entire folders into the IDE.

\n

If a file transfer is halted for some reason--say, if you lose your internet connection--the upload resumes once the connection returns. As the files transfer, the IDE lets you know the current status of the overall transfer, as well as the status of each file being uploaded:

\n

\"Uploading

\n

You can also get an exact copy of your workspace to save on your computer. By going into File > Download Project, you will be provided with a Zip file containing the entirety of your project.

\n\n
" - }, - { - "filename": "frameworks_drupal", - "mtime": 1416998221000, - "pageTitle": "Framework: Drupal", - "contents": "\n

Framework: Drupal

\n

For Drupal there are some installation guides around which tell you to install PHP first, but that's not necessary with Cloud9.\nYou don't need to install MySQL either, it is already preinstalled in PHP workspaces. \nJust make a new workspace, choose PHP, go to the Terminal, and execute the following:

\n
cd $HOME\ncurl -O http://ftp.drupal.org/files/projects/drupal-7.30.tar.gz\ntar xvf drupal-7.30.tar.gz\nmv drupal-7.30/* workspace/\nmv drupal-7.30/.htaccess workspace/\ncd $HOME/workspace\nmysql-ctl install\nmysql-ctl start\nmysql-ctl status
\n

Open the file install.php in the file tree, and while opened, click on the "Run Project" button in the menu bar on top of the IDE.\nAn URL will be shown at the bottom of the page, something like "https://drupal-c9-lcipriani.c9.io/", but with your username and workspace name in it.

\n

Copy the url in a new browser tab and you will see the install page of Drupal

\n

You can now proceed with the installer

\n

\"Drupal

\n

Now be careful inserting the correct values for the database. You need to change the values as follows:

\n
user: yourusername\ndatabase: c9\nhost: 127.0.0.1
\n

Note:

localhost will not work, while 127.0.0.1 will.\n\n
\n

Open the Advanced Options in the database settings page as shown in the screenshot:

\n

\"Drupal

\n

Now fill the form with the correct site information:

\n

\"Drupal

\n

Continue the setup and enjoy your website!

\n

Note:

if you are not able to load CSS, access your website WITHOUT using https, but use simple http; in another tab open the url: http://drupal-c9-lcipriani.c9.io/\n\n
\n

\"Drupal

\n\n
" - }, - { - "filename": "git_blame", - "mtime": 1412172002000, - "pageTitle": "Git Blame", - "contents": "\n

Git Blame

\n

Note:

this feature is deprecated\n\n
\n
\n\n
\n\n

When you're working with git repositories, it's helpful to know who made a commit to a particular piece of code. As it turns out, git has a feature called git blame that we've integrated directly into Cloud9 IDE.

\n

By using git blame, you'll be able to instantly discover who edited certain lines of code, when they edited it, and what their commit message at the time was. Clicking on a git commit also highlights other lines of code changed at the same time. To launch the git blame feature, open a file and navigate to Tools > Git > Blame.

\n\n
" - }, - { - "filename": "zen_mode", - "mtime": 1412172002000, - "pageTitle": "Activating Zen Mode", - "contents": "\n

Activating Zen Mode

\n

Note:

this feature is deprecated\n\n
\n
\n\n
\n\n

Zen mode is a full screen coding environment designed to make you more productive. It essentially removes all the additional UI elements in Cloud9 IDE, and places you in a harmonious relationship with your code.

\n

To activate zen mode, simply hover over the upper right corner of the code editor, and click the icon that appears. Keep in mind that you'll need to have a file open before you can launch zen mode. You can resize your window by holding and dragging the left or right border.

\n

To get out of zen mode, hover over the same corner and click the same icon.

\n

You can also enter and exit zen mode via keyboard shortcuts, command line, or from the menu bar at View > Zen Mode.

\n\n
" - }, - { - "filename": "frameworks_ionic", - "mtime": 1412172002000, - "pageTitle": "Framework: Ionic", - "contents": "\n

Framework: Ionic

\n

Ionic is an open source front-end framework for developing hybrid mobile apps with HTML5.

\n

Create a Ionic app as follows:

\n
    \n
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. \n
  3. Open a Terminal, or use the pre-existing one at the bottom
  4. \n
  5. Run the following commands in the Terminal:

    \n
     $ npm install -g cordova ionic\n $ ionic start myApp sidemenu\n $ cd myApp\n $ ionic serve $PORT
    \n
  6. \n
  7. Click the "Preview" button in the top menu in the IDE, and choose "Preview with Web Server". This will open the Preview window for your running app.

    \n
  8. \n
\n\n
" - }, - { - "filename": "frameworks_ghost", - "mtime": 1416995769000, - "pageTitle": "Framework: Ghost", - "contents": "\n

Framework: Ghost

\n

Ghost is a simple, powerful publishing platform that \nallows you to share your story with the world.

\n

Create a Ghost blog as follows:

\n
    \n
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. \n
  3. Open a Terminal, or use the pre-existing one at the bottom
  4. \n
  5. Run the following commands in the Terminal:

    \n
     $ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip\n $ unzip -uo ghost.zip -d .\n $ rm ghost.zip\n $ npm install --production
    \n
  6. \n
  7. Adapt the config.js file to the Cloud9 environment. Change the following keys:

    \n
     config: {\n     development: {\n         url: 'https://' + process.env.C9_HOSTNAME,\n     },\n     server: {\n         host: process.env.IP,\n         port: process.env.PORT\n     }\n }
    \n
  8. \n
  9. Run Ghost by typing npm start in the console or by opening index.js and\nhitting the run button.

    \n
  10. \n
  11. Click the "Preview" button in the top menu in the IDE, and choose \n"Preview with Web Server". This will open the Preview window for your newly setup Ghost blog
  12. \n
\n

Change the URL to /ghost and create your admin user to login to the Ghost admin interface

\n

Note:

These instructions are based on the official Ghost Installation Guide\n
\n\n
" - }, - { - "filename": "frameworks_joomla", - "mtime": 1412172002000, - "pageTitle": "Joomla", - "contents": "

Joomla

\n

Joomla is a popular open source CMS. \nInstalling Joomla is very straightforward, but there are just a few quirks to keep in mind, which we describe below.

\n

Note:

all instructions here are based on Joomla v3.x.\n\n
\n

Download Joomla

\n
    \n
  1. Create a Cloud9 workspace of type "Custom" or "PHP"
  2. \n
  3. Download and Unzip Joomla from the Terminal. You can find the latest version on the Joomla website

    \n
     wget http://joomlacode.org/gf/download/frsrelease/19665/160049/Joomla_3.3.3-Stable-Full_Package.zip\n unzip Joomla*.zip\n rm Joomla*.zip
    \n
  4. \n
\n

Start the database

\n

Joomla requires a MySQL database to connect to. MySQL is pre-installed in your workspace, so just execute these commands:

\n
mysql-ctl install\nmysql-ctl start
\n

... and then note the credentials to use in the configuration of Joomla later on.

\n

Install Joomla

\n

To run the Joomla installer, open index.php and run it with the "Run" (or "Run Project") button at the top of the IDE.\nNext, click the URL that's displayed in the Run panel, which looks something like https://joomla-c9-username.c9.io/installation/index.php#. \nThis will open up the Preview window with the installer.

\n

Now, here comes the quirky part: the installer will not work properly if it's loaded over HTTPS, as the Cloud9 Preview window does by default.\nSo, in order to make the Joomla installer work, do the following:

\n
    \n
  1. Pop out the Preview by clicking the Popout icon \"Preview (or copy & load the URL in a browser tab)
  2. \n
  3. Change the URL from https:// to http:// and load it
  4. \n
\n

Now you should be able you to get through the installer successfully.

\n

Main configuration

\n

The main Configuration screen should look like this:

\n

\"Joomla

\n

Enter whatever values you'd like here.

\n

Database

\n

The second quirky and important thing to keep in mind in the Database section, is to use Host Name "0.0.0.0" instead of "localhost".

\n

So use values like shown in the screenshot below:

\n

\"Joomla

\n

Finally

\n

Use whatever settings you'd like in the final installation screen, and after it completes, have Joomla remove the Installation folder for safety.

\n

That's it, you're done and your Joomla setup should run fully on Cloud9!

\n\n
" - }, - { - "filename": "revisions", - "mtime": 1412172002000, - "pageTitle": "Revisions", - "contents": "\n

Revisions

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n
\n\n
\n\n

Every time you save a file on Cloud9, a diff of any changes made to it is saved by the server. Over time, you can view these file revisions as content is added and removed from your files. You can also restore a file to any previously saved state; you'll never have to worry about losing your work ever again!

\n

To access file revisions, you can either go to File > File Revisions History, or type Cmd-B on Mac or Ctrl-B on Linux/Windows. This will pop open the Revisions History panel. Red lines indicate lines that were removed; green lines indicate lines that were either added or changed.

\n

At the bottom of the panel, there's a checkbox for showing all of a file's changes. Files changes that occur relatively soon to one another--say, a few seconds--are grouped by the revisions panel as one "change." If you prefer to see every single change as an individual entry, enable the Show all file changes checkbox.

\n

To restore a file to a previous revision, simply click the revisions button for that entry: \"Revisions

\n\n
" - }, - { - "filename": "frameworks_koa", - "mtime": 1412172002000, - "pageTitle": "Framework: Koa", - "contents": "\n

Framework: Koa

\n

Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.

\n

To get started with a Koa app, first create a workspace and choose either the Node.js type, or a Custom workspace type for a clean workspace.

\n

Koa.Js makes use of the new generator feature in javascript ECMA 6. \nThis feature is support in Node from 0.11 and up by toggling the --harmony flag. \nBy default Cloud9 runs Node v0.10.x or v0.8.x, depending on your setup, so we first need activate Node version 0.11.x.

\n

Open a Terminal, or using the pre-existing one at the bottom and execute the following in your Terminal:

\n
nvm use 0.11
\n

Next, we need to install Koa itself:

\n
npm install koa
\n

Now we can create a simple Koa.Js server.\nCreate a server.js file in your root folder with this code:

\n
var koa = require('koa');\nvar app = koa();\n\napp.use(function *(){\n    this.body = '<h1>Hello from Koa.Js</h1>';\n});\n\napp.listen(process.env.PORT);
\n

If you now press the Run button on top of the IDE, you will see some errors, as the runner/debugger defaults to 'Node (default)', which is Node version 0.10.x or 0.8.x.

\n

Luckily all you need is to create a Runner file so Cloud9 can run Node 11.x in harmony mode and thereby support generators.

\n

In the Run panel below, click the 'Runner' text input and choose 'New Runner'. \nIn the new Runner file that's opened, save the following code as 'Node 0.11.x.run':

\n
// This file overrides the built-in Node 0.11.x runner\n// For more information see http://docs.c9.io:8080/#!/api/run-method-run\n{\n  \"cmd\": [\n    \"bash\",\n    \"--login\",\n    \"-c\",\n    \"nvm use 0.11 > /dev/null; node --harmony ${debug?--nocrankshaft --nolazy --debug-brk=15454} '$file' $args\"\n  ],\n  \"debugger\": \"v8\",\n  \"debugport\": 15454,\n  \"info\": \"Your code is running at \\\\033[01;34m$url\\\\033[00m.\\n\\\\033[01;31mImportant:\\\\033[00m use \\\\033[01;32mprocess.env.PORT\\\\033[00m as the port and \\\\033[01;32mprocess.env.IP\\\\033[00m as the host in your scripts!\\n\"\n}
\n

Note:

alternatively, you can check 'Show Hidden Files' in your workspace directory tree (the small gear in the upper right corner), and create a new file in the '.c9/runners' folder called 'Node 0.11.x.run' with this code.\n\n
\n

Let's run server.js with this new configuration; in the Run panel on the bottom, choose your new 'Node 0.11.x' Runner, and press Run again.

\n

You Koa.Js server should now be up and running.

\n

Now if you click the Preview button in the top menu in the IDE, and choose "Preview with Web Server", this will open the Preview window for your running app.

\n

(Credits go to Tom at http://kyorcode.blogspot.nl/2014/08/running-koajs-in-cloud9.html)

\n\n
" - }, - { - "filename": "frameworks_express", - "mtime": 1416998221000, - "pageTitle": "Framework: Express", - "contents": "

Framework: Express

\n

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

\n

To get started with an Express app, first create a workspace and choose either the Node.js type, or a Custom workspace type for a clean workspace. Open the new workspace (or an existing one) to follow the instructions below.

\n

Installation

\n

First we'll install the Express project generator and generate an application stub:

\n
$ npm install -g express-generator\n$ express -f .\n$ npm install
\n

You might want to take a look at package.json and update the application name from the default workspace to something more fitting.

\n

Running

\n

Now you have a fully configured express application already. You can run it from the terminal using:

\n
$ bin/www
\n

Now if you click the Preview button in the top menu in the IDE, and choose "Preview with Web Server", this will open the Preview window for your running app.

\n

Creating a Run Configuration

\n

In order to make life easier you can create a run configuration for express.

\n
    \n
  1. Click Run -> Run Configurations -> Manage ...
  2. \n
  3. Click Add New Config
  4. \n
  5. In the run panel fill in Express as name, bin/www as the command and Node 0.10.x as the runner.
  6. \n
  7. You can optionally make this run configuration the default runner by clicking Set As Default. If you do so then clicking the run button will always run the app and not the currently opened file.
  8. \n
\n

The finished run configuration should look something like this

\n

\"Express

\n\n
" - }, - { - "filename": "frameworks_laravel", - "mtime": 1412172002000, - "pageTitle": "Framework: Laravel", - "contents": "\n

Framework: Laravel

\n

For Laravel there are some installation guides around which tell you to install PHP first, but that's not necessary with Cloud9.\nJust make a new workspace, choose PHP, go to the Terminal, and execute the following:

\n
rm README.md php.ini hello-world.php\ncomposer create-project laravel/laravel ./laravel --prefer-dist\nshopt -s dotglob\nmv laravel/* ./\nrm -rf laravel
\n

As lavarel is serving its content from the public directory we need to modify the apache config:

\n
sudo vi /etc/apache2/sites-enabled/001-cloud9.conf
\n

Then do the following:

\n
// Change this line\nDocumentRoot /home/ubuntu/workspace\n\n// To following\nDocumentRoot /home/ubuntu/workspace/public
\n

Run the project with the "Run Project" button in the menu bar on top of the IDE.\nIf you click the URL that appears in the Run panel below (in the shape of 'https://laravel-c9-username.c9.io/'), you can preview your new Laravel app.

\n

\"Run

\n\n
" - }, - { - "filename": "frameworks_meteor", - "mtime": 1412172002000, - "pageTitle": "Framework: Meteor", - "contents": "\n

Framework: Meteor

\n

Meteor is an open-source platform for building web apps.

\n

Create a Meteor app as follows:

\n
    \n
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. \n
  3. Open a Terminal, or using the pre-existing one at the bottom
  4. \n
  5. Run the following commands in the Terminal:

    \n
     curl https://install.meteor.com/ | sh\n meteor create ./my_cool_app\n cd my_cool_app/\n meteor --port $IP:$PORT
    \n
  6. \n
  7. Click the Preview button in the top menu in the IDE, and choose "Preview with Web Server". This will open the Preview window for your running app.

    \n
  8. \n
\n

Note:

Alternatively, for the last step, click on the link that's displayed in the terminal, and change it in the resulting Preview to http://127.0.0.1:8080.
\n\n
" - }, - { - "filename": "frameworks_symfony2", - "mtime": 1412172002000, - "pageTitle": "Framework: Symfony2 ", - "contents": "

Framework: Symfony2

\n

Symfony is one of the leading PHP Webframeworks. It is Open-Source and built on top of the Symfony Components.

\n

Getting started

\n
    \n
  1. Create a Cloud9 workspace of the type "Custom" or "PHP"
  2. \n
  3. Install the Intl extension for PHP that is required in most of the Symfony2 projects

    \n
     sudo apt-get install php5-intl
    \n
  4. \n
  5. Set a valid PHP timezone

    \n
     echo 'date.timezone = UTC' | sudo tee --append /etc/php5/apache2/php.ini
    \n
  6. \n
  7. Starting MySQL-Server

    \n
     sudo mysql-ctl install\n sudo mysql-ctl start
    \n
  8. \n
\n

Create a Symfony-Project

\n

Open your Terminal and execute the following to create a new Symfony-Project\nYou need the first line only if you used the PHP Project type for your workspace.

\n
    rm README.md php.ini hello-world.php\n    composer create-project symfony/framework-standard-edition symfony/ \"2.5.*\"\n    mv symfony/{*,.*} ./ \n    rm -rf symfony
\n

The create-project composer command will ask for a few parameters, the only one you need to pay special attention is the database-host parameter.

\n

Running the project

\n

There is a IP address checking in the web/app_dev.php file. To disable this check please remove the following lines

\n
    // This check prevents access to debug front controllers that are deployed by accident to production servers.\n    // Feel free to remove this, extend it, or make something more sophisticated.\n    if (isset($_SERVER['HTTP_CLIENT_IP'])\n        || isset($_SERVER['HTTP_X_FORWARDED_FOR'])\n        || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))\n    ) {\n        header('HTTP/1.0 403 Forbidden');\n        exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');\n    }
\n

After that add a new run configuration in Menu Run > Run Configurations > New Run Configuration. Select Apache http (PHP, HTML) as a Runner and web/app_dev.php as Command.\nThat's it after you hit Run your server will start up and you can access your new Symfony project.

\n\n
" - }, - { - "filename": "run_an_application", - "mtime": 1412172002000, - "pageTitle": "Run an application", - "contents": "

Run an application

\n

On Hosted and SSH workspaces, Cloud9 provides two ways to run your application:

\n
    \n
  1. Using the Run panel with built-in Runners for many languages
  2. \n
  3. From a Terminal
  4. \n
\n

Method 1: Use the Run panel

\n

First, open the file you want to run.

\n

Next, click on the Run button in the top menu bar in the IDE.

\n

\"Run

\n

The Run button acts as a sort of shortcut to the Run panel, which will appear by default in the bottom of the IDE when you run a file.\nThis automatically runs the currently active file, and it will guess which Runner to use based on the extension of the file.

\n

When you're ready to stop your app, click on the Stop Button button in the menu bar at any time, or from the Run panel below.

\n

\"Run

\n

On the Run panel, you'll notice a few more options you can set. \nFilling these textboxes out creates a Run Configuration.

\n
    \n
  • Name: the name of your run scenario
  • \n
  • Command: the command you want to run; this is usually the location of your running file in your project, but it also allows you to provide any additional command line arguments you want to pass to your app
  • \n
  • Runner: defines how you want your code to be run. A wide range of Runners is available by default, from Apache to Node.js and Shell scripts, and you can define your own.
  • \n
  • CWD: Set the current working directory to start from
  • \n
  • Environment: Set environment variables
  • \n
  • \n
\n

Tip:

If you can't find the Runner you need from the default set, you can create your own custom Runner.\n\n
\n

For some default runners like Node.js, it's an option to Run in debug mode, which indicates that you want to run the current code through the debugger. \nThis will reveal (or collapse) the debugging tools panel described in Running and Debugging your code.

\n

Method 2: From the Terminal

\n

The built-in Terminal provides access to all underlying system commands, including your Runners such as Node.js. \nSimply open up a Terminal from the "+" sign, or use CMD+T (Mac) / Control+T (Windows), and then execute the command you need to run your app, e.g. node server.js.

\n

(Pre-)View your application

\n

To find out where your application is running you can do two things:

\n
    \n
  1. Use the Preview button on the top to preview one of your files. The URL in the browser bar in the Preview can also be used in any browser tab/window.
  2. \n
  3. Use the Share button on the top to figure out the URLs of running Application and the Preview. The Editor URL is only used to share your entire Cloud9 workspace to collaborate on code.
  4. \n
\n

Tip:

If you can't find how to preview your running app, try to use port 8080 in the URL.
\n\n
" - }, - { - "filename": "setup_a_database", - "mtime": 1412172002000, - "pageTitle": "Set up a database", - "contents": "

Set up a database

\n

MySQL

\n

From the Terminal, run the following command:

\n
$ mysql-ctl install
\n

The output will be:

\n
MySQL 5.5 database added.  Please make note of these credentials:\n\nRoot User: username\nDatabase Name: c9
\n

Now you can connect to the database using the ip 127.0.0.1 and the default port 3306.\nYou can also test it using our tool from the Terminal:

\n
$ mysql-ctl cli\nWelcome to the MySQL monitor.  Commands end with ; or \\g.\nYour MySQL connection id is 24\nServer version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu)\n\nCopyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.\n\nOracle is a registered trademark of Oracle Corporation and/or its\naffiliates. Other names may be trademarks of their respective\nowners.\n\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\n\nmysql>  show databases;\n+--------------------+\n| Database           |\n+--------------------+\n| information_schema |\n| c9                 |\n| mysql              |\n| performance_schema |\n+--------------------+\n4 rows in set (0.15 sec)
\n

MongoDB

\n

From the Terminal, run the following command:

\n
$ mongod --bind_ip=$IP --nojournal
\n

The output will include:

\n
...\nwaiting for connections on port 27017
\n

Now you can open the mongo shell in a new Terminal, running following command:

\n
$ mongo
\n

To stop the MongoDB instance press Control+C in the Terminal where mongod is running.\nNow have a look at the currently used database:

\n
$ mongo\nmongo> db\ntest
\n\n
" - }, - { - "filename": "dashboard", - "mtime": 1412172002000, - "pageTitle": "The Dashboard", - "contents": "\n

The Dashboard

\n

After you have logged into Cloud9, you are placed into your account's dashboard. From here, you can edit your profile and manage workspaces you have access to.

\n

\"An

\n

In the top-left corner of the dashboard, your username is displayed. Within the user context, you can view your user profile by clicking on Your Account:

\n

\"A

\n

The user profile contains:

\n
    \n
  • Your recent activities, including a list of actions you have recently performed, such as cloning, opening, and deleting projects
  • \n
  • Your add-on services, which you've integrated into Cloud9. Currently, these are GitHub and Bitbucket.
  • \n
  • Your account settings, where you're given the following choices:
      \n
    • Change your password
    • \n
    • Show your SSH key
    • \n
    • Upgrade to premium (or, downgrade from it)
    • \n
    • Delete your account
    • \n
    \n
  • \n
\n

The gravatar that is used for your profile is handled by gravatar.com. If you don't have a gravatar yet, Cloud9 IDE uses an uninspiring default.

\n

In the left panel, you'll find a list of various projects associated with your account. These are:

\n
    \n
  • My Projects: these are projects you've created or cloned, and own
  • \n
  • Shared With Me: these are projects shared with you by other Cloud9 users
  • \n
  • Recently Visited: these are projects you've seen lately
  • \n
  • Projects on GitHub: a list of your uncloned public and private GitHub projects
  • \n
  • Projects on Bitbucket: a list of your uncloned public and private Bitbucket projects
  • \n
\n

Clicking on the \"Project next to MY PROJECTS lets you:

\n
    \n
  • Create a new project
  • \n
  • Clone from URL
  • \n
\n

\"Creating

\n

For more information on creating new workspaces, see this section of the documentation.

\n

You can always filter your project list by entering text in the text bar to find matching projects. If you need to update the list, click the refresh icon at the bottom of the panel: \"Refresh

\n\n
" - }, - { - "filename": "create_a_workspace", - "mtime": 1412172002000, - "pageTitle": "Create a Workspace", - "contents": "\n

Create a Workspace

\n

Cloud9 supports three types of workspaces:

\n
    \n
  1. Hosted
  2. \n
  3. FTP
  4. \n
  5. SSH
  6. \n
\n

"Hosted" is the best choice for most people, so in this short "Getting Started" article we'll only describe this option; for other options please read the full Creating a new workspace article.

\n

The first step for creating a new workspace is click the "CREATE NEW WORKSPACE" button in your Dashboard:

\n

\"New

\n

At this point, you'll encounter two choices: Create a new workspace and Clone from URL. \nIn this article we'll only describe the Create a New Workspace option, which allows you to create any of the previously mentioned types of workspaces (hosted, FTP, or SSH).

\n

After clicking on Create a new workspace, you're taken to the screen below:

\n

\"Options

\n

First, let's enter a workspace name.\nDepending on whether you have a Free of Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with).

\n

After this, choose the type of workspace you want to create:

\n\n

Choose the "Hosted" workspace type to start from scratch with a 'Custom' workspace, or simply pick a pre-configured environment like Node.js, WordPress, or Python/Django, and immediately start developing your app.\nThis way you don't need to spend valuable development time on system setup and maintenance, as we maintain it, and you control it.

\n

\"Options

\n

As it's powered by a full Linux Ubuntu environment, hosted workspaces allow you to install any package (sudo apt-get install package), run git commands from the console to push your changes to a GitHub repo or a Bitbucket git repo, etcetera.

\n

Now press Create. That's it! You can now see your new workspace in the dashboard:

\n

\"New

\n

Now, just click Start Editing to get started!

\n

Next up, read how to run an application and set up a database.

\n\n
" - }, - { - "filename": "ide_overview", - "mtime": 1412172002000, - "pageTitle": "IDE Overview", - "contents": "

IDE Overview

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n

Cloud9 IDE can be thought of as being divided into the following components:

\n

\"IDE

\n

Throughout the documentation, we'll refer to these sections by name. We can identify several distinct areas in the editor:

\n
    \n
  • The top menu bar is the uppermost area, with easy access to a variety of menus
  • \n
  • The project bar on the left lets you manipulate various aspects of your project, including its active files, preferences, and choices for deployment
  • \n
  • The panel displays views according to what's been selected in the project bar
  • \n
  • The toolbar is on the far right, where you can find tools used when debugging your code. Projects that are open with collaboration also make use of this panel for chatting.
  • \n
  • The code editor is the main area where you write your code.
  • \n
  • The console is the bottom area of the window. It's an expandable area that can act like a desktop terminal to enter command line input (like ls or mkdir). It also displays output provided by your program's print statements (like console.log()), as well as providing an area for search results
  • \n
\n

The Project Bar, Tool Bar, and Console are powerful features, so their documentation is provided separately. We'll talk about the rest of the editor below:

\n

Remember: nearly every UI element can be collapsed, in order to provided a more harmonious coding experience. For example, clicking on the buttons in the upper left of the editor allows you to hide the panels and top menu bar:
\"Hiding

\n

The Top Menu Bar

\n

\"A

\n

In this section, you can find the usual menus for creating and saving files, changing your view, applying a new theme for the editor, and switching between windows.

\n

In the middle of the menu bar you'll find the debug button: \"The. This is used for running and debugging your code. For more information, see the section on "Running and Debugging Your Code"..

\n

\n

The preview button \"The provides you with a look of what the currently active file would look like in the browser. For text files, this is usually just the raw text, but certain files, like HTML or XML, render as the actual markup.

\n

The autosave button indicates the status of your current saves: \"Autosave. Files are saved automatically by Cloud9 IDE, and every revision is made available for you to browse through. For more information, see the section on revisions and saving.

\n

On the far right of the menu, near the Cloud9 IDE logo, there are two more icons: one to return to the dashboard, and one to return to the Cloud9 IDE homepage.

\n

The Code Editor

\n

This is where most of the action happens. Every file you open appears here as a tab. You can open a new file easily by clicking on the \"Tab button to the right of the last tab. Cloud9 IDE offers syntax highlighting for over two dozen programming languages.

\n

The code editor supports a large number of keyboard shortcuts to increase your productivity. For an up-to-date list of these within the IDE, simply go to Help > Keyboard Shortcuts.

\n

If you hover over to the upper-right corner, you can activate zen-mode, which is a full screen coding environment.

\n

At the lower-right corner, you can find the status bar.

\n\n
" - }, - { - "filename": "share_a_workspace", - "mtime": 1412172002000, - "pageTitle": "Share a workspace", - "contents": "

Share a workspace

\n

As you develop your application, often you just want to quickly demo your work-in-progress to a colleague, customer, or friend. \nOr you want to pull in a fellow dev to debug an issue, or to pair program.

\n

Cloud9 enables you to do just these things, easily: share your entire development environment, the running application, or just a preview of your running application. \nHere we describe how to access these options, and how to use each.

\n

Share dialog

\n

The best place to start sharing is from the dedicated "Share" dialog. \nAccess it via the "Share" button on the right top of the IDE, or via the menu in Window > Share...

\n

\"Share

\n

Here's what you see when you pull up the Share dialog:

\n

\"Share

\n

Links to share

\n
    \n
  • Editor: see section "Share your development environment"
  • \n
  • Application: see section "Share your application"
  • \n
  • \n
\n

If you enable the "Public" checkbox for an option, it will make the URL accessible for anyone with the URL.\nFor public workspaces all these URLs are public by default, but for private workspaces you have to enable them manually.

\n

Who has access

\n

This section refers to people you have specifically granted access to your entire development environment.\n(R) gives Read access only to that person: the ability to open and view files, and to run your code.\n(RW) or "Read/Write" also gives that person the ability to write to files.

\n

Invite people

\n

This section enables you to invite people to your workspace and immediately set if they have just "Read" or "Read+Write" rights. \nYou can invite people by their email address or Cloud9 username. \nYou can also choose whether or not send an automatic email to that person that they've been invited to your workspace.

\n

Share your development environment

\n

Cloud9's Collaboration features allow you to share your entire development environment so you can work on code together, much like working on a document in Google Docs.\nYou'll actually be able to see each other's cursor as you type, run your app, share the Terminal(s), and talk in the group chat.\nSee the screenshot below for what this looks like:

\n

\"Collaboration

\n

In order to share your entire development environment, do one of the following:

\n
    \n
  1. Make the URL publicly available to everyone: check the "Public" checkbox for the "Editor" in the "Links to Share" section.
  2. \n
  3. Choose to share only with specific people: invite them from the "Invite people" section.
  4. \n
  5. Grant/revoke access rights in the "Who has access" section.
  6. \n
\n

If someone asks for either Read or Read+Write access to your workspace, you can accept or deny them from the Collaboration panel on the right.

\n

Note:

alternatively you can just share the URL to your workspace from the browser's URL bar and accept members as they request access to your workspace\n\n
\n

Share your application

\n

If you Run your application the result can be shared by copying the URL from the dialog. \nThis URL can only be viewed if it's made Public by checking the "Public" checkbox next to the "Application" in the "Links to share" section.

\n

People who have full read access to your workspace (as defined in the "Who has access") can view this URL whether it's public or not.

\n

Note:

alternatively you can just share the URL to your running app from the Preview panels' URL bar\n\n
\n

Share a Preview

\n

If you Preview a file in your application, it can be shared by copying the URL from the dialog. \nThis URL can only be viewed if it's made Public by checking the "Public" checkbox next to the "Preview" in the "Links to share" section.

\n

People who have full read access to your workspace (as defined in the "Who has access") can view this URL whether it's public or not.

\n

Note:

alternatively you can just share the URL to your Preview from the Preview panels' URL bar\n\n
\n

Tip:

If you can't find how to preview your running app, try to use port 8080 in the URL.
\n\n
" - }, - { - "filename": "console", - "mtime": 1412172002000, - "pageTitle": "The Console", - "contents": "

The Console

\n

Note:

this feature is deprecated\n\n
\n

The Console is at the bottom of the IDE. It's where you can enter command line input, view output from your program, and push and pull your files between your code repositories.

\n

Note:

The Console contains a full-fledged terminal, which provides you with a TTY interface for direct access to the machine that Cloud9 is running on.\n\n
\n

Available Commands

\n

The terminal can perform all Unix commands, and allows for path autocompletion by hitting Tab.

\n

For instance, you can use mercurial commands (hg) and git commands (git) to communicate with the system, and to push your code between repositories. Typing hg or git shows the complete list of commands that are available for these services. For more information about these commands, please check their respective documentation:

\n\n

To use mercurial commands on the project you are working on, you must have a mercurial project set up; the same holds true for git. Follow these links to learn more about how to set up these project in Cloud9:

\n\n

Output

\n

The output tab in the Console shows information whenever a user is running or debugging a program. The content is similar to the output of a desktop terminal:
\"Screenshot

\n

The output tab also displays the error and additional information that can improve your coding quality. You can use the Console to output results from your running application, just like a regular terminal.

\n

As your process runs, you'll see a message similar to this one indicating that Cloud9 is running something in the background: \"Running

\n

If you hover over this message, you can opt to cancel the process by clicking on the button: \"Cancelling

\n\n
" - }, - { - "filename": "frameworks_angularjs", - "mtime": 1412172002000, - "pageTitle": "Framework AngularJS", - "contents": "\n

Framework AngularJS

\n

AngularJS lets you write client-side web \napplications as if you had a smarter browser.

\n

Follow these steps to create an AngularJS application using the official project\ntemplate:

\n
    \n
  1. Create a workspace and choose the PHP workspace type
  2. \n
  3. Open a Terminal, or using the pre-existing one at the bottom
  4. \n
  5. Run the following commands in the Terminal:
    rm -rf * .c9\ngit clone https://github.com/angular/angular-seed.git .\nnpm install\nmv package.json package.json.bak\njq '.scripts.start=\"http-server -a $IP -p $PORT\"' package.json.bak > package.json
    \n
  6. \n
  7. Click the Run Project button in the top menu of the IDE
  8. \n
  9. Check the README.md for further steps
  10. \n
\n

Note:

We are choosing the PHP workspace type to in order to have the Apache runner\nas a default so you can just click Run Project to get started. This doesn't\nlimit the choice of the backend technology you might want to use.
\n\n
" - }, - { - "filename": "keybindings", - "mtime": 1412172002000, - "pageTitle": "Commands and Keybindings", - "contents": "\n

Commands and Keybindings

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n

Nearly every action in Cloud9 has a corresponding command associated with it. On top of that, every command also has a keybinding that can be used to effortlessly execute the command.

\n

Below is a list of every single command and keybinding used by Cloud9. Have fun being efficient!

\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Command NameKeybinding
Abortclicommand˄-C
AddCursorAbove˄-⌥-Up
AddCursorAboveSkipCurrent˄-⌥-⇧-Up
AddCursorBelow˄-⌥-Down
AddCursorBelowSkipCurrent˄-⌥-⇧-Down
Backspace˄-⌫
Beautify⌘-⇧-B
Clearcut
Closeallbutme⌥-˄-W
Closealltabs⌥-⇧-W
Closetab⌥-W
Complete˄-Space
Copy⌘-C
Copylinesdown⌘-⌥-Down
Copylinesup⌘-⌥-Up
Cut⌘-X
DelDelete
DuplicateSelection⌘-⇧-D
Escapeconsole
EvalInteractive⌘-Return
Find⌘-F
Findnext⌘-G
Findprevious⌘-⇧-G
Fold⌘-⌥-L
Foldall⌘-⌥-0
GolinedownDown
GolineupUp
Gotoend⌘-End
Gotofile⌘-E
GotoleftLeft
Gotoline⌘-L
Gotolineend⌘-Right
Gotolinestart⌘-Left
GotopagedownPageDown
GotorightRight
Gotostart⌘-Home
Gototableft⌘-[
Gototabright⌘-]
Gotowordleft⌥-Left
Gotowordright⌥-Right
IndentTab
Jumptomatching˄-⇧-P
Largerfont˄-⇧-.
Movelinesdown⌥-Down
Movelinesup⌥-Up
Movetableft⌘-⌥-[
Movetabright⌘-⌥-]
Newfile⌥-⇧-N
Newfiletemplate⌥-˄-N
Newfolder⌥-˄-⇧-N
Nexttab⌥-Tab
Openfilepanel⇧-⌘-U
Opensettingspanel⌘-,
Opentreepanel⌘-U
Outdent⇧-Tab
Outline⌘-⇧-E
Paste⌘-V
Previoustab⌥-⇧-Tab
Quicksave⌘-S
Quickwatch⌥-Q
Redo⌘-⇧-Z
Removeline⌘-D
Removetolineend˄-K
Removetolinestart⌘-⌫
Removewordleft⌥-⌫
Removewordright⌥-Delete
RenameVar⌥-⌘-R
Replace⌥-⌘-F
Replaymacro⌘-˄-R
ResumeF8
Revealtab⇧-⌘-L
Reverttosaved˄-⇧-Q
Revisionpanel⌘-B
RunF5
Saveas⌘-⇧-S
Savetabsession⇧-˄-S
Searchinfiles⇧-⌘-F
SelectMoreAfter˄-⌥-Right
SelectMoreBefore˄-⌥-Left
SelectNextAfter˄-⌥-⇧-Right
SelectNextBefore˄-⌥-⇧-Left
Selectall⌘-A
Selectdown⇧-Down
Selectleft⇧-Left
Selectright⇧-Right
Selecttoend⌘-⇧-Down
Selecttolineend⌘-⇧-Right
Selecttolinestart⌘-⇧-Left
Selecttostart⌘-⇧-Up
Selectup⇧-Up
Selectwordleft⌥-⇧-Left
Selectwordright⌥-⇧-Right
Smallerfont˄-⇧-,
SplitIntoLines˄-⇧-L
StepintoF11
Stepout⇧-F11
StepoverF10
Stop⇧-F5
Switchconsole⇧-⎋
Tab0⌘-0
Tab1⌘-1
Tab2⌘-2
Tab3⌘-3
Tab4⌘-4
Tab5⌘-5
Tab6⌘-6
Tab7⌘-7
Tab8⌘-8
Tab9⌘-9
ToggleTabs˄-M
Togglecomment⌘-/
Toggleconsole˄-⎋
Togglerecording⌘-⇧-R
Tolowercase˄-⇧-U
Touppercase˄-U
Transposeletters˄-T
Undo⌘-Z
Unfold⌘-⌥-⇧-L
Unfoldall⌘-⌥-⇧-0
Zen⌥-Z
Zenslow⇧-⌥-Z
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Command NameKeybinding
AbortclicommandCtrl-C
AddCursorAboveCtrl-Alt-Up
AddCursorAboveSkipCurrentCtrl-Alt-Shift-Up
AddCursorBelowCtrl-Alt-Down
AddCursorBelowSkipCurrentCtrl-Alt-Shift-Down
BackspaceCommand-Backspace
BeautifyShift-Ctrl-B
ClearcutESC
CloseallbutmeCtrl-Alt-W
ClosealltabsCtrl-Shift-W
ClosetabCtrl-W
CompleteCtrl-Space
CopyCtrl-C
CopylinesdownAlt-Shift-Down
CopylinesupAlt-Shift-Up
CutCtrl-X
DelDelete
DuplicateSelectionCtrl-Shift-D
EscapeconsoleEsc
EvalInteractiveCtrl-Return
FindCtrl-F
FindnextCtrl-K
FindpreviousCtrl-Shift-K
FoldAlt-L
FoldallAlt-0
GolinedownDown
GolineupUp
GotoendCtrl-End
GotofileCtrl-E
GotoleftLeft
GotolineCtrl-G
GotolineendAlt-Right
GotolinestartAlt-Left
GotopagedownPageDown
GotorightRight
GotostartCtrl-Home
GototableftCtrl-[
GototabrightCtrl-]
GotowordleftCtrl-Left
GotowordrightCtrl-Right
IndentTab
JumptomatchingCtrl-P
LargerfontCtrl-Shift-.
MovelinesdownAlt-Down
MovelinesupAlt-Up
MovetableftCtrl-Alt[
MovetabrightCtrl-Alt-]
NewfileCtrl-N
NewfiletemplateCtrl-Alt-N
NewfolderCtrl-N
NexttabCtrl-Tab
OpenfilepanelShift-Ctrl-U
OpensettingspanelCtrl-,
OpentreepanelCtrl-U
OutdentShift-Tab
OutlineCtrl-Shift-E
PasteCtrl-V
PrevioustabCtrl-Shift-Tab
QuicksaveCtrl-S
QuickwatchAlt-Q
RedoCtrl-Shift-Z
RemovelineCtrl-D
RemovetolineendAlt-Delete
RemovetolinestartAlt-Backspace
RemovewordleftCtrl-Backspace
RemovewordrightCtrl-Delete
RenameVarCtrl-Alt-R
ReplaceAlt-Shift-F
ReplaymacroAlt-R
ResumeF8
RevealtabCtrl-Shift-L
ReverttosavedCtrl-Shift-Q
RevisionpanelCtrl-B
RunF5
SaveasCtrl-Shift-S
SavetabsessionShift-Ctrl-S
SearchinfilesCtrl-Shift-F
SelectMoreAfterCtrl-Alt-Right
SelectMoreBeforeCtrl-Alt-Left
SelectNextAfterCtrl-Alt-Shift-Right
SelectNextBeforeCtrl-Alt-Shift-Left
SelectallCtrl-A
SelectdownShift-Down
SelectleftShift-Left
SelectrightShift-Right
SelecttoendCtrl-Shift-End
SelecttolineendAlt-Shift-Right
SelecttolinestartAlt-Shift-Left
SelecttostartCtrl-Shift-Home
SelectupShift-Up
SelectwordleftCtrl-Shift-Left
SelectwordrightCtrl-Shift-Right
SmallerfontCtrl-Shift-,
SplitIntoLinesCtrl-Shift-L
StepintoF11
StepoutShift-F11
StepoverF10
StopShift-F5
SwitchconsoleShift-Esc
Tab0Ctrl-0
Tab1Ctrl-1
Tab2Ctrl-2
Tab3Ctrl-3
Tab4Ctrl-4
Tab5Ctrl-5
Tab6Ctrl-6
Tab7Ctrl-7
Tab8Ctrl-8
Tab9Ctrl-9
ToggleTabsCtrl-M
TogglecommentCtrl-/
ToggleconsoleF6
TogglerecordingAlt-Shift-R
TolowercaseCtrl-Shift-U
TouppercaseCtrl-U
TransposelettersCtrl-T
UndoCtrl-Z
UnfoldAlt-Shift-L
UnfoldallAlt-Shift-0
ZenAlt-Z
ZenslowShift-Alt-Z
\n
\n
\n
\n
" - }, - { - "filename": "the_editor", - "mtime": 1412172002000, - "pageTitle": "The Editor", - "contents": "\n

The Editor

\n

The editor is the most important element of any IDE; that's why Cloud9 developed ACE. ACE is a high-performance code editor for the web that supports over 40 different languages, over two dozen themes, and can still work faithfully on large documents (at last count, four million lines of code was the upper limit). It also contains a bevy of features you'd expect from traditional desktop editors. Among these include:

\n
    \n
  • Undo and Redo support
  • \n
  • Cut, Copy, and Paste functionality
  • \n
  • Line manipulation, including:
      \n
    • Indenting and outdenting
    • \n
    • Moving and copying lines up or down
    • \n
    • Removing lines from any point
    • \n
    • Splitting lines
    • \n
    \n
  • \n
  • Highlighting and commenting blocks of code
  • \n
  • Removing words to the right or the left
  • \n
  • Transposing letters
  • \n
  • Code folding (including the entire file)
  • \n
  • Converting cases
  • \n
  • Multiple cursors
  • \n
  • Autocompletion
  • \n
  • Code analysis and refactoring
  • \n
  • Search in files with regular expressions
  • \n
  • Intelligent selections, including:
      \n
    • Selecting to word right or left
    • \n
    • Selecting to line end or start
    • \n
    • Selecting to document end or start
    • \n
    \n
  • \n
  • Vim and Emacs keybindings
  • \n
  • Line wrapping, to a defined column or the width of the browser window
  • \n
  • Support for a command line
  • \n
  • Support for spaces and real tabs
  • \n
\n\n
" - }, - { - "filename": "ide_preferences", - "mtime": 1412172002000, - "pageTitle": "IDE Preferences", - "contents": "

IDE Preferences

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n

There are many different ways to configure the IDE. Below is a list of the options available, and what they do.

\n

Note:

All of these options are on a per-project basis. Changing them in one project does not affect any another.\n\n
\n

General

\n

This section controls the overall IDE behavior:

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Preference NameDescription
Enable UI AnimationsEnables or disables fluid animations for various UI elements, such as the Project Bar
Animate ScrollingEnables or disables fluid animations when scrolling through code (such as for goto line)
Enable Auto-SaveIf enabled, automatically saves your files on every change
On Save, Strip WhitespaceWhen saving a file, you can remove all extraneous whitespace from your code lines
Reveal Active File in Project TreeEnabling this jumps the project tree to the active file whenever a tab changes to a different file
Warn Before ExitingPrevents accidental data loss by showing a dialog asking if you really want to leave Cloud9 IDE when closing your browser
Node.js RuntimeDefines the default runtime for your Node.js code. "Auto" is based on whatever is in the package.json file, while "Default" reverts to Node 0.6.x.
KeybindingsAllows you to choose which operating system to use for keyboard shortcuts
\n

Language Support

\n

This section controls language analysis options:

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
Preference NameDescription
Enable Hints and Warnings RulesPresents information about your code in the gutter
Highlight Variable InstancesHighlights variable instances in your code
Mark Undeclared VariablesProvides warnings if a variable is being used and has not been declared yet
Mark Unused Function ArgumentsProvides a strikethrough for arguments in a function that are not being used
Warning LevelSpecifies the minimum level of information severity you want provided in the gutter
\n

Code Editor

\n

This section controls language analysis options:

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Preference NameDescription
Auto-pair Quotes, Brackets, etc.When enabled, typing ", (, or [ will actually make two characters appear. In addition, whenever you highlight a word and type one of these characters, it is surrounded by that character (e.g. words becomes "words")
Full Line SelectionWhen highlighting lines, this option will highlight all ending whitespace, until the end of the editor window
Highlight Active LinePresents a darker shade in the code editor to indicate which line you're currently on
Highlight Gutter LinePresents a darker shade in the gutter which line you're currently on
Show Invisible CharactersShows invisibles characters in the editor, like tabs and line breaks
Show Indent GuidesShows the indent guides in the editor, letting you see your code's nestings
Show GutterShows the gutter in the editor, which indicates line numbers, warnings, and errors
Highlight Selected WordIf you highlight a word, this highlights all matching words in the editor
Auto-hide Horizontal ScrollWhen this is enabled, this will hide the horizontal scroll bar in the editor. Note that this has no effect in Mac OS X 10.7 (Lion) and above, since all scrollbars, by default, auto-hide.
Vim ModeWhen enabled, allows you to use vim keybindings in the IDE
Code FoldingWhen enabled, allows you to show or hide "blocks" of code
Fade Fold WidgetsWhen enabled, fades the folding widgets in the gutter
Font SizeChanges the font size of the code in the editor
Show Print MarginShows (and defines) the number of characters possible in line, before it wraps
Soft TabsIndicates how many spaces a single tab represents
Mouse Scroll SpeedDefines the speed of the mouse scrolls
Newline ModeSpecifies the newline mode for the IDE
\n

Terminal

\n

This section controls the behavior for the terminal:

\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
Preference NameDescription
ScrollbackSets the scrollback buffer for the terminal
Font FamilySets the font for the terminal
Font SizeSets the font size for the terminal
Blinking CursorSpecifies whether or not you want the cursor to blink
\n

Code Tools

\n

This section controls the various tools that are available in the IDE:

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
Preference NameDescription
Enable Color PickerMakes the color picker available for use
Preserve Empty LinesWhen enabled, the editor keeps any new lines without text
Keep Array IndentionWhen enabled, tabs and newlines in arrays are preserved. For example, the follow array would remain as-is with this option:\n
\n        var o = [{\n            a: b\n        }, {\n            c: d\n        }];\n        
\n
JSLint Strict WhitespaceIf selected, all brackets are preceded by a space. For example, if(x){ becomes if (x) {, and function(arg){ becomes function (arg) {
BracesThese options control how braces are handled in the IDE:\n
    \n
  • Braces with control statement: braces are left "in-line" alongside the code statements. For example, code is formatted like this:\n
    \n    if (true) {\n        var x = 3;\n    } else {\n        var x = 5;\n    }\n    
    \n
  • \n
  • Braces on own line: braces are always placed on their own line. For example, code is formatted like this:\n
    \n    if (true)\n    {\n        var x = 3;\n    } else\n    {\n        var x = 5;\n    }\n    
    \n
  • \n
  • End braces on own line: only the ending braces have their own line. For example, code is formatted like this:\n
    \n    if (true) {\n        var x = 3;\n    }\n    else {\n        var x = 5;\n    }\n    
    \n
  • \n
\n
\n
" - }, - { - "filename": "terminal", - "mtime": 1412172002000, - "pageTitle": "Terminal", - "contents": "\n

Terminal

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n

The terminal provides you with a TTY interface for direct access to the machine that Cloud9 is running on. If you're running your own workspace, this is the server you've SSH'ed into. If you're using the hosted Cloud9 platform, this is the server your code runs on.

\n

Warning:

While certain operations, like sudo, are restricted, you can completely destroy your workspace, by doing something like rm -rf. Use your power wisely!\n\n
\n

To create a new terminal, go to View > Terminals > New Terminal, or simply type Alt-T on the keyboard. The terminal has the following capabilities:

\n
    \n
  • Perform all Unix commands
  • \n
  • You can create more than one instance of a terminal (by just creating a new tab)
  • \n
  • The terminal allows for path autocompletion by hitting Tab
  • \n
\n

\"Screenshot

\n\n
" - }, - { - "filename": "frameworks_jekyll", - "mtime": 1416998221000, - "pageTitle": "Framework: Jekyll", - "contents": "\n

Framework: Jekyll

\n

Jekyll is a great static site generator, also used by github pages. You simply need to install the Ruby gem and then make sure you pass the right port to the serve command.

\n
$ gem install jekyll\n$ jekyll new my-awesome-site\n$ cd my-awesome-site\n$ jekyll serve --port $PORT
\n\n
" - }, - { - "filename": "index", - "mtime": 1412172002000, - "pageTitle": "Cloud9 IDE User Documentation", - "contents": "{\n \"files\": [\n {\n \"filename\": \"deploying_code\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Deploying Your Code\",\n \"contents\": \"\\n

Deploying Your Code

\\n

Cloud9 IDE offers many different ways to get your code from your editor to your \\nproduction server. To deploy your code, click on the Deploy button in the \\nProject Bar:

\\n

\\\"The

\\n

We offer tight integration with the following environments:

\\n\\n

Following these links will provide you with more information on code deployment.\\nYou can deploy your code to as many services and servers as you like. Keep in \\nmind that you'll already need an account at those hosting providers before you \\ncan deploy your app to them!

\\n

If you're comfortable with the command line, you can also deploy to several more\\nenvironments, such as:

\\n\\n

Warning:

Before you attempt to deploy your application, make sure that you have \\ncommitted all your changes to version control. Cloud9 deploys for you whatever \\nwas last committed to version control.
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"deploying_to_heroku\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Deploying to Heroku\",\n \"contents\": \"\\n

Deploying to Heroku

\\n

This section will show you how to deploy your applications to Heroku, a cloud-based application platform. The integration with Cloud9 IDE makes your development process even more agile. If you don't have a Heroku account, visit their website to create one for free.

\\n

To get started, create a simple Node.js application. If you don't have one yet, you can follow our tutorial on developing one.

\\n

After you click on the Deploy button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Heroku as an option. After you have signed into your Heroku account, you can create a new deploy target or choose an existing one from your account:

\\n

\\\"Showing

\\n

Note:

Heroku only allows you to create names for your apps that contain letters and dashes.\\n\\n
\\n

Next, press Deploy to continue the process; the following window might appear:

\\n

\\\"Dialog

\\n

Heroku Node.js apps are required to have a package.json file, much like with NPM. Cloud9 can generate a package.json file for you, containing metadata to share Heroku. The following lines represent what that file might looks like:

\\n
{\\n    \\\"name\\\": \\\"cloud9-heroku-example\\\",\\n    \\\"version\\\": \\\"0.0.1\\\"\\n}
\\n

After you have a package.json file, you might see this dialog:

\\n

\\\"Dialog

\\n

Sometimes, a Heroku app also requires a Procfile. The Procfile is needed to start the application in Heroku. You can just create a new file, add the line below, and save it as 'Procfile'. Don't add any file extensions.

\\n
web: node web.js
\\n

Try the deploy button again. The console will directly output the following when the deployment is completed:

\\n

\\\"Console

\\n

And just like that, you've deployed your project to Heroku.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"deploying_to_windows_azure_sites\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Deploying to Windows Azure Sites\",\n \"contents\": \"\\n

Deploying to Windows Azure Sites

\\n

This article will show you how to deploy your applications to Windows Azure. If you don't have an account yet, the Windows Azure process will help you create one. Keep in mind that Windows Azure is not free, though it does come with a free trial. Windows Azure projects can be deployed from any operating system.

\\n

To get started, create a simple Node.js application. If you don't have one yet, you can follow our tutorial on developing one.

\\n

After you click on the Deploy button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Windows Azure as an option. You'll be prompted with this dialog:
\\\"Windows

\\n

You must click on the Download Windows Azure Settings button before you can continue. If you don't have a Windows Azure account, here is where you can create one. If you do have an account, your browser will automatically download the required file.

\\n

When that's finished, simply select the downloaded file from your computer, and upload it to Cloud9. You'll only have to do this process once. If you ever need to upload a new certificate, be sure to click Clear cert in the lower-right corner of this dialog.

\\n

After the file has uploaded, click on Create new to create a new hosted service. A hosted service is the container in which your application is hosted when it is deployed to Windows Azure. For more information, see Overview of Creating a Hosted Service for Windows Azure.

\\n

You can set a few configuration options such as the number of instances to use, its host OS, and where the data center is located. Selecting "Enable RDP" and providing a username and password enables remote desktop for your deployment.

\\n

Your new Windows Azure server will appear in the Deploy list:
\\\"Windows

\\n

Go ahead and click on DEPLOY. If this is the first time you're trying to deploy this project to Windows Azure, you'll receive three prompts:

\\n
    \\n
  1. A dialog will inform you of a missing web.config file. If you click Yes, Cloud9 will create a file called Web.cloud.config in your project. This file contains configuration information about your app.

    \\n
  2. \\n
  3. You'll be told about a missing csdef file. If you click Yes, Cloud9 will create a file called ServiceDefinition.csdef in your project. ServiceDefinition.csdef is a Windows Azure-specific files necessary for publishing your application For more information, see Overview of Creating a Hosted Service for Windows Azure.

    \\n
  4. \\n
  5. You'll be asked to select the instance size for this application. For this tutorial, just select Small, and then click Create. For more details about Windows Azure VM sizes, see How to Configure Virtual Machine Sizes.

    \\n
  6. \\n
\\n

Your app will now deploy to a Windows Azure server! You can follow its progress in the Deploy panel, or by watching the messages in the console:\\n\\\"Windows

\\n

For more information on configuring your app on the Windows Azure website, see Deploying a Windows Azure App from Cloud9.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"deploying_via_cli\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Deploying via the Command Line\",\n \"contents\": \"\\n
\\n

Deploying via the Command Line

\\n

In the new version of Cloud9 we don't have support for deployment from the UI yet, but we're going to add those features soon.

\\n

Until then, you can manually install various command-line tools into your workspace and deploy using the command line. \\nIt should go without saying that this is for super 31337 developers that aren't afraid of the command line.

\\n

Below is a list of some of the services we have tested and support deploying to. \\nAll the commands need to be executed in the terminal unless stated otherwise.

\\n

Heroku

\\n

Heroku's toolbelt is installed by default in new VMs.

\\n

Now, you can use the heroku command for your projects, as described in the \\nHeroku documentation.

\\n

If deploying to Heroku, you should probably be using a local instance of PostgresQL, or you may run into problems caused by different database interpretations of SQL.

\\n

Windows Azure Web Sites

\\n

Free and Premium Plans

\\n

In the Console or a Terminal, type the \\nfollowing:

\\n
npm install azure
\\n

Now, you can use the azure command from the Console/Terminal. For more \\ninformation, read the official azure documentation.

\\n

Premium Plans

\\n

To deploy to Azure sites from the command line, open the Terminal and type:

\\n
cd ~/lib/azure-sites\\nnpm install
\\n

Then, add the bin to your workspace's path:

\\n
PATH=$PATH:$HOME/lib/azure-sites/bin
\\n

Now, you can use the azure command in the terminal.

\\n

Windows Azure Cloud Services

\\n

For free and premium plans, follow the instructions on the \\nazure-cmdlet-node repository. This \\nproject is maintained by Cloud9.

\\n

Google App Engine

\\n

First, setup Push to Deploy: Create a new App Engine application at \\ncloud.google.com/console, and then enable \\nPush-to-Deploy under 'App Engine' in the Application Settings page. Leave this \\ntab open to note the URL for your repo.

\\n

Secondly, configure Cloud9. Run the following commands (making sure to replace \\nyour email address, auth-token, and repo-url):

\\n
echo \\\"machine code.google.com login EMAIL password PASSWORD\\\" >> ~/.netrc\\ngit remote add appengine REPO
\\n

Note:

The email in this case is the mail address you use to login to your Google\\nApp Engine account and the password is the auth-token generated from the admin\\nconsole, it is not your google password, never type that into a third party tool.\\n'REPO' is the repository URL generated before.\\n\\n
\\n

Finally, do a commit, and a push:

\\n
git commit -a -m \\\"First commit\\\"\\ngit push appengine master
\\n

OpenShift

\\n
# Install rhc:\\ngem install rhc\\nrhc setup\\n\\n# After this you can use rhc to manage your account:\\n\\n# list apps:\\nrhc apps\\n# To show what you can do with apps do:\\nrhc app help\\n# You deploy via a git push\\ngit push <giturl> master
\\n

CloudFoundry

\\n

To deploy to CloudFoundry from the command line in the Console \\nor a Terminal, type:

\\n
cd ~\\nwget https://github.com/cloudfoundry/vmc/zipball/master\\nmv master cloudfoundry\\nunzip cloudfoundry\\ncd cloudfoundry-vmc-nnnn\\nbundle
\\n

NodeJitsu

\\n

Free and Premium Plans

\\n

In the the Console or a Terminal, type:

\\n
npm install jitsu@0.7.x -g\\nmkdir node_modules\\nmv ../lib/node_modules/jitsu node_modules
\\n

Now, you can run jitsu from the command line. For more information, see \\nthe official jitsu documentation.

\\n

Premium Plans

\\n
npm install jitsu@0.7.x -g
\\n

You can now run jitsu from both the Console and the Terminal.

\\n

Modulus

\\n

In the the Console or a Terminal, type:

\\n
npm install modulus -g
\\n

Now, you can run modulus from the command line. For more information, see \\nthe official modulus documentation.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"faq_general\",\n \"mtime\": 1416998245000,\n \"pageTitle\": \"FAQ: General\",\n \"contents\": \"\\n
\\n

FAQ: General

\\n

Can I use FTP workspaces on Cloud9?

\\n

Yes, Cloud9 supports FTP workspaces that allow you to edit your files directly on your FTP server. \\nCurrently FTP workspaces still open in the old version of Cloud9, but soon we'll also support FTP workspaces with the new version of Cloud9.

\\n

One thing that was removed for reliability reasons in the new version of Cloud9, is the ability to deploy over FTP from a regular workspace.\\nWe're bringing back those features in a new format and with much higher reliability in the coming months.

\\n

How do I deploy to Heroku/Openshift/Azure/...?

\\n

See Deploying via CLI.

\\n

Can I connect to SMTP servers (port 25)?

\\n

No, this is not supported by our hosting platform. It does currently allow access to the GMail servers though, so you can use that service during development.

\\n

My workspace says it's out of quota. how do I fix it?

\\n

You can inspect your current quota usage with the df command in the Terminal:

\\n
$ df
\\n

To find which files and directories are consuming a lot of space, go to a directory such as your home directory, and run this command:

\\n
$ du -m -d 1 -a | sort -n
\\n

This should give you a list of all members of that directory and how much space they use in megabytes.

\\n

Alternatively, try du-c9 for seeing all files you added to your workspace and account for the quota.

\\n

Can I use two-factor authentication with Cloud9?

\\n

You can sign into Cloud9 with your github or bitbucket account and set that up to use two-factor authentication.\\nWe don't currently provide an option to directly setup your Cloud9 account for two-factor authentication.

\\n

I can't preview my running app.

\\n

Try using port 8080 instead, which often solves this case.

\\n

EADDRINUSE: My app complains that the address/port is in use

\\n

Applications won't start if another application is already listening to the same port. In order to fix it you first need to find out which process that is:

\\n
$ netstat -nlp | grep $PORT
\\n

This will report the process id (PID) which you can then kill using

\\n
$ sudo kill -9 <PID>
\\n

Often apache is still running in the background. In that case you can kill it using

\\n
$ sudo pkill apache2
\\n

How can I upload local files to my project?

\\n

Either drag a local file directly from your desktop into the Cloud9 file tree,\\nor use the "File > Upload Local Files" menu item.

\\n

How can I download my project files?

\\n

Use "File > Download project". Currently, this will give you a .tar.gz file, which\\nensures maximum portability. To open these files, you can use something like\\nWinRAR or 7-zip.

\\n

How can I share a single directory of a private workspace

\\n

Sometime you might want others to open a file or directory in the browser \\nwithout opening up the whole workspace. This can be done by starting a small \\nhttp server in that directory and make sure that the running application is public.

\\n

To make the running application public you have to click the "sharing" button at\\nthe top right and the check "public" for application.

\\n

To run the server open a terminal and do

\\n
$ cd /dir/i/want/to/share\\n$ python3 -m http.server 8080
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"faq_ssh\",\n \"mtime\": 1416998221000,\n \"pageTitle\": \"FAQ: SSH workspaces\",\n \"contents\": \"\\n
\\n

FAQ: SSH workspaces

\\n

I cannot create a SSH workspace using a Digital Ocean droplet

\\n

We recently discovered our web host is blocking connections to some Digital Ocean IP addresses because they suspect they are being used by Iranian users. They are legally forced to block them.

\\n

Digital Ocean maintains a whitelist of droplet IP addresses which should not be blocked and our web host follows this list.

\\n

Please raise a support ticket with Digital Ocean mentioning that you would like to have your droplet IP added to the whitelist. After this is complete you will be able to create your SSH workspace within 24 - 48 hours.

\\n

I'm getting an error on the SSH install script: "ncurses not found"

\\n

Try executing the following command:

\\n
yum install ncurses-devel 
\\n

or

\\n
yum install glibc-static 
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"faq_php\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"FAQ: PHP\",\n \"contents\": \"\\n
\\n

FAQ: PHP

\\n

where are the Apache logs?

\\n

By default the logs are in ~/lib/apache2/log

\\n

Is mail() supported?

\\n

No, this is currently not supported; see FAQ: General about SMTP access.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"faq_python\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"FAQ: Python\",\n \"contents\": \"\\n
\\n

FAQ: Python

\\n

Why does easy_install report a permission_denied error?

\\n

Please use sudo easy_install instead.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"colorpicker\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Color Picker\",\n \"contents\": \"\\n

Color Picker

\\n

Note:

this feature is deprecated\\n\\n
\\n
\\n\\n
\\n\\n

The color picker is an awesome feature in Cloud9 IDE, designed to not only make color selections easier, but also, more harmonious. At its core, the color picker is a way to represent words (red, blue, e.t.c.), RGBA values (rgba(175, 3, 124, .6)), or hex values (#f00f00) into actual colors.

\\n

To enable the color picker, flip the preferences on in the Settings panel. You can use the color picker in CSS, SVG, HTML, or APF Skin files. All you have to do is hover over the value of a color definition, and it'll instantly highlight, like this: \\\"Color

\\n

When the represented color is highlighted, click on it. You'll get a color square defining all the possible color arrangements. To select a color, you can click in the square, pick your own RGB or HSB values, or enter some hex code. Best of all, at the bottom of the window, you'll find a list of other colors found within the same document--just in case you want to achieve matching shades:
\\\"Color

\\n

To set the value, just click anywhere outside of the color picker.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"language_analysis\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Language Analysis\",\n \"contents\": \"\\n
\\n

Language Analysis

\\n

For JavaScript files, Cloud9 provides analysis using a combination of our own analysis tools, as well as JSHint (specifically for Javascript code). Our language analysis can't detect if your program is correct, fast, or has memory leaks, but it can save you time by spotting things like undeclared variables, syntax errors, or other preventable typos.

\\n

When Cloud9 detects an issue with your code, an icon appears in the gutter for the offending lines of code. There are three types of identifiers available for your code:

\\n
    \\n
  • Informational (\\\"Little): these are non-critical, non-dangerous updates about your code
  • \\n
  • Warnings (\\\"Warning): these are potentially incorrect pieces of code
  • \\n
  • Errors (\\\"Error): these are incorrect lines of code that will almost certainly throw a runtime error when you try to run your script
  • \\n
\\n

If you hover over any of these icons in the gutter, you'll get a pop-up that presents some information as to what, exactly, the problem is. For example, suppose we have a variable declared, called fs, that is never used:
\\\"fs

\\n

Notice also that fs has a strikethrough, to provide further visual clues that something is not quite right.

\\n

If you're concerned with the level of information that's listed in the gutter, you can always configure its "strictness" in the IDE preferences. For example, you could choose to hide every icon that isn't a warning or an error.

\\n

Configuring Global Options

\\n

JSHint provides additional configuration options that Cloud9 incorporates on a per-file basis. Typically, you declare these options as comments at the very top of a file, like this:

\\n
/*jshint curly:true, debug:true */
\\n

For a full list of the JSHint configutation options, please check the documentation page describing them.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"autocompletion\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Code Autocompletion\",\n \"contents\": \"\\n

Code Autocompletion

\\n

For Javascript programs, Cloud9 IDE provides intelligent and responsive autocompletion for your code. Autocompletion is based not only on the content within your files, but also on the ECMAScript and Node.js standard library:

\\n

\\\"Autocompletion

\\n

Methods defined in ECMAScript and Node.js also have documentation provided for you. Simply hover over a method name for a moment, and a second box quickly shows some additional information.

\\n

You can disable autocompletion in the Settings menu.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"custom_runners\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Custom Runners\",\n \"contents\": \"\\n
\\n

Custom Runners

\\n

Luckily you're not limited to the default set of Runners in Cloud9.\\nYou can simply define your own custom Runner, which is both simple and very powerful.\\nAll you need to do is create a Runner file.\\nIn this article we'll describe how to do this in just a few steps.

\\n

In the Run panel (usually at the bottom of the UI), click the 'Runner' text input and choose 'New Runner'. \\nIn the new Runner file that's now opened, you can configure your runner\\nusing a simple JSON format. We'll show a basic example below\\nand then explain the different properties you can use.

\\n

Let's start with a basic example: a runner for go files.

\\n
{\\n    \\\"cmd\\\": [\\\"go\\\", \\\"run\\\", \\\"$file\\\", \\\"$args\\\"],\\n    \\\"selector\\\": \\\"source.go\\\",\\n    \\\"info\\\": \\\"Your code is running :)\\\"\\n}
\\n

This runner will use "go run" for any file that has a ".go" file extension.\\nIf you add it, it'll override our default Go runner.

\\n

As another example, let's save a new Node 0.11 configuration, including Harmony support. \\nCreate a new Runner, add this code, and save it as 'Node 0.11.x.run':

\\n
// This file overrides the built-in Node 0.11.x runner\\n// For more information see http://docs.c9.io:8080/#!/api/run-method-run\\n{\\n  \\\"cmd\\\": [\\n    \\\"bash\\\",\\n    \\\"--login\\\",\\n    \\\"-c\\\",\\n    \\\"nvm use 0.11 > /dev/null; node --harmony ${debug?--nocrankshaft --nolazy --debug-brk=15454} '$file' $args\\\"\\n  ],\\n  \\\"debugger\\\": \\\"v8\\\",\\n  \\\"debugport\\\": 15454,\\n  \\\"info\\\": \\\"Your code is running at \\\\\\\\033[01;34m$url\\\\\\\\033[00m.\\\\n\\\\\\\\033[01;31mImportant:\\\\\\\\033[00m use \\\\\\\\033[01;32mprocess.env.PORT\\\\\\\\033[00m as the port and \\\\\\\\033[01;32mprocess.env.IP\\\\\\\\033[00m as the host in your scripts!\\\\n\\\"\\n}
\\n

Note:

alternatively, you can check 'Show Hidden Files' in your workspace directory tree (the small gear in the upper right corner), and create a new file in the '.c9/runners' folder called 'Node 0.11.x.run' with this code.\\n\\n
\\n

That's it! Your custom Runner should be available in the Run panel.

\\n

Runner Variables

\\n

Here's a list of all the variables you can use in your runners:

\\n
    \\n
  • $file_path The directory of the current file, e. g., /home/ubuntu/workspace/docs

    \\n
  • \\n
  • $file The full path to the current file, e. g., /home/ubuntu/workspace/docs/Chapter1.txt.

    \\n
  • \\n
  • $args Any arguments entered after the file name.

    \\n
  • \\n
  • $file_name The name portion of the current file, e. g., Chapter1.txt.

    \\n
  • \\n
  • $file_extension The extension portion of the current file, e. g., txt.

    \\n
  • \\n
  • $file_base_name The name only portion of the current file, e. g., Document.

    \\n
  • \\n
  • $packages The full path to the Packages folder.

    \\n
  • \\n
  • $project The full path to the current project file.

    \\n
  • \\n
  • $project_path The directory of the current project file.

    \\n
  • \\n
  • $project_name The name portion of the current project file.

    \\n
  • \\n
  • $project_extension The extension portion of the current project file.

    \\n
  • \\n
  • $project_base_name The name only portion of the current project file.

    \\n
  • \\n
  • $hostname The hostname of the workspace.

    \\n
  • \\n
  • $hostname_path The hostname of the workspace together with the relative path of the project file.

    \\n
  • \\n
  • $url The full url to access the workspace.

    \\n
  • \\n
  • $port The port assigned to the workspace.

    \\n
  • \\n
  • $ip The ip address to run a process against in the workspace.

    \\n
  • \\n
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"gotofile_and_definition\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Using Goto File and Goto Definition\",\n \"contents\": \"\\n

Using Goto File and Goto Definition

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n
\\n\\n
\\n\\n

Let's say you're working a large project containing many files, and you kind-of sort-of know the name of a file that you want to open up. Goto File is our feature to help you quickly and easily jump to any file in your workspace, without the need to search through different directories. Simply hit Cmd-E (or Ctrl-E on Unix/Windows) and away you go:

\\n

\\\"Goto

\\n

Goto File offers filtering for any portion of a filename, including directories. Search for the beginning, middle, or end of a file path, or even just an extension, like .js, and Goto File with instantly present the results to you. Clicking on a name in the list opens the file right up. Goto File does not support case-insensitive, wildcard (*, ?), or regular expression (., +) searching.

\\n

Goto Definition takes the same concept and applies it to files. You can easily navigate between classes and members defined in your files. By entering text, you can filter your class' member results. Finally, as you navigate through your file, Cloud9 IDE will jump to the relevant portion of the code:

\\n

\\\"Goto

\\n

Note:

Currently, Goto Definition only works for Javascript files.\\n\\n
\\n

Another feature that's available is the capability to "jump to definition." If your cursor is on a variable or function name, you can tap F12 (or type jumptodef in the console) to instantly scroll the editor to the member's definition.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"collaboration\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Collaboration\",\n \"contents\": \"\\n
\\n

Collaboration

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n

Collaboration with Cloud9 IDE is an amazing feature that lets you do more than just share your projects with any other Cloud9 developer. You can grant someone else access to change files in your workspace, in realtime--or just let them view the workspace without any other rights. While you're collaborating, you can discuss the code through a built-in chat room.

\\n

To invite someone to collaborate on a project with you, simply copy the URL in the browser and send it to a friend. You can also click on Share in the menu bar to get quick access to other ways to share, such as via e-mail, Twitter, or Facebook.

\\n

Let's take a look at some of the additional features available while you collaborate.

\\n

Members List

\\n

There are two terms used for people accessing your project: members and visitors. Members are individuals that have read and write access to your project--that means they can change any code; visitors only have read access. The Members panel lists all the collaborators in a project, both active and inactive:

\\n

\\\"The

\\n

If you are the owner of a project, you can click on anyone's username to grant (or revoke) write access:

\\n

\\\"Granting

\\n

If you're worried about the sanctity of your code after grant access to other developers, fear not. You can always take a look at a file revision history to view line-by-line changes made to your project over time.

\\n

Chatting

\\n

Any member or visitor can participate in group chat with each other. Developers can also choose to double-click on a person's username and engage in a private, instant-message-style conversation.

\\n

Collaborate on Code

\\n

When a collaborator changes a file you're also working on, Cloud9 detects it and asks you whether you'd like to use their changes, or your version. We're also simply giving you the option to merge both, using a three-way-merge algorithm to handle any conflicts. This is the same algorithm used by version control systems like git for merging branches.

\\n

To make the experience even smoother you can choose "Always merge by default" and we'll never interrupt you about file changes again.

\\n

Check out the video below to see this in action.

\\n
\\n\\n
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"searching_in_files\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Searching and Replacing in Files\",\n \"contents\": \"\\n
\\n

Searching and Replacing in Files

\\n
\\n\\n
\\n\\n

Aside from Goto File and Goto Definition, Cloud9 also offers more traditional search functionality. There are three types of search modes available: quicksearch, search and replace, and find in files.

\\n

Quicksearch

\\n

Quicksearch can be activated by hitting Cmd-F on a Mac, or Ctrl-F on a Unix/Windows machine. As you type in the quicksearch bar, the IDE instantly shifts to the next available result. This is a great way to quickly search around in your code without hassle.

\\n

Quicksearch offers the following options:

\\n
    \\n
  • Regular Expressions: when enabled, your search is treated as a regular expression
  • \\n
  • Match Case: when enabled, your search takes capitalizations seriously:
  • \\n
  • Whole Words: when enabled, your search will only be considered for whole words:
  • \\n
  • Search Backwards: when enabled, the search goes backwards, instead of forwards
  • \\n
  • Wrap Around: when enabled, the search loops around the file, from bottom to top
  • \\n
  • Search Selection: when enabled, the search only considers code that you've currently highlighted
  • \\n
\\n

Search and Replace

\\n

Building on the features of quicksearch, search and replace allows you to replace segments of code in your file. You can again continue to use regular expressions, keeping in mind the groupings are prefixed with a dollar sign, i.e. $1.

\\n

Replacing offers two more options:

\\n
    \\n
  • Preserve Case: if enabled, case is preserved while replacing content
  • \\n
  • Highlight Matches: if enabled, the new replaced matches are highlighted in the document
  • \\n
\\n

Find in Files

\\n

In order to search across a set of files, you'll want to use the Find in Files feature. Here, you can search of a string or regular expression, within your entire workspace or a single directory. You can also filter based on extensions, like *.js or *.rb.

\\n

Find in files offers some of the same search options as quicksearch:

\\n
    \\n
  • Regular Expressions: when enabled, your search is treated as a regular expression
  • \\n
  • Match Case: when enabled, your search takes capitalizations seriously
  • \\n
  • Whole Words: when enabled, your search will only be considered for whole words
  • \\n
\\n

One more feature of find in files is the ability to render search results either in the console or the IDE. You can fold results to keep them out of the way, or, edited the file if you're working down a list:
\\\"Search

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"multiple_cursors\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Multiple Cursors\",\n \"contents\": \"\\n

Multiple Cursors

\\n

Multiple cursors is one of the most useful features available in the Cloud9 editor. You can use multiple cursors to perform tasks like rename several variables or members at once, break up lists separated by commas, or insert the same text in multiple locations.

\\n

\\\"Showing

\\n

Multiple selections can be copied and pasted, and you can insert or remove entire lines in several locations.

\\n

There are several ways to get access to mutliple cursors:

\\n
    \\n
  • Via keyboard shortcuts, you can create a new cursor in any direction
  • \\n
  • By holding the Alt key, clicking the mouse, and dragging the cursor up or down in the editor
  • \\n
  • Through the menu bar at Selection > Multiple Selections
  • \\n
\\n

One of the best capabilities is the ability to instantly select the next instance of your currently highlighted section. This is especially useful for refactoring several parts of the code at once. To do this, press Ctrl-Alt, followed by the right (or left) arrow key to navigate around in the code.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"supported_languages\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Supported Languages\",\n \"contents\": \"\\n
\\n

Supported Languages

\\n

Cloud9 IDE has varying levels of support for different programming languages. \\nUsually you will at least have Syntax Highlighting in the editor and the ability\\nto run apps from the Terminal.

\\n

Syntax Highlighting

\\n

Cloud9 IDE develops and builds on Ace, an \\neditor for writing code online. Cloud9's Ace editor currently supports \\nhighlighting for about 100 programming languages, and any changes made to Ace are \\nreflected back into Cloud9 IDE.

\\n

The list of supported languages is growing, and you can get the full list from \\nthe View > Syntax menu. Feel free to create an issue in the Ace repository \\nfor new requests, or add your own syntax highlighting mode.

\\n

See Syntax Highlighting & Themes for more \\ninfo.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Running apps

\\n

The Run panel currently supports running the following by default:

\\n
    \\n
  • Apache httpd (PHP, HTML)
  • \\n
  • Node
  • \\n
  • Python
  • \\n
  • Ruby
  • \\n
  • Ruby on Rails
  • \\n
  • Go
  • \\n
  • CoffeeScript
  • \\n
  • Julia
  • \\n
  • Mocha
  • \\n
  • Shell script
  • \\n
\\n

If you'd like to run any other language, simply create a new "Runner".

\\n

You can also do so from the Terminal. \\nEach workspace is an Ubuntu VM with the standard tools like bash, make, \\ngcc, vim, java SDK or perl pre-installed.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"syntax_highlighting_themes\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Syntax Higlighting and Themes\",\n \"contents\": \"\\n

Syntax Higlighting and Themes

\\n
\\n\\n

Cloud9 IDE develops and builds on Ace, an editor for writing code online. Ace supports over two dozen different themes for highlighting your code, and any changes made to Ace are reflected back into Cloud9 IDE.

\\n

You can change your current theme by going to View > Themes, and selecting from one of the many options. By hovering over the menu items, you'll be able to get a preview of the theme. To activate a theme you like, just click on its name.

\\n

The IDE contains the following themes:

\\n
    \\n
  • Chrome
  • \\n
  • Clouds
  • \\n
  • Clouds Midnight
  • \\n
  • Cobalt
  • \\n
  • Crimson Editor
  • \\n
  • Dawn
  • \\n
  • Eclipse
  • \\n
  • Idle Fingers
  • \\n
  • Kr Theme
  • \\n
  • Merbivore
  • \\n
  • Merbivore Soft
  • \\n
  • Mono Industrial
  • \\n
  • Monokai
  • \\n
  • Pastel On Dark
  • \\n
  • Solarized Dark
  • \\n
  • Solarized Light
  • \\n
  • TextMate
  • \\n
  • Tomorrow
  • \\n
  • Tomorrow Night
  • \\n
  • Tomorrow Night Blue
  • \\n
  • Tomorrow Night Bright
  • \\n
  • Tomorrow Night Eighties
  • \\n
  • Twilight
  • \\n
  • Vibrant Ink
  • \\n
\\n

By default, files are highlighted based on their file extension. You can change this by going to View > Syntax, and selecting a different context. This forces a single file to use a different highlighter.

\\n

We support highlighting for at least the following languages, and many more:

\\n
    \\n
  • CoffeeScript
  • \\n
  • ColdFusion
  • \\n
  • C#
  • \\n
  • CSS
  • \\n
  • Go
  • \\n
  • Groovy
  • \\n
  • haXe
  • \\n
  • HTML
  • \\n
  • C/C++
  • \\n
  • Clojure
  • \\n
  • Java
  • \\n
  • JavaScript
  • \\n
  • JSON
  • \\n
  • LaTeX
  • \\n
  • LESS
  • \\n
  • Liquid
  • \\n
  • Lua
  • \\n
  • Markdown
  • \\n
  • OCaml
  • \\n
  • Perl
  • \\n
  • pgSQL
  • \\n
  • PHP
  • \\n
  • Powershell
  • \\n
  • Python
  • \\n
  • Ruby
  • \\n
  • OpenSCAD
  • \\n
  • Scala
  • \\n
  • SCSS
  • \\n
  • SH
  • \\n
  • SQL
  • \\n
  • SVG
  • \\n
  • Text
  • \\n
  • Textile
  • \\n
  • XML
  • \\n
  • XQuery
  • \\n
  • YAML
  • \\n
\\n

We are always adding new themes and new languages to support, so check the menu often! Since we use Ace to provide syntax highlighting, feel free to log an issue there for new requests.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"uploading_downloading\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Uploading and Downloading Workspace Files\",\n \"contents\": \"\\n

Uploading and Downloading Workspace Files

\\n

Cloud9 IDE allows you to easily add files to your curent workspace at any time. You can drag and drop files from your computer directly into the Project Files pane, and the IDE will add them to your project. Google Chrome users can also drag entire folders into the IDE.

\\n

If a file transfer is halted for some reason--say, if you lose your internet connection--the upload resumes once the connection returns. As the files transfer, the IDE lets you know the current status of the overall transfer, as well as the status of each file being uploaded:

\\n

\\\"Uploading

\\n

You can also get an exact copy of your workspace to save on your computer. By going into File > Download Project, you will be provided with a Zip file containing the entirety of your project.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_drupal\",\n \"mtime\": 1416998221000,\n \"pageTitle\": \"Framework: Drupal\",\n \"contents\": \"\\n

Framework: Drupal

\\n

For Drupal there are some installation guides around which tell you to install PHP first, but that's not necessary with Cloud9.\\nYou don't need to install MySQL either, it is already preinstalled in PHP workspaces. \\nJust make a new workspace, choose PHP, go to the Terminal, and execute the following:

\\n
cd $HOME\\ncurl -O http://ftp.drupal.org/files/projects/drupal-7.30.tar.gz\\ntar xvf drupal-7.30.tar.gz\\nmv drupal-7.30/* workspace/\\nmv drupal-7.30/.htaccess workspace/\\ncd $HOME/workspace\\nmysql-ctl install\\nmysql-ctl start\\nmysql-ctl status
\\n

Open the file install.php in the file tree, and while opened, click on the "Run Project" button in the menu bar on top of the IDE.\\nAn URL will be shown at the bottom of the page, something like "https://drupal-c9-lcipriani.c9.io/", but with your username and workspace name in it.

\\n

Copy the url in a new browser tab and you will see the install page of Drupal

\\n

You can now proceed with the installer

\\n

\\\"Drupal

\\n

Now be careful inserting the correct values for the database. You need to change the values as follows:

\\n
user: yourusername\\ndatabase: c9\\nhost: 127.0.0.1
\\n

Note:

localhost will not work, while 127.0.0.1 will.\\n\\n
\\n

Open the Advanced Options in the database settings page as shown in the screenshot:

\\n

\\\"Drupal

\\n

Now fill the form with the correct site information:

\\n

\\\"Drupal

\\n

Continue the setup and enjoy your website!

\\n

Note:

if you are not able to load CSS, access your website WITHOUT using https, but use simple http; in another tab open the url: http://drupal-c9-lcipriani.c9.io/\\n\\n
\\n

\\\"Drupal

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"git_blame\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Git Blame\",\n \"contents\": \"\\n

Git Blame

\\n

Note:

this feature is deprecated\\n\\n
\\n
\\n\\n
\\n\\n

When you're working with git repositories, it's helpful to know who made a commit to a particular piece of code. As it turns out, git has a feature called git blame that we've integrated directly into Cloud9 IDE.

\\n

By using git blame, you'll be able to instantly discover who edited certain lines of code, when they edited it, and what their commit message at the time was. Clicking on a git commit also highlights other lines of code changed at the same time. To launch the git blame feature, open a file and navigate to Tools > Git > Blame.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"zen_mode\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Activating Zen Mode\",\n \"contents\": \"\\n

Activating Zen Mode

\\n

Note:

this feature is deprecated\\n\\n
\\n
\\n\\n
\\n\\n

Zen mode is a full screen coding environment designed to make you more productive. It essentially removes all the additional UI elements in Cloud9 IDE, and places you in a harmonious relationship with your code.

\\n

To activate zen mode, simply hover over the upper right corner of the code editor, and click the icon that appears. Keep in mind that you'll need to have a file open before you can launch zen mode. You can resize your window by holding and dragging the left or right border.

\\n

To get out of zen mode, hover over the same corner and click the same icon.

\\n

You can also enter and exit zen mode via keyboard shortcuts, command line, or from the menu bar at View > Zen Mode.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_ionic\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Framework: Ionic\",\n \"contents\": \"\\n

Framework: Ionic

\\n

Ionic is an open source front-end framework for developing hybrid mobile apps with HTML5.

\\n

Create a Ionic app as follows:

\\n
    \\n
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. \\n
  3. Open a Terminal, or use the pre-existing one at the bottom
  4. \\n
  5. Run the following commands in the Terminal:

    \\n
     $ npm install -g cordova ionic\\n $ ionic start myApp sidemenu\\n $ cd myApp\\n $ ionic serve $PORT
    \\n
  6. \\n
  7. Click the "Preview" button in the top menu in the IDE, and choose "Preview with Web Server". This will open the Preview window for your running app.

    \\n
  8. \\n
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_ghost\",\n \"mtime\": 1416995769000,\n \"pageTitle\": \"Framework: Ghost\",\n \"contents\": \"\\n

Framework: Ghost

\\n

Ghost is a simple, powerful publishing platform that \\nallows you to share your story with the world.

\\n

Create a Ghost blog as follows:

\\n
    \\n
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. \\n
  3. Open a Terminal, or use the pre-existing one at the bottom
  4. \\n
  5. Run the following commands in the Terminal:

    \\n
     $ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip\\n $ unzip -uo ghost.zip -d .\\n $ rm ghost.zip\\n $ npm install --production
    \\n
  6. \\n
  7. Adapt the config.js file to the Cloud9 environment. Change the following keys:

    \\n
     config: {\\n     development: {\\n         url: 'https://' + process.env.C9_HOSTNAME,\\n     },\\n     server: {\\n         host: process.env.IP,\\n         port: process.env.PORT\\n     }\\n }
    \\n
  8. \\n
  9. Run Ghost by typing npm start in the console or by opening index.js and\\nhitting the run button.

    \\n
  10. \\n
  11. Click the "Preview" button in the top menu in the IDE, and choose \\n"Preview with Web Server". This will open the Preview window for your newly setup Ghost blog
  12. \\n
\\n

Change the URL to /ghost and create your admin user to login to the Ghost admin interface

\\n

Note:

These instructions are based on the official Ghost Installation Guide\\n
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_joomla\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Joomla\",\n \"contents\": \"\\n
\\n

Joomla

\\n

Joomla is a popular open source CMS. \\nInstalling Joomla is very straightforward, but there are just a few quirks to keep in mind, which we describe below.

\\n

Note:

all instructions here are based on Joomla v3.x.\\n\\n
\\n

Download Joomla

\\n
    \\n
  1. Create a Cloud9 workspace of type "Custom" or "PHP"
  2. \\n
  3. Download and Unzip Joomla from the Terminal. You can find the latest version on the Joomla website

    \\n
     wget http://joomlacode.org/gf/download/frsrelease/19665/160049/Joomla_3.3.3-Stable-Full_Package.zip\\n unzip Joomla*.zip\\n rm Joomla*.zip
    \\n
  4. \\n
\\n

Start the database

\\n

Joomla requires a MySQL database to connect to. MySQL is pre-installed in your workspace, so just execute these commands:

\\n
mysql-ctl install\\nmysql-ctl start
\\n

... and then note the credentials to use in the configuration of Joomla later on.

\\n

Install Joomla

\\n

To run the Joomla installer, open index.php and run it with the "Run" (or "Run Project") button at the top of the IDE.\\nNext, click the URL that's displayed in the Run panel, which looks something like https://joomla-c9-username.c9.io/installation/index.php#. \\nThis will open up the Preview window with the installer.

\\n

Now, here comes the quirky part: the installer will not work properly if it's loaded over HTTPS, as the Cloud9 Preview window does by default.\\nSo, in order to make the Joomla installer work, do the following:

\\n
    \\n
  1. Pop out the Preview by clicking the Popout icon \\\"Preview (or copy & load the URL in a browser tab)
  2. \\n
  3. Change the URL from https:// to http:// and load it
  4. \\n
\\n

Now you should be able you to get through the installer successfully.

\\n

Main configuration

\\n

The main Configuration screen should look like this:

\\n

\\\"Joomla

\\n

Enter whatever values you'd like here.

\\n

Database

\\n

The second quirky and important thing to keep in mind in the Database section, is to use Host Name "0.0.0.0" instead of "localhost".

\\n

So use values like shown in the screenshot below:

\\n

\\\"Joomla

\\n

Finally

\\n

Use whatever settings you'd like in the final installation screen, and after it completes, have Joomla remove the Installation folder for safety.

\\n

That's it, you're done and your Joomla setup should run fully on Cloud9!

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"revisions\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Revisions\",\n \"contents\": \"\\n

Revisions

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n
\\n\\n
\\n\\n

Every time you save a file on Cloud9, a diff of any changes made to it is saved by the server. Over time, you can view these file revisions as content is added and removed from your files. You can also restore a file to any previously saved state; you'll never have to worry about losing your work ever again!

\\n

To access file revisions, you can either go to File > File Revisions History, or type Cmd-B on Mac or Ctrl-B on Linux/Windows. This will pop open the Revisions History panel. Red lines indicate lines that were removed; green lines indicate lines that were either added or changed.

\\n

At the bottom of the panel, there's a checkbox for showing all of a file's changes. Files changes that occur relatively soon to one another--say, a few seconds--are grouped by the revisions panel as one "change." If you prefer to see every single change as an individual entry, enable the Show all file changes checkbox.

\\n

To restore a file to a previous revision, simply click the revisions button for that entry: \\\"Revisions

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_koa\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Framework: Koa\",\n \"contents\": \"\\n

Framework: Koa

\\n

Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.

\\n

To get started with a Koa app, first create a workspace and choose either the Node.js type, or a Custom workspace type for a clean workspace.

\\n

Koa.Js makes use of the new generator feature in javascript ECMA 6. \\nThis feature is support in Node from 0.11 and up by toggling the --harmony flag. \\nBy default Cloud9 runs Node v0.10.x or v0.8.x, depending on your setup, so we first need activate Node version 0.11.x.

\\n

Open a Terminal, or using the pre-existing one at the bottom and execute the following in your Terminal:

\\n
nvm use 0.11
\\n

Next, we need to install Koa itself:

\\n
npm install koa
\\n

Now we can create a simple Koa.Js server.\\nCreate a server.js file in your root folder with this code:

\\n
var koa = require('koa');\\nvar app = koa();\\n\\napp.use(function *(){\\n    this.body = '<h1>Hello from Koa.Js</h1>';\\n});\\n\\napp.listen(process.env.PORT);
\\n

If you now press the Run button on top of the IDE, you will see some errors, as the runner/debugger defaults to 'Node (default)', which is Node version 0.10.x or 0.8.x.

\\n

Luckily all you need is to create a Runner file so Cloud9 can run Node 11.x in harmony mode and thereby support generators.

\\n

In the Run panel below, click the 'Runner' text input and choose 'New Runner'. \\nIn the new Runner file that's opened, save the following code as 'Node 0.11.x.run':

\\n
// This file overrides the built-in Node 0.11.x runner\\n// For more information see http://docs.c9.io:8080/#!/api/run-method-run\\n{\\n  \\\"cmd\\\": [\\n    \\\"bash\\\",\\n    \\\"--login\\\",\\n    \\\"-c\\\",\\n    \\\"nvm use 0.11 > /dev/null; node --harmony ${debug?--nocrankshaft --nolazy --debug-brk=15454} '$file' $args\\\"\\n  ],\\n  \\\"debugger\\\": \\\"v8\\\",\\n  \\\"debugport\\\": 15454,\\n  \\\"info\\\": \\\"Your code is running at \\\\\\\\033[01;34m$url\\\\\\\\033[00m.\\\\n\\\\\\\\033[01;31mImportant:\\\\\\\\033[00m use \\\\\\\\033[01;32mprocess.env.PORT\\\\\\\\033[00m as the port and \\\\\\\\033[01;32mprocess.env.IP\\\\\\\\033[00m as the host in your scripts!\\\\n\\\"\\n}
\\n

Note:

alternatively, you can check 'Show Hidden Files' in your workspace directory tree (the small gear in the upper right corner), and create a new file in the '.c9/runners' folder called 'Node 0.11.x.run' with this code.\\n\\n
\\n

Let's run server.js with this new configuration; in the Run panel on the bottom, choose your new 'Node 0.11.x' Runner, and press Run again.

\\n

You Koa.Js server should now be up and running.

\\n

Now if you click the Preview button in the top menu in the IDE, and choose "Preview with Web Server", this will open the Preview window for your running app.

\\n

(Credits go to Tom at http://kyorcode.blogspot.nl/2014/08/running-koajs-in-cloud9.html)

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_express\",\n \"mtime\": 1416998221000,\n \"pageTitle\": \"Framework: Express\",\n \"contents\": \"\\n
\\n

Framework: Express

\\n

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

\\n

To get started with an Express app, first create a workspace and choose either the Node.js type, or a Custom workspace type for a clean workspace. Open the new workspace (or an existing one) to follow the instructions below.

\\n

Installation

\\n

First we'll install the Express project generator and generate an application stub:

\\n
$ npm install -g express-generator\\n$ express -f .\\n$ npm install
\\n

You might want to take a look at package.json and update the application name from the default workspace to something more fitting.

\\n

Running

\\n

Now you have a fully configured express application already. You can run it from the terminal using:

\\n
$ bin/www
\\n

Now if you click the Preview button in the top menu in the IDE, and choose "Preview with Web Server", this will open the Preview window for your running app.

\\n

Creating a Run Configuration

\\n

In order to make life easier you can create a run configuration for express.

\\n
    \\n
  1. Click Run -> Run Configurations -> Manage ...
  2. \\n
  3. Click Add New Config
  4. \\n
  5. In the run panel fill in Express as name, bin/www as the command and Node 0.10.x as the runner.
  6. \\n
  7. You can optionally make this run configuration the default runner by clicking Set As Default. If you do so then clicking the run button will always run the app and not the currently opened file.
  8. \\n
\\n

The finished run configuration should look something like this

\\n

\\\"Express

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_laravel\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Framework: Laravel\",\n \"contents\": \"\\n

Framework: Laravel

\\n

For Laravel there are some installation guides around which tell you to install PHP first, but that's not necessary with Cloud9.\\nJust make a new workspace, choose PHP, go to the Terminal, and execute the following:

\\n
rm README.md php.ini hello-world.php\\ncomposer create-project laravel/laravel ./laravel --prefer-dist\\nshopt -s dotglob\\nmv laravel/* ./\\nrm -rf laravel
\\n

As lavarel is serving its content from the public directory we need to modify the apache config:

\\n
sudo vi /etc/apache2/sites-enabled/001-cloud9.conf
\\n

Then do the following:

\\n
// Change this line\\nDocumentRoot /home/ubuntu/workspace\\n\\n// To following\\nDocumentRoot /home/ubuntu/workspace/public
\\n

Run the project with the "Run Project" button in the menu bar on top of the IDE.\\nIf you click the URL that appears in the Run panel below (in the shape of 'https://laravel-c9-username.c9.io/'), you can preview your new Laravel app.

\\n

\\\"Run

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_meteor\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Framework: Meteor\",\n \"contents\": \"\\n

Framework: Meteor

\\n

Meteor is an open-source platform for building web apps.

\\n

Create a Meteor app as follows:

\\n
    \\n
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. \\n
  3. Open a Terminal, or using the pre-existing one at the bottom
  4. \\n
  5. Run the following commands in the Terminal:

    \\n
     curl https://install.meteor.com/ | sh\\n meteor create ./my_cool_app\\n cd my_cool_app/\\n meteor --port $IP:$PORT
    \\n
  6. \\n
  7. Click the Preview button in the top menu in the IDE, and choose "Preview with Web Server". This will open the Preview window for your running app.

    \\n
  8. \\n
\\n

Note:

Alternatively, for the last step, click on the link that's displayed in the terminal, and change it in the resulting Preview to http://127.0.0.1:8080.
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_symfony2\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Framework: Symfony2 \",\n \"contents\": \"\\n
\\n

Framework: Symfony2

\\n

Symfony is one of the leading PHP Webframeworks. It is Open-Source and built on top of the Symfony Components.

\\n

Getting started

\\n
    \\n
  1. Create a Cloud9 workspace of the type "Custom" or "PHP"
  2. \\n
  3. Install the Intl extension for PHP that is required in most of the Symfony2 projects

    \\n
     sudo apt-get install php5-intl
    \\n
  4. \\n
  5. Set a valid PHP timezone

    \\n
     echo 'date.timezone = UTC' | sudo tee --append /etc/php5/apache2/php.ini
    \\n
  6. \\n
  7. Starting MySQL-Server

    \\n
     sudo mysql-ctl install\\n sudo mysql-ctl start
    \\n
  8. \\n
\\n

Create a Symfony-Project

\\n

Open your Terminal and execute the following to create a new Symfony-Project\\nYou need the first line only if you used the PHP Project type for your workspace.

\\n
    rm README.md php.ini hello-world.php\\n    composer create-project symfony/framework-standard-edition symfony/ \\\"2.5.*\\\"\\n    mv symfony/{*,.*} ./ \\n    rm -rf symfony
\\n

The create-project composer command will ask for a few parameters, the only one you need to pay special attention is the database-host parameter.

\\n

Running the project

\\n

There is a IP address checking in the web/app_dev.php file. To disable this check please remove the following lines

\\n
    // This check prevents access to debug front controllers that are deployed by accident to production servers.\\n    // Feel free to remove this, extend it, or make something more sophisticated.\\n    if (isset($_SERVER['HTTP_CLIENT_IP'])\\n        || isset($_SERVER['HTTP_X_FORWARDED_FOR'])\\n        || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))\\n    ) {\\n        header('HTTP/1.0 403 Forbidden');\\n        exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');\\n    }
\\n

After that add a new run configuration in Menu Run > Run Configurations > New Run Configuration. Select Apache http (PHP, HTML) as a Runner and web/app_dev.php as Command.\\nThat's it after you hit Run your server will start up and you can access your new Symfony project.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"run_an_application\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Run an application\",\n \"contents\": \"\\n
\\n

Run an application

\\n

On Hosted and SSH workspaces, Cloud9 provides two ways to run your application:

\\n
    \\n
  1. Using the Run panel with built-in Runners for many languages
  2. \\n
  3. From a Terminal
  4. \\n
\\n

Method 1: Use the Run panel

\\n

First, open the file you want to run.

\\n

Next, click on the Run button in the top menu bar in the IDE.

\\n

\\\"Run

\\n

The Run button acts as a sort of shortcut to the Run panel, which will appear by default in the bottom of the IDE when you run a file.\\nThis automatically runs the currently active file, and it will guess which Runner to use based on the extension of the file.

\\n

When you're ready to stop your app, click on the Stop Button button in the menu bar at any time, or from the Run panel below.

\\n

\\\"Run

\\n

On the Run panel, you'll notice a few more options you can set. \\nFilling these textboxes out creates a Run Configuration.

\\n
    \\n
  • Name: the name of your run scenario
  • \\n
  • Command: the command you want to run; this is usually the location of your running file in your project, but it also allows you to provide any additional command line arguments you want to pass to your app
  • \\n
  • Runner: defines how you want your code to be run. A wide range of Runners is available by default, from Apache to Node.js and Shell scripts, and you can define your own.
  • \\n
  • CWD: Set the current working directory to start from
  • \\n
  • Environment: Set environment variables
  • \\n
  • \\n
\\n

Tip:

If you can't find the Runner you need from the default set, you can create your own custom Runner.\\n\\n
\\n

For some default runners like Node.js, it's an option to Run in debug mode, which indicates that you want to run the current code through the debugger. \\nThis will reveal (or collapse) the debugging tools panel described in Running and Debugging your code.

\\n

Method 2: From the Terminal

\\n

The built-in Terminal provides access to all underlying system commands, including your Runners such as Node.js. \\nSimply open up a Terminal from the "+" sign, or use CMD+T (Mac) / Control+T (Windows), and then execute the command you need to run your app, e.g. node server.js.

\\n

(Pre-)View your application

\\n

To find out where your application is running you can do two things:

\\n
    \\n
  1. Use the Preview button on the top to preview one of your files. The URL in the browser bar in the Preview can also be used in any browser tab/window.
  2. \\n
  3. Use the Share button on the top to figure out the URLs of running Application and the Preview. The Editor URL is only used to share your entire Cloud9 workspace to collaborate on code.
  4. \\n
\\n

Tip:

If you can't find how to preview your running app, try to use port 8080 in the URL.
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setup_a_database\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Set up a database\",\n \"contents\": \"\\n
\\n

Set up a database

\\n

MySQL

\\n

From the Terminal, run the following command:

\\n
$ mysql-ctl install
\\n

The output will be:

\\n
MySQL 5.5 database added.  Please make note of these credentials:\\n\\nRoot User: username\\nDatabase Name: c9
\\n

Now you can connect to the database using the ip 127.0.0.1 and the default port 3306.\\nYou can also test it using our tool from the Terminal:

\\n
$ mysql-ctl cli\\nWelcome to the MySQL monitor.  Commands end with ; or \\\\g.\\nYour MySQL connection id is 24\\nServer version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu)\\n\\nCopyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.\\n\\nOracle is a registered trademark of Oracle Corporation and/or its\\naffiliates. Other names may be trademarks of their respective\\nowners.\\n\\nType 'help;' or '\\\\h' for help. Type '\\\\c' to clear the current input statement.\\n\\nmysql>  show databases;\\n+--------------------+\\n| Database           |\\n+--------------------+\\n| information_schema |\\n| c9                 |\\n| mysql              |\\n| performance_schema |\\n+--------------------+\\n4 rows in set (0.15 sec)
\\n

MongoDB

\\n

From the Terminal, run the following command:

\\n
$ mongod --bind_ip=$IP --nojournal
\\n

The output will include:

\\n
...\\nwaiting for connections on port 27017
\\n

Now you can open the mongo shell in a new Terminal, running following command:

\\n
$ mongo
\\n

To stop the MongoDB instance press Control+C in the Terminal where mongod is running.\\nNow have a look at the currently used database:

\\n
$ mongo\\nmongo> db\\ntest
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"dashboard\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"The Dashboard\",\n \"contents\": \"\\n

The Dashboard

\\n

After you have logged into Cloud9, you are placed into your account's dashboard. From here, you can edit your profile and manage workspaces you have access to.

\\n

\\\"An

\\n

In the top-left corner of the dashboard, your username is displayed. Within the user context, you can view your user profile by clicking on Your Account:

\\n

\\\"A

\\n

The user profile contains:

\\n
    \\n
  • Your recent activities, including a list of actions you have recently performed, such as cloning, opening, and deleting projects
  • \\n
  • Your add-on services, which you've integrated into Cloud9. Currently, these are GitHub and Bitbucket.
  • \\n
  • Your account settings, where you're given the following choices:
      \\n
    • Change your password
    • \\n
    • Show your SSH key
    • \\n
    • Upgrade to premium (or, downgrade from it)
    • \\n
    • Delete your account
    • \\n
    \\n
  • \\n
\\n

The gravatar that is used for your profile is handled by gravatar.com. If you don't have a gravatar yet, Cloud9 IDE uses an uninspiring default.

\\n

In the left panel, you'll find a list of various projects associated with your account. These are:

\\n
    \\n
  • My Projects: these are projects you've created or cloned, and own
  • \\n
  • Shared With Me: these are projects shared with you by other Cloud9 users
  • \\n
  • Recently Visited: these are projects you've seen lately
  • \\n
  • Projects on GitHub: a list of your uncloned public and private GitHub projects
  • \\n
  • Projects on Bitbucket: a list of your uncloned public and private Bitbucket projects
  • \\n
\\n

Clicking on the \\\"Project next to MY PROJECTS lets you:

\\n
    \\n
  • Create a new project
  • \\n
  • Clone from URL
  • \\n
\\n

\\\"Creating

\\n

For more information on creating new workspaces, see this section of the documentation.

\\n

You can always filter your project list by entering text in the text bar to find matching projects. If you need to update the list, click the refresh icon at the bottom of the panel: \\\"Refresh

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"create_a_workspace\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Create a Workspace\",\n \"contents\": \"\\n

Create a Workspace

\\n

Cloud9 supports three types of workspaces:

\\n
    \\n
  1. Hosted
  2. \\n
  3. FTP
  4. \\n
  5. SSH
  6. \\n
\\n

"Hosted" is the best choice for most people, so in this short "Getting Started" article we'll only describe this option; for other options please read the full Creating a new workspace article.

\\n

The first step for creating a new workspace is click the "CREATE NEW WORKSPACE" button in your Dashboard:

\\n

\\\"New

\\n

At this point, you'll encounter two choices: Create a new workspace and Clone from URL. \\nIn this article we'll only describe the Create a New Workspace option, which allows you to create any of the previously mentioned types of workspaces (hosted, FTP, or SSH).

\\n

After clicking on Create a new workspace, you're taken to the screen below:

\\n

\\\"Options

\\n

First, let's enter a workspace name.\\nDepending on whether you have a Free of Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with).

\\n

After this, choose the type of workspace you want to create:

\\n\\n

Choose the "Hosted" workspace type to start from scratch with a 'Custom' workspace, or simply pick a pre-configured environment like Node.js, WordPress, or Python/Django, and immediately start developing your app.\\nThis way you don't need to spend valuable development time on system setup and maintenance, as we maintain it, and you control it.

\\n

\\\"Options

\\n

As it's powered by a full Linux Ubuntu environment, hosted workspaces allow you to install any package (sudo apt-get install package), run git commands from the console to push your changes to a GitHub repo or a Bitbucket git repo, etcetera.

\\n

Now press Create. That's it! You can now see your new workspace in the dashboard:

\\n

\\\"New

\\n

Now, just click Start Editing to get started!

\\n

Next up, read how to run an application and set up a database.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"ide_overview\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"IDE Overview\",\n \"contents\": \"\\n
\\n

IDE Overview

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n

Cloud9 IDE can be thought of as being divided into the following components:

\\n

\\\"IDE

\\n

Throughout the documentation, we'll refer to these sections by name. We can identify several distinct areas in the editor:

\\n
    \\n
  • The top menu bar is the uppermost area, with easy access to a variety of menus
  • \\n
  • The project bar on the left lets you manipulate various aspects of your project, including its active files, preferences, and choices for deployment
  • \\n
  • The panel displays views according to what's been selected in the project bar
  • \\n
  • The toolbar is on the far right, where you can find tools used when debugging your code. Projects that are open with collaboration also make use of this panel for chatting.
  • \\n
  • The code editor is the main area where you write your code.
  • \\n
  • The console is the bottom area of the window. It's an expandable area that can act like a desktop terminal to enter command line input (like ls or mkdir). It also displays output provided by your program's print statements (like console.log()), as well as providing an area for search results
  • \\n
\\n

The Project Bar, Tool Bar, and Console are powerful features, so their documentation is provided separately. We'll talk about the rest of the editor below:

\\n

Remember: nearly every UI element can be collapsed, in order to provided a more harmonious coding experience. For example, clicking on the buttons in the upper left of the editor allows you to hide the panels and top menu bar:
\\\"Hiding

\\n

The Top Menu Bar

\\n

\\\"A

\\n

In this section, you can find the usual menus for creating and saving files, changing your view, applying a new theme for the editor, and switching between windows.

\\n

In the middle of the menu bar you'll find the debug button: \\\"The. This is used for running and debugging your code. For more information, see the section on "Running and Debugging Your Code"..

\\n

\\n

The preview button \\\"The provides you with a look of what the currently active file would look like in the browser. For text files, this is usually just the raw text, but certain files, like HTML or XML, render as the actual markup.

\\n

The autosave button indicates the status of your current saves: \\\"Autosave. Files are saved automatically by Cloud9 IDE, and every revision is made available for you to browse through. For more information, see the section on revisions and saving.

\\n

On the far right of the menu, near the Cloud9 IDE logo, there are two more icons: one to return to the dashboard, and one to return to the Cloud9 IDE homepage.

\\n

The Code Editor

\\n

This is where most of the action happens. Every file you open appears here as a tab. You can open a new file easily by clicking on the \\\"Tab button to the right of the last tab. Cloud9 IDE offers syntax highlighting for over two dozen programming languages.

\\n

The code editor supports a large number of keyboard shortcuts to increase your productivity. For an up-to-date list of these within the IDE, simply go to Help > Keyboard Shortcuts.

\\n

If you hover over to the upper-right corner, you can activate zen-mode, which is a full screen coding environment.

\\n

At the lower-right corner, you can find the status bar.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"share_a_workspace\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Share a workspace\",\n \"contents\": \"\\n
\\n

Share a workspace

\\n

As you develop your application, often you just want to quickly demo your work-in-progress to a colleague, customer, or friend. \\nOr you want to pull in a fellow dev to debug an issue, or to pair program.

\\n

Cloud9 enables you to do just these things, easily: share your entire development environment, the running application, or just a preview of your running application. \\nHere we describe how to access these options, and how to use each.

\\n

Share dialog

\\n

The best place to start sharing is from the dedicated "Share" dialog. \\nAccess it via the "Share" button on the right top of the IDE, or via the menu in Window > Share...

\\n

\\\"Share

\\n

Here's what you see when you pull up the Share dialog:

\\n

\\\"Share

\\n

Links to share

\\n
    \\n
  • Editor: see section "Share your development environment"
  • \\n
  • Application: see section "Share your application"
  • \\n
  • \\n
\\n

If you enable the "Public" checkbox for an option, it will make the URL accessible for anyone with the URL.\\nFor public workspaces all these URLs are public by default, but for private workspaces you have to enable them manually.

\\n

Who has access

\\n

This section refers to people you have specifically granted access to your entire development environment.\\n(R) gives Read access only to that person: the ability to open and view files, and to run your code.\\n(RW) or "Read/Write" also gives that person the ability to write to files.

\\n

Invite people

\\n

This section enables you to invite people to your workspace and immediately set if they have just "Read" or "Read+Write" rights. \\nYou can invite people by their email address or Cloud9 username. \\nYou can also choose whether or not send an automatic email to that person that they've been invited to your workspace.

\\n

Share your development environment

\\n

Cloud9's Collaboration features allow you to share your entire development environment so you can work on code together, much like working on a document in Google Docs.\\nYou'll actually be able to see each other's cursor as you type, run your app, share the Terminal(s), and talk in the group chat.\\nSee the screenshot below for what this looks like:

\\n

\\\"Collaboration

\\n

In order to share your entire development environment, do one of the following:

\\n
    \\n
  1. Make the URL publicly available to everyone: check the "Public" checkbox for the "Editor" in the "Links to Share" section.
  2. \\n
  3. Choose to share only with specific people: invite them from the "Invite people" section.
  4. \\n
  5. Grant/revoke access rights in the "Who has access" section.
  6. \\n
\\n

If someone asks for either Read or Read+Write access to your workspace, you can accept or deny them from the Collaboration panel on the right.

\\n

Note:

alternatively you can just share the URL to your workspace from the browser's URL bar and accept members as they request access to your workspace\\n\\n
\\n

Share your application

\\n

If you Run your application the result can be shared by copying the URL from the dialog. \\nThis URL can only be viewed if it's made Public by checking the "Public" checkbox next to the "Application" in the "Links to share" section.

\\n

People who have full read access to your workspace (as defined in the "Who has access") can view this URL whether it's public or not.

\\n

Note:

alternatively you can just share the URL to your running app from the Preview panels' URL bar\\n\\n
\\n

Share a Preview

\\n

If you Preview a file in your application, it can be shared by copying the URL from the dialog. \\nThis URL can only be viewed if it's made Public by checking the "Public" checkbox next to the "Preview" in the "Links to share" section.

\\n

People who have full read access to your workspace (as defined in the "Who has access") can view this URL whether it's public or not.

\\n

Note:

alternatively you can just share the URL to your Preview from the Preview panels' URL bar\\n\\n
\\n

Tip:

If you can't find how to preview your running app, try to use port 8080 in the URL.
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"console\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"The Console\",\n \"contents\": \"\\n
\\n

The Console

\\n

Note:

this feature is deprecated\\n\\n
\\n

The Console is at the bottom of the IDE. It's where you can enter command line input, view output from your program, and push and pull your files between your code repositories.

\\n

Note:

The Console contains a full-fledged terminal, which provides you with a TTY interface for direct access to the machine that Cloud9 is running on.\\n\\n
\\n

Available Commands

\\n

The terminal can perform all Unix commands, and allows for path autocompletion by hitting Tab.

\\n

For instance, you can use mercurial commands (hg) and git commands (git) to communicate with the system, and to push your code between repositories. Typing hg or git shows the complete list of commands that are available for these services. For more information about these commands, please check their respective documentation:

\\n\\n

To use mercurial commands on the project you are working on, you must have a mercurial project set up; the same holds true for git. Follow these links to learn more about how to set up these project in Cloud9:

\\n\\n

Output

\\n

The output tab in the Console shows information whenever a user is running or debugging a program. The content is similar to the output of a desktop terminal:
\\\"Screenshot

\\n

The output tab also displays the error and additional information that can improve your coding quality. You can use the Console to output results from your running application, just like a regular terminal.

\\n

As your process runs, you'll see a message similar to this one indicating that Cloud9 is running something in the background: \\\"Running

\\n

If you hover over this message, you can opt to cancel the process by clicking on the button: \\\"Cancelling

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_angularjs\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Framework AngularJS\",\n \"contents\": \"\\n

Framework AngularJS

\\n

AngularJS lets you write client-side web \\napplications as if you had a smarter browser.

\\n

Follow these steps to create an AngularJS application using the official project\\ntemplate:

\\n
    \\n
  1. Create a workspace and choose the PHP workspace type
  2. \\n
  3. Open a Terminal, or using the pre-existing one at the bottom
  4. \\n
  5. Run the following commands in the Terminal:
    rm -rf * .c9\\ngit clone https://github.com/angular/angular-seed.git .\\nnpm install\\nmv package.json package.json.bak\\njq '.scripts.start=\\\"http-server -a $IP -p $PORT\\\"' package.json.bak > package.json
    \\n
  6. \\n
  7. Click the Run Project button in the top menu of the IDE
  8. \\n
  9. Check the README.md for further steps
  10. \\n
\\n

Note:

We are choosing the PHP workspace type to in order to have the Apache runner\\nas a default so you can just click Run Project to get started. This doesn't\\nlimit the choice of the backend technology you might want to use.
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"keybindings\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Commands and Keybindings\",\n \"contents\": \"\\n

Commands and Keybindings

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n

Nearly every action in Cloud9 has a corresponding command associated with it. On top of that, every command also has a keybinding that can be used to effortlessly execute the command.

\\n

Below is a list of every single command and keybinding used by Cloud9. Have fun being efficient!

\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Command NameKeybinding
Abortclicommand˄-C
AddCursorAbove˄-⌥-Up
AddCursorAboveSkipCurrent˄-⌥-⇧-Up
AddCursorBelow˄-⌥-Down
AddCursorBelowSkipCurrent˄-⌥-⇧-Down
Backspace˄-⌫
Beautify⌘-⇧-B
Clearcut
Closeallbutme⌥-˄-W
Closealltabs⌥-⇧-W
Closetab⌥-W
Complete˄-Space
Copy⌘-C
Copylinesdown⌘-⌥-Down
Copylinesup⌘-⌥-Up
Cut⌘-X
DelDelete
DuplicateSelection⌘-⇧-D
Escapeconsole
EvalInteractive⌘-Return
Find⌘-F
Findnext⌘-G
Findprevious⌘-⇧-G
Fold⌘-⌥-L
Foldall⌘-⌥-0
GolinedownDown
GolineupUp
Gotoend⌘-End
Gotofile⌘-E
GotoleftLeft
Gotoline⌘-L
Gotolineend⌘-Right
Gotolinestart⌘-Left
GotopagedownPageDown
GotorightRight
Gotostart⌘-Home
Gototableft⌘-[
Gototabright⌘-]
Gotowordleft⌥-Left
Gotowordright⌥-Right
IndentTab
Jumptomatching˄-⇧-P
Largerfont˄-⇧-.
Movelinesdown⌥-Down
Movelinesup⌥-Up
Movetableft⌘-⌥-[
Movetabright⌘-⌥-]
Newfile⌥-⇧-N
Newfiletemplate⌥-˄-N
Newfolder⌥-˄-⇧-N
Nexttab⌥-Tab
Openfilepanel⇧-⌘-U
Opensettingspanel⌘-,
Opentreepanel⌘-U
Outdent⇧-Tab
Outline⌘-⇧-E
Paste⌘-V
Previoustab⌥-⇧-Tab
Quicksave⌘-S
Quickwatch⌥-Q
Redo⌘-⇧-Z
Removeline⌘-D
Removetolineend˄-K
Removetolinestart⌘-⌫
Removewordleft⌥-⌫
Removewordright⌥-Delete
RenameVar⌥-⌘-R
Replace⌥-⌘-F
Replaymacro⌘-˄-R
ResumeF8
Revealtab⇧-⌘-L
Reverttosaved˄-⇧-Q
Revisionpanel⌘-B
RunF5
Saveas⌘-⇧-S
Savetabsession⇧-˄-S
Searchinfiles⇧-⌘-F
SelectMoreAfter˄-⌥-Right
SelectMoreBefore˄-⌥-Left
SelectNextAfter˄-⌥-⇧-Right
SelectNextBefore˄-⌥-⇧-Left
Selectall⌘-A
Selectdown⇧-Down
Selectleft⇧-Left
Selectright⇧-Right
Selecttoend⌘-⇧-Down
Selecttolineend⌘-⇧-Right
Selecttolinestart⌘-⇧-Left
Selecttostart⌘-⇧-Up
Selectup⇧-Up
Selectwordleft⌥-⇧-Left
Selectwordright⌥-⇧-Right
Smallerfont˄-⇧-,
SplitIntoLines˄-⇧-L
StepintoF11
Stepout⇧-F11
StepoverF10
Stop⇧-F5
Switchconsole⇧-⎋
Tab0⌘-0
Tab1⌘-1
Tab2⌘-2
Tab3⌘-3
Tab4⌘-4
Tab5⌘-5
Tab6⌘-6
Tab7⌘-7
Tab8⌘-8
Tab9⌘-9
ToggleTabs˄-M
Togglecomment⌘-/
Toggleconsole˄-⎋
Togglerecording⌘-⇧-R
Tolowercase˄-⇧-U
Touppercase˄-U
Transposeletters˄-T
Undo⌘-Z
Unfold⌘-⌥-⇧-L
Unfoldall⌘-⌥-⇧-0
Zen⌥-Z
Zenslow⇧-⌥-Z
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Command NameKeybinding
AbortclicommandCtrl-C
AddCursorAboveCtrl-Alt-Up
AddCursorAboveSkipCurrentCtrl-Alt-Shift-Up
AddCursorBelowCtrl-Alt-Down
AddCursorBelowSkipCurrentCtrl-Alt-Shift-Down
BackspaceCommand-Backspace
BeautifyShift-Ctrl-B
ClearcutESC
CloseallbutmeCtrl-Alt-W
ClosealltabsCtrl-Shift-W
ClosetabCtrl-W
CompleteCtrl-Space
CopyCtrl-C
CopylinesdownAlt-Shift-Down
CopylinesupAlt-Shift-Up
CutCtrl-X
DelDelete
DuplicateSelectionCtrl-Shift-D
EscapeconsoleEsc
EvalInteractiveCtrl-Return
FindCtrl-F
FindnextCtrl-K
FindpreviousCtrl-Shift-K
FoldAlt-L
FoldallAlt-0
GolinedownDown
GolineupUp
GotoendCtrl-End
GotofileCtrl-E
GotoleftLeft
GotolineCtrl-G
GotolineendAlt-Right
GotolinestartAlt-Left
GotopagedownPageDown
GotorightRight
GotostartCtrl-Home
GototableftCtrl-[
GototabrightCtrl-]
GotowordleftCtrl-Left
GotowordrightCtrl-Right
IndentTab
JumptomatchingCtrl-P
LargerfontCtrl-Shift-.
MovelinesdownAlt-Down
MovelinesupAlt-Up
MovetableftCtrl-Alt[
MovetabrightCtrl-Alt-]
NewfileCtrl-N
NewfiletemplateCtrl-Alt-N
NewfolderCtrl-N
NexttabCtrl-Tab
OpenfilepanelShift-Ctrl-U
OpensettingspanelCtrl-,
OpentreepanelCtrl-U
OutdentShift-Tab
OutlineCtrl-Shift-E
PasteCtrl-V
PrevioustabCtrl-Shift-Tab
QuicksaveCtrl-S
QuickwatchAlt-Q
RedoCtrl-Shift-Z
RemovelineCtrl-D
RemovetolineendAlt-Delete
RemovetolinestartAlt-Backspace
RemovewordleftCtrl-Backspace
RemovewordrightCtrl-Delete
RenameVarCtrl-Alt-R
ReplaceAlt-Shift-F
ReplaymacroAlt-R
ResumeF8
RevealtabCtrl-Shift-L
ReverttosavedCtrl-Shift-Q
RevisionpanelCtrl-B
RunF5
SaveasCtrl-Shift-S
SavetabsessionShift-Ctrl-S
SearchinfilesCtrl-Shift-F
SelectMoreAfterCtrl-Alt-Right
SelectMoreBeforeCtrl-Alt-Left
SelectNextAfterCtrl-Alt-Shift-Right
SelectNextBeforeCtrl-Alt-Shift-Left
SelectallCtrl-A
SelectdownShift-Down
SelectleftShift-Left
SelectrightShift-Right
SelecttoendCtrl-Shift-End
SelecttolineendAlt-Shift-Right
SelecttolinestartAlt-Shift-Left
SelecttostartCtrl-Shift-Home
SelectupShift-Up
SelectwordleftCtrl-Shift-Left
SelectwordrightCtrl-Shift-Right
SmallerfontCtrl-Shift-,
SplitIntoLinesCtrl-Shift-L
StepintoF11
StepoutShift-F11
StepoverF10
StopShift-F5
SwitchconsoleShift-Esc
Tab0Ctrl-0
Tab1Ctrl-1
Tab2Ctrl-2
Tab3Ctrl-3
Tab4Ctrl-4
Tab5Ctrl-5
Tab6Ctrl-6
Tab7Ctrl-7
Tab8Ctrl-8
Tab9Ctrl-9
ToggleTabsCtrl-M
TogglecommentCtrl-/
ToggleconsoleF6
TogglerecordingAlt-Shift-R
TolowercaseCtrl-Shift-U
TouppercaseCtrl-U
TransposelettersCtrl-T
UndoCtrl-Z
UnfoldAlt-Shift-L
UnfoldallAlt-Shift-0
ZenAlt-Z
ZenslowShift-Alt-Z
\\n
\\n
\\n
\\n
\\n
\\n \"\n },\n {\n \"filename\": \"the_editor\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"The Editor\",\n \"contents\": \"\\n

The Editor

\\n

The editor is the most important element of any IDE; that's why Cloud9 developed ACE. ACE is a high-performance code editor for the web that supports over 40 different languages, over two dozen themes, and can still work faithfully on large documents (at last count, four million lines of code was the upper limit). It also contains a bevy of features you'd expect from traditional desktop editors. Among these include:

\\n
    \\n
  • Undo and Redo support
  • \\n
  • Cut, Copy, and Paste functionality
  • \\n
  • Line manipulation, including:
      \\n
    • Indenting and outdenting
    • \\n
    • Moving and copying lines up or down
    • \\n
    • Removing lines from any point
    • \\n
    • Splitting lines
    • \\n
    \\n
  • \\n
  • Highlighting and commenting blocks of code
  • \\n
  • Removing words to the right or the left
  • \\n
  • Transposing letters
  • \\n
  • Code folding (including the entire file)
  • \\n
  • Converting cases
  • \\n
  • Multiple cursors
  • \\n
  • Autocompletion
  • \\n
  • Code analysis and refactoring
  • \\n
  • Search in files with regular expressions
  • \\n
  • Intelligent selections, including:
      \\n
    • Selecting to word right or left
    • \\n
    • Selecting to line end or start
    • \\n
    • Selecting to document end or start
    • \\n
    \\n
  • \\n
  • Vim and Emacs keybindings
  • \\n
  • Line wrapping, to a defined column or the width of the browser window
  • \\n
  • Support for a command line
  • \\n
  • Support for spaces and real tabs
  • \\n
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"ide_preferences\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"IDE Preferences\",\n \"contents\": \"\\n
\\n

IDE Preferences

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n

There are many different ways to configure the IDE. Below is a list of the options available, and what they do.

\\n

Note:

All of these options are on a per-project basis. Changing them in one project does not affect any another.\\n\\n
\\n

General

\\n

This section controls the overall IDE behavior:

\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Preference NameDescription
Enable UI AnimationsEnables or disables fluid animations for various UI elements, such as the Project Bar
Animate ScrollingEnables or disables fluid animations when scrolling through code (such as for goto line)
Enable Auto-SaveIf enabled, automatically saves your files on every change
On Save, Strip WhitespaceWhen saving a file, you can remove all extraneous whitespace from your code lines
Reveal Active File in Project TreeEnabling this jumps the project tree to the active file whenever a tab changes to a different file
Warn Before ExitingPrevents accidental data loss by showing a dialog asking if you really want to leave Cloud9 IDE when closing your browser
Node.js RuntimeDefines the default runtime for your Node.js code. "Auto" is based on whatever is in the package.json file, while "Default" reverts to Node 0.6.x.
KeybindingsAllows you to choose which operating system to use for keyboard shortcuts
\\n

Language Support

\\n

This section controls language analysis options:

\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n
Preference NameDescription
Enable Hints and Warnings RulesPresents information about your code in the gutter
Highlight Variable InstancesHighlights variable instances in your code
Mark Undeclared VariablesProvides warnings if a variable is being used and has not been declared yet
Mark Unused Function ArgumentsProvides a strikethrough for arguments in a function that are not being used
Warning LevelSpecifies the minimum level of information severity you want provided in the gutter
\\n

Code Editor

\\n

This section controls language analysis options:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Preference NameDescription
Auto-pair Quotes, Brackets, etc.When enabled, typing ", (, or [ will actually make two characters appear. In addition, whenever you highlight a word and type one of these characters, it is surrounded by that character (e.g. words becomes "words")
Full Line SelectionWhen highlighting lines, this option will highlight all ending whitespace, until the end of the editor window
Highlight Active LinePresents a darker shade in the code editor to indicate which line you're currently on
Highlight Gutter LinePresents a darker shade in the gutter which line you're currently on
Show Invisible CharactersShows invisibles characters in the editor, like tabs and line breaks
Show Indent GuidesShows the indent guides in the editor, letting you see your code's nestings
Show GutterShows the gutter in the editor, which indicates line numbers, warnings, and errors
Highlight Selected WordIf you highlight a word, this highlights all matching words in the editor
Auto-hide Horizontal ScrollWhen this is enabled, this will hide the horizontal scroll bar in the editor. Note that this has no effect in Mac OS X 10.7 (Lion) and above, since all scrollbars, by default, auto-hide.
Vim ModeWhen enabled, allows you to use vim keybindings in the IDE
Code FoldingWhen enabled, allows you to show or hide "blocks" of code
Fade Fold WidgetsWhen enabled, fades the folding widgets in the gutter
Font SizeChanges the font size of the code in the editor
Show Print MarginShows (and defines) the number of characters possible in line, before it wraps
Soft TabsIndicates how many spaces a single tab represents
Mouse Scroll SpeedDefines the speed of the mouse scrolls
Newline ModeSpecifies the newline mode for the IDE
\\n

Terminal

\\n

This section controls the behavior for the terminal:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n
Preference NameDescription
ScrollbackSets the scrollback buffer for the terminal
Font FamilySets the font for the terminal
Font SizeSets the font size for the terminal
Blinking CursorSpecifies whether or not you want the cursor to blink
\\n

Code Tools

\\n

This section controls the various tools that are available in the IDE:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n
Preference NameDescription
Enable Color PickerMakes the color picker available for use
Preserve Empty LinesWhen enabled, the editor keeps any new lines without text
Keep Array IndentionWhen enabled, tabs and newlines in arrays are preserved. For example, the follow array would remain as-is with this option:\\n
\\n        var o = [{\\n            a: b\\n        }, {\\n            c: d\\n        }];\\n        
\\n
JSLint Strict WhitespaceIf selected, all brackets are preceded by a space. For example, if(x){ becomes if (x) {, and function(arg){ becomes function (arg) {
BracesThese options control how braces are handled in the IDE:\\n
    \\n
  • Braces with control statement: braces are left "in-line" alongside the code statements. For example, code is formatted like this:\\n
    \\n    if (true) {\\n        var x = 3;\\n    } else {\\n        var x = 5;\\n    }\\n    
    \\n
  • \\n
  • Braces on own line: braces are always placed on their own line. For example, code is formatted like this:\\n
    \\n    if (true)\\n    {\\n        var x = 3;\\n    } else\\n    {\\n        var x = 5;\\n    }\\n    
    \\n
  • \\n
  • End braces on own line: only the ending braces have their own line. For example, code is formatted like this:\\n
    \\n    if (true) {\\n        var x = 3;\\n    }\\n    else {\\n        var x = 5;\\n    }\\n    
    \\n
  • \\n
\\n
\\n
\\n
\\n \"\n },\n {\n \"filename\": \"terminal\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Terminal\",\n \"contents\": \"\\n

Terminal

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n

The terminal provides you with a TTY interface for direct access to the machine that Cloud9 is running on. If you're running your own workspace, this is the server you've SSH'ed into. If you're using the hosted Cloud9 platform, this is the server your code runs on.

\\n

Warning:

While certain operations, like sudo, are restricted, you can completely destroy your workspace, by doing something like rm -rf. Use your power wisely!\\n\\n
\\n

To create a new terminal, go to View > Terminals > New Terminal, or simply type Alt-T on the keyboard. The terminal has the following capabilities:

\\n
    \\n
  • Perform all Unix commands
  • \\n
  • You can create more than one instance of a terminal (by just creating a new tab)
  • \\n
  • The terminal allows for path autocompletion by hitting Tab
  • \\n
\\n

\\\"Screenshot

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"frameworks_jekyll\",\n \"mtime\": 1416998221000,\n \"pageTitle\": \"Framework: Jekyll\",\n \"contents\": \"\\n

Framework: Jekyll

\\n

Jekyll is a great static site generator, also used by github pages. You simply need to install the Ruby gem and then make sure you pass the right port to the serve command.

\\n
$ gem install jekyll\\n$ jekyll new my-awesome-site\\n$ cd my-awesome-site\\n$ jekyll serve --port $PORT
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"index\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Cloud9 IDE User Documentation\",\n \"contents\": \"\\n

Welcome to the official Cloud9 IDE documentation! Here, you'll find articles and tutorials to help you use the Cloud9 platform. These include everything from setting up a workspace, to learning how to run, debug, and deploy your code.

\\n\\n\\n

Getting started

\\n

Have a look at the "Getting Started" section on the left for an introduction into the basics of Cloud9.\\nFor instance, read up on how to:

\\n\\n

Getting More Help

\\n

If you're interested in troubleshooting specific aspects of the IDE, need help setting up an account, or just want to chat with our support team, please visit the Support pages.

\\n

Contact Us

\\n

Remember: All of our documentation content is open-sourced on GitHub, just like our amazing IDE.

\\n

See something that's not documented here? Simply add it to the documentation with a Pull Request, or send an e-mail to docs@c9.io, and we'll get it in.

\\n

Recently Updated Topics

\\n

Here's a list of the last five recently updated topics:

\\n\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_hosted_mysql\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"MySQL\",\n \"contents\": \"\\n
\\n

MySQL

\\n

MySQL is the world's most widely used open source relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases.

\\n

MySQL's most common features

\\n
    \\n
  • A broad subset of ANSI SQL 99, as well as extensions
  • \\n
  • Cross-platform support
  • \\n
  • Stored procedures
  • \\n
  • Triggers
  • \\n
  • Cursors
  • \\n
  • Updatable Views
  • \\n
  • Information schema
  • \\n
  • Many more
  • \\n
\\n

Using MySQL with Cloud9

\\n

Cloud9 IDE does not support installing a MySQL database (yet). As a workaround you can choose to connect your project to a MySQL database hosted elsewhere. Xeround\\noffers hosted MySQL instances and have a free tier available for getting started.

\\n

Xeround

\\n
    \\n
  1. Register with Xeround
  2. \\n
  3. Log in to your controlpanel
  4. \\n
  5. Choose 'create new'
  6. \\n
  7. Choose a datacenter
  8. \\n
  9. Enter your Database name, Username and Password and create
  10. \\n
  11. Select your newly created instance and click the 'External DNS Hostname' link provided to log into PHPMyAdmin
  12. \\n
  13. Create and import/setup your database
  14. \\n
\\n

Cloud9

\\n
    \\n
  1. Log into your account
  2. \\n
  3. Create a new project (or use an existing one)
  4. \\n
  5. Test the connection using the following script:

    \\n
             <?php\\n\\n         $database = new mysqli('instanceNo.db.xeround.com', 'username', 'password', 'databasename', 'port');\\n\\n         if($database->connect_errno > 0){\\n             die ('Database Error' . $database->connect_error); \\n         }else{\\n             die ('Connected!');\\n         }\\n         ?>
    \\n
  6. \\n
  7. Save the file
  8. \\n
  9. Run the file
  10. \\n
\\n

Source

\\n

Courtesy of Roger Qui of Polycadamy. This guide is elaborately explained in a video tutorial

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"project_bar\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"The Project Bar\",\n \"contents\": \"\\n

The Project Bar

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n

The project bar is located towards the left of the Cloud9 IDE: \\\"The

\\n

The buttons in the project bar allow you to reveal and hide panels for the IDE. In more detail:

\\n
    \\n
  • Pressing on the Cloud9 icon collapses the panel area
  • \\n
  • Project Files shows your workspace's directory structure. You can view all your files here. Right-clicking within this panel reveals a drop-down menu with additional options, such as the ability to rename files or create new directories.
  • \\n
  • Active Files lists your files that are currently open.
  • \\n
  • Run & Debug lets you run and debug your code live, in the browser. For more information, see the section on "Running and Debugging Your Code".
  • \\n
  • Deploy allows you to deploy to a variety of services. For more information, see the section on "Deploying Your Code".
  • \\n
  • Preferences lets you change the behavior of the editor. The Preferences documentation is provided on its own page.
  • \\n
\\n

Clicking on any button expands its menu. Clicking on an expanded menu causes it to collapse, which gives you more room in the IDE to work with.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"tab_functions\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Tab Functions\",\n \"contents\": \"\\n
\\n

Tab Functions

\\n

Note:

this article is outdated, a new version will follow soon\\n\\n
\\n

Cloud9 IDE offers advanced tab features to make working with multiple files easy. By right-clicking on any tab, you'll open up the tab context menu:

\\n

\\\"The

\\n

These feature include:

\\n
    \\n
  • Reveal in File Tree: opens the current file in the Project Files tree
  • \\n
  • Close Tab: closes the current tab
  • \\n
  • Close All Tabs: closes all the opened files
  • \\n
  • Close All But Current Tab: closes all the opened files, except the current one
  • \\n
  • Close Tabs to the Right/Left: closes all opened tabs to the right (or left) of the current one
  • \\n
  • File Revision History...: launches the revisions panel
  • \\n
\\n

To the left of the tab menu is another button that offers additional functions for tab navigation:
\\\"The

\\n

Tab Sessions

\\n
\\n\\n
\\n\\n

Tab sessions is a unique feature that is useful when dealing with projects that involve juggling between many tabs. Essentially, tab sessions lets you save the current state of the tabs. You can close your workspace, switch to a different branch, and instantly reload your previously opened files. You'll no longer need to work with opening and closing multiple files.

\\n

To use tab sessions, select Save Tab Sessions from the tab button menu. Give it a unique name. When you're ready to restore your tab sessions, just select Load Tab Sessions.

\\n

If you find that you've got too many tab sessions defined, you can always choose to delete them from the same tab menu.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"status_bar\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Status Bar\",\n \"contents\": \"\\n

Status Bar

\\n

Note:

this feature is deprecated\\n\\n
\\n

The status bar is designed to provide you with all sorts of information about your code--and additional functionality--without getting in the way of the IDE. It's quite tiny, and quite powerful, like a weight-lifting squirrel.

\\n

You can find the status bar in the lower-right corner of the editor: \\\"The. Keep in mind that the status bar is transparent, so it's able to camoflauge well with light or dark themes.

\\n

There's three pieces of crucial information available at all times: your current row, your current column, and, if you're highlighting characters, the status bar displays the number of bytes currently selected. If you're using Vim Mode, the status bar also tells you if you're in INSERT mode.

\\n

If you click on the status bar, it expands into a menu that provides a smaller set of the full IDE preferences. These options only deal with the IDE editor:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Preference NameDescription
Show InvisiblesShows invisibles characters in the editor, like tabs and line breaks
Wraps LinesWraps lines according to the line margin defined, or your browser's window. Otherwise, lines run off the current viewport.
Code FoldingWhen enabled, allows you to show or hide "blocks" of code
Full Line SelectionWhen highlighting lines, this option will highlight all ending whitespace, until the end of the editor window
Highlight Active LinePresents a darker shade in the code editor to indicate which line you're currently on
Show Indent GuidesShows the indent guides in the editor, letting you see your code's nestings
Show GutterShows the gutter in the editor, which indicates line numbers, warnings, and errors
Highlight Selected WordIf you highlight a word, this highlights all matching words in the editor
Auto-pair Quotes, Brackets, etc.When enabled, typing ", (, or [ will actually make two characters appear. In addition, whenever you highlight a word and type one of these characters, it is surrounded by that character (e.g. words becomes "words")
Auto-hide Horizontal Scrollbarhen this is enabled, this will hide the horizontal scroll bar in the editor. Note that this has no effect in Mac OS X 10.7 (Lion) and above, since all scrollbars, by default, auto-hide.
Font SizeChanges the font size of the code in the editor
Show Print MarginShows (and defines) the number of characters possible in line, before it wraps
Soft TabsIndicates how many spaces a single tab represents
Mouse Scroll SpeedDefines the speed of the mouse scrolls
\\n
\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_mysql\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"MySQL\",\n \"contents\": \"\\n
\\n

MySQL

\\n

MySQL is the world's most widely used open source relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases.

\\n

MySQL's most common features

\\n
    \\n
  • A broad subset of ANSI SQL 99, as well as extensions
  • \\n
  • Cross-platform support
  • \\n
  • Stored procedures
  • \\n
  • Triggers
  • \\n
  • Cursors
  • \\n
  • Updatable Views
  • \\n
  • Information schema
  • \\n
  • Many more
  • \\n
\\n

Using MySQL with Cloud9

\\n

This article explains our first iteration of MySQL support in Cloud9. It makes it super easy to install, start and stop a MySQL instance right in your workspace. The nice thing is that every workspace will run a separate database so your projects will never interfere with each other. You can control MySQL with the mysql-ctl command line tool run from the terminal:

\\n
# start MySQL. Will create an empty database on first start\\n$ mysql-ctl start\\n\\n# stop MySQL\\n$ mysql-ctl stop\\n\\n# run the MySQL interactive shell\\n$ mysql-ctl cli
\\n

You can then connect to the database with following parameters:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Option\\n Value\\n Comment\\n
Hostname$IPThe same local IP as the application you run on Cloud9
Port3306The default MySQL port number
User$C9_USERYour Cloud9 user name
Password-No password since you can only access the DB from within the workspace
Databasec9The database name
\\n

Importing data into your database

\\n

To import existing data into your database run following commands:

\\n
mysql-ctl cli
\\n

You are now in the MySQL environment and can start the import:

\\n
mysql> use c9\\nmysql> source PATH_TO_SQL_FILE.sql
\\n

To verify that everything got imported run:

\\n
mysql> show tables;
\\n

Note:

MySQL socket file can be found in ~/lib/mysql/socket/mysql.sock\\n\\n
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"common_errors\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Common errors\",\n \"contents\": \"\\n
\\n

Common errors

\\n

Sometimes you run into issues when you run your project. Here you will find the most common issues and how to solve them.

\\n

Address in use or similar

\\n

The most common reason for an error thrown by your app stating that a port or address is in use is the fact that some process is already running/listening on that port/address. You need to take a look for those and kill the processes conflicting with your app:

\\n
// Find the process\\nlsof -i tcp:$PORT
\\n

If any relevant process is running you will get a list looking like this:

\\n
COMMAND PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME\\napache2 699 ubuntu    4u  IPv6 83213152      0t0  TCP *:http-alt (LISTEN)
\\n

You now can kill that proccess. Make sure you replace PID with the ID of the process.

\\n
// Kill the process\\nkill -9 PID
\\n

For the console wizards:

\\n
kill -9 $(lsof -i:$PORT -t)
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_mongodb\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"MongoDB\",\n \"contents\": \"\\n
\\n

MongoDB

\\n

MongoDB is a scalable, high-performance, open source NoSQL database.

\\n

MongoDB's most common features

\\n
    \\n
  • Document-Oriented Storage
    \\nJSON-style documents with dynamic schemas offer simplicity and power.

    \\n
  • \\n
  • Full Index Support
    \\nIndex on any attribute, just like you're used to.

    \\n
  • \\n
  • Querying
    \\nRich, document-based queries.

    \\n
  • \\n
\\n

In addition, MongoDB has many scalability features such as:

\\n

Replication, Auto-sharding, Map/Reduce and GridFS

\\n

Running MongoDB on a Cloud9 workspace

\\n

MongoDB is preinstalled in your workspace. To run MongoDB, run the following below (passing the correct parameters to it). Mongodb data will be stored in the folder data.

\\n
$ mkdir data\\n$ echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \\\"$@\\\"' > mongod\\n$ chmod a+x mongod
\\n

You can start mongodb by running the mongod script on your project root:
\\n$ ./mongod

\\n

MongoDB parameters used:

\\n

| Parameter | Description |\\n| ------------------------------ | ----------------------------------------------------------------------------------------------- |\\n| --dbpath=data | Because it defaults to /var/db which isn't accessible) |\\n| --nojournal | Because mongodb usually pre-allocates 2 GB journal file (which exceeds Cloud9 disk space quota) |\\n| --bind_ip=$IP | Because you can't bind to 0.0.0.0) |\\n| --rest | Runs on default port 28017 |

\\n

Drivers

\\n

You should use the host $IP instead of localhost as your driver connection url.
\\ne.g. in Node, it is: process.env.IP

\\n

MongoDB has drivers for all supported runtimes. Following are the most commonly used drivers:

\\n

Node.JS apps

\\n

Mongoose
\\nNode-Mongodb-Native

\\n

Shell Access

\\n

To access a shell prompt for the above MongoDB run the following.

\\n
$ mongo
\\n

Check out docs.mongodb.org for details on how to use the shell

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"creating_coffeescript_app\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Create a CoffeeScript Project\",\n \"contents\": \"\\n

Create a CoffeeScript Project

\\n

For this tutorial, we'll show you how to create and run a CoffeeScript project, entirely within the Cloud9 IDE. To run any coffeescript project, you'll need to first make sure to install the coffeescript module via the Node Package Manager (npm). We're going to walk you through how to do that with a sample project.

\\n

First, create a new project. Then, in the console, enter the following command:

\\n
git clone git://github.com/fjakobs/cloud9-coffeescript-example.git
\\n

This is a sample CoffeeScript application written by one of our developers. After cloning the project, you'll find three different files in the project tree: server.js, app.coffee, and README.md.

\\n

The README.md file contains instructions to install coffee-script using npm. We've integrated Node Package Manager into Cloud9 IDE to enable users to install Node programs. Thus, from the Cloud9 IDE command line, type the following command to install the Coffeescript module:

\\n
npm install coffee-script
\\n

Next, let's have a look at the server.js file. The first line is the require() function, which is used to load the coffee-script module that you have just installed. On the second line, we declare the CoffeeScript file that contains your application. In the last line, we specify the port the server is listening to. When projects run within Cloud9 IDE, you must retrieve the port information using process.env.PORT.

\\n

Now, let's look at what the CoffeeScript file does. It creates an HTTP server with a function that is called for each request. In the callback function, you create a response with a status code of 200 (indicating that the request was fulfilled successfully) and the message "Hello World". You use module.exports to enable the server.js file to use the code in the CoffeeScript file:

\\n
http = require \\\"http\\\"\\n\\nmodule.exports = http.createServer((req, res) ->\\n    res.writeHead 200, 'Content-Type': 'text/plain'\\n    res.end 'Hello World\\\\n'
\\n

Next, run the server.js file and open the URL indicated in the console:

\\n

\\\"Messages

\\n

The result is:

\\n

\\\"The

\\n

To stop your application, go back to the editor and click on the \\\"Icon button in the Menu Bar.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"editing_wordpress_sites\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Editing Remote WordPress Websites via FTP\",\n \"contents\": \"\\n

Editing Remote WordPress Websites via FTP

\\n
\\n\\n
\\n\\n

Did you know that you can use Cloud9 IDE to work on your WordPress website? It's true, and incredibly easy. You can't edit your posts on WordPress using Cloud9, since they are stored in a database on your server. But you can edit pretty much every other aspect of your site.

\\n

To start, you'll need to create a new FTP project. After that, enter your wp-content folder, find the theme you're using on your website, and start editing its style.

\\n

Thanks to the preview button in the menu bar, you can also witness your changes as they happen, before committing them to your server.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_postgresql\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"PostgreSQL\",\n \"contents\": \"\\n
\\n

PostgreSQL

\\n

Installing PostgreSQL on a Cloud9 workspace

\\n

PostgreSQL comes preinstalled on every Cloud9 workspace, yay.

\\n

Start the PostgreSQL service

\\n
$ sudo service postgresql start
\\n

Set the "postgres" user password

\\n
$ sudo sudo -u postgres psql                                                                                  \\npsql (9.3.4, server 9.3.5)\\nType \\\"help\\\" for help.\\n\\npostgres=# \\\\password\\nEnter new password: \\nEnter it again: \\npostgres=# \\\\q
\\n

Connect to the service

\\n
$ sudo sudo -u postgres psql                                                                                  
\\n

Create a PostgreSQL database

\\n

Make sure you have logged into the PostgreSQL terminal and then you can just run:

\\n
$ sudo sudo -u postgres psql                                                                                  \\npostgres=# create database \\\"groceries\\\";
\\n

List all databases

\\n
$ sudo sudo -u postgres psql                                                                                  \\npostgres=# \\\\list
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"installing_npm_modules\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Installing NPM Modules\",\n \"contents\": \"\\n

Installing NPM Modules

\\n

Since Cloud9 IDE is built on top of Node.js, we also leverage the module system NPM. In Cloud9, you can install any npm package either locally or globally. Note that due to security restrictions, modules installed globally can only be used in the project they were installed from. In other words, while you have access to any command line tools installed by the module, they are bound to the project, not your username. We run version 1.1.24 of npm.

\\n

To demonstrate the power of NPM, we'll build and run a quick express server:

\\n
    \\n
  1. Launch the command line by hitting Shift-Escape. You can also go to View > Command Line if it's not visible.
  2. \\n
  3. Type npm install express, and wait for the npm install process to complete.
  4. \\n
  5. Create a new JavaScript file, and paste the following code:
  6. \\n
\\n
var express = require('express'),\\n    app = express();\\n\\napp.use(express.logger());\\n\\napp.get('/', function(req, res){\\n    res.send('Hello World');\\n});\\n\\napp.listen(process.env.PORT);\\nconsole.log('Express server started on port %s', process.env.PORT);
\\n

To launch your express server, click on the \\\"The button in the menu bar.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"installing_python_packages\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Installing Python Packages\",\n \"contents\": \"\\n

Installing Python Packages

\\n

Cloud9 supports the installation of Python packages for applications that need to go beyond the standard library set. Every workspace has version 0.6.10 of Python's easy_install package manager. For more information on this module, see the official easy_install documentation.

\\n

Let's try installing a package. First, type the following in the console:

\\n
easy_install markdown
\\n

This installs the markdown Python package to your workspace. You won't see the package installed in the directory tree, because it's kept deep within your project's the Python libs.

\\n

Next, create a new Python script, and add these lines of code:

\\n
import markdown\\n\\nhtml = markdown.markdown(\\\"# HELLO THERE!\\\")\\n\\nprint html
\\n

After clicking run, the console will correctly print out <h1>HELLO THERE!</h1>.

\\n

You have access to all of the functionality easy_install provides you. For example, you can open up the Python REPL and type the following to see a list of your installed packages:

\\n
>>> help('modules')
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_redis\",\n \"mtime\": 1416998221000,\n \"pageTitle\": \"Redis\",\n \"contents\": \"\\n
\\n

Redis

\\n

Running

\\n

Cloud9 workspaces come with redis pre-installed.

\\n

Start the server:

\\n
sudo service redis-server start
\\n

Connect with the client:

\\n
./redis-cli
\\n

Drivers

\\n

See http://redis.io/clients for drivers.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_sqlite3\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"SQLite\",\n \"contents\": \"\\n
\\n

SQLite

\\n

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

\\n

Note:

SQLite supports full text search and ACID transactions (atomic, consistent, isolated, and durable)\\nWith its simplicity and zero-configuration, SQLite is a popular choice for new applications.\\n\\n
\\n

Getting started

\\n

You can open the terminal and create a database in a file db_test.db as follows:

\\n

\\\"Screenshot

\\n

Try yourself

\\n
$ sqlite3 db_test.db\\nSQLite version 3.6.20\\nEnter \\\".help\\\" for instructions\\nEnter SQL statements terminated with a \\\";\\\"\\nsqlite> create table tbl1(one varchar(10), two smallint);\\nsqlite> insert into tbl1 values('hello!',10);\\nsqlite> insert into tbl1 values('goodbye', 20);\\nsqlite> select * from tbl1;\\nhello!|10\\ngoodbye|20\\nsqlite> CREATE TABLE tbl2 (\\n   ...>   f1 varchar(30) primary key,\\n   ...>   f2 text,\\n   ...>   f3 real\\n   ...> );\\nsqlite> .exit
\\n

To get to know sqlite commands, use the command: .help.

\\n

To exit sqlite, use the command: .exit.

\\n

Drivers

\\n

SQLite has drivers for all supported runtimes.

\\n

Following are the most commonly used drivers:

\\n

Node.JS apps

\\n

node-sqlite

\\n

Rails apps

\\n

In your Gemfile, include the line:

\\n
gem 'sqlite3'
\\n

and in configs/database.yml, make sure you use:

\\n
adapter: sqlite3\\ndatabase: db/development.db
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"running_a_rails_app\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Running a Rails App\",\n \"contents\": \"\\n
\\n

Running a Rails App

\\n

Cloud9 IDE also supports the ability to run a Rails application. The rails command is only available on the terminal.

\\n

To run a rails application:

\\n
    \\n
  1. Open the terminal and type gem install rails
  2. \\n
  3. When done, type rails new example -d mysql
  4. \\n
  5. Edit your database configuration in configs/database.yml
  6. \\n
  7. Type rails s -b $IP -p $PORT
  8. \\n
\\n

That's it! Your rails app will now be running.

\\n

Note:

http://<workspacename>-c9-<username>.c9.io should be running your application.\\n\\n
\\n

Do not try to access the project through the IP address and port number rails returns to you--it won't work!

\\n

Use MySQL in your rails app

\\n
    \\n
  1. Setup MySQl - note your DB connect parameters

    \\n
  2. \\n
  3. edit configs/database.yml

    \\n
  4. \\n
\\n
development:\\n  adapter: mysql2\\n  encoding: utf8\\n  database: c9\\n  username: <%=ENV['C9_USER']%>\\n  host: <%=ENV['IP']%>
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"installing_ruby_gems\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Installing Ruby Gems\",\n \"contents\": \"\\n

Installing Ruby Gems

\\n

Cloud9 supports the installation of Ruby gems in your workspace using the RubyGems package manager. The current installed RubyGems version is 1.3.7. For more information on the gem command, see the official RubyGems documentation.

\\n

Let's try installing a gem. First, type the following in the console:

\\n
gem install progressbar
\\n

This installs the progressbar Ruby gem to your workspace. You won't see the gem installed in the directory tree, because it's kept deep within your project's the Ruby libs.

\\n

Next, create a new Ruby script, and add these lines of code:

\\n
require 'progressbar'\\n\\nbar = ProgressBar.new(\\\"Example progress\\\", 50)\\ntotal = 0\\nuntil total >= 100\\n  sleep(rand(2)/2.0)\\n  increment = (rand(6) + 3)\\n  bar.inc(increment)\\n  total += increment\\nend
\\n

After clicking run, the console will start printing out an ASCII progressbar.

\\n

You have access to all of the functionality gem provides you. For example, you can open up the console and type gem query to see a list of your installed gems.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"running_wordpress_on_cloud9\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Running WordPress on Cloud9\",\n \"contents\": \"\\n
\\n

Running WordPress on Cloud9

\\n

WordPress is web software you can use to create websites or blogs.\\nYou can develop and host WordPress websites entirely on Cloud9 IDE

\\n

Creating a wordpress workspace

\\n

Create a WordPress workspace from the WordPress template on your Cloud9 dashboard

\\n

Note:

We will download, extract and configure WordPress for you.\\n\\n
\\n

In order to run WordPress, you need a database to host your posts, articles, etc.

\\n

You can use MySQL with our utility script mysql-ctl as explained in MySQL Setup

\\n

Running the website

\\n

To start MySQL server and create the required database, type in the terminal:

\\n
mysql-ctl start
\\n

Open index.php in your workspace root and click the Run button

\\n

You can check the generated config for you In wp-config.php (you don't need to change anything there)

\\n
define('DB_NAME', 'c9');\\ndefine('DB_USER', getenv('C9_USER'));\\ndefine('DB_PASSWORD', '');\\ndefine('DB_HOST', getenv('IP'));\\ndefine('WP_SITEURL', 'http://' . getenv('C9_PROJECT') . '.' . getenv('C9_USER') . '.c9.io');
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"running_and_debugging_code\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Running and Debugging Your Code\",\n \"contents\": \"\\n
\\n

Running and Debugging Your Code

\\n

Cloud9 IDE provides several ways to run and debug your code. We'll explore each of them in this section of the documentation.

\\n

Note:

Currently, only Javascript/Node.js applications can make use of the debugger. You can also execute Javascript/Node.js, Python, Ruby, and Apache+PHP applications.\\n\\n
\\n

The following information applies to all of the above programming languages.

\\n

Running Code

\\n

Running your code in Cloud9 is really easy. First, open the file you want to run. Usually, this file is going to be the main entry point to your app; for example, if you're creating a server, you'd want to run the file that actually instantiates that server.

\\n

There are two ways to run your code: either through the Run Panel, or through the run button in the menu bar.

\\n

Using the Run Panel

\\n

Next, click on the Run button in the project bar. You'll notice immediately that your active file is already available to run. Just double-click on the file, and you'll launch your app.

\\n

When you're ready to stop your app, click on the \\\"Icon button in the menu bar at any time.

\\n

At the bottom of the run panel, you'll notice a few more options you can set. Filling these textboxes out creates a run scenario, which is like setting up some configurations for the way your code runs. These options are:

\\n
    \\n
  • Name the name of your run scenario
  • \\n
  • File Path: the location of your running file in your project
  • \\n
  • Runtime: defines how you want your code to be run. Typically, you'd set different runtime versions here.
  • \\n
  • Cmd Line Args: allows you to provide any additional command line arguments you want to pass to your app
  • \\n
\\n

Of course, you can also save your run scenarios; just click on the add button at the top of the panel. When you're ready to run a scenario, click on its name in the Run panel list. To remove a run scenario, click on its name in the run panel list, and then click on the remove button.

\\n

Using the Run Button

\\n

The run button in the menu bar acts as a sort of short cut to the Run panel. When clicked, the button automatically runs the currently active file. If you have a list of run scenarios already defined, the run button also presents a list of those:

\\n

\\\"Run

\\n

Run in debug mode indicates that you want to run the current code through the debugger. Auto show & hide debug tools will reveal (or collapse) the debugging tools panel described below. You can also work with this presentation by going to View > Panels, and configuring the debugger there.

\\n

Console Output

\\n

Every time you run a project, the console expands to reveal output from your program. If you're launching a server, Cloud9 provides you with a URL to access the project. Otherwise, any statements sent by your application's print statements (like console.log() for Javascript, print for Python, or puts for Ruby) are also shown here. For example:
\\\"Console

\\n

Debugging Your Code

\\n

Setting up a project to debug is done in very much the same way as running your code. The only difference is that you must click on the run settings icon in the Run panel \\\"Run and select Run in debug mode. Similarly, you can select Run in debug mode from the run button.

\\n

Initially, the only difference this will make is the expansion of the debugging toolbar to the right of the editor:
\\\"The

\\n

This toolbar, however, grants you the following capabilities:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Toolbar IconDebugging FunctionDescription
\\\"DebuggingDebugging NavigationThis is a set of tools you can use to move around your code while debugging. You can step into, over, and out of your code, or simply press play to run the process until the next breakpoint.
\\\"IconCallstackThis is a structured list of information about the sequences of your code--basically, which functions are calling what, and where you are in the current process. It also stores local variables and function arguments, if present. You can use this feature to check how your code is running:
\\\"Callstack
\\\"IconInteractive ModeLets you evaluate a piece of code, such as expressions or the values and properties of variables. The text field allows you to type any code you want, in case you discover a way to fix you problem:\\n\\\"Interactive
\\\"IconVariable InspectionThis shows all the related variables (including functions) that are present in the current context:\\n\\\"Variable
\\\"IconBreakpoint ListAt any point during your coding or debugging session, you can click on the gutter to apply a breakpoint: \\\"Breakpoint. When debugging your code, the process pauses at your established breakpoints, so that you can inspect closely what's going on in a certain part of the code. You can click on the breakpoint list to view all the breakpoints in your workspace. If you click on the checkbox, you can enable or disable a breakpoint as well. You can also click on a breakpoint in the gutter to disable or enable it.
\\n

While debugging, you also have the power of the live inspector. While hovering over a piece of code in the editor, you'll instantly get some floating text that describes the values of that variable, similar to Variable Inspection.
\\\"Live

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"writing_a_python_app\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Writing a Python App\",\n \"contents\": \"\\n

Writing a Python App

\\n

While using Cloud9 IDE, you have access to the Python runtime. Accessing the command is no different than the way you'd use Python on your computer; just open the command line and type python. Currently, we run version 2.6.6.

\\n

To run a Python program that you've created, you can either:

\\n
    \\n
  • Open the command line and type python, followed by the name of your program; for example python hello_world.py
  • \\n
  • Create a new run scenario, so that you can do things like pass in command line arguments
  • \\n
\\n

As a quick demonstration, open a new file, and paste this Python code into it:

\\n
#!/usr/bin/python\\n\\nprint \\\"Hello World!\\\";
\\n

When you hit the \\\"The button in the menu bar, the console will print out Hello World!.

\\n

Note:

Currently, you can't debug Python applications, but we are working on adding this feature.
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"writing_a_go_app\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Writing a Go App\",\n \"contents\": \"\\n
\\n

Writing a Go App

\\n

Cloud9 IDE doesn't provide out-of-the-box support for the Go language, but with \\na few quick steps you can set up Cloud9 to build and run apps in Go!

\\n

Create a new workspace

\\n

First, create a new Custom workspace and call it whatever you want:

\\n

\\\"Create

\\n

After your new workspace is created, click the "start editing" button. At the \\nbottom of your workspace you will see the Terminal. If you prefer to have it\\nfullscreen, you can launch a terminal tab by pressing Alt-T, or from the menu: \\nView > Terminals > New Terminal.

\\n

From the terminal you can install & setup everything on the underlying virtual \\nenvironment that every workspace is provided with.

\\n

Download Go

\\n

When you first enter your Terminal, you will be in your workspace root folder, \\nwhich is a number such as ~/562166. Make a note of this directory name, as \\nyou'll need it later.

\\n

Let's use your home directory to download the Go distribution; to get there, \\nsimply enter the following in the Terminal:

\\n
cd ..
\\n

To download the Go distribution enter the following:

\\n
wget https://go.googlecode.com/files/go1.1.1.linux-amd64.tar.gz
\\n

Note:

at the time of writing the latest version was 1.1.1, but you might want to \\nuse a new version if it has become available. \\n\\n
\\n

After the download is complete, extract the archive:

\\n
tar -xzf go1.1.1.linux-amd64.tar.gz
\\n

Once the extraction is done, you will notice a new go directory in your home \\ndirectory. Feel free to delete the archive file you downloaded.

\\n

Set up your environment

\\n

The last step is to configure the environment so it can see the Go distribution \\nas well as our workspace Go files. To do this, edit your bash configuration \\nin the Terminal using vim (or emacs, nano, any simple editor will do):

\\n
vim ~/.bashrc
\\n

Add the following lines to your .bashrc file:

\\n
# setup go configuration \\nexport GOROOT=$HOME/go \\nexport PATH=$PATH:$GOROOT/bin \\n\\n# setup workspace t\\nexport GOPATH=$HOME/562166 \\nexport PATH=$PATH:$GOPATH/bin
\\n

Update the GOPATH line above to use the workspace directory you noted earlier \\n(so don't use $HOME/562166).

\\n

After you save your .bashrc file, load the new settings:

\\n
source ~/.bashrc
\\n

That's it! You should be good to Go (pun intended).

\\n

Note:

Thanks to Scotty Moon for writing an article about Go on Cloud9 IDE\\nand letting us use it for documentation!
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"terminal_monitor\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"The Terminal Monitor\",\n \"contents\": \"\\n

The Terminal Monitor

\\n

Many times your app returns errors which are hard to understand and even harder to resolve. This is where the Terminal Monitor comes in.\\nThe following video gives a quick overview of the features and how the Terminal Monitor helps you write better apps.

\\n\\n\\n

If you would like to propose additions or help which Terminal Monitor should provide, please send a message to support@c9.io

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"writing_a_ruby_app\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Writing a Ruby App\",\n \"contents\": \"\\n
\\n

Writing a Ruby App

\\n

While using Cloud9 IDE, you have access to the Ruby runtime. Accessing the command is no different than the way you'd use Ruby on your computer; just open the command line and type ruby. Currently, the default version is 1.9.3.

\\n

To run a Ruby program that you've created, you can either:

\\n
    \\n
  • Open the command line and type ruby, followed by the name of your program; for example ruby hello_world.rb
  • \\n
  • Create a new run scenario, so that you can do things like pass in command line arguments
  • \\n
\\n

As a quick demonstration, open a new file, and paste this Ruby code into it:

\\n
#!/usr/bin/ruby\\n\\nputs 'Hello world'
\\n

When you hit the \\\"The button in the menu bar, the console will print out Hello world.

\\n

Note:

Currently, you can't debug Ruby applications, but we are working on adding this feature.\\n\\n
\\n

RVM Support

\\n

We have rudimentary support for rvm, that allows you only to switch between versions 1.8.7 and 1.9.3. We don't support rvm per-project or global gemsets.

\\n

To use rvm, open the terminal and type:

\\n
# to switch to version 1.8.7\\nrvm use 1.8\\nrvm use 1.8.7 \\n\\n# to switch to version 1.9.3\\nrvm use 1.9\\nrvm use 1.9.3
\\n

However, if you like, you can install the "real" rvm by executing the following command in the terminal:

\\n
curl -L https://get.rvm.io | bash -s stable
\\n

To grab the latest rvm AND the latest Ruby version, type:

\\n
curl -L https://get.rvm.io | bash -s stable --ruby
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"creating_new_workspace\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Creating a New Workspace\",\n \"contents\": \"\\n
\\n

Creating a New Workspace

\\n

Cloud9 supports three types of workspaces:

\\n
    \\n
  1. Hosted
  2. \\n
  3. FTP
  4. \\n
  5. SSH
  6. \\n
\\n

In this article, we'll walk you through the creation of a new workspace and describe the choices you encounter.

\\n

The first step for creating a new workspace is click the "CREATE NEW WORKSPACE" button in your Dashboard:

\\n

\\\"New

\\n

At this point, you'll encounter two choices: Create a new workspace and Clone from URL. Here's what they mean:

\\n
    \\n
  • Create a New Workspace allows you to create any of the previously mentioned types of workspaces (hosted, FTP, or SSH).
  • \\n
  • Clone from URL allows you to instantly create a workspace from a repository, like GitHub or Bitbucket, using its URL. We'll explain more about this in the section below.
  • \\n
\\n

Create a New Workspace

\\n

After clicking on Create a new workspace, you're taken to the screen below:

\\n

\\\"Options

\\n

First, let's enter a workspace name.\\nDepending on whether you have a Free of Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with).

\\n

After this, choose the type of workspace you want to create:

\\n
    \\n
  • Hosted: This is a regular Cloud9 workspace, powered by a full Ubuntu environment. You even have sudo powers! This is the best choice for most people, and we've included some more info about it below.
  • \\n
  • FTP allows you to upload your files directly to an FTP server that you have access to
  • \\n
  • SSH, also called the "bring your own server" feature, lets you log into a server you own and run Cloud9 from there
  • \\n
\\n

Make a choice for the type of workspace and press Create. That's it! You can now see your new workspace in the dashboard:

\\n

\\\"New

\\n

Now, just click Start Editing to get started!

\\n

Hosted workspaces

\\n

Choose this workspace type to start from scratch with a 'Custom' workspace, or simply pick a pre-configured environment like Node.js, WordPress, or Python/Django, and immediately start developing your app.\\nThis way you don't need to spend valuable development time on system setup and maintenance, as we maintain it, and you control it.

\\n

\\\"Options

\\n

As it's powered by a full Linux Ubuntu environment, hosted workspaces allow you to install any package (sudo apt-get install package), run git commands from the console to push your changes to a GitHub repo or a Bitbucket git repo, etcetera.

\\n

Cloning from a URL

\\n

The second option for creating a new workspace is to clone one from URL. The URL would be, for example, the URL of a GitHub workspace.

\\n

In fact, let's clone a workspace. When you click on Clone from URL, you're taken to this screen:

\\n

\\\"Options

\\n

Paste the following GitHub URL in the textbox labeled Source URL: https://github.com/mattpardee/geekdots

\\n

If you have a premium account, you can choose who has access to your workspace. For regular users, the new workspace will be public.

\\n

Now, check out the workspace. It will be created under My Workspaces. You can now start editing it!

\\n

Deleting a Workspace

\\n

Now that you know how to create a workspace, you should also learn how to delete one. Look at the far right side of your dashboard:

\\n

\\\"Delete

\\n

Clicking on the Delete button prompts the IDE to ask for confirmation:
\\\"Confirmation

\\n

This is your last chance to change your mind. Once you have typed delete in the textbox and pressed the red button, your workspace will be gone forever from Cloud9. If you are sure you want to delete your workspace, go ahead and press the red button. Of course, if your workspace is hosted elsewhere, like on another git or FTP server, it still exists in those repositories.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"ftp_workspaces\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Setting up an FTP project\",\n \"contents\": \"\\n

Setting up an FTP project

\\n
\\n\\n
\\n\\n

In this article, we'll show you how to set up an FTP project.

\\n

Note:

Currently, Cloud9 IDE only supports passive FTP. Active FTP, SFTP and FTPS are not yet supported. For SSH connections, consider creating an SSH workspace.\\n\\n
\\n

To create an FTP project, go to the Dashboard and click on the \\\"Project next to MY PROJECTS. Choose the option to Create a new project (see "Creating a New Project" if you need to review the steps to create a new project):
\\\"New

\\n

In the pop-up window that appears, select FTP for the project type:

\\n

\\\"FTP

\\n

Let's review the options available for your FTP project:

\\n
    \\n
  • Hostname: the domain name or IP address of the machine running your FTP server.
  • \\n
  • Username: your username for the FTP server.
  • \\n
  • Password: your password for the FTP server.
  • \\n
  • Initial path: this is an optional parameter. You can set it as an absolute (starts with /) path. Otherwise, it'll be set to a relative path, and Cloud9 assumes that you want to start from the folder your FTP server leaves you after login (home or default folder).
  • \\n
\\n

Warning:

Be careful not to put an initial path that leaves you in a location where you don't have write privileges as that could cause problems.\\n\\n
\\n

Fill in your FTP details and click the Login Test to verify that the settings are correct. If the test succeeds, go ahead and click Create to create your FTP project. You'll then see your project in the Dashboard under My Projects:

\\n

\\\"New

\\n

When your new FTP project is selected, you will see three buttons: Start Editing, FTP settings, and Delete (on the far right). FTP settings gives you access to the settings you just filled in, as well as the login test. This is useful to use in case your login credentials have changed.

\\n

To get started with your FTP project, click on the Start Editing button. You'll be taken to the editor. Under Project Files, you should see the files from the FTP server in the directory you selected (either your home/default folder or the location indicated by the Initial Path, if you set it). The editor for FTP projects works the same as in other projects: you can create and edit your files in the usual way. The main difference is the FTP log at the bottom of the page (where the console is usually located for other non-FTP projects).

\\n

The FTP log displays output related to the interaction with the FTP server. The screenshot below, for example, shows what happens when we create a new file called TestFile.txt. The file is created in the FTP server and when I write to it, the contents are transferred.

\\n

\\\"Demonstrating

\\n

Note:

In an FTP project, all files are stored on your FTP server; Cloud9 only stores the FTP settings. Please keep this in mind. Cloud9 IDE does not keep any copies of your files, so make sure you back them up properly. Any changes you make to these files in Cloud9 are automatically reflected on the live web server.
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"writing_nodejs_hello_world\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Writing and Running a Node.js Program\",\n \"contents\": \"\\n
\\n

Writing and Running a Node.js Program

\\n

Cloud9 IDE was built on top of the Node.js platform, and as such, you have full access to the node runtime. Currently, we support running both version v0.6.x and v0.8.x.

\\n

In this section, we'll walk you through the creation of a simple Hello World program. To get started, you'll first need to create a (GitHub or Mercurial) project. If you need a refresher on how to do this, please refer to Creating a New Workspace.

\\n

A Simple Node.js HTTP Server

\\n

Once you're in Cloud9, create a new file called server.js. Type the following code in the file:

\\n
var http = require('http');\\nhttp.createServer(function (req, res) {\\n    res.writeHead(200, {'Content-Type': 'text/plain'});\\n    res.end('Hello World\\\\n');\\n}).listen(process.env.PORT, process.env.IP);
\\n

This is a Node.js HTTP server. It returns a simple "Hello World" page every time you access the page. In short, you are creating an HTTP server with a callback function that is called for each request.

\\n

In the callback function, you create a response with a status code of 200 (indicating that the request was fulfilled successfully) and the message "Hello World". Finally, you specify which port and IP address the server runs on. When Cloud9 IDE runs servers, you set and retrieve the IP address and port number with the process.env.IP and process.env.PORT variables.

\\n

When you hit the \\\"The button in the menu bar, the console will print out the following message:
\\\"Console

\\n

To see your application in action, click on the link created for your project. You should see your "Hello World" application open up in a new browser tab:
\\\"Node.js.

\\n

NVM Support

\\n

We have rudimentary support for nvm, that allows you only to switch between Node.js versions 0.6.21 and 0.8.x.

\\n

To use nvm, open the terminal and type:

\\n
# to switch to version 0.6.21\\nnvm use v0.67 \\n\\n# to switch to the latest 0.8.x\\nnvm use v0.8
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"writing_a_php_app\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Writing a PHP App\",\n \"contents\": \"\\n
\\n

Writing a PHP App

\\n

With Cloud9 IDE, you can run your PHP pages, without relying on a third-party system like Apache hosting. We run PHP version 5.3.3.

\\n

You can choose to run PHP scripts via the command line, by typing php, followed by the name of your PHP file. However, this is not a very common use case. Most likely, you'll be running your own server and hosting PHP files.

\\n

Here's a simple demonstration. First, create a PHP file called hello_world.php, and paste this code into it:

\\n
<html>\\n  <head>\\n   <title>PHP Test</title>\\n  </head>\\n  <body>\\n   <?php echo '<p>Hello World</p>'; ?> \\n  </body>\\n</html>
\\n

Next, open the Run & Debug panel, at the left of the IDE. From the Runtime dropdown, select Apache+PHP. Then, click on the \\\"The button in the top menu bar.

\\n

The console should now spit out a message about how your Apache server is running, something similar to this:

\\n
Running Apache Process\\nTip: you can access long running processes, like a server, at 'http://php_hello.gjtorikian.c9.io'.
\\n

Clicking on that link gets you to your PHP page. For a more in-depth workflow, see the article on running WordPress entirely on Cloud9.

\\n

Modifying php.ini

\\n

You can configure your PHP installation by editing the php.ini located in the /home/ubuntu/workspace directory. Please note: in some cases php.ini is located somewhere else. Just create a simple PHP file running phpinfo() to find out where to look for php.ini.

\\n

Make sure to restart Apache after you have applied your changes

\\n
apachectl restart
\\n

Note:

Currently, you can't debug PHP applications yet, but we are working on adding this feature.\\n
\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_bitbucket_workspace\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Setting Up a Bitbucket Workspace\",\n \"contents\": \"\\n
\\n

Setting Up a Bitbucket Workspace

\\n

Bitbucket is a code-hosting services that offers both git and mercurial support. Projects can be listed as private or public, absolutely free. For more information on Bitbucket, visit https://bitbucket.org.

\\n

We have integrated Bitbucket into the IDE to enable you to easily work on your public and private repositories. The following article explains how you can activate your Bitbucket account in Cloud9 IDE.

\\n

Bitbucket Activation

\\n

You can manage your add-on services from your user profile that you can find in the dashboard. When you have just signed in, click Your Account on the top of the left-side panel. Here, you can change the settings of your account. At the bottom, you'll see a list of add-on services that are integrated into Cloud9 IDE. Click activate on the Bitbucket button:

\\n

\\\"Add-on

\\n

A new window will pop-up on your screen. This window asks you to give authorization permission for the Cloud9 IDE application to interact in various ways with Bitbucket:

\\n

\\\"Bitbucket

\\n

To finalize the activation, click on Allow. Next, you're redirected to your account page, where you'll notice that your Bitbucket account is activated. You can deactivate Bitbucket by simply clicking deactivate, which may be useful when you want to link your Bitbucket account to another Cloud9 account.

\\n

Now that you have activated Bitbucket, you can start to create and manage your projects!

\\n

Managing Projects

\\n

There are several ways to manage Bitbucket projects in Cloud9 IDE:

\\n
    \\n
  • By creating a new git or mercurial project and pushing it to Bitbucket
  • \\n
  • By cloning a Bitbucket project from a URL
  • \\n
  • By bringing in a Bitbucket project manually
  • \\n
\\n

Creating a New Git Project

\\n

New projects are created from the dashboard. In the left-side panel, click on the \\\"Project to add a new project:

\\n

\\\"New

\\n

A new window will pop-up in which you can change your settings to your preferences:

\\n
    \\n
  • Fill in your preferred project name in the text field
  • \\n
  • Choose who will have access to the project (a feature for Premium customers)
  • \\n
  • Select your project type (git, mercurial, or FTP)
  • \\n
  • Choose a development server (a feature for Premium customers)
  • \\n
\\n

\\\"New

\\n

After you click CREATE, the project is listed in your dashboard. Select the project to see its Project Profile, where you can start editing: \\\"Start

\\n

There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands:

\\n
git remote add [remote name] [remote url]
\\n

remote url is the location of the project on Bitbucket; for example 'origin git@bitbucket.org:username/repository_name.git'. You'll have to create a Bitbucket project first in order to generate this URL. Adding a remote URL lets you freely push and pull your project.

\\n

Next, create a few new files inside your project. By default, you should already have a README.md. You can add these files to git with the following command:

\\n
git add [file1, file2, file3, ...]
\\n

Finally, create a commit that you can push to your remote:

\\n
git commit -m 'added new files'
\\n

Don't forget to push this commit out to Bitbucket:

\\n
git push [remote name] master
\\n

Ta-da! Your project is developed on Cloud9, and stored in Bitbucket.

\\n

Cloning Projects from a URL

\\n

You can also create a project in Cloud9 IDE by cloning it from a URL. Once again, click on the \\\"Project, and select Clone from URL. A new window pops up, asking you:

\\n
    \\n
  • to enter a Source URL
  • \\n
  • to choose who will have access to the project (Premium feature)
  • \\n
  • to choose a development server (Premium feature)
  • \\n
\\n

\\\"Clone

\\n

You can find an examples of a Bitbucket URL on any of their repo description pages:

\\n

\\\"Bitbucket

\\n

Paste the URL in the source field and click CHECKOUT. In the left-side panel, you'll see the project and its status turn into "Cloning in Progress". When this process is completed you can open the project and start editing it, just like any other project.

\\n

Clone Projects Already On Bitbucket

\\n

When you provide Cloud9 IDE with your Bitbucket credentials, it provides a list of projects you haven't yet imported into the editor:

\\n

\\\"Bitbucket

\\n

From this list, clicking on a project and selecting CLONE TO EDIT brings the repo into the IDE, just as if you cloned it from a URL.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"run_your_own_workspace\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Running Your Own SSH Workspace\",\n \"contents\": \"\\n
\\n

Running Your Own SSH Workspace

\\n

You have access to an incredibly powerful feature of Cloud9 that we like to call "running your own workspace."

\\n

If you own a server that you can SSH into, you can log into that machine with Cloud9 and work on your projects remotely. To put this into perspective, you could have an entire toolchain set up on this machine--say, make with gcc, or ant with Java--edit the files with Cloud9 IDE, and build your toolchain via the IDE's terminal. Here's a video demonstrating how you could instantly compile a C program using an SSH workspace and Cloud9:

\\n
\\n\\n
\\n\\n

Connection Prerequisites

\\n

In order to connect Cloud9 with a server you own, you'll need two things:

\\n
    \\n
  1. Node.js installed on the server. This version must be between Node.js version 0.6.16 and the latest 0.8.x.
  2. \\n
  3. Your public SSH key must be saved on the server at ~/.ssh/authorized_keys. This is to ensure the utmost security between your client computer and the machine you're attempting to access. Cloud9 provides you with your SSH key in the workspace dialog; it is up to you to save it to the appropriate path. For more information on SSH keys, see this article.
  4. \\n
\\n

Tip:

If you're behind a firewall, you can identify which IP address and port Cloud9 is running on by typing echo $OPENSHIFT_INTERNAL_IP and echo $OPENSHIFT_INTERNAL_PORT into the console. You can use this information to open any blocked connections.\\n\\n
\\n

Creating an SSH Workspace

\\n

Once you've got those requirements set up, here's how you can create an SSH workspace of your own:

\\n

In the Projects tab on the Dashboard, click on the \\\"Project next to MY PROJECTS and choose the option to Create a new project (see "Creating a New Project" if you need to review the steps to create a new project):
\\\"New

\\n

In the pop-up window that appears, select SSH for the project type:
\\\"SSH

\\n

You don't need to fill out every option provided by the dialog. Let's review what they are:

\\n
    \\n
  • Hostname: the domain name or IP address of the machine running your SSH server.
  • \\n
  • Username: your username for the SSH server.
  • \\n
  • Node.js Binary Path: the locaton of your Node.js binary. If you're not sure where it is, you can always let Cloud9 guess it for you. Otherwise, on your server, type which node, to see the full path
  • \\n
  • Initial path: this is an optional parameter. You can set it as an absolute (starts with /) path. Otherwise, it'll be set to a relative path, and Cloud9 assumes that you want to start from the folder your SSH server leaves you after login (usually the home or default folder).
  • \\n
  • Port: this is an optional parameter. Cloud9 will automatically try to connect on port 22
  • \\n
\\n

Warning:

Be careful not to put an initial path that leaves you in a location where you don't have write privileges, as that could cause problems!\\n\\n
\\n

Fill in your SSH details and click the Login Test to verify that the settings are correct. If the test succeeds, go ahead and click Create to create your SSH connection. You'll then see your project in the Dashboard under My Projects:\\n\\\"New

\\n

When your new SSH is selected, you will see three buttons: Start Editing, SSH settings, and Delete (on the far right). SSH settings gives you access to the settings you just filled in, as well as the login test. This is useful to use in case your login credentials have changed.

\\n

Warning:

Make sure that you copied your SSH key correctly! Trailing spaces are significant, so make sure your text editor on your server is not modifying the key that Cloud9 is providing you with.\\n\\n
\\n

To get started with your SSH project, click on the Start Editing button. You'll instantly be taken to the editor, and have full access to your server's resources. As you can see in the video above, this means you can do exciting things like compiling C programs.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"ssh_workspaces\",\n \"mtime\": 1416998221000,\n \"pageTitle\": \"SSH Workspaces\",\n \"contents\": \"\\n
\\n

SSH Workspaces

\\n

To connect Cloud9 to a server via SSH, we first need to install a few dependencies on your system. \\nThis is done by an open-source installer which you can find here.

\\n

Usually the installation should succeed without any issues, but on some systems you will need to install a few dependencies manually. See below for common dependency issues you might run into.

\\n

Installing Python 2.7 on CentOS

\\n
curl -O https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz\\ntar xf Python-2.7.6.tar.xz\\ncd Python-2.7.6\\n./configure --prefix=/usr/local\\nmake && make altinstall
\\n

Common errors

\\n

no configure: error: "curses not found"

\\n

To get around this issue make sure glibc-static is installed on the machine.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_github_workspace\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Setting Up a GitHub Workspace\",\n \"contents\": \"\\n
\\n

Setting Up a GitHub Workspace

\\n

GitHub is a code hosting service which offers you a lot of features to manage your public and private git repositories. For more information about GitHub and how to use it, visit https://github.com.

\\n

We have integrated GitHub into the IDE to enable you to easily work on your public and private Git repositories. The following article explains how you can activate your GitHub account in Cloud9 IDE.

\\n

GitHub Activation

\\n

You can manage your add-on services from your user profile that you can find in the dashboard. When you have just signed in, click Your Account on the top of the left-side panel. Here, you can change the settings of your account. At the bottom, you'll see a list of add-on services that are integrated into Cloud9 IDE. Click activate on the GitHub button:

\\n

\\\"Add-on

\\n

A new window will pop-up on your screen. This window asks you to give authorization permission for the Cloud9 IDE application to interact in various ways with GitHub:

\\n

\\\"GitHub

\\n

To finalize the activation, click on Allow. Next, you're redirected to your account page, where you'll notice that your GitHub account is activated. You can deactivate GitHub by simply clicking deactivate, which may be useful when you want to link your GitHub account to another Cloud9 account.

\\n

Now that you have activated GitHub, you can start to create and manage git projects!

\\n

Managing Git Projects

\\n

There are several ways to manage GitHub projects in Cloud9 IDE:

\\n
    \\n
  • By creating a new git project and pushing it to GitHub
  • \\n
  • By cloning a GitHub project from a URL
  • \\n
  • By bringing in a GitHub project manually
  • \\n
\\n

Creating a New Git Project

\\n

New projects are created from the dashboard. In the left-side panel, click on the \\\"Project to add a new project:

\\n

\\\"New

\\n

A new window will pop-up in which you can change your settings to your preferences:

\\n
    \\n
  • Fill in your preferred project name in the text field
  • \\n
  • Choose who will have access to the project (a feature for Premium customers)
  • \\n
  • Select your project type (git, mercurial, or FTP)
  • \\n
  • Choose a development server (a feature for Premium customers)\\n{: #setupOptions}
  • \\n
\\n

\\\"New

\\n

Select git as your project type. After you click CREATE, the project is listed in your dashboard. Select the project to see its Project Profile, where you can start editing: \\\"Start

\\n

There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands:

\\n
git remote add [remote name] [remote url]
\\n

remote url is the location of the project on GitHub; for example 'git@github.com:/ajaxorg/node_chat'. You'll have to create a GitHub project first in order to generate this URL. Adding a remote URL lets you freely push and pull your project.

\\n

Next, create a few new files inside your project. By default, you should already have a README.md. You can add these files to git with the following command:

\\n
git add [file1, file2, file3, ...]
\\n

Finally, create a commit that you can push to your remote:

\\n
git commit -m 'added new files'
\\n

Don't forget to push this commit out to GitHub:

\\n
git push [remote name] master
\\n

Ta-da! Your project is developed on Cloud9, and stored in GitHub.

\\n

Cloning Projects from a URL

\\n

You can also create a project in Cloud9 IDE by cloning it from a URL. Once again, click on the \\\"Project, and select Clone from URL. A new window pops up, asking you:

\\n
    \\n
  • to enter a Source URL
  • \\n
  • to choose who will have access to the project (Premium feature)
  • \\n
  • to choose a development server (Premium feature)
    {: #cloningOptions}
  • \\n
\\n

\\\"Clone

\\n

You can find an examples of a GitHub URL on any of their repo description pages:

\\n

\\\"GitHub

\\n

Paste the URL in the source field and click CHECKOUT. In the left-side panel, you'll see the project and its status turn into "Cloning in Progress". When this process is completed you can open the project and start editing it, just like any other project.

\\n

Clone Projects Already On GitHub

\\n

When you provide Cloud9 IDE with your GitHub credentials, it provides a list of projects you haven't yet imported into the editor:

\\n

\\\"GitHub

\\n

From this list, clicking on a project and selecting CLONE TO EDIT brings the repo into the IDE, just as if you cloned it from a URL.

\\n\\n
\\n
\\n \"\n },\n {\n \"filename\": \"setting_up_gitlab_workspace\",\n \"mtime\": 1412172002000,\n \"pageTitle\": \"Setting Up a GitLab workspace\",\n \"contents\": \"\\n

Setting Up a GitLab workspace

\\n

GitLab is open source Git management software used by more than 25.000 \\norganizations, see http://gitlab.org/.

\\n

GitLab.com offers services for on-premise GitLab installations \\nand free private git repositoring on GitLab Cloud \\nwith unlimited repo's and collaborators.

\\n

To use your on-premise GitLab installation or GitLab Cloud please see \\nthe instructions for cloning from a url.

\\n\\n
\\n
\\n \"\n }\n ],\n \"toc\": \"\\n \\n \",\n \"baseUrl\": \"https://docs.c9.io\",\n \"title\": \"Cloud9 User Documentation\"\n}" - }, - { - "filename": "setting_up_hosted_mysql", - "mtime": 1412172002000, - "pageTitle": "MySQL", - "contents": "

MySQL

\n

MySQL is the world's most widely used open source relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases.

\n

MySQL's most common features

\n
    \n
  • A broad subset of ANSI SQL 99, as well as extensions
  • \n
  • Cross-platform support
  • \n
  • Stored procedures
  • \n
  • Triggers
  • \n
  • Cursors
  • \n
  • Updatable Views
  • \n
  • Information schema
  • \n
  • Many more
  • \n
\n

Using MySQL with Cloud9

\n

Cloud9 IDE does not support installing a MySQL database (yet). As a workaround you can choose to connect your project to a MySQL database hosted elsewhere. Xeround\noffers hosted MySQL instances and have a free tier available for getting started.

\n

Xeround

\n
    \n
  1. Register with Xeround
  2. \n
  3. Log in to your controlpanel
  4. \n
  5. Choose 'create new'
  6. \n
  7. Choose a datacenter
  8. \n
  9. Enter your Database name, Username and Password and create
  10. \n
  11. Select your newly created instance and click the 'External DNS Hostname' link provided to log into PHPMyAdmin
  12. \n
  13. Create and import/setup your database
  14. \n
\n

Cloud9

\n
    \n
  1. Log into your account
  2. \n
  3. Create a new project (or use an existing one)
  4. \n
  5. Test the connection using the following script:

    \n
             <?php\n\n         $database = new mysqli('instanceNo.db.xeround.com', 'username', 'password', 'databasename', 'port');\n\n         if($database->connect_errno > 0){\n             die ('Database Error' . $database->connect_error); \n         }else{\n             die ('Connected!');\n         }\n         ?>
    \n
  6. \n
  7. Save the file
  8. \n
  9. Run the file
  10. \n
\n

Source

\n

Courtesy of Roger Qui of Polycadamy. This guide is elaborately explained in a video tutorial

\n\n
" - }, - { - "filename": "project_bar", - "mtime": 1412172002000, - "pageTitle": "The Project Bar", - "contents": "\n

The Project Bar

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n

The project bar is located towards the left of the Cloud9 IDE: \"The

\n

The buttons in the project bar allow you to reveal and hide panels for the IDE. In more detail:

\n
    \n
  • Pressing on the Cloud9 icon collapses the panel area
  • \n
  • Project Files shows your workspace's directory structure. You can view all your files here. Right-clicking within this panel reveals a drop-down menu with additional options, such as the ability to rename files or create new directories.
  • \n
  • Active Files lists your files that are currently open.
  • \n
  • Run & Debug lets you run and debug your code live, in the browser. For more information, see the section on "Running and Debugging Your Code".
  • \n
  • Deploy allows you to deploy to a variety of services. For more information, see the section on "Deploying Your Code".
  • \n
  • Preferences lets you change the behavior of the editor. The Preferences documentation is provided on its own page.
  • \n
\n

Clicking on any button expands its menu. Clicking on an expanded menu causes it to collapse, which gives you more room in the IDE to work with.

\n\n
" - }, - { - "filename": "tab_functions", - "mtime": 1412172002000, - "pageTitle": "Tab Functions", - "contents": "

Tab Functions

\n

Note:

this article is outdated, a new version will follow soon\n\n
\n

Cloud9 IDE offers advanced tab features to make working with multiple files easy. By right-clicking on any tab, you'll open up the tab context menu:

\n

\"The

\n

These feature include:

\n
    \n
  • Reveal in File Tree: opens the current file in the Project Files tree
  • \n
  • Close Tab: closes the current tab
  • \n
  • Close All Tabs: closes all the opened files
  • \n
  • Close All But Current Tab: closes all the opened files, except the current one
  • \n
  • Close Tabs to the Right/Left: closes all opened tabs to the right (or left) of the current one
  • \n
  • File Revision History...: launches the revisions panel
  • \n
\n

To the left of the tab menu is another button that offers additional functions for tab navigation:
\"The

\n

Tab Sessions

\n
\n\n
\n\n

Tab sessions is a unique feature that is useful when dealing with projects that involve juggling between many tabs. Essentially, tab sessions lets you save the current state of the tabs. You can close your workspace, switch to a different branch, and instantly reload your previously opened files. You'll no longer need to work with opening and closing multiple files.

\n

To use tab sessions, select Save Tab Sessions from the tab button menu. Give it a unique name. When you're ready to restore your tab sessions, just select Load Tab Sessions.

\n

If you find that you've got too many tab sessions defined, you can always choose to delete them from the same tab menu.

\n\n
" - }, - { - "filename": "status_bar", - "mtime": 1412172002000, - "pageTitle": "Status Bar", - "contents": "\n

Status Bar

\n

Note:

this feature is deprecated\n\n
\n

The status bar is designed to provide you with all sorts of information about your code--and additional functionality--without getting in the way of the IDE. It's quite tiny, and quite powerful, like a weight-lifting squirrel.

\n

You can find the status bar in the lower-right corner of the editor: \"The. Keep in mind that the status bar is transparent, so it's able to camoflauge well with light or dark themes.

\n

There's three pieces of crucial information available at all times: your current row, your current column, and, if you're highlighting characters, the status bar displays the number of bytes currently selected. If you're using Vim Mode, the status bar also tells you if you're in INSERT mode.

\n

If you click on the status bar, it expands into a menu that provides a smaller set of the full IDE preferences. These options only deal with the IDE editor:

\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Preference NameDescription
Show InvisiblesShows invisibles characters in the editor, like tabs and line breaks
Wraps LinesWraps lines according to the line margin defined, or your browser's window. Otherwise, lines run off the current viewport.
Code FoldingWhen enabled, allows you to show or hide "blocks" of code
Full Line SelectionWhen highlighting lines, this option will highlight all ending whitespace, until the end of the editor window
Highlight Active LinePresents a darker shade in the code editor to indicate which line you're currently on
Show Indent GuidesShows the indent guides in the editor, letting you see your code's nestings
Show GutterShows the gutter in the editor, which indicates line numbers, warnings, and errors
Highlight Selected WordIf you highlight a word, this highlights all matching words in the editor
Auto-pair Quotes, Brackets, etc.When enabled, typing ", (, or [ will actually make two characters appear. In addition, whenever you highlight a word and type one of these characters, it is surrounded by that character (e.g. words becomes "words")
Auto-hide Horizontal Scrollbarhen this is enabled, this will hide the horizontal scroll bar in the editor. Note that this has no effect in Mac OS X 10.7 (Lion) and above, since all scrollbars, by default, auto-hide.
Font SizeChanges the font size of the code in the editor
Show Print MarginShows (and defines) the number of characters possible in line, before it wraps
Soft TabsIndicates how many spaces a single tab represents
Mouse Scroll SpeedDefines the speed of the mouse scrolls
\n
\n
" - }, - { - "filename": "setting_up_mysql", - "mtime": 1412172002000, - "pageTitle": "MySQL", - "contents": "

MySQL

\n

MySQL is the world's most widely used open source relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases.

\n

MySQL's most common features

\n
    \n
  • A broad subset of ANSI SQL 99, as well as extensions
  • \n
  • Cross-platform support
  • \n
  • Stored procedures
  • \n
  • Triggers
  • \n
  • Cursors
  • \n
  • Updatable Views
  • \n
  • Information schema
  • \n
  • Many more
  • \n
\n

Using MySQL with Cloud9

\n

This article explains our first iteration of MySQL support in Cloud9. It makes it super easy to install, start and stop a MySQL instance right in your workspace. The nice thing is that every workspace will run a separate database so your projects will never interfere with each other. You can control MySQL with the mysql-ctl command line tool run from the terminal:

\n
# start MySQL. Will create an empty database on first start\n$ mysql-ctl start\n\n# stop MySQL\n$ mysql-ctl stop\n\n# run the MySQL interactive shell\n$ mysql-ctl cli
\n

You can then connect to the database with following parameters:

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Option\n Value\n Comment\n
Hostname$IPThe same local IP as the application you run on Cloud9
Port3306The default MySQL port number
User$C9_USERYour Cloud9 user name
Password-No password since you can only access the DB from within the workspace
Databasec9The database name
\n

Importing data into your database

\n

To import existing data into your database run following commands:

\n
mysql-ctl cli
\n

You are now in the MySQL environment and can start the import:

\n
mysql> use c9\nmysql> source PATH_TO_SQL_FILE.sql
\n

To verify that everything got imported run:

\n
mysql> show tables;
\n

Note:

MySQL socket file can be found in ~/lib/mysql/socket/mysql.sock\n\n
\n\n
" - }, - { - "filename": "common_errors", - "mtime": 1412172002000, - "pageTitle": "Common errors", - "contents": "

Common errors

\n

Sometimes you run into issues when you run your project. Here you will find the most common issues and how to solve them.

\n

Address in use or similar

\n

The most common reason for an error thrown by your app stating that a port or address is in use is the fact that some process is already running/listening on that port/address. You need to take a look for those and kill the processes conflicting with your app:

\n
// Find the process\nlsof -i tcp:$PORT
\n

If any relevant process is running you will get a list looking like this:

\n
COMMAND PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME\napache2 699 ubuntu    4u  IPv6 83213152      0t0  TCP *:http-alt (LISTEN)
\n

You now can kill that proccess. Make sure you replace PID with the ID of the process.

\n
// Kill the process\nkill -9 PID
\n

For the console wizards:

\n
kill -9 $(lsof -i:$PORT -t)
\n\n
" - }, - { - "filename": "setting_up_mongodb", - "mtime": 1412172002000, - "pageTitle": "MongoDB", - "contents": "

MongoDB

\n

MongoDB is a scalable, high-performance, open source NoSQL database.

\n

MongoDB's most common features

\n
    \n
  • Document-Oriented Storage
    \nJSON-style documents with dynamic schemas offer simplicity and power.

    \n
  • \n
  • Full Index Support
    \nIndex on any attribute, just like you're used to.

    \n
  • \n
  • Querying
    \nRich, document-based queries.

    \n
  • \n
\n

In addition, MongoDB has many scalability features such as:

\n

Replication, Auto-sharding, Map/Reduce and GridFS

\n

Running MongoDB on a Cloud9 workspace

\n

MongoDB is preinstalled in your workspace. To run MongoDB, run the following below (passing the correct parameters to it). Mongodb data will be stored in the folder data.

\n
$ mkdir data\n$ echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest \"$@\"' > mongod\n$ chmod a+x mongod
\n

You can start mongodb by running the mongod script on your project root:
\n$ ./mongod

\n

MongoDB parameters used:

\n

| Parameter | Description |\n| ------------------------------ | ----------------------------------------------------------------------------------------------- |\n| --dbpath=data | Because it defaults to /var/db which isn't accessible) |\n| --nojournal | Because mongodb usually pre-allocates 2 GB journal file (which exceeds Cloud9 disk space quota) |\n| --bind_ip=$IP | Because you can't bind to 0.0.0.0) |\n| --rest | Runs on default port 28017 |

\n

Drivers

\n

You should use the host $IP instead of localhost as your driver connection url.
\ne.g. in Node, it is: process.env.IP

\n

MongoDB has drivers for all supported runtimes. Following are the most commonly used drivers:

\n

Node.JS apps

\n

Mongoose
\nNode-Mongodb-Native

\n

Shell Access

\n

To access a shell prompt for the above MongoDB run the following.

\n
$ mongo
\n

Check out docs.mongodb.org for details on how to use the shell

\n\n
" - }, - { - "filename": "creating_coffeescript_app", - "mtime": 1412172002000, - "pageTitle": "Create a CoffeeScript Project", - "contents": "\n

Create a CoffeeScript Project

\n

For this tutorial, we'll show you how to create and run a CoffeeScript project, entirely within the Cloud9 IDE. To run any coffeescript project, you'll need to first make sure to install the coffeescript module via the Node Package Manager (npm). We're going to walk you through how to do that with a sample project.

\n

First, create a new project. Then, in the console, enter the following command:

\n
git clone git://github.com/fjakobs/cloud9-coffeescript-example.git
\n

This is a sample CoffeeScript application written by one of our developers. After cloning the project, you'll find three different files in the project tree: server.js, app.coffee, and README.md.

\n

The README.md file contains instructions to install coffee-script using npm. We've integrated Node Package Manager into Cloud9 IDE to enable users to install Node programs. Thus, from the Cloud9 IDE command line, type the following command to install the Coffeescript module:

\n
npm install coffee-script
\n

Next, let's have a look at the server.js file. The first line is the require() function, which is used to load the coffee-script module that you have just installed. On the second line, we declare the CoffeeScript file that contains your application. In the last line, we specify the port the server is listening to. When projects run within Cloud9 IDE, you must retrieve the port information using process.env.PORT.

\n

Now, let's look at what the CoffeeScript file does. It creates an HTTP server with a function that is called for each request. In the callback function, you create a response with a status code of 200 (indicating that the request was fulfilled successfully) and the message "Hello World". You use module.exports to enable the server.js file to use the code in the CoffeeScript file:

\n
http = require \"http\"\n\nmodule.exports = http.createServer((req, res) ->\n    res.writeHead 200, 'Content-Type': 'text/plain'\n    res.end 'Hello World\\n'
\n

Next, run the server.js file and open the URL indicated in the console:

\n

\"Messages

\n

The result is:

\n

\"The

\n

To stop your application, go back to the editor and click on the \"Icon button in the Menu Bar.

\n\n
" - }, - { - "filename": "editing_wordpress_sites", - "mtime": 1412172002000, - "pageTitle": "Editing Remote WordPress Websites via FTP", - "contents": "\n

Editing Remote WordPress Websites via FTP

\n
\n\n
\n\n

Did you know that you can use Cloud9 IDE to work on your WordPress website? It's true, and incredibly easy. You can't edit your posts on WordPress using Cloud9, since they are stored in a database on your server. But you can edit pretty much every other aspect of your site.

\n

To start, you'll need to create a new FTP project. After that, enter your wp-content folder, find the theme you're using on your website, and start editing its style.

\n

Thanks to the preview button in the menu bar, you can also witness your changes as they happen, before committing them to your server.

\n\n
" - }, - { - "filename": "setting_up_postgresql", - "mtime": 1412172002000, - "pageTitle": "PostgreSQL", - "contents": "

PostgreSQL

\n

Installing PostgreSQL on a Cloud9 workspace

\n

PostgreSQL comes preinstalled on every Cloud9 workspace, yay.

\n

Start the PostgreSQL service

\n
$ sudo service postgresql start
\n

Set the "postgres" user password

\n
$ sudo sudo -u postgres psql                                                                                  \npsql (9.3.4, server 9.3.5)\nType \"help\" for help.\n\npostgres=# \\password\nEnter new password: \nEnter it again: \npostgres=# \\q
\n

Connect to the service

\n
$ sudo sudo -u postgres psql                                                                                  
\n

Create a PostgreSQL database

\n

Make sure you have logged into the PostgreSQL terminal and then you can just run:

\n
$ sudo sudo -u postgres psql                                                                                  \npostgres=# create database \"groceries\";
\n

List all databases

\n
$ sudo sudo -u postgres psql                                                                                  \npostgres=# \\list
\n\n
" - }, - { - "filename": "installing_npm_modules", - "mtime": 1412172002000, - "pageTitle": "Installing NPM Modules", - "contents": "\n

Installing NPM Modules

\n

Since Cloud9 IDE is built on top of Node.js, we also leverage the module system NPM. In Cloud9, you can install any npm package either locally or globally. Note that due to security restrictions, modules installed globally can only be used in the project they were installed from. In other words, while you have access to any command line tools installed by the module, they are bound to the project, not your username. We run version 1.1.24 of npm.

\n

To demonstrate the power of NPM, we'll build and run a quick express server:

\n
    \n
  1. Launch the command line by hitting Shift-Escape. You can also go to View > Command Line if it's not visible.
  2. \n
  3. Type npm install express, and wait for the npm install process to complete.
  4. \n
  5. Create a new JavaScript file, and paste the following code:
  6. \n
\n
var express = require('express'),\n    app = express();\n\napp.use(express.logger());\n\napp.get('/', function(req, res){\n    res.send('Hello World');\n});\n\napp.listen(process.env.PORT);\nconsole.log('Express server started on port %s', process.env.PORT);
\n

To launch your express server, click on the \"The button in the menu bar.

\n\n
" - }, - { - "filename": "installing_python_packages", - "mtime": 1412172002000, - "pageTitle": "Installing Python Packages", - "contents": "\n

Installing Python Packages

\n

Cloud9 supports the installation of Python packages for applications that need to go beyond the standard library set. Every workspace has version 0.6.10 of Python's easy_install package manager. For more information on this module, see the official easy_install documentation.

\n

Let's try installing a package. First, type the following in the console:

\n
easy_install markdown
\n

This installs the markdown Python package to your workspace. You won't see the package installed in the directory tree, because it's kept deep within your project's the Python libs.

\n

Next, create a new Python script, and add these lines of code:

\n
import markdown\n\nhtml = markdown.markdown(\"# HELLO THERE!\")\n\nprint html
\n

After clicking run, the console will correctly print out <h1>HELLO THERE!</h1>.

\n

You have access to all of the functionality easy_install provides you. For example, you can open up the Python REPL and type the following to see a list of your installed packages:

\n
>>> help('modules')
\n\n
" - }, - { - "filename": "setting_up_redis", - "mtime": 1416998221000, - "pageTitle": "Redis", - "contents": "

Redis

\n

Running

\n

Cloud9 workspaces come with redis pre-installed.

\n

Start the server:

\n
sudo service redis-server start
\n

Connect with the client:

\n
./redis-cli
\n

Drivers

\n

See http://redis.io/clients for drivers.

\n\n
" - }, - { - "filename": "setting_up_sqlite3", - "mtime": 1412172002000, - "pageTitle": "SQLite", - "contents": "

SQLite

\n

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

\n

Note:

SQLite supports full text search and ACID transactions (atomic, consistent, isolated, and durable)\nWith its simplicity and zero-configuration, SQLite is a popular choice for new applications.\n\n
\n

Getting started

\n

You can open the terminal and create a database in a file db_test.db as follows:

\n

\"Screenshot

\n

Try yourself

\n
$ sqlite3 db_test.db\nSQLite version 3.6.20\nEnter \".help\" for instructions\nEnter SQL statements terminated with a \";\"\nsqlite> create table tbl1(one varchar(10), two smallint);\nsqlite> insert into tbl1 values('hello!',10);\nsqlite> insert into tbl1 values('goodbye', 20);\nsqlite> select * from tbl1;\nhello!|10\ngoodbye|20\nsqlite> CREATE TABLE tbl2 (\n   ...>   f1 varchar(30) primary key,\n   ...>   f2 text,\n   ...>   f3 real\n   ...> );\nsqlite> .exit
\n

To get to know sqlite commands, use the command: .help.

\n

To exit sqlite, use the command: .exit.

\n

Drivers

\n

SQLite has drivers for all supported runtimes.

\n

Following are the most commonly used drivers:

\n

Node.JS apps

\n

node-sqlite

\n

Rails apps

\n

In your Gemfile, include the line:

\n
gem 'sqlite3'
\n

and in configs/database.yml, make sure you use:

\n
adapter: sqlite3\ndatabase: db/development.db
\n\n
" - }, - { - "filename": "running_a_rails_app", - "mtime": 1412172002000, - "pageTitle": "Running a Rails App", - "contents": "

Running a Rails App

\n

Cloud9 IDE also supports the ability to run a Rails application. The rails command is only available on the terminal.

\n

To run a rails application:

\n
    \n
  1. Open the terminal and type gem install rails
  2. \n
  3. When done, type rails new example -d mysql
  4. \n
  5. Edit your database configuration in configs/database.yml
  6. \n
  7. Type rails s -b $IP -p $PORT
  8. \n
\n

That's it! Your rails app will now be running.

\n

Note:

http://<workspacename>-c9-<username>.c9.io should be running your application.\n\n
\n

Do not try to access the project through the IP address and port number rails returns to you--it won't work!

\n

Use MySQL in your rails app

\n
    \n
  1. Setup MySQl - note your DB connect parameters

    \n
  2. \n
  3. edit configs/database.yml

    \n
  4. \n
\n
development:\n  adapter: mysql2\n  encoding: utf8\n  database: c9\n  username: <%=ENV['C9_USER']%>\n  host: <%=ENV['IP']%>
\n\n
" - }, - { - "filename": "installing_ruby_gems", - "mtime": 1412172002000, - "pageTitle": "Installing Ruby Gems", - "contents": "\n

Installing Ruby Gems

\n

Cloud9 supports the installation of Ruby gems in your workspace using the RubyGems package manager. The current installed RubyGems version is 1.3.7. For more information on the gem command, see the official RubyGems documentation.

\n

Let's try installing a gem. First, type the following in the console:

\n
gem install progressbar
\n

This installs the progressbar Ruby gem to your workspace. You won't see the gem installed in the directory tree, because it's kept deep within your project's the Ruby libs.

\n

Next, create a new Ruby script, and add these lines of code:

\n
require 'progressbar'\n\nbar = ProgressBar.new(\"Example progress\", 50)\ntotal = 0\nuntil total >= 100\n  sleep(rand(2)/2.0)\n  increment = (rand(6) + 3)\n  bar.inc(increment)\n  total += increment\nend
\n

After clicking run, the console will start printing out an ASCII progressbar.

\n

You have access to all of the functionality gem provides you. For example, you can open up the console and type gem query to see a list of your installed gems.

\n\n
" - }, - { - "filename": "running_wordpress_on_cloud9", - "mtime": 1412172002000, - "pageTitle": "Running WordPress on Cloud9", - "contents": "

Running WordPress on Cloud9

\n

WordPress is web software you can use to create websites or blogs.\nYou can develop and host WordPress websites entirely on Cloud9 IDE

\n

Creating a wordpress workspace

\n

Create a WordPress workspace from the WordPress template on your Cloud9 dashboard

\n

Note:

We will download, extract and configure WordPress for you.\n\n
\n

In order to run WordPress, you need a database to host your posts, articles, etc.

\n

You can use MySQL with our utility script mysql-ctl as explained in MySQL Setup

\n

Running the website

\n

To start MySQL server and create the required database, type in the terminal:

\n
mysql-ctl start
\n

Open index.php in your workspace root and click the Run button

\n

You can check the generated config for you In wp-config.php (you don't need to change anything there)

\n
define('DB_NAME', 'c9');\ndefine('DB_USER', getenv('C9_USER'));\ndefine('DB_PASSWORD', '');\ndefine('DB_HOST', getenv('IP'));\ndefine('WP_SITEURL', 'http://' . getenv('C9_PROJECT') . '.' . getenv('C9_USER') . '.c9.io');
\n\n
" - }, - { - "filename": "running_and_debugging_code", - "mtime": 1412172002000, - "pageTitle": "Running and Debugging Your Code", - "contents": "

Running and Debugging Your Code

\n

Cloud9 IDE provides several ways to run and debug your code. We'll explore each of them in this section of the documentation.

\n

Note:

Currently, only Javascript/Node.js applications can make use of the debugger. You can also execute Javascript/Node.js, Python, Ruby, and Apache+PHP applications.\n\n
\n

The following information applies to all of the above programming languages.

\n

Running Code

\n

Running your code in Cloud9 is really easy. First, open the file you want to run. Usually, this file is going to be the main entry point to your app; for example, if you're creating a server, you'd want to run the file that actually instantiates that server.

\n

There are two ways to run your code: either through the Run Panel, or through the run button in the menu bar.

\n

Using the Run Panel

\n

Next, click on the Run button in the project bar. You'll notice immediately that your active file is already available to run. Just double-click on the file, and you'll launch your app.

\n

When you're ready to stop your app, click on the \"Icon button in the menu bar at any time.

\n

At the bottom of the run panel, you'll notice a few more options you can set. Filling these textboxes out creates a run scenario, which is like setting up some configurations for the way your code runs. These options are:

\n
    \n
  • Name the name of your run scenario
  • \n
  • File Path: the location of your running file in your project
  • \n
  • Runtime: defines how you want your code to be run. Typically, you'd set different runtime versions here.
  • \n
  • Cmd Line Args: allows you to provide any additional command line arguments you want to pass to your app
  • \n
\n

Of course, you can also save your run scenarios; just click on the add button at the top of the panel. When you're ready to run a scenario, click on its name in the Run panel list. To remove a run scenario, click on its name in the run panel list, and then click on the remove button.

\n

Using the Run Button

\n

The run button in the menu bar acts as a sort of short cut to the Run panel. When clicked, the button automatically runs the currently active file. If you have a list of run scenarios already defined, the run button also presents a list of those:

\n

\"Run

\n

Run in debug mode indicates that you want to run the current code through the debugger. Auto show & hide debug tools will reveal (or collapse) the debugging tools panel described below. You can also work with this presentation by going to View > Panels, and configuring the debugger there.

\n

Console Output

\n

Every time you run a project, the console expands to reveal output from your program. If you're launching a server, Cloud9 provides you with a URL to access the project. Otherwise, any statements sent by your application's print statements (like console.log() for Javascript, print for Python, or puts for Ruby) are also shown here. For example:
\"Console

\n

Debugging Your Code

\n

Setting up a project to debug is done in very much the same way as running your code. The only difference is that you must click on the run settings icon in the Run panel \"Run and select Run in debug mode. Similarly, you can select Run in debug mode from the run button.

\n

Initially, the only difference this will make is the expansion of the debugging toolbar to the right of the editor:
\"The

\n

This toolbar, however, grants you the following capabilities:

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Toolbar IconDebugging FunctionDescription
\"DebuggingDebugging NavigationThis is a set of tools you can use to move around your code while debugging. You can step into, over, and out of your code, or simply press play to run the process until the next breakpoint.
\"IconCallstackThis is a structured list of information about the sequences of your code--basically, which functions are calling what, and where you are in the current process. It also stores local variables and function arguments, if present. You can use this feature to check how your code is running:
\"Callstack
\"IconInteractive ModeLets you evaluate a piece of code, such as expressions or the values and properties of variables. The text field allows you to type any code you want, in case you discover a way to fix you problem:\n\"Interactive
\"IconVariable InspectionThis shows all the related variables (including functions) that are present in the current context:\n\"Variable
\"IconBreakpoint ListAt any point during your coding or debugging session, you can click on the gutter to apply a breakpoint: \"Breakpoint. When debugging your code, the process pauses at your established breakpoints, so that you can inspect closely what's going on in a certain part of the code. You can click on the breakpoint list to view all the breakpoints in your workspace. If you click on the checkbox, you can enable or disable a breakpoint as well. You can also click on a breakpoint in the gutter to disable or enable it.
\n

While debugging, you also have the power of the live inspector. While hovering over a piece of code in the editor, you'll instantly get some floating text that describes the values of that variable, similar to Variable Inspection.
\"Live

\n\n
" - }, - { - "filename": "writing_a_python_app", - "mtime": 1412172002000, - "pageTitle": "Writing a Python App", - "contents": "\n

Writing a Python App

\n

While using Cloud9 IDE, you have access to the Python runtime. Accessing the command is no different than the way you'd use Python on your computer; just open the command line and type python. Currently, we run version 2.6.6.

\n

To run a Python program that you've created, you can either:

\n
    \n
  • Open the command line and type python, followed by the name of your program; for example python hello_world.py
  • \n
  • Create a new run scenario, so that you can do things like pass in command line arguments
  • \n
\n

As a quick demonstration, open a new file, and paste this Python code into it:

\n
#!/usr/bin/python\n\nprint \"Hello World!\";
\n

When you hit the \"The button in the menu bar, the console will print out Hello World!.

\n

Note:

Currently, you can't debug Python applications, but we are working on adding this feature.
\n\n
" - }, - { - "filename": "writing_a_go_app", - "mtime": 1412172002000, - "pageTitle": "Writing a Go App", - "contents": "

Writing a Go App

\n

Cloud9 IDE doesn't provide out-of-the-box support for the Go language, but with \na few quick steps you can set up Cloud9 to build and run apps in Go!

\n

Create a new workspace

\n

First, create a new Custom workspace and call it whatever you want:

\n

\"Create

\n

After your new workspace is created, click the "start editing" button. At the \nbottom of your workspace you will see the Terminal. If you prefer to have it\nfullscreen, you can launch a terminal tab by pressing Alt-T, or from the menu: \nView > Terminals > New Terminal.

\n

From the terminal you can install & setup everything on the underlying virtual \nenvironment that every workspace is provided with.

\n

Download Go

\n

When you first enter your Terminal, you will be in your workspace root folder, \nwhich is a number such as ~/562166. Make a note of this directory name, as \nyou'll need it later.

\n

Let's use your home directory to download the Go distribution; to get there, \nsimply enter the following in the Terminal:

\n
cd ..
\n

To download the Go distribution enter the following:

\n
wget https://go.googlecode.com/files/go1.1.1.linux-amd64.tar.gz
\n

Note:

at the time of writing the latest version was 1.1.1, but you might want to \nuse a new version if it has become available. \n\n
\n

After the download is complete, extract the archive:

\n
tar -xzf go1.1.1.linux-amd64.tar.gz
\n

Once the extraction is done, you will notice a new go directory in your home \ndirectory. Feel free to delete the archive file you downloaded.

\n

Set up your environment

\n

The last step is to configure the environment so it can see the Go distribution \nas well as our workspace Go files. To do this, edit your bash configuration \nin the Terminal using vim (or emacs, nano, any simple editor will do):

\n
vim ~/.bashrc
\n

Add the following lines to your .bashrc file:

\n
# setup go configuration \nexport GOROOT=$HOME/go \nexport PATH=$PATH:$GOROOT/bin \n\n# setup workspace t\nexport GOPATH=$HOME/562166 \nexport PATH=$PATH:$GOPATH/bin
\n

Update the GOPATH line above to use the workspace directory you noted earlier \n(so don't use $HOME/562166).

\n

After you save your .bashrc file, load the new settings:

\n
source ~/.bashrc
\n

That's it! You should be good to Go (pun intended).

\n

Note:

Thanks to Scotty Moon for writing an article about Go on Cloud9 IDE\nand letting us use it for documentation!
\n\n
" - }, - { - "filename": "terminal_monitor", - "mtime": 1412172002000, - "pageTitle": "The Terminal Monitor", - "contents": "\n

The Terminal Monitor

\n

Many times your app returns errors which are hard to understand and even harder to resolve. This is where the Terminal Monitor comes in.\nThe following video gives a quick overview of the features and how the Terminal Monitor helps you write better apps.

\n\n\n

If you would like to propose additions or help which Terminal Monitor should provide, please send a message to support@c9.io

\n\n
" - }, - { - "filename": "writing_a_ruby_app", - "mtime": 1412172002000, - "pageTitle": "Writing a Ruby App", - "contents": "

Writing a Ruby App

\n

While using Cloud9 IDE, you have access to the Ruby runtime. Accessing the command is no different than the way you'd use Ruby on your computer; just open the command line and type ruby. Currently, the default version is 1.9.3.

\n

To run a Ruby program that you've created, you can either:

\n
    \n
  • Open the command line and type ruby, followed by the name of your program; for example ruby hello_world.rb
  • \n
  • Create a new run scenario, so that you can do things like pass in command line arguments
  • \n
\n

As a quick demonstration, open a new file, and paste this Ruby code into it:

\n
#!/usr/bin/ruby\n\nputs 'Hello world'
\n

When you hit the \"The button in the menu bar, the console will print out Hello world.

\n

Note:

Currently, you can't debug Ruby applications, but we are working on adding this feature.\n\n
\n

RVM Support

\n

We have rudimentary support for rvm, that allows you only to switch between versions 1.8.7 and 1.9.3. We don't support rvm per-project or global gemsets.

\n

To use rvm, open the terminal and type:

\n
# to switch to version 1.8.7\nrvm use 1.8\nrvm use 1.8.7 \n\n# to switch to version 1.9.3\nrvm use 1.9\nrvm use 1.9.3
\n

However, if you like, you can install the "real" rvm by executing the following command in the terminal:

\n
curl -L https://get.rvm.io | bash -s stable
\n

To grab the latest rvm AND the latest Ruby version, type:

\n
curl -L https://get.rvm.io | bash -s stable --ruby
\n\n
" - }, - { - "filename": "creating_new_workspace", - "mtime": 1412172002000, - "pageTitle": "Creating a New Workspace", - "contents": "

Creating a New Workspace

\n

Cloud9 supports three types of workspaces:

\n
    \n
  1. Hosted
  2. \n
  3. FTP
  4. \n
  5. SSH
  6. \n
\n

In this article, we'll walk you through the creation of a new workspace and describe the choices you encounter.

\n

The first step for creating a new workspace is click the "CREATE NEW WORKSPACE" button in your Dashboard:

\n

\"New

\n

At this point, you'll encounter two choices: Create a new workspace and Clone from URL. Here's what they mean:

\n
    \n
  • Create a New Workspace allows you to create any of the previously mentioned types of workspaces (hosted, FTP, or SSH).
  • \n
  • Clone from URL allows you to instantly create a workspace from a repository, like GitHub or Bitbucket, using its URL. We'll explain more about this in the section below.
  • \n
\n

Create a New Workspace

\n

After clicking on Create a new workspace, you're taken to the screen below:

\n

\"Options

\n

First, let's enter a workspace name.\nDepending on whether you have a Free of Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with).

\n

After this, choose the type of workspace you want to create:

\n
    \n
  • Hosted: This is a regular Cloud9 workspace, powered by a full Ubuntu environment. You even have sudo powers! This is the best choice for most people, and we've included some more info about it below.
  • \n
  • FTP allows you to upload your files directly to an FTP server that you have access to
  • \n
  • SSH, also called the "bring your own server" feature, lets you log into a server you own and run Cloud9 from there
  • \n
\n

Make a choice for the type of workspace and press Create. That's it! You can now see your new workspace in the dashboard:

\n

\"New

\n

Now, just click Start Editing to get started!

\n

Hosted workspaces

\n

Choose this workspace type to start from scratch with a 'Custom' workspace, or simply pick a pre-configured environment like Node.js, WordPress, or Python/Django, and immediately start developing your app.\nThis way you don't need to spend valuable development time on system setup and maintenance, as we maintain it, and you control it.

\n

\"Options

\n

As it's powered by a full Linux Ubuntu environment, hosted workspaces allow you to install any package (sudo apt-get install package), run git commands from the console to push your changes to a GitHub repo or a Bitbucket git repo, etcetera.

\n

Cloning from a URL

\n

The second option for creating a new workspace is to clone one from URL. The URL would be, for example, the URL of a GitHub workspace.

\n

In fact, let's clone a workspace. When you click on Clone from URL, you're taken to this screen:

\n

\"Options

\n

Paste the following GitHub URL in the textbox labeled Source URL: https://github.com/mattpardee/geekdots

\n

If you have a premium account, you can choose who has access to your workspace. For regular users, the new workspace will be public.

\n

Now, check out the workspace. It will be created under My Workspaces. You can now start editing it!

\n

Deleting a Workspace

\n

Now that you know how to create a workspace, you should also learn how to delete one. Look at the far right side of your dashboard:

\n

\"Delete

\n

Clicking on the Delete button prompts the IDE to ask for confirmation:
\"Confirmation

\n

This is your last chance to change your mind. Once you have typed delete in the textbox and pressed the red button, your workspace will be gone forever from Cloud9. If you are sure you want to delete your workspace, go ahead and press the red button. Of course, if your workspace is hosted elsewhere, like on another git or FTP server, it still exists in those repositories.

\n\n
" - }, - { - "filename": "ftp_workspaces", - "mtime": 1412172002000, - "pageTitle": "Setting up an FTP project", - "contents": "\n

Setting up an FTP project

\n
\n\n
\n\n

In this article, we'll show you how to set up an FTP project.

\n

Note:

Currently, Cloud9 IDE only supports passive FTP. Active FTP, SFTP and FTPS are not yet supported. For SSH connections, consider creating an SSH workspace.\n\n
\n

To create an FTP project, go to the Dashboard and click on the \"Project next to MY PROJECTS. Choose the option to Create a new project (see "Creating a New Project" if you need to review the steps to create a new project):
\"New

\n

In the pop-up window that appears, select FTP for the project type:

\n

\"FTP

\n

Let's review the options available for your FTP project:

\n
    \n
  • Hostname: the domain name or IP address of the machine running your FTP server.
  • \n
  • Username: your username for the FTP server.
  • \n
  • Password: your password for the FTP server.
  • \n
  • Initial path: this is an optional parameter. You can set it as an absolute (starts with /) path. Otherwise, it'll be set to a relative path, and Cloud9 assumes that you want to start from the folder your FTP server leaves you after login (home or default folder).
  • \n
\n

Warning:

Be careful not to put an initial path that leaves you in a location where you don't have write privileges as that could cause problems.\n\n
\n

Fill in your FTP details and click the Login Test to verify that the settings are correct. If the test succeeds, go ahead and click Create to create your FTP project. You'll then see your project in the Dashboard under My Projects:

\n

\"New

\n

When your new FTP project is selected, you will see three buttons: Start Editing, FTP settings, and Delete (on the far right). FTP settings gives you access to the settings you just filled in, as well as the login test. This is useful to use in case your login credentials have changed.

\n

To get started with your FTP project, click on the Start Editing button. You'll be taken to the editor. Under Project Files, you should see the files from the FTP server in the directory you selected (either your home/default folder or the location indicated by the Initial Path, if you set it). The editor for FTP projects works the same as in other projects: you can create and edit your files in the usual way. The main difference is the FTP log at the bottom of the page (where the console is usually located for other non-FTP projects).

\n

The FTP log displays output related to the interaction with the FTP server. The screenshot below, for example, shows what happens when we create a new file called TestFile.txt. The file is created in the FTP server and when I write to it, the contents are transferred.

\n

\"Demonstrating

\n

Note:

In an FTP project, all files are stored on your FTP server; Cloud9 only stores the FTP settings. Please keep this in mind. Cloud9 IDE does not keep any copies of your files, so make sure you back them up properly. Any changes you make to these files in Cloud9 are automatically reflected on the live web server.
\n\n
" - }, - { - "filename": "writing_nodejs_hello_world", - "mtime": 1412172002000, - "pageTitle": "Writing and Running a Node.js Program", - "contents": "

Writing and Running a Node.js Program

\n

Cloud9 IDE was built on top of the Node.js platform, and as such, you have full access to the node runtime. Currently, we support running both version v0.6.x and v0.8.x.

\n

In this section, we'll walk you through the creation of a simple Hello World program. To get started, you'll first need to create a (GitHub or Mercurial) project. If you need a refresher on how to do this, please refer to Creating a New Workspace.

\n

A Simple Node.js HTTP Server

\n

Once you're in Cloud9, create a new file called server.js. Type the following code in the file:

\n
var http = require('http');\nhttp.createServer(function (req, res) {\n    res.writeHead(200, {'Content-Type': 'text/plain'});\n    res.end('Hello World\\n');\n}).listen(process.env.PORT, process.env.IP);
\n

This is a Node.js HTTP server. It returns a simple "Hello World" page every time you access the page. In short, you are creating an HTTP server with a callback function that is called for each request.

\n

In the callback function, you create a response with a status code of 200 (indicating that the request was fulfilled successfully) and the message "Hello World". Finally, you specify which port and IP address the server runs on. When Cloud9 IDE runs servers, you set and retrieve the IP address and port number with the process.env.IP and process.env.PORT variables.

\n

When you hit the \"The button in the menu bar, the console will print out the following message:
\"Console

\n

To see your application in action, click on the link created for your project. You should see your "Hello World" application open up in a new browser tab:
\"Node.js.

\n

NVM Support

\n

We have rudimentary support for nvm, that allows you only to switch between Node.js versions 0.6.21 and 0.8.x.

\n

To use nvm, open the terminal and type:

\n
# to switch to version 0.6.21\nnvm use v0.67 \n\n# to switch to the latest 0.8.x\nnvm use v0.8
\n\n
" - }, - { - "filename": "writing_a_php_app", - "mtime": 1412172002000, - "pageTitle": "Writing a PHP App", - "contents": "

Writing a PHP App

\n

With Cloud9 IDE, you can run your PHP pages, without relying on a third-party system like Apache hosting. We run PHP version 5.3.3.

\n

You can choose to run PHP scripts via the command line, by typing php, followed by the name of your PHP file. However, this is not a very common use case. Most likely, you'll be running your own server and hosting PHP files.

\n

Here's a simple demonstration. First, create a PHP file called hello_world.php, and paste this code into it:

\n
<html>\n  <head>\n   <title>PHP Test</title>\n  </head>\n  <body>\n   <?php echo '<p>Hello World</p>'; ?> \n  </body>\n</html>
\n

Next, open the Run & Debug panel, at the left of the IDE. From the Runtime dropdown, select Apache+PHP. Then, click on the \"The button in the top menu bar.

\n

The console should now spit out a message about how your Apache server is running, something similar to this:

\n
Running Apache Process\nTip: you can access long running processes, like a server, at 'http://php_hello.gjtorikian.c9.io'.
\n

Clicking on that link gets you to your PHP page. For a more in-depth workflow, see the article on running WordPress entirely on Cloud9.

\n

Modifying php.ini

\n

You can configure your PHP installation by editing the php.ini located in the /home/ubuntu/workspace directory. Please note: in some cases php.ini is located somewhere else. Just create a simple PHP file running phpinfo() to find out where to look for php.ini.

\n

Make sure to restart Apache after you have applied your changes

\n
apachectl restart
\n

Note:

Currently, you can't debug PHP applications yet, but we are working on adding this feature.\n
\n\n
" - }, - { - "filename": "setting_up_bitbucket_workspace", - "mtime": 1412172002000, - "pageTitle": "Setting Up a Bitbucket Workspace", - "contents": "

Setting Up a Bitbucket Workspace

\n

Bitbucket is a code-hosting services that offers both git and mercurial support. Projects can be listed as private or public, absolutely free. For more information on Bitbucket, visit https://bitbucket.org.

\n

We have integrated Bitbucket into the IDE to enable you to easily work on your public and private repositories. The following article explains how you can activate your Bitbucket account in Cloud9 IDE.

\n

Bitbucket Activation

\n

You can manage your add-on services from your user profile that you can find in the dashboard. When you have just signed in, click Your Account on the top of the left-side panel. Here, you can change the settings of your account. At the bottom, you'll see a list of add-on services that are integrated into Cloud9 IDE. Click activate on the Bitbucket button:

\n

\"Add-on

\n

A new window will pop-up on your screen. This window asks you to give authorization permission for the Cloud9 IDE application to interact in various ways with Bitbucket:

\n

\"Bitbucket

\n

To finalize the activation, click on Allow. Next, you're redirected to your account page, where you'll notice that your Bitbucket account is activated. You can deactivate Bitbucket by simply clicking deactivate, which may be useful when you want to link your Bitbucket account to another Cloud9 account.

\n

Now that you have activated Bitbucket, you can start to create and manage your projects!

\n

Managing Projects

\n

There are several ways to manage Bitbucket projects in Cloud9 IDE:

\n
    \n
  • By creating a new git or mercurial project and pushing it to Bitbucket
  • \n
  • By cloning a Bitbucket project from a URL
  • \n
  • By bringing in a Bitbucket project manually
  • \n
\n

Creating a New Git Project

\n

New projects are created from the dashboard. In the left-side panel, click on the \"Project to add a new project:

\n

\"New

\n

A new window will pop-up in which you can change your settings to your preferences:

\n
    \n
  • Fill in your preferred project name in the text field
  • \n
  • Choose who will have access to the project (a feature for Premium customers)
  • \n
  • Select your project type (git, mercurial, or FTP)
  • \n
  • Choose a development server (a feature for Premium customers)
  • \n
\n

\"New

\n

After you click CREATE, the project is listed in your dashboard. Select the project to see its Project Profile, where you can start editing: \"Start

\n

There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands:

\n
git remote add [remote name] [remote url]
\n

remote url is the location of the project on Bitbucket; for example 'origin git@bitbucket.org:username/repository_name.git'. You'll have to create a Bitbucket project first in order to generate this URL. Adding a remote URL lets you freely push and pull your project.

\n

Next, create a few new files inside your project. By default, you should already have a README.md. You can add these files to git with the following command:

\n
git add [file1, file2, file3, ...]
\n

Finally, create a commit that you can push to your remote:

\n
git commit -m 'added new files'
\n

Don't forget to push this commit out to Bitbucket:

\n
git push [remote name] master
\n

Ta-da! Your project is developed on Cloud9, and stored in Bitbucket.

\n

Cloning Projects from a URL

\n

You can also create a project in Cloud9 IDE by cloning it from a URL. Once again, click on the \"Project, and select Clone from URL. A new window pops up, asking you:

\n
    \n
  • to enter a Source URL
  • \n
  • to choose who will have access to the project (Premium feature)
  • \n
  • to choose a development server (Premium feature)
  • \n
\n

\"Clone

\n

You can find an examples of a Bitbucket URL on any of their repo description pages:

\n

\"Bitbucket

\n

Paste the URL in the source field and click CHECKOUT. In the left-side panel, you'll see the project and its status turn into "Cloning in Progress". When this process is completed you can open the project and start editing it, just like any other project.

\n

Clone Projects Already On Bitbucket

\n

When you provide Cloud9 IDE with your Bitbucket credentials, it provides a list of projects you haven't yet imported into the editor:

\n

\"Bitbucket

\n

From this list, clicking on a project and selecting CLONE TO EDIT brings the repo into the IDE, just as if you cloned it from a URL.

\n\n
" - }, - { - "filename": "run_your_own_workspace", - "mtime": 1412172002000, - "pageTitle": "Running Your Own SSH Workspace", - "contents": "

Running Your Own SSH Workspace

\n

You have access to an incredibly powerful feature of Cloud9 that we like to call "running your own workspace."

\n

If you own a server that you can SSH into, you can log into that machine with Cloud9 and work on your projects remotely. To put this into perspective, you could have an entire toolchain set up on this machine--say, make with gcc, or ant with Java--edit the files with Cloud9 IDE, and build your toolchain via the IDE's terminal. Here's a video demonstrating how you could instantly compile a C program using an SSH workspace and Cloud9:

\n
\n\n
\n\n

Connection Prerequisites

\n

In order to connect Cloud9 with a server you own, you'll need two things:

\n
    \n
  1. Node.js installed on the server. This version must be between Node.js version 0.6.16 and the latest 0.8.x.
  2. \n
  3. Your public SSH key must be saved on the server at ~/.ssh/authorized_keys. This is to ensure the utmost security between your client computer and the machine you're attempting to access. Cloud9 provides you with your SSH key in the workspace dialog; it is up to you to save it to the appropriate path. For more information on SSH keys, see this article.
  4. \n
\n

Tip:

If you're behind a firewall, you can identify which IP address and port Cloud9 is running on by typing echo $OPENSHIFT_INTERNAL_IP and echo $OPENSHIFT_INTERNAL_PORT into the console. You can use this information to open any blocked connections.\n\n
\n

Creating an SSH Workspace

\n

Once you've got those requirements set up, here's how you can create an SSH workspace of your own:

\n

In the Projects tab on the Dashboard, click on the \"Project next to MY PROJECTS and choose the option to Create a new project (see "Creating a New Project" if you need to review the steps to create a new project):
\"New

\n

In the pop-up window that appears, select SSH for the project type:
\"SSH

\n

You don't need to fill out every option provided by the dialog. Let's review what they are:

\n
    \n
  • Hostname: the domain name or IP address of the machine running your SSH server.
  • \n
  • Username: your username for the SSH server.
  • \n
  • Node.js Binary Path: the locaton of your Node.js binary. If you're not sure where it is, you can always let Cloud9 guess it for you. Otherwise, on your server, type which node, to see the full path
  • \n
  • Initial path: this is an optional parameter. You can set it as an absolute (starts with /) path. Otherwise, it'll be set to a relative path, and Cloud9 assumes that you want to start from the folder your SSH server leaves you after login (usually the home or default folder).
  • \n
  • Port: this is an optional parameter. Cloud9 will automatically try to connect on port 22
  • \n
\n

Warning:

Be careful not to put an initial path that leaves you in a location where you don't have write privileges, as that could cause problems!\n\n
\n

Fill in your SSH details and click the Login Test to verify that the settings are correct. If the test succeeds, go ahead and click Create to create your SSH connection. You'll then see your project in the Dashboard under My Projects:\n\"New

\n

When your new SSH is selected, you will see three buttons: Start Editing, SSH settings, and Delete (on the far right). SSH settings gives you access to the settings you just filled in, as well as the login test. This is useful to use in case your login credentials have changed.

\n

Warning:

Make sure that you copied your SSH key correctly! Trailing spaces are significant, so make sure your text editor on your server is not modifying the key that Cloud9 is providing you with.\n\n
\n

To get started with your SSH project, click on the Start Editing button. You'll instantly be taken to the editor, and have full access to your server's resources. As you can see in the video above, this means you can do exciting things like compiling C programs.

\n\n
" - }, - { - "filename": "ssh_workspaces", - "mtime": 1416998221000, - "pageTitle": "SSH Workspaces", - "contents": "

SSH Workspaces

\n

To connect Cloud9 to a server via SSH, we first need to install a few dependencies on your system. \nThis is done by an open-source installer which you can find here.

\n

Usually the installation should succeed without any issues, but on some systems you will need to install a few dependencies manually. See below for common dependency issues you might run into.

\n

Installing Python 2.7 on CentOS

\n
curl -O https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz\ntar xf Python-2.7.6.tar.xz\ncd Python-2.7.6\n./configure --prefix=/usr/local\nmake && make altinstall
\n

Common errors

\n

no configure: error: "curses not found"

\n

To get around this issue make sure glibc-static is installed on the machine.

\n\n
" - }, - { - "filename": "setting_up_github_workspace", - "mtime": 1412172002000, - "pageTitle": "Setting Up a GitHub Workspace", - "contents": "

Setting Up a GitHub Workspace

\n

GitHub is a code hosting service which offers you a lot of features to manage your public and private git repositories. For more information about GitHub and how to use it, visit https://github.com.

\n

We have integrated GitHub into the IDE to enable you to easily work on your public and private Git repositories. The following article explains how you can activate your GitHub account in Cloud9 IDE.

\n

GitHub Activation

\n

You can manage your add-on services from your user profile that you can find in the dashboard. When you have just signed in, click Your Account on the top of the left-side panel. Here, you can change the settings of your account. At the bottom, you'll see a list of add-on services that are integrated into Cloud9 IDE. Click activate on the GitHub button:

\n

\"Add-on

\n

A new window will pop-up on your screen. This window asks you to give authorization permission for the Cloud9 IDE application to interact in various ways with GitHub:

\n

\"GitHub

\n

To finalize the activation, click on Allow. Next, you're redirected to your account page, where you'll notice that your GitHub account is activated. You can deactivate GitHub by simply clicking deactivate, which may be useful when you want to link your GitHub account to another Cloud9 account.

\n

Now that you have activated GitHub, you can start to create and manage git projects!

\n

Managing Git Projects

\n

There are several ways to manage GitHub projects in Cloud9 IDE:

\n
    \n
  • By creating a new git project and pushing it to GitHub
  • \n
  • By cloning a GitHub project from a URL
  • \n
  • By bringing in a GitHub project manually
  • \n
\n

Creating a New Git Project

\n

New projects are created from the dashboard. In the left-side panel, click on the \"Project to add a new project:

\n

\"New

\n

A new window will pop-up in which you can change your settings to your preferences:

\n
    \n
  • Fill in your preferred project name in the text field
  • \n
  • Choose who will have access to the project (a feature for Premium customers)
  • \n
  • Select your project type (git, mercurial, or FTP)
  • \n
  • Choose a development server (a feature for Premium customers)\n{: #setupOptions}
  • \n
\n

\"New

\n

Select git as your project type. After you click CREATE, the project is listed in your dashboard. Select the project to see its Project Profile, where you can start editing: \"Start

\n

There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands:

\n
git remote add [remote name] [remote url]
\n

remote url is the location of the project on GitHub; for example 'git@github.com:/ajaxorg/node_chat'. You'll have to create a GitHub project first in order to generate this URL. Adding a remote URL lets you freely push and pull your project.

\n

Next, create a few new files inside your project. By default, you should already have a README.md. You can add these files to git with the following command:

\n
git add [file1, file2, file3, ...]
\n

Finally, create a commit that you can push to your remote:

\n
git commit -m 'added new files'
\n

Don't forget to push this commit out to GitHub:

\n
git push [remote name] master
\n

Ta-da! Your project is developed on Cloud9, and stored in GitHub.

\n

Cloning Projects from a URL

\n

You can also create a project in Cloud9 IDE by cloning it from a URL. Once again, click on the \"Project, and select Clone from URL. A new window pops up, asking you:

\n
    \n
  • to enter a Source URL
  • \n
  • to choose who will have access to the project (Premium feature)
  • \n
  • to choose a development server (Premium feature)
    {: #cloningOptions}
  • \n
\n

\"Clone

\n

You can find an examples of a GitHub URL on any of their repo description pages:

\n

\"GitHub

\n

Paste the URL in the source field and click CHECKOUT. In the left-side panel, you'll see the project and its status turn into "Cloning in Progress". When this process is completed you can open the project and start editing it, just like any other project.

\n

Clone Projects Already On GitHub

\n

When you provide Cloud9 IDE with your GitHub credentials, it provides a list of projects you haven't yet imported into the editor:

\n

\"GitHub

\n

From this list, clicking on a project and selecting CLONE TO EDIT brings the repo into the IDE, just as if you cloned it from a URL.

\n\n
" - }, - { - "filename": "setting_up_gitlab_workspace", - "mtime": 1412172002000, - "pageTitle": "Setting Up a GitLab workspace", - "contents": "\n

Setting Up a GitLab workspace

\n

GitLab is open source Git management software used by more than 25.000 \norganizations, see http://gitlab.org/.

\n

GitLab.com offers services for on-premise GitLab installations \nand free private git repositoring on GitLab Cloud \nwith unlimited repo's and collaborators.

\n

To use your on-premise GitLab installation or GitLab Cloud please see \nthe instructions for cloning from a url.

\n\n
" - } - ], - "toc": "\n \n ", - "baseUrl": "https://docs.c9.io", - "title": "Cloud9 User Documentation" -} \ No newline at end of file diff --git a/out/collaboration.html b/out/collaboration.html deleted file mode 100644 index eefcea2..0000000 --- a/out/collaboration.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - Collaboration | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Collaboration

-

Note:

this article is outdated, a new version will follow soon - -
-

Collaboration with Cloud9 IDE is an amazing feature that lets you do more than just share your projects with any other Cloud9 developer. You can grant someone else access to change files in your workspace, in realtime--or just let them view the workspace without any other rights. While you're collaborating, you can discuss the code through a built-in chat room.

-

To invite someone to collaborate on a project with you, simply copy the URL in the browser and send it to a friend. You can also click on Share in the menu bar to get quick access to other ways to share, such as via e-mail, Twitter, or Facebook.

-

Let's take a look at some of the additional features available while you collaborate.

-

Members List

-

There are two terms used for people accessing your project: members and visitors. Members are individuals that have read and write access to your project--that means they can change any code; visitors only have read access. The Members panel lists all the collaborators in a project, both active and inactive:

-

The Members Panel

-

If you are the owner of a project, you can click on anyone's username to grant (or revoke) write access:

-

Granting write access

-

If you're worried about the sanctity of your code after grant access to other developers, fear not. You can always take a look at a file revision history to view line-by-line changes made to your project over time.

-

Chatting

-

Any member or visitor can participate in group chat with each other. Developers can also choose to double-click on a person's username and engage in a private, instant-message-style conversation.

-

Collaborate on Code

-

When a collaborator changes a file you're also working on, Cloud9 detects it and asks you whether you'd like to use their changes, or your version. We're also simply giving you the option to merge both, using a three-way-merge algorithm to handle any conflicts. This is the same algorithm used by version control systems like git for merging branches.

-

To make the experience even smoother you can choose "Always merge by default" and we'll never interrupt you about file changes again.

-

Check out the video below to see this in action.

-
- -
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/colorpicker.html b/out/colorpicker.html deleted file mode 100644 index 6430571..0000000 --- a/out/colorpicker.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - Color Picker | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Color Picker

-

Note:

this feature is deprecated - -
-
- -
- -

The color picker is an awesome feature in Cloud9 IDE, designed to not only make color selections easier, but also, more harmonious. At its core, the color picker is a way to represent words (red, blue, e.t.c.), RGBA values (rgba(175, 3, 124, .6)), or hex values (#f00f00) into actual colors.

-

To enable the color picker, flip the preferences on in the Settings panel. You can use the color picker in CSS, SVG, HTML, or APF Skin files. All you have to do is hover over the value of a color definition, and it'll instantly highlight, like this: Color picker highlighting

-

When the represented color is highlighted, click on it. You'll get a color square defining all the possible color arrangements. To select a color, you can click in the square, pick your own RGB or HSB values, or enter some hex code. Best of all, at the bottom of the window, you'll find a list of other colors found within the same document--just in case you want to achieve matching shades:
Color picker wheel

-

To set the value, just click anywhere outside of the color picker.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/common_errors.html b/out/common_errors.html deleted file mode 100644 index 096c211..0000000 --- a/out/common_errors.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - Common errors | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Common errors

-

Sometimes you run into issues when you run your project. Here you will find the most common issues and how to solve them.

-

Address in use or similar

-

The most common reason for an error thrown by your app stating that a port or address is in use is the fact that some process is already running/listening on that port/address. You need to take a look for those and kill the processes conflicting with your app:

-
// Find the process
-lsof -i tcp:$PORT
-

If any relevant process is running you will get a list looking like this:

-
COMMAND PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
-apache2 699 ubuntu    4u  IPv6 83213152      0t0  TCP *:http-alt (LISTEN)
-

You now can kill that proccess. Make sure you replace PID with the ID of the process.

-
// Kill the process
-kill -9 PID
-

For the console wizards:

-
kill -9 $(lsof -i:$PORT -t)
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/console.html b/out/console.html deleted file mode 100644 index 1a39bf4..0000000 --- a/out/console.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - The Console | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

The Console

-

Note:

this feature is deprecated - -
-

The Console is at the bottom of the IDE. It's where you can enter command line input, view output from your program, and push and pull your files between your code repositories.

-

Note:

The Console contains a full-fledged terminal, which provides you with a TTY interface for direct access to the machine that Cloud9 is running on. - -
-

Available Commands

-

The terminal can perform all Unix commands, and allows for path autocompletion by hitting Tab.

-

For instance, you can use mercurial commands (hg) and git commands (git) to communicate with the system, and to push your code between repositories. Typing hg or git shows the complete list of commands that are available for these services. For more information about these commands, please check their respective documentation:

- -

To use mercurial commands on the project you are working on, you must have a mercurial project set up; the same holds true for git. Follow these links to learn more about how to set up these project in Cloud9:

- -

Output

-

The output tab in the Console shows information whenever a user is running or debugging a program. The content is similar to the output of a desktop terminal:
Screenshot of program output

-

The output tab also displays the error and additional information that can improve your coding quality. You can use the Console to output results from your running application, just like a regular terminal.

-

As your process runs, you'll see a message similar to this one indicating that Cloud9 is running something in the background: Running process

-

If you hover over this message, you can opt to cancel the process by clicking on the button: Cancelling a process

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/create_a_workspace.html b/out/create_a_workspace.html deleted file mode 100644 index 5c99211..0000000 --- a/out/create_a_workspace.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - Create a Workspace | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Create a Workspace

-

Cloud9 supports three types of workspaces:

-
    -
  1. Hosted
  2. -
  3. FTP
  4. -
  5. SSH
  6. -
-

"Hosted" is the best choice for most people, so in this short "Getting Started" article we'll only describe this option; for other options please read the full Creating a new workspace article.

-

The first step for creating a new workspace is click the "CREATE NEW WORKSPACE" button in your Dashboard:

-

New workspace creation

-

At this point, you'll encounter two choices: Create a new workspace and Clone from URL. -In this article we'll only describe the Create a New Workspace option, which allows you to create any of the previously mentioned types of workspaces (hosted, FTP, or SSH).

-

After clicking on Create a new workspace, you're taken to the screen below:

-

Options for creating a new workspace

-

First, let's enter a workspace name. -Depending on whether you have a Free of Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with).

-

After this, choose the type of workspace you want to create:

- -

Choose the "Hosted" workspace type to start from scratch with a 'Custom' workspace, or simply pick a pre-configured environment like Node.js, WordPress, or Python/Django, and immediately start developing your app. -This way you don't need to spend valuable development time on system setup and maintenance, as we maintain it, and you control it.

-

Options for creating a hosted workspace

-

As it's powered by a full Linux Ubuntu environment, hosted workspaces allow you to install any package (sudo apt-get install package), run git commands from the console to push your changes to a GitHub repo or a Bitbucket git repo, etcetera.

-

Now press Create. That's it! You can now see your new workspace in the dashboard:

-

New workspace greeting

-

Now, just click Start Editing to get started!

-

Next up, read how to run an application and set up a database.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/creating_coffeescript_app.html b/out/creating_coffeescript_app.html deleted file mode 100644 index 764f68d..0000000 --- a/out/creating_coffeescript_app.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - Create a CoffeeScript Project | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Create a CoffeeScript Project

-

For this tutorial, we'll show you how to create and run a CoffeeScript project, entirely within the Cloud9 IDE. To run any coffeescript project, you'll need to first make sure to install the coffeescript module via the Node Package Manager (npm). We're going to walk you through how to do that with a sample project.

-

First, create a new project. Then, in the console, enter the following command:

-
git clone git://github.com/fjakobs/cloud9-coffeescript-example.git
-

This is a sample CoffeeScript application written by one of our developers. After cloning the project, you'll find three different files in the project tree: server.js, app.coffee, and README.md.

-

The README.md file contains instructions to install coffee-script using npm. We've integrated Node Package Manager into Cloud9 IDE to enable users to install Node programs. Thus, from the Cloud9 IDE command line, type the following command to install the Coffeescript module:

-
npm install coffee-script
-

Next, let's have a look at the server.js file. The first line is the require() function, which is used to load the coffee-script module that you have just installed. On the second line, we declare the CoffeeScript file that contains your application. In the last line, we specify the port the server is listening to. When projects run within Cloud9 IDE, you must retrieve the port information using process.env.PORT.

-

Now, let's look at what the CoffeeScript file does. It creates an HTTP server with a function that is called for each request. In the callback function, you create a response with a status code of 200 (indicating that the request was fulfilled successfully) and the message "Hello World". You use module.exports to enable the server.js file to use the code in the CoffeeScript file:

-
http = require "http"
-
-module.exports = http.createServer((req, res) ->
-    res.writeHead 200, 'Content-Type': 'text/plain'
-    res.end 'Hello World\n'
-

Next, run the server.js file and open the URL indicated in the console:

-

Messages in the console about the server

-

The result is:

-

The server running in a browser

-

To stop your application, go back to the editor and click on the Icon of the Stop Button button in the Menu Bar.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/creating_new_workspace.html b/out/creating_new_workspace.html deleted file mode 100644 index e619bf9..0000000 --- a/out/creating_new_workspace.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - Creating a New Workspace | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Creating a New Workspace

-

Cloud9 supports three types of workspaces:

-
    -
  1. Hosted
  2. -
  3. FTP
  4. -
  5. SSH
  6. -
-

In this article, we'll walk you through the creation of a new workspace and describe the choices you encounter.

-

The first step for creating a new workspace is click the "CREATE NEW WORKSPACE" button in your Dashboard:

-

New workspace creation

-

At this point, you'll encounter two choices: Create a new workspace and Clone from URL. Here's what they mean:

-
    -
  • Create a New Workspace allows you to create any of the previously mentioned types of workspaces (hosted, FTP, or SSH).
  • -
  • Clone from URL allows you to instantly create a workspace from a repository, like GitHub or Bitbucket, using its URL. We'll explain more about this in the section below.
  • -
-

Create a New Workspace

-

After clicking on Create a new workspace, you're taken to the screen below:

-

Options for creating a new workspace

-

First, let's enter a workspace name. -Depending on whether you have a Free of Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with).

-

After this, choose the type of workspace you want to create:

-
    -
  • Hosted: This is a regular Cloud9 workspace, powered by a full Ubuntu environment. You even have sudo powers! This is the best choice for most people, and we've included some more info about it below.
  • -
  • FTP allows you to upload your files directly to an FTP server that you have access to
  • -
  • SSH, also called the "bring your own server" feature, lets you log into a server you own and run Cloud9 from there
  • -
-

Make a choice for the type of workspace and press Create. That's it! You can now see your new workspace in the dashboard:

-

New workspace greeting

-

Now, just click Start Editing to get started!

-

Hosted workspaces

-

Choose this workspace type to start from scratch with a 'Custom' workspace, or simply pick a pre-configured environment like Node.js, WordPress, or Python/Django, and immediately start developing your app. -This way you don't need to spend valuable development time on system setup and maintenance, as we maintain it, and you control it.

-

Options for creating a hosted workspace

-

As it's powered by a full Linux Ubuntu environment, hosted workspaces allow you to install any package (sudo apt-get install package), run git commands from the console to push your changes to a GitHub repo or a Bitbucket git repo, etcetera.

-

Cloning from a URL

-

The second option for creating a new workspace is to clone one from URL. The URL would be, for example, the URL of a GitHub workspace.

-

In fact, let's clone a workspace. When you click on Clone from URL, you're taken to this screen:

-

Options for cloning a workspace

-

Paste the following GitHub URL in the textbox labeled Source URL: https://github.com/mattpardee/geekdots

-

If you have a premium account, you can choose who has access to your workspace. For regular users, the new workspace will be public.

-

Now, check out the workspace. It will be created under My Workspaces. You can now start editing it!

-

Deleting a Workspace

-

Now that you know how to create a workspace, you should also learn how to delete one. Look at the far right side of your dashboard:

-

Delete workspace screen

-

Clicking on the Delete button prompts the IDE to ask for confirmation:
Confirmation of workspace deletion

-

This is your last chance to change your mind. Once you have typed delete in the textbox and pressed the red button, your workspace will be gone forever from Cloud9. If you are sure you want to delete your workspace, go ahead and press the red button. Of course, if your workspace is hosted elsewhere, like on another git or FTP server, it still exists in those repositories.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/custom_runners.html b/out/custom_runners.html deleted file mode 100644 index 711cf82..0000000 --- a/out/custom_runners.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - Custom Runners | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Custom Runners

-

Luckily you're not limited to the default set of Runners in Cloud9. -You can simply define your own custom Runner, which is both simple and very powerful. -All you need to do is create a Runner file. -In this article we'll describe how to do this in just a few steps.

-

In the Run panel (usually at the bottom of the UI), click the 'Runner' text input and choose 'New Runner'. -In the new Runner file that's now opened, you can configure your runner -using a simple JSON format. We'll show a basic example below -and then explain the different properties you can use.

-

Let's start with a basic example: a runner for go files.

-
{
-    "cmd": ["go", "run", "$file", "$args"],
-    "selector": "source.go",
-    "info": "Your code is running :)"
-}
-

This runner will use "go run" for any file that has a ".go" file extension. -If you add it, it'll override our default Go runner.

-

As another example, let's save a new Node 0.11 configuration, including Harmony support. -Create a new Runner, add this code, and save it as 'Node 0.11.x.run':

-
// This file overrides the built-in Node 0.11.x runner
-// For more information see http://docs.c9.io:8080/#!/api/run-method-run
-{
-  "cmd": [
-    "bash",
-    "--login",
-    "-c",
-    "nvm use 0.11 > /dev/null; node --harmony ${debug?--nocrankshaft --nolazy --debug-brk=15454} '$file' $args"
-  ],
-  "debugger": "v8",
-  "debugport": 15454,
-  "info": "Your code is running at \\033[01;34m$url\\033[00m.\n\\033[01;31mImportant:\\033[00m use \\033[01;32mprocess.env.PORT\\033[00m as the port and \\033[01;32mprocess.env.IP\\033[00m as the host in your scripts!\n"
-}
-

Note:

alternatively, you can check 'Show Hidden Files' in your workspace directory tree (the small gear in the upper right corner), and create a new file in the '.c9/runners' folder called 'Node 0.11.x.run' with this code. - -
-

That's it! Your custom Runner should be available in the Run panel.

-

Runner Variables

-

Here's a list of all the variables you can use in your runners:

-
    -
  • $file_path The directory of the current file, e. g., /home/ubuntu/workspace/docs

    -
  • -
  • $file The full path to the current file, e. g., /home/ubuntu/workspace/docs/Chapter1.txt.

    -
  • -
  • $args Any arguments entered after the file name.

    -
  • -
  • $file_name The name portion of the current file, e. g., Chapter1.txt.

    -
  • -
  • $file_extension The extension portion of the current file, e. g., txt.

    -
  • -
  • $file_base_name The name only portion of the current file, e. g., Document.

    -
  • -
  • $packages The full path to the Packages folder.

    -
  • -
  • $project The full path to the current project file.

    -
  • -
  • $project_path The directory of the current project file.

    -
  • -
  • $project_name The name portion of the current project file.

    -
  • -
  • $project_extension The extension portion of the current project file.

    -
  • -
  • $project_base_name The name only portion of the current project file.

    -
  • -
  • $hostname The hostname of the workspace.

    -
  • -
  • $hostname_path The hostname of the workspace together with the relative path of the project file.

    -
  • -
  • $url The full url to access the workspace.

    -
  • -
  • $port The port assigned to the workspace.

    -
  • -
  • $ip The ip address to run a process against in the workspace.

    -
  • -
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/dashboard.html b/out/dashboard.html deleted file mode 100644 index 01f6af0..0000000 --- a/out/dashboard.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - The Dashboard | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

The Dashboard

-

After you have logged into Cloud9, you are placed into your account's dashboard. From here, you can edit your profile and manage workspaces you have access to.

-

An overview of the dashboard

-

In the top-left corner of the dashboard, your username is displayed. Within the user context, you can view your user profile by clicking on Your Account:

-

A snippet of the user context

-

The user profile contains:

-
    -
  • Your recent activities, including a list of actions you have recently performed, such as cloning, opening, and deleting projects
  • -
  • Your add-on services, which you've integrated into Cloud9. Currently, these are GitHub and Bitbucket.
  • -
  • Your account settings, where you're given the following choices:
      -
    • Change your password
    • -
    • Show your SSH key
    • -
    • Upgrade to premium (or, downgrade from it)
    • -
    • Delete your account
    • -
    -
  • -
-

The gravatar that is used for your profile is handled by gravatar.com. If you don't have a gravatar yet, Cloud9 IDE uses an uninspiring default.

-

In the left panel, you'll find a list of various projects associated with your account. These are:

-
    -
  • My Projects: these are projects you've created or cloned, and own
  • -
  • Shared With Me: these are projects shared with you by other Cloud9 users
  • -
  • Recently Visited: these are projects you've seen lately
  • -
  • Projects on GitHub: a list of your uncloned public and private GitHub projects
  • -
  • Projects on Bitbucket: a list of your uncloned public and private Bitbucket projects
  • -
-

Clicking on the Project Add Icon next to MY PROJECTS lets you:

-
    -
  • Create a new project
  • -
  • Clone from URL
  • -
-

Creating new projects

-

For more information on creating new workspaces, see this section of the documentation.

-

You can always filter your project list by entering text in the text bar to find matching projects. If you need to update the list, click the refresh icon at the bottom of the panel: Refresh projects button

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/deploying_code.html b/out/deploying_code.html deleted file mode 100644 index fb317fd..0000000 --- a/out/deploying_code.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - Deploying Your Code | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Deploying Your Code

-

Cloud9 IDE offers many different ways to get your code from your editor to your -production server. To deploy your code, click on the Deploy button in the -Project Bar:

-

The Deploy button in the Project Bar

-

We offer tight integration with the following environments:

- -

Following these links will provide you with more information on code deployment. -You can deploy your code to as many services and servers as you like. Keep in -mind that you'll already need an account at those hosting providers before you -can deploy your app to them!

-

If you're comfortable with the command line, you can also deploy to several more -environments, such as:

- -

Warning:

Before you attempt to deploy your application, make sure that you have -committed all your changes to version control. Cloud9 deploys for you whatever -was last committed to version control.
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/deploying_to_heroku.html b/out/deploying_to_heroku.html deleted file mode 100644 index 73680d6..0000000 --- a/out/deploying_to_heroku.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - Deploying to Heroku | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Deploying to Heroku

-

This section will show you how to deploy your applications to Heroku, a cloud-based application platform. The integration with Cloud9 IDE makes your development process even more agile. If you don't have a Heroku account, visit their website to create one for free.

-

To get started, create a simple Node.js application. If you don't have one yet, you can follow our tutorial on developing one.

-

After you click on the Deploy button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Heroku as an option. After you have signed into your Heroku account, you can create a new deploy target or choose an existing one from your account:

-

Showing the Deploy button

-

Note:

Heroku only allows you to create names for your apps that contain letters and dashes. - -
-

Next, press Deploy to continue the process; the following window might appear:

-

Dialog requesting a package JSON file

-

Heroku Node.js apps are required to have a package.json file, much like with NPM. Cloud9 can generate a package.json file for you, containing metadata to share Heroku. The following lines represent what that file might looks like:

-
{
-    "name": "cloud9-heroku-example",
-    "version": "0.0.1"
-}
-

After you have a package.json file, you might see this dialog:

-

Dialog requesting a Procfile

-

Sometimes, a Heroku app also requires a Procfile. The Procfile is needed to start the application in Heroku. You can just create a new file, add the line below, and save it as 'Procfile'. Don't add any file extensions.

-
web: node web.js
-

Try the deploy button again. The console will directly output the following when the deployment is completed:

-

Console output for Heroku

-

And just like that, you've deployed your project to Heroku.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/deploying_to_windows_azure_sites.html b/out/deploying_to_windows_azure_sites.html deleted file mode 100644 index 0218ae1..0000000 --- a/out/deploying_to_windows_azure_sites.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - Deploying to Windows Azure Sites | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Deploying to Windows Azure Sites

-

This article will show you how to deploy your applications to Windows Azure. If you don't have an account yet, the Windows Azure process will help you create one. Keep in mind that Windows Azure is not free, though it does come with a free trial. Windows Azure projects can be deployed from any operating system.

-

To get started, create a simple Node.js application. If you don't have one yet, you can follow our tutorial on developing one.

-

After you click on the Deploy button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Windows Azure as an option. You'll be prompted with this dialog:
Windows Azure asking for publisher settings

-

You must click on the Download Windows Azure Settings button before you can continue. If you don't have a Windows Azure account, here is where you can create one. If you do have an account, your browser will automatically download the required file.

-

When that's finished, simply select the downloaded file from your computer, and upload it to Cloud9. You'll only have to do this process once. If you ever need to upload a new certificate, be sure to click Clear cert in the lower-right corner of this dialog.

-

After the file has uploaded, click on Create new to create a new hosted service. A hosted service is the container in which your application is hosted when it is deployed to Windows Azure. For more information, see Overview of Creating a Hosted Service for Windows Azure.

-

You can set a few configuration options such as the number of instances to use, its host OS, and where the data center is located. Selecting "Enable RDP" and providing a username and password enables remote desktop for your deployment.

-

Your new Windows Azure server will appear in the Deploy list:
Windows Azure information

-

Go ahead and click on DEPLOY. If this is the first time you're trying to deploy this project to Windows Azure, you'll receive three prompts:

-
    -
  1. A dialog will inform you of a missing web.config file. If you click Yes, Cloud9 will create a file called Web.cloud.config in your project. This file contains configuration information about your app.

    -
  2. -
  3. You'll be told about a missing csdef file. If you click Yes, Cloud9 will create a file called ServiceDefinition.csdef in your project. ServiceDefinition.csdef is a Windows Azure-specific files necessary for publishing your application For more information, see Overview of Creating a Hosted Service for Windows Azure.

    -
  4. -
  5. You'll be asked to select the instance size for this application. For this tutorial, just select Small, and then click Create. For more details about Windows Azure VM sizes, see How to Configure Virtual Machine Sizes.

    -
  6. -
-

Your app will now deploy to a Windows Azure server! You can follow its progress in the Deploy panel, or by watching the messages in the console: -Windows Azure staging messages

-

For more information on configuring your app on the Windows Azure website, see Deploying a Windows Azure App from Cloud9.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/deploying_via_cli.html b/out/deploying_via_cli.html deleted file mode 100644 index 2a7cae0..0000000 --- a/out/deploying_via_cli.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - Deploying via the Command Line | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Deploying via the Command Line

-

In the new version of Cloud9 we don't have support for deployment from the UI yet, but we're going to add those features soon.

-

Until then, you can manually install various command-line tools into your workspace and deploy using the command line. -It should go without saying that this is for super 31337 developers that aren't afraid of the command line.

-

Below is a list of some of the services we have tested and support deploying to. -All the commands need to be executed in the terminal unless stated otherwise.

-

Heroku

-

Heroku's toolbelt is installed by default in new VMs.

-

Now, you can use the heroku command for your projects, as described in the -Heroku documentation.

-

If deploying to Heroku, you should probably be using a local instance of PostgresQL, or you may run into problems caused by different database interpretations of SQL.

-

Windows Azure Web Sites

-

Free and Premium Plans

-

In the Console or a Terminal, type the -following:

-
npm install azure
-

Now, you can use the azure command from the Console/Terminal. For more -information, read the official azure documentation.

-

Premium Plans

-

To deploy to Azure sites from the command line, open the Terminal and type:

-
cd ~/lib/azure-sites
-npm install
-

Then, add the bin to your workspace's path:

-
PATH=$PATH:$HOME/lib/azure-sites/bin
-

Now, you can use the azure command in the terminal.

-

Windows Azure Cloud Services

-

For free and premium plans, follow the instructions on the -azure-cmdlet-node repository. This -project is maintained by Cloud9.

-

Google App Engine

-

First, setup Push to Deploy: Create a new App Engine application at -cloud.google.com/console, and then enable -Push-to-Deploy under 'App Engine' in the Application Settings page. Leave this -tab open to note the URL for your repo.

-

Secondly, configure Cloud9. Run the following commands (making sure to replace -your email address, auth-token, and repo-url):

-
echo "machine code.google.com login EMAIL password PASSWORD" >> ~/.netrc
-git remote add appengine REPO
-

Note:

The email in this case is the mail address you use to login to your Google -App Engine account and the password is the auth-token generated from the admin -console, it is not your google password, never type that into a third party tool. -'REPO' is the repository URL generated before. - -
-

Finally, do a commit, and a push:

-
git commit -a -m "First commit"
-git push appengine master
-

OpenShift

-
# Install rhc:
-gem install rhc
-rhc setup
-
-# After this you can use rhc to manage your account:
-
-# list apps:
-rhc apps
-# To show what you can do with apps do:
-rhc app help
-# You deploy via a git push
-git push <giturl> master
-

CloudFoundry

-

To deploy to CloudFoundry from the command line in the Console -or a Terminal, type:

-
cd ~
-wget https://github.com/cloudfoundry/vmc/zipball/master
-mv master cloudfoundry
-unzip cloudfoundry
-cd cloudfoundry-vmc-nnnn
-bundle
-

NodeJitsu

-

Free and Premium Plans

-

In the the Console or a Terminal, type:

-
npm install jitsu@0.7.x -g
-mkdir node_modules
-mv ../lib/node_modules/jitsu node_modules
-

Now, you can run jitsu from the command line. For more information, see -the official jitsu documentation.

-

Premium Plans

-
npm install jitsu@0.7.x -g
-

You can now run jitsu from both the Console and the Terminal.

-

Modulus

-

In the the Console or a Terminal, type:

-
npm install modulus -g
-

Now, you can run modulus from the command line. For more information, see -the official modulus documentation.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/editing_wordpress_sites.html b/out/editing_wordpress_sites.html deleted file mode 100644 index cabfb1c..0000000 --- a/out/editing_wordpress_sites.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - Editing Remote WordPress Websites via FTP | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Editing Remote WordPress Websites via FTP

-
- -
- -

Did you know that you can use Cloud9 IDE to work on your WordPress website? It's true, and incredibly easy. You can't edit your posts on WordPress using Cloud9, since they are stored in a database on your server. But you can edit pretty much every other aspect of your site.

-

To start, you'll need to create a new FTP project. After that, enter your wp-content folder, find the theme you're using on your website, and start editing its style.

-

Thanks to the preview button in the menu bar, you can also witness your changes as they happen, before committing them to your server.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/faq_general.html b/out/faq_general.html deleted file mode 100644 index 7d48954..0000000 --- a/out/faq_general.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - FAQ: General | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

FAQ: General

-

Can I use FTP workspaces on Cloud9?

-

Yes, Cloud9 supports FTP workspaces that allow you to edit your files directly on your FTP server. -Currently FTP workspaces still open in the old version of Cloud9, but soon we'll also support FTP workspaces with the new version of Cloud9.

-

One thing that was removed for reliability reasons in the new version of Cloud9, is the ability to deploy over FTP from a regular workspace. -We're bringing back those features in a new format and with much higher reliability in the coming months.

-

How do I deploy to Heroku/Openshift/Azure/...?

-

See Deploying via CLI.

-

Can I connect to SMTP servers (port 25)?

-

No, this is not supported by our hosting platform. It does currently allow access to the GMail servers though, so you can use that service during development.

-

My workspace says it's out of quota. how do I fix it?

-

You can inspect your current quota usage with the df command in the Terminal:

-
$ df
-

To find which files and directories are consuming a lot of space, go to a directory such as your home directory, and run this command:

-
$ du -m -d 1 -a | sort -n
-

This should give you a list of all members of that directory and how much space they use in megabytes.

-

Alternatively, try du-c9 for seeing all files you added to your workspace and account for the quota.

-

Can I use two-factor authentication with Cloud9?

-

You can sign into Cloud9 with your github or bitbucket account and set that up to use two-factor authentication. -We don't currently provide an option to directly setup your Cloud9 account for two-factor authentication.

-

I can't preview my running app.

-

Try using port 8080 instead, which often solves this case.

-

EADDRINUSE: My app complains that the address/port is in use

-

Applications won't start if another application is already listening to the same port. In order to fix it you first need to find out which process that is:

-
$ netstat -nlp | grep $PORT
-

This will report the process id (PID) which you can then kill using

-
$ sudo kill -9 <PID>
-

Often apache is still running in the background. In that case you can kill it using

-
$ sudo pkill apache2
-

How can I upload local files to my project?

-

Either drag a local file directly from your desktop into the Cloud9 file tree, -or use the "File > Upload Local Files" menu item.

-

How can I download my project files?

-

Use "File > Download project". Currently, this will give you a .tar.gz file, which -ensures maximum portability. To open these files, you can use something like -WinRAR or 7-zip.

-

How can I share a single directory of a private workspace

-

Sometime you might want others to open a file or directory in the browser -without opening up the whole workspace. This can be done by starting a small -http server in that directory and make sure that the running application is public.

-

To make the running application public you have to click the "sharing" button at -the top right and the check "public" for application.

-

To run the server open a terminal and do

-
$ cd /dir/i/want/to/share
-$ python3 -m http.server 8080
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/faq_php.html b/out/faq_php.html deleted file mode 100644 index a337cec..0000000 --- a/out/faq_php.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - FAQ: PHP | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

FAQ: PHP

-

where are the Apache logs?

-

By default the logs are in ~/lib/apache2/log

-

Is mail() supported?

-

No, this is currently not supported; see FAQ: General about SMTP access.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/faq_python.html b/out/faq_python.html deleted file mode 100644 index efe20b4..0000000 --- a/out/faq_python.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - FAQ: Python | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

FAQ: Python

-

Why does easy_install report a permission_denied error?

-

Please use sudo easy_install instead.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/faq_ssh.html b/out/faq_ssh.html deleted file mode 100644 index 93607c6..0000000 --- a/out/faq_ssh.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - FAQ: SSH workspaces | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

FAQ: SSH workspaces

-

I cannot create a SSH workspace using a Digital Ocean droplet

-

We recently discovered our web host is blocking connections to some Digital Ocean IP addresses because they suspect they are being used by Iranian users. They are legally forced to block them.

-

Digital Ocean maintains a whitelist of droplet IP addresses which should not be blocked and our web host follows this list.

-

Please raise a support ticket with Digital Ocean mentioning that you would like to have your droplet IP added to the whitelist. After this is complete you will be able to create your SSH workspace within 24 - 48 hours.

-

I'm getting an error on the SSH install script: "ncurses not found"

-

Try executing the following command:

-
yum install ncurses-devel 
-

or

-
yum install glibc-static 
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_angularjs.html b/out/frameworks_angularjs.html deleted file mode 100644 index 8e7d198..0000000 --- a/out/frameworks_angularjs.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - Framework AngularJS | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework AngularJS

-

AngularJS lets you write client-side web -applications as if you had a smarter browser.

-

Follow these steps to create an AngularJS application using the official project -template:

-
    -
  1. Create a workspace and choose the PHP workspace type
  2. -
  3. Open a Terminal, or using the pre-existing one at the bottom
  4. -
  5. Run the following commands in the Terminal:
    rm -rf * .c9
    -git clone https://github.com/angular/angular-seed.git .
    -npm install
    -mv package.json package.json.bak
    -jq '.scripts.start="http-server -a $IP -p $PORT"' package.json.bak > package.json
    -
  6. -
  7. Click the Run Project button in the top menu of the IDE
  8. -
  9. Check the README.md for further steps
  10. -
-

Note:

We are choosing the PHP workspace type to in order to have the Apache runner -as a default so you can just click Run Project to get started. This doesn't -limit the choice of the backend technology you might want to use.
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_drupal.html b/out/frameworks_drupal.html deleted file mode 100644 index f793d55..0000000 --- a/out/frameworks_drupal.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - Framework: Drupal | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework: Drupal

-

For Drupal there are some installation guides around which tell you to install PHP first, but that's not necessary with Cloud9. -You don't need to install MySQL either, it is already preinstalled in PHP workspaces. -Just make a new workspace, choose PHP, go to the Terminal, and execute the following:

-
cd $HOME
-curl -O http://ftp.drupal.org/files/projects/drupal-7.30.tar.gz
-tar xvf drupal-7.30.tar.gz
-mv drupal-7.30/* workspace/
-mv drupal-7.30/.htaccess workspace/
-cd $HOME/workspace
-mysql-ctl install
-mysql-ctl start
-mysql-ctl status
-

Open the file install.php in the file tree, and while opened, click on the "Run Project" button in the menu bar on top of the IDE. -An URL will be shown at the bottom of the page, something like "https://drupal-c9-lcipriani.c9.io/", but with your username and workspace name in it.

-

Copy the url in a new browser tab and you will see the install page of Drupal

-

You can now proceed with the installer

-

Drupal Installer

-

Now be careful inserting the correct values for the database. You need to change the values as follows:

-
user: yourusername
-database: c9
-host: 127.0.0.1
-

Note:

localhost will not work, while 127.0.0.1 will. - -
-

Open the Advanced Options in the database settings page as shown in the screenshot:

-

Drupal Mysql

-

Now fill the form with the correct site information:

-

Drupal Site Info

-

Continue the setup and enjoy your website!

-

Note:

if you are not able to load CSS, access your website WITHOUT using https, but use simple http; in another tab open the url: http://drupal-c9-lcipriani.c9.io/ - -
-

Drupal Site Installed

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_express.html b/out/frameworks_express.html deleted file mode 100644 index b595684..0000000 --- a/out/frameworks_express.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - Framework: Express | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Framework: Express

-

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

-

To get started with an Express app, first create a workspace and choose either the Node.js type, or a Custom workspace type for a clean workspace. Open the new workspace (or an existing one) to follow the instructions below.

-

Installation

-

First we'll install the Express project generator and generate an application stub:

-
$ npm install -g express-generator
-$ express -f .
-$ npm install
-

You might want to take a look at package.json and update the application name from the default workspace to something more fitting.

-

Running

-

Now you have a fully configured express application already. You can run it from the terminal using:

-
$ bin/www
-

Now if you click the Preview button in the top menu in the IDE, and choose "Preview with Web Server", this will open the Preview window for your running app.

-

Creating a Run Configuration

-

In order to make life easier you can create a run configuration for express.

-
    -
  1. Click Run -> Run Configurations -> Manage ...
  2. -
  3. Click Add New Config
  4. -
  5. In the run panel fill in Express as name, bin/www as the command and Node 0.10.x as the runner.
  6. -
  7. You can optionally make this run configuration the default runner by clicking Set As Default. If you do so then clicking the run button will always run the app and not the currently opened file.
  8. -
-

The finished run configuration should look something like this

-

Express Runner

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_ghost.html b/out/frameworks_ghost.html deleted file mode 100644 index eeca51c..0000000 --- a/out/frameworks_ghost.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - Framework: Ghost | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework: Ghost

-

Ghost is a simple, powerful publishing platform that -allows you to share your story with the world.

-

Create a Ghost blog as follows:

-
    -
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. -
  3. Open a Terminal, or use the pre-existing one at the bottom
  4. -
  5. Run the following commands in the Terminal:

    -
     $ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
    - $ unzip -uo ghost.zip -d .
    - $ rm ghost.zip
    - $ npm install --production
    -
  6. -
  7. Adapt the config.js file to the Cloud9 environment. Change the following keys:

    -
     config: {
    -     development: {
    -         url: 'https://' + process.env.C9_HOSTNAME,
    -     },
    -     server: {
    -         host: process.env.IP,
    -         port: process.env.PORT
    -     }
    - }
    -
  8. -
  9. Run Ghost by typing npm start in the console or by opening index.js and -hitting the run button.

    -
  10. -
  11. Click the "Preview" button in the top menu in the IDE, and choose -"Preview with Web Server". This will open the Preview window for your newly setup Ghost blog
  12. -
-

Change the URL to /ghost and create your admin user to login to the Ghost admin interface

-

Note:

These instructions are based on the official Ghost Installation Guide -
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_ionic.html b/out/frameworks_ionic.html deleted file mode 100644 index ae4a063..0000000 --- a/out/frameworks_ionic.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - Framework: Ionic | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework: Ionic

-

Ionic is an open source front-end framework for developing hybrid mobile apps with HTML5.

-

Create a Ionic app as follows:

-
    -
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. -
  3. Open a Terminal, or use the pre-existing one at the bottom
  4. -
  5. Run the following commands in the Terminal:

    -
     $ npm install -g cordova ionic
    - $ ionic start myApp sidemenu
    - $ cd myApp
    - $ ionic serve $PORT
    -
  6. -
  7. Click the "Preview" button in the top menu in the IDE, and choose "Preview with Web Server". This will open the Preview window for your running app.

    -
  8. -
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_jekyll.html b/out/frameworks_jekyll.html deleted file mode 100644 index ed714c0..0000000 --- a/out/frameworks_jekyll.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - Framework: Jekyll | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework: Jekyll

-

Jekyll is a great static site generator, also used by github pages. You simply need to install the Ruby gem and then make sure you pass the right port to the serve command.

-
$ gem install jekyll
-$ jekyll new my-awesome-site
-$ cd my-awesome-site
-$ jekyll serve --port $PORT
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_joomla.html b/out/frameworks_joomla.html deleted file mode 100644 index be8dd8c..0000000 --- a/out/frameworks_joomla.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - Joomla | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Joomla

-

Joomla is a popular open source CMS. -Installing Joomla is very straightforward, but there are just a few quirks to keep in mind, which we describe below.

-

Note:

all instructions here are based on Joomla v3.x. - -
-

Download Joomla

-
    -
  1. Create a Cloud9 workspace of type "Custom" or "PHP"
  2. -
  3. Download and Unzip Joomla from the Terminal. You can find the latest version on the Joomla website

    -
     wget http://joomlacode.org/gf/download/frsrelease/19665/160049/Joomla_3.3.3-Stable-Full_Package.zip
    - unzip Joomla*.zip
    - rm Joomla*.zip
    -
  4. -
-

Start the database

-

Joomla requires a MySQL database to connect to. MySQL is pre-installed in your workspace, so just execute these commands:

-
mysql-ctl install
-mysql-ctl start
-

... and then note the credentials to use in the configuration of Joomla later on.

-

Install Joomla

-

To run the Joomla installer, open index.php and run it with the "Run" (or "Run Project") button at the top of the IDE. -Next, click the URL that's displayed in the Run panel, which looks something like https://joomla-c9-username.c9.io/installation/index.php#. -This will open up the Preview window with the installer.

-

Now, here comes the quirky part: the installer will not work properly if it's loaded over HTTPS, as the Cloud9 Preview window does by default. -So, in order to make the Joomla installer work, do the following:

-
    -
  1. Pop out the Preview by clicking the Popout icon Preview Popout Button (or copy & load the URL in a browser tab)
  2. -
  3. Change the URL from https:// to http:// and load it
  4. -
-

Now you should be able you to get through the installer successfully.

-

Main configuration

-

The main Configuration screen should look like this:

-

Joomla Installer: Main configuration

-

Enter whatever values you'd like here.

-

Database

-

The second quirky and important thing to keep in mind in the Database section, is to use Host Name "0.0.0.0" instead of "localhost".

-

So use values like shown in the screenshot below:

-

Joomla Installer: Database

-

Finally

-

Use whatever settings you'd like in the final installation screen, and after it completes, have Joomla remove the Installation folder for safety.

-

That's it, you're done and your Joomla setup should run fully on Cloud9!

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_koa.html b/out/frameworks_koa.html deleted file mode 100644 index fc2994b..0000000 --- a/out/frameworks_koa.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - Framework: Koa | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework: Koa

-

Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.

-

To get started with a Koa app, first create a workspace and choose either the Node.js type, or a Custom workspace type for a clean workspace.

-

Koa.Js makes use of the new generator feature in javascript ECMA 6. -This feature is support in Node from 0.11 and up by toggling the --harmony flag. -By default Cloud9 runs Node v0.10.x or v0.8.x, depending on your setup, so we first need activate Node version 0.11.x.

-

Open a Terminal, or using the pre-existing one at the bottom and execute the following in your Terminal:

-
nvm use 0.11
-

Next, we need to install Koa itself:

-
npm install koa
-

Now we can create a simple Koa.Js server. -Create a server.js file in your root folder with this code:

-
var koa = require('koa');
-var app = koa();
-
-app.use(function *(){
-    this.body = '<h1>Hello from Koa.Js</h1>';
-});
-
-app.listen(process.env.PORT);
-

If you now press the Run button on top of the IDE, you will see some errors, as the runner/debugger defaults to 'Node (default)', which is Node version 0.10.x or 0.8.x.

-

Luckily all you need is to create a Runner file so Cloud9 can run Node 11.x in harmony mode and thereby support generators.

-

In the Run panel below, click the 'Runner' text input and choose 'New Runner'. -In the new Runner file that's opened, save the following code as 'Node 0.11.x.run':

-
// This file overrides the built-in Node 0.11.x runner
-// For more information see http://docs.c9.io:8080/#!/api/run-method-run
-{
-  "cmd": [
-    "bash",
-    "--login",
-    "-c",
-    "nvm use 0.11 > /dev/null; node --harmony ${debug?--nocrankshaft --nolazy --debug-brk=15454} '$file' $args"
-  ],
-  "debugger": "v8",
-  "debugport": 15454,
-  "info": "Your code is running at \\033[01;34m$url\\033[00m.\n\\033[01;31mImportant:\\033[00m use \\033[01;32mprocess.env.PORT\\033[00m as the port and \\033[01;32mprocess.env.IP\\033[00m as the host in your scripts!\n"
-}
-

Note:

alternatively, you can check 'Show Hidden Files' in your workspace directory tree (the small gear in the upper right corner), and create a new file in the '.c9/runners' folder called 'Node 0.11.x.run' with this code. - -
-

Let's run server.js with this new configuration; in the Run panel on the bottom, choose your new 'Node 0.11.x' Runner, and press Run again.

-

You Koa.Js server should now be up and running.

-

Now if you click the Preview button in the top menu in the IDE, and choose "Preview with Web Server", this will open the Preview window for your running app.

-

(Credits go to Tom at http://kyorcode.blogspot.nl/2014/08/running-koajs-in-cloud9.html)

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_laravel.html b/out/frameworks_laravel.html deleted file mode 100644 index 6bd3763..0000000 --- a/out/frameworks_laravel.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - Framework: Laravel | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework: Laravel

-

For Laravel there are some installation guides around which tell you to install PHP first, but that's not necessary with Cloud9. -Just make a new workspace, choose PHP, go to the Terminal, and execute the following:

-
rm README.md php.ini hello-world.php
-composer create-project laravel/laravel ./laravel --prefer-dist
-shopt -s dotglob
-mv laravel/* ./
-rm -rf laravel
-

As lavarel is serving its content from the public directory we need to modify the apache config:

-
sudo vi /etc/apache2/sites-enabled/001-cloud9.conf
-

Then do the following:

-
// Change this line
-DocumentRoot /home/ubuntu/workspace
-
-// To following
-DocumentRoot /home/ubuntu/workspace/public
-

Run the project with the "Run Project" button in the menu bar on top of the IDE. -If you click the URL that appears in the Run panel below (in the shape of 'https://laravel-c9-username.c9.io/'), you can preview your new Laravel app.

-

Run Panel

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_meteor.html b/out/frameworks_meteor.html deleted file mode 100644 index 599360c..0000000 --- a/out/frameworks_meteor.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - Framework: Meteor | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Framework: Meteor

-

Meteor is an open-source platform for building web apps.

-

Create a Meteor app as follows:

-
    -
  1. Create a new workspace (Node.js or Custom for a clean workspace)
  2. -
  3. Open a Terminal, or using the pre-existing one at the bottom
  4. -
  5. Run the following commands in the Terminal:

    -
     curl https://install.meteor.com/ | sh
    - meteor create ./my_cool_app
    - cd my_cool_app/
    - meteor --port $IP:$PORT
    -
  6. -
  7. Click the Preview button in the top menu in the IDE, and choose "Preview with Web Server". This will open the Preview window for your running app.

    -
  8. -
-

Note:

Alternatively, for the last step, click on the link that's displayed in the terminal, and change it in the resulting Preview to http://127.0.0.1:8080.
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/frameworks_symfony2.html b/out/frameworks_symfony2.html deleted file mode 100644 index f10d0a5..0000000 --- a/out/frameworks_symfony2.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - Framework: Symfony2 | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Framework: Symfony2

-

Symfony is one of the leading PHP Webframeworks. It is Open-Source and built on top of the Symfony Components.

-

Getting started

-
    -
  1. Create a Cloud9 workspace of the type "Custom" or "PHP"
  2. -
  3. Install the Intl extension for PHP that is required in most of the Symfony2 projects

    -
     sudo apt-get install php5-intl
    -
  4. -
  5. Set a valid PHP timezone

    -
     echo 'date.timezone = UTC' | sudo tee --append /etc/php5/apache2/php.ini
    -
  6. -
  7. Starting MySQL-Server

    -
     sudo mysql-ctl install
    - sudo mysql-ctl start
    -
  8. -
-

Create a Symfony-Project

-

Open your Terminal and execute the following to create a new Symfony-Project -You need the first line only if you used the PHP Project type for your workspace.

-
    rm README.md php.ini hello-world.php
-    composer create-project symfony/framework-standard-edition symfony/ "2.5.*"
-    mv symfony/{*,.*} ./ 
-    rm -rf symfony
-

The create-project composer command will ask for a few parameters, the only one you need to pay special attention is the database-host parameter.

-

Running the project

-

There is a IP address checking in the web/app_dev.php file. To disable this check please remove the following lines

-
    // This check prevents access to debug front controllers that are deployed by accident to production servers.
-    // Feel free to remove this, extend it, or make something more sophisticated.
-    if (isset($_SERVER['HTTP_CLIENT_IP'])
-        || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
-        || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))
-    ) {
-        header('HTTP/1.0 403 Forbidden');
-        exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
-    }
-

After that add a new run configuration in Menu Run > Run Configurations > New Run Configuration. Select Apache http (PHP, HTML) as a Runner and web/app_dev.php as Command. -That's it after you hit Run your server will start up and you can access your new Symfony project.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/ftp_workspaces.html b/out/ftp_workspaces.html deleted file mode 100644 index 9e2ac49..0000000 --- a/out/ftp_workspaces.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - Setting up an FTP project | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Setting up an FTP project

-
- -
- -

In this article, we'll show you how to set up an FTP project.

-

Note:

Currently, Cloud9 IDE only supports passive FTP. Active FTP, SFTP and FTPS are not yet supported. For SSH connections, consider creating an SSH workspace. - -
-

To create an FTP project, go to the Dashboard and click on the Project Add Icon next to MY PROJECTS. Choose the option to Create a new project (see "Creating a New Project" if you need to review the steps to create a new project):
New workspace creation

-

In the pop-up window that appears, select FTP for the project type:

-

FTP Options

-

Let's review the options available for your FTP project:

-
    -
  • Hostname: the domain name or IP address of the machine running your FTP server.
  • -
  • Username: your username for the FTP server.
  • -
  • Password: your password for the FTP server.
  • -
  • Initial path: this is an optional parameter. You can set it as an absolute (starts with /) path. Otherwise, it'll be set to a relative path, and Cloud9 assumes that you want to start from the folder your FTP server leaves you after login (home or default folder).
  • -
-

Warning:

Be careful not to put an initial path that leaves you in a location where you don't have write privileges as that could cause problems. - -
-

Fill in your FTP details and click the Login Test to verify that the settings are correct. If the test succeeds, go ahead and click Create to create your FTP project. You'll then see your project in the Dashboard under My Projects:

-

New FTP Project

-

When your new FTP project is selected, you will see three buttons: Start Editing, FTP settings, and Delete (on the far right). FTP settings gives you access to the settings you just filled in, as well as the login test. This is useful to use in case your login credentials have changed.

-

To get started with your FTP project, click on the Start Editing button. You'll be taken to the editor. Under Project Files, you should see the files from the FTP server in the directory you selected (either your home/default folder or the location indicated by the Initial Path, if you set it). The editor for FTP projects works the same as in other projects: you can create and edit your files in the usual way. The main difference is the FTP log at the bottom of the page (where the console is usually located for other non-FTP projects).

-

The FTP log displays output related to the interaction with the FTP server. The screenshot below, for example, shows what happens when we create a new file called TestFile.txt. The file is created in the FTP server and when I write to it, the contents are transferred.

-

Demonstrating new files in the FTP

-

Note:

In an FTP project, all files are stored on your FTP server; Cloud9 only stores the FTP settings. Please keep this in mind. Cloud9 IDE does not keep any copies of your files, so make sure you back them up properly. Any changes you make to these files in Cloud9 are automatically reflected on the live web server.
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/git_blame.html b/out/git_blame.html deleted file mode 100644 index c6aec83..0000000 --- a/out/git_blame.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - Git Blame | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Git Blame

-

Note:

this feature is deprecated - -
-
- -
- -

When you're working with git repositories, it's helpful to know who made a commit to a particular piece of code. As it turns out, git has a feature called git blame that we've integrated directly into Cloud9 IDE.

-

By using git blame, you'll be able to instantly discover who edited certain lines of code, when they edited it, and what their commit message at the time was. Clicking on a git commit also highlights other lines of code changed at the same time. To launch the git blame feature, open a file and navigate to Tools > Git > Blame.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/gotofile_and_definition.html b/out/gotofile_and_definition.html deleted file mode 100644 index 75139e3..0000000 --- a/out/gotofile_and_definition.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - Using Goto File and Goto Definition | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Using Goto File and Goto Definition

-

Note:

this article is outdated, a new version will follow soon - -
-
- -
- -

Let's say you're working a large project containing many files, and you kind-of sort-of know the name of a file that you want to open up. Goto File is our feature to help you quickly and easily jump to any file in your workspace, without the need to search through different directories. Simply hit Cmd-E (or Ctrl-E on Unix/Windows) and away you go:

-

Goto File Window

-

Goto File offers filtering for any portion of a filename, including directories. Search for the beginning, middle, or end of a file path, or even just an extension, like .js, and Goto File with instantly present the results to you. Clicking on a name in the list opens the file right up. Goto File does not support case-insensitive, wildcard (*, ?), or regular expression (., +) searching.

-

Goto Definition takes the same concept and applies it to files. You can easily navigate between classes and members defined in your files. By entering text, you can filter your class' member results. Finally, as you navigate through your file, Cloud9 IDE will jump to the relevant portion of the code:

-

Goto Definition Window

-

Note:

Currently, Goto Definition only works for Javascript files. - -
-

Another feature that's available is the capability to "jump to definition." If your cursor is on a variable or function name, you can tap F12 (or type jumptodef in the console) to instantly scroll the editor to the member's definition.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/ide_overview.html b/out/ide_overview.html deleted file mode 100644 index cab8018..0000000 --- a/out/ide_overview.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - IDE Overview | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

IDE Overview

-

Note:

this article is outdated, a new version will follow soon - -
-

Cloud9 IDE can be thought of as being divided into the following components:

-

IDE Components

-

Throughout the documentation, we'll refer to these sections by name. We can identify several distinct areas in the editor:

-
    -
  • The top menu bar is the uppermost area, with easy access to a variety of menus
  • -
  • The project bar on the left lets you manipulate various aspects of your project, including its active files, preferences, and choices for deployment
  • -
  • The panel displays views according to what's been selected in the project bar
  • -
  • The toolbar is on the far right, where you can find tools used when debugging your code. Projects that are open with collaboration also make use of this panel for chatting.
  • -
  • The code editor is the main area where you write your code.
  • -
  • The console is the bottom area of the window. It's an expandable area that can act like a desktop terminal to enter command line input (like ls or mkdir). It also displays output provided by your program's print statements (like console.log()), as well as providing an area for search results
  • -
-

The Project Bar, Tool Bar, and Console are powerful features, so their documentation is provided separately. We'll talk about the rest of the editor below:

-

Remember: nearly every UI element can be collapsed, in order to provided a more harmonious coding experience. For example, clicking on the buttons in the upper left of the editor allows you to hide the panels and top menu bar:
Hiding panel elements

-

The Top Menu Bar

-

A screenshot of the top menu bar

-

In this section, you can find the usual menus for creating and saving files, changing your view, applying a new theme for the editor, and switching between windows.

-

In the middle of the menu bar you'll find the debug button: The debug button. This is used for running and debugging your code. For more information, see the section on "Running and Debugging Your Code"..

-

-

The preview button The preview button provides you with a look of what the currently active file would look like in the browser. For text files, this is usually just the raw text, but certain files, like HTML or XML, render as the actual markup.

-

The autosave button indicates the status of your current saves: Autosave Button. Files are saved automatically by Cloud9 IDE, and every revision is made available for you to browse through. For more information, see the section on revisions and saving.

-

On the far right of the menu, near the Cloud9 IDE logo, there are two more icons: one to return to the dashboard, and one to return to the Cloud9 IDE homepage.

-

The Code Editor

-

This is where most of the action happens. Every file you open appears here as a tab. You can open a new file easily by clicking on the Tab add icon button to the right of the last tab. Cloud9 IDE offers syntax highlighting for over two dozen programming languages.

-

The code editor supports a large number of keyboard shortcuts to increase your productivity. For an up-to-date list of these within the IDE, simply go to Help > Keyboard Shortcuts.

-

If you hover over to the upper-right corner, you can activate zen-mode, which is a full screen coding environment.

-

At the lower-right corner, you can find the status bar.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/ide_preferences.html b/out/ide_preferences.html deleted file mode 100644 index feaadf2..0000000 --- a/out/ide_preferences.html +++ /dev/null @@ -1,467 +0,0 @@ - - - - - - IDE Preferences | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

IDE Preferences

-

Note:

this article is outdated, a new version will follow soon - -
-

There are many different ways to configure the IDE. Below is a list of the options available, and what they do.

-

Note:

All of these options are on a per-project basis. Changing them in one project does not affect any another. - -
-

General

-

This section controls the overall IDE behavior:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Preference NameDescription
Enable UI AnimationsEnables or disables fluid animations for various UI elements, such as the Project Bar
Animate ScrollingEnables or disables fluid animations when scrolling through code (such as for goto line)
Enable Auto-SaveIf enabled, automatically saves your files on every change
On Save, Strip WhitespaceWhen saving a file, you can remove all extraneous whitespace from your code lines
Reveal Active File in Project TreeEnabling this jumps the project tree to the active file whenever a tab changes to a different file
Warn Before ExitingPrevents accidental data loss by showing a dialog asking if you really want to leave Cloud9 IDE when closing your browser
Node.js RuntimeDefines the default runtime for your Node.js code. "Auto" is based on whatever is in the package.json file, while "Default" reverts to Node 0.6.x.
KeybindingsAllows you to choose which operating system to use for keyboard shortcuts
-

Language Support

-

This section controls language analysis options:

- - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
Preference NameDescription
Enable Hints and Warnings RulesPresents information about your code in the gutter
Highlight Variable InstancesHighlights variable instances in your code
Mark Undeclared VariablesProvides warnings if a variable is being used and has not been declared yet
Mark Unused Function ArgumentsProvides a strikethrough for arguments in a function that are not being used
Warning LevelSpecifies the minimum level of information severity you want provided in the gutter
-

Code Editor

-

This section controls language analysis options:

-
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Preference NameDescription
Auto-pair Quotes, Brackets, etc.When enabled, typing ", (, or [ will actually make two characters appear. In addition, whenever you highlight a word and type one of these characters, it is surrounded by that character (e.g. words becomes "words")
Full Line SelectionWhen highlighting lines, this option will highlight all ending whitespace, until the end of the editor window
Highlight Active LinePresents a darker shade in the code editor to indicate which line you're currently on
Highlight Gutter LinePresents a darker shade in the gutter which line you're currently on
Show Invisible CharactersShows invisibles characters in the editor, like tabs and line breaks
Show Indent GuidesShows the indent guides in the editor, letting you see your code's nestings
Show GutterShows the gutter in the editor, which indicates line numbers, warnings, and errors
Highlight Selected WordIf you highlight a word, this highlights all matching words in the editor
Auto-hide Horizontal ScrollWhen this is enabled, this will hide the horizontal scroll bar in the editor. Note that this has no effect in Mac OS X 10.7 (Lion) and above, since all scrollbars, by default, auto-hide.
Vim ModeWhen enabled, allows you to use vim keybindings in the IDE
Code FoldingWhen enabled, allows you to show or hide "blocks" of code
Fade Fold WidgetsWhen enabled, fades the folding widgets in the gutter
Font SizeChanges the font size of the code in the editor
Show Print MarginShows (and defines) the number of characters possible in line, before it wraps
Soft TabsIndicates how many spaces a single tab represents
Mouse Scroll SpeedDefines the speed of the mouse scrolls
Newline ModeSpecifies the newline mode for the IDE
-

Terminal

-

This section controls the behavior for the terminal:

-
- - - - - - - -
- - - - - - - - - - -
- - - -
Preference NameDescription
ScrollbackSets the scrollback buffer for the terminal
Font FamilySets the font for the terminal
Font SizeSets the font size for the terminal
Blinking CursorSpecifies whether or not you want the cursor to blink
-

Code Tools

-

This section controls the various tools that are available in the IDE:

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Preference NameDescription
Enable Color PickerMakes the color picker available for use
Preserve Empty LinesWhen enabled, the editor keeps any new lines without text
Keep Array IndentionWhen enabled, tabs and newlines in arrays are preserved. For example, the follow array would remain as-is with this option: -
-        var o = [{
-            a: b
-        }, {
-            c: d
-        }];
-        
-
JSLint Strict WhitespaceIf selected, all brackets are preceded by a space. For example, if(x){ becomes if (x) {, and function(arg){ becomes function (arg) {
BracesThese options control how braces are handled in the IDE: -
    -
  • Braces with control statement: braces are left "in-line" alongside the code statements. For example, code is formatted like this: -
    -    if (true) {
    -        var x = 3;
    -    } else {
    -        var x = 5;
    -    }
    -    
    -
  • -
  • Braces on own line: braces are always placed on their own line. For example, code is formatted like this: -
    -    if (true)
    -    {
    -        var x = 3;
    -    } else
    -    {
    -        var x = 5;
    -    }
    -    
    -
  • -
  • End braces on own line: only the ending braces have their own line. For example, code is formatted like this: -
    -    if (true) {
    -        var x = 3;
    -    }
    -    else {
    -        var x = 5;
    -    }
    -    
    -
  • -
-
-
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/index.html b/out/index.html deleted file mode 100644 index 3707c8f..0000000 --- a/out/index.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - Cloud9 IDE User Documentation - - - - - - -
-
-
-
- -
-
-
-

Welcome to the official Cloud9 IDE documentation! Here, you'll find articles and tutorials to help you use the Cloud9 platform. These include everything from setting up a workspace, to learning how to run, debug, and deploy your code.

- - -

Getting started

-

Have a look at the "Getting Started" section on the left for an introduction into the basics of Cloud9. -For instance, read up on how to:

- -

Getting More Help

-

If you're interested in troubleshooting specific aspects of the IDE, need help setting up an account, or just want to chat with our support team, please visit the Support pages.

-

Contact Us

-

Remember: All of our documentation content is open-sourced on GitHub, just like our amazing IDE.

-

See something that's not documented here? Simply add it to the documentation with a Pull Request, or send an e-mail to docs@c9.io, and we'll get it in.

-

Recently Updated Topics

-

Here's a list of the last five recently updated topics:

- - -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/installing_npm_modules.html b/out/installing_npm_modules.html deleted file mode 100644 index b05122e..0000000 --- a/out/installing_npm_modules.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - Installing NPM Modules | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Installing NPM Modules

-

Since Cloud9 IDE is built on top of Node.js, we also leverage the module system NPM. In Cloud9, you can install any npm package either locally or globally. Note that due to security restrictions, modules installed globally can only be used in the project they were installed from. In other words, while you have access to any command line tools installed by the module, they are bound to the project, not your username. We run version 1.1.24 of npm.

-

To demonstrate the power of NPM, we'll build and run a quick express server:

-
    -
  1. Launch the command line by hitting Shift-Escape. You can also go to View > Command Line if it's not visible.
  2. -
  3. Type npm install express, and wait for the npm install process to complete.
  4. -
  5. Create a new JavaScript file, and paste the following code:
  6. -
-
var express = require('express'),
-    app = express();
-
-app.use(express.logger());
-
-app.get('/', function(req, res){
-    res.send('Hello World');
-});
-
-app.listen(process.env.PORT);
-console.log('Express server started on port %s', process.env.PORT);
-

To launch your express server, click on the The Run Button button in the menu bar.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/installing_python_packages.html b/out/installing_python_packages.html deleted file mode 100644 index c6e1f4e..0000000 --- a/out/installing_python_packages.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - Installing Python Packages | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Installing Python Packages

-

Cloud9 supports the installation of Python packages for applications that need to go beyond the standard library set. Every workspace has version 0.6.10 of Python's easy_install package manager. For more information on this module, see the official easy_install documentation.

-

Let's try installing a package. First, type the following in the console:

-
easy_install markdown
-

This installs the markdown Python package to your workspace. You won't see the package installed in the directory tree, because it's kept deep within your project's the Python libs.

-

Next, create a new Python script, and add these lines of code:

-
import markdown
-
-html = markdown.markdown("# HELLO THERE!")
-
-print html
-

After clicking run, the console will correctly print out <h1>HELLO THERE!</h1>.

-

You have access to all of the functionality easy_install provides you. For example, you can open up the Python REPL and type the following to see a list of your installed packages:

-
>>> help('modules')
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/installing_ruby_gems.html b/out/installing_ruby_gems.html deleted file mode 100644 index e41f026..0000000 --- a/out/installing_ruby_gems.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - Installing Ruby Gems | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Installing Ruby Gems

-

Cloud9 supports the installation of Ruby gems in your workspace using the RubyGems package manager. The current installed RubyGems version is 1.3.7. For more information on the gem command, see the official RubyGems documentation.

-

Let's try installing a gem. First, type the following in the console:

-
gem install progressbar
-

This installs the progressbar Ruby gem to your workspace. You won't see the gem installed in the directory tree, because it's kept deep within your project's the Ruby libs.

-

Next, create a new Ruby script, and add these lines of code:

-
require 'progressbar'
-
-bar = ProgressBar.new("Example progress", 50)
-total = 0
-until total >= 100
-  sleep(rand(2)/2.0)
-  increment = (rand(6) + 3)
-  bar.inc(increment)
-  total += increment
-end
-

After clicking run, the console will start printing out an ASCII progressbar.

-

You have access to all of the functionality gem provides you. For example, you can open up the console and type gem query to see a list of your installed gems.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/keybindings.html b/out/keybindings.html deleted file mode 100644 index e6ff973..0000000 --- a/out/keybindings.html +++ /dev/null @@ -1,1210 +0,0 @@ - - - - - - Commands and Keybindings | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Commands and Keybindings

-

Note:

this article is outdated, a new version will follow soon - -
-

Nearly every action in Cloud9 has a corresponding command associated with it. On top of that, every command also has a keybinding that can be used to effortlessly execute the command.

-

Below is a list of every single command and keybinding used by Cloud9. Have fun being efficient!

-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Command NameKeybinding
Abortclicommand˄-C
AddCursorAbove˄-⌥-Up
AddCursorAboveSkipCurrent˄-⌥-⇧-Up
AddCursorBelow˄-⌥-Down
AddCursorBelowSkipCurrent˄-⌥-⇧-Down
Backspace˄-⌫
Beautify⌘-⇧-B
Clearcut
Closeallbutme⌥-˄-W
Closealltabs⌥-⇧-W
Closetab⌥-W
Complete˄-Space
Copy⌘-C
Copylinesdown⌘-⌥-Down
Copylinesup⌘-⌥-Up
Cut⌘-X
DelDelete
DuplicateSelection⌘-⇧-D
Escapeconsole
EvalInteractive⌘-Return
Find⌘-F
Findnext⌘-G
Findprevious⌘-⇧-G
Fold⌘-⌥-L
Foldall⌘-⌥-0
GolinedownDown
GolineupUp
Gotoend⌘-End
Gotofile⌘-E
GotoleftLeft
Gotoline⌘-L
Gotolineend⌘-Right
Gotolinestart⌘-Left
GotopagedownPageDown
GotorightRight
Gotostart⌘-Home
Gototableft⌘-[
Gototabright⌘-]
Gotowordleft⌥-Left
Gotowordright⌥-Right
IndentTab
Jumptomatching˄-⇧-P
Largerfont˄-⇧-.
Movelinesdown⌥-Down
Movelinesup⌥-Up
Movetableft⌘-⌥-[
Movetabright⌘-⌥-]
Newfile⌥-⇧-N
Newfiletemplate⌥-˄-N
Newfolder⌥-˄-⇧-N
Nexttab⌥-Tab
Openfilepanel⇧-⌘-U
Opensettingspanel⌘-,
Opentreepanel⌘-U
Outdent⇧-Tab
Outline⌘-⇧-E
Paste⌘-V
Previoustab⌥-⇧-Tab
Quicksave⌘-S
Quickwatch⌥-Q
Redo⌘-⇧-Z
Removeline⌘-D
Removetolineend˄-K
Removetolinestart⌘-⌫
Removewordleft⌥-⌫
Removewordright⌥-Delete
RenameVar⌥-⌘-R
Replace⌥-⌘-F
Replaymacro⌘-˄-R
ResumeF8
Revealtab⇧-⌘-L
Reverttosaved˄-⇧-Q
Revisionpanel⌘-B
RunF5
Saveas⌘-⇧-S
Savetabsession⇧-˄-S
Searchinfiles⇧-⌘-F
SelectMoreAfter˄-⌥-Right
SelectMoreBefore˄-⌥-Left
SelectNextAfter˄-⌥-⇧-Right
SelectNextBefore˄-⌥-⇧-Left
Selectall⌘-A
Selectdown⇧-Down
Selectleft⇧-Left
Selectright⇧-Right
Selecttoend⌘-⇧-Down
Selecttolineend⌘-⇧-Right
Selecttolinestart⌘-⇧-Left
Selecttostart⌘-⇧-Up
Selectup⇧-Up
Selectwordleft⌥-⇧-Left
Selectwordright⌥-⇧-Right
Smallerfont˄-⇧-,
SplitIntoLines˄-⇧-L
StepintoF11
Stepout⇧-F11
StepoverF10
Stop⇧-F5
Switchconsole⇧-⎋
Tab0⌘-0
Tab1⌘-1
Tab2⌘-2
Tab3⌘-3
Tab4⌘-4
Tab5⌘-5
Tab6⌘-6
Tab7⌘-7
Tab8⌘-8
Tab9⌘-9
ToggleTabs˄-M
Togglecomment⌘-/
Toggleconsole˄-⎋
Togglerecording⌘-⇧-R
Tolowercase˄-⇧-U
Touppercase˄-U
Transposeletters˄-T
Undo⌘-Z
Unfold⌘-⌥-⇧-L
Unfoldall⌘-⌥-⇧-0
Zen⌥-Z
Zenslow⇧-⌥-Z
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Command NameKeybinding
AbortclicommandCtrl-C
AddCursorAboveCtrl-Alt-Up
AddCursorAboveSkipCurrentCtrl-Alt-Shift-Up
AddCursorBelowCtrl-Alt-Down
AddCursorBelowSkipCurrentCtrl-Alt-Shift-Down
BackspaceCommand-Backspace
BeautifyShift-Ctrl-B
ClearcutESC
CloseallbutmeCtrl-Alt-W
ClosealltabsCtrl-Shift-W
ClosetabCtrl-W
CompleteCtrl-Space
CopyCtrl-C
CopylinesdownAlt-Shift-Down
CopylinesupAlt-Shift-Up
CutCtrl-X
DelDelete
DuplicateSelectionCtrl-Shift-D
EscapeconsoleEsc
EvalInteractiveCtrl-Return
FindCtrl-F
FindnextCtrl-K
FindpreviousCtrl-Shift-K
FoldAlt-L
FoldallAlt-0
GolinedownDown
GolineupUp
GotoendCtrl-End
GotofileCtrl-E
GotoleftLeft
GotolineCtrl-G
GotolineendAlt-Right
GotolinestartAlt-Left
GotopagedownPageDown
GotorightRight
GotostartCtrl-Home
GototableftCtrl-[
GototabrightCtrl-]
GotowordleftCtrl-Left
GotowordrightCtrl-Right
IndentTab
JumptomatchingCtrl-P
LargerfontCtrl-Shift-.
MovelinesdownAlt-Down
MovelinesupAlt-Up
MovetableftCtrl-Alt[
MovetabrightCtrl-Alt-]
NewfileCtrl-N
NewfiletemplateCtrl-Alt-N
NewfolderCtrl-N
NexttabCtrl-Tab
OpenfilepanelShift-Ctrl-U
OpensettingspanelCtrl-,
OpentreepanelCtrl-U
OutdentShift-Tab
OutlineCtrl-Shift-E
PasteCtrl-V
PrevioustabCtrl-Shift-Tab
QuicksaveCtrl-S
QuickwatchAlt-Q
RedoCtrl-Shift-Z
RemovelineCtrl-D
RemovetolineendAlt-Delete
RemovetolinestartAlt-Backspace
RemovewordleftCtrl-Backspace
RemovewordrightCtrl-Delete
RenameVarCtrl-Alt-R
ReplaceAlt-Shift-F
ReplaymacroAlt-R
ResumeF8
RevealtabCtrl-Shift-L
ReverttosavedCtrl-Shift-Q
RevisionpanelCtrl-B
RunF5
SaveasCtrl-Shift-S
SavetabsessionShift-Ctrl-S
SearchinfilesCtrl-Shift-F
SelectMoreAfterCtrl-Alt-Right
SelectMoreBeforeCtrl-Alt-Left
SelectNextAfterCtrl-Alt-Shift-Right
SelectNextBeforeCtrl-Alt-Shift-Left
SelectallCtrl-A
SelectdownShift-Down
SelectleftShift-Left
SelectrightShift-Right
SelecttoendCtrl-Shift-End
SelecttolineendAlt-Shift-Right
SelecttolinestartAlt-Shift-Left
SelecttostartCtrl-Shift-Home
SelectupShift-Up
SelectwordleftCtrl-Shift-Left
SelectwordrightCtrl-Shift-Right
SmallerfontCtrl-Shift-,
SplitIntoLinesCtrl-Shift-L
StepintoF11
StepoutShift-F11
StepoverF10
StopShift-F5
SwitchconsoleShift-Esc
Tab0Ctrl-0
Tab1Ctrl-1
Tab2Ctrl-2
Tab3Ctrl-3
Tab4Ctrl-4
Tab5Ctrl-5
Tab6Ctrl-6
Tab7Ctrl-7
Tab8Ctrl-8
Tab9Ctrl-9
ToggleTabsCtrl-M
TogglecommentCtrl-/
ToggleconsoleF6
TogglerecordingAlt-Shift-R
TolowercaseCtrl-Shift-U
TouppercaseCtrl-U
TransposelettersCtrl-T
UndoCtrl-Z
UnfoldAlt-Shift-L
UnfoldallAlt-Shift-0
ZenAlt-Z
ZenslowShift-Alt-Z
-
-
-
-
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/language_analysis.html b/out/language_analysis.html deleted file mode 100644 index 0367dda..0000000 --- a/out/language_analysis.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - Language Analysis | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Language Analysis

-

For JavaScript files, Cloud9 provides analysis using a combination of our own analysis tools, as well as JSHint (specifically for Javascript code). Our language analysis can't detect if your program is correct, fast, or has memory leaks, but it can save you time by spotting things like undeclared variables, syntax errors, or other preventable typos.

-

When Cloud9 detects an issue with your code, an icon appears in the gutter for the offending lines of code. There are three types of identifiers available for your code:

-
    -
  • Informational (Little "i" icon): these are non-critical, non-dangerous updates about your code
  • -
  • Warnings (Warning icon): these are potentially incorrect pieces of code
  • -
  • Errors (Error icon): these are incorrect lines of code that will almost certainly throw a runtime error when you try to run your script
  • -
-

If you hover over any of these icons in the gutter, you'll get a pop-up that presents some information as to what, exactly, the problem is. For example, suppose we have a variable declared, called fs, that is never used:
fs with a strikethough

-

Notice also that fs has a strikethrough, to provide further visual clues that something is not quite right.

-

If you're concerned with the level of information that's listed in the gutter, you can always configure its "strictness" in the IDE preferences. For example, you could choose to hide every icon that isn't a warning or an error.

-

Configuring Global Options

-

JSHint provides additional configuration options that Cloud9 incorporates on a per-file basis. Typically, you declare these options as comments at the very top of a file, like this:

-
/*jshint curly:true, debug:true */
-

For a full list of the JSHint configutation options, please check the documentation page describing them.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/multiple_cursors.html b/out/multiple_cursors.html deleted file mode 100644 index fccbd88..0000000 --- a/out/multiple_cursors.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - Multiple Cursors | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Multiple Cursors

-

Multiple cursors is one of the most useful features available in the Cloud9 editor. You can use multiple cursors to perform tasks like rename several variables or members at once, break up lists separated by commas, or insert the same text in multiple locations.

-

Showing multiple cursors

-

Multiple selections can be copied and pasted, and you can insert or remove entire lines in several locations.

-

There are several ways to get access to mutliple cursors:

-
    -
  • Via keyboard shortcuts, you can create a new cursor in any direction
  • -
  • By holding the Alt key, clicking the mouse, and dragging the cursor up or down in the editor
  • -
  • Through the menu bar at Selection > Multiple Selections
  • -
-

One of the best capabilities is the ability to instantly select the next instance of your currently highlighted section. This is especially useful for refactoring several parts of the code at once. To do this, press Ctrl-Alt, followed by the right (or left) arrow key to navigate around in the code.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/project_bar.html b/out/project_bar.html deleted file mode 100644 index 8d849e0..0000000 --- a/out/project_bar.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - The Project Bar | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

The Project Bar

-

Note:

this article is outdated, a new version will follow soon - -
-

The project bar is located towards the left of the Cloud9 IDE: The Project Bar

-

The buttons in the project bar allow you to reveal and hide panels for the IDE. In more detail:

-
    -
  • Pressing on the Cloud9 icon collapses the panel area
  • -
  • Project Files shows your workspace's directory structure. You can view all your files here. Right-clicking within this panel reveals a drop-down menu with additional options, such as the ability to rename files or create new directories.
  • -
  • Active Files lists your files that are currently open.
  • -
  • Run & Debug lets you run and debug your code live, in the browser. For more information, see the section on "Running and Debugging Your Code".
  • -
  • Deploy allows you to deploy to a variety of services. For more information, see the section on "Deploying Your Code".
  • -
  • Preferences lets you change the behavior of the editor. The Preferences documentation is provided on its own page.
  • -
-

Clicking on any button expands its menu. Clicking on an expanded menu causes it to collapse, which gives you more room in the IDE to work with.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/resources/anims/autocompletion.gif b/out/resources/anims/autocompletion.gif deleted file mode 100644 index 238c8b4..0000000 Binary files a/out/resources/anims/autocompletion.gif and /dev/null differ diff --git a/out/resources/anims/collab_multiuser_cursor.gif b/out/resources/anims/collab_multiuser_cursor.gif deleted file mode 100644 index cdcf133..0000000 Binary files a/out/resources/anims/collab_multiuser_cursor.gif and /dev/null differ diff --git a/out/resources/anims/collapsingbars.gif b/out/resources/anims/collapsingbars.gif deleted file mode 100644 index bfda200..0000000 Binary files a/out/resources/anims/collapsingbars.gif and /dev/null differ diff --git a/out/resources/anims/multiplecursors.gif b/out/resources/anims/multiplecursors.gif deleted file mode 100644 index 1758dc3..0000000 Binary files a/out/resources/anims/multiplecursors.gif and /dev/null differ diff --git a/out/resources/anims/uploading.gif b/out/resources/anims/uploading.gif deleted file mode 100644 index 1cf9803..0000000 Binary files a/out/resources/anims/uploading.gif and /dev/null differ diff --git a/out/resources/icons/autosaveButton.png b/out/resources/icons/autosaveButton.png deleted file mode 100644 index 7ff3aa6..0000000 Binary files a/out/resources/icons/autosaveButton.png and /dev/null differ diff --git a/out/resources/icons/breakpoint.png b/out/resources/icons/breakpoint.png deleted file mode 100644 index ccfd2b4..0000000 Binary files a/out/resources/icons/breakpoint.png and /dev/null differ diff --git a/out/resources/icons/breakpointsIcon.png b/out/resources/icons/breakpointsIcon.png deleted file mode 100644 index 01e39b0..0000000 Binary files a/out/resources/icons/breakpointsIcon.png and /dev/null differ diff --git a/out/resources/icons/callStackIcon.png b/out/resources/icons/callStackIcon.png deleted file mode 100644 index 829cdbf..0000000 Binary files a/out/resources/icons/callStackIcon.png and /dev/null differ diff --git a/out/resources/icons/debugButton.png b/out/resources/icons/debugButton.png deleted file mode 100644 index 51ea61c..0000000 Binary files a/out/resources/icons/debugButton.png and /dev/null differ diff --git a/out/resources/icons/debug_navigation.png b/out/resources/icons/debug_navigation.png deleted file mode 100644 index aa1defd..0000000 Binary files a/out/resources/icons/debug_navigation.png and /dev/null differ diff --git a/out/resources/icons/error_icon.gif b/out/resources/icons/error_icon.gif deleted file mode 100644 index 0bc6068..0000000 Binary files a/out/resources/icons/error_icon.gif and /dev/null differ diff --git a/out/resources/icons/info_icon.gif b/out/resources/icons/info_icon.gif deleted file mode 100644 index f54a597..0000000 Binary files a/out/resources/icons/info_icon.gif and /dev/null differ diff --git a/out/resources/icons/interactiveIcon.png b/out/resources/icons/interactiveIcon.png deleted file mode 100644 index 39e4e6f..0000000 Binary files a/out/resources/icons/interactiveIcon.png and /dev/null differ diff --git a/out/resources/icons/previewButton.png b/out/resources/icons/previewButton.png deleted file mode 100644 index e4fbf8c..0000000 Binary files a/out/resources/icons/previewButton.png and /dev/null differ diff --git a/out/resources/icons/refreshProjects.png b/out/resources/icons/refreshProjects.png deleted file mode 100644 index bb6d69a..0000000 Binary files a/out/resources/icons/refreshProjects.png and /dev/null differ diff --git a/out/resources/icons/revisions_button.png b/out/resources/icons/revisions_button.png deleted file mode 100644 index 9a12a9a..0000000 Binary files a/out/resources/icons/revisions_button.png and /dev/null differ diff --git a/out/resources/icons/runButton.png b/out/resources/icons/runButton.png deleted file mode 100644 index 4ce6630..0000000 Binary files a/out/resources/icons/runButton.png and /dev/null differ diff --git a/out/resources/icons/runSettingsIcon.png b/out/resources/icons/runSettingsIcon.png deleted file mode 100644 index 4f9ab31..0000000 Binary files a/out/resources/icons/runSettingsIcon.png and /dev/null differ diff --git a/out/resources/icons/startEditing.png b/out/resources/icons/startEditing.png deleted file mode 100644 index 109d9de..0000000 Binary files a/out/resources/icons/startEditing.png and /dev/null differ diff --git a/out/resources/icons/statusBarCollapsed.png b/out/resources/icons/statusBarCollapsed.png deleted file mode 100644 index a40f623..0000000 Binary files a/out/resources/icons/statusBarCollapsed.png and /dev/null differ diff --git a/out/resources/icons/statusBarExpanded.png b/out/resources/icons/statusBarExpanded.png deleted file mode 100644 index 81a21be..0000000 Binary files a/out/resources/icons/statusBarExpanded.png and /dev/null differ diff --git a/out/resources/icons/stop_button.png b/out/resources/icons/stop_button.png deleted file mode 100644 index dbf817a..0000000 Binary files a/out/resources/icons/stop_button.png and /dev/null differ diff --git a/out/resources/icons/tabPlusIcon.png b/out/resources/icons/tabPlusIcon.png deleted file mode 100644 index e6e9ca3..0000000 Binary files a/out/resources/icons/tabPlusIcon.png and /dev/null differ diff --git a/out/resources/icons/variablesIcon.png b/out/resources/icons/variablesIcon.png deleted file mode 100644 index 17a50aa..0000000 Binary files a/out/resources/icons/variablesIcon.png and /dev/null differ diff --git a/out/resources/icons/warning_icon.gif b/out/resources/icons/warning_icon.gif deleted file mode 100644 index 2b2e50f..0000000 Binary files a/out/resources/icons/warning_icon.gif and /dev/null differ diff --git a/out/resources/icons/workspacePlusIcon.png b/out/resources/icons/workspacePlusIcon.png deleted file mode 100644 index e40e809..0000000 Binary files a/out/resources/icons/workspacePlusIcon.png and /dev/null differ diff --git a/out/resources/images/FTPlog.png b/out/resources/images/FTPlog.png deleted file mode 100644 index 8812bb0..0000000 Binary files a/out/resources/images/FTPlog.png and /dev/null differ diff --git a/out/resources/images/FTPoptions.png b/out/resources/images/FTPoptions.png deleted file mode 100644 index f05ff9e..0000000 Binary files a/out/resources/images/FTPoptions.png and /dev/null differ diff --git a/out/resources/images/SSHoptions.png b/out/resources/images/SSHoptions.png deleted file mode 100644 index 91e87ad..0000000 Binary files a/out/resources/images/SSHoptions.png and /dev/null differ diff --git a/out/resources/images/activateAccount.png b/out/resources/images/activateAccount.png deleted file mode 100644 index 3a48480..0000000 Binary files a/out/resources/images/activateAccount.png and /dev/null differ diff --git a/out/resources/images/addonServices.png b/out/resources/images/addonServices.png deleted file mode 100644 index e226811..0000000 Binary files a/out/resources/images/addonServices.png and /dev/null differ diff --git a/out/resources/images/availableCommands.png b/out/resources/images/availableCommands.png deleted file mode 100644 index e711f59..0000000 Binary files a/out/resources/images/availableCommands.png and /dev/null differ diff --git a/out/resources/images/bitbucketAuthorization.png b/out/resources/images/bitbucketAuthorization.png deleted file mode 100644 index 21a52be..0000000 Binary files a/out/resources/images/bitbucketAuthorization.png and /dev/null differ diff --git a/out/resources/images/bitbucketPendingWorkspaces.png b/out/resources/images/bitbucketPendingWorkspaces.png deleted file mode 100644 index 8455050..0000000 Binary files a/out/resources/images/bitbucketPendingWorkspaces.png and /dev/null differ diff --git a/out/resources/images/bitbucketProjectURL.png b/out/resources/images/bitbucketProjectURL.png deleted file mode 100644 index 2d1e26e..0000000 Binary files a/out/resources/images/bitbucketProjectURL.png and /dev/null differ diff --git a/out/resources/images/breakpointsMenu.png b/out/resources/images/breakpointsMenu.png deleted file mode 100644 index 53b74e8..0000000 Binary files a/out/resources/images/breakpointsMenu.png and /dev/null differ diff --git a/out/resources/images/callStack.png b/out/resources/images/callStack.png deleted file mode 100644 index 1f076c2..0000000 Binary files a/out/resources/images/callStack.png and /dev/null differ diff --git a/out/resources/images/cancellingProcess.png b/out/resources/images/cancellingProcess.png deleted file mode 100644 index 2e6a2e5..0000000 Binary files a/out/resources/images/cancellingProcess.png and /dev/null differ diff --git a/out/resources/images/cloneBitbucket.png b/out/resources/images/cloneBitbucket.png deleted file mode 100644 index 7cf0b71..0000000 Binary files a/out/resources/images/cloneBitbucket.png and /dev/null differ diff --git a/out/resources/images/cloneWorkspaceOptions.png b/out/resources/images/cloneWorkspaceOptions.png deleted file mode 100644 index d98b964..0000000 Binary files a/out/resources/images/cloneWorkspaceOptions.png and /dev/null differ diff --git a/out/resources/images/coffeescriptServer.png b/out/resources/images/coffeescriptServer.png deleted file mode 100644 index aa1c7ba..0000000 Binary files a/out/resources/images/coffeescriptServer.png and /dev/null differ diff --git a/out/resources/images/collab.png b/out/resources/images/collab.png deleted file mode 100644 index d571da3..0000000 Binary files a/out/resources/images/collab.png and /dev/null differ diff --git a/out/resources/images/collab_grant_access.png b/out/resources/images/collab_grant_access.png deleted file mode 100644 index c516b0b..0000000 Binary files a/out/resources/images/collab_grant_access.png and /dev/null differ diff --git a/out/resources/images/colorPickerHighlight.png b/out/resources/images/colorPickerHighlight.png deleted file mode 100644 index 369f170..0000000 Binary files a/out/resources/images/colorPickerHighlight.png and /dev/null differ diff --git a/out/resources/images/colorPickerWheel.png b/out/resources/images/colorPickerWheel.png deleted file mode 100644 index d14409e..0000000 Binary files a/out/resources/images/colorPickerWheel.png and /dev/null differ diff --git a/out/resources/images/confirmationEmail.png b/out/resources/images/confirmationEmail.png deleted file mode 100644 index ee2e1ab..0000000 Binary files a/out/resources/images/confirmationEmail.png and /dev/null differ diff --git a/out/resources/images/consoleOutput.png b/out/resources/images/consoleOutput.png deleted file mode 100644 index 5fd9362..0000000 Binary files a/out/resources/images/consoleOutput.png and /dev/null differ diff --git a/out/resources/images/consoleServerMessage.png b/out/resources/images/consoleServerMessage.png deleted file mode 100644 index 4efe70c..0000000 Binary files a/out/resources/images/consoleServerMessage.png and /dev/null differ diff --git a/out/resources/images/createHostedWorkspace.png b/out/resources/images/createHostedWorkspace.png deleted file mode 100644 index 8264d7b..0000000 Binary files a/out/resources/images/createHostedWorkspace.png and /dev/null differ diff --git a/out/resources/images/createNewCustomWorkspace.png b/out/resources/images/createNewCustomWorkspace.png deleted file mode 100644 index e9a265b..0000000 Binary files a/out/resources/images/createNewCustomWorkspace.png and /dev/null differ diff --git a/out/resources/images/createNewWorkspaceOptions.png b/out/resources/images/createNewWorkspaceOptions.png deleted file mode 100644 index 8baceab..0000000 Binary files a/out/resources/images/createNewWorkspaceOptions.png and /dev/null differ diff --git a/out/resources/images/createdWorkspace.png b/out/resources/images/createdWorkspace.png deleted file mode 100644 index aeb1f41..0000000 Binary files a/out/resources/images/createdWorkspace.png and /dev/null differ diff --git a/out/resources/images/debugLiveInspector.png b/out/resources/images/debugLiveInspector.png deleted file mode 100644 index 59ffc64..0000000 Binary files a/out/resources/images/debugLiveInspector.png and /dev/null differ diff --git a/out/resources/images/deleteConfirmation.png b/out/resources/images/deleteConfirmation.png deleted file mode 100644 index d369ab7..0000000 Binary files a/out/resources/images/deleteConfirmation.png and /dev/null differ diff --git a/out/resources/images/deleteWorkspace.png b/out/resources/images/deleteWorkspace.png deleted file mode 100644 index ff40156..0000000 Binary files a/out/resources/images/deleteWorkspace.png and /dev/null differ diff --git a/out/resources/images/deployButton.png b/out/resources/images/deployButton.png deleted file mode 100644 index a27b985..0000000 Binary files a/out/resources/images/deployButton.png and /dev/null differ diff --git a/out/resources/images/drupalFrameworkInstalled.png b/out/resources/images/drupalFrameworkInstalled.png deleted file mode 100644 index 4bd5441..0000000 Binary files a/out/resources/images/drupalFrameworkInstalled.png and /dev/null differ diff --git a/out/resources/images/drupalFrameworkInstaller.png b/out/resources/images/drupalFrameworkInstaller.png deleted file mode 100644 index ed62a36..0000000 Binary files a/out/resources/images/drupalFrameworkInstaller.png and /dev/null differ diff --git a/out/resources/images/drupalFrameworkMysql.png b/out/resources/images/drupalFrameworkMysql.png deleted file mode 100644 index e8de318..0000000 Binary files a/out/resources/images/drupalFrameworkMysql.png and /dev/null differ diff --git a/out/resources/images/drupalFrameworkSiteInfo.png b/out/resources/images/drupalFrameworkSiteInfo.png deleted file mode 100644 index 079150f..0000000 Binary files a/out/resources/images/drupalFrameworkSiteInfo.png and /dev/null differ diff --git a/out/resources/images/editorNaming.png b/out/resources/images/editorNaming.png deleted file mode 100644 index b57e85b..0000000 Binary files a/out/resources/images/editorNaming.png and /dev/null differ diff --git a/out/resources/images/express-run-config.png b/out/resources/images/express-run-config.png deleted file mode 100644 index c656058..0000000 Binary files a/out/resources/images/express-run-config.png and /dev/null differ diff --git a/out/resources/images/file_menu.png b/out/resources/images/file_menu.png deleted file mode 100644 index f9c0d31..0000000 Binary files a/out/resources/images/file_menu.png and /dev/null differ diff --git a/out/resources/images/forgotten_password.png b/out/resources/images/forgotten_password.png deleted file mode 100644 index 10dd3ee..0000000 Binary files a/out/resources/images/forgotten_password.png and /dev/null differ diff --git a/out/resources/images/githubAuthorization.png b/out/resources/images/githubAuthorization.png deleted file mode 100644 index 25613f5..0000000 Binary files a/out/resources/images/githubAuthorization.png and /dev/null differ diff --git a/out/resources/images/githubPendingWorkspaces.png b/out/resources/images/githubPendingWorkspaces.png deleted file mode 100644 index dc19d22..0000000 Binary files a/out/resources/images/githubPendingWorkspaces.png and /dev/null differ diff --git a/out/resources/images/githubProjectURL.png b/out/resources/images/githubProjectURL.png deleted file mode 100644 index c3cdc4c..0000000 Binary files a/out/resources/images/githubProjectURL.png and /dev/null differ diff --git a/out/resources/images/gotodefinition.png b/out/resources/images/gotodefinition.png deleted file mode 100644 index d206035..0000000 Binary files a/out/resources/images/gotodefinition.png and /dev/null differ diff --git a/out/resources/images/gotofile.png b/out/resources/images/gotofile.png deleted file mode 100644 index 4ffa348..0000000 Binary files a/out/resources/images/gotofile.png and /dev/null differ diff --git a/out/resources/images/gravatarSample.png b/out/resources/images/gravatarSample.png deleted file mode 100644 index 61fca35..0000000 Binary files a/out/resources/images/gravatarSample.png and /dev/null differ diff --git a/out/resources/images/helloWorld.png b/out/resources/images/helloWorld.png deleted file mode 100644 index bc64a55..0000000 Binary files a/out/resources/images/helloWorld.png and /dev/null differ diff --git a/out/resources/images/herokuConsoleOutput.png b/out/resources/images/herokuConsoleOutput.png deleted file mode 100644 index 18d1ab9..0000000 Binary files a/out/resources/images/herokuConsoleOutput.png and /dev/null differ diff --git a/out/resources/images/herokuDeploy.png b/out/resources/images/herokuDeploy.png deleted file mode 100644 index 282b696..0000000 Binary files a/out/resources/images/herokuDeploy.png and /dev/null differ diff --git a/out/resources/images/idePartitions.png b/out/resources/images/idePartitions.png deleted file mode 100644 index 3de3cb4..0000000 Binary files a/out/resources/images/idePartitions.png and /dev/null differ diff --git a/out/resources/images/interactiveMenu.png b/out/resources/images/interactiveMenu.png deleted file mode 100644 index 0fdc1d4..0000000 Binary files a/out/resources/images/interactiveMenu.png and /dev/null differ diff --git a/out/resources/images/joomlaInstallerDatabase.png b/out/resources/images/joomlaInstallerDatabase.png deleted file mode 100644 index 6ebfb6c..0000000 Binary files a/out/resources/images/joomlaInstallerDatabase.png and /dev/null differ diff --git a/out/resources/images/joomlaInstallerMain.png b/out/resources/images/joomlaInstallerMain.png deleted file mode 100644 index 3eae031..0000000 Binary files a/out/resources/images/joomlaInstallerMain.png and /dev/null differ diff --git a/out/resources/images/laravelWorkspaceRunning.png b/out/resources/images/laravelWorkspaceRunning.png deleted file mode 100644 index 14fa518..0000000 Binary files a/out/resources/images/laravelWorkspaceRunning.png and /dev/null differ diff --git a/out/resources/images/login_ssh.png b/out/resources/images/login_ssh.png deleted file mode 100644 index 1461b8f..0000000 Binary files a/out/resources/images/login_ssh.png and /dev/null differ diff --git a/out/resources/images/members_panel.png b/out/resources/images/members_panel.png deleted file mode 100644 index 82fd450..0000000 Binary files a/out/resources/images/members_panel.png and /dev/null differ diff --git a/out/resources/images/minimap.png b/out/resources/images/minimap.png deleted file mode 100644 index 53eeb9b..0000000 Binary files a/out/resources/images/minimap.png and /dev/null differ diff --git a/out/resources/images/missingPackageJSON.png b/out/resources/images/missingPackageJSON.png deleted file mode 100644 index e6ffca3..0000000 Binary files a/out/resources/images/missingPackageJSON.png and /dev/null differ diff --git a/out/resources/images/missingProcFile.png b/out/resources/images/missingProcFile.png deleted file mode 100644 index 25819de..0000000 Binary files a/out/resources/images/missingProcFile.png and /dev/null differ diff --git a/out/resources/images/newFtpWorkspace.png b/out/resources/images/newFtpWorkspace.png deleted file mode 100644 index 1179af5..0000000 Binary files a/out/resources/images/newFtpWorkspace.png and /dev/null differ diff --git a/out/resources/images/newRunConfiguration.png b/out/resources/images/newRunConfiguration.png deleted file mode 100644 index a487051..0000000 Binary files a/out/resources/images/newRunConfiguration.png and /dev/null differ diff --git a/out/resources/images/newSshWorkspace.png b/out/resources/images/newSshWorkspace.png deleted file mode 100644 index 249d51f..0000000 Binary files a/out/resources/images/newSshWorkspace.png and /dev/null differ diff --git a/out/resources/images/newWorkspace.png b/out/resources/images/newWorkspace.png deleted file mode 100644 index 6330c4f..0000000 Binary files a/out/resources/images/newWorkspace.png and /dev/null differ diff --git a/out/resources/images/previewPopOutButton.png b/out/resources/images/previewPopOutButton.png deleted file mode 100644 index b1804b9..0000000 Binary files a/out/resources/images/previewPopOutButton.png and /dev/null differ diff --git a/out/resources/images/project_bar.png b/out/resources/images/project_bar.png deleted file mode 100644 index d4cc5fd..0000000 Binary files a/out/resources/images/project_bar.png and /dev/null differ diff --git a/out/resources/images/reloadWorkspaces.png b/out/resources/images/reloadWorkspaces.png deleted file mode 100644 index b76deb2..0000000 Binary files a/out/resources/images/reloadWorkspaces.png and /dev/null differ diff --git a/out/resources/images/resend_email.png b/out/resources/images/resend_email.png deleted file mode 100644 index 2aa6e32..0000000 Binary files a/out/resources/images/resend_email.png and /dev/null differ diff --git a/out/resources/images/runButtonMenuBar.png b/out/resources/images/runButtonMenuBar.png deleted file mode 100644 index b0d7afd..0000000 Binary files a/out/resources/images/runButtonMenuBar.png and /dev/null differ diff --git a/out/resources/images/runOutput.png b/out/resources/images/runOutput.png deleted file mode 100644 index 4fd1c00..0000000 Binary files a/out/resources/images/runOutput.png and /dev/null differ diff --git a/out/resources/images/runPanel.png b/out/resources/images/runPanel.png deleted file mode 100644 index 1550428..0000000 Binary files a/out/resources/images/runPanel.png and /dev/null differ diff --git a/out/resources/images/run_debug_menu_button.png b/out/resources/images/run_debug_menu_button.png deleted file mode 100644 index 8697d5d..0000000 Binary files a/out/resources/images/run_debug_menu_button.png and /dev/null differ diff --git a/out/resources/images/runningProcess.png b/out/resources/images/runningProcess.png deleted file mode 100644 index d6048b2..0000000 Binary files a/out/resources/images/runningProcess.png and /dev/null differ diff --git a/out/resources/images/searchResults.png b/out/resources/images/searchResults.png deleted file mode 100644 index 27eb06b..0000000 Binary files a/out/resources/images/searchResults.png and /dev/null differ diff --git a/out/resources/images/searchinfiles_ide.png b/out/resources/images/searchinfiles_ide.png deleted file mode 100644 index 6d7d77d..0000000 Binary files a/out/resources/images/searchinfiles_ide.png and /dev/null differ diff --git a/out/resources/images/shareButtons.png b/out/resources/images/shareButtons.png deleted file mode 100644 index dfbefcb..0000000 Binary files a/out/resources/images/shareButtons.png and /dev/null differ diff --git a/out/resources/images/shareWorkspaceDialog.png b/out/resources/images/shareWorkspaceDialog.png deleted file mode 100644 index 9a9b6fc..0000000 Binary files a/out/resources/images/shareWorkspaceDialog.png and /dev/null differ diff --git a/out/resources/images/signUp.png b/out/resources/images/signUp.png deleted file mode 100644 index 64bc24b..0000000 Binary files a/out/resources/images/signUp.png and /dev/null differ diff --git a/out/resources/images/sqlite3_simple_db.png b/out/resources/images/sqlite3_simple_db.png deleted file mode 100644 index 27852d8..0000000 Binary files a/out/resources/images/sqlite3_simple_db.png and /dev/null differ diff --git a/out/resources/images/sshKey.png b/out/resources/images/sshKey.png deleted file mode 100644 index 28fd144..0000000 Binary files a/out/resources/images/sshKey.png and /dev/null differ diff --git a/out/resources/images/startEditingButton.png b/out/resources/images/startEditingButton.png deleted file mode 100644 index aeb1f41..0000000 Binary files a/out/resources/images/startEditingButton.png and /dev/null differ diff --git a/out/resources/images/tab_button_menu.png b/out/resources/images/tab_button_menu.png deleted file mode 100644 index 2cb525d..0000000 Binary files a/out/resources/images/tab_button_menu.png and /dev/null differ diff --git a/out/resources/images/tab_context_menu.png b/out/resources/images/tab_context_menu.png deleted file mode 100644 index 9b252dd..0000000 Binary files a/out/resources/images/tab_context_menu.png and /dev/null differ diff --git a/out/resources/images/tab_filepath.png b/out/resources/images/tab_filepath.png deleted file mode 100644 index fac96dc..0000000 Binary files a/out/resources/images/tab_filepath.png and /dev/null differ diff --git a/out/resources/images/terminal.png b/out/resources/images/terminal.png deleted file mode 100644 index 3233fa7..0000000 Binary files a/out/resources/images/terminal.png and /dev/null differ diff --git a/out/resources/images/theDashboard.png b/out/resources/images/theDashboard.png deleted file mode 100644 index 734d89b..0000000 Binary files a/out/resources/images/theDashboard.png and /dev/null differ diff --git a/out/resources/images/tool_bar.png b/out/resources/images/tool_bar.png deleted file mode 100644 index d7c12e4..0000000 Binary files a/out/resources/images/tool_bar.png and /dev/null differ diff --git a/out/resources/images/topMenuBar.png b/out/resources/images/topMenuBar.png deleted file mode 100644 index 28ec9c0..0000000 Binary files a/out/resources/images/topMenuBar.png and /dev/null differ diff --git a/out/resources/images/unused_var_sample.png b/out/resources/images/unused_var_sample.png deleted file mode 100644 index 2df4837..0000000 Binary files a/out/resources/images/unused_var_sample.png and /dev/null differ diff --git a/out/resources/images/urlCloning.png b/out/resources/images/urlCloning.png deleted file mode 100644 index 1e091b4..0000000 Binary files a/out/resources/images/urlCloning.png and /dev/null differ diff --git a/out/resources/images/userContext.png b/out/resources/images/userContext.png deleted file mode 100644 index ca8666d..0000000 Binary files a/out/resources/images/userContext.png and /dev/null differ diff --git a/out/resources/images/variablesMenu.png b/out/resources/images/variablesMenu.png deleted file mode 100644 index 6034b88..0000000 Binary files a/out/resources/images/variablesMenu.png and /dev/null differ diff --git a/out/resources/images/windowsAzureDialog.png b/out/resources/images/windowsAzureDialog.png deleted file mode 100644 index a94d9d8..0000000 Binary files a/out/resources/images/windowsAzureDialog.png and /dev/null differ diff --git a/out/resources/images/windowsAzureInfo.png b/out/resources/images/windowsAzureInfo.png deleted file mode 100644 index d227649..0000000 Binary files a/out/resources/images/windowsAzureInfo.png and /dev/null differ diff --git a/out/resources/images/windowsAzureStagingOutput.png b/out/resources/images/windowsAzureStagingOutput.png deleted file mode 100644 index 099bd38..0000000 Binary files a/out/resources/images/windowsAzureStagingOutput.png and /dev/null differ diff --git a/out/revisions.html b/out/revisions.html deleted file mode 100644 index f1ecc22..0000000 --- a/out/revisions.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - Revisions | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Revisions

-

Note:

this article is outdated, a new version will follow soon - -
-
- -
- -

Every time you save a file on Cloud9, a diff of any changes made to it is saved by the server. Over time, you can view these file revisions as content is added and removed from your files. You can also restore a file to any previously saved state; you'll never have to worry about losing your work ever again!

-

To access file revisions, you can either go to File > File Revisions History, or type Cmd-B on Mac or Ctrl-B on Linux/Windows. This will pop open the Revisions History panel. Red lines indicate lines that were removed; green lines indicate lines that were either added or changed.

-

At the bottom of the panel, there's a checkbox for showing all of a file's changes. Files changes that occur relatively soon to one another--say, a few seconds--are grouped by the revisions panel as one "change." If you prefer to see every single change as an individual entry, enable the Show all file changes checkbox.

-

To restore a file to a previous revision, simply click the revisions button for that entry: Revisions Button

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/run_an_application.html b/out/run_an_application.html deleted file mode 100644 index f994ddf..0000000 --- a/out/run_an_application.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - Run an application | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Run an application

-

On Hosted and SSH workspaces, Cloud9 provides two ways to run your application:

-
    -
  1. Using the Run panel with built-in Runners for many languages
  2. -
  3. From a Terminal
  4. -
-

Method 1: Use the Run panel

-

First, open the file you want to run.

-

Next, click on the Run button in the top menu bar in the IDE.

-

Run button in top menu bar

-

The Run button acts as a sort of shortcut to the Run panel, which will appear by default in the bottom of the IDE when you run a file. -This automatically runs the currently active file, and it will guess which Runner to use based on the extension of the file.

-

When you're ready to stop your app, click on the Stop Button button in the menu bar at any time, or from the Run panel below.

-

Run Panel

-

On the Run panel, you'll notice a few more options you can set. -Filling these textboxes out creates a Run Configuration.

-
    -
  • Name: the name of your run scenario
  • -
  • Command: the command you want to run; this is usually the location of your running file in your project, but it also allows you to provide any additional command line arguments you want to pass to your app
  • -
  • Runner: defines how you want your code to be run. A wide range of Runners is available by default, from Apache to Node.js and Shell scripts, and you can define your own.
  • -
  • CWD: Set the current working directory to start from
  • -
  • Environment: Set environment variables
  • -
  • -
-

Tip:

If you can't find the Runner you need from the default set, you can create your own custom Runner. - -
-

For some default runners like Node.js, it's an option to Run in debug mode, which indicates that you want to run the current code through the debugger. -This will reveal (or collapse) the debugging tools panel described in Running and Debugging your code.

-

Method 2: From the Terminal

-

The built-in Terminal provides access to all underlying system commands, including your Runners such as Node.js. -Simply open up a Terminal from the "+" sign, or use CMD+T (Mac) / Control+T (Windows), and then execute the command you need to run your app, e.g. node server.js.

-

(Pre-)View your application

-

To find out where your application is running you can do two things:

-
    -
  1. Use the Preview button on the top to preview one of your files. The URL in the browser bar in the Preview can also be used in any browser tab/window.
  2. -
  3. Use the Share button on the top to figure out the URLs of running Application and the Preview. The Editor URL is only used to share your entire Cloud9 workspace to collaborate on code.
  4. -
-

Tip:

If you can't find how to preview your running app, try to use port 8080 in the URL.
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/run_your_own_workspace.html b/out/run_your_own_workspace.html deleted file mode 100644 index 93a8e0e..0000000 --- a/out/run_your_own_workspace.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - Running Your Own SSH Workspace | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Running Your Own SSH Workspace

-

You have access to an incredibly powerful feature of Cloud9 that we like to call "running your own workspace."

-

If you own a server that you can SSH into, you can log into that machine with Cloud9 and work on your projects remotely. To put this into perspective, you could have an entire toolchain set up on this machine--say, make with gcc, or ant with Java--edit the files with Cloud9 IDE, and build your toolchain via the IDE's terminal. Here's a video demonstrating how you could instantly compile a C program using an SSH workspace and Cloud9:

-
- -
- -

Connection Prerequisites

-

In order to connect Cloud9 with a server you own, you'll need two things:

-
    -
  1. Node.js installed on the server. This version must be between Node.js version 0.6.16 and the latest 0.8.x.
  2. -
  3. Your public SSH key must be saved on the server at ~/.ssh/authorized_keys. This is to ensure the utmost security between your client computer and the machine you're attempting to access. Cloud9 provides you with your SSH key in the workspace dialog; it is up to you to save it to the appropriate path. For more information on SSH keys, see this article.
  4. -
-

Tip:

If you're behind a firewall, you can identify which IP address and port Cloud9 is running on by typing echo $OPENSHIFT_INTERNAL_IP and echo $OPENSHIFT_INTERNAL_PORT into the console. You can use this information to open any blocked connections. - -
-

Creating an SSH Workspace

-

Once you've got those requirements set up, here's how you can create an SSH workspace of your own:

-

In the Projects tab on the Dashboard, click on the Project Add Icon next to MY PROJECTS and choose the option to Create a new project (see "Creating a New Project" if you need to review the steps to create a new project):
New workspace creation

-

In the pop-up window that appears, select SSH for the project type:
SSH Options

-

You don't need to fill out every option provided by the dialog. Let's review what they are:

-
    -
  • Hostname: the domain name or IP address of the machine running your SSH server.
  • -
  • Username: your username for the SSH server.
  • -
  • Node.js Binary Path: the locaton of your Node.js binary. If you're not sure where it is, you can always let Cloud9 guess it for you. Otherwise, on your server, type which node, to see the full path
  • -
  • Initial path: this is an optional parameter. You can set it as an absolute (starts with /) path. Otherwise, it'll be set to a relative path, and Cloud9 assumes that you want to start from the folder your SSH server leaves you after login (usually the home or default folder).
  • -
  • Port: this is an optional parameter. Cloud9 will automatically try to connect on port 22
  • -
-

Warning:

Be careful not to put an initial path that leaves you in a location where you don't have write privileges, as that could cause problems! - -
-

Fill in your SSH details and click the Login Test to verify that the settings are correct. If the test succeeds, go ahead and click Create to create your SSH connection. You'll then see your project in the Dashboard under My Projects: -New SSH Project

-

When your new SSH is selected, you will see three buttons: Start Editing, SSH settings, and Delete (on the far right). SSH settings gives you access to the settings you just filled in, as well as the login test. This is useful to use in case your login credentials have changed.

-

Warning:

Make sure that you copied your SSH key correctly! Trailing spaces are significant, so make sure your text editor on your server is not modifying the key that Cloud9 is providing you with. - -
-

To get started with your SSH project, click on the Start Editing button. You'll instantly be taken to the editor, and have full access to your server's resources. As you can see in the video above, this means you can do exciting things like compiling C programs.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/running_a_rails_app.html b/out/running_a_rails_app.html deleted file mode 100644 index b72d459..0000000 --- a/out/running_a_rails_app.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - Running a Rails App | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Running a Rails App

-

Cloud9 IDE also supports the ability to run a Rails application. The rails command is only available on the terminal.

-

To run a rails application:

-
    -
  1. Open the terminal and type gem install rails
  2. -
  3. When done, type rails new example -d mysql
  4. -
  5. Edit your database configuration in configs/database.yml
  6. -
  7. Type rails s -b $IP -p $PORT
  8. -
-

That's it! Your rails app will now be running.

-

Note:

http://<workspacename>-c9-<username>.c9.io should be running your application. - -
-

Do not try to access the project through the IP address and port number rails returns to you--it won't work!

-

Use MySQL in your rails app

-
    -
  1. Setup MySQl - note your DB connect parameters

    -
  2. -
  3. edit configs/database.yml

    -
  4. -
-
development:
-  adapter: mysql2
-  encoding: utf8
-  database: c9
-  username: <%=ENV['C9_USER']%>
-  host: <%=ENV['IP']%>
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/running_and_debugging_code.html b/out/running_and_debugging_code.html deleted file mode 100644 index a6e0e1b..0000000 --- a/out/running_and_debugging_code.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - Running and Debugging Your Code | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Running and Debugging Your Code

-

Cloud9 IDE provides several ways to run and debug your code. We'll explore each of them in this section of the documentation.

-

Note:

Currently, only Javascript/Node.js applications can make use of the debugger. You can also execute Javascript/Node.js, Python, Ruby, and Apache+PHP applications. - -
-

The following information applies to all of the above programming languages.

-

Running Code

-

Running your code in Cloud9 is really easy. First, open the file you want to run. Usually, this file is going to be the main entry point to your app; for example, if you're creating a server, you'd want to run the file that actually instantiates that server.

-

There are two ways to run your code: either through the Run Panel, or through the run button in the menu bar.

-

Using the Run Panel

-

Next, click on the Run button in the project bar. You'll notice immediately that your active file is already available to run. Just double-click on the file, and you'll launch your app.

-

When you're ready to stop your app, click on the Icon of the Stop Button button in the menu bar at any time.

-

At the bottom of the run panel, you'll notice a few more options you can set. Filling these textboxes out creates a run scenario, which is like setting up some configurations for the way your code runs. These options are:

-
    -
  • Name the name of your run scenario
  • -
  • File Path: the location of your running file in your project
  • -
  • Runtime: defines how you want your code to be run. Typically, you'd set different runtime versions here.
  • -
  • Cmd Line Args: allows you to provide any additional command line arguments you want to pass to your app
  • -
-

Of course, you can also save your run scenarios; just click on the add button at the top of the panel. When you're ready to run a scenario, click on its name in the Run panel list. To remove a run scenario, click on its name in the run panel list, and then click on the remove button.

-

Using the Run Button

-

The run button in the menu bar acts as a sort of short cut to the Run panel. When clicked, the button automatically runs the currently active file. If you have a list of run scenarios already defined, the run button also presents a list of those:

-

Run Button Expanded

-

Run in debug mode indicates that you want to run the current code through the debugger. Auto show & hide debug tools will reveal (or collapse) the debugging tools panel described below. You can also work with this presentation by going to View > Panels, and configuring the debugger there.

-

Console Output

-

Every time you run a project, the console expands to reveal output from your program. If you're launching a server, Cloud9 provides you with a URL to access the project. Otherwise, any statements sent by your application's print statements (like console.log() for Javascript, print for Python, or puts for Ruby) are also shown here. For example:
Console run output

-

Debugging Your Code

-

Setting up a project to debug is done in very much the same way as running your code. The only difference is that you must click on the run settings icon in the Run panel Run Settings Icon: A Gear with an Arrow and select Run in debug mode. Similarly, you can select Run in debug mode from the run button.

-

Initially, the only difference this will make is the expansion of the debugging toolbar to the right of the editor:
The toolbar used for debugging

-

This toolbar, however, grants you the following capabilities:

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Toolbar IconDebugging FunctionDescription
Debugging navigation toolsDebugging NavigationThis is a set of tools you can use to move around your code while debugging. You can step into, over, and out of your code, or simply press play to run the process until the next breakpoint.
Icon for the callstackCallstackThis is a structured list of information about the sequences of your code--basically, which functions are calling what, and where you are in the current process. It also stores local variables and function arguments, if present. You can use this feature to check how your code is running:
Callstack menu window
Icon for interactive modeInteractive ModeLets you evaluate a piece of code, such as expressions or the values and properties of variables. The text field allows you to type any code you want, in case you discover a way to fix you problem: -Interactive mode window
Icon for variable inspectionVariable InspectionThis shows all the related variables (including functions) that are present in the current context: -Variable inspection window
Icon for breakpoint listBreakpoint ListAt any point during your coding or debugging session, you can click on the gutter to apply a breakpoint: Breakpoint Icon. When debugging your code, the process pauses at your established breakpoints, so that you can inspect closely what's going on in a certain part of the code. You can click on the breakpoint list to view all the breakpoints in your workspace. If you click on the checkbox, you can enable or disable a breakpoint as well. You can also click on a breakpoint in the gutter to disable or enable it.
-

While debugging, you also have the power of the live inspector. While hovering over a piece of code in the editor, you'll instantly get some floating text that describes the values of that variable, similar to Variable Inspection.
Live inspection window

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/running_wordpress_on_cloud9.html b/out/running_wordpress_on_cloud9.html deleted file mode 100644 index 8d2c078..0000000 --- a/out/running_wordpress_on_cloud9.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - Running WordPress on Cloud9 | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Running WordPress on Cloud9

-

WordPress is web software you can use to create websites or blogs. -You can develop and host WordPress websites entirely on Cloud9 IDE

-

Creating a wordpress workspace

-

Create a WordPress workspace from the WordPress template on your Cloud9 dashboard

-

Note:

We will download, extract and configure WordPress for you. - -
-

In order to run WordPress, you need a database to host your posts, articles, etc.

-

You can use MySQL with our utility script mysql-ctl as explained in MySQL Setup

-

Running the website

-

To start MySQL server and create the required database, type in the terminal:

-
mysql-ctl start
-

Open index.php in your workspace root and click the Run button

-

You can check the generated config for you In wp-config.php (you don't need to change anything there)

-
define('DB_NAME', 'c9');
-define('DB_USER', getenv('C9_USER'));
-define('DB_PASSWORD', '');
-define('DB_HOST', getenv('IP'));
-define('WP_SITEURL', 'http://' . getenv('C9_PROJECT') . '.' . getenv('C9_USER') . '.c9.io');
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/searching_in_files.html b/out/searching_in_files.html deleted file mode 100644 index 5fbc708..0000000 --- a/out/searching_in_files.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - Searching and Replacing in Files | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Searching and Replacing in Files

-
- -
- -

Aside from Goto File and Goto Definition, Cloud9 also offers more traditional search functionality. There are three types of search modes available: quicksearch, search and replace, and find in files.

-

Quicksearch

-

Quicksearch can be activated by hitting Cmd-F on a Mac, or Ctrl-F on a Unix/Windows machine. As you type in the quicksearch bar, the IDE instantly shifts to the next available result. This is a great way to quickly search around in your code without hassle.

-

Quicksearch offers the following options:

-
    -
  • Regular Expressions: when enabled, your search is treated as a regular expression
  • -
  • Match Case: when enabled, your search takes capitalizations seriously:
  • -
  • Whole Words: when enabled, your search will only be considered for whole words:
  • -
  • Search Backwards: when enabled, the search goes backwards, instead of forwards
  • -
  • Wrap Around: when enabled, the search loops around the file, from bottom to top
  • -
  • Search Selection: when enabled, the search only considers code that you've currently highlighted
  • -
-

Search and Replace

-

Building on the features of quicksearch, search and replace allows you to replace segments of code in your file. You can again continue to use regular expressions, keeping in mind the groupings are prefixed with a dollar sign, i.e. $1.

-

Replacing offers two more options:

-
    -
  • Preserve Case: if enabled, case is preserved while replacing content
  • -
  • Highlight Matches: if enabled, the new replaced matches are highlighted in the document
  • -
-

Find in Files

-

In order to search across a set of files, you'll want to use the Find in Files feature. Here, you can search of a string or regular expression, within your entire workspace or a single directory. You can also filter based on extensions, like *.js or *.rb.

-

Find in files offers some of the same search options as quicksearch:

-
    -
  • Regular Expressions: when enabled, your search is treated as a regular expression
  • -
  • Match Case: when enabled, your search takes capitalizations seriously
  • -
  • Whole Words: when enabled, your search will only be considered for whole words
  • -
-

One more feature of find in files is the ability to render search results either in the console or the IDE. You can fold results to keep them out of the way, or, edited the file if you're working down a list:
Search in files, IDE results

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_bitbucket_workspace.html b/out/setting_up_bitbucket_workspace.html deleted file mode 100644 index 83c4286..0000000 --- a/out/setting_up_bitbucket_workspace.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - Setting Up a Bitbucket Workspace | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Setting Up a Bitbucket Workspace

-

Bitbucket is a code-hosting services that offers both git and mercurial support. Projects can be listed as private or public, absolutely free. For more information on Bitbucket, visit https://bitbucket.org.

-

We have integrated Bitbucket into the IDE to enable you to easily work on your public and private repositories. The following article explains how you can activate your Bitbucket account in Cloud9 IDE.

-

Bitbucket Activation

-

You can manage your add-on services from your user profile that you can find in the dashboard. When you have just signed in, click Your Account on the top of the left-side panel. Here, you can change the settings of your account. At the bottom, you'll see a list of add-on services that are integrated into Cloud9 IDE. Click activate on the Bitbucket button:

-

Add-on Services Screenshot

-

A new window will pop-up on your screen. This window asks you to give authorization permission for the Cloud9 IDE application to interact in various ways with Bitbucket:

-

Bitbucket Permissions Window

-

To finalize the activation, click on Allow. Next, you're redirected to your account page, where you'll notice that your Bitbucket account is activated. You can deactivate Bitbucket by simply clicking deactivate, which may be useful when you want to link your Bitbucket account to another Cloud9 account.

-

Now that you have activated Bitbucket, you can start to create and manage your projects!

-

Managing Projects

-

There are several ways to manage Bitbucket projects in Cloud9 IDE:

-
    -
  • By creating a new git or mercurial project and pushing it to Bitbucket
  • -
  • By cloning a Bitbucket project from a URL
  • -
  • By bringing in a Bitbucket project manually
  • -
-

Creating a New Git Project

-

New projects are created from the dashboard. In the left-side panel, click on the Project Add Icon to add a new project:

-

New project menu

-

A new window will pop-up in which you can change your settings to your preferences:

-
    -
  • Fill in your preferred project name in the text field
  • -
  • Choose who will have access to the project (a feature for Premium customers)
  • -
  • Select your project type (git, mercurial, or FTP)
  • -
  • Choose a development server (a feature for Premium customers)
  • -
-

New Project Options

-

After you click CREATE, the project is listed in your dashboard. Select the project to see its Project Profile, where you can start editing: Start editing button

-

There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands:

-
git remote add [remote name] [remote url]
-

remote url is the location of the project on Bitbucket; for example 'origin git@bitbucket.org:username/repository_name.git'. You'll have to create a Bitbucket project first in order to generate this URL. Adding a remote URL lets you freely push and pull your project.

-

Next, create a few new files inside your project. By default, you should already have a README.md. You can add these files to git with the following command:

-
git add [file1, file2, file3, ...]
-

Finally, create a commit that you can push to your remote:

-
git commit -m 'added new files'
-

Don't forget to push this commit out to Bitbucket:

-
git push [remote name] master
-

Ta-da! Your project is developed on Cloud9, and stored in Bitbucket.

-

Cloning Projects from a URL

-

You can also create a project in Cloud9 IDE by cloning it from a URL. Once again, click on the Project Add Icon, and select Clone from URL. A new window pops up, asking you:

-
    -
  • to enter a Source URL
  • -
  • to choose who will have access to the project (Premium feature)
  • -
  • to choose a development server (Premium feature)
  • -
-

Clone Project Options

-

You can find an examples of a Bitbucket URL on any of their repo description pages:

-

Bitbucket Repo Description

-

Paste the URL in the source field and click CHECKOUT. In the left-side panel, you'll see the project and its status turn into "Cloning in Progress". When this process is completed you can open the project and start editing it, just like any other project.

-

Clone Projects Already On Bitbucket

-

When you provide Cloud9 IDE with your Bitbucket credentials, it provides a list of projects you haven't yet imported into the editor:

-

Bitbucket Pending Projects

-

From this list, clicking on a project and selecting CLONE TO EDIT brings the repo into the IDE, just as if you cloned it from a URL.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_github_workspace.html b/out/setting_up_github_workspace.html deleted file mode 100644 index d5370c5..0000000 --- a/out/setting_up_github_workspace.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - Setting Up a GitHub Workspace | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Setting Up a GitHub Workspace

-

GitHub is a code hosting service which offers you a lot of features to manage your public and private git repositories. For more information about GitHub and how to use it, visit https://github.com.

-

We have integrated GitHub into the IDE to enable you to easily work on your public and private Git repositories. The following article explains how you can activate your GitHub account in Cloud9 IDE.

-

GitHub Activation

-

You can manage your add-on services from your user profile that you can find in the dashboard. When you have just signed in, click Your Account on the top of the left-side panel. Here, you can change the settings of your account. At the bottom, you'll see a list of add-on services that are integrated into Cloud9 IDE. Click activate on the GitHub button:

-

Add-on Services Screenshot

-

A new window will pop-up on your screen. This window asks you to give authorization permission for the Cloud9 IDE application to interact in various ways with GitHub:

-

GitHub Permissions Window

-

To finalize the activation, click on Allow. Next, you're redirected to your account page, where you'll notice that your GitHub account is activated. You can deactivate GitHub by simply clicking deactivate, which may be useful when you want to link your GitHub account to another Cloud9 account.

-

Now that you have activated GitHub, you can start to create and manage git projects!

-

Managing Git Projects

-

There are several ways to manage GitHub projects in Cloud9 IDE:

-
    -
  • By creating a new git project and pushing it to GitHub
  • -
  • By cloning a GitHub project from a URL
  • -
  • By bringing in a GitHub project manually
  • -
-

Creating a New Git Project

-

New projects are created from the dashboard. In the left-side panel, click on the Project Add Icon to add a new project:

-

New project menu

-

A new window will pop-up in which you can change your settings to your preferences:

-
    -
  • Fill in your preferred project name in the text field
  • -
  • Choose who will have access to the project (a feature for Premium customers)
  • -
  • Select your project type (git, mercurial, or FTP)
  • -
  • Choose a development server (a feature for Premium customers) -{: #setupOptions}
  • -
-

New Project Options

-

Select git as your project type. After you click CREATE, the project is listed in your dashboard. Select the project to see its Project Profile, where you can start editing: Start editing button

-

There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands:

-
git remote add [remote name] [remote url]
-

remote url is the location of the project on GitHub; for example 'git@github.com:/ajaxorg/node_chat'. You'll have to create a GitHub project first in order to generate this URL. Adding a remote URL lets you freely push and pull your project.

-

Next, create a few new files inside your project. By default, you should already have a README.md. You can add these files to git with the following command:

-
git add [file1, file2, file3, ...]
-

Finally, create a commit that you can push to your remote:

-
git commit -m 'added new files'
-

Don't forget to push this commit out to GitHub:

-
git push [remote name] master
-

Ta-da! Your project is developed on Cloud9, and stored in GitHub.

-

Cloning Projects from a URL

-

You can also create a project in Cloud9 IDE by cloning it from a URL. Once again, click on the Project Add Icon, and select Clone from URL. A new window pops up, asking you:

-
    -
  • to enter a Source URL
  • -
  • to choose who will have access to the project (Premium feature)
  • -
  • to choose a development server (Premium feature)
    {: #cloningOptions}
  • -
-

Clone Project Options

-

You can find an examples of a GitHub URL on any of their repo description pages:

-

GitHub Repo Description

-

Paste the URL in the source field and click CHECKOUT. In the left-side panel, you'll see the project and its status turn into "Cloning in Progress". When this process is completed you can open the project and start editing it, just like any other project.

-

Clone Projects Already On GitHub

-

When you provide Cloud9 IDE with your GitHub credentials, it provides a list of projects you haven't yet imported into the editor:

-

GitHub Pending Projects

-

From this list, clicking on a project and selecting CLONE TO EDIT brings the repo into the IDE, just as if you cloned it from a URL.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_gitlab_workspace.html b/out/setting_up_gitlab_workspace.html deleted file mode 100644 index a3b1c66..0000000 --- a/out/setting_up_gitlab_workspace.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - Setting Up a GitLab workspace | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Setting Up a GitLab workspace

-

GitLab is open source Git management software used by more than 25.000 -organizations, see http://gitlab.org/.

-

GitLab.com offers services for on-premise GitLab installations -and free private git repositoring on GitLab Cloud -with unlimited repo's and collaborators.

-

To use your on-premise GitLab installation or GitLab Cloud please see -the instructions for cloning from a url.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_hosted_mysql.html b/out/setting_up_hosted_mysql.html deleted file mode 100644 index 5c703bc..0000000 --- a/out/setting_up_hosted_mysql.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - MySQL | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

MySQL

-

MySQL is the world's most widely used open source relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases.

-

MySQL's most common features

-
    -
  • A broad subset of ANSI SQL 99, as well as extensions
  • -
  • Cross-platform support
  • -
  • Stored procedures
  • -
  • Triggers
  • -
  • Cursors
  • -
  • Updatable Views
  • -
  • Information schema
  • -
  • Many more
  • -
-

Using MySQL with Cloud9

-

Cloud9 IDE does not support installing a MySQL database (yet). As a workaround you can choose to connect your project to a MySQL database hosted elsewhere. Xeround -offers hosted MySQL instances and have a free tier available for getting started.

-

Xeround

-
    -
  1. Register with Xeround
  2. -
  3. Log in to your controlpanel
  4. -
  5. Choose 'create new'
  6. -
  7. Choose a datacenter
  8. -
  9. Enter your Database name, Username and Password and create
  10. -
  11. Select your newly created instance and click the 'External DNS Hostname' link provided to log into PHPMyAdmin
  12. -
  13. Create and import/setup your database
  14. -
-

Cloud9

-
    -
  1. Log into your account
  2. -
  3. Create a new project (or use an existing one)
  4. -
  5. Test the connection using the following script:

    -
             <?php
    -
    -         $database = new mysqli('instanceNo.db.xeround.com', 'username', 'password', 'databasename', 'port');
    -
    -         if($database->connect_errno > 0){
    -             die ('Database Error' . $database->connect_error); 
    -         }else{
    -             die ('Connected!');
    -         }
    -         ?>
    -
  6. -
  7. Save the file
  8. -
  9. Run the file
  10. -
-

Source

-

Courtesy of Roger Qui of Polycadamy. This guide is elaborately explained in a video tutorial

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_mongodb.html b/out/setting_up_mongodb.html deleted file mode 100644 index a1617ec..0000000 --- a/out/setting_up_mongodb.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - MongoDB | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

MongoDB

-

MongoDB is a scalable, high-performance, open source NoSQL database.

-

MongoDB's most common features

-
    -
  • Document-Oriented Storage
    -JSON-style documents with dynamic schemas offer simplicity and power.

    -
  • -
  • Full Index Support
    -Index on any attribute, just like you're used to.

    -
  • -
  • Querying
    -Rich, document-based queries.

    -
  • -
-

In addition, MongoDB has many scalability features such as:

-

Replication, Auto-sharding, Map/Reduce and GridFS

-

Running MongoDB on a Cloud9 workspace

-

MongoDB is preinstalled in your workspace. To run MongoDB, run the following below (passing the correct parameters to it). Mongodb data will be stored in the folder data.

-
$ mkdir data
-$ echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod
-$ chmod a+x mongod
-

You can start mongodb by running the mongod script on your project root:
-$ ./mongod

-

MongoDB parameters used:

-

| Parameter | Description | -| ------------------------------ | ----------------------------------------------------------------------------------------------- | -| --dbpath=data | Because it defaults to /var/db which isn't accessible) | -| --nojournal | Because mongodb usually pre-allocates 2 GB journal file (which exceeds Cloud9 disk space quota) | -| --bind_ip=$IP | Because you can't bind to 0.0.0.0) | -| --rest | Runs on default port 28017 |

-

Drivers

-

You should use the host $IP instead of localhost as your driver connection url.
-e.g. in Node, it is: process.env.IP

-

MongoDB has drivers for all supported runtimes. Following are the most commonly used drivers:

-

Node.JS apps

-

Mongoose
-Node-Mongodb-Native

-

Shell Access

-

To access a shell prompt for the above MongoDB run the following.

-
$ mongo
-

Check out docs.mongodb.org for details on how to use the shell

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_mysql.html b/out/setting_up_mysql.html deleted file mode 100644 index 32ca441..0000000 --- a/out/setting_up_mysql.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - MySQL | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

MySQL

-

MySQL is the world's most widely used open source relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases.

-

MySQL's most common features

-
    -
  • A broad subset of ANSI SQL 99, as well as extensions
  • -
  • Cross-platform support
  • -
  • Stored procedures
  • -
  • Triggers
  • -
  • Cursors
  • -
  • Updatable Views
  • -
  • Information schema
  • -
  • Many more
  • -
-

Using MySQL with Cloud9

-

This article explains our first iteration of MySQL support in Cloud9. It makes it super easy to install, start and stop a MySQL instance right in your workspace. The nice thing is that every workspace will run a separate database so your projects will never interfere with each other. You can control MySQL with the mysql-ctl command line tool run from the terminal:

-
# start MySQL. Will create an empty database on first start
-$ mysql-ctl start
-
-# stop MySQL
-$ mysql-ctl stop
-
-# run the MySQL interactive shell
-$ mysql-ctl cli
-

You can then connect to the database with following parameters:

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Option - Value - Comment -
Hostname$IPThe same local IP as the application you run on Cloud9
Port3306The default MySQL port number
User$C9_USERYour Cloud9 user name
Password-No password since you can only access the DB from within the workspace
Databasec9The database name
-

Importing data into your database

-

To import existing data into your database run following commands:

-
mysql-ctl cli
-

You are now in the MySQL environment and can start the import:

-
mysql> use c9
-mysql> source PATH_TO_SQL_FILE.sql
-

To verify that everything got imported run:

-
mysql> show tables;
-

Note:

MySQL socket file can be found in ~/lib/mysql/socket/mysql.sock - -
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_postgresql.html b/out/setting_up_postgresql.html deleted file mode 100644 index 298a07d..0000000 --- a/out/setting_up_postgresql.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - PostgreSQL | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

PostgreSQL

-

Installing PostgreSQL on a Cloud9 workspace

-

PostgreSQL comes preinstalled on every Cloud9 workspace, yay.

-

Start the PostgreSQL service

-
$ sudo service postgresql start
-

Set the "postgres" user password

-
$ sudo sudo -u postgres psql                                                                                  
-psql (9.3.4, server 9.3.5)
-Type "help" for help.
-
-postgres=# \password
-Enter new password: 
-Enter it again: 
-postgres=# \q
-

Connect to the service

-
$ sudo sudo -u postgres psql                                                                                  
-

Create a PostgreSQL database

-

Make sure you have logged into the PostgreSQL terminal and then you can just run:

-
$ sudo sudo -u postgres psql                                                                                  
-postgres=# create database "groceries";
-

List all databases

-
$ sudo sudo -u postgres psql                                                                                  
-postgres=# \list
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_redis.html b/out/setting_up_redis.html deleted file mode 100644 index f97ca6d..0000000 --- a/out/setting_up_redis.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - Redis | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Redis

-

Running

-

Cloud9 workspaces come with redis pre-installed.

-

Start the server:

-
sudo service redis-server start
-

Connect with the client:

-
./redis-cli
-

Drivers

-

See http://redis.io/clients for drivers.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setting_up_sqlite3.html b/out/setting_up_sqlite3.html deleted file mode 100644 index 60c792c..0000000 --- a/out/setting_up_sqlite3.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - SQLite | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

SQLite

-

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

-

Note:

SQLite supports full text search and ACID transactions (atomic, consistent, isolated, and durable) -With its simplicity and zero-configuration, SQLite is a popular choice for new applications. - -
-

Getting started

-

You can open the terminal and create a database in a file db_test.db as follows:

-

Screenshot of creating a simple sqlite db

-

Try yourself

-
$ sqlite3 db_test.db
-SQLite version 3.6.20
-Enter ".help" for instructions
-Enter SQL statements terminated with a ";"
-sqlite> create table tbl1(one varchar(10), two smallint);
-sqlite> insert into tbl1 values('hello!',10);
-sqlite> insert into tbl1 values('goodbye', 20);
-sqlite> select * from tbl1;
-hello!|10
-goodbye|20
-sqlite> CREATE TABLE tbl2 (
-   ...>   f1 varchar(30) primary key,
-   ...>   f2 text,
-   ...>   f3 real
-   ...> );
-sqlite> .exit
-

To get to know sqlite commands, use the command: .help.

-

To exit sqlite, use the command: .exit.

-

Drivers

-

SQLite has drivers for all supported runtimes.

-

Following are the most commonly used drivers:

-

Node.JS apps

-

node-sqlite

-

Rails apps

-

In your Gemfile, include the line:

-
gem 'sqlite3'
-

and in configs/database.yml, make sure you use:

-
adapter: sqlite3
-database: db/development.db
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/setup_a_database.html b/out/setup_a_database.html deleted file mode 100644 index a6fb8c3..0000000 --- a/out/setup_a_database.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - Set up a database | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Set up a database

-

MySQL

-

From the Terminal, run the following command:

-
$ mysql-ctl install
-

The output will be:

-
MySQL 5.5 database added.  Please make note of these credentials:
-
-Root User: username
-Database Name: c9
-

Now you can connect to the database using the ip 127.0.0.1 and the default port 3306. -You can also test it using our tool from the Terminal:

-
$ mysql-ctl cli
-Welcome to the MySQL monitor.  Commands end with ; or \g.
-Your MySQL connection id is 24
-Server version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu)
-
-Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-
-Oracle is a registered trademark of Oracle Corporation and/or its
-affiliates. Other names may be trademarks of their respective
-owners.
-
-Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
-mysql>  show databases;
-+--------------------+
-| Database           |
-+--------------------+
-| information_schema |
-| c9                 |
-| mysql              |
-| performance_schema |
-+--------------------+
-4 rows in set (0.15 sec)
-

MongoDB

-

From the Terminal, run the following command:

-
$ mongod --bind_ip=$IP --nojournal
-

The output will include:

-
...
-waiting for connections on port 27017
-

Now you can open the mongo shell in a new Terminal, running following command:

-
$ mongo
-

To stop the MongoDB instance press Control+C in the Terminal where mongod is running. -Now have a look at the currently used database:

-
$ mongo
-mongo> db
-test
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/share_a_workspace.html b/out/share_a_workspace.html deleted file mode 100644 index 3e555a9..0000000 --- a/out/share_a_workspace.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - Share a workspace | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Share a workspace

-

As you develop your application, often you just want to quickly demo your work-in-progress to a colleague, customer, or friend. -Or you want to pull in a fellow dev to debug an issue, or to pair program.

-

Cloud9 enables you to do just these things, easily: share your entire development environment, the running application, or just a preview of your running application. -Here we describe how to access these options, and how to use each.

-

Share dialog

-

The best place to start sharing is from the dedicated "Share" dialog. -Access it via the "Share" button on the right top of the IDE, or via the menu in Window > Share...

-

Share buttons

-

Here's what you see when you pull up the Share dialog:

-

Share Dialog

-

Links to share

-
    -
  • Editor: see section "Share your development environment"
  • -
  • Application: see section "Share your application"
  • -
  • -
-

If you enable the "Public" checkbox for an option, it will make the URL accessible for anyone with the URL. -For public workspaces all these URLs are public by default, but for private workspaces you have to enable them manually.

-

Who has access

-

This section refers to people you have specifically granted access to your entire development environment. -(R) gives Read access only to that person: the ability to open and view files, and to run your code. -(RW) or "Read/Write" also gives that person the ability to write to files.

-

Invite people

-

This section enables you to invite people to your workspace and immediately set if they have just "Read" or "Read+Write" rights. -You can invite people by their email address or Cloud9 username. -You can also choose whether or not send an automatic email to that person that they've been invited to your workspace.

-

Share your development environment

-

Cloud9's Collaboration features allow you to share your entire development environment so you can work on code together, much like working on a document in Google Docs. -You'll actually be able to see each other's cursor as you type, run your app, share the Terminal(s), and talk in the group chat. -See the screenshot below for what this looks like:

-

Collaboration Features

-

In order to share your entire development environment, do one of the following:

-
    -
  1. Make the URL publicly available to everyone: check the "Public" checkbox for the "Editor" in the "Links to Share" section.
  2. -
  3. Choose to share only with specific people: invite them from the "Invite people" section.
  4. -
  5. Grant/revoke access rights in the "Who has access" section.
  6. -
-

If someone asks for either Read or Read+Write access to your workspace, you can accept or deny them from the Collaboration panel on the right.

-

Note:

alternatively you can just share the URL to your workspace from the browser's URL bar and accept members as they request access to your workspace - -
-

Share your application

-

If you Run your application the result can be shared by copying the URL from the dialog. -This URL can only be viewed if it's made Public by checking the "Public" checkbox next to the "Application" in the "Links to share" section.

-

People who have full read access to your workspace (as defined in the "Who has access") can view this URL whether it's public or not.

-

Note:

alternatively you can just share the URL to your running app from the Preview panels' URL bar - -
-

Share a Preview

-

If you Preview a file in your application, it can be shared by copying the URL from the dialog. -This URL can only be viewed if it's made Public by checking the "Public" checkbox next to the "Preview" in the "Links to share" section.

-

People who have full read access to your workspace (as defined in the "Who has access") can view this URL whether it's public or not.

-

Note:

alternatively you can just share the URL to your Preview from the Preview panels' URL bar - -
-

Tip:

If you can't find how to preview your running app, try to use port 8080 in the URL.
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/ssh_workspaces.html b/out/ssh_workspaces.html deleted file mode 100644 index 98a71ba..0000000 --- a/out/ssh_workspaces.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - SSH Workspaces | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

SSH Workspaces

-

To connect Cloud9 to a server via SSH, we first need to install a few dependencies on your system. -This is done by an open-source installer which you can find here.

-

Usually the installation should succeed without any issues, but on some systems you will need to install a few dependencies manually. See below for common dependency issues you might run into.

-

Installing Python 2.7 on CentOS

-
curl -O https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
-tar xf Python-2.7.6.tar.xz
-cd Python-2.7.6
-./configure --prefix=/usr/local
-make && make altinstall
-

Common errors

-

no configure: error: "curses not found"

-

To get around this issue make sure glibc-static is installed on the machine.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/status_bar.html b/out/status_bar.html deleted file mode 100644 index 27dc604..0000000 --- a/out/status_bar.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - Status Bar | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Status Bar

-

Note:

this feature is deprecated - -
-

The status bar is designed to provide you with all sorts of information about your code--and additional functionality--without getting in the way of the IDE. It's quite tiny, and quite powerful, like a weight-lifting squirrel.

-

You can find the status bar in the lower-right corner of the editor: The status bar in its natural, shortened state. Keep in mind that the status bar is transparent, so it's able to camoflauge well with light or dark themes.

-

There's three pieces of crucial information available at all times: your current row, your current column, and, if you're highlighting characters, the status bar displays the number of bytes currently selected. If you're using Vim Mode, the status bar also tells you if you're in INSERT mode.

-

If you click on the status bar, it expands into a menu that provides a smaller set of the full IDE preferences. These options only deal with the IDE editor:

-
- - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Preference NameDescription
Show InvisiblesShows invisibles characters in the editor, like tabs and line breaks
Wraps LinesWraps lines according to the line margin defined, or your browser's window. Otherwise, lines run off the current viewport.
Code FoldingWhen enabled, allows you to show or hide "blocks" of code
Full Line SelectionWhen highlighting lines, this option will highlight all ending whitespace, until the end of the editor window
Highlight Active LinePresents a darker shade in the code editor to indicate which line you're currently on
Show Indent GuidesShows the indent guides in the editor, letting you see your code's nestings
Show GutterShows the gutter in the editor, which indicates line numbers, warnings, and errors
Highlight Selected WordIf you highlight a word, this highlights all matching words in the editor
Auto-pair Quotes, Brackets, etc.When enabled, typing ", (, or [ will actually make two characters appear. In addition, whenever you highlight a word and type one of these characters, it is surrounded by that character (e.g. words becomes "words")
Auto-hide Horizontal Scrollbarhen this is enabled, this will hide the horizontal scroll bar in the editor. Note that this has no effect in Mac OS X 10.7 (Lion) and above, since all scrollbars, by default, auto-hide.
Font SizeChanges the font size of the code in the editor
Show Print MarginShows (and defines) the number of characters possible in line, before it wraps
Soft TabsIndicates how many spaces a single tab represents
Mouse Scroll SpeedDefines the speed of the mouse scrolls
-
-
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/supported_languages.html b/out/supported_languages.html deleted file mode 100644 index 3453f8d..0000000 --- a/out/supported_languages.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - Supported Languages | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Supported Languages

-

Cloud9 IDE has varying levels of support for different programming languages. -Usually you will at least have Syntax Highlighting in the editor and the ability -to run apps from the Terminal.

-

Syntax Highlighting

-

Cloud9 IDE develops and builds on Ace, an -editor for writing code online. Cloud9's Ace editor currently supports -highlighting for about 100 programming languages, and any changes made to Ace are -reflected back into Cloud9 IDE.

-

The list of supported languages is growing, and you can get the full list from -the View > Syntax menu. Feel free to create an issue in the Ace repository -for new requests, or add your own syntax highlighting mode.

-

See Syntax Highlighting & Themes for more -info.

- - - - - - - - - - - - - -

Running apps

-

The Run panel currently supports running the following by default:

-
    -
  • Apache httpd (PHP, HTML)
  • -
  • Node
  • -
  • Python
  • -
  • Ruby
  • -
  • Ruby on Rails
  • -
  • Go
  • -
  • CoffeeScript
  • -
  • Julia
  • -
  • Mocha
  • -
  • Shell script
  • -
-

If you'd like to run any other language, simply create a new "Runner".

-

You can also do so from the Terminal. -Each workspace is an Ubuntu VM with the standard tools like bash, make, -gcc, vim, java SDK or perl pre-installed.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/syntax_highlighting_themes.html b/out/syntax_highlighting_themes.html deleted file mode 100644 index 560876c..0000000 --- a/out/syntax_highlighting_themes.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - Syntax Higlighting and Themes | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Syntax Higlighting and Themes

-
- -

Cloud9 IDE develops and builds on Ace, an editor for writing code online. Ace supports over two dozen different themes for highlighting your code, and any changes made to Ace are reflected back into Cloud9 IDE.

-

You can change your current theme by going to View > Themes, and selecting from one of the many options. By hovering over the menu items, you'll be able to get a preview of the theme. To activate a theme you like, just click on its name.

-

The IDE contains the following themes:

-
    -
  • Chrome
  • -
  • Clouds
  • -
  • Clouds Midnight
  • -
  • Cobalt
  • -
  • Crimson Editor
  • -
  • Dawn
  • -
  • Eclipse
  • -
  • Idle Fingers
  • -
  • Kr Theme
  • -
  • Merbivore
  • -
  • Merbivore Soft
  • -
  • Mono Industrial
  • -
  • Monokai
  • -
  • Pastel On Dark
  • -
  • Solarized Dark
  • -
  • Solarized Light
  • -
  • TextMate
  • -
  • Tomorrow
  • -
  • Tomorrow Night
  • -
  • Tomorrow Night Blue
  • -
  • Tomorrow Night Bright
  • -
  • Tomorrow Night Eighties
  • -
  • Twilight
  • -
  • Vibrant Ink
  • -
-

By default, files are highlighted based on their file extension. You can change this by going to View > Syntax, and selecting a different context. This forces a single file to use a different highlighter.

-

We support highlighting for at least the following languages, and many more:

-
    -
  • CoffeeScript
  • -
  • ColdFusion
  • -
  • C#
  • -
  • CSS
  • -
  • Go
  • -
  • Groovy
  • -
  • haXe
  • -
  • HTML
  • -
  • C/C++
  • -
  • Clojure
  • -
  • Java
  • -
  • JavaScript
  • -
  • JSON
  • -
  • LaTeX
  • -
  • LESS
  • -
  • Liquid
  • -
  • Lua
  • -
  • Markdown
  • -
  • OCaml
  • -
  • Perl
  • -
  • pgSQL
  • -
  • PHP
  • -
  • Powershell
  • -
  • Python
  • -
  • Ruby
  • -
  • OpenSCAD
  • -
  • Scala
  • -
  • SCSS
  • -
  • SH
  • -
  • SQL
  • -
  • SVG
  • -
  • Text
  • -
  • Textile
  • -
  • XML
  • -
  • XQuery
  • -
  • YAML
  • -
-

We are always adding new themes and new languages to support, so check the menu often! Since we use Ace to provide syntax highlighting, feel free to log an issue there for new requests.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/tab_functions.html b/out/tab_functions.html deleted file mode 100644 index d554eda..0000000 --- a/out/tab_functions.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - Tab Functions | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Tab Functions

-

Note:

this article is outdated, a new version will follow soon - -
-

Cloud9 IDE offers advanced tab features to make working with multiple files easy. By right-clicking on any tab, you'll open up the tab context menu:

-

The tab context menu

-

These feature include:

-
    -
  • Reveal in File Tree: opens the current file in the Project Files tree
  • -
  • Close Tab: closes the current tab
  • -
  • Close All Tabs: closes all the opened files
  • -
  • Close All But Current Tab: closes all the opened files, except the current one
  • -
  • Close Tabs to the Right/Left: closes all opened tabs to the right (or left) of the current one
  • -
  • File Revision History...: launches the revisions panel
  • -
-

To the left of the tab menu is another button that offers additional functions for tab navigation:
The tab button menu

-

Tab Sessions

-
- -
- -

Tab sessions is a unique feature that is useful when dealing with projects that involve juggling between many tabs. Essentially, tab sessions lets you save the current state of the tabs. You can close your workspace, switch to a different branch, and instantly reload your previously opened files. You'll no longer need to work with opening and closing multiple files.

-

To use tab sessions, select Save Tab Sessions from the tab button menu. Give it a unique name. When you're ready to restore your tab sessions, just select Load Tab Sessions.

-

If you find that you've got too many tab sessions defined, you can always choose to delete them from the same tab menu.

- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/terminal.html b/out/terminal.html deleted file mode 100644 index e56a39c..0000000 --- a/out/terminal.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - Terminal | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Terminal

-

Note:

this article is outdated, a new version will follow soon - -
-

The terminal provides you with a TTY interface for direct access to the machine that Cloud9 is running on. If you're running your own workspace, this is the server you've SSH'ed into. If you're using the hosted Cloud9 platform, this is the server your code runs on.

-

Warning:

While certain operations, like sudo, are restricted, you can completely destroy your workspace, by doing something like rm -rf. Use your power wisely! - -
-

To create a new terminal, go to View > Terminals > New Terminal, or simply type Alt-T on the keyboard. The terminal has the following capabilities:

-
    -
  • Perform all Unix commands
  • -
  • You can create more than one instance of a terminal (by just creating a new tab)
  • -
  • The terminal allows for path autocompletion by hitting Tab
  • -
-

Screenshot of the terminal

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/terminal_monitor.html b/out/terminal_monitor.html deleted file mode 100644 index 95057a5..0000000 --- a/out/terminal_monitor.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - The Terminal Monitor | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

The Terminal Monitor

-

Many times your app returns errors which are hard to understand and even harder to resolve. This is where the Terminal Monitor comes in. -The following video gives a quick overview of the features and how the Terminal Monitor helps you write better apps.

- - -

If you would like to propose additions or help which Terminal Monitor should provide, please send a message to support@c9.io

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/the_editor.html b/out/the_editor.html deleted file mode 100644 index 28682f5..0000000 --- a/out/the_editor.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - The Editor | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

The Editor

-

The editor is the most important element of any IDE; that's why Cloud9 developed ACE. ACE is a high-performance code editor for the web that supports over 40 different languages, over two dozen themes, and can still work faithfully on large documents (at last count, four million lines of code was the upper limit). It also contains a bevy of features you'd expect from traditional desktop editors. Among these include:

-
    -
  • Undo and Redo support
  • -
  • Cut, Copy, and Paste functionality
  • -
  • Line manipulation, including:
      -
    • Indenting and outdenting
    • -
    • Moving and copying lines up or down
    • -
    • Removing lines from any point
    • -
    • Splitting lines
    • -
    -
  • -
  • Highlighting and commenting blocks of code
  • -
  • Removing words to the right or the left
  • -
  • Transposing letters
  • -
  • Code folding (including the entire file)
  • -
  • Converting cases
  • -
  • Multiple cursors
  • -
  • Autocompletion
  • -
  • Code analysis and refactoring
  • -
  • Search in files with regular expressions
  • -
  • Intelligent selections, including:
      -
    • Selecting to word right or left
    • -
    • Selecting to line end or start
    • -
    • Selecting to document end or start
    • -
    -
  • -
  • Vim and Emacs keybindings
  • -
  • Line wrapping, to a defined column or the width of the browser window
  • -
  • Support for a command line
  • -
  • Support for spaces and real tabs
  • -
- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/uploading_downloading.html b/out/uploading_downloading.html deleted file mode 100644 index 262db8c..0000000 --- a/out/uploading_downloading.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - Uploading and Downloading Workspace Files | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-

Uploading and Downloading Workspace Files

-

Cloud9 IDE allows you to easily add files to your curent workspace at any time. You can drag and drop files from your computer directly into the Project Files pane, and the IDE will add them to your project. Google Chrome users can also drag entire folders into the IDE.

-

If a file transfer is halted for some reason--say, if you lose your internet connection--the upload resumes once the connection returns. As the files transfer, the IDE lets you know the current status of the overall transfer, as well as the status of each file being uploaded:

-

Uploading files

-

You can also get an exact copy of your workspace to save on your computer. By going into File > Download Project, you will be provided with a Zip file containing the entirety of your project.

- -
-
-
-
-
-
-
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/writing_a_go_app.html b/out/writing_a_go_app.html deleted file mode 100644 index be44629..0000000 --- a/out/writing_a_go_app.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - Writing a Go App | Cloud9 User Documentation - - - - - - -
-
-
-
- -
-
-
-
-

Writing a Go App

-

Cloud9 IDE doesn't provide out-of-the-box support for the Go language, but with -a few quick steps you can set up Cloud9 to build and run apps in Go!

-

Create a new workspace

-

First, create a new Custom workspace and call it whatever you want:

-

Create a Custom workspace for Go

-

After your new workspace is created, click the "start editing" button. At the -bottom of your workspace you will see the Terminal. If you prefer to have it -fullscreen, you can launch a terminal tab by pressing Alt-T, or from the menu: -View > Terminals > New Terminal.

-

From the terminal you can install & setup everything on the underlying virtual -environment that every workspace is provided with.

-

Download Go

-

When you first enter your Terminal, you will be in your workspace root folder, -which is a number such as ~/562166. Make a note of this directory name, as -you'll need it later.

-

Let's use your home directory to download the Go distribution; to get there, -simply enter the following in the Terminal:

-
cd ..
-

To download the Go distribution enter the following:

-
wget https://go.googlecode.com/files/go1.1.1.linux-amd64.tar.gz
-

Note:

at the time of writing the latest version was 1.1.1, but you might want to -use a new version if it has become available. - -
-

After the download is complete, extract the archive:

-
tar -xzf go1.1.1.linux-amd64.tar.gz
-

Once the extraction is done, you will notice a new go directory in your home -directory. Feel free to delete the archive file you downloaded.

-

Set up your environment

-

The last step is to configure the environment so it can see the Go distribution -as well as our workspace Go files. To do this, edit your bash configuration -in the Terminal using vim (or emacs, nano, any simple editor will do):

-
vim ~/.bashrc
-

Add the following lines to your .bashrc file:

-
# setup go configuration 
-export GOROOT=$HOME/go 
-export PATH=$PATH:$GOROOT/bin 
-
-# setup workspace t
-export GOPATH=$HOME/562166 
-export PATH=$PATH:$GOPATH/bin
-

Update the GOPATH line above to use the workspace directory you noted earlier -(so don't use $HOME/562166).

-

After you save your .bashrc file, load the new settings:

-
source ~/.bashrc
-

That's it! You should be good to Go (pun intended).

-

Note:

Thanks to Scotty Moon for writing an article about Go on Cloud9 IDE -and letting us use it for documentation!
- -
-
-
-
- -
- - -
-
-
-
- -
- - \ No newline at end of file diff --git a/out/writing_a_php_app.html b/out/writing_a_php_app.html index 6b63bda..d920ae7 100644 --- a/out/writing_a_php_app.html +++ b/out/writing_a_php_app.html @@ -4,8 +4,10 @@ Writing a PHP App | Cloud9 User Documentation - - + + + + @@ -61,7 +63,11 @@ - + +
    1. RVM Support
  • to switch to version 1.8.7
  • to switch to version 1.9.3
  • - - - - - -
    - -
    - -
    - - \ No newline at end of file diff --git a/out/writing_nodejs_hello_world.html b/out/writing_nodejs_hello_world.html deleted file mode 100644 index 7b8c2cb..0000000 --- a/out/writing_nodejs_hello_world.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - Writing and Running a Node.js Program | Cloud9 User Documentation - - - - - - -
    -
    -
    -
    - -
    -
    -
    -
    -

    Writing and Running a Node.js Program

    -

    Cloud9 IDE was built on top of the Node.js platform, and as such, you have full access to the node runtime. Currently, we support running both version v0.6.x and v0.8.x.

    -

    In this section, we'll walk you through the creation of a simple Hello World program. To get started, you'll first need to create a (GitHub or Mercurial) project. If you need a refresher on how to do this, please refer to Creating a New Workspace.

    -

    A Simple Node.js HTTP Server

    -

    Once you're in Cloud9, create a new file called server.js. Type the following code in the file:

    -
    var http = require('http');
    -http.createServer(function (req, res) {
    -    res.writeHead(200, {'Content-Type': 'text/plain'});
    -    res.end('Hello World\n');
    -}).listen(process.env.PORT, process.env.IP);
    -

    This is a Node.js HTTP server. It returns a simple "Hello World" page every time you access the page. In short, you are creating an HTTP server with a callback function that is called for each request.

    -

    In the callback function, you create a response with a status code of 200 (indicating that the request was fulfilled successfully) and the message "Hello World". Finally, you specify which port and IP address the server runs on. When Cloud9 IDE runs servers, you set and retrieve the IP address and port number with the process.env.IP and process.env.PORT variables.

    -

    When you hit the The Run Button button in the menu bar, the console will print out the following message:
    Console run output

    -

    To see your application in action, click on the link created for your project. You should see your "Hello World" application open up in a new browser tab:
    Node.js Hello World in the Browser.

    -

    NVM Support

    -

    We have rudimentary support for nvm, that allows you only to switch between Node.js versions 0.6.21 and 0.8.x.

    -

    To use nvm, open the terminal and type:

    -
    # to switch to version 0.6.21
    -nvm use v0.67 
    -
    -# to switch to the latest 0.8.x
    -nvm use v0.8
    - -
    -
    -
    -
    - -
    - - -
    -
    -
    -
    - -
    - - \ No newline at end of file diff --git a/out/zen_mode.html b/out/zen_mode.html deleted file mode 100644 index 53cf5ad..0000000 --- a/out/zen_mode.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - Activating Zen Mode | Cloud9 User Documentation - - - - - - -
    -
    -
    -
    - -
    -
    -
    -

    Activating Zen Mode

    -

    Note:

    this feature is deprecated - -
    -
    - -
    - -

    Zen mode is a full screen coding environment designed to make you more productive. It essentially removes all the additional UI elements in Cloud9 IDE, and places you in a harmonious relationship with your code.

    -

    To activate zen mode, simply hover over the upper right corner of the code editor, and click the icon that appears. Keep in mind that you'll need to have a file open before you can launch zen mode. You can resize your window by holding and dragging the left or right border.

    -

    To get out of zen mode, hover over the same corner and click the same icon.

    -

    You can also enter and exit zen mode via keyboard shortcuts, command line, or from the menu bar at View > Zen Mode.

    - -
    -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    - - \ No newline at end of file diff --git a/package.json b/package.json index 7fabf16..80be1d8 100755 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "docs.c9.io", "version": "0.1.70", "private": true, + "license": "CC-BY-NC-SA-3.0", "repository": { "type": "git", "url": "git://github.com/c9/docs.c9.io.git" diff --git a/recentFiles.json b/recentFiles.json index 20f4440..29f5ebf 100644 --- a/recentFiles.json +++ b/recentFiles.json @@ -1 +1 @@ -[{"filename":"faq_general","mtime":1416998245000,"pageTitle":"FAQ: General"},{"filename":"faq_ssh","mtime":1416998221000,"pageTitle":"FAQ: SSH workspaces"},{"filename":"frameworks_drupal","mtime":1416998221000,"pageTitle":"Framework: Drupal"},{"filename":"frameworks_express","mtime":1416998221000,"pageTitle":"Framework: Express"},{"filename":"frameworks_jekyll","mtime":1416998221000,"pageTitle":"Framework: Jekyll"}] \ No newline at end of file +[{"filename":"running_python_cgi","mtime":1424257208000,"pageTitle":"Running a Python CGI server"},{"filename":"ide_preferences","mtime":1422860320000,"pageTitle":"IDE Preferences"},{"filename":"faq_python","mtime":1422860320000,"pageTitle":"FAQ: Python"},{"filename":"faq_ssh","mtime":1422860320000,"pageTitle":"FAQ: SSH workspaces"},{"filename":"faq_php","mtime":1422860320000,"pageTitle":"FAQ: PHP"}] \ No newline at end of file diff --git a/resources/images/apacheRunConfiguration.png b/resources/images/apacheRunConfiguration.png new file mode 100644 index 0000000..cd2ac28 Binary files /dev/null and b/resources/images/apacheRunConfiguration.png differ diff --git a/resources/images/newRunConfiguration-new.png b/resources/images/newRunConfiguration-new.png new file mode 100644 index 0000000..897ac7a Binary files /dev/null and b/resources/images/newRunConfiguration-new.png differ diff --git a/resources/images/saveRunConfiguration.png b/resources/images/saveRunConfiguration.png new file mode 100644 index 0000000..e3f7195 Binary files /dev/null and b/resources/images/saveRunConfiguration.png differ diff --git a/src/deploying/deploying_code.md b/src/deploying/deploying_code.md index 248dceb..cd64385 100755 --- a/src/deploying/deploying_code.md +++ b/src/deploying/deploying_code.md @@ -1,30 +1,22 @@ # Deploying Your Code -Cloud9 IDE offers many different ways to get your code from your editor to your -production server. To deploy your code, click on the **Deploy** button in the -Project Bar: +Cloud9 IDE makes it easy to deploy to a wide variety of hosting providers +through their native command line tools. -![The Deploy button in the Project Bar](./resources/images/deployButton.png)<232, 109> -We offer tight integration with the following environments: - -* [Heroku](deploying_to_heroku.html) -* [Windows Azure Sites](deploying_to_windows_azure_sites.html) - -Following these links will provide you with more information on code deployment. -You can deploy your code to as many services and servers as you like. Keep in -mind that you'll already need an account at those hosting providers before you -can deploy your app to them! - -If you're comfortable with the command line, you can also deploy to several more -environments, such as: +We have compiled instructions of how to use the following services: +* [Heroku](./deploying_via_cli.html#heroku) +* [Windows Azure Cloud Services](./deploying_via_cli.html#windows-azure-web-sites) * [Windows Azure Cloud Services](./deploying_via_cli.html#windows-azure-cloud-services) * [Google App Engine](./deploying_via_cli.html#google-app-engine) * [CloudFoundry](./deploying_via_cli.html#cloudfoundry) * [NodeJitsu](./deploying_via_cli.html#nodejitsu) * [Modulus](./deploying_via_cli.html#modulus) +Keep in mind that you'll already need an account at those hosting providers before you +can deploy your app to them! + Warning: Before you attempt to deploy your application, make sure that you have committed all your changes to version control. Cloud9 deploys for you whatever was last committed to version control. \ No newline at end of file diff --git a/src/deploying/deploying_to_heroku.md b/src/deploying/deploying_to_heroku.md deleted file mode 100755 index 1859a9b..0000000 --- a/src/deploying/deploying_to_heroku.md +++ /dev/null @@ -1,36 +0,0 @@ -# Deploying to Heroku - -This section will show you how to deploy your applications to Heroku, a cloud-based application platform. The integration with Cloud9 IDE makes your development process even more agile. If you don't have a Heroku account, visit [their website](http://www.heroku.com) to create one for free. - -To get started, create a simple Node.js application. If you don't have one yet, you can [follow our tutorial](writing_nodejs_hello_world.html) on developing one. - -After you click on the **Deploy** button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Heroku as an option. After you have signed into your Heroku account, you can create a new deploy target or choose an existing one from your account: - -![Showing the Deploy button](./resources/images/herokuDeploy.png)<369, 407> - -Note: Heroku only allows you to create names for your apps that contain letters and dashes. - -Next, press **Deploy** to continue the process; the following window might appear: - -![Dialog requesting a package JSON file](./resources/images/missingPackageJSON.png)<522, 178> - -Heroku Node.js apps [are required to have a package.json file](http://devcenter.heroku.com/articles/nodejs-versions), much like with NPM. Cloud9 can generate a _package.json_ file for you, containing metadata to share Heroku. The following lines represent what that file might looks like: - - { - "name": "cloud9-heroku-example", - "version": "0.0.1" - } - -After you have a _package.json_ file, you might see this dialog: - -![Dialog requesting a Procfile](./resources/images/missingProcFile.png)<519, 198> - -[Sometimes, a Heroku app also requires a Procfile](http://devcenter.heroku.com/articles/node-js#declare_process_types_with_foremanprocfile). The Procfile is needed to start the application in Heroku. You can just create a new file, add the line below, and save it as 'Procfile'. Don't add any file extensions. - - web: node web.js - -Try the deploy button again. The console will directly output the following when the deployment is completed: - -![Console output for Heroku](./resources/images/herokuConsoleOutput.png)<656, 374> - -And just like that, you've deployed your project to Heroku. \ No newline at end of file diff --git a/src/deploying/deploying_to_windows_azure_sites.md b/src/deploying/deploying_to_windows_azure_sites.md deleted file mode 100755 index 8b86aef..0000000 --- a/src/deploying/deploying_to_windows_azure_sites.md +++ /dev/null @@ -1,32 +0,0 @@ -# Deploying to Windows Azure Sites - -This article will show you how to deploy your applications to Windows Azure. If you don't have an account yet, the Windows Azure process will help you create one. Keep in mind that Windows Azure is not free, though it does come with a free trial. Windows Azure projects can be deployed from any operating system. - -To get started, create a simple Node.js application. If you don't have one yet, you can [follow our tutorial](writing_nodejs_hello_world.html) on developing one. - -After you click on the **Deploy** button in the Project Bar, click the plus sign next to Deploy to add another deploy target. Choose Windows Azure as an option. You'll be prompted with this dialog: -![Windows Azure asking for publisher settings](./resources/images/windowsAzureDialog.png)<348, 403> - -You must click on the **Download Windows Azure Settings** button before you can continue. If you don't have a Windows Azure account, here is where you can create one. If you _do_ have an account, your browser will automatically download the required file. - -When that's finished, simply select the downloaded file from your computer, and upload it to Cloud9. You'll only have to do this process once. If you ever need to upload a new certificate, be sure to click **Clear cert** in the lower-right corner of this dialog. - -After the file has uploaded, click on **Create new** to create a new hosted service. A hosted service is the container in which your application is hosted when it is deployed to Windows Azure. For more information, see [Overview of Creating a Hosted Service for Windows Azure](http://msdn.microsoft.com/en-us/library/windowsazure/gg432976.aspx). - -You can set a few configuration options such as the number of instances to use, its host OS, and where the data center is located. Selecting "Enable RDP" and providing a username and password enables remote desktop for your deployment. - -Your new Windows Azure server will appear in the Deploy list: -![Windows Azure information](./resources/images/windowsAzureInfo.png)<234, 219> - -Go ahead and click on **DEPLOY**. If this is the first time you're trying to deploy this project to Windows Azure, you'll receive three prompts: - -1. A dialog will inform you of a missing web.config file. If you click **Yes**, Cloud9 will create a file called _Web.cloud.config_ in your project. This file contains [configuration information](http://en.wikipedia.org/wiki/Web.config) about your app. - -2. You'll be told about a missing csdef file. If you click **Yes**, Cloud9 will create a file called _ServiceDefinition.csdef_ in your project. ServiceDefinition.csdef is a Windows Azure-specific files necessary for publishing your application For more information, see [Overview of Creating a Hosted Service for Windows Azure](http://msdn.microsoft.com/en-us/library/windowsazure/gg432976.aspx). - -3. You'll be asked to select the instance size for this application. For this tutorial, just select Small, and then click **Create**. For more details about Windows Azure VM sizes, see [How to Configure Virtual Machine Sizes](http://msdn.microsoft.com/en-us/library/windowsazure/ee814754.aspx). - -Your app will now deploy to a Windows Azure server! You can follow its progress in the Deploy panel, or by watching the messages in the console: -![Windows Azure staging messages](./resources/images/windowsAzureStagingOutput.png)<825, 199> - -For more information on configuring your app on the Windows Azure website, see [Deploying a Windows Azure App from Cloud9](http://www.windowsazure.com/en-us/develop/nodejs/tutorials/deploying-with-cloud9/). \ No newline at end of file diff --git a/src/deploying/deploying_via_cli.md b/src/deploying/deploying_via_cli.md index 1a4a1cb..74ef5ac 100755 --- a/src/deploying/deploying_via_cli.md +++ b/src/deploying/deploying_via_cli.md @@ -19,8 +19,6 @@ If deploying to Heroku, you should probably be using a local instance of Postgre ## Windows Azure Web Sites -### Free and Premium Plans - In [the Console](./console.html) or [a Terminal](./terminal.html), type the following: @@ -31,23 +29,6 @@ npm install azure Now, you can use the `azure` command from the Console/Terminal. For more information, read [the official `azure` documentation](https://github.com/WindowsAzure/azure-sdk-for-node). -### Premium Plans - -To deploy to Azure sites from the command line, open the Terminal and type: - -```bash -cd ~/lib/azure-sites -npm install -``` - -Then, add the bin to your workspace's path: - -``` -PATH=$PATH:$HOME/lib/azure-sites/bin -``` - -Now, you can use the `azure` command in the terminal. - ## Windows Azure Cloud Services For free and premium plans, follow the instructions on the @@ -100,17 +81,18 @@ git push master ## CloudFoundry To deploy to CloudFoundry from the command line in [the Console](./console.html) -or [a Terminal](./terminal.html), type: +or [a Terminal](./terminal.html), you need to install the command line tools: ``` cd ~ -wget https://github.com/cloudfoundry/vmc/zipball/master -mv master cloudfoundry -unzip cloudfoundry -cd cloudfoundry-vmc-nnnn -bundle +wget -O cf.tgz 'https://cli.run.pivotal.io/stable?release=linux64-binary&source=github' +tar xvzf cf.tgz ``` +You can now run `cf` from the Console and the Terminal. For more information, see +[the official `CloudFoundry` documentation](https://github.com/cloudfoundry/cli). + + ## NodeJitsu ### Free and Premium Plans diff --git a/src/faq/faq_general.md b/src/faq/faq_general.md index 2511b32..864e59e 100644 --- a/src/faq/faq_general.md +++ b/src/faq/faq_general.md @@ -1,19 +1,19 @@ # FAQ: General ### Can I use FTP workspaces on Cloud9? -Yes, Cloud9 supports FTP workspaces that allow you to edit your files directly on your FTP server. +Yes, Cloud9 supports FTP workspaces that allow you to edit your files directly on your FTP server. Currently FTP workspaces still open in the old version of Cloud9, but soon we'll also support FTP workspaces with the new version of Cloud9. One thing that was removed for reliability reasons in the new version of Cloud9, is the ability to deploy over FTP from a regular workspace. We're bringing back those features in a new format and with much higher reliability in the coming months. -### How do I deploy to Heroku/Openshift/Azure/...? +### How do I deploy to Heroku/Openshift/Azure/...? See [Deploying via CLI](./deploying_via_cli.html). -### Can I connect to SMTP servers (port 25)? +### Can I connect to SMTP servers (port 25)? No, this is not supported by our hosting platform. It does currently allow access to the GMail servers though, so you can use that service during development. -### My workspace says it's out of quota. how do I fix it? +### My workspace says it's out of quota. how do I fix it? You can inspect your current quota usage with the df command in the Terminal: $ df @@ -30,10 +30,10 @@ Alternatively, try `du-c9` for seeing all files you added to your workspace and You can sign into Cloud9 with your github or bitbucket account and set that up to use two-factor authentication. We don't currently provide an option to directly setup your Cloud9 account for two-factor authentication. -### I can't preview my running app. +### I can't preview my running app. Try using port 8080 instead, which often solves this case. -### EADDRINUSE: My app complains that the address/port is in use +### EADDRINUSE: My app complains that the address/port is in use Applications won't start if another application is already listening to the same port. In order to fix it you first need to find out which process that is: $ netstat -nlp | grep $PORT @@ -59,8 +59,8 @@ ensures maximum portability. To open these files, you can use something like ## How can I share a single directory of a private workspace -Sometime you might want others to open a file or directory in the browser -without opening up the whole workspace. This can be done by starting a small +Sometime you might want others to open a file or directory in the browser +without opening up the whole workspace. This can be done by starting a small http server in that directory and make sure that the running application is public. To make the running application public you have to click the "sharing" button at @@ -70,3 +70,7 @@ To run the server open a terminal and do $ cd /dir/i/want/to/share $ python3 -m http.server 8080 + +## How do I SSH into my workspace? + +At the moment, users cannot SSH into their Cloud9 workspaces. You may setup an SSH workspace which will access the files on another SSH server but you cannot SSH into your workspace from another machine. diff --git a/src/faq/faq_ssh.md b/src/faq/faq_ssh.md index 369b601..2a12fa4 100644 --- a/src/faq/faq_ssh.md +++ b/src/faq/faq_ssh.md @@ -5,10 +5,7 @@ We recently discovered our web host is blocking connections to some Digital Ocean IP addresses because they suspect they are being used by Iranian users. They are legally forced to block them. -Digital Ocean maintains a whitelist of droplet IP addresses which should not be blocked and our web host follows this list. - -Please raise a support ticket with Digital Ocean mentioning that you would like to have your droplet IP added to the whitelist. After this is complete you will be able to create your SSH workspace within 24 - 48 hours. - +This issue is the result of an error on Google's GeoDNS and they should be contacted about this if it persists. ### I'm getting an error on the SSH install script: "ncurses not found" Try executing the following command: diff --git a/src/features/java_runner.md b/src/features/java_runner.md new file mode 100644 index 0000000..6dfb2c6 --- /dev/null +++ b/src/features/java_runner.md @@ -0,0 +1,53 @@ +# Java Runner + +While there are currently no Java builders or runners out of the box, the process of making your own is very quick. + +##Creating a Java builder + +In the menu, go to Run > Build System > New Build System + +You may copy and paste the following code for your Java builder: + +```bash +{ + "cmd": [ + "sh", + "-c", + "mkdir -p $OUT_DIR; find $SRC_DIR -name \"*.java\" -print | xargs javac -sourcepath $SRC_DIR -d \"$OUT_DIR\"; echo '\\033[01;34mDone!\\033[00m'" + ], + "info": "\\033[01;34mBuilding\\033[00m \\033[01;31m$project_name\\033[00m", + "env": {"OUT_DIR": "$project_path\\.bin", "CLASSPATH" : "$OUT_DIR:$CLASSPATH", "SRC_DIR": "src"}, + "selector": "source.java", + "working_dir": "$project_path" +} +``` + +This code builds .java files from the src/ directory. If you are using a different directory to store your .java files, change the `SRC_DIR` to match that directory. + +Similarly, the output directory is set to the .bin/ directory in your workspace. If you'd like to change that, change the `OUT_DIR` (be sure to apply that same change in your custom runner file). + +To build with your new builder, go to your Java file then click Run > Build System > My Builder. The .class files are now in your chosen output directory. + +Note: +"My Builder" is the default name for a new builder. You may change the filename of your builder, just be sure to select this new builder. The same will be true for your runner. + +##Creating a Java runner + +In the menu, go to Run > Run With > New Runner + +You may copy and paste the following code for your Java runner: + +```bash +{ + "cmd": [ + "sh", + "-c", + "echo $file | sed -r 's/.*\\/src\\///g' | sed -r 's/\\.java//g' | sed -r 's/\\//\\./g' | xargs java" + ], + "info": "\\033[01;34mRunning\\033[00m \\033[01;31m$file_name\\033[00m\n", + "env": {"OUT_DIR": "$project_path\\.bin", "CLASSPATH" : "$OUT_DIR:$CLASSPATH"}, + "selector": "source.java", + "working_dir": "$project_path" +} +``` +To run your .class files with this new runner, go to your Java file then click Run > Run With > My Runner. diff --git a/src/features/syntax_highlighting_themes.md b/src/features/syntax_highlighting_themes.md index 717cc67..fad9571 100644 --- a/src/features/syntax_highlighting_themes.md +++ b/src/features/syntax_highlighting_themes.md @@ -44,6 +44,7 @@ We support highlighting for at least the following languages, and many more: * ColdFusion * C# * CSS +* Dart * Go * Groovy * haXe @@ -78,4 +79,4 @@ We support highlighting for at least the following languages, and many more: * YAML -We are always adding new themes and new languages to support, so check the menu often! Since we use Ace to provide syntax highlighting, [feel free to log an issue there](https://github.com/ajaxorg/ace/issues?labels=mode-request&page=1&state=open) for new requests. \ No newline at end of file +We are always adding new themes and new languages to support, so check the menu often! Since we use Ace to provide syntax highlighting, [feel free to log an issue there](https://github.com/ajaxorg/ace/issues?labels=mode-request&page=1&state=open) for new requests. diff --git a/src/frameworks/frameworks_jekyll.md b/src/frameworks/frameworks_jekyll.md index 6fc2536..5c1c480 100644 --- a/src/frameworks/frameworks_jekyll.md +++ b/src/frameworks/frameworks_jekyll.md @@ -5,6 +5,6 @@ Jekyll is a great static site generator, also used by github pages. You simply n $ gem install jekyll $ jekyll new my-awesome-site $ cd my-awesome-site - $ jekyll serve --port $PORT + $ jekyll serve --host $IP --port $PORT --baseurl '' - \ No newline at end of file + diff --git a/src/frameworks/frameworks_wordpress.md b/src/frameworks/frameworks_wordpress.md new file mode 100644 index 0000000..3b862bc --- /dev/null +++ b/src/frameworks/frameworks_wordpress.md @@ -0,0 +1,18 @@ +# Getting Started with WordPress + +WordPress was made to be simple and WordPress on Cloud9 is no different. Here are some key docs to getting started with WordPress. +### Run & preview your WordPress site + +- [Running WordPress sites](https://docs.c9.io/running_WordPress_on_cloud9.html) +- [Preview your site](https://docs.c9.io/run_an_application.html#pre-view-your-application) + +### Build & access your database + +- [PHP documentation](https://docs.c9.io/writing_a_php_app.html) +- [Using MySQL](https://docs.c9.io/setting_up_mysql.html) +- [phpMyAdmin](https://docs.c9.io/setting_up_phpmyadmin.html) + +### Deployment + +- [Deploying your site](https://docs.c9.io/deploying_via_cli.html) +- [Mounting FTP](https://c9.io/site/blog/2014/12/ftp-sftp-mounting-beta) \ No newline at end of file diff --git a/src/getting_started/create_a_workspace.md b/src/getting_started/create_a_workspace.md index 991511c..0cc1130 100644 --- a/src/getting_started/create_a_workspace.md +++ b/src/getting_started/create_a_workspace.md @@ -18,7 +18,7 @@ After clicking on **Create a new workspace**, you're taken to the screen below: ![Options for creating a new workspace](./resources/images/createNewWorkspaceOptions.png)<651, 151> First, let's enter a workspace name. -Depending on whether you have a Free of Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with). +Depending on whether you have a Free or Premium account, you can choose to make it either Public (open to anyone with the URL), or Private (only accessible to you and people you share it with). After this, choose the type of workspace you want to create: @@ -39,4 +39,4 @@ Now press **Create**. That's it! You can now see your new workspace in the dashb Now, just click **Start Editing** to get started! -Next up, read how to [run an application](run_an_application.html) and [set up a database](setup_a_database.html). \ No newline at end of file +Next up, read how to [run an application](run_an_application.html) and [set up a database](setup_a_database.html). diff --git a/src/persistence/setting_up_couchdb.md b/src/persistence/setting_up_couchdb.md new file mode 100644 index 0000000..5dedd74 --- /dev/null +++ b/src/persistence/setting_up_couchdb.md @@ -0,0 +1,18 @@ +# CouchDB + +[Apache CouchDB™](http://couchdb.apache.org/) is a database that uses JSON for documents, +JavaScript for MapReduce indexes, and regular HTTP for its API. + +## Running CouchDB on a Cloud9 workspace + +CouchDB is preinstalled in your workspace. To run CouchDB, run the following below. + + $ sudo mkdir -p /var/run/couchdb + $ sudo chown couchdb:couchdb /var/run/couchdb + $ sudo su couchdb -c /usr/bin/couchdb + +## Testing the connection + +To check if the database is running execute this in a new terminal: + + $ curl http://127.0.0.1:5984 \ No newline at end of file diff --git a/src/persistence/setting_up_mongodb.md b/src/persistence/setting_up_mongodb.md index 958827e..3c641e7 100644 --- a/src/persistence/setting_up_mongodb.md +++ b/src/persistence/setting_up_mongodb.md @@ -31,12 +31,34 @@ You can start mongodb by running the `mongod` script on your project root:
    ### MongoDB parameters used: -| Parameter | Description | -| ------------------------------ | ----------------------------------------------------------------------------------------------- | -| `--dbpath=data` | Because it defaults to /var/db which isn't accessible) | -| `--nojournal` | Because mongodb usually pre-allocates 2 GB journal file (which exceeds Cloud9 disk space quota) | -| `--bind_ip=$IP` | Because you can't bind to 0.0.0.0) | -| `--rest` | Runs on default port 28017 | +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Parameter + Description +
    --dbpath=dataBecause it defaults to /var/db which isn't accessible)
    --nojournalBecause mongodb usually pre-allocates 2 GB journal file (which exceeds Cloud9 disk space quota)
    --bind_ip=$IPBecause you can't bind to 0.0.0.0)
    --restRuns on default port 28017
    +
    ## Drivers diff --git a/src/persistence/setting_up_mysql.md b/src/persistence/setting_up_mysql.md index 856ba91..697bcbc 100644 --- a/src/persistence/setting_up_mysql.md +++ b/src/persistence/setting_up_mysql.md @@ -26,7 +26,7 @@ $ mysql-ctl stop $ mysql-ctl cli ``` -You can then connect to the database with following parameters: +After having started (and with that created) the database, you can connect to it using the following parameters:
    @@ -40,7 +40,7 @@ You can then connect to the database with following parameters: - + @@ -50,12 +50,12 @@ You can then connect to the database with following parameters: - + - - + + @@ -80,6 +80,86 @@ You are now in the MySQL environment and can start the import: To verify that everything got imported run: mysql> show tables; + +Some useful CLI commands (please note the semicolon at the end of most of them): +
    +
    `Hostname` `$IP`The same local IP as the application you run on Cloud9The environment variable 'IP' (type in a terminal: echo $IP)
    `Port`
    `User` `$C9_USER`Your Cloud9 user nameYour Cloud9 user name (again an environment variable)
    `Password`-No password since you can only access the DB from within the workspace``No password (empty string); access is restricted to the the workspace
    `Database`
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Command + Description +
    `help``list all mysql commands`
    `show databases;``list the available databases`
    `use c9``select/use database c9`
    `show tables;``list the tables of the current database`
    `exit``close the mysql command line tool`
    `select * from mysql.user;``show all records/columns from system table user`
    +
    + +## Connecting from PHP + +So now you know how to create a database, start the db server, access it via a +command line tool.. It is time for the real deal: accessing it from your code. + +In this example we will connect from PHP: + +1. Create a new file, call it `connect.php` + +2. Copy/paste the following code in there and save the file: +```bash +connect_error) { + die("Connection failed: " . $db->connect_error); + } + echo "Connected successfully (".$db->host_info.")"; +?> +``` + +3. Run the code by a right-click on the file tab 'connect.php', select 'run this file' + +4. The output pane shows 'Starting Apache httpd...' + +5. Click the link that is displayed after that + +6. A preview pane will open, showing 'Connected successfully (0.0.0.0 via TCP/IP)'. + Note: MySQL socket file can be found in ~/lib/mysql/socket/mysql.sock diff --git a/src/persistence/setting_up_phpmyadmin.md b/src/persistence/setting_up_phpmyadmin.md new file mode 100644 index 0000000..7eba1e8 --- /dev/null +++ b/src/persistence/setting_up_phpmyadmin.md @@ -0,0 +1,23 @@ +# PHPMyAdmin + +PHPMyAdmin provides an easy to use web interface to manage your MySQL database/s + +## PHPMyAdmin's most common features +* Import data from CSV and SQL +* Export data to various formats: CSV, SQL, XML, PDF, Word, Excel, LaTeX and others +* Creating PDF graphics of the database layout +* Creating complex queries using Query-by-Example (QBE) +* Searching globally in a database or a subset of it +* Transforming stored data into any format using a set of predefined functions, like displaying BLOB-data as image or download-link +* Live charts to monitor MySQL server activity like connections, processes, CPU/Memory usage, etc. +* [Many more](http://en.wikipedia.org/wiki/PHPMyAdmin)
    + +## Using PHPMyAdmin with Cloud9 +This article explains our first iteration of PHPMyAdmin support in Cloud9. It makes it super easy to install a PHPMyAdmin instance right in your workspace. Each workspace runs it's own Database and copy of PHPMyAdmin. + +```bash +# Install PHPMyAdmin +$ phpmyadmin-ctl install +``` + +After the installation is complete you'll be given a link to access PHPMyAdmin. If you'd like further help using the software please consult the [official PHPMyAdmin docs](http://www.phpmyadmin.net/home_page/docs.php). \ No newline at end of file diff --git a/src/persistence/setting_up_postgresql.md b/src/persistence/setting_up_postgresql.md index eec2583..1ffe936 100644 --- a/src/persistence/setting_up_postgresql.md +++ b/src/persistence/setting_up_postgresql.md @@ -10,27 +10,27 @@ PostgreSQL comes preinstalled on every Cloud9 workspace, yay. ### Set the "postgres" user password - $ sudo sudo -u postgres psql + $ sudo sudo -u postgres psql psql (9.3.4, server 9.3.5) Type "help" for help. - + postgres=# \password - Enter new password: - Enter it again: + Enter new password: + Enter it again: postgres=# \q ## Connect to the service - $ sudo sudo -u postgres psql + $ sudo sudo -u postgres psql ## Create a PostgreSQL database Make sure you have logged into the PostgreSQL terminal and then you can just run: - $ sudo sudo -u postgres psql + $ sudo sudo -u postgres psql postgres=# create database "groceries"; - + ## List all databases - $ sudo sudo -u postgres psql - postgres=# \list \ No newline at end of file + $ sudo sudo -u postgres psql + postgres=# \list diff --git a/src/persistence/setting_up_redis.md b/src/persistence/setting_up_redis.md index 6b3b92a..889c644 100644 --- a/src/persistence/setting_up_redis.md +++ b/src/persistence/setting_up_redis.md @@ -13,9 +13,39 @@ sudo service redis-server start Connect with the client: ```no-highlight -./redis-cli +redis-cli ``` +You can then connect to the database with following parameters: +
    + + + + + + + + + + + + + + + + + + + + + + +
    Option + Value + Comment +
    `Hostname``$IP`The same local IP as the application you run on Cloud9
    `Port``6379`The default Redis port number
    `Password```No password since you can only access the DB from within the workspace
    +
    + ## Drivers See http://redis.io/clients for drivers. \ No newline at end of file diff --git a/src/running_and_debugging/common_errors.md b/src/running_and_debugging/common_errors.md index 2bd98eb..a8a861d 100755 --- a/src/running_and_debugging/common_errors.md +++ b/src/running_and_debugging/common_errors.md @@ -14,7 +14,7 @@ If any relevant process is running you will get a list looking like this: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 699 ubuntu 4u IPv6 83213152 0t0 TCP *:http-alt (LISTEN) -You now can kill that proccess. Make sure you replace PID with the ID of the process. +You now can kill that process. Make sure you replace PID with the ID of the process. // Kill the process kill -9 PID diff --git a/src/running_and_debugging/running_python_cgi.md b/src/running_and_debugging/running_python_cgi.md new file mode 100644 index 0000000..bbe8b3e --- /dev/null +++ b/src/running_and_debugging/running_python_cgi.md @@ -0,0 +1,116 @@ +# Running a Python CGI server + +In order to run a Python CGI server, you can start by creating a new workspace. It doesn't have to be a Python/Django workspace, even a Custom workspace would do. You would need to tell the Apache2 server already installed on the workspace to allow CGI scripts and to make sure it knows where to look for them. + +Lets start by creating a very simple python CGI script: + +1. Create a folder within your workspace, name it `cgi-bin` (the name doesn't matter, although it is customary to use `cgi-bin`). +2. Within the `cgi-bin` folder, create a new file. Lets name it `test.py` for now. +3. Paste in the following: + +```python +#!/usr/bin/env python + +print "Content-type: text/html" +print "" + +print """ + + +Sample CGI Script + + +

    Sample CGI Script

    + + +""" +``` + +Now, once we have a file we want to serve, lets start up the Apache web server. We can do that by creating a new runner. You can create a new runner by clicking on the + icon on the right of the tabs like shown below: + +[![New Run Configuration](./resources/images/newRunConfiguration-new.png)]{: #NewRunConfiguration} + +then select Apache httpd (PHP, HTML) + +[![Select Apache Run Configuration](./resources/images/apacheRunConfiguration.png)]{: #ApacheRunConfiguration} + +You can save this configuration by entering a name to the right of the `Command:` label like shown below. + +[![Save Run Configuration](./resources/images/saveRunConfiguration.png)]{: #SaveRunConfiguration} + + +Click on the Run button and the apache server is ready to go. Click on the link that reads something like: `https://-.c9.io/` and you should see a browser come up with your folder listing. Clicking on the `cgi-bin` link and then the `test.py` link just shows up the text of the python file we wrote. Now that we have the server running, lets enable CGI on it. + +The first thing we want to do is to enable CGI mode. We can do that by typing the following within the Terminal: + +```bash +sudo a2enmod cgi +``` + +Next, we need to tell Apache where our CGI files are present. We can do that by editing the `serve-cgi-bin.conf` file. Do the following: + +```bash +sudo vi /etc/apache2/conf-available/serve-cgi-bin.conf +``` + +The file should read something like this: + +``` + + + Define ENABLE_USR_LIB_CGI_BIN + + + + Define ENABLE_USR_LIB_CGI_BIN + + + + ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ + + AllowOverride None + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch + Require all granted + + + +``` + +We just need to modify the following section from: + +``` + + ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ + + AllowOverride None + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch + Require all granted + + +``` + +to + +``` + + ScriptAlias /cgi-bin/ /home/ubuntu/workspace/cgi-bin/ + + AllowOverride None + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch + AddHandler cgi-script .cgi .py + Require all granted + + +``` + +Save this file and restart Apache. + +Once Apache restarts, navigate to `https://-.c9.io/cgi-bin/test.py` (replacing `` and `` with your workspace name and your username of course) and see what happens? In case you're seeing something like **Internal Server Error** we need to make the files under cgi-bin to be executable. + +You can do that by typing + +```bash +chmod +x -R /home/ubuntu/workspace/cgi-bin +``` + +Restart Apache one last time and you should be able to see **Sample CGI Script**. \ No newline at end of file diff --git a/src/running_and_debugging/running_wordpress_on_cloud9.md b/src/running_and_debugging/running_wordpress_on_cloud9.md index 2d5df26..49ea35f 100755 --- a/src/running_and_debugging/running_wordpress_on_cloud9.md +++ b/src/running_and_debugging/running_wordpress_on_cloud9.md @@ -3,7 +3,7 @@ WordPress is web software you can use to create websites or blogs. You can develop and host WordPress websites entirely on Cloud9 IDE -### Creating a wordpress workspace +### Creating a WordPress workspace Create a WordPress workspace from the WordPress template on your Cloud9 dashboard diff --git a/src/workspaces/picking_a_plan.md b/src/workspaces/picking_a_plan.md new file mode 100644 index 0000000..883b605 --- /dev/null +++ b/src/workspaces/picking_a_plan.md @@ -0,0 +1,60 @@ +# Picking a Plan + +The [Plans and Pricing Page](https://c9.io/web/site/pricing) has the basics for the available plans but here, we'll break down the details of workspaces. + +## Workspace Choices +With Cloud9, you write code, run commands, and build applications in workspaces (virtual machines) hosted on Google Cloud. You're free to resize workspaces at any time so don't fret about their initial sizing. Following are the different types of workspaces and their properties: + +### Micro Workspace +- 512MB RAM +- 1GB Disk space +- 1 CPU +- Private + +### Small Workspace +- 512MB RAM +- 5GB Disk space +- 1 CPU +- Private + +### Medium Workspace +- 1GB RAM +- 10GB Disk space +- 1 CPU +- Private + +### Large Workspace +- 2GB RAM +- 20GB Disk space +- 1 CPU +- Private + +### SSH Workspace +- Resources determined by user +- Private + +### Community Workspaces +- 512MB RAM +- 1GB Disk space +- 1 CPU +- Publicly readable +- Archived after a week of inactivity (restored unchanged when you open it again) + +Given the resources from your plan, you may make as many private workspaces as you'd like. For example, if you're signed up for the large plan with 80gb of storage, you could use that to have 4 different large workspaces, each with 20gb of storage. With those 4 workspaces, you would have no resources left to make further private workspaces although you could still make more community workspaces. + +## Reaching the Limits + +When a workspace reaches its RAM limit, you will be notified and processes may be killed to stay within the limit. + +When the storage limit within a workspace is reached, the terminal will display a message to let you know. Any downloads will be stopped. + +## All plans + +The following features are provided with the free plan and all paid plans. + +- __Unlimited Community Workspaces__ - Each community workspace is readable by anyone, like a public GitHub repository. +- __Team collaboration__ - You can invite coworkers, classmates, and anyone with an email address or Cloud9 account to work with you, real-time, giving read/write privileges to whomever you choose. Collaboration takes place live so you can see one another manipulating code real-time. +- __VMs hosted on Google Cloud__ - Each VM/workspace is allotted resources according to your chosing. Those resources are important because each workspace is running on a VM hosted on Google Cloud. +- __Sudo Shell Access/Terminal__ - Sudo access allows you to install your own programs or languages, giving them nearly the same amount of access they might have on a local machine. +- __SSD Performance__ - VM's are hosted on SSD's to speed up processes and development. +- __Running on Docker__ - Workspaces are powered by Docker Ubuntu containers that give you full freedom over your environment, including sudo rights. \ No newline at end of file diff --git a/src/workspaces/setting_up_bitbucket_workspace.md b/src/workspaces/setting_up_bitbucket_workspace.md index eeee02b..1b48f68 100755 --- a/src/workspaces/setting_up_bitbucket_workspace.md +++ b/src/workspaces/setting_up_bitbucket_workspace.md @@ -1,6 +1,6 @@ # Setting Up a Bitbucket Workspace -Bitbucket is a code-hosting services that offers both git and mercurial support. Projects can be listed as private or public, absolutely free. For more information on Bitbucket, visit . +Bitbucket is a code-hosting services that offers both git and mercurial support. Projects can be listed as private or public, absolutely free. For more information on Bitbucket, visit . We have integrated Bitbucket into the IDE to enable you to easily work on your public and private repositories. The following article explains how you can activate your Bitbucket account in Cloud9 IDE. @@ -40,7 +40,7 @@ There are several ways to manage Bitbucket projects in Cloud9 IDE: {:postCreate} -There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands: +There are a couple of things you should do first, before you can use all of git's power. First, you'll want to add a remote to the project. From the Cloud9 IDE command line, you can execute the following commands: ```bash git remote add [remote name] [remote url] @@ -60,7 +60,7 @@ Finally, create a commit that you can push to your remote: git commit -m 'added new files' ``` -Don't forget to push this commit out to Bitbucket: +Don't forget to push this commit out to Bitbucket: ```bash git push [remote name] master @@ -88,4 +88,7 @@ When you provide Cloud9 IDE with your Bitbucket credentials, it provides a list ![Bitbucket Pending Projects](./resources/images/bitbucketPendingWorkspaces.png)<250, 426> -From this list, clicking on a project and selecting **CLONE TO EDIT** brings the repo into the IDE, just as if you cloned it from a URL. \ No newline at end of file +From this list, clicking on a project and selecting **CLONE TO EDIT** brings the repo into the IDE, just as if you cloned it from a URL. + +Note: +In addition to the previously mentioned methods, you may also create a new workspace and perform a Git clone from the terminal in that new workspace. \ No newline at end of file diff --git a/templates/default/toc.jade b/templates/default/toc.jade index 329334a..23fe325 100644 --- a/templates/default/toc.jade +++ b/templates/default/toc.jade @@ -60,6 +60,9 @@ // a(href='zen_mode.html') Zen Mode li.nav-submenu-item a(href='custom_runners.html') Custom Runners + ul + li.nav-submenu-item + a(href="java_runner.html") Making a Java Runner li.nav-section .nav-section-header a(href='javascript:void(0)') IDE Components @@ -106,6 +109,8 @@ a(href='ftp_workspaces.html') Creating an FTP Workspace li.nav-submenu-item a(href='run_your_own_workspace.html') Running Your Own SSH Workspace + li.nav-submenu-item + a(href='picking_a_plan.html') Picking a Plan li.nav-section .nav-section-header a(href='javascript:void(0)') Running and Debugging Code @@ -130,6 +135,8 @@ ul li.nav-submenu-item a(href="installing_python_packages.html") Installing Python Packages + li.nav-submenu-item + a(href="running_python_cgi.html") Running a Python CGI Server li.nav-submenu-item a(href='writing_a_ruby_app.html') Writing a Ruby App ul @@ -154,8 +161,13 @@ ul li.nav-submenu-item a(href='setting_up_mysql.html') Using MySQL + ul + li.nav-submenu-item + a(href='setting_up_phpmyadmin.html') Using PHPMyAdmin li.nav-submenu-item a(href='setting_up_mongodb.html') Using MongoDB + li.nav-submenu-item + a(href='setting_up_couchdb.html') Using CouchDB li.nav-submenu-item a(href='setting_up_postgresql.html') Using PostgreSQL li.nav-submenu-item @@ -170,10 +182,6 @@ ul // li.nav-submenu-item // a(href='deploying_code.html') Deploying Your Code - // li.nav-submenu-item - // a(href='deploying_to_heroku.html') Deploying to Heroku - // li.nav-submenu-item - // a(href='deploying_to_windows_azure_sites.html') Deploying to Windows Azure Sites li.nav-submenu-item a(href='deploying_via_cli.html') Deploying via the Command Line li.nav-section @@ -204,6 +212,8 @@ a(href='frameworks_meteor.html') Meteor li.nav-submenu-item a(href='frameworks_symfony2.html') Symfony + li.nav-submenu-item + a(href='frameworks_wordpress.html') Wordpress li.nav-section .nav-section-header a(href='javascript:void(0)') FAQ