diff --git a/src/AngleSharp.Css.Tests/Styling/BasicStyling.cs b/src/AngleSharp.Css.Tests/Styling/BasicStyling.cs index 9af111fd..fad2e42e 100644 --- a/src/AngleSharp.Css.Tests/Styling/BasicStyling.cs +++ b/src/AngleSharp.Css.Tests/Styling/BasicStyling.cs @@ -163,6 +163,14 @@ public void MinifyRemovesComment() Assert.AreEqual("h1{color:rgba(255, 0, 0, 1)}", result); } + [Test] + public void MinifyMinimizesProperties() + { + var sheet = ParseStyleSheet("a { grid-area: aa / aa / aa / aa }"); + var result = sheet.ToCss(new MinifyStyleFormatter() { MinimizePropertiesValue = true }); + Assert.AreEqual("a{grid-area:aa}", result); + } + [Test] public void MinifyRemovesEmptyStyleRule() { diff --git a/src/AngleSharp.Css/Constants/PropertyNames.cs b/src/AngleSharp.Css/Constants/PropertyNames.cs index 2e79de51..e4e94108 100644 --- a/src/AngleSharp.Css/Constants/PropertyNames.cs +++ b/src/AngleSharp.Css/Constants/PropertyNames.cs @@ -10,1341 +10,1341 @@ public static class PropertyNames /// /// The align-content declaration. /// - public static readonly String AlignContent = "align-content"; + public const String AlignContent = "align-content"; /// /// The align-items declaration. /// - public static readonly String AlignItems = "align-items"; + public const String AlignItems = "align-items"; /// /// The align-baseline declaration. /// - public static readonly String AlignBaseline = "alignment-baseline"; + public const String AlignBaseline = "alignment-baseline"; /// /// The align-self declaration. /// - public static readonly String AlignSelf = "align-self"; + public const String AlignSelf = "align-self"; /// /// The accelerator declaration. /// - public static readonly String Accelerator = "accelerator"; + public const String Accelerator = "accelerator"; /// /// The animation declaration. /// - public static readonly String Animation = "animation"; + public const String Animation = "animation"; /// /// The animation-delay declaration. /// - public static readonly String AnimationDelay = "animation-delay"; + public const String AnimationDelay = "animation-delay"; /// /// The animation-direction declaration. /// - public static readonly String AnimationDirection = "animation-direction"; + public const String AnimationDirection = "animation-direction"; /// /// The animation-duration declaration. /// - public static readonly String AnimationDuration = "animation-duration"; + public const String AnimationDuration = "animation-duration"; /// /// The animation-fill-mode declaration. /// - public static readonly String AnimationFillMode = "animation-fill-mode"; + public const String AnimationFillMode = "animation-fill-mode"; /// /// The animation-iteration-count declaration. /// - public static readonly String AnimationIterationCount = "animation-iteration-count"; + public const String AnimationIterationCount = "animation-iteration-count"; /// /// The animation-name declaration. /// - public static readonly String AnimationName = "animation-name"; + public const String AnimationName = "animation-name"; /// /// The animation-play-state declaration. /// - public static readonly String AnimationPlayState = "animation-play-state"; + public const String AnimationPlayState = "animation-play-state"; /// /// The animation-timing-function declaration. /// - public static readonly String AnimationTimingFunction = "animation-timing-function"; + public const String AnimationTimingFunction = "animation-timing-function"; /// /// The background-attachment declaration. /// - public static readonly String BackgroundAttachment = "background-attachment"; + public const String BackgroundAttachment = "background-attachment"; /// /// The background-color declaration. /// - public static readonly String BackgroundColor = "background-color"; + public const String BackgroundColor = "background-color"; /// /// The background-clip declaration. /// - public static readonly String BackgroundClip = "background-clip"; + public const String BackgroundClip = "background-clip"; /// /// The background-origin declaration. /// - public static readonly String BackgroundOrigin = "background-origin"; + public const String BackgroundOrigin = "background-origin"; /// /// The background-size declaration. /// - public static readonly String BackgroundSize = "background-size"; + public const String BackgroundSize = "background-size"; /// /// The background-image declaration. /// - public static readonly String BackgroundImage = "background-image"; + public const String BackgroundImage = "background-image"; /// /// The background-position declaration. /// - public static readonly String BackgroundPosition = "background-position"; + public const String BackgroundPosition = "background-position"; /// /// The background-position-x declaration. /// - public static readonly String BackgroundPositionX = "background-position-x"; + public const String BackgroundPositionX = "background-position-x"; /// /// The background-position-y declaration. /// - public static readonly String BackgroundPositionY = "background-position-y"; + public const String BackgroundPositionY = "background-position-y"; /// /// The background-repeat declaration. /// - public static readonly String BackgroundRepeat = "background-repeat"; + public const String BackgroundRepeat = "background-repeat"; /// /// The background-repeat-x declaration. /// - public static readonly String BackgroundRepeatX = "background-repeat-x"; + public const String BackgroundRepeatX = "background-repeat-x"; /// /// The background-repeat-y declaration. /// - public static readonly String BackgroundRepeatY = "background-repeat-y"; + public const String BackgroundRepeatY = "background-repeat-y"; /// /// The background declaration. /// - public static readonly String Background = "background"; + public const String Background = "background"; /// /// The behavior declaration. /// - public static readonly String Behavior = "behavior"; + public const String Behavior = "behavior"; /// /// The baseline-shift declaration. /// - public static readonly String BaselineShift = "baseline-shift"; + public const String BaselineShift = "baseline-shift"; /// /// The border-color declaration. /// - public static readonly String BorderColor = "border-color"; + public const String BorderColor = "border-color"; /// /// The border-spacing declaration. /// - public static readonly String BorderSpacing = "border-spacing"; + public const String BorderSpacing = "border-spacing"; /// /// The border-collapse declaration. /// - public static readonly String BorderCollapse = "border-collapse"; + public const String BorderCollapse = "border-collapse"; /// /// The border-style declaration. /// - public static readonly String BorderStyle = "border-style"; + public const String BorderStyle = "border-style"; /// /// The border-radius declaration. /// - public static readonly String BorderRadius = "border-radius"; + public const String BorderRadius = "border-radius"; /// /// The border-top-left-radius declaration. /// - public static readonly String BorderTopLeftRadius = "border-top-left-radius"; + public const String BorderTopLeftRadius = "border-top-left-radius"; /// /// The border-top-right-radius declaration. /// - public static readonly String BorderTopRightRadius = "border-top-right-radius"; + public const String BorderTopRightRadius = "border-top-right-radius"; /// /// The border-bottom-left-radius declaration. /// - public static readonly String BorderBottomLeftRadius = "border-bottom-left-radius"; + public const String BorderBottomLeftRadius = "border-bottom-left-radius"; /// /// The border-bottom-right-radius declaration. /// - public static readonly String BorderBottomRightRadius = "border-bottom-right-radius"; + public const String BorderBottomRightRadius = "border-bottom-right-radius"; /// /// The box-shadow declaration. /// - public static readonly String BoxShadow = "box-shadow"; + public const String BoxShadow = "box-shadow"; /// /// The box-sizing declaration. /// - public static readonly String BoxSizing = "box-sizing"; + public const String BoxSizing = "box-sizing"; /// /// The box-decoration-break declaration. /// - public static readonly String BoxDecorationBreak = "box-decoration-break"; + public const String BoxDecorationBreak = "box-decoration-break"; /// /// The break-after declaration. /// - public static readonly String BreakAfter = "break-after"; + public const String BreakAfter = "break-after"; /// /// The break-before declaration. /// - public static readonly String BreakBefore = "break-before"; + public const String BreakBefore = "break-before"; /// /// The break-inside declaration. /// - public static readonly String BreakInside = "break-inside"; + public const String BreakInside = "break-inside"; /// /// The backface-visibility declaration. /// - public static readonly String BackfaceVisibility = "backface-visibility"; + public const String BackfaceVisibility = "backface-visibility"; /// /// The border-image declaration. /// - public static readonly String BorderImage = "border-image"; + public const String BorderImage = "border-image"; /// /// The border-image-outset declaration. /// - public static readonly String BorderImageOutset = "border-image-outset"; + public const String BorderImageOutset = "border-image-outset"; /// /// The border-image-repeat declaration. /// - public static readonly String BorderImageRepeat = "border-image-repeat"; + public const String BorderImageRepeat = "border-image-repeat"; /// /// The border-image-source declaration. /// - public static readonly String BorderImageSource = "border-image-source"; + public const String BorderImageSource = "border-image-source"; /// /// The border-image-slice declaration. /// - public static readonly String BorderImageSlice = "border-image-slice"; + public const String BorderImageSlice = "border-image-slice"; /// /// The border-image-width declaration. /// - public static readonly String BorderImageWidth = "border-image-width"; + public const String BorderImageWidth = "border-image-width"; /// /// The border-top declaration. /// - public static readonly String BorderTop = "border-top"; + public const String BorderTop = "border-top"; /// /// The border-right declaration. /// - public static readonly String BorderRight = "border-right"; + public const String BorderRight = "border-right"; /// /// The border-bottom declaration. /// - public static readonly String BorderBottom = "border-bottom"; + public const String BorderBottom = "border-bottom"; /// /// The border-left declaration. /// - public static readonly String BorderLeft = "border-left"; + public const String BorderLeft = "border-left"; /// /// The border-top-color declaration. /// - public static readonly String BorderTopColor = "border-top-color"; + public const String BorderTopColor = "border-top-color"; /// /// The border-left-color declaration. /// - public static readonly String BorderLeftColor = "border-left-color"; + public const String BorderLeftColor = "border-left-color"; /// /// The border-right-color declaration. /// - public static readonly String BorderRightColor = "border-right-color"; + public const String BorderRightColor = "border-right-color"; /// /// The border-bottom-color declaration. /// - public static readonly String BorderBottomColor = "border-bottom-color"; + public const String BorderBottomColor = "border-bottom-color"; /// /// The border-top-style declaration. /// - public static readonly String BorderTopStyle = "border-top-style"; + public const String BorderTopStyle = "border-top-style"; /// /// The border-left-style declaration. /// - public static readonly String BorderLeftStyle = "border-left-style"; + public const String BorderLeftStyle = "border-left-style"; /// /// The border-right-style declaration. /// - public static readonly String BorderRightStyle = "border-right-style"; + public const String BorderRightStyle = "border-right-style"; /// /// The border-bottom-style declaration. /// - public static readonly String BorderBottomStyle = "border-bottom-style"; + public const String BorderBottomStyle = "border-bottom-style"; /// /// The border-top-width declaration. /// - public static readonly String BorderTopWidth = "border-top-width"; + public const String BorderTopWidth = "border-top-width"; /// /// The border-left-width declaration. /// - public static readonly String BorderLeftWidth = "border-left-width"; + public const String BorderLeftWidth = "border-left-width"; /// /// The border-right-width declaration. /// - public static readonly String BorderRightWidth = "border-right-width"; + public const String BorderRightWidth = "border-right-width"; /// /// The border-bottom-width declaration. /// - public static readonly String BorderBottomWidth = "border-bottom-width"; + public const String BorderBottomWidth = "border-bottom-width"; /// /// The border-width declaration. /// - public static readonly String BorderWidth = "border-width"; + public const String BorderWidth = "border-width"; /// /// The border declaration. /// - public static readonly String Border = "border"; + public const String Border = "border"; /// /// The bottom declaration. /// - public static readonly String Bottom = "bottom"; + public const String Bottom = "bottom"; /// /// The columns declaration. /// - public static readonly String Columns = "columns"; + public const String Columns = "columns"; /// /// The column-count declaration. /// - public static readonly String ColumnCount = "column-count"; + public const String ColumnCount = "column-count"; /// /// The column-fill declaration. /// - public static readonly String ColumnFill = "column-fill"; + public const String ColumnFill = "column-fill"; /// /// The column-rule declaration. /// - public static readonly String ColumnRule = "column-rule"; + public const String ColumnRule = "column-rule"; /// /// The column-rule-color declaration. /// - public static readonly String ColumnRuleColor = "column-rule-color"; + public const String ColumnRuleColor = "column-rule-color"; /// /// The column-rule-style declaration. /// - public static readonly String ColumnRuleStyle = "column-rule-style"; + public const String ColumnRuleStyle = "column-rule-style"; /// /// The column-rule-width declaration. /// - public static readonly String ColumnRuleWidth = "column-rule-width"; + public const String ColumnRuleWidth = "column-rule-width"; /// /// The column-span declaration. /// - public static readonly String ColumnSpan = "column-span"; + public const String ColumnSpan = "column-span"; /// /// The column-width declaration. /// - public static readonly String ColumnWidth = "column-width"; + public const String ColumnWidth = "column-width"; /// /// The column-gap declaration. /// - public static readonly String ColumnGap = "column-gap"; + public const String ColumnGap = "column-gap"; /// /// The grid-row-gap declaration. /// - public static readonly String RowGap = "row-gap"; + public const String RowGap = "row-gap"; /// /// The gap declaration. /// - public static readonly String Gap = "gap"; + public const String Gap = "gap"; /// /// The caption-side declaration. /// - public static readonly String CaptionSide = "caption-side"; + public const String CaptionSide = "caption-side"; /// /// The clear declaration. /// - public static readonly String Clear = "clear"; + public const String Clear = "clear"; /// /// The clip declaration. /// - public static readonly String Clip = "clip"; + public const String Clip = "clip"; /// /// The clip-left declaration. /// - public static readonly String ClipLeft = "clip-left"; + public const String ClipLeft = "clip-left"; /// /// The clip-top declaration. /// - public static readonly String ClipTop = "clip-top"; + public const String ClipTop = "clip-top"; /// /// The clip-right declaration. /// - public static readonly String ClipRight = "clip-right"; + public const String ClipRight = "clip-right"; /// /// The clip-bottom declaration. /// - public static readonly String ClipBottom = "clip-bottom"; + public const String ClipBottom = "clip-bottom"; /// /// The clip-path declaration. /// - public static readonly String ClipPath = "clip-path"; + public const String ClipPath = "clip-path"; /// /// The clip-rule declaration. /// - public static readonly String ClipRule = "clip-rule"; + public const String ClipRule = "clip-rule"; /// /// The color declaration. /// - public static readonly String Color = "color"; + public const String Color = "color"; /// /// The color-interpolation-filters declaration. /// - public static readonly String ColorInterpolationFilters = "color-interpolation-filters"; + public const String ColorInterpolationFilters = "color-interpolation-filters"; /// /// The content declaration. /// - public static readonly String Content = "content"; + public const String Content = "content"; /// /// The counter-increment declaration. /// - public static readonly String CounterIncrement = "counter-increment"; + public const String CounterIncrement = "counter-increment"; /// /// The counter-reset declaration. /// - public static readonly String CounterReset = "counter-reset"; + public const String CounterReset = "counter-reset"; /// /// The cursor declaration. /// - public static readonly String Cursor = "cursor"; + public const String Cursor = "cursor"; /// /// The direction declaration. /// - public static readonly String Direction = "direction"; + public const String Direction = "direction"; /// /// The display declaration. /// - public static readonly String Display = "display"; + public const String Display = "display"; /// /// The dominant-baseline declaration. /// - public static readonly String DominantBaseline = "dominant-baseline"; + public const String DominantBaseline = "dominant-baseline"; /// /// The empty-cells declaration. /// - public static readonly String EmptyCells = "empty-cells"; + public const String EmptyCells = "empty-cells"; /// /// The enable-background declaration. /// - public static readonly String EnableBackground = "enable-background"; + public const String EnableBackground = "enable-background"; /// /// The fill declaration. /// - public static readonly String Fill = "fill"; + public const String Fill = "fill"; /// /// The fill-opacity declaration. /// - public static readonly String FillOpacity = "fill-opacity"; + public const String FillOpacity = "fill-opacity"; /// /// The fill-rule declaration. /// - public static readonly String FillRule = "fill-rule"; + public const String FillRule = "fill-rule"; /// /// The filter declaration. /// - public static readonly String Filter = "filter"; + public const String Filter = "filter"; /// /// The flex declaration. /// - public static readonly String Flex = "flex"; + public const String Flex = "flex"; /// /// The flex-basis declaration. /// - public static readonly String FlexBasis = "flex-basis"; + public const String FlexBasis = "flex-basis"; /// /// The flex-direction declaration. /// - public static readonly String FlexDirection = "flex-direction"; + public const String FlexDirection = "flex-direction"; /// /// The flex-flow declaration. /// - public static readonly String FlexFlow = "flex-flow"; + public const String FlexFlow = "flex-flow"; /// /// The flex-grow declaration. /// - public static readonly String FlexGrow = "flex-grow"; + public const String FlexGrow = "flex-grow"; /// /// The flex-shrink declaration. /// - public static readonly String FlexShrink = "flex-shrink"; + public const String FlexShrink = "flex-shrink"; /// /// The flex-wrap declaration. /// - public static readonly String FlexWrap = "flex-wrap"; + public const String FlexWrap = "flex-wrap"; /// /// The float declaration. /// - public static readonly String Float = "float"; + public const String Float = "float"; /// /// The font-family declaration. /// - public static readonly String FontFamily = "font-family"; + public const String FontFamily = "font-family"; /// /// The font-feature-settings declaration. /// - public static readonly String FontFeatureSettings = "font-feature-settings"; + public const String FontFeatureSettings = "font-feature-settings"; /// /// The font-size declaration. /// - public static readonly String FontSize = "font-size"; + public const String FontSize = "font-size"; /// /// The font-size-adjust declaration. /// - public static readonly String FontSizeAdjust = "font-size-adjust"; + public const String FontSizeAdjust = "font-size-adjust"; /// /// The font-style declaration. /// - public static readonly String FontStyle = "font-style"; + public const String FontStyle = "font-style"; /// /// The font-stretch declaration. /// - public static readonly String FontStretch = "font-stretch"; + public const String FontStretch = "font-stretch"; /// /// The font-variant declaration. /// - public static readonly String FontVariant = "font-variant"; + public const String FontVariant = "font-variant"; /// /// The font-weight declaration. /// - public static readonly String FontWeight = "font-weight"; + public const String FontWeight = "font-weight"; /// /// The font declaration. /// - public static readonly String Font = "font"; + public const String Font = "font"; /// /// The glyph-orientation-horizontal declaration. /// - public static readonly String GlyphOrientationHorizontal = "glyph-orientation-horizontal"; + public const String GlyphOrientationHorizontal = "glyph-orientation-horizontal"; /// /// The glyph-orientation-vertical declaration. /// - public static readonly String GlyphOrientationVertical = "glyph-orientation-vertical"; + public const String GlyphOrientationVertical = "glyph-orientation-vertical"; /// /// The height declaration. /// - public static readonly String Height = "height"; + public const String Height = "height"; /// /// The ime-mode declaration. /// - public static readonly String ImeMode = "ime-mode"; + public const String ImeMode = "ime-mode"; /// /// The justify-content declaration. /// - public static readonly String JustifyContent = "justify-content"; + public const String JustifyContent = "justify-content"; /// /// The layout-grid declaration. /// - public static readonly String LayoutGrid = "layout-grid"; + public const String LayoutGrid = "layout-grid"; /// /// The layout-grid-char declaration. /// - public static readonly String LayoutGridChar = "layout-grid-char"; + public const String LayoutGridChar = "layout-grid-char"; /// /// The layout-grid-type declaration. /// - public static readonly String LayoutGridType = "layout-grid-type"; + public const String LayoutGridType = "layout-grid-type"; /// /// The layout-grid-mode declaration. /// - public static readonly String LayoutGridMode = "layout-grid-mode"; + public const String LayoutGridMode = "layout-grid-mode"; /// /// The layout-grid-line declaration. /// - public static readonly String LayoutGridLine = "layout-grid-line"; + public const String LayoutGridLine = "layout-grid-line"; /// /// The grid-template-rows declaration. /// - public static readonly String GridTemplateRows = "grid-template-rows"; + public const String GridTemplateRows = "grid-template-rows"; /// /// The grid-template-columns declaration. /// - public static readonly String GridTemplateColumns = "grid-template-columns"; + public const String GridTemplateColumns = "grid-template-columns"; /// /// The grid-template-areas declaration. /// - public static readonly String GridTemplateAreas = "grid-template-areas"; + public const String GridTemplateAreas = "grid-template-areas"; /// /// The grid-template declaration. /// - public static readonly String GridTemplate = "grid-template"; + public const String GridTemplate = "grid-template"; /// /// The grid-auto-columns declaration. /// - public static readonly String GridAutoColumns = "grid-auto-columns"; + public const String GridAutoColumns = "grid-auto-columns"; /// /// The grid-auto-rows declaration. /// - public static readonly String GridAutoRows = "grid-auto-rows"; + public const String GridAutoRows = "grid-auto-rows"; /// /// The grid-auto-flow declaration. /// - public static readonly String GridAutoFlow = "grid-auto-flow"; + public const String GridAutoFlow = "grid-auto-flow"; /// /// The grid declaration. /// - public static readonly String Grid = "grid"; + public const String Grid = "grid"; /// /// The grid-row-start declaration. /// - public static readonly String GridRowStart = "grid-row-start"; + public const String GridRowStart = "grid-row-start"; /// /// The grid-column-start declaration. /// - public static readonly String GridColumnStart = "grid-column-start"; + public const String GridColumnStart = "grid-column-start"; /// /// The grid-row-end declaration. /// - public static readonly String GridRowEnd = "grid-row-end"; + public const String GridRowEnd = "grid-row-end"; /// /// The grid-column-end declaration. /// - public static readonly String GridColumnEnd = "grid-column-end"; + public const String GridColumnEnd = "grid-column-end"; /// /// The grid-row declaration. /// - public static readonly String GridRow = "grid-row"; + public const String GridRow = "grid-row"; /// /// The grid-column declaration. /// - public static readonly String GridColumn = "grid-column"; + public const String GridColumn = "grid-column"; /// /// The grid-area declaration. /// - public static readonly String GridArea = "grid-area"; + public const String GridArea = "grid-area"; /// /// The grid-row-gap declaration. /// - public static readonly String GridRowGap = "grid-row-gap"; + public const String GridRowGap = "grid-row-gap"; /// /// The grid-column-gap declaration. /// - public static readonly String GridColumnGap = "grid-column-gap"; + public const String GridColumnGap = "grid-column-gap"; /// /// The grid-gap declaration. /// - public static readonly String GridGap = "grid-gap"; + public const String GridGap = "grid-gap"; /// /// The left declaration. /// - public static readonly String Left = "left"; + public const String Left = "left"; /// /// The letter-spacing declaration. /// - public static readonly String LetterSpacing = "letter-spacing"; + public const String LetterSpacing = "letter-spacing"; /// /// The line-height declaration. /// - public static readonly String LineHeight = "line-height"; + public const String LineHeight = "line-height"; /// /// The list-style-image declaration. /// - public static readonly String ListStyleImage = "list-style-image"; + public const String ListStyleImage = "list-style-image"; /// /// The list-style-position declaration. /// - public static readonly String ListStylePosition = "list-style-position"; + public const String ListStylePosition = "list-style-position"; /// /// The list-style-type declaration. /// - public static readonly String ListStyleType = "list-style-type"; + public const String ListStyleType = "list-style-type"; /// /// The list-style declaration. /// - public static readonly String ListStyle = "list-style"; + public const String ListStyle = "list-style"; /// /// The margin-right declaration. /// - public static readonly String MarginRight = "margin-right"; + public const String MarginRight = "margin-right"; /// /// The margin-left declaration. /// - public static readonly String MarginLeft = "margin-left"; + public const String MarginLeft = "margin-left"; /// /// The margin-top declaration. /// - public static readonly String MarginTop = "margin-top"; + public const String MarginTop = "margin-top"; /// /// The margin-bottom declaration. /// - public static readonly String MarginBottom = "margin-bottom"; + public const String MarginBottom = "margin-bottom"; /// /// The margin declaration. /// - public static readonly String Margin = "margin"; + public const String Margin = "margin"; /// /// The marker declaration. /// - public static readonly String Marker = "marker"; + public const String Marker = "marker"; /// /// The marker-end declaration. /// - public static readonly String MarkerEnd = "marker-end"; + public const String MarkerEnd = "marker-end"; /// /// The marker-mid declaration. /// - public static readonly String MarkerMid = "marker-mid"; + public const String MarkerMid = "marker-mid"; /// /// The marker-start declaration. /// - public static readonly String MarkerStart = "marker-start"; + public const String MarkerStart = "marker-start"; /// /// The mask declaration. /// - public static readonly String Mask = "mask"; + public const String Mask = "mask"; /// /// The max-height declaration. /// - public static readonly String MaxHeight = "max-height"; + public const String MaxHeight = "max-height"; /// /// The max-width declaration. /// - public static readonly String MaxWidth = "max-width"; + public const String MaxWidth = "max-width"; /// /// The min-height declaration. /// - public static readonly String MinHeight = "min-height"; + public const String MinHeight = "min-height"; /// /// The min-width declaration. /// - public static readonly String MinWidth = "min-width"; + public const String MinWidth = "min-width"; /// /// The opacity declaration. /// - public static readonly String Opacity = "opacity"; + public const String Opacity = "opacity"; /// /// The order declaration. /// - public static readonly String Order = "order"; + public const String Order = "order"; /// /// The orphans declaration. /// - public static readonly String Orphans = "orphans"; + public const String Orphans = "orphans"; /// /// The outline-color declaration. /// - public static readonly String OutlineColor = "outline-color"; + public const String OutlineColor = "outline-color"; /// /// The outline-style declaration. /// - public static readonly String OutlineStyle = "outline-style"; + public const String OutlineStyle = "outline-style"; /// /// The outline-width declaration. /// - public static readonly String OutlineWidth = "outline-width"; + public const String OutlineWidth = "outline-width"; /// /// The outline declaration. /// - public static readonly String Outline = "outline"; + public const String Outline = "outline"; /// /// The overflow declaration. /// - public static readonly String Overflow = "overflow"; + public const String Overflow = "overflow"; /// /// The overflow-x declaration. /// - public static readonly String OverflowX = "overflow-x"; + public const String OverflowX = "overflow-x"; /// /// The overflow-y declaration. /// - public static readonly String OverflowY = "overflow-y"; + public const String OverflowY = "overflow-y"; /// /// The overflow-wrap declaration. /// - public static readonly String OverflowWrap = "overflow-wrap"; + public const String OverflowWrap = "overflow-wrap"; /// /// The padding-top declaration. /// - public static readonly String PaddingTop = "padding-top"; + public const String PaddingTop = "padding-top"; /// /// The padding-right declaration. /// - public static readonly String PaddingRight = "padding-right"; + public const String PaddingRight = "padding-right"; /// /// The padding-left declaration. /// - public static readonly String PaddingLeft = "padding-left"; + public const String PaddingLeft = "padding-left"; /// /// The padding-bottom declaration. /// - public static readonly String PaddingBottom = "padding-bottom"; + public const String PaddingBottom = "padding-bottom"; /// /// The padding declaration. /// - public static readonly String Padding = "padding"; + public const String Padding = "padding"; /// /// The page-break-after declaration. /// - public static readonly String PageBreakAfter = "page-break-after"; + public const String PageBreakAfter = "page-break-after"; /// /// The page-break-before declaration. /// - public static readonly String PageBreakBefore = "page-break-before"; + public const String PageBreakBefore = "page-break-before"; /// /// The page-break-inside declaration. /// - public static readonly String PageBreakInside = "page-break-inside"; + public const String PageBreakInside = "page-break-inside"; /// /// The perspective declaration. /// - public static readonly String Perspective = "perspective"; + public const String Perspective = "perspective"; /// /// The perspective-origin declaration. /// - public static readonly String PerspectiveOrigin = "perspective-origin"; + public const String PerspectiveOrigin = "perspective-origin"; /// /// The pointer-events declaration. /// - public static readonly String PointerEvents = "pointer-events"; + public const String PointerEvents = "pointer-events"; /// /// The position declaration. /// - public static readonly String Position = "position"; + public const String Position = "position"; /// /// The quotes declaration. /// - public static readonly String Quotes = "quotes"; + public const String Quotes = "quotes"; /// /// The resize declaration. /// - public static readonly String Resize = "resize"; + public const String Resize = "resize"; /// /// The right declaration. /// - public static readonly String Right = "right"; + public const String Right = "right"; /// /// The ruby-align declaration. /// - public static readonly String RubyAlign = "ruby-align"; + public const String RubyAlign = "ruby-align"; /// /// The ruby-overhang declaration. /// - public static readonly String RubyOverhang = "ruby-overhang"; + public const String RubyOverhang = "ruby-overhang"; /// /// The ruby-position declaration. /// - public static readonly String RubyPosition = "ruby-position"; + public const String RubyPosition = "ruby-position"; /// /// The scrollbar3d-light-color declaration. /// - public static readonly String Scrollbar3dLightColor = "scrollbar3d-light-color"; + public const String Scrollbar3dLightColor = "scrollbar3d-light-color"; /// /// The scrollbar-base-color declaration. /// - public static readonly String ScrollbarBaseColor = "scrollbar-base-color"; + public const String ScrollbarBaseColor = "scrollbar-base-color"; /// /// The scrollbar-arrow-color declaration. /// - public static readonly String ScrollbarArrowColor = "scrollbar-arrow-color"; + public const String ScrollbarArrowColor = "scrollbar-arrow-color"; /// /// The scrollbar-dark-shadow-color declaration. /// - public static readonly String ScrollbarDarkShadowColor = "scrollbar-dark-shadow-color"; + public const String ScrollbarDarkShadowColor = "scrollbar-dark-shadow-color"; /// /// The scrollbar-face-color declaration. /// - public static readonly String ScrollbarFaceColor = "scrollbar-face-color"; + public const String ScrollbarFaceColor = "scrollbar-face-color"; /// /// The scrollbar-highlight-color declaration. /// - public static readonly String ScrollbarHighlightColor = "scrollbar-highlight-color"; + public const String ScrollbarHighlightColor = "scrollbar-highlight-color"; /// /// The scrollbar-shadow-color declaration. /// - public static readonly String ScrollbarShadowColor = "scrollbar-shadow-color"; + public const String ScrollbarShadowColor = "scrollbar-shadow-color"; /// /// The scrollbar-track-color declaration. /// - public static readonly String ScrollbarTrackColor = "scrollbar-track-color"; + public const String ScrollbarTrackColor = "scrollbar-track-color"; /// /// The stroke declaration. /// - public static readonly String Stroke = "stroke"; + public const String Stroke = "stroke"; /// /// The stroke-dasharray declaration. /// - public static readonly String StrokeDasharray = "stroke-dasharray"; + public const String StrokeDasharray = "stroke-dasharray"; /// /// The stroke-dashoffset declaration. /// - public static readonly String StrokeDashoffset = "stroke-dashoffset"; + public const String StrokeDashoffset = "stroke-dashoffset"; /// /// The stroke-linecap declaration. /// - public static readonly String StrokeLinecap = "stroke-linecap"; + public const String StrokeLinecap = "stroke-linecap"; /// /// The stroke-linejoin declaration. /// - public static readonly String StrokeLinejoin = "stroke-linejoin"; + public const String StrokeLinejoin = "stroke-linejoin"; /// /// The stroke-miterlimit declaration. /// - public static readonly String StrokeMiterlimit = "stroke-miterlimit"; + public const String StrokeMiterlimit = "stroke-miterlimit"; /// /// The stroke-opacity declaration. /// - public static readonly String StrokeOpacity = "stroke-opacity"; + public const String StrokeOpacity = "stroke-opacity"; /// /// The stroke-width declaration. /// - public static readonly String StrokeWidth = "stroke-width"; + public const String StrokeWidth = "stroke-width"; /// /// The table-layout declaration. /// - public static readonly String TableLayout = "table-layout"; + public const String TableLayout = "table-layout"; /// /// The text-align declaration. /// - public static readonly String TextAlign = "text-align"; + public const String TextAlign = "text-align"; /// /// The text-align-last declaration. /// - public static readonly String TextAlignLast = "text-align-last"; + public const String TextAlignLast = "text-align-last"; /// /// The text-anchor declaration. /// - public static readonly String TextAnchor = "text-anchor"; + public const String TextAnchor = "text-anchor"; /// /// The text-autospace declaration. /// - public static readonly String TextAutospace = "text-autospace"; + public const String TextAutospace = "text-autospace"; /// /// The text-decoration declaration. /// - public static readonly String TextDecoration = "text-decoration"; + public const String TextDecoration = "text-decoration"; /// /// The text-decoration-color declaration. /// - public static readonly String TextDecorationColor = "text-decoration-color"; + public const String TextDecorationColor = "text-decoration-color"; /// /// The text-decoration-line declaration. /// - public static readonly String TextDecorationLine = "text-decoration-line"; + public const String TextDecorationLine = "text-decoration-line"; /// /// The text-decoration-style declaration. /// - public static readonly String TextDecorationStyle = "text-decoration-style"; + public const String TextDecorationStyle = "text-decoration-style"; /// /// The text-indent declaration. /// - public static readonly String TextIndent = "text-indent"; + public const String TextIndent = "text-indent"; /// /// The text-justify declaration. /// - public static readonly String TextJustify = "text-justify"; + public const String TextJustify = "text-justify"; /// /// The text-overflow declaration. /// - public static readonly String TextOverflow = "text-overflow"; + public const String TextOverflow = "text-overflow"; /// /// The text-shadow declaration. /// - public static readonly String TextShadow = "text-shadow"; + public const String TextShadow = "text-shadow"; /// /// The text-transform declaration. /// - public static readonly String TextTransform = "text-transform"; + public const String TextTransform = "text-transform"; /// /// The text-underline-position declaration. /// - public static readonly String TextUnderlinePosition = "text-underline-position"; + public const String TextUnderlinePosition = "text-underline-position"; /// /// The transform declaration. /// - public static readonly String Transform = "transform"; + public const String Transform = "transform"; /// /// The transform-origin declaration. /// - public static readonly String TransformOrigin = "transform-origin"; + public const String TransformOrigin = "transform-origin"; /// /// The transform-style declaration. /// - public static readonly String TransformStyle = "transform-style"; + public const String TransformStyle = "transform-style"; /// /// The transition declaration. /// - public static readonly String Transition = "transition"; + public const String Transition = "transition"; /// /// The transition-delay declaration. /// - public static readonly String TransitionDelay = "transition-delay"; + public const String TransitionDelay = "transition-delay"; /// /// The transition-duration declaration. /// - public static readonly String TransitionDuration = "transition-duration"; + public const String TransitionDuration = "transition-duration"; /// /// The transition-timing-function declaration. /// - public static readonly String TransitionTimingFunction = "transition-timing-function"; + public const String TransitionTimingFunction = "transition-timing-function"; /// /// The transition-property declaration. /// - public static readonly String TransitionProperty = "transition-property"; + public const String TransitionProperty = "transition-property"; /// /// The top declaration. /// - public static readonly String Top = "top"; + public const String Top = "top"; /// /// The unicode-bidi declaration. /// - public static readonly String UnicodeBidi = "unicode-bidi"; + public const String UnicodeBidi = "unicode-bidi"; /// /// The vertical-align declaration. /// - public static readonly String VerticalAlign = "vertical-align"; + public const String VerticalAlign = "vertical-align"; /// /// The visibility declaration. /// - public static readonly String Visibility = "visibility"; + public const String Visibility = "visibility"; /// /// The white-space declaration. /// - public static readonly String WhiteSpace = "white-space"; + public const String WhiteSpace = "white-space"; /// /// The widows declaration. /// - public static readonly String Widows = "widows"; + public const String Widows = "widows"; /// /// The width declaration. /// - public static readonly String Width = "width"; + public const String Width = "width"; /// /// The word-break declaration. /// - public static readonly String WordBreak = "word-break"; + public const String WordBreak = "word-break"; /// /// The word-spacing declaration. /// - public static readonly String WordSpacing = "word-spacing"; + public const String WordSpacing = "word-spacing"; /// /// The word-wrap declaration. /// - public static readonly String WordWrap = "word-wrap"; + public const String WordWrap = "word-wrap"; /// /// The writing-mode declaration. /// - public static readonly String WritingMode = "writing-mode"; + public const String WritingMode = "writing-mode"; /// /// The z-index declaration. /// - public static readonly String ZIndex = "z-index"; + public const String ZIndex = "z-index"; /// /// The zoom declaration. /// - public static readonly String Zoom = "zoom"; + public const String Zoom = "zoom"; /// /// The unicode-range declaration. /// - public static readonly String UnicodeRange = "unicode-range"; + public const String UnicodeRange = "unicode-range"; /// /// The src declaration. /// - public static readonly String Src = "src"; + public const String Src = "src"; /// /// The object-fit declaration. /// - public static readonly String ObjectFit = "object-fit"; + public const String ObjectFit = "object-fit"; /// /// The object-position declaration. /// - public static readonly String ObjectPosition = "object-position"; + public const String ObjectPosition = "object-position"; /// /// The min-zoom declaration. /// - public static readonly String MinZoom = "min-zoom"; + public const String MinZoom = "min-zoom"; /// /// The max-zoom declaration. /// - public static readonly String MaxZoom = "max-zoom"; + public const String MaxZoom = "max-zoom"; /// /// The user-zoom declaration. /// - public static readonly String UserZoom = "user-zoom"; + public const String UserZoom = "user-zoom"; /// /// The orientation declaration. /// - public static readonly String Orientation = "orientation"; + public const String Orientation = "orientation"; /// /// The string-set declaration. /// - public static readonly String StringSet = "string-set"; + public const String StringSet = "string-set"; /// /// The running declaration. /// - public static readonly String Running = "running"; + public const String Running = "running"; /// /// The footnote-display declaration. /// - public static readonly String FootnoteDisplay = "footnote-display"; + public const String FootnoteDisplay = "footnote-display"; /// /// The footnote-policy declaration. /// - public static readonly String FootnotePolicy = "footnote-policy"; + public const String FootnotePolicy = "footnote-policy"; /// /// The bookmark-level declaration. /// - public static readonly String BookmarkLevel = "bookmark-level"; + public const String BookmarkLevel = "bookmark-level"; /// /// The bookmark-label declaration. /// - public static readonly String BookmarkLabel = "bookmark-label"; + public const String BookmarkLabel = "bookmark-label"; /// /// The bookmark-state declaration. /// - public static readonly String BookmarkState = "bookmark-state"; + public const String BookmarkState = "bookmark-state"; } } diff --git a/src/AngleSharp.Css/MinifyStyleFormatter.cs b/src/AngleSharp.Css/MinifyStyleFormatter.cs index 3b6b3f2f..1d804a5c 100644 --- a/src/AngleSharp.Css/MinifyStyleFormatter.cs +++ b/src/AngleSharp.Css/MinifyStyleFormatter.cs @@ -1,6 +1,7 @@ namespace AngleSharp.Css { using AngleSharp.Css.Dom; + using AngleSharp.Css.Values; using AngleSharp.Text; using System; using System.Collections.Generic; @@ -24,6 +25,11 @@ public class MinifyStyleFormatter : IStyleFormatter /// public Boolean ShouldKeepEmptyRules { get; set; } + /// + /// If the Value of the Properties hsould be minimized + /// + public Boolean MinimizePropertiesValue { get; set; } + #endregion #region Methods @@ -68,8 +74,7 @@ String IStyleFormatter.BlockRules(IEnumerable rules) return String.Empty; } - String IStyleFormatter.Declaration(String name, String value, Boolean important) => - String.Concat(name, ":", String.Concat(value, important ? "!important" : String.Empty)); + String IStyleFormatter.Declaration(String name, String value, Boolean important) => String.Concat(name, ":", String.Concat(value, important ? "!important" : String.Empty)); String IStyleFormatter.BlockDeclarations(IEnumerable declarations) { @@ -81,7 +86,14 @@ String IStyleFormatter.BlockDeclarations(IEnumerable declarat { foreach (var declaration in declarations) { - declaration.ToCss(writer, this); + if (MinimizePropertiesValue && declaration is CssProperty property) + { + WriteMinifiedDeclaration(property, writer); + } + else + { + declaration.ToCss(writer, this); + } writer.Write(Symbols.Semicolon); } @@ -108,6 +120,28 @@ String IStyleFormatter.Comment(String data) => #endregion + #region Minification + + private void WriteMinifiedDeclaration(CssProperty property, StringWriter writer) + { + switch(property.Name) + { + case PropertyNames.GridArea: + { + var tupel = (CssTupleValue)property.RawValue; + if (tupel.Count == 4 && tupel[0].CssText == tupel[1].CssText && tupel[0].CssText == tupel[2].CssText && tupel[0].CssText == tupel[3].CssText) + { + writer.Write(((IStyleFormatter)this).Declaration(property.Name, tupel[0].CssText, property.IsImportant)); + return; + } + break; + } + } + property.ToCss(writer, this); + } + + #endregion + #region Helpers private static Boolean IsNotEmpty(IEnumerable rules)