[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fIYNLvsQExxhEHZC3hX0meVgVoosk7qVmcd2bS-wPs94":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":17,"tags":18,"homepage":17,"download_link":23,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":37,"analysis":137,"fingerprints":343},"mytory-markdown","Mytory Markdown","1.6.5","An, Hyeong-woo","https:\u002F\u002Fprofiles.wordpress.org\u002Fmytory\u002F","\u003Cp>The plugin get markdown file URL like github raw content url. The plugin convert markdown file to html, and put it to post content.\u003C\u002Fp>\n\u003Cp>It also provide text mode that write markdown in post edit page. Markdown text converted to html is put to editor. Text mode don’t use url.\u003C\u002Fp>\n\u003Cp>이 플러그인은 마크다운 파일의 URL을 받아서 html로 변환하고 그걸 포스트 내용으로 집어넣습니다.\u003Cbr \u002F>\n기트허브 원본 내용 URL 같은 것을 활용할 수 있습니다.\u003C\u002Fp>\n\u003Cp>포스트 편집 페이지에서 마크다운 텍스트를 작성하는 방법도 제공합니다. 마크다운 텍스트는 html로 변환돼 에디터에 들어갑니다.\u003Cbr \u002F>\n텍스트 모드를 사용하는 경우 URL은 사용하지 않습니다.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=wKcrIvlGVfo\" rel=\"nofollow ugc\">See intro video.\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FwKcrIvlGVfo?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch4>Now you can migrate from Public link to Dropbox API\u003C\u002Fh4>\n\u003Cp>I made up Mytory Markdown for Dropbox plugin. The plugin access Dropbox using API. So I divide the plugin to Mytory Markdown for Dropbox.\u003Cbr \u002F>\nNow you can install it in plugin page. This video describe how to migrate Public link to Dropbox API.\u003C\u002Fp>\n\u003Cp>Install Mytory Markdown for Dropbox and activate it. Then see a video below.\u003C\u002Fp>\n\u003Cp>[Youtube https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ZmPWMBvGuS4]\u003C\u002Fp>\n\u003Cp>If the video doesn’t be show, \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ZmPWMBvGuS4\" rel=\"nofollow ugc\">click this to go to how to migration video\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>이제 Public 링크를 드롭박스 API로 이전할 수 있습니다\u003C\u002Fh4>\n\u003Cp>Mytory Markdown for Dropbox 플러그인을 만들었습니다. API를 이용해서 드롭박스에 접속하는 플러그인입니다. 별도로 만들었습니다.\u003Cbr \u002F>\n지금 플러그인 페이지에서 검색해 설치할 수 있습니다. 아래 비디오는 퍼블릭 링크를 드롭박스 API로 이전하는 방법을 설명합니다.\u003C\u002Fp>\n\u003Cp>Mytory Markdown for Dropbox 플러그인을 설치한 뒤, 활성화하고 아래 비디오를 보세요.\u003C\u002Fp>\n\u003Cp>(비디오는 위에서 보세요.)\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>This plugin get markdown file url like github raw content url. It convert markdown file to html, and put it to post content.\u003C\u002Fli>\n\u003Cli>You can update post \u003Cstrong>by editing file on your computer\u003C\u002Fstrong>. e.g. \u003Cstrong>By push your content to github\u003C\u002Fstrong>. Of course, you can edit directly from github website.\u003C\u002Fli>\n\u003Cli>If post was updated once, plugin check only URL server’s ETAG not full content. It is for speed.\u003Cbr \u002F>\nIf ETAG was changed, plugin get new content and update post content. Or do nothing.\u003C\u002Fli>\n\u003Cli>The plugin only pass converted html content to editor. Saving is WordPress’s work. So revision history is preserved.\u003C\u002Fli>\n\u003Cli>The plugin is compatible with other plugins. Because the plugin updates only post content html. This doesn’t touch \u003Ccode>the_content\u003C\u002Fcode> process(vary plugins touch the process).\u003C\u002Fli>\n\u003Cli>You can use \u003Ca href=\"http:\u002F\u002Fmichelf.ca\u002Fprojects\u002Fphp-markdown\u002Fextra\u002F\" rel=\"nofollow ugc\">markdown extra syntax\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>It provide markdown editor that can use in post editing page instead of url.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Logic\u003C\u002Fh4>\n\u003Ch4>On admin page\u003C\u002Fh4>\n\u003Cp>On admin write page, put markdown url path. And click ‘update editor’ button. So markdown content converted to html is putted to editor. \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmytory-markdown\u002Fscreenshots\u002F\" rel=\"ugc\">See screenshot 1\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>On view page\u003C\u002Fh4>\n\u003Cp>This plugin get file url(Github raw content url is recommended). And save header’s etag to postmeta and converted html to post_content.\u003Cbr \u002F>\nNext time on request same post, first this plugin olny get http etag.\u003Cbr \u002F>\nIf changed etag, get md content and save again, or get html from post_content.\u003C\u002Fp>\n\u003Ch4>This plugin divide title and content from md file\u003C\u002Fh4>\n\u003Cp>If markdown file has \u003Ccode>h1\u003C\u002Fcode> this plugin puts first \u003Ccode>h1\u003C\u002Fcode> string to post_title. Of course, remove the \u003Ccode>h1\u003C\u002Fcode> from post_content so don’t print title twice.\u003C\u002Fp>\n\u003Ch4>Source Code\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmytory\u002Fmytory-markdown\" rel=\"nofollow ugc\">Mytory Markdown Github\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>You can use Multimarkdown 6\u003C\u002Fh4>\n\u003Cp>You can use the Muitimarkdown if you install it on your server. ((Website)[https:\u002F\u002Ffletcher.github.io\u002FMultiMarkdown-6\u002F])\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>Multimarkdown option will be enabled if a multimarkdown execution is on OS PATH and web server can run it.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Otherwise, you can define \u003Ccode>MYTORY_MARKDOWN_MULTIMARKDOWN_EXECUTION\u003C\u002Fcode> constant on \u003Ccode>wp-config.php\u003C\u002Fcode>.\u003Cbr \u002F>\nex) \u003Ccode>define('MYTORY_MARKDOWN_MULTIMARKDOWN_EXECUTION', '\u002Fopt\u002Fmultimarkdown\u002Fbin\u002Fmultimarkdown');\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n","The plugin get markdown file URL like github raw content url. It convert markdown file to html, and put it to post content.",50,10192,100,8,"2022-11-23T16:37:00.000Z","6.1.10","",[19,20,21,22],"github","markdown","markdown-editor","md","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmytory-markdown.1.6.5.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"mytory",3,130,90,30,87,"2026-04-04T05:29:55.573Z",[38,59,79,100,120],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":17,"download_link":58,"security_score":13,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"ultimate-markdown","Ultimate Markdown – Markdown Editor, Importer, & Exporter","1.24","DAEXT","https:\u002F\u002Fprofiles.wordpress.org\u002Fdaext\u002F","\u003Cp>Ultimate Markdown is a plugin for WordPress that allows you to create WordPress posts with the popular Markdown syntax.\u003C\u002Fp>\n\u003Cp>Specifically, after installing the plugin, you will be able to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Create posts from Markdown files or Markdown documents created with the plugin.\u003C\u002Fli>\n\u003Cli>Convert Markdown text to blocks directly in the post editor.\u003C\u002Fli>\n\u003Cli>Create and manage Markdown documents in a dedicated plugin menu.\u003C\u002Fli>\n\u003Cli>Import Markdown files into WordPress.\u003C\u002Fli>\n\u003Cli>Create archives of Markdown files from the Markdown documents created with the plugin.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The plugin integrates with both the Block Editor and the Classic Editor. The Markdown tools are available in the post editor sidebar when using the Block Editor and as meta boxes when using the Classic Editor.\u003C\u002Fp>\n\u003Ch3>Pro Version\u003C\u002Fh3>\n\u003Cp>We distribute the \u003Ca href=\"https:\u002F\u002Fdaext.com\u002Fultimate-markdown\u002F\" rel=\"nofollow ugc\">Pro version\u003C\u002Fa> of this plugin that includes more export options, REST API, additional Markdown parsers, document categories, and more.\u003C\u002Fp>\n\u003Ch3>Additional post sidebar sections\u003C\u002Fh3>\n\u003Cp>The plugin adds the following sections to the post sidebar.\u003C\u002Fp>\n\u003Ch4>Import Markdown\u003C\u002Fh4>\n\u003Cp>This section allows you to generate the blocks of a post from an uploaded Markdown file.\u003C\u002Fp>\n\u003Ch4>Load Markdown\u003C\u002Fh4>\n\u003Cp>Use this feature to create the blocks of a post from a Markdown document previously created with the plugin.\u003C\u002Fp>\n\u003Ch4>Insert Markdown\u003C\u002Fh4>\n\u003Cp>With this section, you can instantly transform Markdown text to blocks.\u003C\u002Fp>\n\u003Ch3>Dedicated plugin menus\u003C\u002Fh3>\n\u003Ch4>Documents\u003C\u002Fh4>\n\u003Cp>This menu includes a Markdown editor with an HTML preview section. In addition, you will find functionalities to create, edit, duplicate or delete your Markdown documents.\u003C\u002Fp>\n\u003Ch4>Import\u003C\u002Fh4>\n\u003Cp>Import one or more Markdown files into the plugin with the upload form provided in this menu.\u003C\u002Fp>\n\u003Ch4>Export\u003C\u002Fh4>\n\u003Cp>With this menu, you can generate Markdown files from the Markdown documents stored in the plugin.\u003C\u002Fp>\n\u003Ch3>Supported Markdown syntax\u003C\u002Fh3>\n\u003Cp>The plugin can convert Markdown text to HTML using the following parsers:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmarkedjs\u002Fmarked\" rel=\"nofollow ugc\">Marked\u003C\u002Fa>, a high-performance JavaScript Markdown parser and compiler.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fthephpleague\u002Fcommonmark\" rel=\"nofollow ugc\">League\\CommonMark\u003C\u002Fa>, a PHP Markdown parser that supports both the CommonMark and GitHub Flavored Markdown variants.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Front Matter\u003C\u002Fh3>\n\u003Cp>The plugin supports Front Matter key-value pairs provided in the \u003Ca href=\"https:\u002F\u002Fyaml.org\u002F\" rel=\"nofollow ugc\">YAML\u003C\u002Fa> language. With this feature, you can configure specific post settings by providing their values at the beginning of the Markdown document.\u003C\u002Fp>\n\u003Cp>Please see the \u003Ca href=\"https:\u002F\u002Fdaext.com\u002Fdoc\u002Fultimate-markdown\u002F\" rel=\"nofollow ugc\">plugin documentation\u003C\u002Fa> for more information on the available Front Matter keys and practical examples.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>This plugin includes the following third-party libraries:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcure53\u002FDOMPurify\" rel=\"nofollow ugc\">DOMPurify\u003C\u002Fa> licensed under the \u003Ca href=\"https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\" rel=\"nofollow ugc\">Apache License Version 2.0\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmarkedjs\u002Fmarked\" rel=\"nofollow ugc\">Marked\u003C\u002Fa> licensed under the \u003Ca href=\"http:\u002F\u002Fwww.opensource.org\u002Flicenses\u002Fmit-license.php\" rel=\"nofollow ugc\">MIT License\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fthephpleague\u002Fcommonmark\" rel=\"nofollow ugc\">League\\CommonMark\u003C\u002Fa> licensed under the \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicenses\u002FBSD-3-Clause\" rel=\"nofollow ugc\">BSD 3-Clause License\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgetcomposer.org\u002F\" rel=\"nofollow ugc\">Composer\u003C\u002Fa> licensed under the \u003Ca href=\"http:\u002F\u002Fwww.opensource.org\u002Flicenses\u002Fmit-license.php\" rel=\"nofollow ugc\">MIT License\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmnapoli\u002FFrontYAML\" rel=\"nofollow ugc\">FrontYAML\u003C\u002Fa> licensed under the \u003Ca href=\"http:\u002F\u002Fwww.opensource.org\u002Flicenses\u002Fmit-license.php\" rel=\"nofollow ugc\">MIT License\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Generate block-based articles from a Markdown file, bulk import and export Markdown documents, create Markdown documents from an editor, and more.",1000,26452,80,10,"2026-03-08T14:36:00.000Z","6.9.4","5.0","5.3",[55,56,57,20,21],"export-markdown","front-matter","import-markdown","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fultimate-markdown.1.24.zip",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":13,"num_ratings":31,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":72,"tags":73,"homepage":77,"download_link":78,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"documents-from-git","Documents from Git","2.2.0","nilsnolde","https:\u002F\u002Fprofiles.wordpress.org\u002Fnilsnolde\u002F","\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;",200,7394,"2021-10-09T16:44:00.000Z","5.8.13","5.0.0","7.0",[74,19,75,20,76],"bitbucket","jupyter","notebook","https:\u002F\u002Fgithub.com\u002Fgis-ops\u002Fwordpress-markdown-git","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdocuments-from-git.2.2.0.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":13,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":53,"tags":93,"homepage":97,"download_link":98,"security_score":99,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"git-it-write","Git it Write – Write posts from GitHub","2.0","vaakash","https:\u002F\u002Fprofiles.wordpress.org\u002Fvaakash\u002F","\u003Cp>Git it Write allows to publish the markdown files present in a GitHub repository to your WordPress site. So with this plugin, whenever the files are added, updated in the repository the WordPress post will be added, updated accordingly.\u003C\u002Fp>\n\u003Cp>This plugin is inspired from static site generators like \u003Ccode>Jekyll\u003C\u002Fcode>, \u003Ccode>Next.js\u003C\u002Fcode>, \u003Ccode>Gatsby.js\u003C\u002Fcode> on how content is written is markdown. This is a similar idea for WordPress where markdown files are parsed from GitHub and published as posts.\u003C\u002Fp>\n\u003Cp>👓 \u003Cstrong>Live example:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvaakash\u002Faakash-web\" rel=\"nofollow ugc\">Source github repository\u003C\u002Fa> (\u003Ccode>\u002Fdocs\u002F\u003C\u002Fcode> folder) to \u003Ca href=\"https:\u002F\u002Fwww.aakashweb.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Posts published\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>⚡ \u003Cstrong>Getting started:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwww.aakashweb.com\u002Fdocs\u002Fgit-it-write\u002Fgetting-started\u002F\" rel=\"nofollow ugc\">Get started\u003C\u002Fa> with Git it write. Learn how to write \u003Ccode>.md\u003C\u002Fcode> files and publish posts on WordPress.\u003C\u002Fp>\n\u003Cp>This allows people to collaborate with the post, share edits and suggestions in GitHub which when pulled the WordPress post will be updated automatically.\u003C\u002Fp>\n\u003Cp>If a repository has files in the below structure,\u003C\u002Fp>\n\u003Cpre>\u003Ccode>docs\u002F\n    guide\u002F\n        introduction.md\n        getting-started.md\nhelp\u002F\n    faq.md\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Then below posts will be created like below (if permalinks are configured and the post type supports “hierarchy” i.e creating posts level by level (example: pages))\u003C\u002Fp>\n\u003Cpre>\u003Ccode>https:\u002F\u002Fexample.com\u002Fdocs\u002Fguide\u002Fintroduction\u002F\nhttps:\u002F\u002Fexample.com\u002Fdocs\u002Fguide\u002Fgetting-started\u002F\nhttps:\u002F\u002Fexample.com\u002Fhelp\u002Ffaq\u002F\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>🎲 What is the use of this plugin ?\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Publish posts using the files in your GitHub repository.\u003C\u002Fli>\n\u003Cli>Write your posts in Markdown format.\u003C\u002Fli>\n\u003Cli>Write your posts on your desktop application (Notepad++, Sublime Text, Visual studio code).\u003C\u002Fli>\n\u003Cli>Collaborate, involve communities on the files in GitHub and publish them on WordPress.\u003C\u002Fli>\n\u003Cli>All the advantages of Git and it’s version management system.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🚀 Some use cases\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Can be used for documentation posts, FAQs, Wikis etc.\u003C\u002Fli>\n\u003Cli>Write blog posts.\u003C\u002Fli>\n\u003Cli>Any articles which may need community involvement.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>✨ Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Markdown will be processed and post will be published as HTML.\u003C\u002Fli>\n\u003Cli>Images used in the source file will be uploaded to WordPress.\u003C\u002Fli>\n\u003Cli>Relative links are supported.\u003C\u002Fli>\n\u003Cli>Set post properties like post status, title, order, category, tags etc, in the source file itself.\u003C\u002Fli>\n\u003Cli>Webhook support (whenever repository is changed, it updates the plugin to pull the latest changes and publish the posts)\u003C\u002Fli>\n\u003Cli>Add multiple repositories.\u003C\u002Fli>\n\u003Cli>Publish to any post type.\u003C\u002Fli>\n\u003Cli>Posts are published in hierarchial manner if they are under folders. Example: a file \u003Ccode>dir1\u002Fhello.md\u003C\u002Fcode> will be posted as \u003Ccode>dir1\u002Fhello\u002F\u003C\u002Fcode> in WordPress if the post type supports hierarchy.\u003C\u002Fli>\n\u003Cli>Support for post metadata like setting tags, categories, custom fields.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>ℹ Note\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Only Markdown files will be pulled and published right now\u003C\u002Fli>\n\u003Cli>Posts won’t be deleted when it’s source file is deleted on GitHub.\u003C\u002Fli>\n\u003Cli>It is preferred to have a permalink structure.\u003C\u002Fli>\n\u003Cli>It is preferred to select a post type which supports hierarchy.\u003C\u002Fli>\n\u003Cli>Images have to present only in \u003Ccode>_images\u003C\u002Fcode> folder in the repository root. Markdown files have to relatively use them in the file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🥗 Recommendation\u003C\u002Fh3>\n\u003Cp>It is recommended that a permalink structure is enabled in the WordPress site so that, if you have file under \u003Ccode>docs\u002Freference\u002Fmy-post.md\u003C\u002Fcode> then a post is published like \u003Ccode>https:\u002F\u002Fexample.com\u002Fdocs\u002Freference\u002Fmy-post\u002F\u003C\u002Fcode>. This will be the result when post type has hierarchy support. They will be posted level by level for every folder in the repository. The folder’s post will be taken from the \u003Ccode>index.md\u003C\u002Fcode> file if exists under that folder.\u003C\u002Fp>\n\u003Ch3>🏃‍♂️ Using the plugin\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Have a GitHub repository where all the source files (markdown files) are maintained (organized in folders if needed the exact structure)\u003C\u002Fli>\n\u003Cli>In the plugin settings page, click add a new repository.\u003C\u002Fli>\n\u003Cli>Enter the details of the repository to pull the posts from and under what post type to publish them.\u003C\u002Fli>\n\u003Cli>Save the settings\u003C\u002Fli>\n\u003Cli>Click “Pull the posts” and then “Pull only” changes. This will publish posts for all the markdown files.\u003C\u002Fli>\n\u003Cli>To automatically update posts whenever repository is updated, configure webhook as mentioned in the settings page.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Links\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.aakashweb.com\u002Fdocs\u002Fgit-it-write\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.aakashweb.com\u002Fforum\u002F\" rel=\"nofollow ugc\">Support forum\u002FReport bugs\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.paypal.me\u002Fvaakash\u002F\" rel=\"nofollow ugc\">Donate\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvaakash\u002Fgit-it-write\" rel=\"nofollow ugc\">Contribute on GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Publish markdown files present in a GitHub repository as posts to WordPress automatically",7244,94,7,"2024-08-03T13:38:00.000Z","6.6.5","4.4",[94,19,20,95,96],"editor","posts","publish","https:\u002F\u002Fwww.aakashweb.com\u002Fwordpress-plugins\u002Fgit-it-write\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgit-it-write.2.0.zip",92,{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":13,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":17,"tags":114,"homepage":118,"download_link":119,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"github-readme","Github README","0.2.0","Jason Stallings","https:\u002F\u002Fprofiles.wordpress.org\u002Foctalmage\u002F","\u003Cp>Github README is a plugin that allows you to embed markdown from GitHub in a page or post using a simple shortcode.\u003C\u002Fp>\n\u003Cp>Usage:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>github_readme\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This shortcode embeds the project’s readme.\u003C\u002Fp>\n\u003Cp>[github_readme repo=”octalmage\u002FMarknote”]\u003C\u002Fp>\n\u003Cp>You can also trim lines from the top of the readme using the “trim” option:\u003C\u002Fp>\n\u003Cp>[github_readme repo=”octalmage\u002FMarknote” trim=”3″]\u003C\u002Fp>\n\u003Cp>This is useful for removing titles since your page\u002Fpost will most likely already have one.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>github_markdown\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This shortcode embeds any markdown file found in the repository.\u003C\u002Fp>\n\u003Cp>[github_markdown repo=”octalmage\u002FMarknote” file=”README.md”]\u003C\u002Fp>\n\u003Cp>trim, branch, and cache (seconds to cache) also supported.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>github_wikipage\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This shortcode embeds pages from a project’s wiki.\u003C\u002Fp>\n\u003Cp>[github_wikipage repo=”octalmage\u002FMarknote” page=”Syntax”]\u003C\u002Fp>\n\u003Cp>trim and cache also supported.\u003C\u002Fp>\n","Easily embed GitHub READMEs in pages\u002Fposts.",20,3237,4,"2016-06-07T15:07:00.000Z","4.5.33","3.0.1",[115,19,20,116,117],"embed","readme","shortcode","https:\u002F\u002Fgithub.com\u002Foctalmage\u002Fgithub-readme","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgithub-readme.zip",{"slug":121,"name":122,"version":123,"author":124,"author_profile":125,"description":126,"short_description":127,"active_installs":49,"downloaded":128,"rating":13,"num_ratings":129,"last_updated":130,"tested_up_to":131,"requires_at_least":132,"requires_php":17,"tags":133,"homepage":135,"download_link":136,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"github-flavored-markdown-comments","GitHub-Flavored Markdown Comments","1.0","Evan Solomon","https:\u002F\u002Fprofiles.wordpress.org\u002Fevansolomon\u002F","\u003Cp>Comment forms allow some HTML, this plugin extends that to let users type in \u003Ca href=\"http:\u002F\u002Fdaringfireball.net\u002Fprojects\u002Fmarkdown\u002F\" rel=\"nofollow ugc\">Markdown\u003C\u002Fa> and have it automatically converted to HTML.  It also extends Markdown with a couple features made popular \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fgithub-flavored-markdown\" rel=\"nofollow ugc\">by GitHub\u003C\u002Fa>.  Conversion from Markdown to HTML is completely automated and doesn’t require anything on the commenter’s part.\u003C\u002Fp>\n\u003Cp>The feature additions from GitHub are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Single linebreaks are treated as new paragraphs\u003C\u002Fli>\n\u003Cli>Code “fencing” with three backticks (“`)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Two notable features from GitHub’s Markdown implementation are missing:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To do lists: Doing these well would require some front end interaction, which I decided is outside the scope of this plugin at least for now\u003C\u002Fli>\n\u003Cli>Repository autolinking (e.g. comments, issues, etc): These seemed a little \u003Cem>too\u003C\u002Fem> GitHub-specific.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>GitHub-Flavored Markdown Comments is developed, unsurprisingly, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevansolomon\u002Fwp-github-flavored-markdown-comments\" rel=\"nofollow ugc\">on GitHub\u003C\u002Fa>.\u003C\u002Fp>\n","WordPress plugin to let commenters use (GitHub-flavored) Markdown, and turn it into HTML.",2435,1,"2013-03-08T06:48:00.000Z","3.5.2","3.4",[134,19,20],"comments","https:\u002F\u002Fgithub.com\u002Fevansolomon\u002Fwp-github-flavored-markdown-comments","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgithub-flavored-markdown-comments.1.0.zip",{"attackSurface":138,"codeSignals":244,"taintFlows":299,"riskAssessment":327,"analyzedAt":342},{"hooks":139,"ajaxHandlers":230,"restRoutes":240,"shortcodes":241,"cronEvents":242,"entryPointCount":243,"unprotectedCount":243},[140,146,150,155,158,161,165,169,173,177,181,185,188,192,195,197,200,203,207,210,212,216,219,223,225,228],{"type":141,"name":142,"callback":143,"file":144,"line":145},"action","plugins_loaded","plugin_init","main.php",27,{"type":141,"name":147,"callback":148,"file":144,"line":149},"pre_get_posts","conditional_apply_markdown",29,{"type":151,"name":152,"callback":153,"file":144,"line":154},"filter","the_content","manual_update_button",31,{"type":141,"name":147,"callback":156,"file":144,"line":157},"apply_markdown",36,{"type":151,"name":152,"callback":159,"file":144,"line":160},"attach_error_msg",38,{"type":141,"name":162,"callback":163,"file":144,"line":164},"add_meta_boxes","register_meta_box",39,{"type":141,"name":166,"callback":167,"file":144,"line":168},"save_post","update_post",40,{"type":141,"name":170,"callback":171,"file":144,"line":172},"admin_menu","addMenu",43,{"type":141,"name":174,"callback":175,"file":144,"line":176},"admin_init","register_settings",44,{"type":141,"name":178,"callback":179,"file":144,"line":180},"admin_enqueue_scripts","enqueue_scripts",45,{"type":141,"name":182,"callback":183,"file":144,"line":184},"admin_notices","alertHowToMigrate",680,{"type":141,"name":170,"callback":186,"file":144,"line":187},"addMenuHowToMigrate",682,{"type":151,"name":152,"callback":189,"priority":190,"file":191,"line":33},"mdwp_MarkdownPost",6,"markdown.php",{"type":151,"name":193,"callback":189,"priority":190,"file":191,"line":194},"the_content_rss",91,{"type":151,"name":196,"callback":189,"priority":190,"file":191,"line":99},"get_the_excerpt",{"type":151,"name":196,"callback":198,"priority":89,"file":191,"line":199},"trim",93,{"type":151,"name":201,"callback":202,"file":191,"line":88},"the_excerpt","mdwp_add_p",{"type":151,"name":204,"callback":205,"file":191,"line":206},"the_excerpt_rss","mdwp_strip_p",95,{"type":151,"name":152,"callback":208,"priority":11,"file":191,"line":209},"balanceTags",99,{"type":151,"name":196,"callback":208,"priority":211,"file":191,"line":13},9,{"type":151,"name":213,"callback":214,"priority":190,"file":191,"line":215},"pre_comment_content","Markdown",127,{"type":151,"name":213,"callback":217,"priority":14,"file":191,"line":218},"mdwp_hide_tags",128,{"type":151,"name":213,"callback":220,"priority":221,"file":191,"line":222},"mdwp_show_tags",12,129,{"type":151,"name":224,"callback":214,"priority":190,"file":191,"line":32},"get_comment_text",{"type":151,"name":226,"callback":214,"priority":190,"file":191,"line":227},"get_comment_excerpt",131,{"type":151,"name":226,"callback":205,"priority":89,"file":191,"line":229},132,[231,236],{"action":232,"nopriv":233,"callback":234,"hasNonce":233,"hasCapCheck":233,"file":144,"line":235},"mytory_md_update_editor",false,"get_post_content_ajax",41,{"action":237,"nopriv":233,"callback":238,"hasNonce":233,"hasCapCheck":233,"file":144,"line":239},"mytory_md_convert_in_text_mode","convert_in_text_mode",42,[],[],[],2,{"dangerousFunctions":245,"sqlUsage":255,"outputEscaping":262,"fileOperations":297,"externalRequests":243,"nonceChecks":25,"capabilityChecks":14,"bundledLibraries":298},[246,250],{"fn":247,"file":191,"line":248,"context":249},"create_function",1763,"$this->utf8_strlen = create_function('$text', 'return preg_match_all(",{"fn":251,"file":252,"line":253,"context":254},"exec","MMMultimarkdown.php",16,"exec($command, $result, $return_var);",{"prepared":25,"raw":243,"locations":256},[257,260],{"file":258,"line":154,"context":259},"batch.php","$wpdb->get_results() with variable interpolation",{"file":144,"line":261,"context":259},676,{"escaped":243,"rawEcho":263,"locations":264},17,[265,267,269,271,272,274,276,278,280,282,284,285,288,290,292,293,295],{"file":258,"line":211,"context":266},"raw output",{"file":258,"line":268,"context":266},28,{"file":258,"line":270,"context":266},48,{"file":258,"line":194,"context":266},{"file":273,"line":221,"context":266},"how-to-migrate.php",{"file":144,"line":275,"context":266},246,{"file":144,"line":277,"context":266},270,{"file":144,"line":279,"context":266},612,{"file":144,"line":281,"context":266},668,{"file":283,"line":108,"context":266},"meta-box.php",{"file":283,"line":149,"context":266},{"file":286,"line":287,"context":266},"setting.php",26,{"file":286,"line":289,"context":266},51,{"file":286,"line":291,"context":266},55,{"file":286,"line":218,"context":266},{"file":286,"line":294,"context":266},150,{"file":286,"line":296,"context":266},224,5,[],[300,317],{"entryPoint":301,"graph":302,"unsanitizedCount":129,"severity":316},"convert_in_text_mode (main.php:599)",{"nodes":303,"edges":314},[304,309],{"id":305,"type":306,"label":307,"file":144,"line":308},"n0","source","$_POST",610,{"id":310,"type":311,"label":312,"file":144,"line":279,"wp_function":313},"n1","sink","echo() [XSS]","echo",[315],{"from":305,"to":310,"sanitized":233},"medium",{"entryPoint":318,"graph":319,"unsanitizedCount":25,"severity":326},"\u003Cmain> (main.php:0)",{"nodes":320,"edges":323},[321,322],{"id":305,"type":306,"label":307,"file":144,"line":308},{"id":310,"type":311,"label":312,"file":144,"line":279,"wp_function":313},[324],{"from":305,"to":310,"sanitized":325},true,"low",{"summary":328,"deductions":329},"The mytory-markdown plugin v1.6.5 presents a notable security risk due to its direct exposure of two AJAX handlers without any authentication or capability checks. This significantly increases its attack surface, allowing unauthenticated users to potentially trigger these handlers.  Furthermore, the code analysis reveals the use of dangerous functions like `create_function` and `exec`, which are often associated with execution vulnerabilities. The complete lack of prepared statements for SQL queries is a critical concern, leaving the plugin highly susceptible to SQL injection attacks. While the taint analysis did not reveal critical or high severity issues in the analyzed flows, the presence of one flow with an unsanitized path is still a potential risk. The plugin's history of zero known CVEs is a positive indicator, suggesting a generally good track record. However, this does not mitigate the immediate risks identified in the static analysis, particularly the unprotected AJAX endpoints and insecure SQL practices. The plugin's strengths lie in its lack of known vulnerabilities and limited number of entry points. Conversely, its weaknesses are significant and require immediate attention, especially the unprotected AJAX handlers and the high risk of SQL injection.",[330,332,334,336,338,340],{"reason":331,"points":49},"AJAX handlers without auth checks",{"reason":333,"points":49},"Use of dangerous functions (create_function, exec)",{"reason":335,"points":49},"Raw SQL queries without prepared statements",{"reason":337,"points":89},"Low percentage of properly escaped output",{"reason":339,"points":297},"Flows with unsanitized paths",{"reason":341,"points":297},"Missing nonce checks on AJAX handlers","2026-03-16T22:03:00.704Z",{"wat":344,"direct":357},{"assetPaths":345,"generatorPatterns":350,"scriptPaths":351,"versionParams":352},[346,347,348,349],"\u002Fwp-content\u002Fplugins\u002Fmytory-markdown\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fmytory-markdown\u002Fjs\u002Fscript.js","\u002Fwp-content\u002Fplugins\u002Fmytory-markdown\u002Fjs\u002Fmarkdown-it.min.js","\u002Fwp-content\u002Fplugins\u002Fmytory-markdown\u002Fjs\u002Fprism.js",[],[347,348,349],[353,354,355,356],"mytory-markdown\u002Fcss\u002Fstyle.css?ver=","mytory-markdown\u002Fjs\u002Fscript.js?ver=","mytory-markdown\u002Fjs\u002Fmarkdown-it.min.js?ver=","mytory-markdown\u002Fjs\u002Fprism.js?ver=",{"cssClasses":358,"htmlComments":360,"htmlAttributes":361,"restEndpoints":363,"jsGlobals":365,"shortcodeOutput":369},[359],"mytory-markdown-editor",[],[362],"data-mytory-markdown-post-id",[364],"\u002Fwp-json\u002Fmytory-markdown\u002Fv1\u002Fupdate-post",[366,367,368],"mytoryMarkdownEditor","markdownit","Prism",[]]