astro-cloudinary
v1.3.0
Published
<a href="https://github.com/cloudinary-community/astro-cloudinary/actions/workflows/test_and_release.yml"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/cloudinary-community/astro-cloudinary/test_and_release.y
Downloads
2,033
Maintainers
Readme
Astro Cloudinary
High-performance image delivery and uploading at scale in Astro powered by Cloudinary.
Features • Getting Started • Community & Support • Contributing
This is a community library supported by the Cloudinary Developer Experience team.
✨ Features
- Automatically optimize images and deliver in modern formats
- Remove backgrounds from images
- Dynamically add image and text overlays to images
- AI-based cropping and resizing
- Transform images using color and effects
- Generate Open Graph Social Media cards on the fly
- Drop-in Upload Widget
- ...all at scale with Cloudinary
🚀 Getting Started
Installation
- Install
astro-cloudinary
with:
npm install astro-cloudinary
- Add an environment variable with your Cloud Name:
PUBLIC_CLOUDINARY_CLOUD_NAME="<Your Cloud Name>"
Adding an Image
import { CldImage } from 'astro-cloudinary';
<CldImage width="600" height="600" src="<Public ID or Cloudinary URL>" alt="<Alt Text>" />
Learn more about CldImage on the Astro Cloudinary Docs
❤️ Community & Support
🛠 Contributing
Please read CONTRIBUTING.md prior to contributing.
Working Locally
Installation
This project is using pnpm as a way to manage dependencies and workspaces.
With the project cloned, install the dependencies from the root of the project with:
pnpm install
Configuration
To work on the project, you need to have an active Cloudinary account.
With the account, configure a .env
file inside of docs
with:
PUBLIC_CLOUDINARY_CLOUD_NAME="<Your Cloudinary Cloud Name>"
PUBLIC_CLOUDINARY_API_KEY="<Your Cloudinary API Key>"
CLOUDINARY_API_SECRET="<Your Cloudinary API Secret>"
PUBLIC_ASSETS_DIRECTORY="assets"
Note: The Cloudinary account can be free, but some features may not work beyond free tier like Background Removal without enabling the add-on
The Cloud Name is required for all usage, where the API Key and Secret currently is only used for Upload Widget usage. The Upload Preset is additionally used for the Upload Widgets.
Uploading Example Images
In order to run the Docs project, you need to have the images and videos referenced available inside of your Cloudinary account.
Most of the images and videos used in the project take advantage of the sample assets included in every Cloudinary account, so some may work out-of-the-box, but not all.
To upload the remaining assets, navigate to the scripts
directory and first create a new .env
file with:
CLOUDINARY_CLOUD_NAME="<Your Cloudinary Cloud Name>"
CLOUDINARY_API_KEY="<Your API Key>"
CLOUDINARY_API_SECRET="<Your API Secret>"
By default, the images and videos inside of scripts/assets.json
will be uploaded to the "assets" directory inside of your Cloudinary account. To change the location, add the CLOUDINARY_ASSETS_DIRECTORY
environment variable with your preferred directory:
CLOUDINARY_ASSETS_DIRECTORY="<Your Directory>"
Note: You will then need to update the
/docs/.env
file to reference the same directory.
To run the script, install the dependencies:
pnpm install
Then run the upload script with:
pnpm upload
Uploading Example Collections
Collections are groups of images that are showcased using the cldAssetsLoader helper.
The directories that make up the sample images include too many images to reasonably ask a contributor to upload.
We have a few options then.
- Skip uploading the collections
If you're not working on cldAssetsLoader, or you can test using the single example that utilizes the samples directory, you may not need to worry about this.
- Change the collections location
You could update these directories in the docs/src/content/config.ts
file to directories that
already exist in your account, such as other sample directories.
- Upload Manually
If you want to have assets available to test this out, you can create the following directories and include some assets inside.
- collection
- ecommerce/fashion
- ecommerce/sneakers
A good way to handle this is to download some images from Unsplash or your favorite stock photo site.
Running the Project
Once installed and configured, from the root of your project run:
pnpm dev
The project will now be available at http://localhost:4321 or the configured local port.