Я нашел один модуль, который, кажется, работает примерно так: Glossify (http://drupal.org/project/glossify). Я никогда не использовал его сам, но это стоит попробовать. Если Glossify не работает для вас, подумайте о том, как помочь улучшить модуль, или написать собственный модуль самостоятельно.
Теоретически существует два способа преобразования слов в ссылки: когда узел сохраняется или когда узел отображается. В обоих случаях вы будете проверять каждое слово в узле и проверять, соответствует ли оно одной из способностей. Оба решения имеют свои преимущества и недостатки. Выбирая решение, вы должны следить за производительностью, потому что действия по поиску и замене могут занимать много системных ресурсов, особенно если у вас много пользователей, длинные тексты и много возможностей.
Изменение содержимого при сохранении узла может быть выполнено в Drupal путем реализации hook_nodeapi ($ op = presave). Непосредственно перед тем, как содержимое записывается в базу данных, ваша функция nodeapi делает свое дело. Преимущество: поиск и замена выполняется только один раз для каждого узла. Недостаток: новые ссылки не будут добавлены в существующие узлы при добавлении новой способности (если только вы не сохраните узел повторно).
Изменение содержимого при просмотре узла может быть выполнено с помощью hook_nodeapi ($ op = view) или hook_filter. Ссылки не сохраняются в базе данных, а добавляются на лету каждый раз, когда пользователь просматривает узел. Преимущество: новые способности также будут связаны в ранее сохраненном узле. Недостаток: производительность, поиск и замена должны выполняться на каждом представлении узла (хотя кэширование, вероятно, решит это частично).