Skip to content

Commit 0c7cb56

Browse files
authored
Merge pull request #123 from bonsai-rx/align-docs
Ensure consistent xref style across articles
2 parents c13ae69 + b920ca0 commit 0c7cb56

19 files changed

+21
-21
lines changed

articles/cli.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Application mode is useful for batch processing, interop with other languages an
6363
> ```cmd
6464
> bonsai workflow.bonsai --no-editor > output.txt
6565
> ```
66-
> Values can be written to the standard output using the [**WriteLine**](xref:Bonsai.IO.WriteLine) operator.
66+
> Values can be written to the standard output using the [`WriteLine`](xref:Bonsai.IO.WriteLine) operator.
6767
6868
## Passing parameter values to workflows
6969

articles/create-package.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,4 @@ The Bonsai language can be extended with custom packages, which are installed an
118118
> If you have your custom package installed in the same editor used to debug the source code, Bonsai will prefer the installed package over the compiled source code library. In this case, either uninstall the package, or use a local Bonsai installation.
119119

120120
> [!Note]
121-
> If you would like to share the package with the broader Bonsai community, consider publishing it to [**NuGet**](https://www.nuget.org/packages/manage/upload) by creating a `NuGet` account and uploading the `.nupkg` file. Ensure the `PackageType` field is properly defined before submission.
121+
> If you would like to share the package with the broader Bonsai community, consider publishing it to [NuGet](https://www.nuget.org/packages/manage/upload) by creating a NuGet account and uploading the `.nupkg` file. Ensure the `PackageType` field is properly defined before submission.

articles/expressions-format.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ If no format string is specified, the default [ToString](xref:System.Object.ToSt
1010
### Examples
1111

1212
> [!Note]
13-
> Below you can find various applications of the `Format` operator. For more formatting examples and a comprehensive list of supported format strings for different data types, see the extended discussion section of the [**String.Format**](xref:System.String.Format*) method.
13+
> Below you can find various applications of the `Format` operator. For more formatting examples and a comprehensive list of supported format strings for different data types, see the extended discussion section of the [`String.Format`](xref:System.String.Format*) method.
1414
1515
#### Insert a string
1616

articles/expressions-groupworkflow.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ The workflow nested inside `GroupWorkflow` specifies the entire behavior of this
88
All observable sequences passed as arguments to the outer `GroupWorkflow` will be routed to the inner [WorkflowInput](xref:Bonsai.Expressions.WorkflowInputBuilder) nodes. Conversely, all notifications emitted by the sequence connected to the single [WorkflowOutput](xref:Bonsai.Expressions.WorkflowOutputBuilder) node will be passed to any observers of the group node. It is possible to subscribe multiple times to the same group, in which case the nested workflow will run potentially in parallel and is considered to be reentrant.
99

1010
> [!Tip]
11-
> Use [**ExternalizedMapping**](xref:Bonsai.Expressions.ExternalizedMappingBuilder) operators to expose configurable properties when selecting the nested workflow node. Externalized properties in a nested workflow work the same way as regular properties in other operators. They can be further externalized as part of other nested operators or dynamically assigned using [**PropertyMapping**](xref:Bonsai.Expressions.PropertyMappingBuilder) or [**InputMapping**](xref:Bonsai.Expressions.InputMappingBuilder) operators.
11+
> Use [`ExternalizedMapping`](xref:Bonsai.Expressions.ExternalizedMappingBuilder) operators to expose configurable properties when selecting the nested workflow node. Externalized properties in a nested workflow work the same way as regular properties in other operators. They can be further externalized as part of other nested operators or dynamically assigned using [`PropertyMapping`](xref:Bonsai.Expressions.PropertyMappingBuilder) or [`InputMapping`](xref:Bonsai.Expressions.InputMappingBuilder) operators.
1212
1313
[!include[SharedState](~/articles/expressions-sharedstate.md)]

articles/expressions-includeworkflow.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ The `IncludeWorkflow` operator works in exactly the same way as [GroupWorkflow](
88
All observable sequences passed as arguments to the outer `IncludeWorkflow` will be routed to the inner [WorkflowInput](xref:Bonsai.Expressions.WorkflowInputBuilder) nodes. Conversely, all notifications emitted by the sequence connected to the single [WorkflowOutput](xref:Bonsai.Expressions.WorkflowOutputBuilder) node will be passed to any observers of the include workflow node. It is possible to subscribe multiple times to the same include workflow, in which case the nested workflow will run potentially in parallel and is considered to be reentrant.
99

1010
> [!Note]
11-
> Externalized properties contained inside the included workflow will be exposed when selecting the `IncludeWorkflow` node. Any changes to the values of these properties can be recovered, even if the included workflow is reused multiple times in different parts of the program. They can also be further externalized as part of other nested operators or dynamically assigned using [**PropertyMapping**](xref:Bonsai.Expressions.PropertyMappingBuilder) or [**InputMapping**](xref:Bonsai.Expressions.InputMappingBuilder) operators.
11+
> Externalized properties contained inside the included workflow will be exposed when selecting the `IncludeWorkflow` node. Any changes to the values of these properties can be recovered, even if the included workflow is reused multiple times in different parts of the program. They can also be further externalized as part of other nested operators or dynamically assigned using [`PropertyMapping`](xref:Bonsai.Expressions.PropertyMappingBuilder) or [`InputMapping`](xref:Bonsai.Expressions.InputMappingBuilder) operators.
1212
1313
[!include[SharedState](~/articles/expressions-sharedstate.md)]

articles/expressions-propertymapping-multiple.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ title: "PropertyMappingMultiple"
66
Multiple properties can be mapped simultaneously from the same source sequence when using `PropertyMapping`. You can select which properties to map by using the editors available in the property grid. For each mapped property you must specify a source selector, i.e. an expression specifying which members of the input data type are used to assign values to the mapped property.
77

88
> [!Note]
9-
> If the type of the selected member does not match the type of the property, a conversion is attempted. If no compatible conversion is available, the compiler checks whether it is possible to construct the corresponding data type from the selected members. For example, it would be possible to map to a [**Point**](xref:OpenCV.Net.Point) type by selecting two numeric values from the source sequence. In this case, the values would be used to construct a new point instance by assigning them to the X and Y parameters of the type constructor.
9+
> If the type of the selected member does not match the type of the property, a conversion is attempted. If no compatible conversion is available, the compiler checks whether it is possible to construct the corresponding data type from the selected members. For example, it would be possible to map to a [`Point`](xref:OpenCV.Net.Point) type by selecting two numeric values from the source sequence. In this case, the values would be used to construct a new point instance by assigning them to the X and Y parameters of the type constructor.
1010
1111
In each property mapping operator, all mapped properties are updated at the same time every time the source sequence sends out a new value. It is also possible to connect property mapping operators to multiple target nodes.
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Property sources expose a value which can be set from the property grid and also generate an observable sequence that emits a notification whenever the property value changes, starting with the initial property value.
22

33
> [!Tip]
4-
> Property sources are commonly used to create new configuration parameters with custom names for nested workflows. To expose and rename a property source, use [**Property Mapping**](xref:property-mapping#externalized-properties) to externalize the property value and set its [`DisplayName`](xref:Bonsai.Expressions.ExternalizedMapping.DisplayName).
4+
> Property sources are commonly used to create new configuration parameters with custom names for nested workflows. To expose and rename a property source, use [`Property Mapping`](xref:property-mapping#externalized-properties) to externalize the property value and set its [`DisplayName`](xref:Bonsai.Expressions.ExternalizedMapping.DisplayName).

articles/expressions-unit.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ title: "Unit"
66
The `Unit` operator generates a sequence returning the singleton unit object, if no input sequence is provided. Otherwise, it will convert all elements in the source sequence to the <xref href="System.Reactive.Unit"/> type.
77

88
> [!Tip]
9-
> `Unit` is most commonly used for converting separate branches with different types into a common type signature, so they can be combined using control flow operators such as [**Merge**](xref:Bonsai.Reactive.Merge) or [**Concat**](xref:Bonsai.Reactive.Concat).
9+
> `Unit` is most commonly used for converting separate branches with different types into a common type signature, so they can be combined using control flow operators such as [`Merge`](xref:Bonsai.Reactive.Merge) or [`Concat`](xref:Bonsai.Reactive.Concat).

articles/reactive-createobservable.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ title: CreateObservable
88
For each notification in the source sequence, `CreateObservable` constructs a new instance of the asynchronous operation specified in the nested workflow and emits the operation exposed as an observable sequence. However, `CreateObservable` does not itself subscribe to the sequence, which means the logic inside the nested workflow will not run unless the emitted observables are subscribed downstream.
99

1010
> [!Note]
11-
> You can manipulate and schedule each of the emitted observable sequences downstream using higher-order operators such as [**Merge**](xref:Bonsai.Reactive.Merge), [**Concat**](xref:Bonsai.Reactive.Concat) or [**Switch**](xref:Bonsai.Reactive.Switch).
11+
> You can manipulate and schedule each of the emitted observable sequences downstream using higher-order operators such as [`Merge`](xref:Bonsai.Reactive.Merge), [`Concat`](xref:Bonsai.Reactive.Concat) or [`Switch`](xref:Bonsai.Reactive.Switch).
1212
1313
The input to the nested workflow represents the element passed as an argument to the asynchronous operation. If the input is itself an observable sequence, the [WorkflowInput](xref:Bonsai.Expressions.WorkflowInputBuilder) node will subscribe to all the values in the sequence when the asynchronous operation is finally launched. Otherwise, the input will emit a single value containing the stored argument value.

articles/reactive-first.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ title: First
88
If the sequence has no elements, `First` will terminate with an error.
99

1010
> [!Tip]
11-
> If you are interested in finding the first element that meets some criteria, consider using the [**Condition**](xref:Bonsai.Reactive.Condition) operator before `First`.
11+
> If you are interested in finding the first element that meets some criteria, consider using the [`Condition`](xref:Bonsai.Reactive.Condition) operator before `First`.
1212
1313
> [!Warning]
14-
> There are subtle but important differences between using the `First` operator and [**`Take(1)`**](xref:Bonsai.Reactive.Take):
14+
> There are subtle but important differences between using the `First` operator and [`Take(1)`](xref:Bonsai.Reactive.Take):
1515
> - When the source sequence has no elements, `Take(1)` will complete successfully, while `First` will throw an error.
1616
> - When the source sequence emits the first element, `Take(1)` will immediately cancel the subscription to the source sequence before emitting the notification. `First`, on the other hand, will emit the notification and only afterwards cancel the subscription to the source sequence.

articles/reactive-firstordefault.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ title: FirstOrDefault
88
If the sequence has no elements, `FirstOrDefault` will emit a default value before terminating successfully.
99

1010
> [!Tip]
11-
> If you are interested in finding the first element that meets some criteria, consider using the [**Condition**](xref:Bonsai.Reactive.Condition) operator before `FirstOrDefault`.
11+
> If you are interested in finding the first element that meets some criteria, consider using the [`Condition`](xref:Bonsai.Reactive.Condition) operator before `FirstOrDefault`.
1212
1313
> [!Warning]
14-
> There are subtle but important differences between using the `FirstOrDefault` operator and [**`Take(1)`**](xref:Bonsai.Reactive.Take):
14+
> There are subtle but important differences between using the `FirstOrDefault` operator and [`Take(1)`](xref:Bonsai.Reactive.Take):
1515
> - When the source sequence has no elements, `Take(1)` will complete successfully with no emitted values, while `FirstOrDefault` will emit a default value before terminating successfully.
1616
> - When the source sequence emits the first element, `Take(1)` will immediately cancel the subscription to the source sequence before emitting the notification. `FirstOrDefault`, on the other hand, will emit the notification and only afterwards cancel the subscription to the source sequence.

articles/reactive-groupby.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ The `GroupBy` operator can be used to separate, or demultiplex, the elements fro
99
<xref href="Bonsai.Reactive.GroupBy.KeySelector"/>. Each element from the sequence will be routed to the correct group according to its key. Groups are created and emitted the first time that an element with a new distinct key value is received from the source sequence.
1010

1111
> [!Note]
12-
> You can manipulate and schedule each of the group sequences downstream using other higher-order operators such as [**Merge**](xref:Bonsai.Reactive.Merge), [**Concat**](xref:Bonsai.Reactive.Concat) or [**Switch**](xref:Bonsai.Reactive.Switch).
12+
> You can manipulate and schedule each of the group sequences downstream using other higher-order operators such as [`Merge`](xref:Bonsai.Reactive.Merge), [`Concat`](xref:Bonsai.Reactive.Concat) or [`Switch`](xref:Bonsai.Reactive.Switch).
1313
1414
The members used to generate the elements in each group sequence can be optionally specified using the <xref href="Bonsai.Reactive.GroupBy.ElementSelector"/> property. If no element selector is specified, the original values from the source sequence will be used.

articles/reactive-resubscription.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
> [!Tip]
2-
> The subscription side-effects (e.g. opening a file, initializing hardware connections) of all upstream operators will be repeated upon termination and resubscription to the source sequence. Sometimes this may be undesirable. For example logging side-effects introduced by [**Sink**](xref:operators#sink) nodes may create extra files on each subscription. To shield operators from these effects, consider moving affected operators downstream from the resubscription operator, or moving the resubscription operator itself further upstream.
2+
> The subscription side-effects (e.g. opening a file, initializing hardware connections) of all upstream operators will be repeated upon termination and resubscription to the source sequence. Sometimes this may be undesirable. For example logging side-effects introduced by [`Sink`](xref:operators#sink) nodes may create extra files on each subscription. To shield operators from these effects, consider moving affected operators downstream from the resubscription operator, or moving the resubscription operator itself further upstream.
33
44
> [!Caution]
55
> All resubscription operators should be applied with care to anonymous branch points in the workflow, since dangling branches operate independently from each other, and from the subscription to the source sequence. For more details, see @subjects#branching-subjects.

articles/reactive-selectmany.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ For each notification in the source sequence, `SelectMany` constructs and subscr
1010
The input to the nested workflow represents the element passed as an argument to the asynchronous operation. If the input is itself an observable sequence, the [WorkflowInput](xref:Bonsai.Expressions.WorkflowInputBuilder) node will subscribe to all the values in the sequence when the asynchronous operation is launched. Otherwise, the input will emit a single value containing the stored argument value.
1111

1212
> [!Tip]
13-
> `SelectMany` is one of the most versatile reactive operators and can be used as a primitive building block on which to build a large number of more complex reactive operators, including reactive state machines. See the [**State Machines**](xref:state-machines-tutorial) tutorial for examples.
13+
> `SelectMany` is one of the most versatile reactive operators and can be used as a primitive building block on which to build a large number of more complex reactive operators, including reactive state machines. See the [State Machines tutorial](xref:state-machines-tutorial) for examples.

articles/reactive-visualizer.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ title: Visualizer
88
The `Visualizer` operator is a [Sink](xref:Bonsai.Reactive.Sink) which uses the nested workflow to specify a reactive visualizer function over the elements of the source sequence. `Visualizer` emits all values from the source sequence directly without modification, and the nested sequence is subscribed to purely for its side-effects.
99

1010
> [!Note]
11-
> All notifications emitted by the inner [**WorkflowOutput**](xref:Bonsai.Expressions.WorkflowOutputBuilder) node are ignored. However, the type visualizer assigned to the nested workflow output will be considered as the default visualizer of the outer node.
11+
> All notifications emitted by the inner [`WorkflowOutput`](xref:Bonsai.Expressions.WorkflowOutputBuilder) node are ignored. However, the type visualizer assigned to the nested workflow output will be considered as the default visualizer of the outer node.

articles/reactive-window.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ The `Window` operator groups the notifications of the source sequence into new o
1010
If a new window is created before the previous window is closed, then window will overlap, and any elements emitted during this period will be included in both windows. If at any moment there is no open window, elements emitted from the source sequence will be dropped.
1111

1212
> [!Note]
13-
> You can manipulate and schedule each of the windows downstream using other higher-order operators such as [**Merge**](xref:Bonsai.Reactive.Merge), [**Concat**](xref:Bonsai.Reactive.Concat) or [**Switch**](xref:Bonsai.Reactive.Switch).
13+
> You can manipulate and schedule each of the windows downstream using other higher-order operators such as [`Merge`](xref:Bonsai.Reactive.Merge), [`Concat`](xref:Bonsai.Reactive.Concat) or [`Switch`](xref:Bonsai.Reactive.Switch).

articles/reactive-windowcount.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ title: WindowCount
1010
If no skip value is provided, the windows will be strictly non-overlapping, with a new window beginning when the previous window ends. If the skip value is less than the specified number of elements, windows will be overlapping, with a new window created every `Skip` notifications. Finally, if the skip value is greater than the specified number of elements, there will be a gap between each window where elements from the source sequence will be dropped.
1111

1212
> [!Note]
13-
> You can manipulate and schedule each of the windows downstream using other higher-order operators such as [**Merge**](xref:Bonsai.Reactive.Merge), [**Concat**](xref:Bonsai.Reactive.Concat) or [**Switch**](xref:Bonsai.Reactive.Switch).
13+
> You can manipulate and schedule each of the windows downstream using other higher-order operators such as [`Merge`](xref:Bonsai.Reactive.Merge), [`Concat`](xref:Bonsai.Reactive.Concat) or [`Switch`](xref:Bonsai.Reactive.Switch).

articles/reactive-windowtime.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ The `WindowTime` operator groups the notifications of the source sequence into n
1010
If no `TimeShift` is provided, the windows will be strictly non-overlapping, with a new window beginning when the previous window ends. If `TimeShift` is smaller than `TimeSpan`, windows will be overlapping, with a new buffer created every `TimeShift` interval. Finally, if `TimeShift` is larger than `TimeSpan`, there will be a time gap between each window where elements from the source sequence may be dropped.
1111

1212
> [!Note]
13-
> You can manipulate and schedule each of the windows downstream using other higher-order operators such as [**Merge**](xref:Bonsai.Reactive.Merge), [**Concat**](xref:Bonsai.Reactive.Concat) or [**Switch**](xref:Bonsai.Reactive.Switch).
13+
> You can manipulate and schedule each of the windows downstream using other higher-order operators such as [`Merge`](xref:Bonsai.Reactive.Merge), [`Concat`](xref:Bonsai.Reactive.Concat) or [`Switch`](xref:Bonsai.Reactive.Switch).

0 commit comments

Comments
 (0)