The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

Catalyst::Plugin::SocialMeta - Generate social media meta tags for your catalyst application.

VERSION

Version 0.03

SYNOPSIS

Quick summary of what the module does.

Perhaps a little code snippet.

... MyApp.pm ...
package MyApp;
use Moose;
use Catalyst qw/
SocialMeta
/;
extends 'Catalyst';
our $VERSION = '0.01';
__PACKAGE__->config(
name => 'MyApp',
'Plugin::SocialMeta' => {
meta_provider => 'all',
card_type => 'featured_image',
site => 'Lnation.org',
site_name => 'Lnation',
title => 'Social Meta Tag Generator',
description => 'Demo UI for HTML::SocialMeta',
fb_app_id => 'lnationorgnofb',
}
);
# Start the application
__PACKAGE__->setup();
.... Controller ...
use Moose;
BEGIN {
}
sub foo :Chained('/') :PathPart('foo') :Args(0) {
my ($self, $c) = @_;
... # uses default social meta tags from config
}
sub base :Chained('/') :PathPart('') :CaptureArgs(0) {
my ($self, $c) = @_;
$c->socialmeta(
title => 'Changed Title',
description => 'Demo UI for Changed::Title',
);
}
sub bar :Chained('base') :PathPart('bar') :Args(0) {
my ($self, $c) = @_;
... # social meta tags from the config + the keys set in the base action
}

` ... wrapper.tt ...

<html>
<head>
[% socialmeta %]
</head>
<body>
...
</body>
</html>

SUBROUTINES/METHODS

socialmeta

Set the social meta tags for the current action, you can pass the following keys, see HTML::SocialMeta for more information.

meta_provider

The meta provider you would like to generate the social meta tags for, this defaults to 'all'. twitter and opengraph are the other valid options.

card_type

The type of social meta card see HTML::SocialMeta documention for options.

card

OPTIONAL - if you always want the same card type you can set it

site

The Twitter @username the card should be attributed to. Required for Twitter Card analytics.

site_name

This is Used by Facebook, you can just set it as your organisations name.

title

The title of your content as it should appear in the card

description

A description of the content in a maximum of 200 characters

image

A URL to a unique image representing the content of the page

image_alt

OPTIONAL - A text description of the image, for use by vision-impaired users

url

Required for OpenGraph. Allows you to specify an alternative url link you want the reader to be redirected

player

HTTPS URL to iframe player. This must be a HTTPS URL which does not generate active mixed content warnings in a web browser

player_width

Width of IFRAME specified in twitter:player in pixels

player_height

Height of IFRAME specified in twitter:player in pixels

operating_system

IOS or Android

app_country

UK/US ect

app_name

The applications name

app_id

String value, and should be the numeric representation of your app ID in the App Store (.i.e. 307234931)

app_url

Application store url - direct link to App store page

fb_app_id

This field is required to use social meta with facebook, you must register your website/app/company with facebook. They will then provide you with a unique app_id.

AUTHOR

LNATION, <email at lnation.org>

BUGS

Please report any bugs or feature requests to bug-catalyst-plugin-socialmeta at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Plugin-SocialMeta. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Catalyst::Plugin::SocialMeta

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

This software is Copyright (c) 2022 by LNATION.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)