/Yancy

A tiny CMS / REST API using Mojolicious

Primary LanguagePerlOtherNOASSERTION

NAME

Yancy - The Best Web Framework Deserves the Best CMS

VERSION

version 1.088

DESCRIPTION

Yancy is a simple content management system (CMS) for the Mojolicious web framework.

Screenshot of list of Futurama characters
Screenshot of editing form for a person

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:

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:

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

Mojolicious

AUTHOR

Doug Bell preaction@cpan.org

CONTRIBUTORS

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.