• Timothy Andrew's avatar
    Implement the correct linking behaviour in `WikiLinkFilter`. · 8e71c19a
    Timothy Andrew authored
    Original Comments
    =================
    
    - Linking behaves as per rules documented here:
      https://gitlab.com/gitlab-org/gitlab-ce/blob/16568-document-wiki-linking-behavior/doc/markdown/wiki.md
    - All links (to other wiki pages) are rewritten to be at the level of
      the app root. We can't use links relative to the current
      page ('./foo', 'foo', '../foo'), because they won't work in the
      markdown preview, where the current page is suffixed with `/edit`
    - Move existing `WikiLinkFilter` specs to `WikiPipeline` spec. It makes
      sense to run these tests on the combined output of the pipeline,
      rather than a single filter, since we can catch issues with
      conflicting filters.
    - Add more tests to cover the new linking
    
    @rymai's Review
    ===============
    
    - Classes nested under `WikiLinkFilter` should declare `WikiLinkFilter`'s
      inherit, so nothing changes if the nested class is loaded first.
    - Add a blank line after a guard clause
    - Use keyword arguments for the `Rewriter` constructor
    - Invert a condition - use `if` instead of `unless`
    - Inline a `let` in `WikiPipeline` spec - it was only used in a single place
    - Change out of date spec names
    - Add a comment for every rewrite rule in `Rewriter`
    8e71c19a