Beispiel #1
0
        public void Init(IValueProvider valueProvider, IPathProvider pathProvider)
        {
            var needAttr = htmlElement.htmlAttribute()
                           .ToDictionary(
                key => key.htmlAttributeName().TAG_NAME().GetText().ToUpper(),
                value => new HtmlAttributeManager(value).Value
                );

            if (needAttr["REL"]?.ToUpper() != "STYLESHEET")
            {
                return;
            }

            var fileName = needAttr["HREF"];

            if (fileName == null)
            {
                return;
            }

            string path = pathProvider.GetPathFile(fileName);

            File = valueProvider.GetFile(path);
            if (File == null)
            {
                return;
            }

            htmlElement.AddChild(new BufferValueContext <File>(htmlElement, File));
        }
Beispiel #2
0
            public override object VisitHtmlElement([NotNull] HtmlElementContext context)
            {
                var content = context.htmlContent();
                var name    = context.htmlTagName(0)?.GetText();

                if (name == null || name.ToUpper() != "HEAD")
                {
                    return(base.VisitHtmlElement(context));
                }
                HtmlElemFactory factory = new HtmlElemFactory();
                var             space   = new CommonToken(SEA_WS, " ");

                foreach (var item in files)
                {
                    HtmlElementContext elem = new HtmlElementContext(content, 0);
                    elem.AddChild(new CommonToken(TAG_OPEN, "<"));
                    elem.AddChild(factory.CreateTagName(elem, "link"));

                    elem.AddChild(space);
                    var type = factory.CreateAttribute(elem, "type", "text/css");
                    elem.AddChild(type);

                    elem.AddChild(space);
                    var rel = factory.CreateAttribute(elem, "rel", "styleSheet");
                    elem.AddChild(rel);

                    elem.AddChild(space);
                    var href = factory.CreateAttribute(elem, "href", item.FileName);
                    elem.AddChild(href);

                    elem.AddChild(new CommonToken(TAG_SLASH_CLOSE, "/>"));

                    content.AddChild(elem);
                }
                return(null);
            }
            public override object VisitHtmlElement([NotNull] HtmlElementContext context)
            {
                var content = context.htmlContent();
                var name    = context.htmlTagName(0)?.GetText();

                if (name == null || name.ToUpper() != "BODY")
                {
                    return(base.VisitHtmlElement(context));
                }

                HtmlElemFactory factory = new HtmlElemFactory();

                foreach (var item in files)
                {
                    HtmlElementContext elem   = new HtmlElementContext(content, 0);
                    ScriptContext      script = new ScriptContext(elem, 0);
                    script.AddChild(new CommonToken(RULE_script, "<script"));
                    script.AddChild(new CommonToken(SEA_WS, " "));

                    var attribute = factory.CreateAttribute(script, "src", item.FileName);
                    script.AddChild(attribute);

                    script.AddChild(new CommonToken(TAG_CLOSE, ">"));

                    script.AddChild(new HtmlContentContext(script, 0));
                    script.AddChild(new CommonToken(TAG_OPEN, "<"));
                    script.AddChild(new CommonToken(TAG_SLASH, "/"));
                    script.AddChild(factory.CreateTagName(script, "script"));
                    script.AddChild(new CommonToken(TAG_CLOSE, ">"));

                    elem.AddChild(script);

                    content.AddChild(elem);
                }
                return(null);
            }