diff --git a/CHANGELOG b/CHANGELOG
index 9b2d6d58a5c1ecd19a69de0cf2c69fb17a72f261..7fab6934f547e37585c8c761032777f61cb6515f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -17,6 +17,7 @@ v 8.5.0 (unreleased)
     set it up
   - API: Added "merge_requests/:merge_request_id/closes_issues" (Gal Schlezinger)
   - Fix diff comments loaded by AJAX to load comment with diff in discussion tab
+  - Fix relative links in other markup formats (Ben Boeckel)
   - Whitelist raw "abbr" elements when parsing Markdown (Benedict Etzel)
   - Fix label links for a merge request pointing to issues list
   - Don't vendor minified JS
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 622cbfe3cc49be25097828e9ebb97bb7d0bbfe28..02357e2f23eee9a9ee669c014da3ff2de4da139e 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -212,8 +212,7 @@ module ApplicationHelper
         file_content
       end
     else
-      GitHub::Markup.render(file_name, file_content).
-        force_encoding(file_content.encoding).html_safe
+      other_markup(file_name, file_content)
     end
   rescue RuntimeError
     simple_format(file_content)
diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb
index 1a226252251beb9c281105da01132fda7dbe1ce7..89d2a648494f644b9c48ca31798a5fbe415f30fc 100644
--- a/app/helpers/gitlab_markdown_helper.rb
+++ b/app/helpers/gitlab_markdown_helper.rb
@@ -78,6 +78,21 @@ module GitlabMarkdownHelper
     )
   end
 
+  def other_markup(file_name, text)
+    Gitlab::OtherMarkup.render(
+      file_name,
+      text,
+      project:      @project,
+      current_user: (current_user if defined?(current_user)),
+
+      # RelativeLinkFilter
+      project_wiki:   @project_wiki,
+      requested_path: @path,
+      ref:            @ref,
+      commit:         @commit
+    )
+  end
+
   # Return the first line of +text+, up to +max_chars+, after parsing the line
   # as Markdown.  HTML tags in the parsed output are not counted toward the
   # +max_chars+ limit.  If the length limit falls within a tag's contents, then
diff --git a/lib/banzai/pipeline/asciidoc_pipeline.rb b/lib/banzai/pipeline/asciidoc_pipeline.rb
deleted file mode 100644
index f1331c0ebf94567948a2474b604c2db16e834d3f..0000000000000000000000000000000000000000
--- a/lib/banzai/pipeline/asciidoc_pipeline.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-module Banzai
-  module Pipeline
-    class AsciidocPipeline < BasePipeline
-      def self.filters
-        [
-          Filter::RelativeLinkFilter
-        ]
-      end
-    end
-  end
-end
diff --git a/lib/gitlab/asciidoc.rb b/lib/gitlab/asciidoc.rb
index b203b9d70e4a149277dfa30096391d60746a7f85..0b9c2e730f9c6d91542fb36cf21b73d61f9c7009 100644
--- a/lib/gitlab/asciidoc.rb
+++ b/lib/gitlab/asciidoc.rb
@@ -31,9 +31,7 @@ module Gitlab
 
       html = ::Asciidoctor.convert(input, asciidoc_opts)
 
-      if context[:project]
-        html = Banzai.render(html, context.merge(pipeline: :asciidoc))
-      end
+      html = Banzai.post_process(html, context)
 
       html.html_safe
     end
diff --git a/lib/gitlab/other_markup.rb b/lib/gitlab/other_markup.rb
new file mode 100644
index 0000000000000000000000000000000000000000..746ec2833308622d2af1ec8b0a2ce8022a56b9a2
--- /dev/null
+++ b/lib/gitlab/other_markup.rb
@@ -0,0 +1,24 @@
+module Gitlab
+  # Parser/renderer for markups without other special support code.
+  module OtherMarkup
+
+    # Public: Converts the provided markup into HTML.
+    #
+    # input         - the source text in a markup format
+    # context       - a Hash with the template context:
+    #                 :commit
+    #                 :project
+    #                 :project_wiki
+    #                 :requested_path
+    #                 :ref
+    #
+    def self.render(file_name, input, context)
+      html = GitHub::Markup.render(file_name, input).
+        force_encoding(input.encoding)
+
+      html = Banzai.post_process(html, context)
+
+      html.html_safe
+    end
+  end
+end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 30e353148a8749e362cc1fa10935b641cebee0ca..f6c1005d2655971e5585000f02f797e60a9e17cc 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -293,6 +293,10 @@ describe ApplicationHelper do
 
   describe 'render_markup' do
     let(:content) { 'Noël' }
+    let(:user) { create(:user) }
+    before do
+      allow(helper).to receive(:current_user).and_return(user)
+    end
 
     it 'should preserve encoding' do
       expect(content.encoding.name).to eq('UTF-8')
diff --git a/spec/lib/gitlab/asciidoc_spec.rb b/spec/lib/gitlab/asciidoc_spec.rb
index 6beb21c6d2ba2bee1c6bf029d4169d1db8ad31e7..736bf7872084af7b0a360d9f3382f20e97958a23 100644
--- a/spec/lib/gitlab/asciidoc_spec.rb
+++ b/spec/lib/gitlab/asciidoc_spec.rb
@@ -42,22 +42,6 @@ module Gitlab
       end
     end
 
-    context "with project in context" do
-
-      let(:context) { { project: create(:project) } }
-
-      it "should filter converted input via HTML pipeline and return result" do
-        filtered_html = '<b>ASCII</b>'
-
-        allow(Asciidoctor).to receive(:convert).and_return(html)
-        expect(Banzai).to receive(:render)
-          .with(html, context.merge(pipeline: :asciidoc))
-          .and_return(filtered_html)
-
-        expect( render('foo', context) ).to eql filtered_html
-      end
-    end
-
     def render(*args)
       described_class.render(*args)
     end