https://github.com/11ways/alchemy-media
The media plugin for storing and using user uploaded files
https://github.com/11ways/alchemy-media
Last synced: 6 months ago
JSON representation
The media plugin for storing and using user uploaded files
- Host: GitHub
- URL: https://github.com/11ways/alchemy-media
- Owner: 11ways
- License: other
- Created: 2015-06-22T10:34:37.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2025-07-10T13:38:05.000Z (about 1 year ago)
- Last Synced: 2025-12-13T20:55:11.362Z (7 months ago)
- Language: SCSS
- Size: 3.04 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Alchemy Media
The media plugin for the Alchemy MVC
## Installation
Just installing the npm package can be done like this:
$ npm install alchemy-media
## Activate
You can activate the plugin by adding this to the main `bootstrap.js` file:
```javascript
alchemy.usePlugin('media', {});
```
The second parameter is an object containing options.
These are currently the default settings:
```javascript
var options = {
// The path to use in the url
url: '/media/image',
// Where to store the files
path: path.resolve(PATH_ROOT, 'files'),
// Which hash function to use
hash: 'sha1',
// The location of the exiv2 binary
exiv2: '/usr/bin/exiv2',
// The location of cwebp
cwebp: '/usr/bin/cwebp',
// Enable webp
webp: true,
// Temporary map for intermediate file changes
scratch: path.resolve(PATH_TEMP, 'scratch'),
// The cache map for resized images & thumbnails
cache: path.resolve(PATH_TEMP, 'imagecache')
};
```
`PATH_ROOT` points to the main project folder.
`PATH_TEMP` does not point to `/tmp`, but to the `temp` folder in the `PATH_ROOT` (main project) folder.
## Use
This plugin provides you with a Hawkejs helper to resize images on-the-fly (on request, actually).
This is how you create an image element using an image record id:
```ejs
<%= Media.image(image_id, {width: '50%'}) %>
```
Or using a static image asset:
```ejs
<%= Media.image('file_in_image_folder.jpg', {width: '25%', className: 'myclass'}) %>
```
The supplied width percentage isn't relative to the image itself, but to the user's screen resolution.
## System dependencies
You will have to install certain packages on your system,
you can do so like this on Debian/Ubuntu
Install the requirements of the `veronica` module:
apt-get install graphicsmagick webp libgif-dev libcairo2-dev libpango1.0-dev libjpeg-dev librsvg2-dev
This plugin requires exiv2
apt-get install exiv2 libexiv2-dev
This plugin requires libopencv packages
apt-get install libopencv-dev
This plugin requires magick++
apt-get install libmagick++-dev