This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/royale-docs.git


The following commit(s) were added to refs/heads/master by this push:
     new b97ef29  use permalinks in all "features" pages
b97ef29 is described below

commit b97ef29c8d358ede3a415ce3d03dc1653d84fb5f
Author: Carlos Rovira <[email protected]>
AuthorDate: Mon Sep 2 19:02:52 2019 +0200

    use permalinks in all "features" pages
---
 README.md                                                 |  8 +++++---
 component-sets/jewel.md                                   |  4 ++--
 component-sets/jewel/jewel-alert.md                       |  2 +-
 component-sets/jewel/jewel-theme-creation.md              |  4 ++--
 component-sets/jewel/jewel-themes.md                      |  2 +-
 create-an-Application.md                                  |  2 +-
 create-an-application/application-structure.md            |  2 +-
 .../application-tutorial/value-objects.md                 |  2 +-
 create-an-application/application-tutorial/view.md        |  2 +-
 .../migrate-an-existing-app/migrate-from-flex.md          |  2 +-
 features-and-concepts.md                                  | 15 ++++++++-------
 features/actionscript/abstract-classes.md                 |  7 ++++---
 features/actionscript/metadata.md                         |  1 +
 features/actionscript/private-constructors.md             |  7 ++++---
 features/as3.md                                           |  5 +++--
 features/data-binding.md                                  |  2 ++
 features/external-interface.md                            |  3 ++-
 features/externs.md                                       |  3 ++-
 features/loading-external-data.md                         |  8 +++++---
 features/loading-external-data/amf.md                     |  3 +++
 features/loading-external-data/httpservice.md             |  3 ++-
 features/loading-external-data/json.md                    |  3 ++-
 features/modules.md                                       |  1 +
 features/mxml.md                                          |  1 +
 features/payg.md                                          |  3 ++-
 features/strands-and-beads.md                             |  3 ++-
 features/styling.md                                       |  3 ++-
 features/view-states.md                                   |  3 ++-
 index.md                                                  |  2 +-
 user-interface/components.md                              |  4 ++--
 welcome/high-level-view.md                                |  6 +++---
 31 files changed, 70 insertions(+), 46 deletions(-)

diff --git a/README.md b/README.md
index 39ec9f3..a9442a5 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ We produce four flavors of documentation:
 
 1. *Tutorials* to show how to do a complete thing, with source code a reader 
can copy and learn from. These generally appear on the website blog at the 
moment.
 2. *How-to guides* that explain how to achieve something in Royale that is 
either of a general nature ("How to find the bead you need") or does not merit 
a full tutorial ("How to disable an input field"). This material should be in 
the user documentation.
-3. *Explanations* that explain the "why" of Royale features--why we do it this 
way, or avoid doing it that way. This appears in the [High Level 
View](welcome/high-level-view.html){:target='_blank'} pages of the user 
documentation.
+3. *Explanations* that explain the "why" of Royale features--why we do it this 
way, or avoid doing it that way. This appears in the [High Level 
View](welcome/high-level-view){:target='_blank'} pages of the user 
documentation.
 4. *Technical references* are all the gritty details of what each Royale 
component, bead, and feature requires, produces, and can do. This material 
would normally be in the [ASDoc 
reference](https://royale.apache.org/asdoc/){:target='_blank'}, the [framework 
wiki](https://github.com/apache/royale-asjs/wiki){:target='_blank'}, or the 
[compiler 
wiki](https://github.com/apache/royale-compiler/wiki){:target='_blank'}.
 
 No one flavor is better in all circumstances than the others. All 
contributions strengthen Royale by expanding the number of people who can find 
the answers they need to create applications.
@@ -59,9 +59,11 @@ Use HTML comments at the top of the document for any 
explanatory notes for the d
 
 ## Links
 
-In the .md files, links have to be full paths without the leading slash. So to 
link to the published, HTML, version of features/as3.md, you would use
+In the .md files, links have to be full paths without the leading slash. The 
link to the published HTML version of features/as3.md, is 
`[AS3](features/as3.html)`, but we want to use permalinks so the link to use 
should be:
 
-`[AS3](features/as3.html)` 
+`[AS3](features/as3)`
+
+and the permalink on that page will be, `permalink: /features/as3`
 
 without the leading "/". Links are case-sensitive, and you need to insert 
`%20` for any space that appears in the target file's name. Check the guidance 
about file names, above.
 
diff --git a/component-sets/jewel.md b/component-sets/jewel.md
index 87f81c7..9e42f7b 100644
--- a/component-sets/jewel.md
+++ b/component-sets/jewel.md
@@ -22,9 +22,9 @@ title: Jewel
 
 A set of modern UI components
 
-Jewel is a themeable and responsive set of user interface components for 
Apache Royale to help you quickly build the front end of your applications with 
[ActionScript](features/as3.html) & [MXML](features/mxml.html).
+Jewel is a themeable and responsive set of user interface components for 
Apache Royale to help you quickly build the front end of your applications with 
[ActionScript](features/as3) & [MXML](features/mxml).
 
-It's based by design on [Basic](component-sets/basic.html) components. But 
while Basic is very strict with concepts like [PAYG](features/payg.html), in 
Jewel, while PAYG is important, when necessary we prioritize other things like 
responsiveness, themes and look and feel.
+It's based by design on [Basic](component-sets/basic.html) components. But 
while Basic is very strict with concepts like [PAYG](features/payg), in Jewel, 
while PAYG is important, when necessary we prioritize other things like 
responsiveness, themes and look and feel.
 
 ## Browser Support
 
diff --git a/component-sets/jewel/jewel-alert.md 
b/component-sets/jewel/jewel-alert.md
index f32be09..46f19d7 100644
--- a/component-sets/jewel/jewel-alert.md
+++ b/component-sets/jewel/jewel-alert.md
@@ -37,7 +37,7 @@ Available since version __0.9.4__
 The `Alert` component displays a message and one or more buttons in a window 
that pops up over all other controls and views. 
 It uses the `AlertView` bead to display a [modal 
dialog](https://en.wikipedia.org/wiki/Modal_window){:target='_blank'} with a 
title and a variety of buttons configured through the flag property of its 
`show` static function.
 
-> `Alert` uses the HTML dialog element, which currently has very limited 
cross-browser support. To ensure support across all modern browsers, we use the 
dialogPolyfill [externs](features/externs.html).
+> `Alert` uses the HTML dialog element, which currently has very limited 
cross-browser support. To ensure support across all modern browsers, we use the 
dialogPolyfill [externs](features/externs).
 
 ## Example of use
 
diff --git a/component-sets/jewel/jewel-theme-creation.md 
b/component-sets/jewel/jewel-theme-creation.md
index 8fdb998..b7a8a12 100644
--- a/component-sets/jewel/jewel-theme-creation.md
+++ b/component-sets/jewel/jewel-theme-creation.md
@@ -40,11 +40,11 @@ The `default.css` file is the resuling CSS file that holds 
all CSS definitions f
 
 ## Jewel Library
 
-Here you'll find the [ActionScript](features/as3.html) classes that define 
each component and support class files components need to work properly. You'll 
find a `sass` folder with a `.sass` file for each component which holds all 
_structural_ definitions. Those definitions can be normal _CSS rules_ or 
_royale bead definition rules_.
+Here you'll find the [ActionScript](features/as3) classes that define each 
component and support class files components need to work properly. You'll find 
a `sass` folder with a `.sass` file for each component which holds all 
_structural_ definitions. Those definitions can be normal _CSS rules_ or 
_royale bead definition rules_.
 
 You'll never find a style rule in the Jewel library that define _colors, 
lines, fonts, or shapes_ (the theme we locate in the __theme library__ handles 
these values). We'll find only the CSS rules needed to generate each jewel 
component visual structure (i.e: display, position, z-index, overflow,...), and 
the default ActionScript bead classes that ship with a concrete component per 
platform (i.e: BeadView, BeadModel, BeadController, BeadLayout,...).
 
-> Apache Royale uses CSS through all the framwework to link [beads to the 
component's strand](features/strands-and-beads.html) so components define the 
default composition of beads via CSS.
+> Apache Royale uses CSS through all the framwework to link [beads to the 
component's strand](features/strands-and-beads) so components define the 
default composition of beads via CSS.
 
 ## Jewel Theme Library
 
diff --git a/component-sets/jewel/jewel-themes.md 
b/component-sets/jewel/jewel-themes.md
index 0c710d7..e45ff46 100644
--- a/component-sets/jewel/jewel-themes.md
+++ b/component-sets/jewel/jewel-themes.md
@@ -23,7 +23,7 @@ title: Jewel Themes
 The look and feel of the jewel component set
 
 Jewel component set focus on themes. Themes provides the capability of change 
the appearance of _all_ components at once. 
-A theme is a predefined CSS file (and optionally a other assets like images) 
that holds the definitions of each Jewel component, its subcomponents and the 
default [beads](features/strands-and-beads.html) used to configure that 
components. 
+A theme is a predefined CSS file (and optionally a other assets like images) 
that holds the definitions of each Jewel component, its subcomponents and the 
default [beads](features/strands-and-beads) used to configure that components. 
 
 Royale use the theme to add the right css selectors to the final compilation 
so when the user loads the application the required css and other files are 
loaded and the application shows a concrete look and feel.
 
diff --git a/create-an-Application.md b/create-an-Application.md
index 0c495d2..f2d2555 100644
--- a/create-an-Application.md
+++ b/create-an-Application.md
@@ -33,7 +33,7 @@ This document is divided into several sections:
 
 [Security](create-an-application/security.html) provides more information 
about making sure hackers can't use your app to be malicous and about dealing 
with common security restrictions when your app wants to access external 
resources.
 
-[Modules](features/modules.html) discusses how to break your application into 
pieces so it doesn't have to all get downloaded at once.  Or have the whole 
thing compiled at once.
+[Modules](features/modules) discusses how to break your application into 
pieces so it doesn't have to all get downloaded at once.  Or have the whole 
thing compiled at once.
 
 [Royale code conventions](create-an-application/code-conventions.html) 
explains the typical ways Royale developers name files, classes, function, 
variables and more.
 
diff --git a/create-an-application/application-structure.md 
b/create-an-application/application-structure.md
index 144b46b..3a7c1cc 100644
--- a/create-an-application/application-structure.md
+++ b/create-an-application/application-structure.md
@@ -32,7 +32,7 @@ Let's say you are creating a project called MyFirstRoyaleApp. 
Create a MyFirstRo
 
 If you use <a href="https://maven.apache.org/"; target="_blank">Apache 
Maven</a> to build your app, you can use one of the Maven archetypes, which put 
the main application source code 3 levels deep in a "src/main/royale" folder 
structure. Other kinds of files then go in "src/main/resource", 
"src/main/config" and so on. Maven instructs the compiler to put the output in 
a "target/javascript/bin" folder.
 
-Most Royale applications use an [MXML](features/mxml.html) file as the main 
application file. Other files are written in MXML or 
[ActionScript](features/as3.html) depending on whether you are assembling 
pieces or writing custom logic. You can write a Royale Application without 
using MXML at all, but you'll end up writing more code.
+Most Royale applications use an [MXML](features/mxml) file as the main 
application file. Other files are written in MXML or 
[ActionScript](features/as3) depending on whether you are assembling pieces or 
writing custom logic. You can write a Royale Application without using MXML at 
all, but you'll end up writing more code.
 
 So, if you decide to use MXML as your main application file, then your folder 
structure might look like this:
 
diff --git a/create-an-application/application-tutorial/value-objects.md 
b/create-an-application/application-tutorial/value-objects.md
index 61fb413..98444d2 100644
--- a/create-an-application/application-tutorial/value-objects.md
+++ b/create-an-application/application-tutorial/value-objects.md
@@ -48,7 +48,7 @@ public class LogEntry
 ```
 You can download this file from 
[here](https://github.com/apache/royale-asjs/blob/develop/examples/express/GitHubCommitLogViewer/src/main/royale/LogEntry.as).
 
-Notice the use of [Bindable](features/data-binding.html) metadata. This 
special syntax indicates to the compiler that there are no DataBinding 
notifications for the message field.  Once it is set, it will not change. We 
could also specify "message" as a "const" instead of a "var" and set up a 
constructor with parameters, but constructor parameters are not allowed for 
anything that wants to be declared in MXML.
+Notice the use of [Bindable](features/data-binding) metadata. This special 
syntax indicates to the compiler that there are no DataBinding notifications 
for the message field.  Once it is set, it will not change. We could also 
specify "message" as a "const" instead of a "var" and set up a constructor with 
parameters, but constructor parameters are not allowed for anything that wants 
to be declared in MXML.
 
 Once we have the LogEntry Value Object, we use LogEntry throughout the app. In 
the conversion loop, we change it to look like this:
 
diff --git a/create-an-application/application-tutorial/view.md 
b/create-an-application/application-tutorial/view.md
index e43f2cd..cb7d1ba 100644
--- a/create-an-application/application-tutorial/view.md
+++ b/create-an-application/application-tutorial/view.md
@@ -61,7 +61,7 @@ myLabel.text = projectName;
 
 And we'd also have to write change detection code if the value could change at 
runtime (which it doesn't in this case). 
 
-See more about what this powerful feature can do for you on this page: [Data 
binding](features/data-binding.html).
+See more about what this powerful feature can do for you on this page: [Data 
binding](features/data-binding).
 
 Also, a commit message might be too long to read in a row of a DataGrid so we 
will add a place to display the longer message of a selected commit.
 
diff --git a/create-an-application/migrate-an-existing-app/migrate-from-flex.md 
b/create-an-application/migrate-an-existing-app/migrate-from-flex.md
index 7c04fe1..4d24fb4 100644
--- a/create-an-application/migrate-an-existing-app/migrate-from-flex.md
+++ b/create-an-application/migrate-an-existing-app/migrate-from-flex.md
@@ -21,7 +21,7 @@ title: Migrate from Flex
 <!-- This is from material created by Peter Ent and modified by Tom Chiverton: 
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=34013930 -->
 # Migrate from Flex
 
-If you have developed applications using [Apache Flex 
SDK](https://flex.apache.org/){:target='_blank'}, or Adobe Flex before it, your 
applications probably combine [MXML](features/mxml.html) and 
[ActionScript](features/as3.html) files along with resources like images and 
audio files; and some of the MXML files have <fx:Script> tags with ActionScript 
snippets inside them. If that is the case, you will find yourself at home 
working with Apache Royale. The big difference is not so much the  [...]
+If you have developed applications using [Apache Flex 
SDK](https://flex.apache.org/){:target='_blank'}, or Adobe Flex before it, your 
applications probably combine [MXML](features/mxml) and 
[ActionScript](features/as3) files along with resources like images and audio 
files; and some of the MXML files have <fx:Script> tags with ActionScript 
snippets inside them. If that is the case, you will find yourself at home 
working with Apache Royale. The big difference is not so much the code you u 
[...]
 
 It is not yet possible to just import an existing Flex application into Apache 
Royale and then produce output in JavaScript that will run almost anywhere. 
However, you may need to do less hands-on conversion than you think to get to 
where you can produce your application, transpiled to JavaScript, through 
Royale.
 
diff --git a/features-and-concepts.md b/features-and-concepts.md
index e0a69d3..b5b8c94 100644
--- a/features-and-concepts.md
+++ b/features-and-concepts.md
@@ -17,6 +17,7 @@
 layout: docpage
 title: Features and Concepts
 description: Features and Concepts
+permalink: /features-and-concepts
 ---
 
 # Features and Concepts
@@ -27,26 +28,26 @@ Here are some things you may need to know to help you be 
more productive with Ro
 
 ## AS3 and MXML Languages
 
-Royale uses both a declarative markup language called 
[MXML](features/mxml.html) and a scripting language called 
[ActionScript](features/as3.html) that is like JavaScript, but with classes, 
interfaces and types.  This allows you to more efficiently declare the static 
portions of your application and write up the dynamic portions in a language 
where the compiler can catch more errors sooner.
+Royale uses both a declarative markup language called [MXML](features/mxml) 
and a scripting language called [ActionScript](features/as3) that is like 
JavaScript, but with classes, interfaces and types.  This allows you to more 
efficiently declare the static portions of your application and write up the 
dynamic portions in a language where the compiler can catch more errors sooner.
 
 ## Pay as you go (PAYG)
 
-Royale provides a variety of [component 
sets](./user-interface/components.html), each tuned towards different 
applications requirements. Components are designed with a ["Pay as you 
go"](features/payg.html) philosophy. Only the most common functionality is 
built into the component, and other options are added as plugins called Beads. 
Components designed this way use to be small and fast, and don't have lots of 
built-in customization options that will never use most of the times. You can [ 
[...]
+Royale provides a variety of [component 
sets](./user-interface/components.html), each tuned towards different 
applications requirements. Components are designed with a ["Pay as you 
go"](features/payg) philosophy. Only the most common functionality is built 
into the component, and other options are added as plugins called Beads. 
Components designed this way use to be small and fast, and don't have lots of 
built-in customization options that will never use most of the times. You can 
[read  [...]
 
 ## Strands and Beads
 
-The underlying component patterns in most Royale components rely on a plug-in 
model.  Instead of making large component classes with lots of code baked in, 
each individual feature of a component is designed as its own class with an 
interface marking it as a "Bead", and then the component itself is called a 
"Strand" and Beads are placed on the Strand to compose a Royale component.  You 
can [read more about Strands and Beads here](features/strands-and-beads.html).
+The underlying component patterns in most Royale components rely on a plug-in 
model.  Instead of making large component classes with lots of code baked in, 
each individual feature of a component is designed as its own class with an 
interface marking it as a "Bead", and then the component itself is called a 
"Strand" and Beads are placed on the Strand to compose a Royale component.  You 
can [read more about Strands and Beads here](features/strands-and-beads).
 
 ## ExternalInterface and Externs
 
-Sometimes you may want your Royale application to call an external piece of 
JavaScript that is also hosted in your web page, or even for some extenal 
JavaScript from your page to call into the Royale application. In the Flex (and 
Flash) world, there was the possibility to use the `ExternalInterface` class to 
achieve this functionality. If you want this in Royale, there are some options 
available that you can [read about here](features/external-interface.html).
+Sometimes you may want your Royale application to call an external piece of 
JavaScript that is also hosted in your web page, or even for some extenal 
JavaScript from your page to call into the Royale application. In the Flex (and 
Flash) world, there was the possibility to use the `ExternalInterface` class to 
achieve this functionality. If you want this in Royale, there are some options 
available that you can [read about here](features/external-interface).
 
-Another option are externs, wich is uses [Google Closure Compiler 
(GCC)](https://developers.google.com/closure/compiler/){:target='_blank'} to 
declare that a name for a class, property or function is defined in external 
code and so should not be renamed when application code is compiled. Apache 
Royale can use the properties of the external library, and you can even see 
them as options if you are using an __IDE__, with _code intelligence_ enabled. 
[read about here](features/externs.html).
+Another option are externs, wich is uses [Google Closure Compiler 
(GCC)](https://developers.google.com/closure/compiler/){:target='_blank'} to 
declare that a name for a class, property or function is defined in external 
code and so should not be renamed when application code is compiled. Apache 
Royale can use the properties of the external library, and you can even see 
them as options if you are using an __IDE__, with _code intelligence_ enabled. 
[read about here](features/externs).
 
 ## Data Binding
 
-[read about here](features/data-binding.html)
+[read about here](features/data-binding)
 
 ## View States
 
-[read about here](features/view-states.html)
\ No newline at end of file
+[read about here](features/view-states)
\ No newline at end of file
diff --git a/features/actionscript/abstract-classes.md 
b/features/actionscript/abstract-classes.md
index f946593..5aaaa41 100644
--- a/features/actionscript/abstract-classes.md
+++ b/features/actionscript/abstract-classes.md
@@ -17,17 +17,18 @@
 layout: docpage
 title: Abstract classes
 description: Abstract classes in ActionScript
+permalink: /features/as3/abstract-classes
 ---
 
 # Abstract classes in ActionScript
 
 -allow-abstract-classes
 
-[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for 
declaring `abstract` classes in [ActionScript](features/as3.html). An abstract 
class cannot be instantiated using the `new` keyword, meaning that it must be 
subclassed. Additionally, an abstract class may declare `abstract` methods that 
do not have a function body. Abstract methods must be implemented by the 
concrete subclass, similar to how the methods of an interface must also be 
implemented.
+[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for 
declaring `abstract` classes in [ActionScript](features/as3). An abstract class 
cannot be instantiated using the `new` keyword, meaning that it must be 
subclassed. Additionally, an abstract class may declare `abstract` methods that 
do not have a function body. Abstract methods must be implemented by the 
concrete subclass, similar to how the methods of an interface must also be 
implemented.
 
 ## Enable abstract classes
 
-Like other [new ActionScript language 
features](features/as3.html#new-actionscript-language-features-in-royale) that 
Royale adds, abstract classes are enabled by default. To disable abstract 
classes in your application, use the `-allow-abstract-classes` compiler option.
+Like other [new ActionScript language 
features](features/as3#new-actionscript-language-features-in-royale) that 
Royale adds, abstract classes are enabled by default. To disable abstract 
classes in your application, use the `-allow-abstract-classes` compiler option.
 
 ```sh
 mxmlc -allow-abstract-classes=false MyApp.mxml
@@ -116,4 +117,4 @@ Checking whether a class is abstract happens at 
compile-time only. However, by u
 
 If a SWC library contains classes with abstract classes, applications using 
that library must also enable abstract classes before the compiler will enforce 
any restrictions.
 
-Other ActionScript compilers, such as the one in the [Apache Flex 
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce 
private constructors. Attemping to pass source code or SWC libraries that 
contain classes with private constructors to another compiler may result in 
compile-time errors or unexpected behavior at run-time. In other words, to 
write 100% portable ActionScript code that works with any compiler, you should 
avoid using abstract classes and any of Roy [...]
+Other ActionScript compilers, such as the one in the [Apache Flex 
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce 
private constructors. Attemping to pass source code or SWC libraries that 
contain classes with private constructors to another compiler may result in 
compile-time errors or unexpected behavior at run-time. In other words, to 
write 100% portable ActionScript code that works with any compiler, you should 
avoid using abstract classes and any of Roy [...]
diff --git a/features/actionscript/metadata.md 
b/features/actionscript/metadata.md
index 65777ce..1476324 100644
--- a/features/actionscript/metadata.md
+++ b/features/actionscript/metadata.md
@@ -17,6 +17,7 @@
 layout: docpage
 title: Metadata
 description: Metadata
+permalink: /features/as3/metadata
 ---
 
 # Metadata
diff --git a/features/actionscript/private-constructors.md 
b/features/actionscript/private-constructors.md
index 3a02a48..614f097 100644
--- a/features/actionscript/private-constructors.md
+++ b/features/actionscript/private-constructors.md
@@ -17,17 +17,18 @@
 layout: docpage
 title: Private constructors
 description: Private constructors in ActionScript
+permalink: /features/as3/private-constructors
 ---
 
 # Private constructors in ActionScript
 
 -allow-private-constructors
 
-[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for 
declaring the constructor of a class `private` instead of `public` in 
[ActionScript](features/as3.html). When a constructor is private, it cannot be 
instantiated with the `new` keyword outside of the class where it is defined. 
Private constructors are commonly used for implementing the *singleton* design 
pattern, which is when only one instance of a particular class should ever be 
created.
+[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for 
declaring the constructor of a class `private` instead of `public` in 
[ActionScript](features/as3). When a constructor is private, it cannot be 
instantiated with the `new` keyword outside of the class where it is defined. 
Private constructors are commonly used for implementing the *singleton* design 
pattern, which is when only one instance of a particular class should ever be 
created.
 
 ## Enable private constructors
 
-Like other [new ActionScript language 
features](features/as3.html#new-actionscript-language-features-in-royale) that 
Royale adds, are enabled by default. To disable private constructors in your 
application, use the `-allow-private-constructors` compiler option.
+Like other [new ActionScript language 
features](features/as3#new-actionscript-language-features-in-royale) that 
Royale adds, are enabled by default. To disable private constructors in your 
application, use the `-allow-private-constructors` compiler option.
 
 ```sh
 mxmlc -allow-private-constructors=false MyApp.mxml
@@ -102,5 +103,5 @@ Checking whether a constructor is private or not happens at 
compile-time only. H
 
 If a SWC library contains classes with private constructors, applications 
using that library must also enable private constructors before the compiler 
will enforce any restrictions.
 
-Other ActionScript compilers, such as the one in the [Apache Flex 
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce 
private constructors. Attemping to pass source code or SWC libraries that 
contain classes with private constructors to another compiler may result in 
compile-time errors or unexpected behavior at run-time. In other words, to 
write 100% portable ActionScript code that works with any compiler, you should 
avoid using private constructors and any of [...]
+Other ActionScript compilers, such as the one in the [Apache Flex 
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce 
private constructors. Attemping to pass source code or SWC libraries that 
contain classes with private constructors to another compiler may result in 
compile-time errors or unexpected behavior at run-time. In other words, to 
write 100% portable ActionScript code that works with any compiler, you should 
avoid using private constructors and any of [...]
 
diff --git a/features/as3.md b/features/as3.md
index 90c6196..a02956b 100644
--- a/features/as3.md
+++ b/features/as3.md
@@ -16,6 +16,7 @@
 
 layout: docpage
 title: ActionScript 3 (AS3)
+permalink: /features/as3
 ---
 
 # ActionScript 3 (AS3)
@@ -55,8 +56,8 @@ The Royale compiler extends the ActionScript language with 
useful, new features.
 
 The following new ActionScript features are available with the Royale compiler:
 
-* [Abstract Classes](features/actionscript/abstract-classes.html)
-* [Private Constructors](features/actionscript/private-constructors.html)
+* [Abstract Classes](features/as3/abstract-classes)
+* [Private Constructors](features/as3/private-constructors)
 
 ### Limitations of ActionScript language extensions
 
diff --git a/features/data-binding.md b/features/data-binding.md
index b1a08f0..3363bee 100644
--- a/features/data-binding.md
+++ b/features/data-binding.md
@@ -16,6 +16,8 @@
 
 layout: docpage
 title: Data binding
+permalink: /features/data-binding
 ---
 # Data binding
+
 *information coming soon.*
diff --git a/features/external-interface.md b/features/external-interface.md
index ff8fe85..9a1066c 100644
--- a/features/external-interface.md
+++ b/features/external-interface.md
@@ -17,6 +17,7 @@
 layout: docpage
 title: ExternalInterface
 description: Calling to/from External JavaScript
+permalink: /features/external-interface
 ---
 
 # ExternalInterface
@@ -76,4 +77,4 @@ MyJSInterface.testFunction("This will be passed to TestFunc");
 
 ## Externs
 
-Finally a better and recommended way is to use 
[Externs](features/externs.html) to know another way to communicate to/from 
External JavaScript that brings many benefits like _code completion_ and _code 
intelligence_ since externs code is considered standard __ActionScript__ code.
\ No newline at end of file
+Finally a better and recommended way is to use [Externs](features/externs) to 
know another way to communicate to/from External JavaScript that brings many 
benefits like _code completion_ and _code intelligence_ since externs code is 
considered standard __ActionScript__ code.
\ No newline at end of file
diff --git a/features/externs.md b/features/externs.md
index b83fecb..93b87f3 100644
--- a/features/externs.md
+++ b/features/externs.md
@@ -17,6 +17,7 @@
 layout: docpage
 title: Externs
 description: Use external javascript libraries in ActiopnScript
+permalink: /features/externs
 ---
 
 # Externs
@@ -92,4 +93,4 @@ To learn more about using the huge range of external 
JavaScript libraries that i
 
 ## ExternalInterface
 
-Check [ExternalInterface](features/external-interface.html) to know another 
way to communicate to/from External JavaScript.
\ No newline at end of file
+Check [ExternalInterface](features/external-interface) to know another way to 
communicate to/from External JavaScript.
\ No newline at end of file
diff --git a/features/loading-external-data.md 
b/features/loading-external-data.md
index 3c120d5..b15fc23 100644
--- a/features/loading-external-data.md
+++ b/features/loading-external-data.md
@@ -17,13 +17,15 @@
 layout: docpage
 title: Loading External Data
 description: Loading External Data
+permalink: /features/loading-external-data
 ---
 
 # Loading External Data
 
 Loading External Data
 
-* [HTTPService](features/loading-external-data/httpservice.html)
-* [JSON](features/loading-external-data/json.html)
-* [AMF](features/loading-external-data/amf.html)
+* [HTTPService](features/loading-external-data/httpservice)
+* [JSON](features/loading-external-data/json)
+* [AMF](features/loading-external-data/amf)
 
+*information coming soon.*
\ No newline at end of file
diff --git a/features/loading-external-data/amf.md 
b/features/loading-external-data/amf.md
index 46b68e1..8022f34 100644
--- a/features/loading-external-data/amf.md
+++ b/features/loading-external-data/amf.md
@@ -17,11 +17,14 @@
 layout: docpage
 title: AMF
 description: ActionScript Message Format
+permalink: /features/loading-external-data/amf
 ---
 
 # AMF
 
 ActionScript Message Format
 
+*information coming soon.*
+
 
 
diff --git a/features/loading-external-data/httpservice.md 
b/features/loading-external-data/httpservice.md
index 5c02c17..214d3ea 100644
--- a/features/loading-external-data/httpservice.md
+++ b/features/loading-external-data/httpservice.md
@@ -17,11 +17,12 @@
 layout: docpage
 title: HTTPService
 description: HTTPService
+permalink: /features/loading-external-data/httpservice
 ---
 
 # HTTPService
 
-HTTPService
+*information coming soon.*
 
 
 
diff --git a/features/loading-external-data/json.md 
b/features/loading-external-data/json.md
index b5d4d47..71a14c4 100644
--- a/features/loading-external-data/json.md
+++ b/features/loading-external-data/json.md
@@ -17,11 +17,12 @@
 layout: docpage
 title: JSON
 description: JSON
+permalink: /features/loading-external-data/json
 ---
 
 # JSON
 
-JSON
+*information coming soon.*
 
 
 
diff --git a/features/modules.md b/features/modules.md
index b0672c9..9adc574 100644
--- a/features/modules.md
+++ b/features/modules.md
@@ -17,6 +17,7 @@
 layout: docpage
 title: Modules
 description: Break you Application in parts
+permalink: /features/modules
 ---
 
 # Modules
diff --git a/features/mxml.md b/features/mxml.md
index 4c0c807..ae2d080 100644
--- a/features/mxml.md
+++ b/features/mxml.md
@@ -16,6 +16,7 @@
 
 layout: docpage
 title: MXML
+permalink: /features/mxml
 ---
 
 # MXML
diff --git a/features/payg.md b/features/payg.md
index 7cd1c68..711fc64 100644
--- a/features/payg.md
+++ b/features/payg.md
@@ -17,6 +17,7 @@
 layout: docpage
 title: PAYG
 description: Pay as you Go
+permalink: /features/payg
 ---
 
 # PAYG
@@ -73,7 +74,7 @@ However, we don't want to ignore DRY. Using subclasses in 
extended components ca
 
 ### Strands and Beads
 
-The [Strands and Beads](features/strands-and-beads.html) concept is a metaphor 
for adding extra functionality (beads) onto a component (strand). _Beads_ are 
the modular units of functionality that can be added to the _strand_ (base 
component).
+The [Strands and Beads](features/strands-and-beads) concept is a metaphor for 
adding extra functionality (beads) onto a component (strand). _Beads_ are the 
modular units of functionality that can be added to the _strand_ (base 
component).
  
 ### Compiler
 
diff --git a/features/strands-and-beads.md b/features/strands-and-beads.md
index 66896cf..62b1a84 100644
--- a/features/strands-and-beads.md
+++ b/features/strands-and-beads.md
@@ -17,13 +17,14 @@
 layout: docpage
 title: Strands and Beads
 description: Adding functionality to a component through composition
+permalink: /features/strands-and-beads
 ---
 
 # Strands and Beads
 
 Adding functionality to a component through composition
 
-Strands and beads are key concepts in Royale, related to the 
[PAYG](features/payg.html)  (pay as you go) concept. The idea is to keep 
component code as lightweight as possible, and to add functionality and 
complexity only to the components that need it.
+Strands and beads are key concepts in Royale, related to the 
[PAYG](features/payg)  (pay as you go) concept. The idea is to keep component 
code as lightweight as possible, and to add functionality and complexity only 
to the components that need it.
 
 {:align="center"}
 ![Fig 1: MVC with Strands and 
Beads](assets/images/strand-beads/strand-bead-1.jpg){:height="70%" width="70%"}
diff --git a/features/styling.md b/features/styling.md
index af488a0..960fd30 100644
--- a/features/styling.md
+++ b/features/styling.md
@@ -17,8 +17,9 @@
 layout: docpage
 title: Styling
 description: Styling
+permalink: /features/styling
 ---
 
 # Styling
 
-Styling
\ No newline at end of file
+*information coming soon.*
\ No newline at end of file
diff --git a/features/view-states.md b/features/view-states.md
index 1800f98..30a3cb1 100644
--- a/features/view-states.md
+++ b/features/view-states.md
@@ -17,8 +17,9 @@
 layout: docpage
 title: View States
 description: View States
+permalink: /features/view-states
 ---
 
 # View States
 
-View States
\ No newline at end of file
+*information coming soon.*
\ No newline at end of file
diff --git a/index.md b/index.md
index ad746a0..d817c66 100644
--- a/index.md
+++ b/index.md
@@ -37,7 +37,7 @@ This document is divided into several sections:
 
  * [High Level View](/royale-docs/welcome/high-level-view) gives an overview 
of Royale.
 
- * [Features and Concepts](features-and-concepts.html) explains the main 
features of Royale and some concepts that might help you be more productive.
+ * [Features and Concepts](features-and-concepts) explains the main features 
of Royale and some concepts that might help you be more productive.
 
  * [A Bit of History](/royale-docs/welcome/history) provides a brief 
background on how Royale came to be.
 
diff --git a/user-interface/components.md b/user-interface/components.md
index fc18967..ac4377d 100644
--- a/user-interface/components.md
+++ b/user-interface/components.md
@@ -31,7 +31,7 @@ Royale provides a wide range of components to help you design 
a user interface t
   * Usability features (alerts, snackbar pop-ups, localization features, 
dynamic displays depending on the user's metadata)
   * Rich content (images, videos, audio, transitions)
 
-Developers who have worked in Flex will quickly feel at home with Royale 
components, although they will need to pay attention to the ["Pay as you 
go"](features/payg.html) concept that is a Royale hallmark. Components do well 
the basic functions associated with their names, but to add features (for 
instance, you want to force the text the user enters to lower case), you need 
to add the appropriate bead to the strand of the component:
+Developers who have worked in Flex will quickly feel at home with Royale 
components, although they will need to pay attention to the ["Pay as you 
go"](features/payg) concept that is a Royale hallmark. Components do well the 
basic functions associated with their names, but to add features (for instance, 
you want to force the text the user enters to lower case), you need to add the 
appropriate bead to the strand of the component:
 
 ```as3 
 <j:TextInput text="Your entry will appear in LOWER case">
@@ -41,7 +41,7 @@ Developers who have worked in Flex will quickly feel at home 
with Royale compone
 </j:TextInput>
 ```
 
-You can [read more about Strands and Beads 
here](features/strands-and-beads.html).
+You can [read more about Strands and Beads here](features/strands-and-beads).
 
 ## Component sets
 Royale has a series of [component sets](component-sets.html), groups of 
ready-to-use components which are designed for different purposes.
diff --git a/welcome/high-level-view.md b/welcome/high-level-view.md
index b73a79b..ea0e0fa 100644
--- a/welcome/high-level-view.md
+++ b/welcome/high-level-view.md
@@ -31,8 +31,8 @@ While Flex may work using Flash in browsers or within AIR on 
computers with trad
 
 Beyond that, it is becoming clear that Royale can provide significant 
developer productivity gains for new projects. Flex made it easy and efficient 
to create robust applications. Like Flex, Royale provides:
 
- * Declarative Language ([MXML](features/mxml.html)) - Declarative languages 
provide a schematic, or diagram. of the pieces of the application, and are more 
terse than options like JavaScript.
- * Semi-Structured Language ([ActionScript](features/as3.html)) - ActionScript 
deploys classes and interfaces, so it can do a better job of enforcing correct 
use of APIs than JavaScript can.
+ * Declarative Language ([MXML](features/mxml)) - Declarative languages 
provide a schematic, or diagram. of the pieces of the application, and are more 
terse than options like JavaScript.
+ * Semi-Structured Language ([ActionScript](features/as3)) - ActionScript 
deploys classes and interfaces, so it can do a better job of enforcing correct 
use of APIs than JavaScript can.
  * Runtime Verifier - The verifier catches errors at runtime so you can 
address them before packaging a release.
  * Choice of IDEs -  You can choose the IDE that suits you best, and the IDEs 
can provide better code assistance because the coding language is structured.
 
@@ -43,7 +43,7 @@ These features help you make fewer mistakes when writing 
code, and that saves ti
 
 ## How it works
 
-Because both [ActionScript](features/as3.html) and JavaScript are based on the 
same language, ECMAScript, most code you write in AS translates well to JS. One 
significant difference is that AS uses the concepts of classes and objects to 
structure how your code functions, while pure JavaScript does not have those 
concepts. When you get ready to compile and run your application, the Royale 
compiler translates AS-specific code into JS code organized into 
pseudo-classes, which then run just  [...]
+Because both [ActionScript](features/as3) and JavaScript are based on the same 
language, ECMAScript, most code you write in AS translates well to JS. One 
significant difference is that AS uses the concepts of classes and objects to 
structure how your code functions, while pure JavaScript does not have those 
concepts. When you get ready to compile and run your application, the Royale 
compiler translates AS-specific code into JS code organized into 
pseudo-classes, which then run just fine  [...]
 
 That takes care of pretty much everything except the user interface. For that, 
Royale provides a set of UI containers and controls that do the work that the 
pure Flex containers and controls required the Flash engine to do.
 

Reply via email to