Render markdown in GraphQL
What does this MR do?
This adds a markdown_field
to our types.
Using this helper will render a model's markdown field using the
existing MarkupHelper
with the context of the GraphQL query
available to the helper.
Having the context available to the helper is needed for redacting links to resources that the current user is not allowed to see.
Because rendering the HTML can cause queries, the complexity of a these fields is raised by 5 above the default.
The markdown field helper can be used as follows:
markdown_field :note_html, null: false
This would generate a field that will render the markdown field note
of the model. This could be overridden by adding the method:
argument. Passing a symbol for the method name:
markdown_field :body_html, null: false, method: :note
It will have this description by default:
The GitLab Flavored Markdown rendering of
note
This could be overridden by passing a description:
argument.
The type of a markdown_field
is always GraphQL::STRING_TYPE
.
This is required for https://gitlab.com/gitlab-org/gitlab-ee/issues/9489
Conformity
-
Changelog entry - [-] Documentation created/updated or follow-up review issue created
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
-
Separation of EE specific content