Merge #2794 - Close #2656 Add schemes settings for Markdown links

pull/2818/head
Maki Nishifuji 10 years ago committed by Gabriel Engel
parent fa0d4ef93e
commit 508c900c3c
  1. 2
      packages/rocketchat-lib/i18n/en.i18n.json
  2. 4
      packages/rocketchat-lib/i18n/ja.i18n.json
  3. 8
      packages/rocketchat-markdown/markdown.coffee
  4. 1
      packages/rocketchat-markdown/settings.coffee

@ -517,6 +517,8 @@
"Manager_removed" : "Manager removed",
"Mark_as_read" : "Mark as read",
"Markdown_Headers" : "Markdown Headers",
"Markdown_SupportSchemesForLink": "Markdown Support Schemes for Link",
"Markdown_SupportSchemesForLink_Description": "Comma-separated list of allowed schemes",
"Members_List" : "Members List",
"Mentions" : "Mentions",
"Mentions_default" : "Mentions (default)",

@ -492,6 +492,8 @@
"Manager_removed" : "管理者を削除しました",
"Mark_as_read" : "既読にする",
"Markdown_Headers" : "Markdown ヘッダー",
"Markdown_SupportSchemesForLink": "Markdown リンクでサポートするスキーマ",
"Markdown_SupportSchemesForLink_Description": "許可するスキーマをカンマ区切りで記述してください。",
"Members_List" : "メンバーリスト",
"Mentions" : "メンション",
"Mentions_default" : "メンション (デフォルト)",
@ -1013,4 +1015,4 @@
"Your_Open_Source_solution" : "独自のオープンソースチャットソリューション",
"Your_password_is_wrong" : "パスワードが間違っています!",
"Your_push_was_sent_to_s_devices" : "プッシュ通知が %s 台のデバイスへ送信されました"
}
}

@ -27,14 +27,16 @@ class Markdown
return token
schemes = RocketChat.settings.get('Markdown_SupportSchemesForLink').split(',').join('|')
# Support ![alt text](http://image url)
msg = msg.replace(/!\[([^\]]+)\]\((https?:\/\/[^\)]+)\)/gm, '<a href="$2" title="$1" class="swipebox" target="_blank"><div class="inline-image" style="background-image: url($2);"></div></a>')
msg = msg.replace(new RegExp("!\\[([^\\]]+)\\]\\(((?:#{schemes}):\\/\\/[^\\)]+)\\)", 'gm'), '<a href="$2" title="$1" class="swipebox" target="_blank"><div class="inline-image" style="background-image: url($2);"></div></a>')
# Support [Text](http://link)
msg = msg.replace(/\[([^\]]+)\]\((https?:\/\/[^\)]+)\)/gm, '<a href="$2" target="_blank">$1</a>')
msg = msg.replace(new RegExp("\\[([^\\]]+)\\]\\(((?:#{schemes}):\\/\\/[^\\)]+)\\)", 'gm'), '<a href="$2" target="_blank">$1</a>')
# Support <http://link|Text>
msg = msg.replace(/(?:<|&lt;)(https?:\/\/[^\|]+)\|(.+?)(?=>|&gt;)(?:>|&gt;)/gm, '<a href="$1" target="_blank">$2</a>')
msg = msg.replace(new RegExp("(?:<|&lt;)((?:#{schemes}):\\/\\/[^\\|]+)\\|(.+?)(?=>|&gt;)(?:>|&gt;)", 'gm'), '<a href="$1" target="_blank">$2</a>')
if RocketChat.settings.get('Markdown_Headers')
# Support # Text for h1

@ -1,2 +1,3 @@
Meteor.startup ->
RocketChat.settings.add 'Markdown_Headers', false, {type: 'boolean', group: 'Message', section: 'Markdown', public: true}
RocketChat.settings.add 'Markdown_SupportSchemesForLink', 'http,https', {type: 'string', group: 'Message', section: 'Markdown', public: true, i18nDescription: 'Markdown_SupportSchemesForLink_Description'}

Loading…
Cancel
Save