anchor.diff:                          end, [Module:source() | Module:dependencies()]),
                       TagHelpers = lists:map(fun erlang:list_to_atom/1, boss_files:view_tag_helper_list()),
                       FilterHelpers = lists:map(fun erlang:list_to_atom/1, boss_files:view_filter_helper_list()),
  -                    module_older_than(Module, Dependencies ++ TagHelpers ++ FilterHelpers);
  +                    ExtraTagHelpers = boss_env:get_env(template_tag_modules, []),
  +                    ExtraFilterHelpers = boss_env:get_env(template_filter_modules, []),
  +                    module_older_than(Module, 
  +                        Dependencies ++ TagHelpers ++ FilterHelpers ++ ExtraTagHelpers ++ ExtraFilterHelpers);
                   false ->
                       true
               end,
  
positive.code:     HelperDirModule = view_custom_tags_dir_module(Application),
      TagHelpers = lists:map(fun erlang:list_to_atom/1, boss_files:view_tag_helper_list()),
      FilterHelpers = lists:map(fun erlang:list_to_atom/1, boss_files:view_filter_helper_list()),
      Module = view_module(Application, ViewPath),
      Res = erlydtl_compiler:compile(ViewPath, Module,
          [{doc_root, view_doc_root(ViewPath)}, 
              {custom_tags_modules, lists:reverse([boss_erlydtl_tags, HelperDirModule | TagHelpers])},
              {custom_filters_modules, FilterHelpers},
              {compiler_options, []}, {out_dir, OutDir}, {blocktrans_fun,
                  fun(BlockString, Locale) ->
                          case boss_translator:lookup(TranslatorPid, BlockString, Locale) of
  
negative.code: compile_view_dir_erlydtl(LibPath, Module, OutDir, TranslatorPid) ->
      TagHelpers = lists:map(fun erlang:list_to_atom/1, boss_files:view_tag_helper_list()),
      FilterHelpers = lists:map(fun erlang:list_to_atom/1, boss_files:view_filter_helper_list()),
      ExtraTagHelpers = boss_env:get_env(template_tag_modules, []),
      ExtraFilterHelpers = boss_env:get_env(template_filter_modules, []),
      Res = erlydtl_compiler:compile_dir(LibPath, Module,
          [{doc_root, view_doc_root(LibPath)}, {compiler_options, []}, {out_dir, OutDir}, 
              {custom_tags_modules, TagHelpers ++ ExtraTagHelpers ++ [boss_erlydtl_tags]},
              {custom_filters_modules, FilterHelpers ++ ExtraFilterHelpers},
              {blocktrans_fun, fun(BlockString, Locale) ->
                      case boss_translator:lookup(TranslatorPid, BlockString, Locale) of
                          undefined -> default;
  