diff --git a/app/assets/javascripts/autocomplete.js b/app/assets/javascripts/autocomplete.js
index da9ab946c..272582088 100644
--- a/app/assets/javascripts/autocomplete.js
+++ b/app/assets/javascripts/autocomplete.js
@@ -42,6 +42,9 @@
delay: 500,
minLength: 2,
autoFocus: true,
+ focus: function() {
+ return false;
+ },
select: function(event, ui) {
var before_caret_text = this.value.substring(0, this.selectionStart).replace(/\S+$/, ui.item.value + " ");
var after_caret_text = this.value.substring(this.selectionStart);
diff --git a/app/logical/d_text.rb b/app/logical/d_text.rb
index e09a9934e..1326e4497 100644
--- a/app/logical/d_text.rb
+++ b/app/logical/d_text.rb
@@ -33,17 +33,25 @@ class DText
end
def self.parse_inline(str, options = {})
- puts str
str.gsub!(/&/, "&")
str.gsub!(/, "<")
str.gsub!(/>/, ">")
+ str.gsub!(/(?:^| )@\S+/) do |name|
+ if name =~ /([:;,.!?\)\]<>])$/
+ name.chop!
+ ch = $1
+ else
+ ch = ""
+ end
+
+ '' + name + '' + ch
+ end
str.gsub!(/\n/m, "
") unless options[:ignore_newlines]
str.gsub!(/\[b\](.+?)\[\/b\]/i, '\1')
str.gsub!(/\[i\](.+?)\[\/i\]/i, '\1')
str.gsub!(/\[s\](.+?)\[\/s\]/i, '\1')
str.gsub!(/\[u\](.+?)\[\/u\]/i, '\1')
str.gsub!(/\[tn\](.+?)\[\/tn\]/i, '
\1
') - str.gsub!(/@\w+/) {|name| '' + name + ''} str = parse_links(str) str = parse_aliased_wiki_links(str)