diff --git a/.gitignore b/.gitignore index a8ef638bda..7a21a9e41f 100644 --- a/.gitignore +++ b/.gitignore @@ -156,3 +156,7 @@ $RECYCLE.BIN/ ################# *.userprefs *.nugetreferenceswitcher + +#docfx +_site +api diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..44ed3528af --- /dev/null +++ b/docs/README.md @@ -0,0 +1,21 @@ +# Perspex Documentation + +* [API Reference](http://perspex.github.io/) + +## Building + +Download and unzip `docfx.zip` into `Documentation` folder from [DocFX project site](https://github.com/dotnet/docfx/releases). + +**Step 1.** To create `_site` documentation folder run build script + +``` +build.cmd +``` + +**Step 2.** To browse `_site` documentation folder run serve script + +``` +serve.cmd +``` + +And you can view the generated website in your browser `http://localhost:8080`. diff --git a/docs/build.cmd b/docs/build.cmd new file mode 100644 index 0000000000..b11ad76376 --- /dev/null +++ b/docs/build.cmd @@ -0,0 +1,3 @@ +@echo off +docfx metadata +docfx build diff --git a/docs/docfx.json b/docs/docfx.json new file mode 100644 index 0000000000..8775904c6a --- /dev/null +++ b/docs/docfx.json @@ -0,0 +1,55 @@ +{ + "metadata": [ + { + "src": [ + { + "files": [ + "/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj", + "/src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj", + "/src/Markup/Perspex.Markup/Perspex.Markup.csproj", + "/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj", + "/src/Perspex.Animation/Perspex.Animation.csproj", + "/src/Perspex.Application/Perspex.Application.csproj", + "/src/Perspex.Base/Perspex.Base.csproj", + "/src/Perspex.Controls/Perspex.Controls.csproj", + "/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj", + "/src/Perspex.HtmlRenderer/Perspex.HtmlRenderer.csproj", + "/src/Perspex.Input/Perspex.Input.csproj", + "/src/Perspex.Interactivity/Perspex.Interactivity.csproj", + "/src/Perspex.Layout/Perspex.Layout.csproj", + "/src/Perspex.ReactiveUI/Perspex.ReactiveUI.csproj", + "/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj", + "/src/Perspex.Styling/Perspex.Styling.csproj", + "/src/Perspex.Themes.Default/Perspex.Themes.Default.csproj", + "/src/Skia/Perspex.Skia.Desktop/Perspex.Skia.Desktop.csproj", + "/src/Windows/Perspex.Designer/Perspex.Designer.csproj", + "/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj", + "/src/Windows/Perspex.Win32/Perspex.Win32.csproj", + ], + "exclude": [ "**/bin/**", "**/obj/**" ], + "cwd": ".." + } + ], + "dest": "api" + }, + ], + "build": { + "content": + [ + { + "files": ["**/*.yml", "index.md", "tutorial/*.md", "guidelines/*.md", "spec/*.md"], + } + ], + "resource": [ + { + "files": ["images/**", "tutorial/images/**", "guidelines/images/**", "spec/images/**"] + } + ], + "overwrite": "apidoc/*.md", + "globalMetadata": { + "_appTitle": "Perspex Website" + }, + "dest": "_site", + "template": "default" + } +} diff --git a/docs/build.md b/docs/guidelines/build.md similarity index 100% rename from docs/build.md rename to docs/guidelines/build.md diff --git a/docs/contributing.md b/docs/guidelines/contributing.md similarity index 100% rename from docs/contributing.md rename to docs/guidelines/contributing.md diff --git a/docs/guidelines/toc.yml b/docs/guidelines/toc.yml new file mode 100644 index 0000000000..a3ef7bb87d --- /dev/null +++ b/docs/guidelines/toc.yml @@ -0,0 +1,4 @@ +- name: Building Perspex + href: build.md +- name: Contributing + href: contributing.md \ No newline at end of file diff --git a/docs/add-dialogs.png b/docs/images/add-dialogs.png similarity index 100% rename from docs/add-dialogs.png rename to docs/images/add-dialogs.png diff --git a/docs/images/cross-platform.png b/docs/images/cross-platform.png new file mode 100644 index 0000000000..70ded84bf8 Binary files /dev/null and b/docs/images/cross-platform.png differ diff --git a/docs/images/hello-world-xaml.png b/docs/images/hello-world-xaml.png new file mode 100644 index 0000000000..f649984500 Binary files /dev/null and b/docs/images/hello-world-xaml.png differ diff --git a/docs/images/inspection-support.png b/docs/images/inspection-support.png new file mode 100644 index 0000000000..849c590cf5 Binary files /dev/null and b/docs/images/inspection-support.png differ diff --git a/docs/perspex-video.png b/docs/images/perspex-video.png similarity index 100% rename from docs/perspex-video.png rename to docs/images/perspex-video.png diff --git a/docs/screen.png b/docs/images/screen.png similarity index 100% rename from docs/screen.png rename to docs/images/screen.png diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000000..c470b988d2 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,37 @@ +# The Perspex UI Framework + +Cross platform .NET UI Framework with bindings and XAML + +## Current status + +We're pleased to announce that Perspex is now in alpha! + +What does alpha mean? Well, it means that it's now at a stage where you can have a play and hopefully create simple applications. There's now a Visual Studio Extension containing project and item templates that will help you get started, and there's an initial complement of controls. There's still a lot missing, and you will find bugs, and the API will change, but this represents the first time where we've made it somewhat easy to have a play and experiment with the framework. + +## How do I try it out + +The easiest way to try out Perspex is to install the [Visual Studio Extension](https://visualstudiogallery.msdn.microsoft.com/a4542e8a-b56c-4295-8df1-7e220178b873). + +This will add a Perspex project template and a Window template to the standard Visual Studo "Add" dialog (yes, icons still to come :) ): + +![](images/add-dialogs.png) + +Creating a Perspex Project will give you a simple project with a single XAML window. There's currently no designer, and not even any type-checking or intellisense for Perspex's xaml, but it works when you press F5, which is the important part! + +![](images/hello-world-xaml.png) + +You can also find the project [on GitHub](https://github.com/Perspex/Perspex/) + +## News + +You can read news about Perspex on [Groky's blog](http://grokys.github.io/) + +## Cross Platform + +Fow now we can run on Windows, Linux and Mac. + +![](images/cross-platform.png) + +## Inspection support + +![](images/inspection-support.png) diff --git a/docs/serve.cmd b/docs/serve.cmd new file mode 100644 index 0000000000..8d19925938 --- /dev/null +++ b/docs/serve.cmd @@ -0,0 +1,2 @@ +@echo off +docfx serve _site diff --git a/docs/architecture.md b/docs/spec/architecture.md similarity index 100% rename from docs/architecture.md rename to docs/spec/architecture.md diff --git a/docs/defining-properties.md b/docs/spec/defining-properties.md similarity index 100% rename from docs/defining-properties.md rename to docs/spec/defining-properties.md diff --git a/docs/styles.md b/docs/spec/styles.md similarity index 100% rename from docs/styles.md rename to docs/spec/styles.md diff --git a/docs/spec/toc.yml b/docs/spec/toc.yml new file mode 100644 index 0000000000..e5c40d7544 --- /dev/null +++ b/docs/spec/toc.yml @@ -0,0 +1,8 @@ +- name: Perspex Architecture + href: architecture.md +- name: Styling in Perspex + href: styles.md +- name: Defining Properties + href: defining-properties.md +- name: Working with Properties + href: working-with-properties.md \ No newline at end of file diff --git a/docs/working-with-properties.md b/docs/spec/working-with-properties.md similarity index 100% rename from docs/working-with-properties.md rename to docs/spec/working-with-properties.md diff --git a/docs/toc.yml b/docs/toc.yml new file mode 100644 index 0000000000..3720b4fcbe --- /dev/null +++ b/docs/toc.yml @@ -0,0 +1,10 @@ +- name: Home + href: index.md +- name: Getting Started + href: tutorial/ +- name: Guidelines + href: guidelines/ +- name: Specifications + href: spec/ +- name: API Documentation + href: api/ diff --git a/docs/gettingstarted.md b/docs/tutorial/gettingstarted.md similarity index 82% rename from docs/gettingstarted.md rename to docs/tutorial/gettingstarted.md index 21f85a7088..c26b064dde 100644 --- a/docs/gettingstarted.md +++ b/docs/tutorial/gettingstarted.md @@ -1,8 +1,8 @@ -# Getting Started +# Getting Started ## Windows -![](add-dialogs.png) +![](images/add-dialogs.png) The easiest way to try out Perspex is to install the Visual Studio Extension. @@ -12,4 +12,4 @@ This will add a Perspex project template and a Window template to the standard V It is a little more manual on non-Windows platforms, but using Xamarin Studio you can install the Perspex NuGet package. -![](add-packages.png) +![](images/add-packages.png) diff --git a/docs/tutorial/images/add-dialogs.png b/docs/tutorial/images/add-dialogs.png new file mode 100644 index 0000000000..c89d025e01 Binary files /dev/null and b/docs/tutorial/images/add-dialogs.png differ diff --git a/docs/add-packages.png b/docs/tutorial/images/add-packages.png similarity index 100% rename from docs/add-packages.png rename to docs/tutorial/images/add-packages.png diff --git a/docs/tutorial/toc.yml b/docs/tutorial/toc.yml new file mode 100644 index 0000000000..9f4a411cf4 --- /dev/null +++ b/docs/tutorial/toc.yml @@ -0,0 +1,2 @@ +- name: Getting Started + href: gettingstarted.md diff --git a/readme.md b/readme.md index 6eec66c9ae..7d6d49eeb6 100644 --- a/readme.md +++ b/readme.md @@ -5,11 +5,11 @@ A multi-platform .NET UI framework. It can run on Windows, Linux, Mac OS X, iOS and Android. -![](docs/screen.png) +![](docs/images/screen.png) Desktop platforms: -![](docs/perspex-video.png) +![](docs/images/perspex-video.png) Mobile platforms: @@ -43,19 +43,19 @@ framework. ## Documentation As mentioned above, Perspex is still in alpha and as such there's not much documentation yet. You can -take a look at the [getting started page](docs/gettingstarted.md) for an +take a look at the [getting started page](docs/tutorial/gettingstarted.md) for an overview of how to get started but probably the best thing to do for now is to already know a little bit about WPF/Silverlight/UWP/XAML and ask questions in our [Gitter room](https://gitter.im/Perspex/Perspex). -There's also a high-level [architecture document](docs/architecture.md) that is currently a little bit +There's also a high-level [architecture document](docs/spec/architecture.md) that is currently a little bit out of date, and I've also started writing blog posts on Perspex at http://grokys.github.io/. Contributions are always welcome! ## Building and Using -See the [build instructions here](https://github.com/grokys/Perspex/blob/master/docs/build.md) +See the [build instructions here](https://github.com/grokys/Perspex/blob/master/docs/guidelines/build.md) ## Contributing ## -Please read the [contribution guidelines](docs/contributing.md) before submitting a pull request. +Please read the [contribution guidelines](docs/guidelines/contributing.md) before submitting a pull request.