-
Notifications
You must be signed in to change notification settings - Fork 6
Definitions
Some standard definitions for both editors and developers:
A pipeline is three things:
- A conceptual term for the progressive refinement of data
- An object to be instantiated by developers when working with Denina; the
Pipelinetype - A series of commands created by editors; a Denina script can be referred to, collectively, as a "pipeline"
For editors, a command is a single line in a Denina script, like this:
Text.Append -suffix:foo
For developers this text is parsed into a PipelineCommand object, which is passed to filters.
- See Command Parsing
A filter is the underlying method that performs the work. So, a command maps to a filter. The command is the thing that invokes the filter. This might seem like an unnecessarily granular distinction, but a filter might be invoked by more than one command.
- See Writing Filters
The input is the value on which a filter is working at any given time. A filter takes input, does something to it, and generates output. That output becomes the input to the next filter.
An argument is a labeled value passed to a command.
Sql.GetXml -connection:MyDb -sql:"SELECT * FROM Contacts"
In that command, there are two arguments: connection and sql. Some commands take repeated arguments:
A category is a grouping of commands/filters. For example, the Text category has about a half-dozen available commands/filters:
Text.Append -suffix:foo
Text.Prepend -prefix:bar
Text.Replace -old:foo -new:bar
Categories are designed to prevent conflicts between commands. For example, the Xml, Html, and Json categories all have commands called Extract. Using the category name is the only way to accurately specify the one you want to invoke.
A fully-qualified name is the category name, a dot, and the command name.
Text.Append -suffix:foo
In that example, the category name is Text, the command name is Append, and the fully-qualified name is Text.Append.
A variable is a "holding bin" for the output of a filter. Normally, a filter outputs data to the next filter. However, this data can be "redirected" to a variable using =>, where it can be held until needed. For example:
Text.ReplaceAll -text:"James Bond" => $introduction
The output of that filter would be held in a location named "$introduction." It can be retrieved from this location later to be used as an argument value.
Text.Append -suffix:$introduction
- See Variables
A comment is simply a line of a Denina script that begins with a pound sign: #. This line will be ignored by the Denina execution, and is available simply for editors to explain their scripts if necessary:
# Read from the HTML file
File.Read -file:my-stuff.html
Confused? See Definitions.
Still confused? Email Deane or file an issue.
Denina is a weird hobby project that Blend Interactive generally tolerates.
- Introduction
- Definitions
- Denina for Editors
- Denina for Developers
- Examples and Tutorials
- Implementations
- About
- Roadmap
Filter Command Reference
(auto-generated API documentation)