acquia/lightning

Name: lightning

Owner: Acquia

Description: Lightning is a base distribution for fast and feature-rich Drupal. Please submit issues to our Drupal.Org queue here: https://www.drupal.org/project/issues/lightning

Created: 2014-09-22 14:49:49.0

Updated: 2018-01-18 14:22:01.0

Pushed: 2018-01-06 17:29:08.0

Homepage: https://lightning.acquia.com

Size: 22426

Language: PHP

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Build Status

Drupal Lightning

Lightning's mission is to enable developers to create great authoring experiences and empower editorial teams.

You'll notice that Lightning appears very sparse out of the box. This is by design. We want to empower editorial teams and enable developers to jump-start their site builds. That means that a developer should never have to undo something that Lightning has done. So we started with a blank slate and justified each addition from there.

Installing Lightning

The preferred way to install Lightning is using our Composer-based project template. It's easy!

mposer self-update
mposer create-project acquia/lightning-project MY_PROJECT

If you don't want to use Composer, you can install Lightning the traditional way by downloading a tarball from our drupal.org project page. (Please note that the tarball does not contain any experimental features.)

You can customize your installation by creating a sub-profile which uses Lightning as its base profile. Lightning includes a Drupal Console command (lightning:subprofile) which will generate a sub-profile for you.

What Lightning Does

Through custom modules and configuration, Lightning aims to target four functional areas:

Media

The current version of media includes the following functionality:

Extending Lightning Media (Contributed Modules)

Drupal community members have contributed several modules which integrate Lightning Media with additional third-party media services. These modules are not packaged with Lightning or maintained by Acquia, but they are stable and you can use them in your Lightning site:

Layout

Lightning includes the Panelizer module, which allows you to configure the layout of any content type using a drag-and-drop interface (Panels IPE). Lightning also includes a Landing Page content type for you to create landing pages with their own one-off layouts and content.

Any content type that uses Panelizer will allow you to set up default layouts for each view mode of that content type, which you can choose from (or override on a one-off basis) for individual pieces of content.

Eight layouts are provided out of the box by Panels. You can create your own layouts (see the Layout Discovery module bundled with Core) or install a contributed library of layouts like Radix Layouts.

Workflow

Lightning includes tools for building organization-specific content workflows. Out of the box, Lightning gives you the ability to manage content in one of four workflow states (draft, needs review, published, and archived). You can create as many additional states as you like and define transitions between them. It's also possible to schedule content to be transitioned between states at a specific future date and time.

API-First

Lightning ships with several modules which, together, quickly set up Drupal to deliver data to decoupled applications via a standardized API. By default, Lightning installs the OpenAPI and JSON API modules, plus the Simple OAuth module, as a toolkit for authentication, authorization, and delivery of data to API consumers. Currently, Lightning includes no default configuration for any of these modules, because it does not make any assumptions about how the API data will be consumed, but we might add support for standard use cases as they present themselves.

If you have PHP's OpenSSL extension enabled, Lightning can automatically create an asymmetric key pair for use with OAuth.

Project Roadmap

We publish sprint plans for each patch release. You can find a link to the current one in [this meta-issue][meta_releases] on Drupal.org.

Resources

Demonstration videos for each of our user stories can be found here.

Please use the Drupal.org issue queue for latest information and to request features or bug fixes.

Running Tests

These instructions assume you have used Composer to install Lightning. Once you have it up and running, follow these steps to execute all of Lightning's Behat tests:

Behat
$ cd MYPROJECT
$ ./bin/drupal behat:init http://YOUR.LIGHTNING.SITE --merge=../tests/behat.yml
$ ./bin/drupal behat:include ../tests/features --with-subcontexts=../tests/features/bootstrap --with-subcontexts=../src/LightningExtension/Context
$ ./bin/behat --config ./docroot/sites/default/files/behat.yml

If necessary, you can edit `docroot/sites/default/files/behat.yml` to match your environment, but generally you will not need to do this.

Known Issues
Media
Inherited profiles

Drush is not aware of the concept of inherited profiles and as a result, you will be unable to uninstall dependencies of any parent profile using Drush. You can still uninstall these dependencies via the UI at “/admin/modules/uninstall”. We have provided patches here for Drush which allow you to uninstall dependencies of parent profiles.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.