Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/bits-freeware/bits-wp-markdown/archive/refs/heads/main.zipWordPress plugin by Bristlecone IT Services. Write in Markdown without Jetpack, with syntax aligned to iA Writer.
Plugin homepage: https://bristleconeit.com/bristlecone-markdown.
Development repository: https://github.com/Zyniker13/bits-wp-markdown.
Requirements
- WordPress 6.4+
- PHP 8.4+
Development
composer install
composer test
The Gutenberg block is plain wp.* JavaScript (no build step). Editor writing-surface craft notes: PRODUCT.md, DESIGN.md, docs/impeccable.md.
WordPress.org
This directory is the plugin root. readme.txt is the file WordPress.org uses. The directory contributor is bristleconeit (Bristlecone IT Services). Plugin URI is https://bristleconeit.com/bristlecone-markdown; Author URI is https://bristleconeit.com.
Do not include Jetpack in directory tags.
WordPress.org assets (icon, banner, screenshots) belong in the plugin’s SVN /assets directory after approval, not in this zip.
Plugin settings are at Bristlecone → Markdown (admin.php?page=bristlecone-markdown). Older bookmarks under Settings (options-general.php?page=bristlecone-markdown) redirect there. The Bristlecone parent menu is shared with Bristlecone Admin Styles when that plugin is active.
The public plugin page is https://bristleconeit.com/bristlecone-markdown. Copy and standards notes for that page live in docs/plugin-home.md (not shipped in the WordPress.org zip).
Storage
Document-mode posts (Classic Editor, REST API, iA Writer) store HTML in post_content and Markdown in post_content_filtered, with _bristlecone_markdown (legacy _bits_markdown is still recognized; Jetpack’s _wpcom_is_markdown and _wpcom_markdown are also honored). The Markdown block keeps source in block attributes and saves HTML as a fallback if the plugin is deactivated. Existing jetpack/markdown blocks are adopted when Jetpack Markdown is inactive and converted to bristlecone/markdown on save (optional bulk converter under Tools, off by default). The same alias path covers simple-markdown/markdown-block (content) when that plugin is inactive, plus optional custom identifiers (namespace/block-name|attribute). A gated Tools scanner can list other unregistered blocks whose names contain “markdown” for review; it does not auto-register aliases.
Footnotes
Footnote IDs are namespaced as bristlecone-markdown-fn-{postId}-… so archive pages and WordPress’s core Footnotes block are less likely to collide. New posts are converted a second time after insert so those IDs use the real post ID rather than a placeholder.
wpautop is disabled for document-mode Markdown posts because it can scramble footnote markup. Themes that restyle sup may still need a small CSS tweak. Footnote lists still appear on archives for every excerpted/full post that contains them. Inline footnotes ([^text with spaces.]) work alongside named [^1] definitions. The core Footnotes block is a separate feature; IDs do not overlap, but a post could contain both.
Content Blocks
iA Writer Content Blocks transclude files from a local library WordPress cannot access. Compile the document in iA Writer (or publish the already-expanded Markdown) rather than expecting WordPress to resolve those paths.
Release zip
Build a production zip (single root folder bristlecone-markdown, Composer --no-dev):
composer release
The zip is written to dist/bristlecone-markdown-1.0.0.zip. Upload that file at Add Your Plugin. After approval, tag updates go through WordPress.org SVN; this GitHub repository stays the development tree.