Add simple tagging support to Redmine Issues/Wiki pages
Switch branches/tags
Nothing to show
Pull request Compare This branch is 210 commits behind Restream:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Simple tagging for redmine. Features:

  • Tag cloud in the sidebar

  • Tag suggestion/autocomplete

  • Redmine search integration (search for #tag to find wikis/issues)

  • Filter issues on tags

Spaces or commas will act as a separator when editing tags

{{tagcloud}} will render a tag cloud. Most likely use would be in an wiki sidebar. The tagcloud will automatically be rendered in the issues list sidebar.

This plugin needs acts-as-taggable-on ( to be installed. The original plugin from needs patches to make it compatible with rails 2.3.5, which Redmine uses.

The plugin also needs rails_sql_views 0.7.0, installed by doing:

$ git clone git://
$ cd rails_sql_views
$ rake gem
$ sudo gem install --local pkg/rails_sql_views-0.7.0.gem


While patches to acts-as-taggable-on are not merged to upstream, you should use a fork of it. Installation is performed with:

$ script/plugin install git://
$ script/plugin install git://

You need to set up database for acts-as-taggable-on:

1a) for Rails 2 (which Redmine currently uses):

$ script/generate acts_as_taggable_on_migration

1b) for Rails 3:

$ rails generation acts_as_taggable_on:migration


$ rake db:migrate
$ rake db:migrate_plugins

See the README of acts-as-taggable-on for details.

I've added a switch so you can choose between in-line tag editing with {{tag(some tags here-or-there)}} or editing the tags in a separate edit field. After you've changed the setting in Administration -> Plugins -> Configure -> Tagging, run

$ rake redmine:tagging:reconfigure

to put tags in the body or remove them, depending on what you configured for your installation. Not doing so will cause data (tag) loss when moving from non-inline to inline.

Inline tagging

Inline tagging using {{tag(bla bla)}} saves your tags when the body is rendered. A nasty side-effect of this is that if you want to remove all tags from an object, you must add {{tag}} to the body to actually clear the tags. After it's been rendered once, you can remove it from the body.