Skip to content

Commit 35c743a

Browse files
committed
Renamed 'Practice' -> 'Developing Flows'
2 parents d0d582a + cbaed1c commit 35c743a

165 files changed

Lines changed: 62987 additions & 182 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

_includes/api-toc.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@
2828
<li {% if page.url contains "/docs/api/storage/methods" %}class="active"{% endif %}><a href="/docs/api/storage/methods">Methods</a>
2929
</ul>
3030
</li>
31+
<li class="tocheader">
32+
<ul>
33+
<li class="toctitle{% if page.url == "/docs/api/context/" %} active{% endif %}"><a href="/docs/api/context/">Context Store API</a>
34+
<li {% if page.url contains "/docs/api/context/methods" %}class="active"{% endif %}><a href="/docs/api/context/methods">Methods</a>
35+
<li {% if page.url contains "/docs/api/context/store/memory" %}class="active"{% endif %}><a href="/docs/api/context/store/memory">Memory store</a>
36+
<li {% if page.url contains "/docs/api/context/store/localfilesystem" %}class="active"{% endif %}><a href="/docs/api/context/store/localfilesystem">File store</a>
37+
</ul>
38+
</li>
3139
<li class="tocheader">
3240
<ul>
3341
<li class="toctitle{% if page.url == "/docs/api/ui/" %} active{% endif %}"><a href="/docs/api/ui/">Editor Widgets</a>

_includes/docs-toc.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<li {% if page.url == "/docs/hardware/raspberrypi" %}class="active"{% endif %}><a href="/docs/hardware/raspberrypi">Raspberry Pi</a>
3131
<li {% if page.url == "/docs/hardware/beagleboneblack" %}class="active"{% endif %}><a href="/docs/hardware/beagleboneblack">BeagleBone Black</a>
3232
<li class="tocsubheader"><span>Cloud</span></li>
33-
<li {% if page.url == "/docs/platforms/bluemix" %}class="active"{% endif %}><a href="/docs/platforms/bluemix">IBM Bluemix</a>
33+
<li {% if page.url == "/docs/platforms/bluemix" %}class="active"{% endif %}><a href="/docs/platforms/bluemix">IBM Cloud</a>
3434
<li {% if page.url == "/docs/platforms/aws" %}class="active"{% endif %}><a href="/docs/platforms/aws">Amazon Web Services</a>
3535
<li {% if page.url == "/docs/platforms/azure" %}class="active"{% endif %}><a href="/docs/platforms/azure">Microsoft Azure</a>
3636
<li class="tocsubheader"><span>Other</span></li>

_includes/editor-guide-toc.html

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<ul class="toc">
2+
<li class="toc-expander"><div>V</div></li>
3+
<li><a href="/docs/user-guide">&larr; back</a></li>
4+
<li class="tocheader">
5+
<ul>
6+
<li class="toctitle active"><a href="/docs/user-guide/editor">Editor Guide</a></li>
7+
<li {% if page.url == "/docs/user-guide/editor/workspace/" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace">Workspace</a></li>
8+
<li {% if page.url == "/docs/user-guide/editor/workspace/flows" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/flows" style="padding-left: 60px;">Flows</a></li>
9+
<li {% if page.url == "/docs/user-guide/editor/workspace/nodes" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/nodes" style="padding-left: 60px;">Nodes</a></li>
10+
<li {% if page.url == "/docs/user-guide/editor/workspace/wires" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/wires" style="padding-left: 60px;">Wires</a></li>
11+
<li {% if page.url == "/docs/user-guide/editor/workspace/subflows" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/subflows" style="padding-left: 60px;">Subflows</a></li>
12+
<li {% if page.url == "/docs/user-guide/editor/workspace/selection" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/selection" style="padding-left: 60px;">Selection</a></li>
13+
<li {% if page.url == "/docs/user-guide/editor/workspace/import-export" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/import-export" style="padding-left: 60px;">Import/Export</a></li>
14+
<li {% if page.url == "/docs/user-guide/editor/workspace/search" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/search" style="padding-left: 60px;">Search</a></li>
15+
<li {% if page.url == "/docs/user-guide/editor/palette/" %}class="active"{% endif %}><a href="/docs/user-guide/editor/palette/">Palette</a></li>
16+
<li {% if page.url == "/docs/user-guide/editor/palette/manager" %}class="active"{% endif %}><a href="/docs/user-guide/editor/palette/manager" style="padding-left: 60px;">Palette Manager</a></li>
17+
<li {% if page.url == "/docs/user-guide/editor/sidebar" %}class="active"{% endif %}><a href="/docs/user-guide/editor/sidebar">Sidebar</a></li>
18+
<li {% if page.url == "/docs/user-guide/editor/sidebar/info" %}class="active"{% endif %}><a href="/docs/user-guide/editor/sidebar/info" style="padding-left: 60px;">Information</a></li>
19+
<li {% if page.url == "/docs/user-guide/editor/sidebar/debug" %}class="active"{% endif %}><a href="/docs/user-guide/editor/sidebar/debug" style="padding-left: 60px;">Debug</a></li>
20+
<li {% if page.url == "/docs/user-guide/editor/sidebar/config" %}class="active"{% endif %}><a href="/docs/user-guide/editor/sidebar/config" style="padding-left: 60px;">Config nodes</a></li>
21+
<li {% if page.url == "/docs/user-guide/editor/sidebar/context" %}class="active"{% endif %}><a href="/docs/user-guide/editor/sidebar/context" style="padding-left: 60px;">Context data</a></li>
22+
<!-- <li {% if page.url == "/docs/user-guide/editor/settings" %}class="active"{% endif %}><a href="/docs/user-guide/editor/settings">Settings</a></li> -->
23+
<!-- <li {% if page.url == "/docs/user-guide/editor/settings/view" %}class="active"{% endif %}><a href="/docs/user-guide/editor/settings/view" style="padding-left: 60px;">View</a></li> -->
24+
<!-- <li {% if page.url == "/docs/user-guide/editor/settings/keyboard" %}class="active"{% endif %}><a href="/docs/user-guide/editor/settings/keyboard" style="padding-left: 60px;">Keyboard</a></li> -->
25+
<!-- <li {% if page.url == "/docs/user-guide/editor/editors" %}class="active"{% endif %}><a href="/docs/user-guide/editor/editors">Type Editors</a></li> -->
26+
<!-- <li {% if page.url == "/docs/user-guide/editor/editors/buffer" %}class="active"{% endif %}><a href="/docs/user-guide/editor/editors/buffer" style="padding-left: 60px;">Buffer</a></li> -->
27+
<!-- <li {% if page.url == "/docs/user-guide/editor/editors/js" %}class="active"{% endif %}><a href="/docs/user-guide/editor/editors/js" style="padding-left: 60px;">JavaScript</a></li> -->
28+
<!-- <li {% if page.url == "/docs/user-guide/editor/editors/json" %}class="active"{% endif %}><a href="/docs/user-guide/editor/editors/json" style="padding-left: 60px;">JSON</a></li> -->
29+
<!-- <li {% if page.url == "/docs/user-guide/editor/editors/jsonata" %}class="active"{% endif %}><a href="/docs/user-guide/editor/editors/jsonata" style="padding-left: 60px;">JSONata expression</a></li> -->
30+
</ul>
31+
</li>
32+
</ul>

_includes/getting-started-toc.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<li class="tocheader">
3434
<ul>
3535
<li class="toctitle"><span>In the cloud</span></li>
36-
<li {% if page.url == "/docs/platforms/bluemix" %}class="active"{% endif %}><a href="/docs/platforms/bluemix">IBM Bluemix</a></li>
36+
<li {% if page.url == "/docs/platforms/bluemix" %}class="active"{% endif %}><a href="/docs/platforms/bluemix">IBM Cloud</a></li>
3737
<li><a href="https://fred.sensetecnic.com/">SenseTecnic FRED</a></li>
3838
<li {% if page.url == "/docs/platforms/aws" %}class="active"{% endif %}><a href="/docs/platforms/aws">Amazon Web Services</a></li>
3939
<li {% if page.url == "/docs/platforms/azure" %}class="active"{% endif %}><a href="/docs/platforms/azure">Microsoft Azure</a></li>

_includes/user-guide-toc.html

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,26 @@
44
<li class="tocheader">
55
<ul>
66
<li class="toctitle active"><a href="/docs/user-guide/">User Guide</a></li>
7+
<li {% if page.url == "/docs/user-guide/editor" %}class="active"{% endif %}><a href="/docs/user-guide/editor">Using the Node-RED Editor</a></li>
8+
<li {% if page.url contains "/docs/user-guide/projects/" %}class="active"{% endif %}><a href="/docs/user-guide/projects/">Working with projects</a></li>
9+
<li {% if page.url == "/docs/user-guide/nodes" %}class="active"{% endif %}><a href="/docs/user-guide/nodes">The core nodes</a></li>
10+
<li {% if page.url == "/docs/writing-functions" %}class="active"{% endif %}><a href="/docs/writing-functions">Writing Functions</a></li>
11+
<li {% if page.url == "/docs/user-guide/messages" %}class="active"{% endif %}><a href="/docs/user-guide/messages">Working with messages</a></li>
12+
<li {% if page.url == "/docs/user-guide/context" %}class="active"{% endif %}><a href="/docs/user-guide/context">Working with context</a></li>
13+
</ul>
14+
</li>
15+
<li class="tocheader">
16+
<ul>
17+
<li class="toctitle"><span>Running Node-RED</span></li>
718
<li {% if page.url == "/docs/configuration" %}class="active"{% endif %}><a href="/docs/configuration">Configuration</a></li>
819
<li {% if page.url == "/docs/security" %}class="active"{% endif %}><a href="/docs/security">Security</a></li>
920
<li {% if page.url == "/docs/user-guide/logging" %}class="active"{% endif %}><a href="/docs/user-guide/logging">Logging</a></li>
10-
<li {% if page.url contains "/docs/user-guide/projects/" %}class="active"{% endif %}><a href="/docs/user-guide/projects/">Working with projects</a></li>
1121
<li {% if page.url == "/docs/node-red-admin" %}class="active"{% endif %}><a href="/docs/node-red-admin">Command-line Admin</a></li>
12-
<li {% if page.url == "/docs/writing-functions" %}class="active"{% endif %}><a href="/docs/writing-functions">Writing Functions</a></li>
13-
<li {% if page.url == "/docs/user-guide/messages" %}class="active"{% endif %}><a href="/docs/user-guide/messages">Working with messages</a></li>
22+
</ul>
23+
</li>
24+
<li class="tocheader">
25+
<ul>
26+
<li class="toctitle"><span>Advanced</span></li>
1427
<li {% if page.url == "/docs/embedding" %}class="active"{% endif %}><a href="/docs/embedding">Embedding into an existing app</a></li>
1528
</ul>
1629
</li>
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
---
2+
layout: blog
3+
title: Version 0.19 released
4+
author: nick
5+
---
6+
7+
Node-RED 0.19 is now available to [download](https://github.com/node-red/node-red/releases/download/0.19.0/node-red-0.19.0.zip) or [npm install](https://npmjs.org/package/node-red).
8+
9+
If upgrading, please read the [upgrade instructions](http://nodered.org/docs/getting-started/upgrading.html).
10+
11+
For the Raspberry Pi users, please see the [Raspberry Pi documentation](https://nodered.org/docs/hardware/raspberrypi#upgrading)
12+
for how to upgrade if you are still on the pre-installed version.
13+
14+
---
15+
16+
<iframe width="560" height="315" src="https://www.youtube.com/embed/_G_lCXoABO0?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
17+
18+
---
19+
20+
### Node.js version support
21+
22+
Node.js 4 reached its end-of-life back in April and is no longer receiving fixes
23+
of any sort. The current Node.js LTS release is 8.x with 10.x coming in October.
24+
25+
As the node ecosystem continues to move forward we are seeing an increasing number
26+
of modules we depend on dropping support for older node.js versions.
27+
28+
We are taking this opportunity to announce that this will be the **last release**
29+
of Node-RED that supports anything **earlier than Node 8.x**.
30+
31+
As we approach Node-RED 1.0 we will establish our own LTS policy that aligns as
32+
closely as possible with the [Node.JS schedule](https://github.com/nodejs/Release).
33+
34+
### Persistent Context
35+
36+
This release brings the next step on our roadmap to 1.0; the ability to store
37+
context data outside of the runtime.
38+
39+
Context data is state held within a flow outside of the individual messages flowing
40+
through it. Previously, this data was only held in memory, so would be lost whenever
41+
the runtime restarted.
42+
43+
With 0.19, this state can now be held outside of the runtime. The runtime provides
44+
a new API for creating context stores and 0.19 provides two implementations ready to use.
45+
46+
The default store remains an in-memory store - so nothing will change for existing flows.
47+
The second implementation provided is a file-based store - where the context data gets
48+
written to files under your user directory.
49+
50+
It also supports having more than one store configured in the runtime, so you can choose
51+
where each piece of context data is stored. For example, you may want a non-persistent
52+
store for some values and a persistent store for others.
53+
54+
In time we plan to have other implementations available, such as for Redis, to allow
55+
a more scalable approach when running at scale.
56+
57+
Documentation on the how to enable the new context features is available [here](https://nodered.org/docs/user-guide/context).
58+
59+
#### Context browser
60+
61+
<div style="float: right; width: 200px; margin-left: 10px">
62+
<img src="/blog/content/images/2018/08/editor-sidebar-context.png" />
63+
</div>
64+
65+
To compliment the new persistent context feature, we've added a new sidebar that allows
66+
you to view context data within the editor. Inspired by the existing [node-red-contrib-contextbrowser](https://flows.nodered.org/node/node-red-contrib-contextbrowser)
67+
plugin, the new sidebar has been built around the new underlying context apis and
68+
fully supports multiple context stores.
69+
70+
As with the Debug sidebar, if you hover over any value a <i style="font-size: 0.8em; border-radius: 2px; display:inline-block;text-align:center; width: 20px; color: #777; border: 1px solid #777; padding: 3px;" class="fa fa-clipboard"></i> button appears to copy
71+
that value to your clipboard. Note that only values that can be JSON-encoded can
72+
be copied.
73+
74+
75+
<br style="clear:both;" />
76+
77+
78+
### Editor updates
79+
80+
#### Redesigned Sidebar tabs
81+
82+
With the new context sidebar, it was time to redesign how the sidebar tabs were
83+
displayed as they were getting squashed.
84+
85+
The tabs now collapse down to just an icon for the tab, with a drop-down to select
86+
any tabs not currently visible.
87+
88+
![](/blog/content/images/2018/08/sidebar-tabs.gif)
89+
90+
#### Changing node icons
91+
92+
It is now possible to customise the icon of any node in your flow. This can help
93+
distinguish between multiple nodes of the same type that perform different roles.
94+
95+
![](/blog/content/images/2018/08/editor-icon-picker.gif)
96+
97+
The icon option is on the 'node settings' section of each node's edit dialog. It
98+
allows you to browse and pick from all of the available icons. Note we do not
99+
yet support using the Font Awesome icons for the node.
100+
101+
#### Changing subflow category
102+
103+
You can also now choose what palette category a subflow appears in. This makes
104+
it easier to organise your subflows rather than having them all in a single
105+
category at the top of the palette.
106+
107+
#### Flow navigator widget
108+
109+
We've added a flow navigator widget in the footer of the main workspace that can
110+
be enabled with the new <i style="font-size: 0.8em; border-radius: 2px; display:inline-block;text-align:center; width: 20px; color: #777; border: 1px solid #777; padding: 3px;" class="fa fa-map-o"></i> button. This
111+
gives you a scaled down view of the entire workspace, and shows you which bit
112+
you are currently looking at. You can drag the view around to quickly reach
113+
any corner of the workspace and should make it easier to find the odd nodes you
114+
had dragged to the furthers corners and forgotten about.
115+
116+
![](/blog/content/images/2018/08/editor-workspace-navigator.png)
117+
118+
119+
### Better handling of environment variables
120+
121+
It is now possible to access environment variables directly within a flow.
122+
123+
The Inject, Switch and Change nodes have all been updated to add the 'env variable'
124+
option to the standard TypedInput widget:
125+
126+
![](/blog/content/images/2018/08/editor-typedInput-envvar.png)
127+
128+
We've also added the `$env()` function to the JSONata expression language to allow
129+
environment variables to be accessed from within an expression.
130+
131+
132+
### Node Updates
133+
134+
- the `File Out` node now has an output so a flow can continue once the file has been written.
135+
- the `Function` node can now access its own `id` and `name` properties. The documentation
136+
has been updated with a full [reference](/docs/writing-functions#api-reference) of the
137+
available objects and functions. The node's JavaScript editor can now also be expanded
138+
to a larger editor view.
139+
- the `JSON` node can do schema validation if the message it receives has `msg.schema` property.
140+
- the Pi-specific GPIO nodes are now available on all platforms - however they
141+
only do something when running on a Pi. This makes it easier to view/edit flows
142+
on your laptop that are destined for a Pi.
143+
- the `Switch` node has a new 'isEmpty' rule. It matches on Strings, Arrays and Buffers
144+
that are empty. There is also the corresponding 'isNotEmpty' rule.
145+
- the common `TLS` node now accepts the `servername` config option - necessary when using SNI.
398 KB
Loading
68.9 KB
Loading
6.6 KB
Loading
6.3 KB
Loading

0 commit comments

Comments
 (0)