Monday, February 20, 2017

Grunt - Overview

What is Grunt?

Grunt is a JavaScript Task Runner which can be used as a command line tool for JavaScript objects. It is a task manager written on top of NodeJS.

Grunt - Features

Grunt is a JavaScript based task runner which means it can automate repetitive tasks in a workflow and it can be used as a command line tool for JavaScript objects.
Some of the most prominent features of GruntJS are listed below −

Grunt - Installing

This chapter provides a step-by-step procedure of how to install Grunt on your system.

System Requirements for Grunt

  • Operating System − Cross-platform
  • Browser Support − IE (Internet Explorer 8+), Firefox, Google Chrome, Safari, Opera

Grunt - Getting Started

To make use of Grunt, you need to have Node.js installed. The installation of Node.js has been explained in the previous chapter. You can install Grunt and Grunt plugins by using Node.js package manager.
Before setting up Grunt on system, you can update the Node package manager by using the following command −

Grunt - Configuring Tasks

You can define project-specific configuration data for Grunt in the Gruntfile.js file.

Grunt Configuration

The task configuration data can be initialized in the Gruntfile by using the grunt.initConfig() method. Inside the grunt.initConfig() function, take the configuration information from package.json file. The configuration will contain a task named properties and any arbitrary data.

Grunt - Sample File

In this chapter, let us create a simple Grunt file using the following plugins −
  • grunt-contrib-uglify
  • grunt-contrib-concat
  • grunt-contrib-jshint
  • grunt-contrib-watch

Grunt - Creating Tasks

In this chapter, let us learn about creating tasks. Whenever you run Grunt, one or more tasks are specified to run that notifies Grunt what you would like it to do. If you specify the default task, then it will run by default.

Grunt - Quick Guide

Grunt - Overview

What is Grunt?

Grunt is a JavaScript Task Runner which can be used as a command line tool for JavaScript objects. It is a task manager written on top of NodeJS.

Grunt - Useful Resources

The following resources contain additional information on Grunt. Please use them to get more in-depth knowledge on this.

Discuss Grunt

Grunt is a JavaScript Task Runner which can be used as a command line tool for JavaScript objects. It is a task manager written on top of NodeJS. This tutorial explains how to use GruntJS to automate the build and deployment process in simple and easy steps.

Grav - Overview

What is Grav?

Grav is a flat-file based content management system which doesn't use database to store the content instead it uses text file (.txt) or markdown (.md) file to store the content. The flat-file part specifically refers to the readable text and it handles the content in an easy way which can be simple for a developer.

Grav - Installation

Software Requirements for Grav

  • Web Server :
    • WAMP (Windows)
    • LAMP (Linux)
    • XAMP (Multi-platform)
    • MAMP (Macintosh)
    • Nginx
    • Microsoft IIS

Grav - Pages

In this chapter let us study about Grav Pages. Pages can be defined as building blocks of the site. Pages combine contents and navigations which makes easy even for inexperienced users.
First let us know how to create a simple page. All user contents will be stored under user/pages/ folder. There will be only one folder called 01.home.

Grav - Markdown Syntax

Markdown syntax is defined as writing plain text in an easy to read and easy to write format, which is later converted into HTML code. Symbols like (*) or (`) are used in markdown syntax. These symbols are used to bold, creating headers and organize your content.

Grav - Page Linking

In this chapter we will study about Page Linking in Grav. You can link from one page to another in a simple way and even remote pages in page linking. Grav has many responsive linking options. If you have used HTML to link the files before, then it's very easy to understand page linking in Grav.

Grav - Image Linking

In this chapter we will study about image linking in Grav. Grav allows you to link images from one page to another and even to remote pages. If you have linked the files using HTML, that would be very easy to understand image linking in Grav.

Grav - Media

Media files contain different types of display content such as images, videos, and many other files. Grav find and processes these files automatically to be used by any page. By using the built in functionality of the page you can access metadata and modify the media dynamically.

Grav - Modular Pages

Modular pages are difficult to understand at first but once you get to know about it, it would be very easy to work with. It enables to create a single page from its child pages. It has the ability to build complex one page layouts from modular content pages.

Grav - Multi Language

Multi–Language is defined as the use of different languages into your site. By using the following procedure you can learn how to use multi–languages in your Grav site.

Multi – Languages Basics

Basically Grav will needs an .md file for the representation of any page. When you enable the multi-language support, it will look for a file like default.en.md or default.fr.md.

Grav - Themes Basics

In this chapter lets us study about Themes Basics. Themes will control the looks of your Grav site. Themes in Grav are built with the powerful Twig Templating engine.

Content Pages & Twig Templates

The pages that you create, references a specific template file by name or by setting the template header variable for the page. Using the page name is advised for simpler maintenance.

Grav - Theme Tutorial

In this chapter let us study about Theme Tutorial. Let's create Grav theme taking an example.

Antimatter

When you install the Grav base package the default Antimatter theme is installed, which uses Nucleus (a simple base set of CSS styling). Nucleus is a lightweight CSS framework that contains essential CSS styling and HTML markup which gives a unique look and feel.

Grav - Twig Filters & Functions

In this chapter let's study about Twig Filters and Functions. Filters are used to format the data the way you want and output. Functions are used to generate contents.
Twig templates are text files that contain expressions and variables replaced by values. Twig uses three types of tags.

Grav - Theme Variables

In this chapter let's study about Theme Variables. Objects and variables are accessed from twig templates while designing your theme and these objects & variables are read and manipulated by Twig Templating Framework.

Grav - Asset Manager

In this chapter let's study about Asset Manager. Asset Manager was introduced in Grav 0.9.0 to unify the interface for adding and managing assets like JavaScript and CSS. Adding these assets from themes and plugins will provide advanced capabilities such as ordering and Asset Pipeline.

Grav - Theme Customization

In this chapter lets study about Theme Customization. There are several ways to customize your theme. Grav provides many features and few functionality to easily customize your theme.

Grav - Plugin Basics

Plugin is a piece of software that provides additional functionality which was not originally completed by Grav's core functionality. Grav Plugins can be uploaded to expand the functionality of the site. Plugins are used to make your work easier.

Grav - Plugin Tutorials

Plugin is a piece of software that provides additional functionality which was not originally completed by Grav's core functionality.
In this article, we are going to display random page using the random plugin. Before using this plugin, we will see some important points of random plugin.

Grav - Event Hooks

In this chapter, we will study about Event Hooks in Grav. In Plugins chapter you will see, the logic of plugin was included in two methods. The methods are onPluginsInitialized and onPageInitialized which is similar to event hooks.

Grav - Admin Introduction

Grav Administration Panel plugin is a web graphical user interface (GUI) for Grav. It can easily create and modify pages. It is an optional plugin and to work effectively Grav does not depend on this totally. The Admin provides limited views for easy usage of Grav.

Grav - Admin Dashboard

In this chapter will study about Administrative Panel Dashboard in Grav. The Dashboard acts as a nerve center of information for the Grav Administration Panel plugin. You can inspect the traffic statistics, create new backups, Grav updates, maintenance information, view the latest page updates and you can clear the Grav's cache with the help of this single page.

Grav - Configuration System

In this chapter we will study about the Configuration System in Grav's Administration Panel. You can directly configure the settings of your site's system with the help of Configuration page. Furthermore, you will see a brief explanation of your server's properties including PHP, server environment, and other several components that regulates how your site performs.

Grav - Configuration Site

In this chapter, we will study about how to Configure Site in Grav's Administration Panel. You can directly configure the settings of your site's System with the help of Configuration page. The Site tab allows you to modify the settings in the /user/config/system.yaml file. This tab allows you to modify options and fields that affect site related features such as the name, default author etc used in your site.

Grav - Administration Panel Pages

Pages give an easy access to create, edit or delete the content to your site. In the administrative panel pages, you can view the list of pages created for your site and you can also create new modular or non-modular page for your site.

Grav - Page Editor Options

In this chapter we will study about Page Editor options in Grav administration panel. This is an dynamic text editor that allows you to create the content of your page. In addition, you can add media files in the pages.You can see the features of options tab as shown below.

Grav - Page Editor Advanced

The Page editor is a text editor and the page manager, allows you to create content including the media files, publishing and taxonomy options, settings and theme specific options. Below is an image of the Advanced tab of the editor page.

Grav - Blueprints

Blueprints are metadata information about the resource(source of information). It serves two purposes:
  • First is the resource identity itself.
  • Second is regarding the forms.
This complete information is saved in the blueprints.yaml file present in each plugin or theme.

Grav - Performance & Caching

Performance

The term performance refers to the system performance in such a way that whether it can handle higher load on system and modify the system to handle a higher load.
Grav contains some key points of performance such as:

Grav - Debugging & Logging

Debugging & logging information is very necessary while developing the themes and plugins. Grav uses debugging information by using some features as described below.

Grav - CLI

The CLI stands for command line interface stored in bin/grav. It performs some tasks such as clearing cache, creating backup copy etc.
Accessing CLI is different on different platforms. On Windows you can access through cmd, on Mac you can access through Terminal and on Linux you can use shell. In windows, you can't use UNIX style commands.

Grav - GPM

The GPM stands for Grav Package Manager which is used to install, update, uninstall and list the available plugins on the Grav repository. GPM executes the commands using command line interface such as terminal or cmd.

Grav - Development

You can build the Grav with different types of Development such as Grav Core, Grav Plugins, Grav Skeleton and Grav Themes.

Grav Core

Grav is a modern CMS in which writing content is simple and building pages is more friendly and intuitive. The Grav core specially talks about system folder which controls everything about Grav and represents qualities of Grav workflow and life cycle. It focuses mainly on pages which can be written in good manner. It focuses on your content and turns your content into navigable site.

Grav - Lifecycle

Grav Lifecycle determines how grav processes in order to extend the Grav via Plugins. The following diagram shows the flow of Grav lifecycle process.

Grav - YAML Syntax

The YAML stands for YAML Ain't Markup Language which includes human readable content and often used in configuration files, blueprints (metadata information about resource) and page settings.

Grav - Forms

You can create a form using form plugin available in this link. Search for the form plugin and install it in your grav folder.
You can also install this plugin using the command $ bin/gpm install Form. Navigate to your root folder of Grav and type this command. It will automatically download the form plugin and install the necessary dependencies.

Grav - Web Hosting

Hosting also known as web site hosting is a process of maintaining and organizing a website and provides access to the web sites via World Wide Web. In simple words you can say, it is service providing space for web sites on the internet.

Grav - Server Error

Server error occurs due to misconfiguration of Grav. When server has encountered an internal error or something happened unexpectedly, then Grav is unable to serve and recover the page.
If the server is running in production mode, to hide the information from the user, a server error message occurs. All the error messages are logged in grav.log file present under the folder <your_folder_name>/logs/grav.log.

Grav - Permission

In general, permission is a process of permitting to do something on your hosting environment. The permission include read or write access to the files on the server or editing the files on file system. Grav is a flat file based CMS which needs to write to the file system for creating cache and log files.
Grav comes under three main scenarios:

Grav - Interview Questions

Dear readers, these Grav Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your interview for the subject of Grav. As per my experience good interviewers hardly plan to ask any particular question during your interview, normally questions start with some basic concept of the subject and later they continue based on further discussion and what you answer: