Skip to main content

How to add an "improve this content" button to your GitHub Pages site

3 min read
: If you host your site on GitHub or GitHub Pages, an edit button (and thus encouraging collaboration around your content) is simply a matter of linking to an easily predictable URL.

At the bottom of this page (and every other page on the site), you’ll notice a subtle plea to help improve the page’s content. That edit button is no dark magic. If you host your site on GitHub or GitHub Pages, collaborative content is simply a matter of linking to an easily predictable URL.

The difference between publishing with say, WordPress, and publishing using Jekyll and GitHub Pages is more than a choice of framework or platform. When you treat content as code, when you give prose the same respect that developers have for building mission-critical software, you suddenly unlock collaborative workflows whereby content can be transparently versioned, discussed, and improved. Like any other open source project, members of the public can see each line’s history, how it came to be, and propose improvements for the author to review.

If your site’s content is hosted on GitHub (either with Jekyll/GitHub Pages or something like wordpress-github-sync), it’s easy to provide readers with a link to submit changes. You simply need to add a vanilla HTML link to the following URL (if you’re using another framework, you’ll need to build the URL yourself):

https://github.com/<!-- {{ site.github.repository_nwo }} -->/edit/<!-- {{ site.branch }} -->/<!-- {{ page.path }} -->}

Luckily, GitHub Pages has a nice helper to build that URL automatically:

[Edit this page link]

Or, if you wanted the helper to build the link as well:

Please [help improve this article].

Which would output something like:

Please <a href="http://github.com/benbalter/benbalter.github.com/edit/master/_posts/2015-09-13-github-pages-edit-button.md">help improve this article</a>.

If a user clicks the link, they’ll be prompted to login or signup for a GitHub account if they haven’t already, and will be provided with a web-based editor to edit the page’s content. From there, they simply click the big green “propose change” buttons, which will silently submit a pull request to your site on their behalf, no Git or GitHub knowledge necessary.

Give it a try by clicking the edit button below (suggested improvements to this post welcome), and I encourage you to follow these steps to add a “help improve this content” button to your own site.

Originally published September 13, 2015 View revision history
Share

More to explore

Helpful 404s for Jekyll (and GitHub Pages)

3 min read

How to build 404 pages for Jekyll and GitHub Pages that automatically suggest similar URLs to those requested, using Levenshtein distance and your sitemap.

Jekyll: Where content is truly king

2 min read

Choosing Jekyll over a traditional CMS for government.github.com freed us to spend six months iterating on what mattered most — the content.

Test your content

4 min read

Treat content as code and unlock CI for prose. Use HTML Proofer and Travis CI to automatically test every link, image, and change.

Why WordPress

11 min read

The case for WordPress as the world's most versatile publishing platform, from its proven track record and ease of use to its community-driven ecosystem.

Ben Balter

I'm Ben Balter — I write here about engineering leadership, open source, and showing your work. I was the Director of Hubber Enablement at GitHub, where I helped thousands of GitHubbers do their best remote work. Before this role: Chief of Staff for Security, enterprise PM, and GitHub's first Government Evangelist. Before GitHub: attorney, Presidential Innovation Fellow, and member of the White House's first agile development team. More about the author →

Follow along: Bluesky LinkedIn

This page is open source Help improve this article on GitHub