diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..1e4aec5f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,144 @@ +--- +--- + +# Change log + +## Pre-release 1.1.0 (upcoming) + +- [Web] New support of Angular 2 +- [Mobile] New support of Ionic 2 +- [Web & Mobile] New navigation and address bar in the Preview panel +- [Web & Mobile] Better overall user experience +- [Studio] Open project folder in Terminal +- [Studio] New web and mobile template catalog for project creation +- [Studio] New preferences: auto-shutdown server on solution close and auto-reload modified files +- [Studio] Better support of Retina displays +- [Code Editor] Comments toggling with `CMD-/` and `CTRL-/` +- [Code Editor] Better support of `.ts` `.less`, `.scss`, `.sass` and `.md` files +- [Git] Remote settings edition +- [Git & Deploy] Better overall user experience +- [Add-ons] Improved updatability of Studio components and dependencies mechanism +- [Extensions API] New option for `targets` argument in Extension manifest to handle files based on their extension +- Fix: Wakanda Studio deployment UX issue [#15](https://github.com/Wakanda/wakanda-issues/issues/15) +- Fix: TAB key shows completion list instead of indenting code +- Fix: Prototyper css files not updated automatically +- Fix: Prototyper unreachable Google fonts API + +## 1.0.3 (Feb. 25) + +- Fix: Live reload on Run Page in Windows Studio +- Fix: Model Designer combobox style [#35](https://github.com/Wakanda/wakanda-issues/issues/35) +- Fix: Autocompletion suggestions on multiple DataClasses +- Fix: Code Editor indentation visual hint for spaces +- Fix: Override via API of inherited attributes +- Fix: Console link to nodejs installation page + +## 1.0.2 (Feb. 19) + +- Fix: Loading large projects freezes the studio +- Fix: Directory panel can't be resized on small screens +- Fix: `bower update` fails inside `web` & `mobile` folders +- Fix: RPC modules renaming keeps both old and new paths exposed as RPC +- Fix: Git visual bug [#16](https://github.com/Wakanda/wakanda-issues/issues/16) +- Fix: `Untabify Selection` not working for JS Files +- Fix: Git and Troubleshooting interfaces slow load when offline +- Fix: renaming a folder in the explorer makes it disappear from the list +- Fix: black lines appear inside resized web zones +- Fix: Integrate latest Angular-Wakanda fixes ([1.0.3](https://github.com/Wakanda/angular-wakanda/releases/tag/v1.0.3)) +- Fix: Concurrent Ionic Run or Build sometimes causes file corruption +- Fix: Prototyper's image widget does not render image in runtime +- Fix: Prototyper's RichText widget resize loop +- Fix: Prototyper's Combobox widget debugger statement from [27](https://github.com/Wakanda/wakanda-issues/issues/27) + +--- + +## 1.0.1 (Dec. 17) + +- Fix: Prototyper bug [#19](https://github.com/Wakanda/wakanda-issues/issues/19) +- Project creation with [Angular-Wakanda 1.0.2](http://wakanda.github.io/angular-wakanda) + +--- + +## 1.0.0 (Dec. 7) + +- [Angular-Wakanda 1.0.0 release](http://wakanda.github.io/angular-wakanda) and support in the Studio +- Angular-Wakanda project scaffolding on solution creation + +--- + +## Beta + +### Week 48 (Nov. 4 - Nov. 24) + +- [Mobile] New Preview mobile apps in the studio +- [Mobile] New Run on mobile devices +- [Mobile] New troubleshooting application to setup and check your environment +- [Studio] Better Git support +- [Studio] New Deploy on cloud and git server +- [Studio] New "Getting Started" Start Page +- [Studio] Improvement on file creation: + - New menu item to create CSS files + - HTML files now created empty + - No more magic destination and folder creation, except for Page and Component Prototypes +- [Web] New Run Page with live-reload support +- [Model] Improvement: model files scaffolding for MySQL connector +- [Add-ons] 10 new core Studio components updatable directly from Add-ons + +### Week 45 (Oct. 19 - Nov. 3) + +- [Mobile] New Run on mobile simulators +- [Mobile] New Build mobile apps from the studio +- [Studio] New Project directory structure +- [Studio] Improvement: a single Start / Stop server in the Studio that automatically loads the solution +- [Studio] New Studio panels: + - One new left panel for Home and Solution Explorer + - One new bottom panel for consoles and editors + +### Week 42 (Sept. 28 - Oct. 18) + +- [Extensions] New onToolbarButtonMenuOpen trigger +- [Studio] Code editors themes support + - Menu "Wakanda Studio" > "Preferences" then "Code Editor” tab + - Try one of our 30+ default themes, light and dark + - Or create your own theme +- [Studio] New Preferences panel + - Menu "Wakanda Studio" > "Preferences" + - All the Studio and Editor settings are now in one place + +### Week 39 (Sept 10 - Sept. 27) + +- [Extensions] New onSolutionBeforeClosing trigger +- [Code Editor] Smarter auto-completion on Wakanda Model + - [Try this gist code example](https://gist.github.com/cedricss/e41f60fdcf6ca5c31ea0) + +### Week 36 (August 17 - Sept. 9) + +- [Extensions] New API to open a page with URL parameters +- [Extensions] New API to get selected projects in the studio +- [Code Editor] Find in Files results now highlighted in the web editor +- [Mobile] New console extension to perform startup requirement checks + +### Week 33 (July 27 - August 16) + +- [Code Editor] Smarter auto-completion on JS code + - [Try this gist code example](https://gist.github.com/cedricss/e41f60fdcf6ca5c31ea0) + +### Week 30 (July 6 - July 26) + +- [Code Editor] Quote selected text typing a single character +- [Studio] The new "Find in files” now supports replacement + +### Week 27 (June 15 - July 5) + +- [Code Editor] Better closing blocks behaviours (JS files) + - Customize them via your Studio preferences +- [Code Editor] New Wakanda Web Editor + - Open any .html or .css file + - Try [Emmet abbreviations](http://emmet.io/) + - [Fork this new extension](https://github.com/Wakanda/wakanda-extension-web-editor) and create your own Studio Editor +- [Studio] New "Find in files" + - Menu "Find" > "Find in Files…" + +### Week 24 (May 25 - June 14) + +- [Extensions] New API to develop editor extensions in Wakanda Studio diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..768ffca5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,89 @@ +--- +--- + +# Getting Started website + +## How to contribute? + +### Table of contents + +- [Your first contribution, without leaving your browser](#your-first-contribution) +- [Further contributions](#further-contributions) +- [Pictures submission](#pictures-submission) + +### Your first contribution + +[Sign in](https://github.com/login){:target="_blank"} to your Github account. + +[On the Wakanda Studio repository](https://github.com/Wakanda/wakanda-studio){:target="_blank"}, make sure you are on the [gh-pages](https://github.com/Wakanda/wakanda-studio/tree/gh-pages){:target="_blank"} branch: + +![gh-pages](img/readme-gh-pages.png) + +Open the page you want to contribue to: + +![open-md](img/readme-open-md-file.png) + +Click on the file edition button. It will automatically fork the project in your Github account: + +![fork-edit-file](img/readme-fork-edit-file.png) + +Edit the file content and propose a file change: + +![submit-change](img/readme-propose-file-change.png) + +_**Note**: you can [edit more files](#further-contributions) before submitting a pull request._ + +Create a pull request: + +![propose-file-change](img/readme-create-pr.png) + +Add a short comment to explain the update you propose and confirm. + +Thanks for your first contribution. We'll now review your submission! + +### Further contributions + +Open the Wakand Studio repository now forked on your Github account: `https://github.com/YOUR-USERNAME/wakanda-studio` + +Choose the branch you want to work on. For example, switch to `gh-pages` (we'll create a branch later) or continue on your `patch-x` branch to edit more files: + +![gh-pages](img/readme-gh-pages.png) + +Open the file to edit and start a pull request and check the _create a new branch_ option. +Alternatively, you can check the _commit directly_ option to submit more commits before creating a pull request or to improve an existing one. + +![new-branch-pr](img/readme-new-branch-pr.png) + +### Pictures submission + +You can't submit a picture via the Github web interface. So, let's use the command line: + +Clone your wakanda-studio fork: + + $ git clone https://github.com/YOUR-USERNAME/wakanda-studio.git + $ cd wakanda-studio + +Switch to the `gh-pages` branch: + + $ git checkout origin/gh-pages -t + +Add your image in the `img` folder of wakanda-studio. And commit your update: + + $ git add img/readme-propose-file-change.png + $ git commit -m "Add propose file change screenshot for README" + +Push your local changes on `gh-pages` to a new remote branch. For example, `readme-screenshot-propose`: + + $ git push origin gh-pages:readme-screenshot-propose + +Open the Wakand Studio repository forked on your Github account: `https://github.com/YOUR-USERNAME/wakanda-studio` + +Your new branch is ready for a pull request! Click on _Compare & pull request_: + + ![pushed-branch-pr](img/readme-pushed-branch-pr.png) + +Make sure the _base branch_ is `gh-pages`: + + ![open-pull-request](img/readme-open-pull-request.png) + +Add a short comment to explain the update you propose and confirm. Thank you again! \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..66099f1c --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Wakanda Studio Getting Started + +- [Getting Started](http://wakanda.github.io/wakanda-studio) +- [Documentation](http://doc.wakanda.org/) +- [Wakanda.io](http://www.wakanda.io/) + +Read [CONTRIBUTING.md](CONTRIBUTING.md) if you want to help with the Getting Started website. diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..67cb9334 --- /dev/null +++ b/_config.yml @@ -0,0 +1,23 @@ +full_rebuild: true +name: Wakanda Studio +author: Wakanda SAS +url: http://wakanda.io +version: 0.1 +repository: https://github.com/Wakanda/wakanda-studio +branch: gh-pages +encoding: utf-8 +themes: + general: wakanda + code: github +version: 1.3 +encoding: utf-8 +defaults: + - + values: + layout: "index" +exclude: [ +.git, +.gitignore, +README.md, +LICENSE +] diff --git a/_data/toc.yml b/_data/toc.yml new file mode 100644 index 00000000..7bbc54ba --- /dev/null +++ b/_data/toc.yml @@ -0,0 +1,87 @@ +entries: + +- title: Getting Started + pages: + + - title: 0 - Installation + url: installation.html + + - title: 1 - Design your data model + url: design-data-model.html + + - title: 2 - Create a web app + url: create-web-app.html + + - title: 3 - Create a mobile app + url: create-mobile-app.html + +- title: Code management + pages: + + - title: Version control your code + url: version-control.html + + - title: Deploy your app + url: deploy-your-app.html + +- title: Build management + pages: + + - title: Build process introduction + url: build-process-introduction.html + + - title: SASS precompilation + url: sass-precompilation.html + +- title: Other resources + pages: + + - title: Wakanda Studio Change log + url: CHANGELOG.html + + - title: Wakanda Documentation + url: http://doc.wakanda.org/ + target: _blank + + - title: Angular-Wakanda connector + url: http://wakanda.github.io/angular-wakanda + target: _blank + + - title: Frequently Asked Questions + url: http://www.wakanda.io/frequently-asked-questions + target: _blank + + - title: Issue submission + url: https://github.com/Wakanda/wakanda-issues/issues + target: _blank + + - title: How to contribute to this page + url: CONTRIBUTING.html + +- title:
+ class: inline + pages: + + - title: + url: https://github.com/wakanda + target: _blank + + - title: + url: https://twitter.com/WakandaSoft + target: _blank + + - title: + url: https://www.facebook.com/wakandasoft + target: _blank + + - title: + url: https://www.youtube.com/user/wakandasoft + target: _blank + + - title: + url: https://www.linkedin.com/company/wakanda + target: _blank + + - title: + url: http://blog.wakanda.io + target: _blank diff --git a/_includes/analytics.html b/_includes/analytics.html new file mode 100644 index 00000000..465b19dd --- /dev/null +++ b/_includes/analytics.html @@ -0,0 +1,40 @@ + + + diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 00000000..e110d3db --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,2 @@ +

Copyright © 2016 {{ site.author }}

+

Site made with Photon Book Creator and minimal theme.

diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 00000000..8031eeae --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,8 @@ + +{{ site.name }} + + + + + + diff --git a/_includes/index.html b/_includes/index.html new file mode 100644 index 00000000..a53394ea --- /dev/null +++ b/_includes/index.html @@ -0,0 +1,48 @@ +
+

Getting started

+ +
+ +
+

Getting started

+
+
1
+ +
+ DESIGN YOUR
DATA MODEL +
+
+
+
2
+ +
+ CREATE
A WEB APP +
+
+
+
3
+ +
+ CREATE
A MOBILE APP +
+
+
+
+
+

Going further

+
+
Enterprise Edition
+ +
+ CONNECT EXTERNAL
DATA SOURCES +
+
+
+
Cloud Platform
+ +
+ DEPLOY TO
WAKANDA CLOUD +
+
+
+
\ No newline at end of file diff --git a/_includes/mailing.html b/_includes/mailing.html new file mode 100644 index 00000000..eb06d61f --- /dev/null +++ b/_includes/mailing.html @@ -0,0 +1,22 @@ + +
+
+
+

Subscribe to our mailing list

+
+ + +
+
+ + +
+ + +
+
+
+ \ No newline at end of file diff --git a/_includes/nav.html b/_includes/nav.html new file mode 100644 index 00000000..02b0cec1 --- /dev/null +++ b/_includes/nav.html @@ -0,0 +1,23 @@ +

{{ site.name }}

+
+ +{% for entry in site.data.toc.entries %} + {% for node in entry.pages %} + {% if page.url contains node.url %} + {% assign chapter_title = entry.title %} + {% endif %} + {% endfor %} +{% endfor %} + +{% for entry in site.data.toc.entries %} +

+ {{ entry.title }} +

+ +{% endfor %} diff --git a/_includes/search.html b/_includes/search.html new file mode 100644 index 00000000..16d3126c --- /dev/null +++ b/_includes/search.html @@ -0,0 +1,4 @@ +
+ + +
\ No newline at end of file diff --git a/_includes/sync_scripts.html b/_includes/sync_scripts.html new file mode 100644 index 00000000..bafa8788 --- /dev/null +++ b/_includes/sync_scripts.html @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/_layouts/index.html b/_layouts/index.html new file mode 100644 index 00000000..937b8d48 --- /dev/null +++ b/_layouts/index.html @@ -0,0 +1,31 @@ + + + + {% include head.html %} + {% include analytics.html %} + + +
+ +
+
+ {{ chapter_title }} +
+
+ +
+ {{ content }} +
+ {% include search.html %} + +
+ + {% include sync_scripts.html %} + diff --git a/build-process-introduction.md b/build-process-introduction.md new file mode 100644 index 00000000..9b17268a --- /dev/null +++ b/build-process-introduction.md @@ -0,0 +1,112 @@ +--- +--- + +# Build process introduction + +## Table of contents + +- [Introduction to Gulp](#introduction-to-gulp) +- [Customize the build process](#customize-the-build-process) +- [Add more modules](#add-more-modules) + +## Introduction to Gulp + +[Gulp](http://gulpjs.com/) is a build tool based on [Node.js](https://nodejs.org/). It provides a Javascript interface to maintain complex build tasks intuitive and manageable. + +You can find different `gulpfile.js` files inside a Wakanda project. + +*mobile folder* + + + +*web folder* + + + +These are the entry points of the build process of your application. + +Wakanda Studio is able to run the build tasks defined in the `gulpfile.js` files. + +[How to install Gulp »](installation.html#increase-your-productivity){:class="btn"} + +## Customize the build process + +Gulp logic can be summarized by the concept of *tasks*. A `gulpfile.js` can include multiple tasks. When Gulp is launched, it collects all the tasks defined by the user and runs the specified ones. + +Gulp is optional. When installed, the Studio is able to run several additional functionalities like the live-reload defined on `web/gulpfile.js`. + +On *Run Page* the `serve` task is triggered: + +```javascript +gulp.task('serve', ['watch', 'connect']); +``` + +The first parameter is the task name, 'serve', and the second parameter can be a function or an actions list. By default we run different tasks: + +- `connect`: launch a server ready to live-reload when a file change message is received. + +```javascript + gulp.task('connect', function() { + connect.server({ + root: ['.'], + port: options.connectPort, + livereload: { + port: options.livereloadPort + }, + middleware: function(conn, opt) { + return [ + proxy('!/app/**', { + target: options.serverUrl, + changeOrigin: false, + ws: true + }) + ]; + } + }); + }); +``` + +- `watch` and `reload`: watch file changements in the specified folders and inform the live-reload server. + +```javascript + var baseFolder = options.app; + gulp.task('watch', function() { + gulp.watch([ + baseFolder + 'scripts/**/*.js', + baseFolder + 'styles/**/*.css', + baseFolder + 'views/**/*.html', + baseFolder + 'index.html' + ], ['reload']); + }); + gulp.task('reload', function() { + gulp.src(options.app + '**') + .pipe(connect.reload()); + }); +``` + +This is the code necessary for the live-reload to work. These tasks are normally different for each project: + +- An appropriate folders and/or files list should be provided in the `watch` task. +- Root location, live-reload and proxy settings could be customized when necessary. + +## Add more modules + +Many additional Gulp modules are available. Here's a list of the most popular packages: + +- [Sass](https://www.npmjs.com/package/gulp-sass){:target="blank_"} +- [Less](https://www.npmjs.com/package/gulp-less){:target="blank_"} +- [Babel](https://www.npmjs.com/package/gulp-babel){:target="blank_"} +- [TypeScript](https://www.npmjs.com/package/gulp-typescript){:target="blank_"} +- [CoffeScript](https://www.npmjs.com/package/gulp-coffee){:target="blank_"} +- [Handlebars templates](https://www.npmjs.com/package/gulp-handlebars){:target="blank_"} +- [Mustache templates](https://www.npmjs.com/package/gulp-mustache){:target="blank_"} +- [JS Uglify](https://www.npmjs.com/package/gulp-uglify){:target="blank_"} +- [Imagemin](https://www.npmjs.com/package/gulp-imagemin){:target="blank_"} + + +--- + +Let’s see an example: + +[Compile SASS files automatically »](sass-precompilation.html){:class="btn"} + diff --git a/create-mobile-app.md b/create-mobile-app.md new file mode 100644 index 00000000..779ffbcf --- /dev/null +++ b/create-mobile-app.md @@ -0,0 +1,55 @@ +--- +--- + +# Create a mobile app + +## Table of contents + +- [Preview in the Studio](#preview-in-the-studio) +- [Run on a simulator](#run-on-a-simulator) +- [Run on your devices](#run-on-devices) +- [Build your app](#build-your-app) + +## Preview in the Studio + + + +The mobile preview reloads automatically after any file changes occur: + + + +## Run on a simulator + + + +Click on Run and track the progress on the Studio console: + + + +The simulator starts automatically and loads your app: + + + +## Run on devices + +- **iOS devices**: sign up for an Apple Developer account and set up XCode with your certificates to enable device testing. You can [build your iOS app](#build-your-app) and open the XCode project generated in `platforms/ios/` to test the configuration. +- **Android devices**: make sure you have [USB debugging enabled](http://developer.android.com/tools/device.html). + +Wakanda Studio automatically detects supported device connected to the USB port. +Open the _Run_ dropdown and select the device to run on: + + + +## Build your app + +Choose the platforms to build for: + + + +Click on _Build_ to generate a binary based on your [config.xml](http://cordova.apache.org/docs/en/latest/config_ref/index.html){:target="_blank"}: + + + +Then, click on the link to open the generated files: + + diff --git a/create-web-app.md b/create-web-app.md new file mode 100644 index 00000000..21757a86 --- /dev/null +++ b/create-web-app.md @@ -0,0 +1,48 @@ +--- +--- + +# Create a web app + +## Table of contents + +- [Run your web application](#run-your-web-application) +- [Customize the panels](#customize-the-panels) +- [Enable live reload](#enable-live-reload) +- [Code your Angular application](#code-your-angular-application) + +## 1 - Run your web application + +Click on the _Run Page_ toolbar button: + + + +[Activate live reload](installation.html#increase-your-productivity) to reload automatically the page after any file changes occur. + +## 2 - Customize the panels + +Open the right panel from the toolbar toggles: + + + +You can move the web preview on the right panel: + + + +To open your application in your default browser, set this preference via _Run Page_ dropdown: + + + +## 4 - Code your Angular application + + + +Wakanda integrates the Angular framework. + +[Learn more »](http://wakanda.github.io/angular-wakanda/){:target="_blank"}{:class="btn"} + +--- + +You can also create a mobile version of your application, based on the same backend. + +[Create the mobile version »](create-mobile-app.html){:class="btn"} + diff --git a/css/code/github.css b/css/code/github.css new file mode 100644 index 00000000..883e767f --- /dev/null +++ b/css/code/github.css @@ -0,0 +1,63 @@ +pre code { color: black; } +pre.highlight { background-color: #F9F9F9; border: 0; } +.highlight .hll { background-color: #ffffcc; } +.highlight .c { color: #999988; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight .k { color: #000000; font-weight: bold } /* Keyword */ +.highlight .o { color: #000000; font-weight: bold } /* Operator */ +.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */ +.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #aa0000 } /* Generic.Error */ +.highlight .gh { color: #999999 } /* Generic.Heading */ +.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #555555 } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #aaaaaa } /* Generic.Subheading */ +.highlight .gt { color: #aa0000 } /* Generic.Traceback */ +.highlight .kc { color: #000000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #000000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #009999 } /* Literal.Number */ +.highlight .s { color: #d01040 } /* Literal.String */ +.highlight .na { color: #008080 } /* Name.Attribute */ +.highlight .nb { color: #0086B3 } /* Name.Builtin */ +.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight .no { color: #008080 } /* Name.Constant */ +.highlight .nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #800080 } /* Name.Entity */ +.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight .nl { color: #990000; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #555555 } /* Name.Namespace */ +.highlight .nt { color: #000080 } /* Name.Tag */ +.highlight .nv { color: #008080 } /* Name.Variable */ +.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #009999 } /* Literal.Number.Float */ +.highlight .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .sb { color: #d01040 } /* Literal.String.Backtick */ +.highlight .sc { color: #d01040 } /* Literal.String.Char */ +.highlight .sd { color: #d01040 } /* Literal.String.Doc */ +.highlight .s2 { color: #d01040 } /* Literal.String.Double */ +.highlight .se { color: #d01040 } /* Literal.String.Escape */ +.highlight .sh { color: #d01040 } /* Literal.String.Heredoc */ +.highlight .si { color: #d01040 } /* Literal.String.Interpol */ +.highlight .sx { color: #d01040 } /* Literal.String.Other */ +.highlight .sr { color: #009926 } /* Literal.String.Regex */ +.highlight .s1 { color: #d01040 } /* Literal.String.Single */ +.highlight .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #008080 } /* Name.Variable.Class */ +.highlight .vg { color: #008080 } /* Name.Variable.Global */ +.highlight .vi { color: #008080 } /* Name.Variable.Instance */ +.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/css/code/monokai.css b/css/code/monokai.css new file mode 100644 index 00000000..2fbae13c --- /dev/null +++ b/css/code/monokai.css @@ -0,0 +1,64 @@ +pre code { color: white; } +pre.highlight { background-color: #272822; border: 0; } +.highlight .hll { background-color: #272822; } +.highlight .c { color: #75715e } /* Comment */ +.highlight .err { color: #960050; background-color: #1e0010 } /* Error */ +.highlight .k { color: #66d9ef } /* Keyword */ +.highlight .l { color: #ae81ff } /* Literal */ +.highlight .n { color: #f8f8f2 } /* Name */ +.highlight .o { color: #f92672 } /* Operator */ +.highlight .p { color: #f8f8f2 } /* Punctuation */ +.highlight .cm { color: #75715e } /* Comment.Multiline */ +.highlight .cp { color: #75715e } /* Comment.Preproc */ +.highlight .c1 { color: #75715e } /* Comment.Single */ +.highlight .cs { color: #75715e } /* Comment.Special */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .kc { color: #66d9ef } /* Keyword.Constant */ +.highlight .kd { color: #66d9ef } /* Keyword.Declaration */ +.highlight .kn { color: #f92672 } /* Keyword.Namespace */ +.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ +.highlight .kr { color: #66d9ef } /* Keyword.Reserved */ +.highlight .kt { color: #66d9ef } /* Keyword.Type */ +.highlight .ld { color: #e6db74 } /* Literal.Date */ +.highlight .m { color: #ae81ff } /* Literal.Number */ +.highlight .s { color: #e6db74 } /* Literal.String */ +.highlight .na { color: #a6e22e } /* Name.Attribute */ +.highlight .nb { color: #f8f8f2 } /* Name.Builtin */ +.highlight .nc { color: #a6e22e } /* Name.Class */ +.highlight .no { color: #66d9ef } /* Name.Constant */ +.highlight .nd { color: #a6e22e } /* Name.Decorator */ +.highlight .ni { color: #f8f8f2 } /* Name.Entity */ +.highlight .ne { color: #a6e22e } /* Name.Exception */ +.highlight .nf { color: #a6e22e } /* Name.Function */ +.highlight .nl { color: #f8f8f2 } /* Name.Label */ +.highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +.highlight .nx { color: #a6e22e } /* Name.Other */ +.highlight .py { color: #f8f8f2 } /* Name.Property */ +.highlight .nt { color: #f92672 } /* Name.Tag */ +.highlight .nv { color: #f8f8f2 } /* Name.Variable */ +.highlight .ow { color: #f92672 } /* Operator.Word */ +.highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +.highlight .mf { color: #ae81ff } /* Literal.Number.Float */ +.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ +.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ +.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ +.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ +.highlight .sc { color: #e6db74 } /* Literal.String.Char */ +.highlight .sd { color: #e6db74 } /* Literal.String.Doc */ +.highlight .s2 { color: #e6db74 } /* Literal.String.Double */ +.highlight .se { color: #ae81ff } /* Literal.String.Escape */ +.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ +.highlight .si { color: #e6db74 } /* Literal.String.Interpol */ +.highlight .sx { color: #e6db74 } /* Literal.String.Other */ +.highlight .sr { color: #e6db74 } /* Literal.String.Regex */ +.highlight .s1 { color: #e6db74 } /* Literal.String.Single */ +.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ +.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ +.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ +.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ +.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ +.highlight .gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */ +.highlight .gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */ +.highlight .gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */ \ No newline at end of file diff --git a/css/code/vs.css b/css/code/vs.css new file mode 100644 index 00000000..55d4f9e8 --- /dev/null +++ b/css/code/vs.css @@ -0,0 +1,35 @@ +pre code { color: black; } +pre.highlight { background-color: #F9F9F9; border: 0; } +.highlight .hll { background-color: #ffffcc } +.highlight .c { color: #008000 } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #0000ff } /* Keyword */ +.highlight .cm { color: #008000 } /* Comment.Multiline */ +.highlight .cp { color: #0000ff } /* Comment.Preproc */ +.highlight .c1 { color: #008000 } /* Comment.Single */ +.highlight .cs { color: #008000 } /* Comment.Special */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gh { font-weight: bold } /* Generic.Heading */ +.highlight .gp { font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { font-weight: bold } /* Generic.Subheading */ +.highlight .kc { color: #0000ff } /* Keyword.Constant */ +.highlight .kd { color: #0000ff } /* Keyword.Declaration */ +.highlight .kn { color: #0000ff } /* Keyword.Namespace */ +.highlight .kp { color: #0000ff } /* Keyword.Pseudo */ +.highlight .kr { color: #0000ff } /* Keyword.Reserved */ +.highlight .kt { color: #2b91af } /* Keyword.Type */ +.highlight .s { color: #a31515 } /* Literal.String */ +.highlight .nc { color: #2b91af } /* Name.Class */ +.highlight .ow { color: #0000ff } /* Operator.Word */ +.highlight .sb { color: #a31515 } /* Literal.String.Backtick */ +.highlight .sc { color: #a31515 } /* Literal.String.Char */ +.highlight .sd { color: #a31515 } /* Literal.String.Doc */ +.highlight .s2 { color: #a31515 } /* Literal.String.Double */ +.highlight .se { color: #a31515 } /* Literal.String.Escape */ +.highlight .sh { color: #a31515 } /* Literal.String.Heredoc */ +.highlight .si { color: #a31515 } /* Literal.String.Interpol */ +.highlight .sx { color: #a31515 } /* Literal.String.Other */ +.highlight .sr { color: #a31515 } /* Literal.String.Regex */ +.highlight .s1 { color: #a31515 } /* Literal.String.Single */ +.highlight .ss { color: #a31515 } /* Literal.String.Symbol */ \ No newline at end of file diff --git a/css/layout.scss b/css/layout.scss new file mode 100644 index 00000000..ad855ee8 --- /dev/null +++ b/css/layout.scss @@ -0,0 +1,126 @@ +--- +--- + +$nav-width: 250px; + +html { + padding: 0; + margin: 0; +} +body { + padding: 0; + margin: 0; +} + +nav { + width: $nav-width; + position: fixed; + left: 0; + top: 0; + bottom: 0; + min-height: 100%; + + h1, h2, ul, ol { + padding-left: 28px; + width: 100%; + display: block; + clear: both; + } + + h2 { + hr { + margin-bottom: 0; + margin-top: 32px; + } + } + + ul.inline li, ol.inline li { + display: inline; + } + + .fa { + padding: 0 8px 0 8px; + margin-left: -8px; + margin-bottom: 20px; + } +} + +.scroll { + position: relative; + overflow-x: hidden; + overflow-y: auto; + height: 100%; +} + +section { + margin-left: $nav-width + 1; + width:auto; + float: none; + min-height: 100%; + text-align: justify; + + h1, h2, h3, ul, ol, & > p, blockquote, pre, hr { + max-width: 800px; + margin-left: 40px; + margin-right: 40px; + } + + #contribute { + padding: 40px 40px 0px 40px; + text-align: right; + a { + max-width: 800px; + display: block; + } + } +} + +footer { + margin: 40px 0 0 $nav-width; + padding: 40px 0 40px 40px; + p { + margin: 0; + } +} + +@media print, screen and(max-width: 650px) { + + nav { + float: none; + position: static; + width: auto; + margin-left: 0; + width: 100%; + + h1 { + padding-top: 15px; + } + + hr { + max-width: none !important; + } + } + + section { + float: none; + position: static; + width: auto; + margin-left: 0; + border-width: 1px 0; + margin: 0 0 20px; + padding: 0; + } + + footer { + float: none; + position: static; + width: auto; + margin-left: 0; + padding: 0 0 15px 15px; + } + + div.wrapper { + width: auto; + margin: 0; + } +} \ No newline at end of file diff --git a/css/main.scss b/css/main.scss new file mode 100644 index 00000000..b3c80e1a --- /dev/null +++ b/css/main.scss @@ -0,0 +1,52 @@ +--- +--- + +@import url(themes/{{ site.themes.general }}/theme.css); +@import url(layout.css); +@import url(themes/{{ site.themes.general }}/overrides.css); +@import url(code/{{ site.themes.code }}.css); + +html { + min-height: 100%; +} + +.clear-all { + clear: both; +} + +img.inline { + margin-bottom: -8px; +} + +nav { + background: #fff; + border-right: 1px solid #dddddd; + + .fa { + font-size: 14px; + color: #2B404A; + } + + h1 { + color:#323232; + } + + h2 { + color:#555; + } + + li a { + color:#14a1c8; + line-height:28px; + } +} + +@media print, screen and(max-width: 650px) { + section { + border: none; + } + + nav { + border: none; + } +} \ No newline at end of file diff --git a/css/themes/minimal/overrides.scss b/css/themes/minimal/overrides.scss new file mode 100644 index 00000000..cdea1d6b --- /dev/null +++ b/css/themes/minimal/overrides.scss @@ -0,0 +1,63 @@ +--- +--- + +nav { + hr { + display: none; + } + + h1 { + margin-top: 40px; + font-size: 18px; + a, a:visited { + color: black; + } + } + + h2 { + font-size: 16px; + margin-bottom: 5px; + hr { + display: block; + color: #EBF4F9; + background-color: #EBF4F9; + } + } + + ul { + list-style: none; + + li { + margin-left: 0; + padding-left: 0; + + a { + font-size: 13px; + } + } + } +} + +section { + padding-bottom: 10px; + + #contribute { + a { + font-size: 12px; + } + } + + h3 { + margin-bottom: 8px; + } + + header { + float: none; + position: inherit; + width: 100%; + + h1 { + margin-top: 20px; + } + } +} diff --git a/css/themes/minimal/theme.css b/css/themes/minimal/theme.css new file mode 100644 index 00000000..cabce711 --- /dev/null +++ b/css/themes/minimal/theme.css @@ -0,0 +1,274 @@ +/* +Original theme by Orderlist +https://github.com/orderedlist/minimal + +Creative Commons Attribution-ShareAlike 3.0 Unported License. +http://creativecommons.org/licenses/by-sa/3.0/ + +Modified: +- larger layout +- footer on the section part +- no subpixel treatment + +*/ + +@import url(https://fonts.googleapis.com/css?family=Noto+Sans:400,400italic,700italic,700); + +body { + background-color: #fff; + padding:50px; + font: 14px/1.5 "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + color:#727272; + font-weight:400; +} + +h1, h2, h3, h4, h5, h6 { + color:#222; + margin:0 0 20px; +} + +p, ul, ol, table, pre, dl { + margin:0 0 20px; +} + +h1, h2, h3 { + line-height:1.1; +} + +h1 { + font-size:28px; +} + +h2 { + color:#393939; +} + +h3, h4, h5, h6 { + color:#494949; +} + +a { + color:#39c; + text-decoration:none; +} + +a:hover { + color:#069; +} + +a small { + font-size:11px; + color:#777; + margin-top:-0.3em; + display:block; +} + +a:hover small { + color:#777; +} + +.wrapper { + margin:0 auto; +} + +blockquote { + border-left:1px solid #e5e5e5; + margin:0; + padding:0 0 0 20px; + font-style:italic; +} + +code, pre { + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, Consolas, Liberation Mono, DejaVu Sans Mono, Courier New, monospace; + color:#333; + font-size:12px; +} + +pre { + padding:8px 15px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + overflow-x: auto; +} + +table { + width:100%; + border-collapse:collapse; +} + +th, td { + text-align:left; + padding:5px 10px; + border-bottom:1px solid #e5e5e5; +} + +dt { + color:#444; + font-weight:700; +} + +th { + color:#444; +} + +img { + max-width:100%; +} + +header { + width:270px; + float:left; + position:fixed; +} + +header ul { + list-style:none; + height:40px; + padding:0; + background: #f4f4f4; + border-radius:5px; + border:1px solid #e0e0e0; + width:270px; +} + +header li { + width:89px; + float:left; + border-right:1px solid #e0e0e0; + height:40px; +} + +header li:first-child a { + border-radius:5px 0 0 5px; +} + +header li:last-child a { + border-radius:0 5px 5px 0; +} + +header ul a { + line-height:1; + font-size:11px; + color:#999; + display:block; + text-align:center; + padding-top:6px; + height:34px; +} + +header ul a:hover { + color:#999; +} + +header ul a:active { + background-color:#f0f0f0; +} + +strong { + color:#222; + font-weight:700; +} + +header ul li + li + li { + border-right:none; + width:89px; +} + +header ul a strong { + font-size:14px; + display:block; + color:#222; +} + +section { + width:500px; + float:right; + padding-bottom:50px; +} + +small { + font-size:11px; +} + +hr { + border:0; + background:#e5e5e5; + height:1px; + margin:0 0 20px; +} + +@media print, screen and (max-width: 650px) { + + div.wrapper { + width:auto; + margin:0; + } + + header, section, footer { + float:none; + position:static; + width:auto; + } + + header { + padding-right:320px; + } + + section { + border:1px solid #e5e5e5; + border-width:1px 0; + padding:20px 0; + margin:0 0 20px; + } + + header a small { + display:inline; + } + + header ul { + position:absolute; + right:50px; + top:52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap:break-word; + } + + header { + padding:0; + } + + header ul, header p.view { + position:static; + } + + pre, code { + word-wrap:normal; + } +} + +@media print, screen and (max-width: 640px) { + body { + padding:15px; + } + + header ul { + width:99%; + } + + header li, header ul li + li + li { + width:33%; + } +} + +@media print { + body { + padding:0.4in; + font-size:12pt; + color:#444; + } +} diff --git a/css/themes/wakanda/button.scss b/css/themes/wakanda/button.scss new file mode 100644 index 00000000..b6a714ad --- /dev/null +++ b/css/themes/wakanda/button.scss @@ -0,0 +1,165 @@ +--- +--- + +section { + .btn { + font-size: 12px; + box-sizing: border-box; + border: none; + padding: 8px 15px; + background-color: #e3e5e6; + color: #555; + text-align: center; + height: 36px; + line-height: 36px; + margin: 5px 5px 0 0; + transition: all .15s ease-in; + font-weight: 400; + color: white; + background-color: #4ab19d; + } + + a.action { + display: block; + width: 200px; + height: 100px; + float: left; + text-align: center; + background-color: transparent; + padding: 0; + color: black; + font-size: 15px; + + &:hover { + background-color: transparent; + color:gray; + } + + img { + display: block; + margin: auto; + } + } + + a { + background-color: transparent; + padding: 0; + margin: 0; + font-size: 14px; + line-height: inherit; + + &:hover { + background-color: transparent; + } + } + + a.transparent { + background: transparent; + } + + a.blue { + color: white; + background-color: #44515e; + } + + a.green { + color: white; + background-color: #4ab19d; + } + + a.error { + color: white; + background-color: #c9302c; + } + + .button.success { + color: white; + background-color: #5cb85c; + } + + a.btn:hover { + text-decoration: none; + background-color: #52687e; + color:white; + cursor: pointer; + } + + a.transparent:hover { + background: #eee; + } + + a.float-left { + display: block; + width: auto; + padding: 5px 25px 5px 20px; + line-height: 100%; + } + + .home-button { + text-align: center; + display: block; + width: 250px; + box-sizing: border-box; + cursor: pointer; + padding: 10px 10px 20px; + border-radius: 10px; + margin-bottom: 8px; + margin-right: 8px; + float:left; + } + + .home-button figure { + display: block; + margin: 0 auto; + } + + .home-button span { + display: block; + color: #e1e1e1; + font-size: 15px; + line-height: 120%; + margin-top: 10px; + margin-bottom: 0; + } + + .dark.home-button { + background: #4e4e4e; + } + + .dark.home-button figure { + background: url('../images/ios.png'); + height: 91px; + width: 91px; + text-indent: -9999px; + } + + .dark.home-button:hover figure { + background: url('../images/iosHover.png'); + } + + .green.home-button { + background: #45b29d; + } + + .green.home-button figure { + background: url('../images/android.png'); + height: 93px; + width: 79px; + text-indent: -9999px; + } + + .green.home-button:hover figure { + background: url('../images/androidHover.png'); + } + + .green.home-button span { + color: white; + } + + .home-button:hover span { + color: white; + } + + +} + diff --git a/css/themes/wakanda/home.scss b/css/themes/wakanda/home.scss new file mode 100644 index 00000000..68bccfcd --- /dev/null +++ b/css/themes/wakanda/home.scss @@ -0,0 +1,175 @@ +--- +--- + +header.home { + position: relative; + background: url(../../../img/circle.png) no-repeat center center, url(../../../img/background.png) repeat; + background-color:#eeeded; + width: 100%; + height: 257px; + text-align: center; + + h1 { + position: absolute; + top: 50%; + left: 50%; + margin-top: -75px; + margin-left: -167px; + padding: 5px 19px; + font-weight: 100; + font-size: 46px; + color: #fff; + max-width: 100%; + background-color: #ffb800; + } + + img { + position: absolute; + top:105px; + left:50%; + margin-left: -202px; + } +} + +.home-container { + padding:0; + margin: 0 8px 40px 8px; + justify-content: center; + + h2 { + clear: both; + margin: 18px 0 0 10px; + color: #A2A2A2; + font-weight: 400; + font-size: 12px; + text-transform: uppercase; + } + + hr { + clear: both; + color: white; + background-color: white; + } +} + +.home-container > div { + width: 25%; + float: left; + background-color: #fafafa; + box-sizing: border-box; + padding-bottom: 15px; + border-style: solid; + border-color: #fff; + border-width: 16px 8px 0 8px; + height:268px; + &:hover { + border-bottom:3px solid #ffb800; + + &:hover .head { + background-color: #ffb800; + color:#fff; + } + } + + .head { + color:#323232; + text-align: center; + height: 50px; + background-color: #f3f3f3; + font-size: 18px; + line-height: 50px; + } + + .head .label { + font-size: 10px; + background-color: white; + border-radius: 5px; + color: #545454; + padding: 4px 8px 4px 8px; + text-transform: uppercase; + font-weight: bold; + position: relative; + top: -3px; + letter-spacing: 1px; + } + + a.action { + .stepPic { + height: 96px; + width: 96px; + background-position: 0 0; + margin-left: auto; + margin-right: auto; + margin-top: 15px; + margin-bottom: 20px; + background-position: center; + background-repeat: no-repeat; + + &.model { + background-image: url(../../../img/pic_model.png); + } + &.prototype { + background-image: url(../../../img/pic_prototype.png); + } + &.webApp { + background-image: url(../../../img/pic_webApp.png); + } + &.mobileApp { + background-image: url(../../../img/pic_mobileApp.png); + } + &.circle { + background-color: white; + border-radius: 50%; + box-sizing: border-box; + border: 4px solid white; + } + &.deploy { + background-image: url(../../../img/icon-deploy.png); + } + &.connect { + background-image: url(../../../img/icon-connect.png); + } + } + + display: block; + width: 100%; + color: #555555; + font-weight: 700; + line-height: 1.5; + text-align:center; + &:hover { + color: #555; + } + } +} + +section .blocks { + float: left; + width: 420px; +} + +#home { + #contribute, #chapter { + display: none; + } +} + +@media print, screen and(max-width: 1060px) { + section { + .getting-started { + margin-top:5px; + width: 360px; + } + .step { + width: 160px; + } + } + + .home { + display: none; + } + + .home-container > div { + width: 50%; + } +} diff --git a/css/themes/wakanda/mailing.scss b/css/themes/wakanda/mailing.scss new file mode 100644 index 00000000..c5493fac --- /dev/null +++ b/css/themes/wakanda/mailing.scss @@ -0,0 +1,31 @@ +--- +--- + +#mc_embed_signup{ + padding: 0 0 22px 22px; + color:#555; + + h2 { + padding: 0 0 4px 0; + font-size: 15px; + } + .mc-field-group { + font-size:11px; + margin-bottom:8px; + } + .mce_inline_error { + color: #df5a49 !important; + background-color: white !important; + } + .email, .mc-inline-error { + padding: 5px 3px; + width: 123px; + } + .button { + background-color:#fbb500; + padding:7px 8px; + border:none; + color:#fff; + cursor: pointer; + } +} diff --git a/css/themes/wakanda/overrides.scss b/css/themes/wakanda/overrides.scss new file mode 100644 index 00000000..274d07b3 --- /dev/null +++ b/css/themes/wakanda/overrides.scss @@ -0,0 +1,114 @@ +--- +--- + +@import url(button.css); +@import url(home.css); +@import url(mailing.css); +@import url(search.css); + +nav { + hr { + display: none; + } + + h1 { + margin: 0 0 10px 0; + font-size: 18px; + padding: 20px 10px 10px 26px; + a, a:visited { + color: black; + } + } + + h2 { + font-size: 16px; + margin-bottom: 5px; + hr { + display: block; + color: #EBF4F9; + background-color: #EBF4F9; + } + } + + ul { + list-style: none; + + li { + margin-left: 0; + padding-left: 0; + + &.active { + font-weight: bold; + } + + a { + font-size: 13px; + } + } + } +} + +section { + padding-bottom: 10px; + + h1 { + border-bottom: solid 1px #e5e5e5; + margin: -27px 0px 40px 0; + padding: 0 200px 13px 40px; + max-width: 600px; + } + + h3 { + margin-bottom: 8px; + } + + #contribute { + padding: 7px 15px 0px 40px; + font-size: 13px; + + a:after { + content: "Contribute to this page"; + } + } + + #chapter { + padding: 10px 0 0 40px; + color: #A2A2A2; + font-weight: 400; + font-size: 12px; + text-transform: uppercase; + height: 33px; + } + + header { + float: none; + position: inherit; + width: 100%; + + h1 { + margin-top: -20px; + } + } +} + +@media print, screen and(max-width: 830px) { + + section { + + h1 { + padding-right: 40px; + } + + #contribute a:after { + content: ""; + } + } +} + +ul, ol { + li { + pre.highlight { + margin-left: 0; + } + } +} diff --git a/css/themes/wakanda/search.scss b/css/themes/wakanda/search.scss new file mode 100644 index 00000000..cb026b33 --- /dev/null +++ b/css/themes/wakanda/search.scss @@ -0,0 +1,267 @@ +--- +--- + +$color-border: #EEE; +$color-border-light: lighten($color-border, 15%); +$color-category-header-background: #FAFAFA; +$color-category-header: #797979; +$color-highlight-header-background: lighten($color-category-header-background, 15%); +$color-highlight-text: #14A1C8; +$color-selected-background: #FAFAFA; +$color-selected-text: black; +$color-left-column-bg: white; +$color-left-column: #5C5C5C;; + +$breakpoint-medium: 468px; +$breakpoint-large: 650px; + +$dropdown-min-width-medium: 400px; +$dropdown-min-width-large: 650px; + +.scroll { + margin-top: 36px +} + +.search-input-wrapper { + position: fixed; + top: 0; + left: 0; + width: 250px; + font-size: 16px; + display: table; + background-color: #FAFAFA; + border-bottom: 1px #DEDEDE solid; + + .fa-search { + display: table-cell; + vertical-align: middle; + text-align: center; + width: 20px; + font-size: 12px; + padding-left: 4px; + } + + input { + width: 90%; + font-weight: normal; + box-shadow: none; + border-color: transparent; + background-color: transparent; + display: block; + height: 30px; + font-size: 13px; + color: #555; + background-image: none; + + &:focus { + outline: 0; + } + } +} + + + +// The dropdown adapts to screen size, to provide three different displays. +// - A simple list of matching results +// - Same list, but with text snippetting added if size is large enough +// - Adding a second colum to let the content breath if enough room available + +// Main autocomplete wrapper +.aa-dropdown-menu { + background-color: #FFF; + border: 1px solid #DCDCDC; + font-size: 13px; + margin: 0 0 0 -25px; + text-align: left; +} + +// Each suggestion +.algolia-docsearch-suggestion { + cursor: pointer; + overflow: hidden; +} + +// Each sub-suggestion +.algolia-docsearch-suggestion__secondary { + border-top: 1px solid $color-left-column-bg; +} + +.algolia-docsearch-suggestion__main { + border-top: 0; +} + +// Main category headers +.algolia-docsearch-suggestion--category-header { + display: none; + background: $color-category-header-background; + color: $color-category-header; + + + font-size: 12px; + text-transform: uppercase; + + font-weight: 400; + padding: 5px 10px; + text-align: left; + // Only show it when flaggued as "__main" + .algolia-docsearch-suggestion__main & { + display: block; + } +} + +// Highlight +.algolia-docsearch-suggestion--highlight { + padding: 0; + color: $color-highlight-text; + background: none; + font-weight: 400; + // Highlight the background in header + .algolia-docsearch-suggestion--category-header & { + color: inherit; + background: $color-highlight-header-background; + } +} + +// Selected suggestion +.aa-cursor .algolia-docsearch-suggestion--content { + color: $color-selected-text; +} +.aa-cursor .algolia-docsearch-suggestion { + background: $color-selected-background; +} + +// The secondary column is hidden on small screens +.algolia-docsearch-suggestion--subcategory-column { + display: none; + cursor: default; + font-weight: 600; + font-size: 15px; +} +// The text snippet is hidden on small screens +.algolia-docsearch-suggestion--text { + display: none; + color: #989898; +} + +.algolia-docsearch-suggestion--content { + padding: 3px 5px; + width: 100%; + border-top: 1px solid lighten($color-border, 60%); +} + +.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--content, +.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--content { + border-top: 0; +} + +.algolia-docsearch-suggestion--subcategory-inline { + display: inline-block; + font-weight: bold; + &:after { + content: " › "; + } +} +.algolia-docsearch-suggestion--title { + display: inline; +} + +// Footer + +.algolia-docsearch-footer { + border-top: 1px solid $color-left-column-bg; + text-align: right; + font-size: 12px; + padding: 4px 2px 0 0; + color: #333; + + .algolia-docsearch-footer--logo { + display: inline-block !important; + width: 45px; + height: 16px; + text-indent: 101%; + overflow: hidden; + white-space: nowrap; + background-image: url('data:image/png;base64,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'); + background-repeat: no-repeat; + background-size: contain; + vertical-align: middle; + } +} + +// BREAKPOINT 1: +// Screen is big enough to display the text snippets +@media (min-width: $breakpoint-medium) { + .aa-dropdown-menu { + min-width: $dropdown-min-width-medium; + } + .algolia-docsearch-suggestion--text { + display: block; + font-size: .9em; + padding: 2px 0; + } +} + +// BREAKPOINT 2: +// Screen is big enough to display results in two columns +@media (min-width: $breakpoint-large) { + .aa-dropdown-menu { + min-width: $dropdown-min-width-large; + } + .algolia-docsearch-suggestion { + display: table; + width: 100%; + } + + .algolia-docsearch-suggestion__secondary { + border-top: 1px solid $color-left-column-bg; + } + + .algolia-docsearch-suggestion__main { + border-top: 0; + } + + .algolia-docsearch-suggestion--subcategory-column { + + background: $color-left-column-bg; + color: $color-left-column; + display: table-cell; + overflow: hidden; + padding: 5px 7px 5px 5px; + text-align: right; + text-overflow: ellipsis; + vertical-align: top; + + width: 135px; // Hardcoded + max-width: 135px; // Hardcoded + min-width: 135px; // Hardcoded + } + + .algolia-docsearch-suggestion--subcategory-column-text { + display: none; + + .algolia-docsearch-suggestion__secondary & { + display: block; + } + } + .algolia-docsearch-suggestion--content { + display: table-cell; + padding: 5px 10px; + } + .algolia-docsearch-suggestion--subcategory-inline { + display: none; + } + .algolia-docsearch-suggestion--title { + font-weight: 400; + } + .algolia-docsearch-suggestion--text { + display: block; + font-weight: normal; + padding: 2px; + } +} + +@media print, screen and(max-width: 650px) { + .search-input-wrapper { + width: 100% + } +} \ No newline at end of file diff --git a/css/themes/wakanda/theme.scss b/css/themes/wakanda/theme.scss new file mode 100644 index 00000000..415c104f --- /dev/null +++ b/css/themes/wakanda/theme.scss @@ -0,0 +1,281 @@ +--- +--- + +/* + +Original theme by Orderlist +https://github.com/orderedlist/minimal + +Creative Commons Attribution-ShareAlike 3.0 Unported License. +http://creativecommons.org/licenses/by-sa/3.0/ + +Forked by Wakanda SAS + +Modified: +- default font +- larger layout +- footer on the section part +- no subpixel treatment + +*/ + +@import url(https://fonts.googleapis.com/css?family=Roboto:400,700,100); + +body { + background-color: #fff; + padding:50px; + font: 14px/1.5 'Roboto', sans-serif; + color: #535353; + font-weight:400; +} + +h1, h2, h3, h4, h5, h6 { + color:#222; + margin:0 0 20px; +} + +p, ul, ol, table, pre, dl { + margin:0 0 20px; +} + +h1, h2, h3 { + line-height:1.1; +} + +h1 { + font-size:28px; +} + +h2 { + color:#393939; +} + +h3, h4, h5, h6 { + color:#494949; +} + +a { + color:#14a1c8; + text-decoration:none; +} + +a:hover { + color:#069; +} + +a small { + font-size:11px; + color:#777; + margin-top:-0.3em; + display:block; +} + +a:hover small { + color:#777; +} + +.wrapper { + margin:0 auto; +} + +blockquote { + border-left:1px solid #e5e5e5; + margin:0; + padding:0 0 0 20px; + font-style:italic; +} + +code, pre { + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, Consolas, Liberation Mono, DejaVu Sans Mono, Courier New, monospace; + color:#333; + font-size:12px; +} + +pre { + padding:8px 15px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + overflow-x: auto; +} + +table { + width:100%; + border-collapse:collapse; +} + +th, td { + text-align:left; + padding:5px 10px; + border-bottom:1px solid #e5e5e5; +} + +dt { + color:#444; + font-weight:700; +} + +th { + color:#444; +} + +img { + max-width:100%; +} + +header { + width:270px; + float:left; + position:fixed; +} + +header ul { + list-style:none; + height:40px; + padding:0; + background: #f4f4f4; + border-radius:5px; + border:1px solid #e0e0e0; + width:270px; +} + +header li { + width:89px; + float:left; + border-right:1px solid #e0e0e0; + height:40px; +} + +header li:first-child a { + border-radius:5px 0 0 5px; +} + +header li:last-child a { + border-radius:0 5px 5px 0; +} + +header ul a { + line-height:1; + font-size:11px; + color:#999; + display:block; + text-align:center; + padding-top:6px; + height:34px; +} + +header ul a:hover { + color:#999; +} + +header ul a:active { + background-color:#f0f0f0; +} + +strong { + color:#222; + font-weight:700; +} + +header ul li + li + li { + border-right:none; + width:89px; +} + +header ul a strong { + font-size:14px; + display:block; + color:#222; +} + +section { + width:500px; + float:right; + padding-bottom:50px; +} + +small { + font-size:11px; +} + +hr { + border:0; + background:#e5e5e5; + height:1px; + margin:0 0 20px; +} + +@media print, screen and (max-width: 650px) { + + div.wrapper { + width:auto; + margin:0; + } + + header, section, footer { + float:none; + position:static; + width:auto; + } + + header { + padding-right:320px; + } + + section { + border:1px solid #e5e5e5; + border-width:1px 0; + padding:20px 0; + margin:0 0 20px; + } + + header a small { + display:inline; + } + + header ul { + position:absolute; + right:50px; + top:52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap:break-word; + } + + header { + padding:0; + } + + header ul, header p.view { + position:static; + } + + pre, code { + word-wrap:normal; + } +} + +@media print, screen and (max-width: 640px) { + body { + padding:15px; + } + + header ul { + width:99%; + } + + header li, header ul li + li + li { + width:33%; + } +} + +@media print { + body { + padding:0.4in; + font-size:12pt; + color:#444; + } +} diff --git a/deploy-your-app.md b/deploy-your-app.md new file mode 100644 index 00000000..4777bd8b --- /dev/null +++ b/deploy-your-app.md @@ -0,0 +1,25 @@ +--- +--- + +# Deploy your app + +## Initial setup + +- [Create a new cloud server instance](http://docs.wakcloud.com/en/latest/getting_started.html){:class="no-style"}{:target="_blank"} +- [Setup a remote repository](version-control.html) + +## Deploy + +Click on Deploy from the Studio toolbar: + + + +You can now push, for example, on your `production` branch: + + + +--- + +Now, manage your app with Wakanda Cloud: + +[Manage your app »](http://docs.wakcloud.com/en/latest/application_dashboard.html){:target="blank_"}{:class="btn"} \ No newline at end of file diff --git a/design-data-model.md b/design-data-model.md new file mode 100644 index 00000000..905cdf43 --- /dev/null +++ b/design-data-model.md @@ -0,0 +1,29 @@ +--- +--- + +# Design your data model + +## 1 - Open your model + + +`database/model.waModel` + +> **TIPS**: +> - click on to change the view options (the `.waModel` extension is hidden by default) +> - click on to quickly access your model + +## 2 - Design your data model + + + +[Learn more »](http://doc.wakanda.org/home2.en.html#/Datastore-Model-Designer/Datastore-Model-Designer.100-1051416.en.html){:target="_blank"}{:class="btn"} + +> +> +> If you need to reload your model in an already started server, a badge will appear in the Studio toolbar. Click on the squared reload button to reload the model. The second one performs a full solution reload. + +--- + +Now, create a web application with Wakanda and Angular: + +[Create a web app »](create-web-app.html){:class="btn"} \ No newline at end of file diff --git a/img/background.png b/img/background.png new file mode 100644 index 00000000..812f5eda Binary files /dev/null and b/img/background.png differ diff --git a/img/bullet.png b/img/bullet.png new file mode 100644 index 00000000..c53eca87 Binary files /dev/null and b/img/bullet.png differ diff --git a/img/circle.png b/img/circle.png new file mode 100644 index 00000000..96ebeba6 Binary files /dev/null and b/img/circle.png differ diff --git a/img/console-gulp.png b/img/console-gulp.png new file mode 100644 index 00000000..0004b81f Binary files /dev/null and b/img/console-gulp.png differ diff --git a/img/console-livereload-info.png b/img/console-livereload-info.png new file mode 100644 index 00000000..99312aba Binary files /dev/null and b/img/console-livereload-info.png differ diff --git a/img/console-livereload-requirements.png b/img/console-livereload-requirements.png new file mode 100644 index 00000000..65775b13 Binary files /dev/null and b/img/console-livereload-requirements.png differ diff --git a/img/create-page-prototype.png b/img/create-page-prototype.png new file mode 100644 index 00000000..bfbb12ee Binary files /dev/null and b/img/create-page-prototype.png differ diff --git a/img/deploy-your-project.png b/img/deploy-your-project.png new file mode 100644 index 00000000..dd10748d Binary files /dev/null and b/img/deploy-your-project.png differ diff --git a/img/explorer-settings-shortcut.png b/img/explorer-settings-shortcut.png new file mode 100644 index 00000000..41c61738 Binary files /dev/null and b/img/explorer-settings-shortcut.png differ diff --git a/img/git-add-remote.png b/img/git-add-remote.png new file mode 100644 index 00000000..d68b2833 Binary files /dev/null and b/img/git-add-remote.png differ diff --git a/img/git-commit.png b/img/git-commit.png new file mode 100644 index 00000000..e052a7c6 Binary files /dev/null and b/img/git-commit.png differ diff --git a/img/git-github.png b/img/git-github.png new file mode 100644 index 00000000..7fb47520 Binary files /dev/null and b/img/git-github.png differ diff --git a/img/git-remote-repositories.png b/img/git-remote-repositories.png new file mode 100644 index 00000000..81c42825 Binary files /dev/null and b/img/git-remote-repositories.png differ diff --git a/img/git-shortcut.png b/img/git-shortcut.png new file mode 100644 index 00000000..d07b78c2 Binary files /dev/null and b/img/git-shortcut.png differ diff --git a/img/git-wakanda-cloud.png b/img/git-wakanda-cloud.png new file mode 100644 index 00000000..58ca4b4e Binary files /dev/null and b/img/git-wakanda-cloud.png differ diff --git a/img/home-header.png b/img/home-header.png new file mode 100644 index 00000000..8b9c88fd Binary files /dev/null and b/img/home-header.png differ diff --git a/img/icon-connect.png b/img/icon-connect.png new file mode 100644 index 00000000..1da509f0 Binary files /dev/null and b/img/icon-connect.png differ diff --git a/img/icon-deploy.png b/img/icon-deploy.png new file mode 100755 index 00000000..4364adbb Binary files /dev/null and b/img/icon-deploy.png differ diff --git a/img/icon-mobile.png b/img/icon-mobile.png new file mode 100644 index 00000000..0e14aadc Binary files /dev/null and b/img/icon-mobile.png differ diff --git a/img/icon-model.png b/img/icon-model.png new file mode 100644 index 00000000..83f4d812 Binary files /dev/null and b/img/icon-model.png differ diff --git a/img/icon-prototyper.png b/img/icon-prototyper.png new file mode 100644 index 00000000..6588d91a Binary files /dev/null and b/img/icon-prototyper.png differ diff --git a/img/icon-web.png b/img/icon-web.png new file mode 100644 index 00000000..e86953b2 Binary files /dev/null and b/img/icon-web.png differ diff --git a/img/install-console-overview.png b/img/install-console-overview.png new file mode 100644 index 00000000..572c1d26 Binary files /dev/null and b/img/install-console-overview.png differ diff --git a/img/install-extensions.png b/img/install-extensions.png new file mode 100644 index 00000000..2d48fa6e Binary files /dev/null and b/img/install-extensions.png differ diff --git a/img/install-help.png b/img/install-help.png new file mode 100644 index 00000000..d835ff5f Binary files /dev/null and b/img/install-help.png differ diff --git a/img/install-requirements.gif b/img/install-requirements.gif new file mode 100644 index 00000000..4c0bdc2c Binary files /dev/null and b/img/install-requirements.gif differ diff --git a/img/install-wakanda.png b/img/install-wakanda.png new file mode 100644 index 00000000..d641563e Binary files /dev/null and b/img/install-wakanda.png differ diff --git a/img/mobile-build-dropdown.png b/img/mobile-build-dropdown.png new file mode 100644 index 00000000..7989712c Binary files /dev/null and b/img/mobile-build-dropdown.png differ diff --git a/img/mobile-build-progress.png b/img/mobile-build-progress.png new file mode 100644 index 00000000..d7063b4a Binary files /dev/null and b/img/mobile-build-progress.png differ diff --git a/img/mobile-build.png b/img/mobile-build.png new file mode 100644 index 00000000..fe96f7d0 Binary files /dev/null and b/img/mobile-build.png differ diff --git a/img/mobile-live-reload.gif b/img/mobile-live-reload.gif new file mode 100644 index 00000000..0400f9f0 Binary files /dev/null and b/img/mobile-live-reload.gif differ diff --git a/img/mobile-preview.png b/img/mobile-preview.png new file mode 100644 index 00000000..9f690fac Binary files /dev/null and b/img/mobile-preview.png differ diff --git a/img/mobile-run-devices.png b/img/mobile-run-devices.png new file mode 100644 index 00000000..84b0ad1b Binary files /dev/null and b/img/mobile-run-devices.png differ diff --git a/img/mobile-scss-folder.png b/img/mobile-scss-folder.png new file mode 100644 index 00000000..aaf4f2e6 Binary files /dev/null and b/img/mobile-scss-folder.png differ diff --git a/img/mobile-scss-json-sourcemaps.png b/img/mobile-scss-json-sourcemaps.png new file mode 100644 index 00000000..42e97f4a Binary files /dev/null and b/img/mobile-scss-json-sourcemaps.png differ diff --git a/img/mobile-scss-reload.png b/img/mobile-scss-reload.png new file mode 100644 index 00000000..3720933e Binary files /dev/null and b/img/mobile-scss-reload.png differ diff --git a/img/mobile-scss-working.png b/img/mobile-scss-working.png new file mode 100644 index 00000000..cded0c9c Binary files /dev/null and b/img/mobile-scss-working.png differ diff --git a/img/mobile-simulator-launching.png b/img/mobile-simulator-launching.png new file mode 100644 index 00000000..c8aee4a4 Binary files /dev/null and b/img/mobile-simulator-launching.png differ diff --git a/img/mobile-simulator.png b/img/mobile-simulator.png new file mode 100644 index 00000000..5ef97fc9 Binary files /dev/null and b/img/mobile-simulator.png differ diff --git a/img/mobile-tree-gulpfile.png b/img/mobile-tree-gulpfile.png new file mode 100644 index 00000000..6b41c04d Binary files /dev/null and b/img/mobile-tree-gulpfile.png differ diff --git a/img/mobile-workflow.png b/img/mobile-workflow.png new file mode 100644 index 00000000..70762c5b Binary files /dev/null and b/img/mobile-workflow.png differ diff --git a/img/model-designer-explorer.png b/img/model-designer-explorer.png new file mode 100644 index 00000000..eba9f150 Binary files /dev/null and b/img/model-designer-explorer.png differ diff --git a/img/model-designer-shortcut.png b/img/model-designer-shortcut.png new file mode 100644 index 00000000..2693c973 Binary files /dev/null and b/img/model-designer-shortcut.png differ diff --git a/img/model-designer.png b/img/model-designer.png new file mode 100644 index 00000000..05443174 Binary files /dev/null and b/img/model-designer.png differ diff --git a/img/panel-toggles.png b/img/panel-toggles.png new file mode 100644 index 00000000..0ecd4f63 Binary files /dev/null and b/img/panel-toggles.png differ diff --git a/img/pic_mobileApp.png b/img/pic_mobileApp.png new file mode 100644 index 00000000..329d1f08 Binary files /dev/null and b/img/pic_mobileApp.png differ diff --git a/img/pic_model.png b/img/pic_model.png new file mode 100644 index 00000000..66df0a3a Binary files /dev/null and b/img/pic_model.png differ diff --git a/img/pic_prototype.png b/img/pic_prototype.png new file mode 100644 index 00000000..e5d16ba1 Binary files /dev/null and b/img/pic_prototype.png differ diff --git a/img/pic_webApp.png b/img/pic_webApp.png new file mode 100644 index 00000000..775b5238 Binary files /dev/null and b/img/pic_webApp.png differ diff --git a/img/prototyper-explorer.png b/img/prototyper-explorer.png new file mode 100644 index 00000000..018aee22 Binary files /dev/null and b/img/prototyper-explorer.png differ diff --git a/img/prototyper-run.png b/img/prototyper-run.png new file mode 100644 index 00000000..21deefcb Binary files /dev/null and b/img/prototyper-run.png differ diff --git a/img/prototyper-shortcut.png b/img/prototyper-shortcut.png new file mode 100644 index 00000000..27daeb86 Binary files /dev/null and b/img/prototyper-shortcut.png differ diff --git a/img/prototyper.png b/img/prototyper.png new file mode 100644 index 00000000..8ec53df0 Binary files /dev/null and b/img/prototyper.png differ diff --git a/img/readme-create-pr.png b/img/readme-create-pr.png new file mode 100644 index 00000000..b90580d7 Binary files /dev/null and b/img/readme-create-pr.png differ diff --git a/img/readme-fork-edit-file.png b/img/readme-fork-edit-file.png new file mode 100644 index 00000000..6cd7e39d Binary files /dev/null and b/img/readme-fork-edit-file.png differ diff --git a/img/readme-gh-pages.png b/img/readme-gh-pages.png new file mode 100644 index 00000000..d81354e9 Binary files /dev/null and b/img/readme-gh-pages.png differ diff --git a/img/readme-new-branch-pr.png b/img/readme-new-branch-pr.png new file mode 100644 index 00000000..9bda6ddf Binary files /dev/null and b/img/readme-new-branch-pr.png differ diff --git a/img/readme-open-md-file.png b/img/readme-open-md-file.png new file mode 100644 index 00000000..bc40ed7c Binary files /dev/null and b/img/readme-open-md-file.png differ diff --git a/img/readme-open-pull-request.png b/img/readme-open-pull-request.png new file mode 100644 index 00000000..5b9d75da Binary files /dev/null and b/img/readme-open-pull-request.png differ diff --git a/img/readme-propose-file-change.png b/img/readme-propose-file-change.png new file mode 100644 index 00000000..bfc0e9df Binary files /dev/null and b/img/readme-propose-file-change.png differ diff --git a/img/readme-pushed-branch-pr.png b/img/readme-pushed-branch-pr.png new file mode 100644 index 00000000..65ecbd31 Binary files /dev/null and b/img/readme-pushed-branch-pr.png differ diff --git a/img/toolbar-deploy.png b/img/toolbar-deploy.png new file mode 100644 index 00000000..167daae7 Binary files /dev/null and b/img/toolbar-deploy.png differ diff --git a/img/toolbar-mobile-build.png b/img/toolbar-mobile-build.png new file mode 100644 index 00000000..ff9ceb8c Binary files /dev/null and b/img/toolbar-mobile-build.png differ diff --git a/img/toolbar-mobile-preview.png b/img/toolbar-mobile-preview.png new file mode 100644 index 00000000..5e6abc16 Binary files /dev/null and b/img/toolbar-mobile-preview.png differ diff --git a/img/toolbar-mobile-run.png b/img/toolbar-mobile-run.png new file mode 100644 index 00000000..4a0a784e Binary files /dev/null and b/img/toolbar-mobile-run.png differ diff --git a/img/toolbar-reload-buttons.png b/img/toolbar-reload-buttons.png new file mode 100644 index 00000000..d555fe0f Binary files /dev/null and b/img/toolbar-reload-buttons.png differ diff --git a/img/web-app-creation.png b/img/web-app-creation.png new file mode 100644 index 00000000..d5ea064c Binary files /dev/null and b/img/web-app-creation.png differ diff --git a/img/web-run-dropdown.png b/img/web-run-dropdown.png new file mode 100644 index 00000000..1ef102e8 Binary files /dev/null and b/img/web-run-dropdown.png differ diff --git a/img/web-run-page.png b/img/web-run-page.png new file mode 100644 index 00000000..f82e597b Binary files /dev/null and b/img/web-run-page.png differ diff --git a/img/web-tree-gulpfile.png b/img/web-tree-gulpfile.png new file mode 100644 index 00000000..12d70a23 Binary files /dev/null and b/img/web-tree-gulpfile.png differ diff --git a/img/withWakAppFac.png b/img/withWakAppFac.png new file mode 100644 index 00000000..c108b12c Binary files /dev/null and b/img/withWakAppFac.png differ diff --git a/index-enterprise.md b/index-enterprise.md new file mode 100644 index 00000000..28ff72d8 --- /dev/null +++ b/index-enterprise.md @@ -0,0 +1,5 @@ +--- +id: home +--- + +{% include index.html %} \ No newline at end of file diff --git a/index.md b/index.md new file mode 100644 index 00000000..28ff72d8 --- /dev/null +++ b/index.md @@ -0,0 +1,5 @@ +--- +id: home +--- + +{% include index.html %} \ No newline at end of file diff --git a/installation.md b/installation.md new file mode 100644 index 00000000..487273e7 --- /dev/null +++ b/installation.md @@ -0,0 +1,64 @@ +--- +--- + +# Installation + +## Table of contents + +- [Install Wakanda](#install-wakanda) +- [Setup the mobile stack](#setup-the-mobile-stack) +- [Increase your productivity](#increase-your-productivity) +- [Add extensions](#add-extensions) + +## Install Wakanda + +Download the latest Wakanda **Community Edition** on [wakanda.github.io](https://wakanda.github.io/){:target="blank_"}. +Find the **Enterprise Edition** on [wakanda.io](http://wakanda.io/){:target="blank_"}. + +- On Windows, double-click on the `wakanda-digital-app-factory-xxx.msi` file to launch the installation wizard. +- On Mac OS X, open `wakanda-digital-app-factory-xxx.dmg` file and copy `Wakanda Studio` and `Wakanda Server` in your `Applications` folder: + + + +## Setup the mobile stack + +When you create or open a project, your can check in the console for any missing prerequisites: + + + +For example, you'll need _Xcode_ to create iOS apps or _Android SDK_ for Android apps. + +### Troubleshooting + +Do you need help? Open the _Mobile Troubleshooting App_ from the console or the main menu (_Help_ > _Wakanda Mobile Troubleshooting_). Then, detect and fix common issues: + + + +## Increase your productivity + +### Live reload + +The following message in the console warns you when live reload is deactivated: + + + +If you want the page to reload automatically after any file changes occur, please install [node](https://nodejs.org/){:target="blank_"} and gulp: + + npm install -g gulp + +Close the web preview panel and click again on [Run Page](create-web-app.html). The Studio will install automatically the live-reload requierements: + + + +## Add extensions + +Improve your development workflow adding and updating Studio extensions. +To do so, open the _Add-ons_ app from the toolbar. The _Add-ons_ badge notifies you when extension updates are available: + + + +--- + +Now, you are ready to build your app! + +[Getting Started »](index.html){:class="btn"} diff --git a/js/polyfill.js b/js/polyfill.js new file mode 100644 index 00000000..a701eb3e --- /dev/null +++ b/js/polyfill.js @@ -0,0 +1 @@ +"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(t){var o=Array.prototype.slice.call(arguments,1),n=this,r=function(){},p=function(){return n.apply(this instanceof r?this:t||{},o.concat(Array.prototype.slice.call(arguments)))};return r.prototype=this.prototype||{},p.prototype=new r,p}); \ No newline at end of file diff --git a/prototype.md b/prototype.md new file mode 100644 index 00000000..372d58f1 --- /dev/null +++ b/prototype.md @@ -0,0 +1,37 @@ +--- +--- + +# Prototype your app + +## 1 - Open the default page prototype + + + +`web/prototype/index.waPage` + +> **TIPS**: +> - click on to change the view options (the `.waPage` extension is hidden by default) +> - click on to quickly access the `page prototype` index + +## 2 - Prototype your page + + + +[Learn more »](http://doc.wakanda.org/home2.en.html#/GUI-Designer/GUI-Designer.100-1051423.en.html){:target="_blank"}{:class="btn"} + +## 3 - Run your page + + + +## 4 - Create more pages + + + +> **TIPS** +> - Feel free to create your page prototype directly in the `web` folder or any other sub-folders. + +--- + +Now, create a web application with Wakanda and Angular: + +[Create a web app »](create-web-app.html){:class="btn"} diff --git a/sass-precompilation.md b/sass-precompilation.md new file mode 100644 index 00000000..2481b52a --- /dev/null +++ b/sass-precompilation.md @@ -0,0 +1,289 @@ +--- +--- + +# SASS precompilation + +## Table of contents + +- [Add SASS precompilation to your web app](#add-sass-precompilation-to-your-web-app) +- [Customize settings](#customize-settings) +- [Activate the same workflow for mobile apps](#activate-the-same-workflow-for-mobile-apps) + +## Add SASS precompilation to your web app + +We will see how to add SASS files precompilation to the build process. +You should read the [Build process introduction](build-process-introduction.html) first. + +First we need to add to our `package.json` the following dependency: + +```json +{ + "devDependencies": { + "gulp-sass": "*" + } +} +``` + +Then add the source and the destination folders to the `paths` variable defined in the `gulpfile.js`, as it follows: + +```javascript +var paths = { + // ... html, js and css folders + sass: { + src: [baseFolder + 'scss/**/*.scss'], + dest: baseFolder + 'styles' + } +}; +``` + +Now import the `gulp-sass` dependency and create a Gulp task named `sass` with the following code: + +```javascript +var sass = require('gulp-sass'); + +gulp.task('sass', function(done) { + gulp.src(paths.sass.src) // define sources location + .pipe(sass()) // start sass process + .on('error', sass.logError) // halt on errors + .pipe(gulp.dest(paths.sass.dest)) // copy css into destination + .on('end', done); // quit +}); +``` + +Finally, enable the `watch` task to look for any file change under the `app/scss` folder with `sass` and `reload` tasks as second parameter: + +```javascript +gulp.task('watch', function() { + gulp.watch(paths.sass.src, ['sass', 'reload']); + gulp.watch([ + // ... html, js and css folders + ], ['reload']); +}); +``` + +This way the Gulp `watch` task will now also trigger the `sass` sources precompilation and the live-reload event. + +**Note:** If a Gulp process was already running you must close and re-open your solution to reload the configuration. + + +## Customize settings + +A working `sass` task is now part of the build. We can improve it with additional functionalities: + +### SASS options + +SASS options can be set passing a parameter object to the `sass()` function: + +```javascript +gulp.task('sass', function(done) { + gulp.src(paths.sass.src) + .pipe(sass({ + outputStyle: 'compressed' // produce compressed output + })) + .on('error', sass.logError) + .pipe(gulp.dest(paths.sass.dest)) + .on('end', done); +}); +``` + +SASS compressed output helps to reduce the filesize. + +### Minify and rename files + +A complete minification can reduce the filesize even further: + +```javascript +var minifyCss = require('gulp-minify-css'), + rename = require('gulp-rename'); + +gulp.task('sass', function(done) { + gulp.src(paths.sass.src) + .pipe(sass()) + .on('error', sass.logError) + .pipe(minifyCss()) // clean and minify *.css files + .pipe(rename({ extname: '.min.css' })) // rename *.css to *.min.css + .pipe(gulp.dest(paths.sass.dest)) + .on('end', done); +}); +``` + +**Note:** this functionality requires the following dependencies to be defined in the `package.json` file: + +```json +{ + "devDependencies": { + "gulp-minify-css": "*", + "gulp-rename": "*" + } +} +``` + +### Both compiled and minified versions + +In order to produce both a compiled and a minified version at the same time edit your `sass` task as follows: + +```javascript +var minifyCss = require('gulp-minify-css'), + rename = require('gulp-rename'); + +gulp.task('sass', function(done) { + gulp.src(paths.sass.src) + .pipe(sass()) + .on('error', sass.logError) + .pipe(gulp.dest(paths.sass.dest)) // copy *.css to destination + .pipe(minifyCss()) + .pipe(rename({ extname: '.min.css' })) + .pipe(gulp.dest(paths.sass.dest)) // copy *.min.css to destination + .on('end', done); +}); +``` + +**Note:** this functionality requires the following dependencies to be defined in the `package.json` file: + +```json +{ + "devDependencies": { + "gulp-minify-css": "*", + "gulp-rename": "*" + } +} +``` + +### Sourcemaps +In order to add sourcemaps edit your `sass` task as follows: + +```javascript +var sourcemaps = require('gulp-sourcemaps'); +gulp.task('sass', function(done) { + gulp.src(paths.sass.src) + .pipe(sourcemaps.init()) // generate sourcemaps + .pipe(sass()) + .on('error', sass.logError) + .pipe(sourcemaps.write()) // write sourcemaps into *.css + .pipe(gulp.dest(paths.sass.dest)) + .on('end', done); +}); +``` + +**Note:** this functionality requires the following dependencies to be defined in the `package.json` file: + +```json +{ + "devDependencies": { + "gulp-sourcemaps": "*" + } +} +``` +You can now found your sourcemaps inside the output file as a comment: + +```css +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjo... +``` + +### Minify and rename, original and source maps + +The combination of all: + +```javascript +var sourcemaps = require('gulp-sourcemaps'), + minifyCss = require('gulp-minify-css'), + rename = require('gulp-rename'); + +gulp.task('sass', function(done) { + gulp.src(paths.sass.src) // define sources location + .pipe(sourcemaps.init()) // generate sourcemaps + .pipe(sass()) // start sass process + .on('error', sass.logError) // halt on errors + .pipe(sourcemaps.write()) // write sourcemaps into *.css + .pipe(gulp.dest(paths.sass.dest)) // copy *.css into destination + .pipe(minifyCss()) // clean and minify *.css + .pipe(rename({ extname: '.min.css' })) // rename *.css to *.min.css + .pipe(sourcemaps.write()) // re-write sourcemaps into *.min.css + .pipe(gulp.dest(paths.sass.dest)) // copy *.min.css to destination + .on('end', done); // quit +}); +``` + +**Note:** this functionality requires the following dependencies to be defined in the `package.json` file: + +```json +{ + "devDependencies": { + "gulp-minify-css": "*", + "gulp-rename": "*", + "gulp-sourcemaps": "*" + } +} +``` + +## Activate the same workflow for mobile apps + +We will now evaluate how to integrate the same workflow in our Wakanda Ionic-based mobile application. Inside the `mobile` folder you can find a `gulpfile.js` file. However this build process is slightly different: + +- Ionic includes a live-reload mechanism for `www` folder. Thus a Gulp live-reload implementation is not necessary. +- Ionic already includes a snippet of code to support SASS precompilation. +- Ionic takes into consideration only the Gulp tasks defined in the `ionic.project` file. +- Node.js modules are not installed by default in the `mobile` folder. + +In order: + +1 - Add to the `package.json` inside your `mobile` folder any Gulp dependency you may need. Following the example above we will need to add only `gulp-sourcemaps` to the dependencies already provided: + + + + +2 - Run in the terminal `npm install` while inside your `mobile` folder to install all the Gulp and SASS dependencies defined in the `package.json` file. + +3 - Create a `scss` folder inside the `mobile` folder and put our sass sources inside: + + + +Being outside of the `www` folder, SASS sources won't included in the final application package. + +4 - Customize the `sass` task inside the `gulpfile.js` to be coherent with your project scaffolding: + +```javascript +// 1 - change sass paths like this +var paths = { + sass: { + src: ['./scss/**/*.scss'], + dest: './www/css/' + } +}; + +// 2 - add missing require +var sourcemaps = require('gulp-sourcemaps'); + +// 3 - add missing tasks +gulp.task('sass', function(done) { + gulp.src(paths.sass.src) + .pipe(sourcemaps.init()) + .pipe(sass()) + .on('error', sass.logError) + .pipe(sourcemaps.write()) + .pipe(minifyCss()) + .pipe(rename({ extname: '.min.css' })) + .pipe(gulp.dest(paths.sass.dest)) + .on('end', done); +}); +gulp.task('watch', function() { + gulp.watch(paths.sass.src, ['sass']); // 'reload' task is not necessary +}); +``` + +5 - Finally, tell Ionic which Gulp tasks you want to run. Add this line inside the `ionic.project` file: + +``` + "gulpStartupTasks": ["sass", "watch"], +``` + +6 - Now click on any mobile action button (for instance Preview). If the configuration is correct you should see the following output in the console: + + + + and when saving your sass sources: + + + +**Note:** If a Ionic process was already running you must close and re-open your solution to reload the configuration. + diff --git a/version-control.md b/version-control.md new file mode 100644 index 00000000..8858abbe --- /dev/null +++ b/version-control.md @@ -0,0 +1,61 @@ +--- +--- + +# Version control your code + +## Create a repository + +From the solution explorer, click on to open Git. +Then, click on _Create Git Repository_. + +## Commit your changes + +Add changes to your stage and commit: + + + +

Add a remote repository

+ +Retrieve your remote repository URL from [Wakanda Cloud](https://console.wakanda.io){:target="_blank"} or Github: + +### Wakanda Cloud + +[Create a new cloud server instance](http://docs.wakcloud.com/en/latest/getting_started.html){:target="_blank"} and copy the Git repository URL: + + + +### Github + + + +### Setup + +Click on to open the remote repositories panel. + +And setup your remote settings: + + + + +**IMPORTANT**: the password will be saved as plain text in the `.git/config` file. +You can however leave the Username and Password fields empty and cache your password in Git. + +### Cache your password in Git + +**Mac OS X** + + git config --global credential.helper osxkeychain + +[More info »](https://help.github.com/articles/caching-your-github-password-in-git/#platform-mac){:target="_blank"} + +**Windows** + + git config --global credential.helper wincred + +[More info »](https://help.github.com/articles/caching-your-github-password-in-git/#platform-windows){:target="_blank"} + +--- + +Now, deploy your app: + +[Deploy your app »](deploy-your-app.html){:class="btn"} \ No newline at end of file