Table of Contents - liquid-5.8.7 Documentation
Pages
-
History
- Liquid Change Log
- 5.8.7
- 5.8.1
- 5.8.0
- 5.7.3
- 5.7.2 2025-01-31
- 5.7.1 2025-01-24
- 5.7.0 2025-01-16
- Features
- 5.6.4 2025-01-14
- Fixes
- 5.6.3 2025-01-13
- 5.6.2 2025-01-13
- Fixes
- 5.6.1 2025-01-13
- Performance improvements
- 5.6.0 2024-12-19
- Architectural changes
- Performance improvements
- API changes
- Fixes
- 5.5.0 2024-03-21
- 5.4.0 2022-07-29
- Breaking Changes
- Features
- Fixes
- Changed
- 5.3.0 2022-03-22
- Fixes
- Deprecation
- 5.2.0 2022-03-01
- Features
- Fixes
- 5.1.0 / 2021-09-09
- Features
- Fixes
- 5.0.1 / 2021-03-24
- Fixes
- Performance Improvements
- 5.0.0 / 2021-01-06
- Features
- Fixes
- Breaking Changes
- Performance Improvements
- 4.0.3 / 2019-03-12
- Fixed
- 4.0.2 / 2019-03-08
- Changed
- Fixed
- 4.0.1 / 2018-10-09
- Changed
- Fixed
- 4.0.0 / 2016-12-14 / branch “4-0-stable”
- Changed
- Fixed
- 3.0.5 / 2015-07-23 / branch “3-0-stable”
- 3.0.4 / 2015-07-17
- 3.0.3 / 2015-05-28
- 3.0.2 / 2015-04-24
- 3.0.1 / 2015-01-23
- 3.0.0 / 2014-11-12
- 2.6.3 / 2015-07-23 / branch “2-6-stable”
- 2.6.2 / 2015-01-23
- 2.6.1 / 2014-01-10
- 2.6.0 / 2013-11-25
- 2.5.5 / 2014-01-10 / branch “2-5-stable”
- 2.5.4 / 2013-11-11
- 2.5.3 / 2013-10-09
- 2.5.2 / 2013-09-03 / deleted
- 2.5.1 / 2013-07-24
- 2.5.0 / 2013-03-06
- 2.4.0 / 2012-08-03
- 2.3.0 / 2011-10-16
- 2.2.1 / 2010-08-23
- 2.2.0 / 2010-08-22
- 1.9.0 / 2008-03-04
- Before 1.9.0
- README
Classes and Modules
- Array
- Date
- DateTime
- FalseClass
- Hash
- Liquid
- Liquid::Assign
- Liquid::Assign::ParseTreeVisitor
- Liquid::BlankFileSystem
- Liquid::Block
- Liquid::BlockBody
- Liquid::BlockBodyProfilingHook
- Liquid::Break
- Liquid::BreakInterrupt
- Liquid::Capture
- Liquid::Case
- Liquid::Case::ParseTreeVisitor
- Liquid::Comment
- Liquid::Condition
- Liquid::Condition::MethodLiteral
- Liquid::Condition::ParseTreeVisitor
- Liquid::Const
- Liquid::Context
- Liquid::ContextProfilingHook
- Liquid::Continue
- Liquid::ContinueInterrupt
- Liquid::Cycle
- Liquid::Cycle::ParseTreeVisitor
- Liquid::Decrement
- Liquid::Deprecations
- Liquid::Doc
- Liquid::Document
- Liquid::DocumentProfilingHook
- Liquid::Drop
- Liquid::Echo
- Liquid::Echo::ParseTreeVisitor
- Liquid::ElseCondition
- Liquid::Environment
- Liquid::Error
- Liquid::Expression
- Liquid::For
- Liquid::For::ParseTreeVisitor
- Liquid::ForloopDrop
- Liquid::I18n
- Liquid::If
- Liquid::If::ParseTreeVisitor
- Liquid::Ifchanged
- Liquid::Include
- Liquid::Include::ParseTreeVisitor
- Liquid::Increment
- Liquid::InlineComment
- Liquid::Interrupt
- Liquid::Lexer
- Liquid::LocalFileSystem
- Liquid::ParseContext
- Liquid::ParseTreeVisitor
- Liquid::Parser
- Liquid::ParserSwitching
- Liquid::PartialCache
- Liquid::Profiler
- Liquid::Profiler::Timing
- Liquid::RangeLookup
- Liquid::RangeLookup::ParseTreeVisitor
- Liquid::Raw
- Liquid::Registers
- Liquid::Render
- Liquid::Render::ParseTreeVisitor
- Liquid::ResourceLimits
- Liquid::StandardFilters
- Liquid::StandardFilters::InputIterator
- Liquid::StaticRegisters
- Liquid::StrainerTemplate
- Liquid::TableRow
- Liquid::TableRow::ParseTreeVisitor
- Liquid::TablerowloopDrop
- Liquid::Tag
- Liquid::Tag::Disableable
- Liquid::Tag::Disabler
- Liquid::Tags
- Liquid::Template
- Liquid::TemplateFactory
- Liquid::Tokenizer
- Liquid::Unless
- Liquid::Usage
- Liquid::Utils
- Liquid::Variable
- Liquid::Variable::ParseTreeVisitor
- Liquid::VariableLookup
- Liquid::VariableLookup::ParseTreeVisitor
- NilClass
- Numeric
- Range
- String
- Symbol
- Time
- TrueClass
Methods
- ::add_filter — Liquid::StrainerTemplate
- ::array_inspect — Liquid::Utils
- ::build — Liquid::Context
- ::build — Liquid::Environment
- ::dangerously_override — Liquid::Environment
- ::default — Liquid::Environment
- ::default_exception_renderer — Liquid::Template
- ::default_exception_renderer= — Liquid::Template
- ::default_resource_limits — Liquid::Template
- ::default_resource_limits= — Liquid::Template
- ::disable_tags — Liquid::Tag
- ::disabled_tags — Liquid::Tag
- ::error_mode — Liquid::Template
- ::error_mode= — Liquid::Template
- ::file_system — Liquid::Template
- ::file_system= — Liquid::Template
- ::filter_method_names — Liquid::StrainerTemplate
- ::filter_methods — Liquid::StrainerTemplate
- ::for — Liquid::ParseTreeVisitor
- ::hash_inspect — Liquid::Utils
- ::increment — Liquid::Usage
- ::inherited — Liquid::StrainerTemplate
- ::inner_parse — Liquid::Expression
- ::inspect — Liquid::Utils
- ::invokable? — Liquid::Drop
- ::invokable? — Liquid::StrainerTemplate
- ::invokable_methods — Liquid::Drop
- ::load — Liquid::PartialCache
- ::new — Liquid::Block
- ::new — Liquid::BlockBody
- ::new — Liquid::Condition::MethodLiteral
- ::new — Liquid::Context
- ::new — Liquid::Document
- ::new — Liquid::Drop
- ::new — Liquid::Environment
- ::new — Liquid::LocalFileSystem
- ::new — Liquid::ForloopDrop
- ::new — Liquid::I18n
- ::new — Liquid::Interrupt
- ::new — Liquid::ParseContext
- ::new — Liquid::ParseTreeVisitor
- ::new — Liquid::Parser
- ::new — Liquid::Profiler
- ::new — Liquid::Profiler::Timing
- ::new — Liquid::RangeLookup
- ::new — Liquid::Registers
- ::new — Liquid::Registers
- ::new — Liquid::ResourceLimits
- ::new — Liquid::StandardFilters::InputIterator
- ::new — Liquid::StrainerTemplate
- ::new — Liquid::TablerowloopDrop
- ::new — Liquid::Tag
- ::new — Liquid::Assign
- ::new — Liquid::Capture
- ::new — Liquid::Case
- ::new — Liquid::Cycle
- ::new — Liquid::Decrement
- ::new — Liquid::Doc
- ::new — Liquid::Echo
- ::new — Liquid::For
- ::new — Liquid::If
- ::new — Liquid::Include
- ::new — Liquid::Increment
- ::new — Liquid::InlineComment
- ::new — Liquid::Raw
- ::new — Liquid::Render
- ::new — Liquid::TableRow
- ::new — Liquid::Template
- ::new — Liquid::Tokenizer
- ::new — Liquid::Variable
- ::new — Liquid::VariableLookup
- ::parse — Liquid::Document
- ::parse — Liquid::Expression
- ::parse — Liquid::RangeLookup
- ::parse — Liquid::Tag
- ::parse — Liquid::Template
- ::parse — Liquid::VariableLookup
- ::parse_number — Liquid::Expression
- ::raise_missing_tag_terminator — Liquid::BlockBody
- ::raise_missing_variable_terminator — Liquid::BlockBody
- ::raise_syntax_error — Liquid::Lexer
- ::raise_syntax_error — Liquid::Assign
- ::raise_unknown_tag — Liquid::Block
- ::register_filter — Liquid::Template
- ::register_tag — Liquid::Template
- ::render_node — Liquid::BlockBody
- ::rescue_render_node — Liquid::BlockBody
- ::slice_collection — Liquid::Utils
- ::slice_collection_using_each — Liquid::Utils
- ::tags — Liquid::Template
- ::to_date — Liquid::Utils
- ::to_integer — Liquid::Utils
- ::to_liquid_value — Liquid::Utils
- ::to_number — Liquid::Utils
- ::to_s — Liquid::Utils
- ::tokenize — Liquid::Lexer
- ::try_coerce_encoding — Liquid::StandardFilters
- ::unknown_tag_in_liquid_tag — Liquid::BlockBody
- ::warn — Liquid::Deprecations
- #== — Liquid::VariableLookup
- #[] — Liquid::Context
- #[] — Liquid::Drop
- #[] — Liquid::ParseContext
- #[] — Liquid::Profiler
- #[] — Liquid::Registers
- #[] — Liquid::Registers
- #[]= — Liquid::Context
- #[]= — Liquid::Registers
- #[]= — Liquid::Registers
- #abs — Liquid::StandardFilters
- #add_callback_for — Liquid::ParseTreeVisitor
- #add_filters — Liquid::Context
- #append — Liquid::StandardFilters
- #apply_global_filter — Liquid::Context
- #apply_operation — Liquid::StandardFilters
- #apply_options_to_context — Liquid::Template
- #argument — Liquid::Parser
- #assign_score_of — Liquid::Assign
- #assigns — Liquid::Template
- #at_least — Liquid::StandardFilters
- #at_most — Liquid::StandardFilters
- #base64_decode — Liquid::StandardFilters
- #base64_encode — Liquid::StandardFilters
- #base64_url_safe_decode — Liquid::StandardFilters
- #base64_url_safe_encode — Liquid::StandardFilters
- #blank? — Liquid::Block
- #blank? — Liquid::BlockBody
- #blank? — Liquid::Tag
- #blank? — Liquid::Assign
- #blank? — Liquid::Capture
- #blank? — Liquid::Comment
- #blank? — Liquid::Doc
- #blank? — Liquid::InlineComment
- #blank? — Liquid::Raw
- #block_delimiter — Liquid::Block
- #block_name — Liquid::Block
- #capitalize — Liquid::StandardFilters
- #ceil — Liquid::StandardFilters
- #check_overflow — Liquid::Context
- #children — Liquid::Condition::ParseTreeVisitor
- #children — Liquid::ParseTreeVisitor
- #children — Liquid::Profiler
- #children — Liquid::RangeLookup::ParseTreeVisitor
- #children — Liquid::Assign::ParseTreeVisitor
- #children — Liquid::Case::ParseTreeVisitor
- #children — Liquid::Cycle::ParseTreeVisitor
- #children — Liquid::Echo::ParseTreeVisitor
- #children — Liquid::For::ParseTreeVisitor
- #children — Liquid::If::ParseTreeVisitor
- #children — Liquid::Include::ParseTreeVisitor
- #children — Liquid::Render::ParseTreeVisitor
- #children — Liquid::TableRow::ParseTreeVisitor
- #children — Liquid::Variable::ParseTreeVisitor
- #children — Liquid::VariableLookup::ParseTreeVisitor
- #clear_instance_assigns — Liquid::Context
- #col0 — Liquid::TablerowloopDrop
- #col_first — Liquid::TablerowloopDrop
- #col_last — Liquid::TablerowloopDrop
- #collection_segment — Liquid::For
- #compact — Liquid::StandardFilters::InputIterator
- #compact — Liquid::StandardFilters
- #concat — Liquid::StandardFilters::InputIterator
- #concat — Liquid::StandardFilters
- #configure_options — Liquid::Template
- #consume — Liquid::Parser
- #consume? — Liquid::Parser
- #create_strainer — Liquid::Environment
- #create_variable — Liquid::BlockBody
- #date — Liquid::StandardFilters
- #deep_fetch_translation — Liquid::I18n
- #default — Liquid::StandardFilters
- #delete — Liquid::Registers
- #delete — Liquid::Registers
- #disabled? — Liquid::Variable
- #disabled_error — Liquid::Tag::Disableable
- #disabled_tags — Liquid::Variable
- #divided_by — Liquid::StandardFilters
- #downcase — Liquid::StandardFilters
- #each — Liquid::Profiler
- #each — Liquid::StandardFilters::InputIterator
- #else? — Liquid::ElseCondition
- #empty? — Liquid::StandardFilters::InputIterator
- #ensure_valid_markup — Liquid::Doc
- #ensure_valid_markup — Liquid::Raw
- #errors — Liquid::Template
- #escape — Liquid::StandardFilters
- #escape_once — Liquid::StandardFilters
- #evaluate — Liquid::ElseCondition
- #evaluate — Liquid::Context
- #evaluate — Liquid::RangeLookup
- #evaluate — Liquid::VariableLookup
- #evaluate_filter_expressions — Liquid::Variable
- #expression — Liquid::Parser
- #fetch — Liquid::Registers
- #fetch — Liquid::Registers
- #filter_array — Liquid::StandardFilters
- #filter_method_names — Liquid::Environment
- #find — Liquid::StandardFilters
- #find_index — Liquid::StandardFilters
- #find_variable — Liquid::Context
- #first — Liquid::ForloopDrop
- #first — Liquid::TablerowloopDrop
- #first — Liquid::StandardFilters
- #floor — Liquid::StandardFilters
- #for — Liquid::TemplateFactory
- #for_loop? — Liquid::Render
- #freeze — Liquid::BlockBody
- #freeze — Liquid::Environment
- #full_path — Liquid::LocalFileSystem
- #h — Liquid::StandardFilters
- #handle_error — Liquid::Context
- #handle_invalid_tag_token — Liquid::BlockBody
- #has — Liquid::StandardFilters
- #id? — Liquid::Parser
- #increment! — Liquid::ForloopDrop
- #increment! — Liquid::TablerowloopDrop
- #increment_assign_score — Liquid::ResourceLimits
- #increment_render_score — Liquid::ResourceLimits
- #increment_write_score — Liquid::ResourceLimits
- #index — Liquid::ForloopDrop
- #index — Liquid::TablerowloopDrop
- #index0 — Liquid::ForloopDrop
- #index0 — Liquid::TablerowloopDrop
- #inspect — Liquid::Drop
- #instance_assigns — Liquid::Template
- #internal_error — Liquid::Context
- #interpolate — Liquid::I18n
- #interrupt? — Liquid::Context
- #invoke — Liquid::Context
- #invoke — Liquid::StrainerTemplate
- #invoke_drop — Liquid::Drop
- #join — Liquid::StandardFilters::InputIterator
- #join — Liquid::StandardFilters
- #jump — Liquid::Parser
- #key? — Liquid::Context
- #key? — Liquid::Drop
- #key? — Liquid::Registers
- #key? — Liquid::Registers
- #last — Liquid::ForloopDrop
- #last — Liquid::TablerowloopDrop
- #last — Liquid::StandardFilters
- #lax_parse — Liquid::For
- #lax_parse — Liquid::If
- #lax_parse — Liquid::Variable
- #length — Liquid::Profiler
- #liquid_method_missing — Liquid::Drop
- #locale — Liquid::I18n
- #look — Liquid::Parser
- #lookup_and_evaluate — Liquid::Context
- #lookup_command? — Liquid::VariableLookup
- #lstrip — Liquid::StandardFilters
- #map — Liquid::StandardFilters
- #markup_context — Liquid::Variable
- #markup_context — Liquid::ParserSwitching
- #merge — Liquid::Context
- #message_prefix — Liquid::Error
- #minus — Liquid::StandardFilters
- #modulo — Liquid::StandardFilters
- #monotonic_time — Liquid::Profiler
- #name — Liquid::Tag
- #named? — Liquid::Cycle
- #new_block_body — Liquid::ParseContext
- #new_body — Liquid::Block
- #new_body — Liquid::Document
- #new_isolated_subcontext — Liquid::Context
- #new_isolated_subcontext — Liquid::ContextProfilingHook
- #new_parser — Liquid::ParseContext
- #new_tokenizer — Liquid::ParseContext
- #newline_to_br — Liquid::StandardFilters
- #next_tag_token — Liquid::Tokenizer
- #next_tag_token_with_start — Liquid::Tokenizer
- #next_text_token — Liquid::Tokenizer
- #next_token — Liquid::Tokenizer
- #next_variable_token — Liquid::Tokenizer
- #nil_safe_casecmp — Liquid::StandardFilters
- #nil_safe_compare — Liquid::StandardFilters
- #nodelist — Liquid::Block
- #nodelist — Liquid::Document
- #nodelist — Liquid::Case
- #nodelist — Liquid::Doc
- #nodelist — Liquid::For
- #nodelist — Liquid::If
- #nodelist — Liquid::Raw
- #overflow? — Liquid::Context
- #parse — Liquid::Block
- #parse — Liquid::BlockBody
- #parse — Liquid::Document
- #parse — Liquid::Tag
- #parse — Liquid::Case
- #parse — Liquid::Doc
- #parse — Liquid::For
- #parse — Liquid::If
- #parse — Liquid::Include
- #parse — Liquid::Raw
- #parse — Liquid::Template
- #parse_binary_comparisons — Liquid::If
- #parse_body — Liquid::Block
- #parse_body — Liquid::Document
- #parse_body — Liquid::Comment
- #parse_comparison — Liquid::If
- #parse_expression — Liquid::ParseContext
- #parse_expression — Liquid::Tag
- #parse_expression — Liquid::If
- #parse_filter_expressions — Liquid::Variable
- #parse_filterargs — Liquid::Variable
- #parse_for_document — Liquid::BlockBody
- #parse_for_liquid_tag — Liquid::BlockBody
- #parse_liquid_tag — Liquid::BlockBody
- #parse_raw_tag_body — Liquid::Comment
- #parse_with_selected_parser — Liquid::ParserSwitching
- #partial= — Liquid::ParseContext
- #partial_options — Liquid::ParseContext
- #plus — Liquid::StandardFilters
- #pop — Liquid::Context
- #pop_interrupt — Liquid::Context
- #prepend — Liquid::StandardFilters
- #profile — Liquid::Profiler
- #profile_node — Liquid::Profiler
- #push — Liquid::Context
- #push_block — Liquid::If
- #push_interrupt — Liquid::Context
- #raise_limits_reached — Liquid::ResourceLimits
- #raise_missing_tag_terminator — Liquid::BlockBody
- #raise_missing_variable_terminator — Liquid::BlockBody
- #raise_nested_doc_error — Liquid::Doc
- #raise_property_error — Liquid::StandardFilters
- #raise_tag_never_closed — Liquid::Block
- #raw — Liquid::Tag
- #raw — Liquid::Variable
- #reached? — Liquid::ResourceLimits
- #read_template_file — Liquid::BlankFileSystem
- #read_template_file — Liquid::LocalFileSystem
- #record_else_condition — Liquid::Case
- #record_when_condition — Liquid::Case
- #register_filter — Liquid::Environment
- #register_filters — Liquid::Environment
- #register_tag — Liquid::Environment
- #registers — Liquid::Template
- #reject — Liquid::StandardFilters
- #remove — Liquid::StandardFilters
- #remove_blank_strings — Liquid::BlockBody
- #remove_first — Liquid::StandardFilters
- #remove_last — Liquid::StandardFilters
- #render — Liquid::Block
- #render — Liquid::BlockBody
- #render — Liquid::Document
- #render — Liquid::Tag
- #render — Liquid::Echo
- #render — Liquid::Template
- #render — Liquid::Variable
- #render! — Liquid::Template
- #render_else — Liquid::For
- #render_node — Liquid::BlockBody
- #render_node — Liquid::BlockBodyProfilingHook
- #render_obj_to_output — Liquid::Variable
- #render_segment — Liquid::For
- #render_tag — Liquid::Render
- #render_to_output_buffer — Liquid::BlockBody
- #render_to_output_buffer — Liquid::Document
- #render_to_output_buffer — Liquid::Tag
- #render_to_output_buffer — Liquid::Assign
- #render_to_output_buffer — Liquid::Break
- #render_to_output_buffer — Liquid::Capture
- #render_to_output_buffer — Liquid::Case
- #render_to_output_buffer — Liquid::Comment
- #render_to_output_buffer — Liquid::Continue
- #render_to_output_buffer — Liquid::Cycle
- #render_to_output_buffer — Liquid::Decrement
- #render_to_output_buffer — Liquid::Doc
- #render_to_output_buffer — Liquid::For
- #render_to_output_buffer — Liquid::If
- #render_to_output_buffer — Liquid::Ifchanged
- #render_to_output_buffer — Liquid::Include
- #render_to_output_buffer — Liquid::Increment
- #render_to_output_buffer — Liquid::InlineComment
- #render_to_output_buffer — Liquid::Raw
- #render_to_output_buffer — Liquid::Render
- #render_to_output_buffer — Liquid::TableRow
- #render_to_output_buffer — Liquid::Unless
- #render_to_output_buffer — Liquid::Template
- #render_to_output_buffer — Liquid::Variable
- #render_to_output_buffer — Liquid::DocumentProfilingHook
- #render_to_output_buffer — Liquid::Tag::Disableable
- #render_to_output_buffer — Liquid::Tag::Disabler
- #replace — Liquid::StandardFilters
- #replace_first — Liquid::StandardFilters
- #replace_last — Liquid::StandardFilters
- #reset — Liquid::ResourceLimits
- #reverse — Liquid::StandardFilters::InputIterator
- #reverse — Liquid::StandardFilters
- #rindex — Liquid::ForloopDrop
- #rindex — Liquid::TablerowloopDrop
- #rindex0 — Liquid::ForloopDrop
- #rindex0 — Liquid::TablerowloopDrop
- #round — Liquid::StandardFilters
- #rstrip — Liquid::StandardFilters
- #self_time — Liquid::Profiler::Timing
- #set_attribute — Liquid::For
- #shift — Liquid::Tokenizer
- #shift_normal — Liquid::Tokenizer
- #size — Liquid::StandardFilters
- #slice — Liquid::StandardFilters
- #sort — Liquid::StandardFilters
- #sort_natural — Liquid::StandardFilters
- #split — Liquid::StandardFilters
- #squash_instance_assigns_with_environments — Liquid::Context
- #stack — Liquid::Context
- #state — Liquid::VariableLookup
- #strainer — Liquid::Context
- #strict_parse — Liquid::For
- #strict_parse — Liquid::If
- #strict_parse — Liquid::Variable
- #strict_parse_with_error_context — Liquid::ParserSwitching
- #strict_parse_with_error_mode_fallback — Liquid::ParserSwitching
- #strip — Liquid::StandardFilters
- #strip_html — Liquid::StandardFilters
- #strip_newlines — Liquid::StandardFilters
- #sum — Liquid::StandardFilters
- #t — Liquid::I18n
- #tag_disabled? — Liquid::Context
- #tag_for_name — Liquid::Environment
- #times — Liquid::StandardFilters
- #to_integer — Liquid::RangeLookup
- #to_integer — Liquid::TableRow
- #to_liquid — Liquid::Drop
- #to_s — Liquid::Drop
- #to_s — Liquid::Error
- #tokenize — Liquid::Tokenizer
- #translate — Liquid::I18n
- #truncate — Liquid::StandardFilters
- #truncatewords — Liquid::StandardFilters
- #try_variable_find_in_environments — Liquid::Context
- #uniq — Liquid::StandardFilters::InputIterator
- #uniq — Liquid::StandardFilters
- #unknown_tag — Liquid::Block
- #unknown_tag — Liquid::Document
- #unknown_tag — Liquid::Case
- #unknown_tag — Liquid::Comment
- #unknown_tag — Liquid::For
- #unknown_tag — Liquid::If
- #upcase — Liquid::StandardFilters
- #url_decode — Liquid::StandardFilters
- #url_encode — Liquid::StandardFilters
- #variable_lookups — Liquid::Parser
- #variables_from_string — Liquid::Cycle
- #visit — Liquid::ParseTreeVisitor
- #warnings — Liquid::Context
- #where — Liquid::StandardFilters
- #whitespace_handler — Liquid::BlockBody
- #with_capture — Liquid::ResourceLimits
- #with_disabled_tags — Liquid::Context