protected XElement ParseSdt(ITagProcessor parentProcessor, XElement sdtElement)
        {
            ITagParser parser = null;

            switch (this.GetTagName(sdtElement).ToLower())
            {
            case "htmlcontent":
                parser = new HtmlContentParser();
                break;

            case "text":
                parser = new TextParser();
                break;

            case "table":
                parser = new TableParser();
                break;

            case "repeater":
                parser = new RepeaterParser();
                break;

            case "if":
                parser = new IfParser();
                break;
            }
            return(parser != null?parser.Parse(parentProcessor, sdtElement) : sdtElement);
        }
Esempio n. 2
0
 /// <summary>
 /// 添加一个Tag解析器
 /// </summary>
 /// <param name="parser"></param>
 public void AddParser(ITagParser <P, D> parser)
 {
     if (!this._d.ContainsKey("tag." + parser.TagName))
     {
         SetValue("tag", parser.TagName, parser);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// 添加一个tag
 /// </summary>
 /// <param name="tag"></param>
 public void AddTag(ITagParser tag)
 {
     if (!_hosttag.ContainsKey(tag.TagName))
     {
         _hosttag.Add(tag.TagName, tag);
     }
 }
Esempio n. 4
0
 public UntagFileCommand(ILogger <TagFileCommand> logger, IFilePathExtractor filePathExtractor, IHashService hashService, ITagParser tagParser, Func <File> newFile)
 {
     _logger            = logger;
     _filePathExtractor = filePathExtractor;
     _tagParser         = tagParser;
     _newFile           = newFile;
 }
Esempio n. 5
0
        private void ParseNodes()
        {
            while (_textFormatter.IsNotDocumentEnd())
            {
                if (_normalTagParser.CanParse())
                {
                    _currentParser = _normalTagParser;
                    CreateNewNode();
                }
                else
                {
                    foreach (var parser in _specialTagParsers)
                    {
                        if (parser.CanParse())
                        {
                            _currentParser = parser;
                            CreateNewNode();
                            break;
                        }
                    }
                    ParseAsText();
                }

                //_textFormatter.SkipWhiteSpaces();
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 引擎配置
        /// </summary>
        /// <param name="conf">配置内容</param>
        /// <param name="ctx">默认模板上下文</param>
        public static void Configure(EngineConfig conf, TemplateContext ctx)
        {
            if (conf == null)
            {
                throw new ArgumentNullException("conf");
            }

            if (conf.TagParsers == null)
            {
                conf.TagParsers = conf.TagParsers = Field.RSEOLVER_TYPES;
            }
            _context = ctx;
            ITagParser[] parsers = new ITagParser[conf.TagParsers.Length];

            for (Int32 i = 0; i < conf.TagParsers.Length; i++)
            {
                parsers[i] = (ITagParser)Activator.CreateInstance(Type.GetType(conf.TagParsers[i]));
            }

            ICache cache = null;
            if (!string.IsNullOrEmpty(conf.CachingProvider))
            {
                cache = (ICache)Activator.CreateInstance(Type.GetType(conf.CachingProvider));
            }

            Parser.TagTypeResolver resolver = new Parser.TagTypeResolver(parsers);
            _engineRuntime = new Runtime(resolver,
                cache,
                conf);
        }
Esempio n. 7
0
        /// <summary>
        /// 新增一个解析器
        /// </summary>
        /// <param name="key"></param>
        /// <param name="parser"></param>
        public void AddTagParser(ITagParser parser)
        {
            var k = parser.TagName.ToLower();

            if (!_parser.ContainsKey(k))
            {
                _parser.Add(k, parser);
            }
        }
 public DkimRecordParser(
     ITagParser tagParser,
     IImplicitProvider <Tag> implicitProvider,
     IEvaluator <DkimRecord> ruleEvaluator)
 {
     _tagParser        = tagParser;
     _implicitProvider = implicitProvider;
     _ruleEvaluator    = ruleEvaluator;
 }
Esempio n. 9
0
 /// <summary>
 /// 加载标签分析器
 /// </summary>
 /// <param name="arr">解析器类型</param>
 private static ITagParser[] LoadParsers(string[] arr)
 {
     ITagParser[] list = new ITagParser[arr.Length];
     for (int i = 0; i < arr.Length; i++)
     {
         list[i] = CreateInstance <ITagParser>(Type.GetType(arr[i]));
     }
     return(list);
 }
Esempio n. 10
0
 public DmarcRecordParser(ITagParser tagParser,
                          IRuleEvaluator <DmarcRecord> ruleEvaluator,
                          IImplicitProvider <Tag> implicitProvider,
                          IExplainer <Tag> explainer)
 {
     _tagParser        = tagParser;
     _ruleEvaluator    = ruleEvaluator;
     _implicitProvider = implicitProvider;
     _explainer        = explainer;
 }
 public UserTagService(
     ITagParser tagParser,
     IMapperFactory mapperFactory,
     IUrlRepository urlRepository,
     IUserTagRepository userTagRepository)
 {
     _tagParser = tagParser;
     _mapperFactory = mapperFactory;
     _urlRepository = urlRepository;
     _userTagRepository = userTagRepository;
 }
Esempio n. 12
0
        public TagMarkupBase ParseTag(string markup, int lineNumber, int charPos)
        {
            ITagParser parser = cache.Find(x => x.CanParseTag(markup));

            if (parser == null)
            {
                throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);
            }

            return(parser.ParseTag(markup, lineNumber, charPos));
        }
Esempio n. 13
0
        public SearchQueryVisitor(SQLiteTag sqLiteTag, ITagParser tagParser)
        {
            _sqLiteTag = sqLiteTag;
            _tagParser = tagParser;

            _selectBuilder.AppendLine("SELECT Files.CreatedAt, Files.Hash, Files.Size, FilePaths.Path");
            _selectBuilder.AppendLine("FROM Files");
            _selectBuilder.AppendLine("JOIN FilePaths ON FilePaths.FileId = Files.Id");

            _whereBuilder.Append(WhereStart);
        }
Esempio n. 14
0
    protected override void OnValidate()
    {
        if (!IsActive())
        {
            base.OnValidate();
        }

        _curentTagParser           = _oldVersionTagParser;
        _curentTagParser.InputText = m_Text;
        base.OnValidate();
    }
Esempio n. 15
0
 public TutorialPostService(IUnitOfWork unitOfWork,
                            UserManager <IdentityUser> userManager,
                            IHttpContextAccessor contextAccessor,
                            IMapper mapper,
                            ITagParser tagParser)
 {
     _unitOfWork   = unitOfWork;
     _loggedUserId = userManager.GetUserId(contextAccessor.HttpContext.User);
     _loggedUser   = contextAccessor.HttpContext.User;
     _mapper       = mapper;
     _tagParser    = tagParser;
 }
Esempio n. 16
0
        /// <summary>
        /// 根据标签名称获取标签解析器实例
        /// </summary>
        /// <param name="tagname"></param>
        /// <returns></returns>
        public ITagParser GetTagParser(string tagname)
        {
            ITagParser rtn = null;
            var        k   = tagname.ToLower();

            if (_parser.ContainsKey(k))
            {
                var t = _parser[k];
                rtn = t;
            }
            return(rtn);
        }
Esempio n. 17
0
 public BlogController(
     IUnitOfWork unitOfWork,
     UserManager <IdentityUser> userManager,
     IHttpContextAccessor contextAccessor,
     IMapper mapper,
     ITagParser tagParser)
 {
     _unitOfWork   = unitOfWork;
     _userManager  = userManager;
     _loggedUserId = _userManager.GetUserId(contextAccessor.HttpContext.User);
     _mapper       = mapper;
     _tagParser    = tagParser;
 }
Esempio n. 18
0
        /// <summary>
        /// 将中间解析内容写入context
        /// </summary>
        /// <param name="parser"></param>
        /// <param name="key"></param>
        /// <param name="content"></param>
        public void SetParsedContent(ITagParser parser, string key, object content)
        {
            string k = parser.TagName.ToLower() + "." + key.ToLower();

            if (_content.ContainsKey(k))
            {
                _content[k] = content;
            }
            else
            {
                _content.Add(k, content);
            }
        }
Esempio n. 19
0
 public ScenarioExtractor(
     ISectionExtractor <Given> givenExtractor,
     ISectionExtractor <When> whenExtractor,
     ISectionExtractor <Then> thenExtractor,
     IOutlineParser outlineParser,
     ITagParser tagParser)
 {
     _givenExtractor = givenExtractor;
     _whenExtractor  = whenExtractor;
     _thenExtractor  = thenExtractor;
     _outlineParser  = outlineParser;
     _tagParser      = tagParser;
 }
Esempio n. 20
0
        /// <summary>
        /// 初始化标签分析器
        /// </summary>
        /// <param name="parsers">解析器类型</param>
        private static void InitializationParser(String[] parsers)
        {
            if (parsers == null)
            {
                parsers = Field.RSEOLVER_TYPES;
            }
            ITagParser[] tps = new ITagParser[parsers.Length];

            for (Int32 i = 0; i < tps.Length; i++)
            {
                tps[i] = (ITagParser)Activator.CreateInstance(Type.GetType(parsers[i]));
            }
            _tagResolver = new Parser.TagTypeResolver(tps);
        }
Esempio n. 21
0
 /// <summary>
 /// 装载标签解析器
 /// </summary>
 /// <param name="parser">ITagParser</param>
 /// <param name="index">索引</param>
 public static void RegisterTagParser(ITagParser parser, int index = -1)
 {
     if (Store.Parsers.Contains(parser))
     {
         return;
     }
     if (index < 0)
     {
         Store.Parsers.Add(parser);
     }
     else
     {
         Store.Parsers.IndexOf(parser, index);
     }
 }
Esempio n. 22
0
 public XLinqRepository(
     ILogger <XLinqRepository> logger,
     IBadgeParser badgeParser,
     ICommentParser commentParser,
     IPostHistoryParser postHistoryParser,
     IPostParser postParser,
     ITagParser tagParser,
     IUserParser userParser,
     IVoteParser voteParser)
 {
     this.logger            = logger;
     this.badgeParser       = badgeParser;
     this.commentParser     = commentParser;
     this.postHistoryParser = postHistoryParser;
     this.postParser        = postParser;
     this.tagParser         = tagParser;
     this.userParser        = userParser;
     this.voteParser        = voteParser;
 }
Esempio n. 23
0
        protected override void Init()
        {
            if (ModuleParameter.GetValue("__tags__") != null &&
                ModuleParameter.GetValue("__tags__") is List <ITagParser> )
            {
                var        l      = (List <ITagParser>)ModuleParameter.GetValue("__tags__");
                ITagParser hjstag = null;
                foreach (var t in l)
                {
                    if (t.TagName.ToLower() != "hjs")
                    {
                        ModuleData.Context.AddTagParser(t);
                    }
                    else
                    {
                        hjstag = t;
                    }
                }

                if (hjstag != null)
                {
                    ModuleData.Context.AddTagParser(hjstag);
                }
                else
                {
                    ModuleData.Context.AddTagParser(new HjsTag());
                }
            }
            else
            {
                //按照先后处理标签的顺序进行标签处理
                ModuleData.Context.AddTagParser(new LoadParser());
                ModuleData.Context.AddTagParser(new RefParser());
                ModuleData.Context.AddTagParser(new CopyParser());
                //内嵌标签应优先加载,会用到其它标签的应优先被调用标签加载
                ModuleData.Context.AddTagParser(new OutTag());
                ModuleData.Context.AddTagParser(new IfTag());
                ModuleData.Context.AddTagParser(new ElseIfTag());
                ModuleData.Context.AddTagParser(new ElseTag());
                ModuleData.Context.AddTagParser(new ForTag());
                ModuleData.Context.AddTagParser(new HjsTag());
            }
        }
Esempio n. 24
0
 /// <summary>
 /// 初始化上下文,为后续处理加载对应的解析器,可重载
 /// </summary>
 /// <param name="context"></param>
 protected virtual void Init()
 {
     ModuleData.Context.AddTagParser(new LoadParser());
     ModuleData.Context.AddTagParser(new RefParser());
     ModuleData.Context.AddTagParser(new CopyParser());
     if (!string.IsNullOrEmpty(GlobalCommon.TagCommon.TagAssemblyPath))
     {
         Assembly asm = Assembly.Load(GlobalCommon.TagCommon.TagAssemblyPath);
         Type[]   ts  = asm.GetTypes();
         foreach (Type t in ts)
         {
             if (t.IsSubclassOf(typeof(ITagParser)) && !t.IsAbstract && !t.IsInterface)
             {
                 ITagParser l = (ITagParser)Activator.CreateInstance(t, true);
                 ModuleData.Context.AddTagParser(l);
             }
         }
     }
 }
Esempio n. 25
0
    protected override void OnPopulateMesh(VertexHelper toFill)
    {
        BaseOnPopulateMesh(toFill);
#if UNITY_2019_1_OR_NEWER
        var isNewCalculateWay = CheckIsNewCalculateWay();
        if (isNewCalculateWay)
        {
            _curentTagParser           = _newVersionTagParser;
            _curentTagParser.InputText = m_Text;
        }
#endif
        var vertices = GetCurrentVertices(toFill);
        try
        {
            DrawSprite(toFill, vertices);
            DrawHref(toFill, vertices);
            ClearQuadShowError(toFill);
        }
        catch (Exception e)
        {
            Debug.LogError(e.Message);
        }
    }
Esempio n. 26
0
 public FeatureParser(ITagParser tagParser)
 {
     _tagParser = tagParser;
 }
Esempio n. 27
0
 public RenameTagCommand(ILogger <RenameTagCommand> logger, IConsoleWriter consoleWriter, ITagParser tagParser)
 {
     _logger        = logger;
     _consoleWriter = consoleWriter;
     _tagParser     = tagParser;
 }
Esempio n. 28
0
        /// <summary>
        /// 初始化标签分析器
        /// </summary>
        /// <param name="parsers">解析器类型</param>
        private static void InitializationParser(String[] parsers)
        {
            if (parsers == null)
            {
                parsers = Field.RSEOLVER_TYPES;
            }
            ITagParser[] tps = new ITagParser[parsers.Length];

            for (Int32 i = 0; i < tps.Length; i++)
            {
                tps[i] = (ITagParser)Activator.CreateInstance(Type.GetType(parsers[i]));
            }
            _tagResolver = new Parser.TagTypeResolver(tps);
        }
Esempio n. 29
0
 public MapperFactory(ITagParser tagParser)
 {
     _tagParser = tagParser;
 }
Esempio n. 30
0
 public AddTagCommand(ITagParser tagParser)
 {
     _tagParser = tagParser;
 }
Esempio n. 31
0
 /// <summary>
 /// 添加一个标签分析器
 /// </summary>
 /// <param name="item">标签分析器</param>
 public static void Add(ITagParser item)
 {
     collection.Add(item);
 }
Esempio n. 32
0
 public RemoveTagCommand(ITagParser tagParser, IMainDatabase db, ILogger <RemoveTagCommand> logger)
 {
     _tagParser = tagParser;
     _db        = db;
     _logger    = logger;
 }
Esempio n. 33
0
 /// <summary>
 /// 插入一个标签分析器
 /// </summary>
 /// <param name="index">插入索引</param>
 /// <param name="item">标签分析器</param>
 public static void Insert(Int32 index, ITagParser item)
 {
     collection.Insert(index, item);
 }
Esempio n. 34
0
 public MoveTagCommand(ILogger <RenameTagCommand> logger, ITagParser tagParser)
 {
     _logger    = logger;
     _tagParser = tagParser;
 }
Esempio n. 35
0
 /// <summary>
 /// 添加一个标签分析器
 /// </summary>
 /// <param name="item">标签分析器</param>
 public static void Add(ITagParser item)
 {
     collection.Add(item);
 }
Esempio n. 36
0
 /// <summary>
 /// 插入一个标签分析器
 /// </summary>
 /// <param name="index">插入索引</param>
 /// <param name="item">标签分析器</param>
 public static void Insert(Int32 index, ITagParser item)
 {
     collection.Insert(index, item);
 }