Commit Graph
100 Commits
Author SHA1 Message Date
Robert Speicher a14d109b9b Provide autoload paths for filters to prevent circular dependency 2015-04-23 12:58:55 -04:00
Robert Speicher fca624670a Update Gitlab::Markdown to use the 🆕 EmojiFilter
Removes emoji-centric tests from GFM specs 💥
2015-04-21 12:53:42 -04:00
Robert Speicher 34a23bda60 Add current_user to filter context 2015-04-20 13:01:43 -04:00
Robert Speicher 77a6746a75 Run SanitizationFilter before our reference filters 2015-04-20 13:01:42 -04:00
Robert Speicher 96c2b94048 Reference filters
Commit ranges, commits, external issues, issues, labels, merge requests,
snippets, users.
2015-04-20 13:01:42 -04:00
Dmitriy Zaporozhets bd97715a57 Merge branch 'fix-label-color' into 'master'
Parse GFM references after sanitizing

Parse GFM references - labels, issues, MRs, etc. - after calling the HTML Pipeline `SanitizationFilter` so that we can use non-whitelisted attributes like `style`.  See #2188.

See merge request !1745
2015-04-20 08:40:13 +00:00
Vinnie Okada df9a992c15 Fix GFM extractions
Extract and re-insert links after sanitizing user markup.
2015-04-17 20:39:38 -06:00
Dmitriy Zaporozhets ecb58dacd6 Merge branch 'reference-access-control' into 'master'
Only allow users to reference groups, projects, issues, MRs, commits they have access to.

Addresses https://dev.gitlab.org/gitlab/gitlabhq/issues/2183.

See merge request !1742
2015-04-13 14:10:25 +00:00
Douwe Maan 9d647197da Don't require user to every gfm call. 2015-04-03 18:03:01 +02:00
Douwe Maan c5d7660000 Fix errors. 2015-04-02 22:36:54 +02:00
Dmitriy Zaporozhets f8f9750323 Merge branch 'username-period' into 'master'
Don't allow username to end in period.

The current behavior doesn't do username referencing and mentioning in sentences like "I discussed with with @douwe." since `douwe.` is matched as a username.

Addresses private issue https://dev.gitlab.org/gitlab/gitlabhq/issues/2174.

See merge request !438
2015-04-02 20:28:23 +00:00
Douwe Maan ca58e369c9 Only allow user to reference objects they have access to. 2015-04-02 10:56:04 +02:00
Marin Jankovski d77f333f9c Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce
Conflicts:
	lib/gitlab/markdown.rb
2015-03-31 19:03:54 -07:00
Dmitriy Zaporozhets dc3b4321ff Merge branch 'group-information-leak' into 'master'
Don't leak private group existence by redirecting from namespace controller to group controller.

See merge request !440
2015-04-01 01:01:38 +00:00
Vinnie Okada 9deda68257 Parse GFM references after sanitizing
Parse GFM references - labels, issues, MRs, etc. - after calling the
HTML Pipeline `SanitizationFilter` so that we can use non-whitelisted
attributes like `style`.
2015-03-28 08:58:30 -06:00
Douwe Maan 5f93b0e3da Don't allow username to end in period. 2015-03-27 11:10:56 +01:00
Douwe Maan e08d947e77 Use relative URL for Markdown references, except in mails. 2015-03-27 10:39:05 +01:00
Vinnie Okada 057c8c344b Merge branch 'master' into markdown-tags 2015-03-24 20:03:22 -06:00
Douwe Maan 61e8ca8ce0 Don't leak private group existence by redirecting from namespace controller to group controller. 2015-03-24 15:55:12 +01:00
Vinnie Okada a7afc06342 Fix SanitizationFilter bugs
Return a `SafeBuffer` instead of a `String` from the `#gfm_with_options`
method so that Rails doesn't escape our markup.

Also add `<span>` to the sanitization whitelist to avoid breaking syntax
highlighting in code blocks.
2015-03-22 20:17:56 -06:00
Vinnie Okada 1dc90fc455 Fix nested task lists
When nesting task list items, the parent item is wrapped in a `<p>` tag.
Update the task list parser to handle these paragraph wrappers.
2015-03-21 08:45:28 -06:00
Vinnie Okada cc29ce4917 Don't allow style attributes in inline HTML 2015-03-21 08:39:54 -06:00
Vinnie Okada 52bf95ae38 Change HTML sanitization
Use the `SanitizationFilter` class from the html-pipeline gem for inline
HTML instead of calling the Rails `sanitize` method.
2015-03-19 21:24:07 -06:00
Vinnie Okada feeffc4426 Merge branch 'master' into markdown-tags
Use the latest HTML pipeline gem
2015-03-17 20:53:09 -06:00
Douwe Maan e4ac6bbf82 Merge branch 'atom-xhtml-squashed' into 'master'
Fix invalid Atom feeds when using emoji, horizontal rules, or images

This is a fix for issues #880, #723, #1113.

Markdown must be rendered to XHTML, not HTML, when generating summary content for Atom feeds. Otherwise, content-less tags like *img* and *hr* are not terminated and make the Atom XML invalid. Such tags are generated when issue descriptions, merge request descriptions, comments, or commit messages use emoji, horizontal rules, or images.

To pass this option through from the relevant Haml templates to the proper place in the `gfm()` method, a new method `gfm_with_options()` is introduced. It reuses the options dictionary passed to `markdown()` and interprets options `xhtml` and `parse_tasks` from it (the latter was a convenient replacement for `gfm_with_tasks()`). `xhtml` is already interpreted by Redcarpet::Render::HTML, but that alone was not sufficient, because the post-processing in `gfm()` would convert its XHTML tags back to HTML.

I found no way of passing additional optional options to the existing `gfm()` method without requiring updates to existing callers and without getting in the way of the existing optional arguments, but maybe someone who knows more about Ruby than I can think of one.

Thorough review appreciated since this is the first time I have used Ruby.

See merge request !344
2015-03-17 08:38:38 +00:00
Christian Walther 90aa870c36 Fix invalid Atom feeds when using emoji, horizontal rules, or images.
Fixes issues #880, #723, #1113: Markdown must be rendered to XHTML, not HTML, when generating summary content for Atom feeds. Otherwise, content-less tags like <img> and <hr>, generated when issue descriptions, merge request descriptions, comments, or commit messages use emoji, horizontal rules, or images, are not terminated and make the Atom XML invalid.
2015-03-16 22:05:52 +01:00
Douwe Maan 31fc73f0a9 Use project_member instead of team_member. 2015-03-15 13:50:38 +01:00
Douwe Maan 4dddaef866 Automatically link commit ranges to compare page. 2015-03-07 00:46:13 +01:00
Nicolas Bouilleaud 8d0690c5c7 Support names starting with a digit or _ for projects and users
This is what’s actually allowed when creating a user or a project in gitlab.
2015-03-02 11:01:17 +01:00
Vinnie Okada 76aad9b76e Upgrade to Rails 4.1.9
Make the following changes to deal with new behavior in Rails 4.1.2:

* Use nested resources to avoid slashes in arguments to path helpers.
2015-02-14 11:09:23 -07:00
Nikita Verkhovin 8681cb3137 Add labels notes 2015-02-08 22:35:41 +06:00
Douwe Maan 9910b7ff99 Allow groups to be mentioned.
Resolves #1673.
2015-02-05 19:10:52 +01:00
Marin Jankovski 00a0d5aeea Move repetition to the parent. 2015-01-26 16:24:11 -08:00
Marin Jankovski 65e700472b Update the issue tracker attribute on issue tracker change. 2015-01-26 11:39:32 -08:00
Marin Jankovski 7c701acf57 Do a check which issue tracker is used inside the project. 2015-01-23 11:01:09 -08:00
Marin Jankovski 103a1bb06d Use service settings instead of config file settings to present issues. 2015-01-23 10:28:38 -08:00
Ciro Santilli 40815b2baf Remove unused variable user at lib/gitlab/markdown 2014-10-23 13:12:21 +02:00
Vinnie Okada 6798a6a8e2 Allow HTML tags in user Markdown input
Allow whitelisted tags to appear in rendered HTML output by disabling
Redcarpet's `:filter_html` option.
2014-10-10 14:42:24 -05:00
Marin Jankovski 2ea166fc33 Make sure relative url and asset_host are honored, specs. 2014-10-10 17:31:47 +02:00
Marin Jankovski b4828f4cf6 Enable markdown pipeline filters from inside gitlab. 2014-10-09 13:33:38 +02:00
Vinnie Okada 9f0083a96c Add task lists to issues and merge requests
Make the Markdown parser recognize "[x]" or "[ ]" at the beginning of a
list item and turn it into a checkbox input.  Users who can modify the
issue or MR can toggle the checkboxes directly or edit the Markdown to
manage the tasks.  Task status is also displayed in the MR and issue
lists.
2014-10-05 22:15:27 -05:00
Vinnie Okada a9cd3bfaee Fix external commit links
Display the '@' character for links to commits in other projects.
2014-10-05 10:16:12 -05:00
Vinnie Okada bcf88c8559 Fix external issue links
Display the project path in links to issues in other projects that use
an external issue tracker.
2014-10-05 10:12:53 -05:00
Vinnie Okada 7edc1439fe Fix ReferenceExtractor
The cross-project reference feature broke the ReferenceExtractor class;
this fixes it.
2014-10-03 12:30:20 -05:00
Vinnie Okada 1b1ba6b0a5 Implement cross-project Markdown references
Enable linking to commits, merge requests, and issues in other projects
by prepending a namespaced project path to the reference.
2014-10-03 12:30:20 -05:00
Robert Schilling 390183a426 Factor out Emoji parsing using html-pipeline-gitlab 2014-09-26 01:32:33 +02:00
Marin Jankovski 3131d0609c Merge pull request #7147 from zzet/patch-12
Update markdown reference to external issues
2014-09-08 14:56:29 +02:00
Andrew Kumanyaev 11b707a62e fix link_to by @bwrsandman
Add missing '#'
2014-08-20 00:21:59 +04:00
Andrew Kumanyaev f789f29ca6 Update markdown.rb
Fix mistake by @qqshfox report
2014-08-18 11:22:11 +04:00
Andrew Kumanyaev 1e7598164b Update markdown reference to external issues
1. Issue may be not only in jira.
2. Rewrite method for support different external issue trackers
2014-06-23 19:28:03 +04:00