Check, 1, Check, 1, 2, is this mic live?

This module provides an input filter to display check-boxes that can be used as a task list. These check-boxes can be added using special markup when editing node content. When viewing node content, each task can be marked as "done" by clicking on the check-box to toggle it.

Video review from CodeKarate


Sometimes you need to have a todo list in a node (like a checklist, or a simple task list) without having to use a task management system. This module provides a new input filter - that changes specific syntax into a checkbox with a toggle feature so you can click on the checkbox to mark a task that's done.

This module uses AJAX to dynamically save the Todo task state as seen on the node view. User permissions are checked so only those with node edit access can permanently set the toggle state from the node view. Users without node edit permissions can still toggle the checkbox, but it will not be saved to the node.

Light weight, no database to be fat!
It uses the existing node content and works with other input filters. Just select the right input format, that's it!


Display an empty checkbox

[_] Todo task

Display a checked checkbox

[/] Todo completed task


  1. Enable the "Todo Filter" module under the "Input Filters" group
  2. Select an existing Input Format in "Configuration -> Input formats" or create a new input format
  3. Enable "Todo Filter" under the "Filters" group


  1. In the field settings for a text field, make sure "Filtered text" is enabled
  2. Edit the node you want Todo checkboxes on
  3. Select the input format that includes the "Todo Filter" for the text field
  4. In a text field use the [_] and [/] to enable a Todo checkbox for that line
  5. Click "Save" - you will get checkboxes and can click on them to change a task status

Technical notes

  • Only works on nodes, no entity support (someday).
  • Todo Filter directly alters the content of each text area that has the "Todo filter" input filter enabled whenever a Todo checkbox is toggled.
  • Todo Filter performs a node_save() whenever a Todo checkbox is toggled.
    There may be a config option to disable this action someday.
  • Todo Filter uses node_access() to determine if the user has permissions to toggle the checkbox.
    For Drupal 6, this also means the user needs to be able to use the input filter selected for the body content.

Project information