[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fpDGFWZ4BzayaAR7TirYvzKnhfzutgH2sJ8uCn3L2YG0":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":9,"trust_score":10,"computed_at":11,"plugins":12},"nilsnolde","https:\u002F\u002Fprofiles.wordpress.org\u002Fnilsnolde\u002F",1,200,85,30,84,"2026-05-20T09:01:48.332Z",[13],{"slug":14,"name":15,"version":16,"author":4,"author_profile":5,"description":17,"short_description":18,"active_installs":7,"downloaded":19,"rating":20,"num_ratings":21,"last_updated":22,"tested_up_to":23,"requires_at_least":24,"requires_php":25,"tags":26,"homepage":32,"download_link":33,"security_score":8,"vuln_count":34,"unpatched_count":34,"last_vuln_date":35,"fetched_at":36},"documents-from-git","Documents from Git","2.2.0","\u003Cp>Official documentation: https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Fwordpress-markdown-git\u003C\u002Fp>\n\u003Cp>This WordPress Plugin lets you easily publish, collaborate on and version control your [\u003Cstrong>Markdown, Jupyter notebook\u003C\u002Fstrong>] documents directly from your favorite remote Git platform, \u003Cstrong>even if it’s self-hosted\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>The advantages are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Write documents in your favorite editor and just push to your remote repository to update your blog instantly\u003C\u002Fli>\n\u003Cli>Use the power of version control: publish different versions of the document in different posts, i.e. from another branch or commit than latest \u003Ccode>master\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Easy to update by your readers via pull requests, minimizing the chance of stale tutorials\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The following document types are currently supported:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Markdown\u003C\u002Fli>\n\u003Cli>Jupyter notebooks (\u003Cstrong>only for public repositories\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The following platforms are currently supported:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Github\u003C\u002Fli>\n\u003Cli>Bitbucket\u003C\u002Fli>\n\u003Cli>Gitlab\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>, this plugin uses Github’s wonderful \u003Ca href=\"https:\u002F\u002Fdeveloper.github.com\u002Fv3\u002Fmarkdown\u002F\" rel=\"nofollow ugc\">\u003Ccode>\u002Fmarkdown\u003C\u002Fcode> API\u003C\u002Fa> to render to HTML. This comes with 2 caveats:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Unless authenticated, the rate limit is set at 60 requests per minute. Since v1.1.0 the plugin is capable of statically \u003Ca href=\"#caching\" rel=\"nofollow ugc\">caching content\u003C\u002Fa>. 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 \u003Cstrong>strongly recommended\u003C\u002Fstrong> 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 \u003Ca href=\"#global-attributes\" rel=\"nofollow ugc\">Global attributes section\u003C\u002Fa> for details on how to do that.\u003C\u002Fli>\n\u003Cli>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.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Cp>The plugin features a variety of shortcodes.\u003C\u002Fp>\n\u003Ch4>Publish documents\u003C\u002Fh4>\n\u003Cp>The document-specific shortcodes follow a pattern of \u003Ccode>[git-\u003Cplatform>-\u003Caction>]\u003C\u002Fcode>, where\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u003Cplatform>\u003C\u002Fcode> can be one of\n\u003Cul>\n\u003Cli>\u003Ccode>github\u003C\u002Fcode>: if you use Github as your VCS platform\u003C\u002Fli>\n\u003Cli>\u003Ccode>bitbucket\u003C\u002Fcode>: if you use Bitbucket as your VCS platform\u003C\u002Fli>\n\u003Cli>\u003Ccode>gitlab\u003C\u002Fcode>: if you use Gitlab as your VCS platform\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u003Caction>\u003C\u002Fcode> can be one of\n\u003Cul>\n\u003Cli>\u003Ccode>markdown\u003C\u002Fcode>: Render your Markdown files hosted on your VCS platform in Github’s rendering style\u003C\u002Fli>\n\u003Cli>\u003Ccode>jupyter\u003C\u002Fcode>: Render your Jupyter notebook hosted on your VCS platfrom (\u003Cstrong>only for public repositories\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003Cli>\u003Ccode>checkout\u003C\u002Fcode>: Renders a small badge-like box with a link to the document and the date of the last commit\u003C\u002Fli>\n\u003Cli>\u003Ccode>history\u003C\u002Fcode>:  Renders a \u003Ccode>\u003Ch2>\u003C\u002Fcode> section with the last commit dates, messages and authors\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Manipulate rendering style\u003C\u002Fh4>\n\u003Cp>Additionally, there’s an enclosing shortcode \u003Ccode>[git-add-css]\u003C\u002Fcode> which adds a \u003Ccode>\u003Cdiv id=\"git-add-css\" class=\"\u003Cclasses_attribute>\"\u003C\u002Fcode> to wrap its contents. That way you can manipulate the style freely with additional CSS classes. Follow these steps:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Add a CSS file to your theme’s root folder, which contains some classes, e.g. \u003Ccode>class1\u003C\u002Fcode>, \u003Ccode>class2\u003C\u002Fcode>, \u003Ccode>class3\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Enqueue the CSS file by adding \u003Ccode>wp_enqueue_style('my-style', get_template_directory_uri().'\u002Fmy-style.css');\u003C\u002Fcode> to the theme’s \u003Ccode>functions.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Add the enclosing \u003Ccode>git-add-css\u003C\u002Fcode> shortcode to your post with the custom CSS classes in the \u003Ccode>classes\u003C\u002Fcode> attribute, e.g.:\u003C\u002Fp>\n\u003Cp>\u003Ccode>[git-add-css classes=\"class1 class2 class3\"]\u003Cbr \u002F>\n[git-gitlab-checkout url=...]\u003Cbr \u002F>\n[git-gitlab-markdown url=...]\u003Cbr \u002F>\n[git-gitlab-history url=...]\u003Cbr \u002F>\n[\u002Fgit-add-css]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Attributes\u003C\u002Fh3>\n\u003Cp>Each shortcode takes a few attributes, indicating if it’s required for public or private repositories:\u003C\u002Fp>\n\u003Cp>  Attribute\u003Cbr \u002F>\n  Action\u003Cbr \u002F>\n  Public repo\u003Cbr \u002F>\n  Private repo\u003Cbr \u002F>\n  Type\u003Cbr \u002F>\n  Description\u003C\u002Fp>\n\u003Cp>  \u003Ccode>url\u003C\u002Fcode>\u003Cbr \u002F>\n  all except \u003Ccode>git-add-css\u003C\u002Fcode>\u003Cbr \u002F>\n  :ballot_box_with_check:\u003Cbr \u002F>\n  :ballot_box_with_check:\u003Cbr \u002F>\n  string\u003Cbr \u002F>\n  The browser URL of the document, e.g. https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Fwordpress-markdown-git\u002Fblob\u002Fmaster\u002FREADME.md\u003C\u002Fp>\n\u003Cp>  \u003Ccode>user\u003C\u002Fcode>\u003Cbr \u002F>\n  all except \u003Ccode>git-add-css\u003C\u002Fcode>\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  :ballot_box_with_check:\u003Cbr \u002F>\n  string\u003Cbr \u002F>\n  The \u003Cstrong>user name\u003C\u002Fstrong> (not email) of an authorized user\u003C\u002Fp>\n\u003Cp>  \u003Ccode>token\u003C\u002Fcode>\u003Cbr \u002F>\n  all except \u003Ccode>git-add-css\u003C\u002Fcode>\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  :ballot_box_with_check:\u003Cbr \u002F>\n  string\u003Cbr \u002F>\n  The access token\u002Fapp password for the authorized user\u003C\u002Fp>\n\u003Cp>  \u003Ccode>cache_ttl\u003C\u002Fcode>\u003Cbr \u002F>\n  all except \u003Ccode>git-add-css\u003C\u002Fcode>\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  integer\u003Cbr \u002F>\n  The time in seconds that the plugin will cache, \u003Cstrong>only for \u003Ccode>cache_strategy=static\u003C\u002Fcode>\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>  \u003Ccode>cache_strategy\u003C\u002Fcode>\u003Cbr \u002F>\n  all except \u003Ccode>git-add-css\u003C\u002Fcode>\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  integer\u003Cbr \u002F>\n  Only \u003Ccode>static\u003C\u002Fcode> caching is implemented so far. \u003Ccode>dynamic\u003C\u002Fcode> caching is on the way!\u003C\u002Fp>\n\u003Cp>  \u003Ccode>limit\u003C\u002Fcode>\u003Cbr \u002F>\n  \u003Ccode>history\u003C\u002Fcode>\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  :negative_squared_cross_mark:\u003Cbr \u002F>\n  integer\u003Cbr \u002F>\n  Limits the history of commits to this number. Default 5.\u003C\u002Fp>\n\u003Cp>  \u003Ccode>classes\u003C\u002Fcode>\u003Cbr \u002F>\n  \u003Ccode>git-add-css\u003C\u002Fcode>\u003Cbr \u002F>\n  :ballot_box_with_check:\u003Cbr \u002F>\n  :ballot_box_with_check:\u003Cbr \u002F>\n  string\u003Cbr \u002F>\n  The additional CSS classes to render the content with\u003C\u002Fp>\n\u003Ch4>Global attributes\u003C\u002Fh4>\n\u003Cp>Since most attributes will be the same across the entire system, this plugin offers the possibility to set all attributes globally except for \u003Ccode>url\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cp>In the menu \u003Cem>Plugins\u003C\u002Fem> ► \u003Cem>Plugin Editor\u003C\u002Fem>, choose “Documents from Git” and enter your preferences in the \u003Ccode>includes\u002Fconfig.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>, setting the attributes manually in the shortcode has always precedence over any settings in \u003Ccode>includes\u002Fconfig.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch4>Caching\u003C\u002Fh4>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>This plugin soon offers 2 methods for caching, \u003Ccode>static\u003C\u002Fcode> and \u003Ccode>dynamic\u003C\u002Fcode> which can be set via the \u003Ccode>cache_strategy\u003C\u002Fcode> property.\u003C\u002Fp>\n\u003Cp>Static caching (\u003Ccode>cache_strategy=static\u003C\u002Fcode>)\u003C\u002Fp>\n\u003Cp>This is the default strategy, as it doesn’t require any user action.\u003C\u002Fp>\n\u003Cp>The property \u003Ccode>cache_ttl\u003C\u002Fcode> sets how many \u003Cstrong>seconds\u003C\u002Fstrong> the content cache will keep alive.\u003C\u002Fp>\n\u003Cp>Currently there’s no way to flush the cache manually. However, changing \u003Ccode>cache_ttl\u003C\u002Fcode> or the history \u003Ccode>limit\u003C\u002Fcode> will create a new cache.\u003C\u002Fp>\n\u003Cp>Dynamic caching (\u003Ccode>cache_strategy=dynamic\u003C\u002Fcode>)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>This is not implemented yet\u003C\u002Fstrong>. See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Fwordpress-markdown-git\u002Fissues\u002F20\" rel=\"nofollow ugc\">#20\u003C\u002Fa> for details.\u003C\u002Fp>\n\u003Ch4>\u003Ccode>Token\u003C\u002Fcode> authorization\u003C\u002Fh4>\n\u003Cp>You \u003Cstrong>need to\u003C\u002Fstrong> authorize via \u003Ccode>user\u003C\u002Fcode> and \u003Ccode>token\u003C\u002Fcode> if you intend to publish from a private repository. You \u003Cstrong>don’t need to\u003C\u002Fstrong> authorize if the repository is open.\u003C\u002Fp>\n\u003Cp>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 \u003Ca href=\"#caching\" rel=\"nofollow ugc\">caching capabilities\u003C\u002Fa>, it’s strongly recommended to register a Github access token regardless of the VCS hosting platform, see the \u003Ca href=\"#usage\" rel=\"nofollow ugc\">beginning of the chapter\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>How to generate the \u003Ccode>token\u003C\u002Fcode> depends on your platform:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Github: Generate a Personal Access Token following \u003Ca href=\"https:\u002F\u002Fhelp.github.com\u002Fen\u002Fgithub\u002Fauthenticating-to-github\u002Fcreating-a-personal-access-token-for-the-command-line\" rel=\"nofollow ugc\">these instructions\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Bitbucket: Generate a App Password following \u003Ca href=\"https:\u002F\u002Fconfluence.atlassian.com\u002Fbitbucket\u002Fapp-passwords-828781300.html#Apppasswords-Createanapppassword\" rel=\"nofollow ugc\">these instructions\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Gitlab: Generate a Personal Access Token following \u003Ca href=\"https:\u002F\u002Fdocs.gitlab.com\u002Fee\u002Fuser\u002Fprofile\u002Fpersonal_access_tokens.html#creating-a-personal-access-token\" rel=\"nofollow ugc\">these instructions\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin needs only \u003Cstrong>Read access\u003C\u002Fstrong> to your repositories. Keep that in mind when creating an access token.\u003C\u002Fp>\n\u003Ch3>Examples\u003C\u002Fh3>\n\u003Cp>We publish our own tutorials with this plugin: https:\u002F\u002Fgis-ops.com\u002Ftutorials\u002F.\u003C\u002Fp>\n\u003Ch4>Publish Markdown from Github\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>[git-github-markdown url=\"https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Ftutorials\u002Fblob\u002Fmaster\u002Fqgis\u002FQGIS_SimplePlugin.md\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Publish Markdown from Github with 1 hour cache\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>[git-github-markdown url=\"https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Ftutorials\u002Fblob\u002Fmaster\u002Fqgis\u002FQGIS_SimplePlugin.md\" cache_ttl=\"3600\" cache_strategy=\"static\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Publish Jupyter notebook from Github\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>[git-github-jupyter url=\"https:\u002F\u002Fgithub.com\u002FGIScience\u002Fopenrouteservice-examples\u002Fblob\u002Fmaster\u002Fpython\u002Fortools_pubcrawl.ipynb\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Publish from a private repository\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>[git-bitbucket-jupyter user=nilsnolde token=3292_2p3a_84-2af url=\"https:\u002F\u002Fbitbucket.org\u002Fnilsnolde\u002Ftest-wp-plugin\u002Fsrc\u002Fmaster\u002FREADME.md\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Display last commit and document URL from Bitbucket\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>[git-bitbucket-checkout url=\"https:\u002F\u002Fbitbucket.org\u002Fnilsnolde\u002Ftest-wp-plugin\u002Fsrc\u002Fmaster\u002FREADME.md\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Display commit history from Gitlab\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>git-gitlab-history limit=5 url=\"https:\u002F\u002Fgitlab.com\u002Fnilsnolde\u002Fesy-osm-pbf\u002F-\u002Fblob\u002Fmaster\u002FREADME.md\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Use additional CSS classes to style\u003C\u002Fh4>\n\u003Cp>The following example will put a dashed box around the whole post:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>[git-add-css classes=”md-dashedbox”]\u003Cbr \u002F>\n    [git-github-checkout url=”https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Ftutorials\u002Fblob\u002Fmaster\u002Fqgis\u002FQGIS_SimplePlugin.md”]\u003Cbr \u002F>\n    [git-github-markdown url=”https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Ftutorials\u002Fblob\u002Fmaster\u002Fqgis\u002FQGIS_SimplePlugin.md”]\u003Cbr \u002F>\n    [git-github-history url=”https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Ftutorials\u002Fblob\u002Fmaster\u002Fqgis\u002FQGIS_SimplePlugin.md”]\u003Cbr \u002F>\n[\u002Fgit-add-css]\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>With the following CSS file contents enqueued to your theme:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`css\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>div.md_dashedbox {\u003Cbr \u002F>\n    position: relative;\u003Cbr \u002F>\n    font-size: 0.75em;\u003Cbr \u002F>\n    border: 3px dashed;\u003Cbr \u002F>\n    padding: 10px;\u003Cbr \u002F>\n    margin-bottom:15px\u003Cbr \u002F>\n}\u003C\u002Fp>\n\u003Cp>div.md_dashedbox div.markdown-github {\u003Cbr \u002F>\n    color:white;\u003Cbr \u002F>\n    line-height: 20px;\u003Cbr \u002F>\n    padding: 0px 5px;\u003Cbr \u002F>\n    position: absolute;\u003Cbr \u002F>\n    background-color: #345;\u003Cbr \u002F>\n    top: -3px;\u003Cbr \u002F>\n    left: -3px;\u003Cbr \u002F>\n    text-transform:none;\u003Cbr \u002F>\n    font-size:1em;\u003Cbr \u002F>\n    font-family: “Helvetica Neue”,Helvetica,Arial,sans-serif;\u003Cbr \u002F>\n}\u003Cbr \u002F>\n    `\u003C\u002Fp>\n","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 &hellip;",7471,100,3,"2021-10-09T16:44:00.000Z","5.8.13","5.0.0","7.0",[27,28,29,30,31],"bitbucket","github","jupyter","markdown","notebook","https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Fwordpress-markdown-git","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdocuments-from-git.2.2.0.zip",0,null,"2026-04-16T10:56:18.058Z"]