Top-Level Discussion on Wiki Pages
Problem
GitLab for Knowledge Management features two prominent solutions, GitLab Pages and GitLab Wiki. GitLab Wiki allows users to create Pages detailing specific projects, order them in a tree, see version history, and manually link these Pages to Issues/Epics/MRs/etc. However, it is very challenging to have conversations around the content of a Page. Users report having to manually link an Issue to a Page, the linked Issue being where conversations around the Page happen. These types of workflows decrease productivity and disconnect users from the very context they need to effectively move forward on a project.
Solution
Comments should be available in GitLab Wiki Pages for better usability of Wiki Pages. Comments provide an avenue for effective discussion, questions, and collaboration, and ultimately allow projects to move forward more efficiently.
There are several areas in which we can enable comments:
1: At the bottom of a Wiki pages (similar to what an activity thread looks like today on an Issue or Epic object type).
2: Adjacent to a specific line of text by highlighting it. A user could highlight and add a comment similar to how we are able to do so on lines of code today.
Requirements
-
Top-level discussions
- Goal: Allow people to be able to add comments at the bottom of a Wiki page. Each comment can also have a thread of follow-up replies. This should work similar to how comments on issues work today.
Implementation Guide
Design Management is a good example of a location in GitLab where we added support for comments and discussions. That can serve as a good example of the direction to follow.
- Setup GraphQL queries on top of the existing Notes backend to add support for notes on wiki pages.
- Pass the path of the wiki page as a reference to where we are adding a comment
- Setup a Vue app and components to display, create and edit comments on the Wiki page. Most of the components can be reused, or modified from the original design management use-case to the wikis use case.
- Add tests for the Vue components and other JavaScript code in Jest.
- Add feature specs to cover end-to-end use-cases of adding comments on wiki pages.