4d37be0fb8
Resolve "User-generated permalink IDs collide with GitLab interface" ## What does this MR do? Prevents ID values automatically generated by headers in [GitLab Flavored Markdown](https://github.com/gitlabhq/gitlabhq/blob/master/doc/user/markdown.md#header-ids-and-links) from colliding with IDs used elsewhere in the GitLab interface. This can cause confusion when, for instance, a selector looks for a merge request tab with `id="pipelines"` and there is a header with the same ID earlier in the DOM. How this works: * All header IDs generated with GitLab Flavored Markdown are namespaced with `id="user-content_foo"` * All anchor links which point to these IDs continue to use the non-namespaced hash `<a href="#foo">...</a>` * When a page is loaded or when the `hashchange` event is triggered, javascript will automatically search for `#user-content_foo` if `#foo` cannot be found, and scroll to that position instead. ## Before ![2016-11-21-13.00.28](/uploads/e3be2cd6a9142dfd6e64db5462a6aa76/2016-11-21-13.00.28.gif) ## After: ![2016-11-21-13.12.45](/uploads/f7ae3f3a30c91325eaa3665591b6a850/2016-11-21-13.12.45.gif) ![2016-11-21-13.03.00](/uploads/3a6a782c081ecaa05b8781548d794909/2016-11-21-13.03.00.gif) ## Does this MR meet the acceptance criteria? - [x] [Changelog entry](https://docs.gitlab.com/ce/development/changelog.html) added - Tests - [x] Added for this feature/bug - [ ] All builds are passing - [x] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [x] Branch has no merge conflicts with `master` (if it does - rebase it please) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) ## What are the relevant issue numbers? Closes #22781 See also prior attempts to address this issue: #3908, !2023, !2024 See merge request !7631 |
||
---|---|---|
.. | ||
administration | ||
api | ||
ci | ||
container_registry | ||
customization | ||
development | ||
downgrade_ee_to_ce | ||
gitlab-basics | ||
hooks | ||
incoming_email | ||
install | ||
integration | ||
intro | ||
legal | ||
logs | ||
markdown | ||
migrate_ci_to_ce | ||
monitoring | ||
operations | ||
permissions | ||
profile | ||
project_services | ||
public_access | ||
raketasks | ||
security | ||
ssh | ||
system_hooks | ||
university | ||
update | ||
user | ||
web_hooks | ||
workflow | ||
README.md |
Documentation
User documentation
- Account Security Securing your account via two-factor authentication, etc.
- API Automate GitLab via a simple and powerful API.
- CI/CD GitLab Continuous Integration (CI) and Continuous Delivery (CD) getting started,
.gitlab-ci.yml
options, and examples. - GitLab as OAuth2 authentication service provider. It allows you to login to other applications from GitLab.
- Container Registry Learn how to use GitLab Container Registry.
- GitLab basics Find step by step how to start working on your commandline and on GitLab.
- Importing to GitLab.
- Importing and exporting projects between instances.
- Markdown GitLab's advanced formatting system.
- Migrating from SVN Convert a SVN repository to Git and GitLab.
- Permissions Learn what each role in a project (external/guest/reporter/developer/master/owner) can do.
- Profile Settings
- Project Services Integrate a project with external services, such as CI and chat.
- Public access Learn how you can allow public and internal access to projects.
- SSH Setup your ssh keys and deploy keys for secure access to your projects.
- Webhooks Let GitLab notify you when new code has been pushed to your project.
- Workflow Using GitLab functionality and importing projects from GitHub and SVN.
- University Learn Git and GitLab through videos and courses.
- Git Attributes Managing Git attributes using a
.gitattributes
file. - Git cheatsheet Download a PDF describing the most used Git operations.
Administrator documentation
- Access restrictions Define which Git access protocols can be used to talk to GitLab
- Authentication/Authorization Configure external authentication with LDAP, SAML, CAS and additional Omniauth providers.
- Custom Git hooks Custom Git hooks (on the filesystem) for when webhooks aren't enough.
- Install Requirements, directory structures and installation from source.
- Restart GitLab Learn how to restart GitLab and its components.
- Integration How to integrate with systems such as JIRA, Redmine, Twitter.
- Issue closing pattern Customize how to close an issue from commit messages.
- Koding Set up Koding to use with GitLab.
- Libravatar Use Libravatar instead of Gravatar for user avatars.
- Log system Log system.
- Environment Variables to configure GitLab.
- Operations Keeping GitLab up and running.
- Raketasks Backups, maintenance, automatic webhook setup and the importing of projects.
- Repository checks Periodic Git repository checks.
- Repository storages Manage the paths used to store repositories.
- Security Learn what you can do to further secure your GitLab instance.
- System hooks Notifications when users, projects and keys are changed.
- Update Update guides to upgrade your installation.
- Welcome message Add a custom welcome message to the sign-in page.
- Reply by email Allow users to comment on issues and merge requests by replying to notification emails.
- Migrate GitLab CI to CE/EE Follow this guide to migrate your existing GitLab CI data to GitLab CE/EE.
- Git LFS configuration
- Housekeeping Keep your Git repository tidy and fast.
- GitLab Performance Monitoring Configure GitLab and InfluxDB for measuring performance metrics.
- Request Profiling Get a detailed profile on slow requests.
- Monitoring uptime Check the server status using the health check endpoint.
- Debugging Tips Tips to debug problems when things go wrong
- Sidekiq Troubleshooting Debug when Sidekiq appears hung and is not processing jobs.
- High Availability Configure multiple servers for scaling or high availability.
- Container Registry Configure Docker Registry with GitLab.
- Multiple mountpoints for the repositories storage Define multiple repository storage paths to distribute the storage load.
Contributor documentation
- Development All styleguides and explanations how to contribute.
- Legal Contributor license agreements.