Yancy - The Best Web Framework Deserves the Best CMS
version 1.088
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.
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:
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.
Doug Bell preaction@cpan.org
- 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>
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.