Documents from Git
A plugin to inject and render files in a WordPress post or page directly from most popular Git platforms. Currently supported file types: Markdown, J …
Plugin info
Maintenance & Compatibility
Maintenance score
Possibly abandoned • Last updated 1543 days ago • 3 reviews
Is Documents from Git abandoned?
Possibly abandoned (last update 1543 days ago).
Compatibility
Similar & Alternatives
Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.
Description
Official documentation: https://github.com/gis-ops/wordpress-markdown-git
This WordPress Plugin lets you easily publish, collaborate on and version control your [Markdown, Jupyter notebook] documents directly from your favorite remote Git platform, even if it’s self-hosted.
The advantages are:
- Write documents in your favorite editor and just push to your remote repository to update your blog instantly
- Use the power of version control: publish different versions of the document in different posts, i.e. from another branch or commit than latest
master - Easy to update by your readers via pull requests, minimizing the chance of stale tutorials
The following document types are currently supported:
- Markdown
- Jupyter notebooks (only for public repositories)
The following platforms are currently supported:
- Github
- Bitbucket
- Gitlab
Usage
Note, this plugin uses Github’s wonderful /markdown API to render to HTML. This comes with 2 caveats:
- Unless authenticated, the rate limit is set at 60 requests per minute. Since v1.1.0 the plugin is capable of statically caching content. In case that’s not dynamic enough for you, your only option currently is to not use any cache in which case every document will be pulled from your provider every time someone opens it on your site. Then it’s strongly recommended to create a Github access token and register it with the plugin. Then the rate limit will be set to 5000 requests per hour. See Global attributes section for details on how to do that.
- The Markdown content cannot exceed 400 KB, so roughly 400 000 characters incl whitespace. If not a monographic dissertation, this should not be an applicable limit though.
Shortcodes
The plugin features a variety of shortcodes.
Publish documents
The document-specific shortcodes follow a pattern of [git-, where
can be one ofgithub: if you use Github as your VCS platformbitbucket: if you use Bitbucket as your VCS platformgitlab: if you use Gitlab as your VCS platform
can be one ofmarkdown: Render your Markdown files hosted on your VCS platform in Github’s rendering stylejupyter: Render your Jupyter notebook hosted on your VCS platfrom (only for public repositories)checkout: Renders a small badge-like box with a link to the document and the date of the last commithistory: Renders asection with the last commit dates, messages and authors
Manipulate rendering style
Additionally, there’s an enclosing shortcode Add the enclosing Each shortcode takes a few attributes, indicating if it’s required for public or private repositories: Attribute Since most attributes will be the same across the entire system, this plugin offers the possibility to set all attributes globally except for In the menu Plugins ► Plugin Editor, choose “Documents from Git” and enter your preferences in the Note, setting the attributes manually in the shortcode has always precedence over any settings in Often we need to prioritize speed when loading content and, in addition, it is very costly to fetch, load and format the content every time we need to read the content of the post. This plugin soon offers 2 methods for caching, Static caching ( This is the default strategy, as it doesn’t require any user action. The property Currently there’s no way to flush the cache manually. However, changing Dynamic caching ( This is not implemented yet. See #20 for details. You need to authorize via However, keep in mind that some platforms have stricter API limits for anonymous requests which are greatly extended if you provide your credentials. So even for public repos it could make sense. And unless you use this plugin’s caching capabilities, it’s strongly recommended to register a Github access token regardless of the VCS hosting platform, see the beginning of the chapter. How to generate the This plugin needs only Read access to your repositories. Keep that in mind when creating an access token. We publish our own tutorials with this plugin: https://gis-ops.com/tutorials/. The following example will put a dashed box around the whole post: [git-add-css classes=”md-dashedbox”] With the following CSS file contents enqueued to your theme: div.md_dashedbox { div.md_dashedbox div.markdown-github {[git-add-css] which adds a
class1, class2, class3wp_enqueue_style('my-style', get_template_directory_uri().'/my-style.css'); to the theme’s functions.phpgit-add-css shortcode to your post with the custom CSS classes in the classes attribute, e.g.:[git-add-css classes="class1 class2 class3"]
[git-gitlab-checkout url=...]
[git-gitlab-markdown url=...]
[git-gitlab-history url=...]
[/git-add-css]Attributes
Action
Public repo
Private repo
Type
Descriptionurl
all except git-add-css
:ballot_box_with_check:
:ballot_box_with_check:
string
The browser URL of the document, e.g. https://github.com/gis-ops/wordpress-markdown-git/blob/master/README.mduser
all except git-add-css
:negative_squared_cross_mark:
:ballot_box_with_check:
string
The user name (not email) of an authorized usertoken
all except git-add-css
:negative_squared_cross_mark:
:ballot_box_with_check:
string
The access token/app password for the authorized usercache_ttl
all except git-add-css
:negative_squared_cross_mark:
:negative_squared_cross_mark:
integer
The time in seconds that the plugin will cache, only for cache_strategy=static.cache_strategy
all except git-add-css
:negative_squared_cross_mark:
:negative_squared_cross_mark:
integer
Only static caching is implemented so far. dynamic caching is on the way!limit
history
:negative_squared_cross_mark:
:negative_squared_cross_mark:
integer
Limits the history of commits to this number. Default 5.classes
git-add-css
:ballot_box_with_check:
:ballot_box_with_check:
string
The additional CSS classes to render the content withGlobal attributes
url:includes/config.json.includes/config.json.Caching
static and dynamic which can be set via the cache_strategy property.cache_strategy=static)cache_ttl sets how many seconds the content cache will keep alive.cache_ttl or the history limit will create a new cache.cache_strategy=dynamic)Token authorizationuser and token if you intend to publish from a private repository. You don’t need to authorize if the repository is open.token depends on your platform:
Examples
Publish Markdown from Github
[git-github-markdown url="https://github.com/gis-ops/tutorials/blob/master/qgis/QGIS_SimplePlugin.md"]
Publish Markdown from Github with 1 hour cache
[git-github-markdown url="https://github.com/gis-ops/tutorials/blob/master/qgis/QGIS_SimplePlugin.md" cache_ttl="3600" cache_strategy="static"]
Publish Jupyter notebook from Github
[git-github-jupyter url="https://github.com/GIScience/openrouteservice-examples/blob/master/python/ortools_pubcrawl.ipynb"]
Publish from a private repository
[git-bitbucket-jupyter user=nilsnolde token=3292_2p3a_84-2af url="https://bitbucket.org/nilsnolde/test-wp-plugin/src/master/README.md"]
Display last commit and document URL from Bitbucket
[git-bitbucket-checkout url="https://bitbucket.org/nilsnolde/test-wp-plugin/src/master/README.md"]
Display commit history from Gitlab
git-gitlab-history limit=5 url="https://gitlab.com/nilsnolde/esy-osm-pbf/-/blob/master/README.md"]
Use additional CSS classes to style
`
[git-github-checkout url=”https://github.com/gis-ops/tutorials/blob/master/qgis/QGIS_SimplePlugin.md”]
[git-github-markdown url=”https://github.com/gis-ops/tutorials/blob/master/qgis/QGIS_SimplePlugin.md”]
[git-github-history url=”https://github.com/gis-ops/tutorials/blob/master/qgis/QGIS_SimplePlugin.md”]
[/git-add-css]
``css
position: relative;
font-size: 0.75em;
border: 3px dashed;
padding: 10px;
margin-bottom:15px
}
color:white;
line-height: 20px;
padding: 0px 5px;
position: absolute;
background-color: #345;
top: -3px;
left: -3px;
text-transform:none;
font-size:1em;
font-family: “Helvetica Neue”,Helvetica,Arial,sans-serif;
}
`
Installation
Directly from WordPress plugin repository.
Or the latest with WP Pusher:
- Install WP Pusher (https://wppusher.com) via ZIP and activate
- Install from Github via WP Pusher from gis-ops/wordpress-markdown-git
- Activate and add shortcode to your posts.
Or install the latest code as ZIP from https://github.com/gis-ops/wordpress-markdown-git/archive/master.zip
Frequently Asked Questions
Yes, since v2.0.0 the plugin has a subpage in the main Settings menu.
Yes, since v1.1.0 the plugin supports static caching of all relevant information. See the “Caching” section for details.
No, relative image links (e.g. ) cannot be processed by this plugin. Please see the notes in the documentation for ways to work around this limitation.
Yes, you can, if you provide the plugin’s config.json with the necessary credentials for your platform (see documentation for details). However, be aware that all image URLs you are referencing are openly accessible or provide the necessary authentication means. Also see #13 and the documentation for further details.
Review feed
Very useful plugin
Screenshots
Changelog
v2.2.0
- plugin didn’t authenticate correctly to Github
v2.1.0
- styles were not enqueued properly which led to default markdown rendering
v2.0.0
- created Settings subpage for the plugin (BREAKING CHANGE)
v1.1.1
- fix Gitlab URLs for subdirectory markdown paths
v1.1.0
- implement static caching
v1.0.2
- Fixed rate limiting for unauthenticated
/markdownrequests - Fixed Jupyter implementation
v1.0.0
- First version