Git Product home page Git Product logo

mezzanine's Introduction

image

Created by Stephen McDonald

Overview

Mezzanine is a powerful, consistent, and flexible content management platform. Built using the Django framework, Mezzanine provides a simple yet highly extensible architecture that encourages diving in and hacking on the code. Mezzanine is BSD licensed and supported by a diverse and active community.

In some ways, Mezzanine resembles tools such as Wordpress that provide an intuitive interface for managing pages, blog posts, form data, store products, and other types of content. But Mezzanine is also different. Unlike many other platforms that make extensive use of modules or reusable applications, Mezzanine provides most of its functionality by default. This approach yields a more integrated and efficient platform.

Visit the Mezzanine project page to see some of the great sites people have built using Mezzanine.

Features

In addition to the usual features provided by Django such as MVC architecture, ORM, templating, caching and an automatic admin interface, Mezzanine provides the following:

The Mezzanine admin dashboard:

image

Dependencies

Mezzanine makes use of as few libraries as possible (apart from a standard Django environment), with the following dependencies:

Users on Debian or Ubuntu will require some system packages to support the imaging library:

$ apt-get install libjpeg8 libjpeg8-dev
$ apt-get build-dep python-imaging

OSX users can do the same via Homebrew:

$ brew install libjpeg

Themes

A handful of attractive Free Themes are available thanks to @abhinavsohani, while there is also a marketplace for buying and selling Premium Themes thanks to @joshcartme.

Browser Support

Mezzanine's admin interface works with all modern browsers. Internet Explorer 7 and earlier are generally unsupported.

Installation

The easiest method is to install directly from pypi using pip by running the command below, which will also install the required dependencies mentioned above:

$ pip install mezzanine

If you prefer, you can download Mezzanine and install it directly from source:

$ python setup.py install

Once installed, the command mezzanine-project can be used to create a new Mezzanine project in similar fashion to django-admin.py:

$ mezzanine-project project_name
$ cd project_name
$ python manage.py createdb --noinput
$ python manage.py runserver

Note

The createdb command is a shortcut for using Django's migrate command, which will also install some demo content, such as a contact form, image gallery, andmore. If you'd like to omit this step, use the --nodata option with createdb.

You should then be able to browse to http://127.0.0.1:8000/admin/ and log in using the default account (username: admin, password: default). If you'd like to specify a different username and password during set up, simply exclude the --noinput option included above when running createdb.

For information on how to add Mezzanine to an existing Django project, see the FAQ section of the documentation.

Contributing

Mezzanine is an open source project managed using both the Git and Mercurial version control systems. These repositories are hosted on both GitHub and Bitbucket respectively, so contributing is as easy as forking the project on either of these sites and committing back your enhancements.

Please note the following guidelines for contributing:

  • Contributed code must be written in the existing style. For Python (and to a decent extent, JavaScript as well), this is as simple as following the Django coding style and (most importantly) PEP 8. Front-end CSS should adhere to the Bootstrap CSS guidelines.
  • Contributions must be available on a separately named branch based on the latest version of the main branch.
  • Run the tests before committing your changes. If your changes cause the tests to break, they won't be accepted.
  • If you are adding new functionality, you must include basic tests and documentation.

Here's a quick start to hacking on Mezzanine after forking it on GitHub, by using the internal "project_template" as your current project:

$ git clone https://github.com/your-github-username/mezzanine/
$ cd mezzanine
$ git checkout -b your-new-branch-name
$ cp mezzanine/project_template/project_name/local_settings.py{.template,}
$ python setup.py develop
$ python mezzanine/project_template/manage.py createdb --noinput
$ python mezzanine/project_template/manage.py runserver

"hack hack hack"

$ python setup.py test
$ git commit -am "A message describing what you changed."
$ git push origin your-new-branch-name

Multi-Lingual Sites

Mezzanine makes full use of translation strings, which allows Mezzanine's interface and templates to be translated into multiple languages using Django's internationalization support. New translations can be contributed via GitHub or Bitbucket. Consult the documentation for Django's internationalization support for more information on creating translations and using them.

More importantly, Mezzanine also provides optional integration with django-modeltranslation, allowing for all user generated content to be translated into multiple langagues to create multi-lingual sites. Consult Mezzanine's documentation on Multi-lingual sites for more information.

Third-Party Plug-Ins

The following plug-ins have been developed outside of Mezzanine. If you have developed a plug-in to integrate with Mezzanine and would like to list it here, send an email to the mezzanine-users mailing list, or better yet, fork the project and create a pull request with your plug-in added to the list below. We also ask that you add it to the Mezzanine Grid on djangopackages.com.

Donating

If you would like to make a donation to continue development of Mezzanine, you can do so via the Mezzanine Project website.

Support

To report a security issue, please send an email privately to [email protected]. This gives us a chance to fix the issue and create an official release prior to the issue being made public.

For all other Mezzanine support, the primary channel is the mezzanine-users mailing list. Questions, comments, and all related discussions take place here amongst knowledgeable members of the community.

If you're certain you've come across a bug, then please use the GitHub issue tracker. It's crucial that enough information is provided to reproduce the bug. This includes things such as the Python stack trace generated by error pages, as well as other aspects of the development environment used, such as operating system, database, Python version, etc. If you're not sure you've found a reproducible bug, then please try the mailing list first.

Finally, feel free to drop by the #mezzanine IRC channel on Freenode, for a chat!

Communications in all Mezzanine spaces are expected to conform to the Django Code of Conduct.

Sites Using Mezzanine

Got a site built with Mezzanine? You can add it to the gallery on the Mezzanine project page by adding it to the list below - just fork the project and create a pull request. Please omit the trailing slash in the URL, as we manually add that ourselves to feature certain sites.

Quotes

mezzanine's People

Contributors

stephenmcd avatar alexhill avatar jerivas avatar wrwrwr avatar sebasmagri avatar joshcartme avatar kenbolton avatar dfalk avatar edschofield avatar ajfisher avatar kniyl avatar dpnova avatar akhayyat avatar jcartmell avatar gavinwahl avatar renyi avatar viaregio avatar amites avatar tvon avatar ei-grad avatar tourist avatar eht16 avatar dsanders11 avatar acatton avatar electroniceagle avatar mattoc avatar pedroma avatar sjkingo avatar joshbatchelor avatar spookylukey avatar

Watchers

Stephen Milligan (aka Spike) avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.