Plugin registry
Metalsmith.js plugin registry Submit yours
Algolia
A metalsmith plugin for indexing contents on Algolia.
npm i metalsmith-algoliaAlias
Create URL aliases for any page.
npm i metalsmith-aliasAncestry
Builds a file tree in metadata so you can determine parents, list children, jump to previous and next siblings.
npm i metalsmith-ancestryAngular $templateCache
Convert AngularJS templates from HTML into JavaScript and preload $templateCache.
npm i metalsmith-angular-templatecacheArchive
Create an archives page organized by date fields.
npm i metalsmith-archiveAsciidoctor
Plugin to transform AsciiDoc files to HTML using asciidoctor.js
npm i metalsmith-asciidoctorAssert
Test file objects with assert.
npm i metalsmith-assertAssets
Include static assets in your build.
npm i metalsmith-assetsAtomizer
Automatically generate Atomic CSS from HTML using Atomizer.
npm i metalsmith-atomizerAuthor
Include authors information in collection files.
npm i metalsmith-authorAuto Collections
Automatically use metalsmith-collections based on the filesystem.
npm i metalsmith-auto-collectionsAutoprefixer
Automatically add vendor prefixes to CSS.
npm i metalsmith-autoprefixerBeautifier
Nicely format your html, css or js files.
npm i metalsmith-beautifyBibtex
Load and render bibtex bibliographies.
npm i metalsmith-bibtexBitly
Add bitly links to the metadata of each file.
npm i metalsmith-bitlyBookify HTML
Combine multiple HTML files into one. Updates links and images.
npm i metalsmith-bookify-htmlBranch
Run separate metalsmith pipelines on selected files.
npm i metalsmith-branchBroken Link Checker
Check for relative and root-relative broken links.
npm i metalsmith-broken-link-checkerBrotli
Compress files with brotli.
npm i metalsmith-brotliBrowser Sync
Leverage Browser Sync for an easier development workflow.
npm i metalsmith-browser-syncBrowserify
Compile Javascript with browserify.
npm i metalsmith-browserifyBuild Date
Add a build date, for things like feeds or sitemaps.
npm i metalsmith-build-dateBuild Info
Adds metadata about the build environment (build date, user, Node.js version, platform and more)
npm i metalsmith-build-infoChanged
Process only files that have changed.
npm i metalsmith-changedCheck All Links
Check all links, both internal and external, in anchors, images, and external page resources.
npm i metalsmith-linkcheckClean CSS
Minify your CSS Files.
npm i metalsmith-clean-cssClean Script
Generate a script to cleanup the build directory, if you are adding more than just Metalsmith files.
npm i metalsmith-cleanscriptCloudfront
Invalidate Amazon CloudFront cache. Best used in conjunction with the metalsmith-s3 plugin.
npm i metalsmith-cloudfrontCode Highlight
Syntax highlighting for code within Markdown and HTML files.
npm i metalsmith-code-highlightCoffee
Compile CoffeeScript files to Javascript.
npm i metalsmith-coffeeCollection Metadata
Add metadata to every file in a collection
npm i metalsmith-collection-metadataCollections
Group files together, like blog posts. That way you can loop over them to generate an index, or add 'next' and 'previous' links between them.
npm i @metalsmith/collectionsCollections Related
Find related files within collections.
npm i metalsmith-collections-relatedConcat
Concatenate your files.
npm i metalsmith-concatConcat Convention
Concatenate your files through file conventions, rather than configuration.
npm i metalsmith-concat-conventionContentful
Create static sites with data stored at Contentful.com
npm i contentful-metalsmithConvert
Convert image files with imagemagick.
npm i metalsmith-convertCopy
Copy and rename files.
npm i metalsmith-copyCreation and Update Timestamps
Add creation and updated timestamps
npm i metalsmith-updatedCSS Unused
Remove unused CSS rules.
npm i metalsmith-css-unusedData Loader
Load JSON/YAML files into the metadata of files from within your source tree or a models folder.
npm i metalsmith-data-loaderData Markdown
Use markdown content within html tags via data-markdown attribute.
npm i metalsmith-data-markdownDate in filename
Enrich file metadata with dates present in source filenames.
npm i metalsmith-date-in-filenameDate Formatter
Format dates defined in the YAML Front Matter
npm i metalsmith-date-formatterDebug UI
Render a nice browser based ui to inspect build files & meta.
npm i metalsmith-debug-uiDefault Values
Sets default values to frontmatter metadata if they don't exist.
npm i @metalsmith/default-valuesDefine
Manually define values in the metadata.
npm i metalsmith-defineDiscover Helpers
Discovers your template helpers and registers them with Handlebars.
npm i metalsmith-discover-helpersDiscover Partials
Discovers your template partials and registers them with Handlebars.
npm i metalsmith-discover-partialsDisqus
Adds Disqus comments widget and counter.
npm i metalsmith-disqusDither
Make a dithered copy of images.
npm i metalsmith-ditherDrafts
Hide any files marked as drafts.
npm i @metalsmith/draftsDuo
Compile assets with Duo.
npm i metalsmith-duoEach
Easily apply a function to each file or filename.
npm i metalsmith-eachEslint
Eslint your JavaScript files.
npm i metalsmith-eslintElevate
Bump files up one or more directories.
npm i metalsmith-elevateEncode HTML
Easily encode HTML entities in any HTML file by surrounding target code in triple backticks.
npm i metalsmith-encode-htmlEnv
Register all environment variables as metadata.
npm i metalsmith-envEtsy
Incorporate your active Etsy shop data into a static website.
npm i metalsmith-etsyExcel-Markdown
Query Excel files with SQL and convert to Markdown tables.
npm i metalsmith-excel-markdownExcept
Omit attributes from each file's metadata.
npm i metalsmith-exceptExcerpts
Extract the first paragraph from the beginning of any HTML file.
npm i @metalsmith/excerptsExpress
Serve static files with express, built-in support for liveReload.
npm i metalsmith-expressFavicons
A Metalsmith favicons generator.
npm i metalsmith-faviconsFeed
Generate an RSS feed for a collection.
npm i metalsmith-feedFeed Atom
Generate Atom feed for a collection.
npm i metalsmith-feed-atomFile Metadata
Add metadata on files based on a pattern.
npm i metalsmith-filemetadataFile Transform
Allows quick manipulation of the file object.
npm i metalsmith-transformFingerprint
Insert a hash of the content into the file name.
npm i metalsmith-fingerprintFlatten
Flatten a directory hierarchy.
npm i metalsmith-flattenFrontmatter File Loader
Iterate through the properties of a frontmatter object and for each property replace the value with the string contents of a utf-8 encoded file resolved using the original value as a file path.
npm i metalsmith-frontmatter-file-loaderFrontmatter Renderer
Iterate through the properties of a frontmatter object and for each property render the value using a jstransformer and replace it.
npm i metalsmith-frontmatter-rendererProject images
Scan images in specified subfolder and add it to metadata.
npm i metalsmith-project-imagesGallery
Scan for images in folders and add them to metadata.
npm i metalsmith-scan-imagesGather Content
Generate sites from Gather Content projects
npm i metalsmith-gathercontentGist
Lets you get gists from Github Gist
npm i metalsmith-gistGitHub Markdown
Convert markdown with Github Markdown API.
npm i metalsmith-github-markdownGitHub Profile
Fetch GitHub profile information.
npm i metalsmith-github-profileGoogle Analytics
Adds the Google Analytics script to your html files
npm i metalsmith-google-analyticsGoogle Drive
Scrape files from Google Drive.
npm i metalsmith-google-driveGoogle Sheets
Pull in data from a google spreadsheet using the API.
npm i metalsmith-google-sheetsGravatar
Pull in images from Gravatar.com.
npm i metalsmith-gravatargulp-metalsmith
A lightweight plugin that incorporates Metalsmith builds into gulp pipelines.
npm i gulp-metalsmithGulpsmith
Use Gulp plugins in Metalsmith, or Metalsmith as a Gulp plugin. Useful for uploading files, reading less than an entire directory tree, using external front matter, etc.
npm i gulpsmithGzip
Compress files with gzip.
npm i metalsmith-gzipHandlebars Contents
Process Mustache syntax in file contents using Handlebars. Safe for live reloading.
npm i metalsmith-handlebars-contentsHandlebars Layouts
Wrap files in layouts, leveraging Mustache syntax via Handlebars. Safe for live reloading.
npm i metalsmith-handlebars-layoutsHandlebars in Markdown
Process Handlebars in Markdown files.
npm i metalsmith-hbt-mdHandlebars X
Full Handlebars integration. Global/local partials, in-place & layout compilation, and maximum flexibility.
npm i metalsmith-handlebars-xHeadings
Extract headings from HTML files and attach them to the file's metadata. Useful for automatically building navigation for a document.
npm i metalsmith-headingsHeadings Identifier
Add an id and anchor to all headings on a page. Ideal for permalinks.
npm i metalsmith-headings-identifierHooks
Add page-specific hooks (like mini-plugins) to your build
npm i metalsmith-hookshtaccess
Create an Apache HTTP Server .htaccess configuration file.
npm i metalsmith-htaccessHTML5 Format Checker
Use html-validator to validate your HTML.
npm i metalsmith-formatcheckHTML Glob
Apply glob patterns within HTML.
npm i metalsmith-html-globHTML Linter
Lint HTML for syntax and semantics.
npm i metalsmith-html-linterHTML Minifier
Minify your HTML files.
npm i metalsmith-html-minifierHTML Relative
Convert to relative paths within HTML.
npm i metalsmith-html-relativeHTML Subresource Integrity
Add subresource integrity attributes to HTML.
npm i metalsmith-html-sriHTML Tidy
Tidy your HTML files to make your source beautiful.
npm i metalsmith-html-tidyHTML Unused
Exclude resources that aren't referenced in HTML files.
npm i metalsmith-html-unusedHyphenate
Use Hypher hyphenation engine in your HTMLs.
npm i metalsmith-hyphenatei18n
Translate your strings.
npm i metalsmith-i18ni18next
Easily create multiple localised branches of your site using the excellent i18next library.
npm i metalsmith-i18nextIf
Run plugins in the build sequence conditionally.
npm i metalsmith-ifReading Time
Estimate pages' reading times.
npm i metalsmith-reading-timeRemove
A Metalsmith plugin to remove files from the build
npm i @metalsmith/removeImage Aspect Ratio
A plugin for adding image aspect ratios, fixing Cumulative Layout Shifts.
npm i metalsmith-image-aspect-ratioImagemin
A Metalsmith plugin to minify images using imagemin.
npm i metalsmith-imageminImage Resizer
An image resizing plugin for Metalsmith. Not dependent on imagemagick/graphicsmagick!
npm i metalsmith-image-resizerIn-place
In-place templating, render templates in your source files.
npm i metalsmith-in-placeInclude
Make other source files available as properties.
npm i metalsmith-includeInclude Content
Allows content to be included (nested) within other content by including the file path
npm i metalsmith-include-contentInclude Files
Include external files in your build.
npm i metalsmith-include-filesInject Metadata
Inject metadata constants into source file data.
npm i metalsmith-inject-metadataInline CSS
Inline CSS files, including those generated by preprocessors
npm i metalsmith-inline-cssInline Source
Inlines static assets like SVG, Javascript and CSS
npm i metalsmith-inline-sourceInline SVG
Inlines SVG images into your HTML files
npm i metalsmith-inline-svgInspect
Print/inspect the file objects, mainly for debugging.
npm i metalsmith-inspectHover
Display image and gif links on mouse hover.
npm i metalsmith-hoverIcons
Automatically generate icon font files using Fontello.
npm i metalsmith-iconsIncremental
Faster incremental builds for Metalsmith.
npm i metalsmith-incrementalIndex
A plugin to create directory indexes.
npm i metalsmith-indexJavaScript packer
JavaScript packer/minifier/uglifier for Metalsmith
npm i metalsmith-js-packerJekyll Dates
Automatically extract dates from Jekyll-style filenames.
npm i metalsmith-jekyll-datesjQuery
Manipulate your HTML files with jQuery.
npm i metalsmith-jqueryJSON
Parse .json files and make their properties available to downstream plugins.
npm i metalsmith-jsonJSON to files
Creates files from the properties within .json files with filename patterns and permalinks.
npm i metalsmith-json-to-filesJSON insteadof Markdown
Use JSON files in addition to markdown files to write your content
npm i @boeckmt/metalsmith-json-insteadof-mdJSTransformer
Compile content with any JSTransformer.
npm i metalsmith-jstransformerJSTransformer Partials
Provide `partial` helpers with any JSTransformer.
npm i metalsmith-jstransformer-partialsJust A Moment
A Metalsmith plugin to auto convert dates to moment objects.
npm i metalsmith-just-a-momentKeymaster
Flexible, powerful manipulation of key-value pairs in file metadata.
npm i metalsmith-keymasterLayouts
Apply layouts to your source files.
npm i @metalsmith/layoutsLESS
Convert LESS files to CSS.
npm i metalsmith-lessLink Checker
Check for local and remote broken links.
npm i metalsmith-link-checkerLink Globs
Instead of manually adding links to files, repeat your script, link, img and a tags by using globs.
npm i metalsmith-link-globsLunr Search
Implement Lunr.js client-side search engine.
npm i metalsmith-lunrMarkdown
Convert Markdown files to HTML.
npm i @metalsmith/markdownMarkdown-it
Convert Markdown files to HTML using markdown-it.
npm i metalsmith-markdownitMarkdown-Partials
Enables the use of Markdown partials, e.g. Markdown fragments can be inserted into the contents section of a page markdown file via an include marker.
npm i metalsmith-markdown-partialsMarkdown-Remarkable
Convert Markdown files to HTML using Remarkable.
npm i metalsmith-markdown-remarkableMingo
Wrapper for the Mingo library which allows to make MongoDB style queries.
npm i metalsmith-mingoMithril
Convert mithril.js Javascript files to html.
npm i metalsmith-mithrilMulti Language
Adds multi-language support to your projects.
npm i metalsmith-multi-languageMultiMarkdown
Convert Markdown files to HTML using MultiMarkdown-4 syntax.
npm i metalsmith-multimarkdownMermaid
Render Mermaid diagrams in files.
npm i metalsmith-mermaidMetadata
Load metadata from JSON or YAML files.
npm i metalsmith-metadataMetadata Directory
Add a directory of JSON files for use in templates and pages.
npm i metalsmith-metadata-directoryMetafiles
Read file metadata from separate files (as an alternative to frontmatter).
npm i metalsmith-metafilesMetallic
Highlight code in markdown files with highlight.js.
npm i metalsmith-metallicMetalsmith Matters
Read file metadata from frontmatter.
npm i metalsmith-mattersMetalsmith Tracer
Automatically trace and measure Metalsmith build time.
npm i metalsmith-tracerMoment
Converts file metadata to moment.js object
npm i metalsmith-momentMore
Stores the content before the "more" comment tag in HTML files.
npm i metalsmith-moreMove/Remove
Moves and/or removes files in the file structure.
npm i metalsmith-move-removeMustache Metadata
Modifies metadata to make it more useful in Mustache templates. Adds easy conditions and links to parent objects.
npm i metalsmith-mustache-metadataMyth
Preprocess CSS files with Myth.
npm i metalsmith-mythMove Up
Move whole directories and their contents up one or more levels.
npm i metalsmith-move-upNative Lazy Loading
A plugin that adds browser native lazy loading to images.
npm i metalsmith-native-lazy-loadingNavigation
Generate navigation based on file trees
npm i metalsmith-navigationnested
A metalsmith plugin for nesting your layouts when using the handlebars engine.
npm i metalsmith-nestedng-annotate
Add, remove and rebuild AngularJS dependency injection annotations.
npm i metalsmith-ng-annotatenpm
Include npm modules in your globals
npm i metalsmith-npmOnly
Filter out attributes from each file's metadata.
npm i metalsmith-onlyOpen Graph
Add Facebook Open Graph meta tags to HTML.
npm i metalsmith-open-graphOptiPng
Metalsmith wrapper for optipng - to optimize and make your png images smaller
npm i metalsmith-optipngorg
Convert org-mode files to HTML.
npm i metalsmith-orgPackageJSON
Parses the contents of package.json and makes them available in a global 'pkg'
npm iPaths
adds file path values (dirname, extname, basename, path) to metadata
npm i metalsmith-pathsPartial
Provide 'partial' helper to include other files.
npm i metalsmith-partialPaginate
A simple plugin that uses metalsmith-collections to create a paginated collection.
npm i metalsmith-paginatePagination
Paginate arrays and collections into multiple files.
npm i metalsmith-paginationPandoc
Convert files with pandoc.
npm i metalsmith-pandocPDF
Convert HTML files to PDF using wkhtmltopdf
npm i metalsmith-pdfPDFize
Export HTML files to PDF using Headless Chrome
npm i metalsmith-pdfizePage Title
Add a global site title to every `<title>` tag.
npm i metalsmith-page-titlesPerma
An alternative to metalsmith-permalinks allowing for custom permalinks and overrides.
npm i metalsmith-permaPermalinks
Apply custom permalinks and rename files to be nested properly for static sites, basically converting `about.html` into `about/index.html`.
npm i @metalsmith/permalinksPicset Generate
Gives responsive image resolution choices. Generates image sets for use with the Picset Handlebars Helper plugin
npm i metalsmith-picset-generatePicset Handlebars Helper
Uses generated responsive image resolutions. Those generated by the Picset Generate plugin display in browser via a `<picture>` element
npm i metalsmith-picset-handlebars-helperPolyglot
Simple mirror translations for blog-like entries.
npm i metalsmith-polyglotPostCSS
A Metalsmith plugin for PostCSS.
npm i metalsmith-with-postcssPlaceholder
Stub content-less files from JSON/Yaml metadata files
npm i metalsmith-placeholderPreview
Generate custom text previews saved to file metadata.
npm i metalsmith-previewPrism Syntax Highlighting
Syntax highlighting for HTML templates using Prism.js.
npm i metalsmith-prismPrismic
Create static sites with data stored at Prismic.io
npm i metalsmith-prismicProjects
Adds metadata for projects (think portfolio content) from GitHub or filesystem (through collections) that can be looped over for creating a portfolio of work.
npm i metalsmith-projectsPrompt
Prompt the user for series of answers in the command line and add them to the global metadata.
npm i metalsmith-promptPropdown
A metalsmith plugin to convert a property value from markdown to HTML.
npm i metalsmith-propdownPublish
Declare files as draft, private, or future-dated and use callback to automate rebuilds.
npm i metalsmith-publishPug (Jade)
Convert Pug (previously Jade) files to HTML.
npm i metalsmith-pugPurifyCSS
Remove unused CSS.
npm i metalsmith-purifycssReact Templates
Render any file using React JS based component templates
npm i metalsmith-react-templatesReact tpl
Use React in metalsmith as a templating language
npm i metalsmith-react-tplRedirect
A simple plugin to create client-side HTTP redirections.
npm i metalsmith-redirectRegex Replace
Performs search and replace in text source files
npm i metalsmith-regex-replaceRelative Links
Adds a link function into your metadata so templates can link resources easier.
npm i metalsmith-relative-linksRenamer
Rename files matching a given pattern.
npm i metalsmith-renamerReplace
Replace attribute values in each file's metadata.
npm i metalsmith-replaceRework
Use rework CSS processor to rework your files.
npm i metalsmith-reworkRho
Convert Rho files to HTML.
npm i metalsmith-rhoRequest
Grab content from the web and expose the results to metadata.
npm i metalsmith-requestRollup
Bundle JavaScript with Rollup.
npm i metalsmith-rollupRoot Path
Auto-calculate the relative path to your root directory in template urls.
npm i metalsmith-rootpathS3
Copy, read, and write files on Amazon S3.
npm i metalsmith-s3Sass
Convert Sass files to CSS.
npm i @metalsmith/sassSass
Convert Sass files to CSS.
npm i metalsmith-sassSass lint
Stylelint your Sass files.
npm i metalsmith-sass-lintSeries
Groups files into series for easier navigation
npm i metalsmith-seriesServe
Simple http server for development. Best used with metalsmith-watch.
npm i metalsmith-serveSharp
Use the powerful sharp library to resize and manipulate your images.
npm i metalsmith-sharpShortcodes
Render wordpress-esque shortcodes via templates.
npm i metalsmith-shortcodesShortcode Parser
A metalsmith wrapper for shortcode-parser.
npm i metalsmith-shortcode-parserSitemap
A metalsmith plugin for generating a sitemap.xml file.
npm i metalsmith-sitemapSkeleton Gallery
Generate an image gallery, using the Skeleton CSS framework.
npm i metalsmith-skeleton-gallerySlug
Add a slug property to file metadata, based on a another property.
npm i metalsmith-slugSnippet
Extract snippets from files, limited by a maximum number of characters.
npm i metalsmith-snippetSpell Checking
Spell check your site.
npm i metalsmith-spellcheckStatic
Copy public assets into the build directory.
npm i metalsmith-staticStylesheet Packer
CSS packer/minifier/optimizer for Metalsmith.
npm i metalsmith-css-packerStylus
Convert Stylus files to CSS.
npm i metalsmith-stylusSubresource Integrity
Generate integrity hashes for site resources.
npm i metalsmith-subresource-integritySugar
Use a shorthand when including plugins and avoid calling require() on each individual module.
npm i metalsmith-sugarSUITCSS
Preprocess CSS files with SUITCSS.
npm i metalsmith-suitcssSwig Helpers
Useful bits for those of us using swig
npm i metalsmith-swig-helpersSymlink
Create Symlinks for large files or directories.
npm i metalsmith-symlinkTable of Contents
Auto-generate table of contents from headings
npm i table-of-contentsTags
Generate tag listing pages based on tags provided in pages.
npm i metalsmith-tagsTaxonomy
Organize files into taxonomies in global metadata and auto-generate taxonomy pages (tags, post types, products)
npm i metalsmith-taxonomyTimer
Clock how long it takes for plugins in your build sequence to run.
npm i metalsmith-timerTimestamp
Add timestamp comment to html files
npm i metalsmith-timestampTextile
Convert Textile to HTML
npm i metalsmith-textileTo JSON
Generates JSON files from markdown, preserving filenames and frontmatter.
npm i metalsmith-to-jsonTweet Embed
Converts Twitter status URLS to embedded Twitter statuses
npm i metalsmith-tweet-embedTwig
Renders all files with the Twig template engine.
npm i metalsmith-twigTwitter Card
Adds Twitter Card meta tags to enable Twitter share rich snippets.
npm i metalsmith-twitter-cardTypography
Enhance typography in HTML files.
npm i metalsmith-typographyUglify
Uglifies/minifies your JavaScript files
npm i metalsmith-uglifyUnCSS
Remove unused CSS rules with UnCSS
npm i metalsmith-uncssUnlisted
Remove pages from collections, but still allow them to build
npm i metalsmith-unlistedValidate
Easily validate file metadata, checking existence, type, and pattern.
npm i metalsmith-validateWatch
Watching for file changes and trigger rebuilds.
npm i metalsmith-watchWebpack
Bundle CommonJS, AMD and ES6 modules.
npm i metalsmith-webpackWebpack 2
Webpack 2, with cache.
npm i metalsmith-webpack-2Word Count
Compute wordcount and average reading time.
npm i metalsmith-word-countWrite Metadata
Write the metadata excerpted from the files to the filesystem as json files.
npm i metalsmith-writemetadataXO
XO lint your JavaScript files.
npm i metalsmith-xoYouTube
A Metalsmith plugin that lets you embed YouTube Videos.
npm i metalsmith-youtube
Submit your plugin
Plugins in the official registry get higher visibility than those only published on Github or NPM, and they must pass a brief quality review. Guidelines for plugins to be accepted in the registry are:
- The package is published in the NPM registry
- The package includes at least 1 test
- The package provides functionality that is different from already registered plugins. Why? — because we want to encourage collaboration and reduce the amount of confusion for new metalsmith users.
Edit the plugins.json file and create a pull request to get your plugin listed. Plugins need to be added at the correct alphabetical position by name: if your plugin’s name is “b”, it should come right after the plugin named “a”.
Add a plugin object to the list with the following properties:
{
"name": "My plugin",
"icon": "icon-name",
"repository": "https://github.com/username/metalsmith-myplugin",
"description": "Metalsmith plugin for doing something.",
"npm": "@myscope/metalsmith-myplugin"
},
where:
name- should match the NPM package or repository name, but can be in title case & with spacesicon- one of the Metalsmith icons, preferably matching what the plugin doesrepository- url to the repository of the plugin, e.g.https://github.com/username/metalsmith-myplugindescription- a short description for the plugin, ideally matchingpackage.jsonor Github repository descriptionnpm- optional, to specify a name different thanname, e.g. for scoped NPM packages (@<myscope>/<metalsmith-myplugin>)