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!(/(?:^| )@\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)