Skip to content

Releases: stamat/poops

v1.2.1

Choose a tag to compare

@stamat stamat released this 08 Mar 11:53

404.html page support

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@stamat stamat released this 07 Mar 22:09

Markup

  • Refactored for maintainability
  • Added Liquid template engine support alongside Nunjucks via engine adapters
  • New filters: srcset, inline SVG, concat, push
  • New extensions: image (with SVG support), googleFonts, Highlight.js code highlighting
  • Full-text search indexer with stop-word filtering
  • Fixed collection async issue; skip unpublished pages; load data from directories

Styles

  • Design token support — import JSON design tokens (W3C DTCG & Style Dictionary) directly into SCSS via sass-token-importer

PostCSS

  • New postcss module with Tailwind CSS support

React SSG

  • Renamed to reactor and moved to its own module

Dev Server

  • Exposed to local network
  • Error catching for compile watchers

CLI & Logging

  • Unified log utility; added printstyle and argoyle dependencies
  • Replaced moment with dayjs

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@stamat stamat released this 25 Feb 20:49

Release Notes (1.1.0)

Breaking Changes

  • CommonJS to ESM migration — The entire codebase has been converted from CommonJS to ES modules. This aligns with modern Node.js conventions and enables native ESM features throughout.

Bug Fixes

  • Sass resolver: underscore partial resolution and main path detection — Fixed bugs and published it as a separate package sass-path-resolver. Read the README.md for supported import path formats.
  • Non-blocking compiler execution — Each compiler (styles, scripts, markups, copy) now runs in its own try/catch. A failure in one no longer blocks the others from executing.
  • Script build error handlingcompileEntry now returns early after a failed esbuild build, preventing a secondary crash from fileSize() on a non-existent output file.
  • Markup options guardthis.config.markup.options is now safely defaulted to {}, preventing crashes when the config has no options property.
  • buildTime rounding — Replaced .toFixed(0) (which rounds) with Math.floor (which truncates). 3500ms now correctly displays as 3s 500ms instead of 4s 500ms. Nothing runs in seconds still...
  • fileSize MB tier — Fixed the MB remainder to display in KB instead of raw bytes. Didn't bundle anything larger than a MB.
  • pathForFile dotfile matching — Switched from regex to path.extname() so dotfiles like .gitignore are no longer misidentified as having extensions.
  • minimatch dependency — Fixed minimatch dependency version conflict via overrides.
  • Deprecated API cleanup — Replaced rmDirSync with rmSync, updated tsconfig moduleResolution from node to bundler.

Features

  • JSX and TSX bundling.jsx and .tsx files are now first-class citizens in the scripts pipeline. esbuild handles JSX natively, so no extra configuration is needed. Supports both classic (React.createElement) and automatic JSX runtime via the jsx option.
  • React SSG (Static Site Generation) — New ssg config section renders React components to HTML at build time using renderToString, then bundles a client entry for hydration. Pages load with pre-rendered content instead of an empty <div>. SSG runs after Styles but before Scripts and Markups in the pipeline. In watch mode, JSX/TSX changes trigger SSG re-rendering followed by a markup recompile. Poops itself does not need react/react-dom as a dependency — they are resolved from the project's node_modules.
  • Extended glob supportconvertGlobToRegex now supports ** (globstar), ?(), *(), +(), @(), and !() (negation) extglob patterns. Copy paths in the config can now use patterns like !(vendor)/*.js. Extracted the convertor to the new version of book-of-spells to simplify the poops codebase.
  • Sass resolver extracted — The custom sass import resolver has been extracted from styles.js into its own module sass-path-resolver, making it independently testable and reusable as a package.
  • Livereload and server info ordering — Server and livereload info is now printed after the initial build, so it's always visible regardless of build warnings.
  • Livereload and watcher refactoringsetupLiveReloadServer and setupWatchers extracted from the main function for better readability and maintainability.

Testing

  • Jest test suite — Configured Jest with native ESM support (--experimental-vm-modules).
  • Helpers tests — 87 tests covering all exported helper functions: path utilities, directory operations, output path builders, time/size formatting, banner templates, data file reading, front matter parsing, glob-to-regex conversion, and path matching.
  • Tests excluded from published package via !lib/**/__tests__/ in the files field.

Housekeeping

  • Migrated ESLint config from .eslintrc.yml to flat config (eslint.config.js) with neostandard.
  • Renamed removeDirNavWildcards to stripDirNavSegments for accuracy.
  • Removed duplicate guard in Markups constructor.
  • Updated README with extglob examples in the copy configuration section.

Full Changelog: v1.0.20...v1.1.0

v1.0.20

Choose a tag to compare

@stamat stamat released this 03 Feb 00:37

Copy functionality, improved custom style path resolver, improved post category detection and other minor polish

Full Changelog: v1.0.19...v1.0.20

v1.0.19

Choose a tag to compare

@stamat stamat released this 05 Mar 15:36

Includes fixes for style path resolver which is custom built. Style path resolver wasn't working for import paths in configuration.

Full Changelog: v1.0.18...v1.0.19

v1.0.18

Choose a tag to compare

@stamat stamat released this 12 Oct 16:21

Collection autodiscovery, no need to specify it in the config any longer. This also gave me an idea on how to do tags and categories, but this will be in some future releases. Also fixed where the script was failing when no markup config was provided

Full Changelog: v1.0.17...v1.0.18

v1.0.17

Choose a tag to compare

@stamat stamat released this 21 Sep 19:34

Now Poops can be used as a static blog generator, support added for custom collections, PAGINATION, and RSS, ATOM and JSON feed generation. Relative paths for in directory hosting solution.

Full Changelog: v1.0.16...v1.0.17

v1.0.16

Choose a tag to compare

@stamat stamat released this 20 Sep 18:02

Support for markdown

Full Changelog: v1.0.15...v1.0.16

v1.0.15

Choose a tag to compare

@stamat stamat released this 20 Sep 15:21

Front Matter support for static pages

What's Changed

Full Changelog: v1.0.14...v1.0.15

v1.0.14

Choose a tag to compare

@stamat stamat released this 15 Sep 18:06

eslint is now used to minify css and js. Fixed an issue when minify is set to false

What's Changed

New Contributors

Full Changelog: v1.0.13...v1.0.14