This plugin embeds the content of a public GitHub repository into your WordPress posts. It’s capable of retrieving either the full content or a snippet of a file. The code will be displayed with syntax highlighting and line numbers.
Now supports content caching for improved page responsiveness and load times.
Syntax highlighting is provided by the Sunlight JS syntax highlighter. Many thanks to those involved in that project!
This plugin registers a shortcode that allows for embedding GitHub repo content into blog posts. To embed content into your post, use the
github shortcode like so:
[github userid="[target user id]" repoid="[target repo id]" path="[path to content]" language="[language of target content]"]
Attributes used by the
userid – The user ID of the repository owner.
repoid – The ID of the repository that contains the target content.
path – The full path to the content. This path should start at the repository root, not inclusive of the leading
/, and terminate with the name of the target content’s filename.
language – The programming language of the code contained in the content. This information will be passed to the syntax highlighter. The value must match one of the recognized values for the Sunlight JS engine. For a list of values, see the Sunlight documentation.
startloc – Optional. The starting line of code to display in the code snippet. If this attribute is ommitted, the first line of retrieved file will be the first line of code displayed in the snippet.
stoploc – Optional. The final line of code (inclusive) to display in the code snippet. If this attribute is ommitted, the final line of content shown in the snippet will be the last line of the retrieved file.
src/support.js from the jQuery project repo:
Retrieve lines 39 through 64 of this plugin’s content retrieval class:
[getgit repoid=github-wordpress-plugin userid=claycarpenter path=”src/php/github_repo_content_retriever.php” language=”php” startloc=39 stoploc=64]
- Does this plugin support configurable syntax highlighting?
Currently, the syntax highlighting style choice is not user configurable. However, such functionality is expected in future releases.
- Adds configurability to the caching support. The content cache system can now be enabled or disabled. Content in the cache can now have a configurable expiry.
- Updates cache (Transient) key generation so that the generated keys are more likely to be unique across plugins.
- Adds support for content caching. The caching support is provided via the Transients API. This is an initial implementation and does not allow for configuration of the cache entry expiration date.
- Initial public release.
- Supports basic syntax highlighting, line numbers.
- Supports showing only snippets of files, rather than the full file content.
- Uses Sunlight JS syntax highlighter, v1.17.