81 lines
3.1 KiB
Ruby
81 lines
3.1 KiB
Ruby
# Copyright (c) 2005 Tobias Luetke
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
# a copy of this software and associated documentation files (the
|
|
# "Software"), to deal in the Software without restriction, including
|
|
# without limitation the rights to use, copy, modify, merge, publish,
|
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
# permit persons to whom the Software is furnished to do so, subject to
|
|
# the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be
|
|
# included in all copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
module Liquid
|
|
FilterSeparator = /\|/
|
|
ArgumentSeparator = ','.freeze
|
|
FilterArgumentSeparator = ':'.freeze
|
|
VariableAttributeSeparator = '.'.freeze
|
|
WhitespaceControl = '-'.freeze
|
|
TagStart = /\{\%/
|
|
TagEnd = /\%\}/
|
|
VariableSignature = /\(?[\w\-\.\[\]]\)?/
|
|
VariableSegment = /[\w\-]/
|
|
VariableStart = /\{\{/
|
|
VariableEnd = /\}\}/
|
|
VariableIncompleteEnd = /\}\}?/
|
|
QuotedString = /"[^"]*"|'[^']*'/
|
|
QuotedFragment = /#{QuotedString}|(?:[^\s,\|'"]|#{QuotedString})+/o
|
|
TagAttributes = /(\w+)\s*\:\s*(#{QuotedFragment})/o
|
|
AnyStartingTag = /#{TagStart}|#{VariableStart}/o
|
|
PartialTemplateParser = /#{TagStart}.*?#{TagEnd}|#{VariableStart}.*?#{VariableIncompleteEnd}/om
|
|
TemplateParser = /(#{PartialTemplateParser}|#{AnyStartingTag})/om
|
|
VariableParser = /\[[^\]]+\]|#{VariableSegment}+\??/o
|
|
|
|
singleton_class.send(:attr_accessor, :cache_classes)
|
|
self.cache_classes = true
|
|
end
|
|
|
|
require "liquid/version"
|
|
require 'liquid/parse_tree_visitor'
|
|
require 'liquid/lexer'
|
|
require 'liquid/parser'
|
|
require 'liquid/i18n'
|
|
require 'liquid/drop'
|
|
require 'liquid/tablerowloop_drop'
|
|
require 'liquid/forloop_drop'
|
|
require 'liquid/extensions'
|
|
require 'liquid/errors'
|
|
require 'liquid/interrupts'
|
|
require 'liquid/strainer'
|
|
require 'liquid/expression'
|
|
require 'liquid/context'
|
|
require 'liquid/parser_switching'
|
|
require 'liquid/tag'
|
|
require 'liquid/block'
|
|
require 'liquid/block_body'
|
|
require 'liquid/document'
|
|
require 'liquid/variable'
|
|
require 'liquid/variable_lookup'
|
|
require 'liquid/range_lookup'
|
|
require 'liquid/file_system'
|
|
require 'liquid/resource_limits'
|
|
require 'liquid/template'
|
|
require 'liquid/standardfilters'
|
|
require 'liquid/condition'
|
|
require 'liquid/utils'
|
|
require 'liquid/tokenizer'
|
|
require 'liquid/parse_context'
|
|
|
|
# Load all the tags of the standard library
|
|
#
|
|
Dir["#{__dir__}/liquid/tags/*.rb"].each { |f| require f }
|