{"id":14979498,"url":"https://github.com/minicomp/wax_tasks","last_synced_at":"2025-10-28T18:31:52.667Z","repository":{"id":48426938,"uuid":"113231984","full_name":"minicomp/wax_tasks","owner":"minicomp","description":"Utility tasks for processing collection data with Wax 🐝","archived":false,"fork":false,"pushed_at":"2023-07-24T22:21:46.000Z","size":95169,"stargazers_count":11,"open_issues_count":10,"forks_count":12,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-09-29T03:04:41.705Z","etag":null,"topics":["digital-humanities","iiif","jekyll","minicomp","minimagick","rake"],"latest_commit_sha":null,"homepage":"https://www.rubydoc.info/github/minicomp/wax_tasks/master","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/minicomp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-05T20:55:10.000Z","updated_at":"2023-07-19T18:03:22.000Z","dependencies_parsed_at":"2024-09-19T02:05:37.514Z","dependency_job_id":"877a969e-e2a5-4c76-b654-0e8e87b9e5ff","html_url":"https://github.com/minicomp/wax_tasks","commit_stats":{"total_commits":443,"total_committers":9,"mean_commits":49.22222222222222,"dds":0.5778781038374718,"last_synced_commit":"b4dbdc61d0d1c068283859834fc5e1c022e9f225"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minicomp%2Fwax_tasks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minicomp%2Fwax_tasks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minicomp%2Fwax_tasks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minicomp%2Fwax_tasks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/minicomp","download_url":"https://codeload.github.com/minicomp/wax_tasks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219859014,"owners_count":16556038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["digital-humanities","iiif","jekyll","minicomp","minimagick","rake"],"created_at":"2024-09-24T14:00:09.434Z","updated_at":"2025-10-28T18:31:48.811Z","avatar_url":"https://github.com/minicomp.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wax_tasks 🐝\n[![ci:test](https://github.com/minicomp/wax_tasks/actions/workflows/ci.yml/badge.svg)](https://github.com/minicomp/wax_tasks/actions/workflows/ci.yml) [![Depfu](https://badges.depfu.com/badges/6105c55b9634e74b1c27055b19bad8f0/overview.svg)](https://depfu.com/github/minicomp/wax_tasks?project_id=10548)\n[![Gem Version](https://badge.fury.io/rb/wax_tasks.svg)](https://badge.fury.io/rb/wax_tasks)\n[![Gem Downloads](https://img.shields.io/gem/dt/wax_tasks.svg?color=046d0b)](https://badge.fury.io/rb/wax_tasks)\n[![docs](http://img.shields.io/badge/docs-rdoc.info-blue.svg?style=flat)](https://www.rubydoc.info/github/minicomp/wax_tasks/)\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/14408e7e962b9b84ec65/maintainability)](https://codeclimate.com/github/minicomp/wax_tasks/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/14408e7e962b9b84ec65/test_coverage)](https://codeclimate.com/github/minicomp/wax_tasks/test_coverage)\n![License](https://img.shields.io/github/license/minicomp/wax_tasks.svg?color=c6a1e0)\n\n__wax_tasks__ is gem-packaged set of [Rake](https://ruby.github.io/rake/) tasks for creating minimal exhibition sites with [Wax](https://github.com/minicomp/wax/).\n\nIt can be used to:\n- generate collection markdown pages from a metadata file ([wax:pages](#waxpages))\n- generate a client-side search index ([wax:search](#waxsearch))\n- generate either IIIF-compliant derivatives ([wax:derivatives:iiif](#waxderivativesiiif)) or simple image derivatives ([wax:derivatives:simple](#waxderivativessimple)) from local image and pdf files\n\n\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/minicomp/wiki/main/src/assets/wax_screen.gif?raw=true?raw=true\"/\u003e\n\n\n# Getting Started\n\n## Prerequisites\n\nYou'll need `Ruby \u003e= 3.2` with `bundler` installed. Check your versions with:\n```bash\n$ ruby -v\n  ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]\n\n$ bundler -v\n  Bundler version 2.4.16\n```\n\nTo use the image derivative tasks, you will also need to have ImageMagick and Ghostscript installed and functional. You can check to see if you have ImageMagick by running:\n```bash\n$ convert -version\n  Version: ImageMagick 7.1.1-12 Q16-HDRI aarch64 21239 https://imagemagick.org\n  Copyright: (C) 1999 ImageMagick Studio LLC\n  License: https://imagemagick.org/script/license.php\n  Features: Cipher DPC HDRI Modules OpenMP(5.0)\n  Delegates (built-in): bzlib fontconfig freetype gslib heic jng jp2 jpeg jxl lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib\n  Compiler: gcc (4.2)\n```\n\n... and check Ghostscript with:\n```bash\n$ gs -version\n  GPL Ghostscript 10.01.2 (2023-06-21)\n  Copyright (C) 2023 Artifex Software, Inc.  All rights reserved.\n```\n\nNext, you'll need a Jekyll site. You can clone the [minicomp/wax demo site](https://github.com/minicomp/wax/) or start a site from scratch with:\n\n```sh\n$ gem install jekyll\n$ jekyll new wax \u0026\u0026 cd wax\n```\n\n## Installation\n\nAdd `wax_tasks` to your Jekyll site's `Gemfile`:\n\n```ruby\ngem 'wax_tasks'\n```\n\n... and install with bundler:\n\n```bash\n$ bundle install\n```\n\nCreate a `Rakefile` with the following:\n```ruby\nspec = Gem::Specification.find_by_name 'wax_tasks'\nDir.glob(\"#{spec.gem_dir}/lib/tasks/*.rake\").each { |r| load r }\n```\n\n# Usage\n\nAfter following the installation instructions above, you will have access to the Rake tasks in your shell by running `$ bundle exec rake wax:taskname` in the root directory of your Jekyll site.\nTo see the available tasks, run\n\n```ruby\n$ bundle exec rake --tasks\n```\n\n## Sample site `_config.yml` file:\n\n```yaml\n# basic settings\ntitle: Wax.\ndescription: a jekyll theme for minimal exhibitions\nurl: 'https://minicomp.github.io'\nbaseurl: '/wax'\n\n# build settings\npermalink: pretty # optional, creates `/page/` link instead of `page.html` links\n\n# wax collection settings\ncollections:\n  objects: # the collection name\n    layout: 'iiif-image-page'\n    output: true # this must be true for your .md pages to be built to html!\n    metadata:\n      source: 'objects.csv' # path to the metadata file, must be within '_data'\n    images:\n      source 'source_images/objects' # path to the directory of source images, must be within '_data'\n\n# wax search index settings\nsearch:\n  main:\n    index: 'js/lunr-index.json' # where the index will be generated\n    collections: # the collections to index\n      objects:\n        content: false # whether or not to index the markdown page content (below the YAML)\n        fields: # the metadata fields to index\n          - 'label'\n          - 'artist'\n          - 'location'\n          - 'object_type'\n```\n\nThe above example includes a single collection `objects` that comprises:\n1. a CSV `metadata:source` file (`objects.csv`), and\n2. a `images:source` directory of image and pdf files.\n\nFor more information on configuring Jekyll collections for __wax_tasks__, check out the [minicomp/wax wiki](https://minicomp.github.io/wiki/#/wax/) and \u003chttps://jekyllrb.com/docs/collections/\u003e.\n\n## Running the tasks\n\n### wax:pages\n\nTakes a CSV, JSON, or YAML file of collection metadata and generates a [markdown](https://daringfireball.net/projects/markdown/syntax) page for each record to a directory using a specified layout. [Read More](#TODO).\n\n`$ bundle exec rake wax:pages collection-name`\n\n### wax:search\n\nGenerates a client-side JSON search index of your site for use with [ElasticLunr.js](http://elasticlunr.com/). [Read More](#TODO).\n\n`$ bundle exec rake wax:search search-name`\n\n\n### wax:derivatives:simple\n\nTakes a local directory of images and pdf files and generates a few image derivatives (i.e., 'thumbnail' 250w and 'full' 1140w) for Jekyll layouts and includes to use. [Read More](#TODO).\n\n`$ bundle exec rake wax:derivatives:iiif collection-name`\n\n### wax:derivatives:iiif\n\nTakes a local directory of images and pdf files and generates tiles and data that work with a IIIF compliant image viewer like [OpenSeaDragon](https://openseadragon.github.io/), [Mirador](http://projectmirador.org/), or [Leaflet IIIF](https://github.com/mejackreed/Leaflet-IIIF). [Read More](#TODO).\n\n`$ bundle exec rake wax:derivatives:iiif collection-name`\n\n### wax:clobber\n\nDestroys (or \"clobbers\") wax-generated files, i.e., pages generated from `wax:pagemaster`, derivatives generated from `wax:derivatives`, and search indexes generated with `wax:search` so you can start from scratch.\n\nThis task does *not* touch your source metadata or source image files! Instead, it simply clears a path for you to regenerate your collection materials in case you add/edit source materials.\n\n`$ bundle exec rake wax:clobber collection-name`\n\n# Contributing\n\nFork/clone the repository. After making code changes, run the tests (`$ bundle exec rubocop` and `$ bundle exec rspec`) before submitting a pull request. You can enable verbose tests with `$ DEBUG=true bundle exec rspec`.\n\n# License\n\nThe gem is available as open source under the terms of the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminicomp%2Fwax_tasks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminicomp%2Fwax_tasks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminicomp%2Fwax_tasks/lists"}