# About Scripting
<span class="related-pages">#index-pages #feature/scripting</span>
## Introduction
This is the start of a growing set of documentation on facilities to get finer control of searches within Tasks.
We are using the word 'scripting' in a very loose sense here:
- For now, it refers only to writing JavaScript expressions in Tasks query blocks.
- It is intended to evolve in to something broader over time.
## Placeholder capabilities
- [[Placeholders]] - use placeholder text in native Tasks queries, such as `{{query.file.path}}` to refer to some properties of the file containing the query.
## Scripting capabilities
- [[Custom Filters]] - write short JavaScript expressions to create task search filters.
- See also the many `filter by function` examples added to the [[Filters]] documentation.
- [[Custom Sorting]] - write short JavaScript expressions to sort tasks in Tasks query results.
- See also the many `sort by function` examples added to the [[Sorting]] documentation.
- [[Custom Grouping]] - write short JavaScript expressions to create task group names in Tasks query results.
- See also the many `group by function` examples added to the [[Grouping]] documentation.
## Scripting reference
- [[Task Properties]] - all the available task properties, such as `task.description`, `task.file.path`.
- Note: The properties are also listed in [[Quick Reference]].
- [[Query Properties]] - all the available task properties, such as `query.file.path`, `query.file.path` - available for use via [[Placeholders]].
- [[Expressions]] - some background about how JavaScript expressions work, for use in Tasks code blocks.