Yancy - The Best Web Framework Deserves the Best CMS
version 1.085
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.
yancy
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:
lib
MyApp.pm
Yancy
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!
startup
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:
my_app.conf
{ backend => 'sqlite:my_app.db', }
Last, create a simple application script named script/my_app to start your application:
script/my_app
#!/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!
./script/my_app daemon
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.
Mojolicious
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.
To install Yancy, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Yancy
CPAN shell
perl -MCPAN -e shell install Yancy
For more information on module installation, please visit the detailed CPAN module installation guide.