+ * For a fairly comprehensive set of languages see the
+ * README
+ * file that came with this source. At a minimum, the lexer should work on a
+ * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
+ * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk
+ * and a subset of Perl, but, because of commenting conventions, doesn't work on
+ * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
+ *
+ * Usage:
+ *
include this source file in an html page via
+ * {@code }
+ *
define style rules. See the example page for examples.
+ *
mark the {@code
} and {@code } tags in your source with
+ * {@code class=prettyprint.}
+ * You can also use the (html deprecated) {@code } tag, but the pretty
+ * printer needs to do more substantial DOM manipulations to support that, so
+ * some css styles may not be preserved.
+ *
+ * That's it. I wanted to keep the API as simple as possible, so there's no
+ * need to specify which language the code is in, but if you wish, you can add
+ * another class to the {@code
} or {@code } element to specify the
+ * language, as in {@code
}. Any class that
+ * starts with "lang-" followed by a file extension, specifies the file type.
+ * See the "lang-*.js" files in this directory for code that implements
+ * per-language file handlers.
+ *
+ * Change log:
+ * cbeust, 2006/08/22
+ *
+ * Java annotations (start with "@") are now captured as literals ("lit")
+ *
+ * @requires console
+ */
+
+// JSLint declarations
+/*global console, document, navigator, setTimeout, window, define */
+
+/** @define {boolean} */
+var IN_GLOBAL_SCOPE = true;
+
+/**
+ * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
+ * UI events.
+ * If set to {@code false}, {@code prettyPrint()} is synchronous.
+ */
+window['PR_SHOULD_USE_CONTINUATION'] = true;
+
+/**
+ * Pretty print a chunk of code.
+ * @param {string} sourceCodeHtml The HTML to pretty print.
+ * @param {string} opt_langExtension The language name to use.
+ * Typically, a filename extension like 'cpp' or 'java'.
+ * @param {number|boolean} opt_numberLines True to number lines,
+ * or the 1-indexed number of the first line in sourceCodeHtml.
+ * @return {string} code as html, but prettier
+ */
+var prettyPrintOne;
+/**
+ * Find all the {@code
} and {@code } tags in the DOM with
+ * {@code class=prettyprint} and prettify them.
+ *
+ * @param {Function} opt_whenDone called when prettifying is done.
+ * @param {HTMLElement|HTMLDocument} opt_root an element or document
+ * containing all the elements to pretty print.
+ * Defaults to {@code document.body}.
+ */
+var prettyPrint;
+
+
+(function () {
+ var win = window;
+ // Keyword lists for various languages.
+ // We use things that coerce to strings to make them compact when minified
+ // and to defeat aggressive optimizers that fold large string constants.
+ var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"];
+ var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," +
+ "double,enum,extern,float,goto,inline,int,long,register,short,signed," +
+ "sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];
+ var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," +
+ "new,operator,private,protected,public,this,throw,true,try,typeof"];
+ var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool," +
+ "concept,concept_map,const_cast,constexpr,decltype,delegate," +
+ "dynamic_cast,explicit,export,friend,generic,late_check," +
+ "mutable,namespace,nullptr,property,reinterpret_cast,static_assert," +
+ "static_cast,template,typeid,typename,using,virtual,where"];
+ var JAVA_KEYWORDS = [COMMON_KEYWORDS,
+ "abstract,assert,boolean,byte,extends,final,finally,implements,import," +
+ "instanceof,interface,null,native,package,strictfp,super,synchronized," +
+ "throws,transient"];
+ var CSHARP_KEYWORDS = [JAVA_KEYWORDS,
+ "as,base,by,checked,decimal,delegate,descending,dynamic,event," +
+ "fixed,foreach,from,group,implicit,in,internal,into,is,let," +
+ "lock,object,out,override,orderby,params,partial,readonly,ref,sbyte," +
+ "sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort," +
+ "var,virtual,where"];
+ var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," +
+ "for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," +
+ "throw,true,try,unless,until,when,while,yes";
+ var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS,
+ "debugger,eval,export,function,get,null,set,undefined,var,with," +
+ "Infinity,NaN"];
+ var PERL_KEYWORDS = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for," +
+ "goto,if,import,last,local,my,next,no,our,print,package,redo,require," +
+ "sub,undef,unless,until,use,wantarray,while,BEGIN,END";
+ var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," +
+ "elif,except,exec,finally,from,global,import,in,is,lambda," +
+ "nonlocal,not,or,pass,print,raise,try,with,yield," +
+ "False,True,None"];
+ var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," +
+ "def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," +
+ "rescue,retry,self,super,then,true,undef,unless,until,when,yield," +
+ "BEGIN,END"];
+ var RUST_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "as,assert,const,copy,drop," +
+ "enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv," +
+ "pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"];
+ var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," +
+ "function,in,local,set,then,until"];
+ var ALL_KEYWORDS = [
+ CPP_KEYWORDS, CSHARP_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS,
+ PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS];
+ var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;
+
+ // token style names. correspond to css classes
+ /**
+ * token style for a string literal
+ * @const
+ */
+ var PR_STRING = 'str';
+ /**
+ * token style for a keyword
+ * @const
+ */
+ var PR_KEYWORD = 'kwd';
+ /**
+ * token style for a comment
+ * @const
+ */
+ var PR_COMMENT = 'com';
+ /**
+ * token style for a type
+ * @const
+ */
+ var PR_TYPE = 'typ';
+ /**
+ * token style for a literal value. e.g. 1, null, true.
+ * @const
+ */
+ var PR_LITERAL = 'lit';
+ /**
+ * token style for a punctuation string.
+ * @const
+ */
+ var PR_PUNCTUATION = 'pun';
+ /**
+ * token style for plain text.
+ * @const
+ */
+ var PR_PLAIN = 'pln';
+
+ /**
+ * token style for an sgml tag.
+ * @const
+ */
+ var PR_TAG = 'tag';
+ /**
+ * token style for a markup declaration such as a DOCTYPE.
+ * @const
+ */
+ var PR_DECLARATION = 'dec';
+ /**
+ * token style for embedded source.
+ * @const
+ */
+ var PR_SOURCE = 'src';
+ /**
+ * token style for an sgml attribute name.
+ * @const
+ */
+ var PR_ATTRIB_NAME = 'atn';
+ /**
+ * token style for an sgml attribute value.
+ * @const
+ */
+ var PR_ATTRIB_VALUE = 'atv';
+
+ /**
+ * A class that indicates a section of markup that is not code, e.g. to allow
+ * embedding of line numbers within code listings.
+ * @const
+ */
+ var PR_NOCODE = 'nocode';
+
+
+
+ /**
+ * A set of tokens that can precede a regular expression literal in
+ * javascript
+ * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html
+ * has the full list, but I've removed ones that might be problematic when
+ * seen in languages that don't support regular expression literals.
+ *
+ *
Specifically, I've removed any keywords that can't precede a regexp
+ * literal in a syntactically legal javascript program, and I've removed the
+ * "in" keyword since it's not a keyword in many languages, and might be used
+ * as a count of inches.
+ *
+ *
The link above does not accurately describe EcmaScript rules since
+ * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
+ * very well in practice.
+ *
+ * @private
+ * @const
+ */
+ var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
+
+ // CAVEAT: this does not properly handle the case where a regular
+ // expression immediately follows another since a regular expression may
+ // have flags for case-sensitivity and the like. Having regexp tokens
+ // adjacent is not valid in any language I'm aware of, so I'm punting.
+ // TODO: maybe style special characters inside a regexp as punctuation.
+
+ /**
+ * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
+ * matches the union of the sets of strings matched by the input RegExp.
+ * Since it matches globally, if the input strings have a start-of-input
+ * anchor (/^.../), it is ignored for the purposes of unioning.
+ * @param {Array.} regexs non multiline, non-global regexs.
+ * @return {RegExp} a global regex.
+ */
+ function combinePrefixPatterns(regexs) {
+ var capturedGroupIndex = 0;
+
+ var needToFoldCase = false;
+ var ignoreCase = false;
+ for (var i = 0, n = regexs.length; i < n; ++i) {
+ var regex = regexs[i];
+ if (regex.ignoreCase) {
+ ignoreCase = true;
+ } else if (/[a-z]/i.test(regex.source.replace(
+ /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+ needToFoldCase = true;
+ ignoreCase = false;
+ break;
+ }
+ }
+
+ var escapeCharToCodeUnit = {
+ 'b': 8,
+ 't': 9,
+ 'n': 0xa,
+ 'v': 0xb,
+ 'f': 0xc,
+ 'r': 0xd
+ };
+
+ function decodeEscape(charsetPart) {
+ var cc0 = charsetPart.charCodeAt(0);
+ if (cc0 !== 92 /* \\ */) {
+ return cc0;
+ }
+ var c1 = charsetPart.charAt(1);
+ cc0 = escapeCharToCodeUnit[c1];
+ if (cc0) {
+ return cc0;
+ } else if ('0' <= c1 && c1 <= '7') {
+ return parseInt(charsetPart.substring(1), 8);
+ } else if (c1 === 'u' || c1 === 'x') {
+ return parseInt(charsetPart.substring(2), 16);
+ } else {
+ return charsetPart.charCodeAt(1);
+ }
+ }
+
+ function encodeEscape(charCode) {
+ if (charCode < 0x20) {
+ return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
+ }
+ var ch = String.fromCharCode(charCode);
+ return (ch === '\\' || ch === '-' || ch === ']' || ch === '^')
+ ? "\\" + ch : ch;
+ }
+
+ function caseFoldCharset(charSet) {
+ var charsetParts = charSet.substring(1, charSet.length - 1).match(
+ new RegExp(
+ '\\\\u[0-9A-Fa-f]{4}'
+ + '|\\\\x[0-9A-Fa-f]{2}'
+ + '|\\\\[0-3][0-7]{0,2}'
+ + '|\\\\[0-7]{1,2}'
+ + '|\\\\[\\s\\S]'
+ + '|-'
+ + '|[^-\\\\]',
+ 'g'));
+ var ranges = [];
+ var inverse = charsetParts[0] === '^';
+
+ var out = ['['];
+ if (inverse) { out.push('^'); }
+
+ for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
+ var p = charsetParts[i];
+ if (/\\[bdsw]/i.test(p)) { // Don't muck with named groups.
+ out.push(p);
+ } else {
+ var start = decodeEscape(p);
+ var end;
+ if (i + 2 < n && '-' === charsetParts[i + 1]) {
+ end = decodeEscape(charsetParts[i + 2]);
+ i += 2;
+ } else {
+ end = start;
+ }
+ ranges.push([start, end]);
+ // If the range might intersect letters, then expand it.
+ // This case handling is too simplistic.
+ // It does not deal with non-latin case folding.
+ // It works for latin source code identifiers though.
+ if (!(end < 65 || start > 122)) {
+ if (!(end < 65 || start > 90)) {
+ ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
+ }
+ if (!(end < 97 || start > 122)) {
+ ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
+ }
+ }
+ }
+ }
+
+ // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
+ // -> [[1, 12], [14, 14], [16, 17]]
+ ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); });
+ var consolidatedRanges = [];
+ var lastRange = [];
+ for (var i = 0; i < ranges.length; ++i) {
+ var range = ranges[i];
+ if (range[0] <= lastRange[1] + 1) {
+ lastRange[1] = Math.max(lastRange[1], range[1]);
+ } else {
+ consolidatedRanges.push(lastRange = range);
+ }
+ }
+
+ for (var i = 0; i < consolidatedRanges.length; ++i) {
+ var range = consolidatedRanges[i];
+ out.push(encodeEscape(range[0]));
+ if (range[1] > range[0]) {
+ if (range[1] + 1 > range[0]) { out.push('-'); }
+ out.push(encodeEscape(range[1]));
+ }
+ }
+ out.push(']');
+ return out.join('');
+ }
+
+ function allowAnywhereFoldCaseAndRenumberGroups(regex) {
+ // Split into character sets, escape sequences, punctuation strings
+ // like ('(', '(?:', ')', '^'), and runs of characters that do not
+ // include any of the above.
+ var parts = regex.source.match(
+ new RegExp(
+ '(?:'
+ + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set
+ + '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape
+ + '|\\\\x[A-Fa-f0-9]{2}' // a hex escape
+ + '|\\\\[0-9]+' // a back-reference or octal escape
+ + '|\\\\[^ux0-9]' // other escape sequence
+ + '|\\(\\?[:!=]' // start of a non-capturing group
+ + '|[\\(\\)\\^]' // start/end of a group, or line start
+ + '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters
+ + ')',
+ 'g'));
+ var n = parts.length;
+
+ // Maps captured group numbers to the number they will occupy in
+ // the output or to -1 if that has not been determined, or to
+ // undefined if they need not be capturing in the output.
+ var capturedGroups = [];
+
+ // Walk over and identify back references to build the capturedGroups
+ // mapping.
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ var p = parts[i];
+ if (p === '(') {
+ // groups are 1-indexed, so max group index is count of '('
+ ++groupIndex;
+ } else if ('\\' === p.charAt(0)) {
+ var decimalValue = +p.substring(1);
+ if (decimalValue) {
+ if (decimalValue <= groupIndex) {
+ capturedGroups[decimalValue] = -1;
+ } else {
+ // Replace with an unambiguous escape sequence so that
+ // an octal escape sequence does not turn into a backreference
+ // to a capturing group from an earlier regex.
+ parts[i] = encodeEscape(decimalValue);
+ }
+ }
+ }
+ }
+
+ // Renumber groups and reduce capturing groups to non-capturing groups
+ // where possible.
+ for (var i = 1; i < capturedGroups.length; ++i) {
+ if (-1 === capturedGroups[i]) {
+ capturedGroups[i] = ++capturedGroupIndex;
+ }
+ }
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ var p = parts[i];
+ if (p === '(') {
+ ++groupIndex;
+ if (!capturedGroups[groupIndex]) {
+ parts[i] = '(?:';
+ }
+ } else if ('\\' === p.charAt(0)) {
+ var decimalValue = +p.substring(1);
+ if (decimalValue && decimalValue <= groupIndex) {
+ parts[i] = '\\' + capturedGroups[decimalValue];
+ }
+ }
+ }
+
+ // Remove any prefix anchors so that the output will match anywhere.
+ // ^^ really does mean an anchored match though.
+ for (var i = 0; i < n; ++i) {
+ if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
+ }
+
+ // Expand letters to groups to handle mixing of case-sensitive and
+ // case-insensitive patterns if necessary.
+ if (regex.ignoreCase && needToFoldCase) {
+ for (var i = 0; i < n; ++i) {
+ var p = parts[i];
+ var ch0 = p.charAt(0);
+ if (p.length >= 2 && ch0 === '[') {
+ parts[i] = caseFoldCharset(p);
+ } else if (ch0 !== '\\') {
+ // TODO: handle letters in numeric escapes.
+ parts[i] = p.replace(
+ /[a-zA-Z]/g,
+ function (ch) {
+ var cc = ch.charCodeAt(0);
+ return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
+ });
+ }
+ }
+ }
+
+ return parts.join('');
+ }
+
+ var rewritten = [];
+ for (var i = 0, n = regexs.length; i < n; ++i) {
+ var regex = regexs[i];
+ if (regex.global || regex.multiline) { throw new Error('' + regex); }
+ rewritten.push(
+ '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
+ }
+
+ return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
+ }
+
+ /**
+ * Split markup into a string of source code and an array mapping ranges in
+ * that string to the text nodes in which they appear.
+ *
+ *
+ * where #1 is a reference to the {@code "print "} text node above, and so
+ * on for the other text nodes.
+ *
+ *
+ *
+ * The {@code} spans array is an array of pairs. Even elements are the start
+ * indices of substrings, and odd elements are the text nodes (or BR elements)
+ * that contain the text for those substrings.
+ * Substrings continue until the next index or the end of the source.
+ *
+ *
+ * @param {Node} node an HTML DOM subtree containing source-code.
+ * @param {boolean} isPreformatted true if white-space in text nodes should
+ * be considered significant.
+ * @return {Object} source code and the text nodes in which they occur.
+ */
+ function extractSourceSpans(node, isPreformatted) {
+ var nocode = /(?:^|\s)nocode(?:\s|$)/;
+
+ var chunks = [];
+ var length = 0;
+ var spans = [];
+ var k = 0;
+
+ function walk(node) {
+ var type = node.nodeType;
+ if (type == 1) { // Element
+ if (nocode.test(node.className)) { return; }
+ for (var child = node.firstChild; child; child = child.nextSibling) {
+ walk(child);
+ }
+ var nodeName = node.nodeName.toLowerCase();
+ if ('br' === nodeName || 'li' === nodeName) {
+ chunks[k] = '\n';
+ spans[k << 1] = length++;
+ spans[(k++ << 1) | 1] = node;
+ }
+ } else if (type == 3 || type == 4) { // Text
+ var text = node.nodeValue;
+ if (text.length) {
+ if (!isPreformatted) {
+ text = text.replace(/[ \t\r\n]+/g, ' ');
+ } else {
+ text = text.replace(/\r\n?/g, '\n'); // Normalize newlines.
+ }
+ // TODO: handle tabs here?
+ chunks[k] = text;
+ spans[k << 1] = length;
+ length += text.length;
+ spans[(k++ << 1) | 1] = node;
+ }
+ }
+ }
+
+ walk(node);
+
+ return {
+ sourceCode: chunks.join('').replace(/\n$/, ''),
+ spans: spans
+ };
+ }
+
+ /**
+ * Apply the given language handler to sourceCode and add the resulting
+ * decorations to out.
+ * @param {number} basePos the index of sourceCode within the chunk of source
+ * whose decorations are already present on out.
+ */
+ function appendDecorations(basePos, sourceCode, langHandler, out) {
+ if (!sourceCode) { return; }
+ var job = {
+ sourceCode: sourceCode,
+ basePos: basePos
+ };
+ langHandler(job);
+ out.push.apply(out, job.decorations);
+ }
+
+ var notWs = /\S/;
+
+ /**
+ * Given an element, if it contains only one child element and any text nodes
+ * it contains contain only space characters, return the sole child element.
+ * Otherwise returns undefined.
+ *
+ * This is meant to return the CODE element in {@code
} when
+ * there is a single child element that contains all the non-space textual
+ * content, but not to return anything where there are multiple child elements
+ * as in {@code
......
} or when there
+ * is textual content.
+ */
+ function childContentWrapper(element) {
+ var wrapper = undefined;
+ for (var c = element.firstChild; c; c = c.nextSibling) {
+ var type = c.nodeType;
+ wrapper = (type === 1) // Element Node
+ ? (wrapper ? element : c)
+ : (type === 3) // Text Node
+ ? (notWs.test(c.nodeValue) ? element : wrapper)
+ : wrapper;
+ }
+ return wrapper === element ? undefined : wrapper;
+ }
+
+ /** Given triples of [style, pattern, context] returns a lexing function,
+ * The lexing function interprets the patterns to find token boundaries and
+ * returns a decoration list of the form
+ * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
+ * where index_n is an index into the sourceCode, and style_n is a style
+ * constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to
+ * all characters in sourceCode[index_n-1:index_n].
+ *
+ * The stylePatterns is a list whose elements have the form
+ * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
+ *
+ * Style is a style constant like PR_PLAIN, or can be a string of the
+ * form 'lang-FOO', where FOO is a language extension describing the
+ * language of the portion of the token in $1 after pattern executes.
+ * E.g., if style is 'lang-lisp', and group 1 contains the text
+ * '(hello (world))', then that portion of the token will be passed to the
+ * registered lisp handler for formatting.
+ * The text before and after group 1 will be restyled using this decorator
+ * so decorators should take care that this doesn't result in infinite
+ * recursion. For example, the HTML lexer rule for SCRIPT elements looks
+ * something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match
+ * '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Thank you for purchasing WooCommerce template. This documentation consists of several parts and shows you the entire process of setting up and administering WordPress Website from scratch.
+
+
+
What is WordPress CMS?
+
WordPress is a free and open source blogging tool and a content management system (CMS) based on PHP and MySQL. It enables you to build Websites and powerful on-line applications and requires almost no technical skills or knowledge to manage. Many aspects, including its ease-of-use and extensibility, have made WordPress the most popular Web site software available. Learn More
+
+
+
+
What is WooCommerce template
+
WooCommerce template is a skin for website built with WordPress CMS platform. In other words you can easily change your WordPress Web site appearance installing new template in a few easy steps. With all it's simplicity WordPress template is provided with all necessary source files and you are free to edit or extend it the way you need.
+
+
+
+
Files structure
+
The template package you have downloaded consists of several folders. Let's see what each folder contains :
+
+
+
Documentation - contains documentation files
+
+
template_instructions.html - main documentation file. You are right here :)
+
+
+
+
Screenshots - contains template screenshots. Not for production
fonts_info.txt - contains links where the template custom fonts can be downloaded
+
info.txt - contains instructions on how to extract source files
+
+
+
+
+
+
+
Prepare
+
Before you proceed to setting up your WordPress Web site please make sure you are fully prepared. Please complete the following preparation steps:
+
+
+
Editing software
+
To feel comfortable working with WooCommerce template we recommend you to download all applications required. You can see the list of required software at the template preview page. Requirements may vary depending on the template, we're going to tell you in general what’s needed:
+
+
+
First of all you need the right applications to extract the password protected sources_#########.zip archive. You can use WinZip 9+ (Windows) and Stuffit Expander 10+ (Mac).
+
You may also need Adobe Photoshop application. It’s used to edit .PSD source files and it’s necessary if you want to edit template design graphics and images.
+
To edit template source code files you need some code editor like Adobe Dreamweaver, Notepad++, Sublime Text etc.
+
To upload files to the hosting server you may need an FTP Manager like Total Commander, FileZilla, CuteFTP etc.
+
+
+
+
+
Hosting
+
As WordPress CMS is a PHP/MySQL based application, you need to prepare a hosting environment to run WordPress.
+
If you have a live hosting please make sure it matches WordPress software requirements and is ready to be used for WordPress websites.
+
Otherwise you can run WordPress locally on your computer using the local server. To create a local hosting server please use the localhost applications as WAMP, AppServ, MAMP etc. Any of those can be easily installed as any other program and used to run WordPress.
+
Please check the tutorials below on how to configure local development environment:
Download correct WordPress engine version. At the template preview page, in the requirements section you can see the required WordPress version. Please make sure you are downloading the correct one.
+
+
The WordPress engine could be downloaded from the official website at WordPress.org Download WordPress. In case you need earlier release you can click the Release Release Archive link.
+
+
When you are done with the downloading you need to extract the files from the engine and template packages. To extract the files from the WordPress engine ZIP package you can use any archive manager that can handle ZIP archives.
+
After extracting the files you need to upload the WordPress engine files and folders to your hosting server.
+
All these files and folders should be uploaded to your hosting server. The engine files should be uploaded to the PUBLIC_HTML or WWW directory on your server.
+
+
If you don’t see PUBLIC_HTML or WWW directories on your hosting server please contact your hosting and specify where to upload the website files.
+
+
Please check the following tutorials on how to upload files to server:
In your browser address bar type your domain name/root to the WordPress files and press Enter. This will start the installation procedure.
+
+
Creating configuration file. The initial WordPress installation screen will notify you that the configuration file is unavailable. Click Create Configuration File button to create it.
+
+
+
+
+
+
Inserting database details. Here you need to input the WordPress database connection details.
+
+
+
+
+
+
Inserting website details. On the following screen you should input the website details such as:
+
+
website title
+
administrator username and password
+
website email address
+
+
+
+
+
+
+
When you are done click Install WordPress button.
+
+
+
+
+
If all data has been inserted correctly you’ll see the Success window with the button to LogIn to your WordPress administration panel.
+
+
+
+
Congratulations! You have successfully installed WordPress CMS.
+
+
+
+
+
+
Theme installation
+
+
+
+ Warning!
+ WooCommerce plugin should be installed before the theme installation
+
+
+
+
There are two ways to install the theme: via the admin panel of WordPress or via FTP. If one way does not work for you for some reason, you can always try the other one.
+
Upload via WordPress admin:
+
Installation process includes two steps: framework installation and child theme installation. Both steps are basically identical and easy to follow.
+
+
Login to your WordPress admin panel (add /wp-admin to your domain name in the browser address bar).
+
Go to the menu Appearance > Themes and click the Install Themes tab.
+
Click the Browse button and navigate to the unzipped template package on your computer.
+
Look for a file called CherryFramework.zip. Click on it to select, then click Ok.
+
Click the Install Now button and wait till the installtion is complete.
Congratulations, you have just installed the framework. Now you can proceed to installing the child theme: theme####.zip. The steps are the same:
+
+
Go to the menu Appearance > Themes and click the Install Themes tab.
+
Click the Browse button and navigate to the unzipped template package on your computer.
+
Look for a file called theme####.zip (where XXXX is the unique number of your theme). Click on it to select, then click Ok.
+
Click the Install Now button and wait till the installtion is complete.
+
Click the Activate link to change the current layout of the site to the theme your purchased.
+
+
+
+
+
+
Congratulations, both the framework and theme have been successfully installed!
+
+
If there are problems to install them via the admin panel, here's the alternative way to do it.
+
Upload via ftp:
+
This way assumes that you have access to your WordPress site files on FTP through the File Manager of your hosting control panel or an FTP client like Filezilla, CutrFTP,. Total Commander etc.
+
+
Unzip the CherryFramework.zip and theme####.zip file to any folder on your hard drive (fist right click each of the .zip files, select Unzip to… CherryFramework and theme#### accordingly, so you get two folders called CherryFramework and theme####).
+
+
Upload the CherryFramework and theme#### folders to the /wp-content/themes/ directory on your FTP server.
+
Login to your WordPress admin panel (add /wp-admin after your domain name in the browser address bar).
+
Go to the menu Appearance > Themes.
+
Under the Available Themes section find theme#### and activate it by clicking Activate button.
+
+
+
Plugin Installation
+
Once the theme is installed and activated, you will need to install its plugins:
+
+
In your WordPress admin panel, go to the menu Plugins -> Add New.
+
Click Upload.
+
Click Browse.
+
Navigate to the theme####.zip\includes\plugins folder in your template package (the theme####.zip should be unzipped).
+
Select of the .zip files in this directory and click Ok.
+
Click Install Now.
+
When the plugin is installed, click Activate.
+
If there are more than one plugin in the /plugins/ folder, repeat the steps to install and activate all of them.
+
Download:http://wpml.org/
+ Description: WPML makes it easy to build multilingual sites and run them.
+
+
JigoShop
+
Download:http://wordpress.org/plugins/jigoshop/
+ Description: A feature-packed eCommerce plugin built upon WordPress core functionality ensuring excellent performance and customizability.
+
+
BuddyPress
+
Download:http://wordpress.org/plugins/buddypress/
+ Description: Social networking in a box. Build a social network for your company, school, sports team or niche community.
To make your WordPress website look like our live demo, please follow the instructions below. We also suggest you always have a backup .sql file exported from your database.
+
+
Go to the menu Cherry Options > Import.
+
Follow the steps there. On Step One you will be prompted to upload the file with sample_data.xml extension, which contains all template sample data (posts, pages, categories etc.). Once you have selected the file, click Upload File and Import button (If you do not want to install sample data from live demo you need to skip this step.)
+
+
+
+
+
After this you will need to select the author for the posts and pages you are importing. Click Next button to run the process.
+
Sample data import process usually takes approximately 2 minutes so be patient and wait a bit. Please, don't terminate this process.
+
+
+
+
+
On the third step you will be prompted to upload widgets.json (This file located in the /theme/sample_data/ folder of the template package contains widgets settings. Before importing the file, make sure there are no widgets already added to your site: go to the menu Appearance > Widgets, open the widget areas on the right and if there are any widgets, drag and drop them to the left side under Inactive Widgets so all these widget areas are empty). Once you have selected the file, click Next button (If you do not want to install widgets settings from live demo you need to skip this step).
+
+
+
+
+
This will allow you to choose what widgets you would like to install from the list. All widgets should be checked if you would like to install them all.Сlick Next to proceed to the next step.
+
+
+
+
+
Click the Save Changes button, to activate SEO-optimized permalinks structure.
+
+
+
+
+
Congratulations! You have successfully installed your Cherry WordPress Theme. You can look theme now
+
+
+
+
+
Manual installation
+
If you are having problems with installing the sample data, please follow the instructions below.
+
ATTENTION: Importing the SQL file to your database will overwrite your existing content and website settings. DO NOT import the SQL file if you want to keep the existing content.
+
NOTE: Always backup your database before performing any modifications.
+
Please note that the prefix of WordPress database tables should be wp_
+
+
+
+
If the database prefix is different, it should be changed according to this manual.
+
To make your WordPress look like our live demo please, follow the instructions bellow.
Copy the"uploads" folder (that is located under the theme/manual_install/folder of your template package) to the /wp-content/ folder on your FTP.
+
Open the theme####.sql file that is located in the theme/manual_install/ folder in any text editor (preferably Dreamweaver or Notepad) and replace all instances of "your_website_url_here" with your website URL in the entire document using the Find and Replace tool (hit Ctrl+H hot keys to open this window). E.g.: http://www.mywebsite.com
+
Please, make sure that you do not have the forward slash "/" sign at the end of the address and the url starts with http://www.
+
Save your changes and close the file.
+
Now you can import the dump file with the phpMyAdmin tool or some other database management tool.
+
+
If you have problems with manual installation, please read this manual.
+
Permalinks settings
+
NOTE: Congifure the given settings right after the installation of the theme.
+
In this template custom Permalinks are used, so the standard paths like http://demolink.org/?p=1 are replaced with http://demolink.org/home etc. This way of links configuration can be used not only by our blog followers but will also help with SEO-optimisation of your site. The advantages and the main features of this link configuration method are covered at http://codex.wordpress.org/Using_Permalinks
+ Please follow the steps below:
+
+
Log in to your WordPress Administration Panel (Dashboard).
+
Go to the menu Settings > Permalinks.
+
On the permalinks settings page please check Custom structure, then copy and paste the following settings /%category%/%postname%/
+
With that done, click the Save changes button.
+
+
+
+
+
If you install the theme with the dump.sql file the settings will be configured automatically. However, you need to save current settings by clicking Save changes. Otherwise, some links may not work.
+
+
Menu setup
+
+
+
+
+
+
WordPress 3.0 comes with a new menu management panel, which makes building your site’s navigation very easy and flexible.
+
This theme is registered with three menu locations:
Log into your WordPress Administration Panel (Dashboard).
+
Click the Post tab
+
To choose post format, check the ones listed under the Format box.
+
+ Note: Some of these formats have their own options. Their settings will appear under the post editor.
+
+
Below is the list of available post formats with their descriptions and settings.
+
Standard Post Format
+
+
Standard Post Format
+
A regular, standard post which has the following fields:
+
+
Post title - post title
+
Post content - post content
+
Categories - post category(-ies)
+
Tags - post tags
+
Featured Image - post image
+
and other fields which can be enabled under the Screen Options section located at the top right corner.
+
+
Aside Post Format
+
+
Aside Post Format
+
This is a simplified regular post version. In other words, it comes with a post content field only and you don't need to fill in the post title and other fields. This is a so called post-note.
+
Gallery Post Format
+
The main feature of this post format is the ability to maintain unlimited number of attached images.
+
Adding a Gallery Post Format:
+
+
Click the Add Media button
+
To add images from your hard drive, drag and drop your files into the box that appears, or click Select Files to choose a picture from your computer to upload.
+
+
After the images have finished uploading, you will be shown all the images in your Media Library. Select Uploaded to this post to see attached images.
+
+
+
When you’ve finished editing, you may close Media Library. Uploaded images will be attached automatically.
+
+
The gallery post format has all the standard fields (like title, content, categories etc.) same as the regular post format.
+
Link Post Format
+
+
Link Post Format
+
After selecting the Link Post Format you will get an additional URL field, where you need to specify the link (URL) for the target page/resource. The Post title will be used as your link text.
+
In case you will fill in the post content field, it will be used as the target page/source description.
+
Image Post Format
+
+
Image Post Format
+
An Image Post Format is a post format based on single image, uploaded via the Featured Image option. Upon selecting the Image Post Format you will be able to disable the lightbox image feature by selecting the corresponding setting in the Enable Lightbox image option.
+
Quote Post Format
+
+
Quote Post Format
+
A Quote Post Format serves as so-called post-citation. It's used to publish a quotation of some person.
+
Upon selecting this post format you will get an additional The Quote field - basically the body of the quotation and an Author field - quotation author name.
+
Audio Post Format
+
+
Audio Post Format
+
Audio Post Format is used for publishing audio-content.
+
Upon selecting this post format you will get the following additional options:
+
+
Title - a track title
+
Artist - an audio track performer
+
Audio Format - an audio track format
+
Audio URL - a direct link to the audio track
+
+
Video Post Format
+
+
Video Post Format
+
A Video Post Format is used for publishing video-content.
+
Upon selecting this post format you will get the following additional options:
+
+
Title - a video-clip title
+
Artist - a video-clip performer
+
URL #1 - a direct link to a video-clip in m4v format
+
URL #2 - a direct link to a video-clip in ogv format
+
Embedded Code - used for off-site video embedding, e.g. via youtube, vimeo etc.
Products are essentially custom post types which means that they are different from common posts, such as blog posts, portfolio posts etc. That allows us to manage the content of the site really easy.
+
+
You can learn the features of these types of posts at the official website of the WooCommerce plugin.
+
+
+
Log into your WordPress Administration Panel (Dashboard).
+
Click the Products tab
+
Click the Add New tab
+
Insert your product title.
+
Upload your image with the help of the Featured Image option (click the Set featured image link)
Slides are essentially custom post types which means that they are different from common posts, such as blog posts, portfolio posts etc. That allows us to manage the content of the site really easy.
+
+
+
Creating a slider post
+
+
Log into your WordPress Administration Panel (Dashboard).
+
Click the Slider tab
+
And now click the Add New tab
+
Insert your slider title.
+
Upload your image with the help of the Featured Image option (click the Set featured image link)
+
You can use the following fields for your slider:
+
+
Caption -a field for slide caption.
+
URL -a field for slide URL (you can put external link here).
+
+
+
And click the Publish button
+
+
+
+
+
Adding a Portfolio post
+
+
+
Portfolio items are essentially custom post types http://codex.wordpress.org/Post_Types#Custom_Types which means that they are different from common posts, such as blog posts, portfolio posts etc. That allows us to manage the content of the site really easy.
+
+
+
Adding a portfolio post
+
+
Log in to your WordPress Administration Panel (Dashboard).
+
Click the Portfolio tab
+
And now the Add New one
+
Fill in all the required fields (title, content)
+
Upload your image with the help of the Featured Image option (click the Set featured image link)
+
And click the Publish button
+
+
Choosing Portfolio post format
+
+
+
Creating a portfolio post in this theme allows you to select one of the available post types.
+
+
Image - a default gallery post format. Displays only featured image.
+
Slideshow - the project gallery is displayed as a slideshow. It can contain unlimited number of images uploaded and attached to the post.
+
Grid Gallery - post images are displayed as a gallery. Can contain unlimited number of images uploaded and attached to the post.
+
Video - by selecting this post type you can embed a video from any video hosting (YouTube, Vimeo etc.).
+
Audio - by selecting this post type you can embed your audio link.
+
+
+
+
+
+
Adding a Testimonials post
+
+
Adding a Testimonials post
+
+
Log into your WordPress Administration Panel (Dashboard).
+
Click the Testimonials tab
+
And click the Add New tab
+
Fill in all the required fields (title, content)
+
Upload your image with the help of the Featured Image option (click the Set featured image link)
+
You can use the following fields for this sort of posts:
+
+
Name - author's name
+
URL - author's link
+
Info - author's additional info
+
+
+
Hit the Publish button
+
+
+
+
+
Adding an FAQs post
+
+
Adding a FAQs post
+
+
Log into your WordPress Administration Panel (Dashboard).
+
Click the FAQs tab
+
And now the Add New button
+
Since it is a question/answer type of post, the title of the post is the question and the content is the answer.
+
Click Publish
+
+
+
+
+
Adding an Our Team post
+
+
Adding a Our Team post
+
+
Log into your WordPress Administration Panel (Dashboard).
+
Click the Our Team tab
+
And now the Add New button
+
Fill in all the required fields (title, content)
+
Upload your image with the help of the Featured Image option (click the Set featured image link)
+
You can use the following fields for this sort of posts:
+
+
Position - the position of the person.
+
Info - an additional info
+
+
+
Click Publish
+
+
+
+
+
+
+
+
+
Portfolio page
+
+
+
+
Creating a Portfolio page
+
+
Creating a Portfolio page
+
Portfolio pages can be created with the help of the page templates
+
+
Log in to your WordPress Administration Panel (Dashboard).
+
Click the Pages tab
+
Click the Add New tab
+
Type in your page name, for example Portfolio page
+
Select your page template ( Filter Folio 2 cols, Filter Folio 3 cols or Filter Folio 4 cols in the Page Attributes drop-down menu)
+
With that done, click the Publish button
+
+
You can create category portfolio page using Category Include field. You need to write the slug of the category which you want to be displayed.
A shortcode is a powerful content building tool http://codex.wordpress.org/Shortcode. Shortcodes are easy to use. First off all, make sure that the editing mode is set to Visual.
+
+
Then please click the button for the shortcodes. Then select the shortcode you want to insert.
+
+
+
All available shortcodes are conditionally divided into the three groups:
+
+
Dynamic - used for content output (posts, custom post types, tags etc.)
+
Grid Columns - various columns for grid forming.
+
Elements - additional elements for content forming.
+
Other - additional elements for advanced/complex content forming.
Description: displays the recent posts which can be configured with the following options (post type, posts amount, post format, excerpt length, button title and others).
+
+
+
Recent Testimonials
+
+
+
[recenttesti num="2" thumb="true"]
+
Description: displays specified amount of Testimonials custom post type posts, includes the ability to show/hide posts images and manage words count.
Description: displays the posts in carousel view, has various additional options.
+
+
+
Roundabout
+
+
+
[roundabout title="Title" num="3" type="blog"]
+
Description: Roundabout is a jQuery plugin that converts a structure of static HTML elements into a highly customizable turntable-like interactive area.
Description: used to display information blocks that include title, icon, text, button. The main feature of this shortcode is the existence of pre-installed icons.
Description: used to display an accordion - fold up panels with titles.
+
+
+
Table
+
+
[table td1="#" td2="Title" td3="Value"] [td1] 1 [/td1] [td2] some title 1 [/td2] [td3] some value 1 [/td3] [/table]
+
Description: used to display a table.
+
+
+
Google Map
+
+
+
[map src="#" width="300" height="200"]
+
Description: used to display Google maps. To make the shortcode work, you need to insert the desired location link from Google
+
+
+
Audio / Video
+
Description: WordPress 3.6 has great support for embedding YouTube and Vimeo videos, but if you wanted to play a video or audio file, like an MP3 or MP4 file, that has been uploaded to a server, you needed to implement some kind of player so that the file would appear as media rather than a link on your site. Read More
+ The process is similar to inserting an image into your post content:
+
+
Add or edit a page or post
+
+
Click in your content where you want the player to appear then hit Add Media above the content editor
+
+
+
+
Click Upload Files
+
Upload an audio or video file
+
+
Make sure the file you uploaded is selected then under Attachment Display Settings set Embed or Link to "Embed Media Player"
+
+
+
+
Click Insert into page
+
+
WordPress will have inserted a shortcode for your audio or video that will be replaced with the player.
+
Maybe you uploaded an audio or video file to another server, say Amazon S3 or a file hosting service. Just enter the URL to your media file (unlinked) on a line of its own. For example, you want to embed a YouTube video. Simply paste that into your content on a line of its own and the YouTube player will show in its place when you publish. Be sure that the URL is not linked.
+
+
+
http://www.youtube.com/watch?v=mmRPSoDrrFU
+
+
+
That simple line above becomes this:
+
+
+
+
+
+
+
+
+
+
Custom Widgets
+
+
Widgets
+
The following widgets are also used in the theme:
+
+
+
Cherry - Recent Comments
+
Displays recent comments in a more convenient format. The given widget includes the following options:
+
+
Title: - Widget Title
+
Number of comments to show: - Number of comments to show.
+
+
+
+
+
+
Cherry - Recent Posts
+
Displays your recent posts. You can also show custom posts of certain categories and add a read more link. The given Widget contains the following options:
+
+
Title: - Widget Title
+
Category Slug: - Post Category Slug.
+
Post Format: - Choose Post Format for displaying posts.
+
Post Order: - You can choose order for displaying posts.
+
Posts per page: - The number of posts to display.
+
Excerpt length (words): - excerpt length (the number of words)
+
Link Text: - the Link Text that is displayed after the Recent Posts.
+
Link Url: - Link URL that is displayed after the Recent posts.
+
+
+
+
+
+
+
Cherry - Advanced Cycle
+
The multifunctional widget is used to display different post types including the blog posts, as well as the functionality of changing display settings. This widget contains the following options:
+
+
Title: - Widget Title
+
Posts type: - select Posts type
+
Number of posts to show: - the number of posts
+
Sort by: - Post selection option
+
Reverse sort order (ascending): - reverse sort order
+
Show number of comments - show the number of comments
+
Show meta - show meta
+
Container class: - wrapper class. Set to featured_custom_posts by default
+
Show post title - show post title.
+
Date as title - for date usage instead of the title
+
Before title: - custom HTML-markup before Title
+
After title: - custom HTML-markup after Title
+
Show post excerpt - show excerpt
+
Excerpt length (words): - excerpt length (the number of words)
+
Excerpt as link - convert excerpt into a link
+
Show "More link" - show link More after the post
+
Link text: - Link Text
+
Link class: - CSS-class for the link More link
+
Show post thumbnail - show thumbnail for a post
+
Width: - Image Width
+
Height: - Image Height
+
Thumbnail as link - convert the image into a link
+
Show global link to all posts - Show global link to all posts
+
Link text: - the text of the given link
+
Link URL: - Link URL
+
+
+
+
+
+
+
Cherry - Social Networks
+
This is the Widget that allows linking to your social network accounts. The widget contains the following options:
+
+
Title: - Widget Title
+
Facebook URL, Twitter URL, Flickr URL etc. - the links to your Social Network accounts
This is the Widget that allows you to show a set of banners. The widget contains the following options:
+
+
Title: - Widget Title
+
Image Ad link: - path to your banner image.
+
Ad link: - your banner link.
+
+
+
+
+
+
Cherry - Twitter
+
This widget alllows you to display the latest twitts from your twitter account. The widget contains the following options:
+
+
Title: - Widget Title
+
Twitter Name: - your twitter name
+
Twitts number: - amount of twitts to show.
+
+
+
+
+
+
Cherry - Flickr
+
This widget alllows you to display photos from your flickr gallery. It contains the following options:
+
+
Title: - Widget Title
+
Flickr ID: - your flickr ID
+
Images count: - amount of photos to show.
+
Link Text: - the link text under your flickr photos.
+
+
+
+
+
+
Cherry - vCard
+
This widget alllows you to display information about your company or about you. It contains the following options:
+
+
Title (optional): - Widget Title
+
Street Address: - put your street address here
+
City/Locality: - enter your city or locality here
+
State/Region: - enter your state or region here
+
Zipcode/Postal Code: - enter your zipcode or postal code here
+
Telephone: - telephone number
+
Email: - your email
+
+
+
+
+
+
+
+
+
Cherry Options
+
The following theme contains the Settings option. These settings allow you to change of theme’s color palette, order of items, turn items on/off and do lots of other things. In order to use these settings, please go to Appearance → Cherry Options.
+
+
General
+
+
+
+
Body styling - you can select the body color and the background pattern.
+
Header background color - Header background color
+
Buttons and links color - Buttons and links color
+
Body Text - You can choose your preferred font for body text. There are following options available for editing the fonts:
+
+
Font size
+
Line height
+
Font Family
+
Font style (normal, bold, italic)
+
Character Sets (Latin, Greek, Cyrillic etc.)
+
Color
+
+
+
Note: Font marked with * means that it will be loaded from the Google Web Fonts library.
+
H1-H6 Headings - You can choose your preferred font for headings and titles. There are following options available for editing the fonts:
+
+
Font size
+
Line height
+
Font Family
+
Font style (normal, bold, italic)
+
Character Sets (latin, greek, cyrillic etc.)
+
Color
+
+
+
Note: Font marked with * means that it will be loaded from the Google Web Fonts library.
+
Display search box? - show/hide the search bar in the header
+
Display breadcrumbs? - show/hide the breadcrumbs in the pages
+
Custom CSS - if you need to add some CSS rules, but you don't want to mess with the main css file, you can use this field. Just insert your new css rules
+
+
+
+
+
Logo & Favicon
+
+
+
+
What kind of logo? - indicates what kind of logo to use, whether the text one or the image logo.
+
Logo URL - with Image logo selected you can upload the new image with the help of the 'upload' feature or use any pic from the Media Library.
+
Logo Typography - You can choose your preferred font for text logo. There are following options available for editing the fonts:
+
+
Font size
+
Line height
+
Font Family
+
Font style (normal, bold, italic)
+
Character Sets (Latin, Greek, Cyrillic etc.)
+
Color
+
+
+
Note:* near the font means that font will be loaded from the Google Web Fonts library.
+
Favicon - you can upload the new favicon with the help of the 'upload' feature or use any pic from the Media Library.
+
+
+
+
+
Navigation
+
+
+
+
Menu Typography - You can choose your preferred font for main menu. There are following options available for editing the fonts:
+
+
Font size
+
Line height
+
Font Family
+
Font style (normal, bold, italic)
+
Character Sets (latin, greek, cyrillic etc.)
+
Color
+
+
Note:* near the font means that font will be loaded from the Google Web Fonts library.
+
+
Delay - delay in milliseconds that defines when the menu hides
+
Fade-in animation - enable/disable the fade-in animation
+
Slide-down animation - enable/disable the slide animation
+
Speed - the speed of the submenu expanding
+
Arrows markup - enable/disable arrows for the menu items that have submenus
+
+
+
+
+
Slider
+
Disable Slider
+
+
+
You can switch off slider.
+
+
Slideshow
+
+
+
+
Sliding effect - slider transition effect
+
Number of columns - number of columns
+
Number of rows - Number of rows
+
Banner effect - Select your banner animation type
+
Pause time - Pause time (ms)
+
Animation speed - Animation speed (ms)
+
Slideshow - Animate slider automatically?
+
Thumbnails - Display thumbnails?
+
Pagination - Display pagination?
+
Next & Prev navigation - Display next & prev navigation?
+
Display next & prev navigation only on hover? - If 'yes' the navigation button (prev, next and play/stop buttons) will be visible on hover state only, if 'no' they will be visible always
+
Play/Pause button - Display Play/Pause button?
+
Loader - Slider loader
+
+
+
Accordion
+
+
+
+
Slides to display - Select the slides that you want to be displayed on slider. If no slide is selected, all slides will be displayed.
+
Slideshow - Animate slider automatically?
+
Pause on mouseover - The auto play will pause when you mouse over the slider.
+
Pause time - Pause time (ms).
+
Animation speed - Animation speed (ms)
+
Animation slowdown - You can choose different types of animation slowdown for transition of slides.
+
Mouse events for transition of slides - You can choose different types of mouse events for transition of slides.
+
Active slide - Set the number of slide that will be active by default. If the value is 0, all slides will be of the same width when page loads.
+
+
+
+
+
Blog
+
+
+
+
Blog Title - your Blog Title used on Blog page
+
Related Posts Title - your Title used on Single Post page for related posts.
+
Sidebar position - you can select the position for the sidebar(right or left)
+
Blog image size - the Image size (Normal size or Large size) for the Blog page
+
Single post image size - the image size (Normal size or Large size) for the single post page
+
Enable Meta for blog posts? - display meta for posts
+
Enable excerpt for blog posts? - display excerpt for posts
+
+
+
+
+
Portfolio
+
+
+
+
Filter - Portfolio filter.
+
Show title? - Enable or Disable title for portfolio posts.
+
Show excerpt? - Enable or Disable excerpt for portfolio posts.
+
Excerpt words - Excerpt length (words).
+
Show button? - Enable or Disable button for portfolio posts.
+
Layout - Portfolio has different layout modes. You can set and change the layout mode via this option.