CONTENTS
- NAME
- VERSION
- DESCRIPTION
- Starting Your Own Yancy Application
- BUNDLED PROJECTS
- SEE ALSO
- AUTHOR
- CONTRIBUTORS
- COPYRIGHT AND LICENSE
#NAME
Yancy - The Best Web Framework Deserves the Best CMS
#VERSION
version 1.081
#DESCRIPTION
Yancy is a simple content management system (CMS) for the Mojolicious web framework.
Get started with the Yancy documentation!
This file documents the application base class. You can use this class directly via the yancy
command, or you can extend this class to build your own app.
#Starting Your Own Yancy Application
If you have an existing Mojolicious application you want to add Yancy to, see Mojolicious::Plugin::Yancy.
The base Yancy class exists to provide a way to rapidly prototype a data-driven web application. Apps that inherit from Yancy get these features out-of-the-box:
The Yancy CMS (Mojolicious::Plugin::Yancy)
Database editor (Yancy::Plugin::Editor)
User logins (Yancy::Plugin::Auth)
Role-based access controls (Yancy::Plugin::Roles)
If you're familiar with developing Mojolicious applications, you can start from the app skeleton at https://github.com/preaction/Yancy/tree/master/eg/skeleton.
To begin writing a new application from scratch, create a lib
directory and add a MyApp.pm
file that extends the Yancy
class:
package MyApp;
use Mojo::Base 'Yancy', -signatures;
As in any other Mojolicious app, add your routes, plugins, and other setup to the startup
method. Don't forget to call Yancy's "startup" method!
sub startup( $self ) {
$self->SUPER::startup;
# ... Add your routes and other setup here
}
Next, create a configuration file named my_app.conf
to connect to your database:
{
backend => 'sqlite:my_app.db',
}
Last, create a simple application script named script/my_app
to start your application:
#!/usr/bin/env perl
use Mojo::Base -strict;
use lib qw(lib);
use Mojolicious::Commands;
# Start command line interface for application
Mojolicious::Commands->start_app('MyApp');
Now you can run ./script/my_app daemon
to start your app!
To make developing your app easy and fun, make sure you're familiar with these guides:
- The Mojolicious tutorial and guides
- The Yancy tutorial
- The Yancy guides
#BUNDLED PROJECTS
This project bundles some other projects with the following licenses:
jQuery (version 3.2.1) Copyright JS Foundation and other contributors (MIT License)
Bootstrap (version 4.3.1) Copyright 2011-2019 the Bootstrap Authors and Twitter, Inc. (MIT License)
Popper.js (version 1.13.0) Copyright 2017 Federico Zivolo (MIT License)
FontAwesome (version 4.7.0) Copyright Dave Gandy (SIL OFL 1.1 and MIT License)
Vue.js (version 2.5.3) Copyright 2013-2018, Yuxi (Evan) You (MIT License)
marked (version 0.3.12) Copyright 2011-2018, Christopher Jeffrey (MIT License)
The bundled versions of these modules may change. If you rely on these in your own app, be sure to watch the changelog for version updates.
#SEE ALSO
#AUTHOR
Doug Bell <preaction@cpan.org>
#CONTRIBUTORS
Boris Däppen <bdaeppen.perl@gmail.com>
Ed J <mohawk2@users.noreply.github.com>
Erik Johansen <github@uniejo.dk>
flash548 <59771551+flash548@users.noreply.github.com>
Josh Rabinowitz <joshr@joshr.com>
Mohammad S Anwar <mohammad.anwar@yahoo.com>
Pavel Serikov <pavelsr@cpan.org>
Rajesh Mallah <mallah.rajesh@gmail.com>
Roy Storey <kiwiroy@users.noreply.github.com>
William Lindley <wlindley@wlindley.com>
Wojtek Bażant <wojciech.bazant+ebi@gmail.com>
#COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by Doug Bell.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.