示例#1
0
        /// <summary>
        /// Gets the markup for the tag based upon the passed in parameters.
        /// </summary>
        /// <param name="currentPage">The current page.</param>
        /// <param name="parameters">The parameters.</param>
        /// <returns></returns>
        public override string GetMarkup(IContent currentPage, IDictionary<string, string> parameters)
        {
            var src = parameters["image"];

            if (!src.StartsWith("http") && !src.StartsWith("/"))
            {
                var image = currentPage.Images().SingleOrDefault(x => x.Slug == src);
                if (image != null)
                {
                    src = image.Url();
                }
            }

            if (parameters.ContainsKey("width"))
                src += ((src.IndexOf("?", StringComparison.InvariantCulture) == -1) ? "?" : "&") + "width=" + parameters["width"];

            if (parameters.ContainsKey("height"))
                src += ((src.IndexOf("?", StringComparison.InvariantCulture) == -1) ? "?" : "&") + "height=" + parameters["height"];

            if (parameters.ContainsKey("mode"))
                src += ((src.IndexOf("?", StringComparison.InvariantCulture) == -1) ? "?" : "&") + "mode=" + parameters["mode"];

            var sb = new StringBuilder();
            sb.AppendFormat("<img src=\"{0}\"", src);

            if (parameters.ContainsKey("alt"))
                sb.AppendFormat(" alt=\"{0}\"", parameters["alt"]);

            if (parameters.ContainsKey("title"))
                sb.AppendFormat(" title=\"{0}\"", parameters["title"]);

            if (parameters.ContainsKey("class"))
                sb.AppendFormat(" class=\"{0}\"", parameters["class"]);

            if (parameters.ContainsKey("width"))
                sb.AppendFormat(" width=\"{0}\"", parameters["width"]);

            if (parameters.ContainsKey("height"))
                sb.AppendFormat(" height=\"{0}\"", parameters["height"]);

            sb.Append(" />");

            if(parameters.ContainsKey("link"))
            {
                parameters.AddOrUpdate("text", sb.ToString());
                return new LinkTag().GetMarkup(currentPage, parameters);
            }

            return sb.ToString();
        }
示例#2
0
        /// <summary>
        /// Gets the markup for the tag based upon the passed in parameters.
        /// </summary>
        /// <param name="currentPage">The current page.</param>
        /// <param name="parameters">The parameters.</param>
        /// <returns></returns>
        public override string GetMarkup(IContent currentPage, IDictionary<string, string> parameters)
        {
            parameters.AddOrUpdate("link", parameters["a"]);

            return base.GetMarkup(currentPage, parameters);
        }