Official Blazor integration for HTML/CSS to Image API. Add automated OG meta tags to your pages.
$ dotnet add package HtmlCssToImage.Blazor
This package provides Blazor integration for generating Open Graph meta tags using the HtmlCssToImage client.
Add the package to your project:
dotnet add package HtmlCssToImage.Blazor
You'll also need to register the IHtmlCssToImageClient in your application's startup (usually Program.cs or Startup.cs):
builder.Services.AddHtmlCssToImage("api_id", "api_key");
Refer to the HtmlCssToImage.DependencyInjection docs for more details on configuring the client.
In your App.razor you need to add a HCTIOutlet to your head tag to include the generated meta tags on all pages:
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<base href="/"/>
<ImportMap/>
<HeadOutlet/>
<HCTIOutlet AdditionalMetaTypes="@(["twitter:image"])"></HCTIOutlet>
</head>
You can specify additional meta types to generate automatically by passing them to the HCTIOutlet component in the AdditionalMetaTypes parameter. By default, og:image will be generated. You can also specify them on an individual basis.
There are 2 available components, to inject meta tags for your pages.
HCTI_Templated_OgMetaTagUse the HCTI_Templated_OgMetaTag<T> component to generate OG meta tags using a HCTI template.
| Parameter | Required | Description |
|---|---|---|
TemplateId | ✅ | The ID of the template to use. |
TemplateValues | ✅ | A JSON-serializable object that will serve as the template_values in the request |
TypeInfo | A System.Text.Json.JsonTypeInfo<T> instance that will be used to serialize TemplateValues | |
JsonSerializerOptions | A System.Text.Json.JsonSerializerOptions instance that will be used to serialize TemplateValues if provided | |
TemplateVersion | An optional version of the template to use, if not specified, the latest version will be used | |
OgMetaType | The type of meta tag to generate, such as twitter:image. When not specified, og:image will be used. |
When providing TemplateValues, your object must be serializable to JSON. If you don't want to provide an existing class or create a dedicated one, a System.Text.Json.Nodes.JsonObject can be provided instead.
If you are using a custom class and care about performance/AOT or just want to control serialization, you can provide either a JsonSerializerOptions instance or JsonTypeInfo<T>. The TypeInfo parameter will be used if provided.
HCTI_Url_OgMetaTagUse the HCTI_Url_OgMetaTag component to generate an OG meta tag with a URL-generating image request. This tag is handy if you want to use existing styling / razor templates etc as your image source.
| Parameter | Required | Description |
|---|---|---|
ImageRequest | ✅ | An instance of HtmlCssToImage.Models.Requests.CreateUrlImageRequest |
OgMetaType | The type of meta tag to generate, such as twitter:image. When not specified, og:image will be used. |
The ImageRequest parameter must be an instance of HtmlCssToImage.Models.Requests.CreateUrlImageRequest . The options will be used to generate a create-and-render request url. All options that are provided will be URL-encoded and included in the hmac signature except for pdf_options which is not currently supported in create-and-render.
Check out the Sample Project for a full example implementation.
og:image and twitter:imageHCTIOutlet in your head tag to ensure the meta tags are generated on all pages.TemplateValues / ImageRequest parameters as simple as possible to avoid unnecessary complexity and potentially large urls.[!IMPORTANT] Check out the HTML/CSS To Image Docs for more details on the API's capabilities.
[!TIP] Get started for free at htmlcsstoimage.com.