Skip to content

Commit

Permalink
fix: cssinfo bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
viperehonchuk committed Dec 4, 2023
1 parent 67047a9 commit 4a21bcb
Show file tree
Hide file tree
Showing 16 changed files with 45 additions and 39 deletions.
2 changes: 2 additions & 0 deletions revamp/preprocessors/src/helpers/get_section_id.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package helpers

import (
"html"
"regexp"
"strings"

Expand All @@ -10,6 +11,7 @@ import (
var CHARACTERS_TO_REMOVE = regexp.MustCompile(`[^a-z0-9-]`)

func GetSectionId(text string) string {
text = html.UnescapeString(text)
text = transliteration.UkrToLat(text)
text = strings.ToLower(text)
text = strings.ReplaceAll(text, " ", "-")
Expand Down
2 changes: 1 addition & 1 deletion revamp/preprocessors/src/helpers/render_html/td.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type TdParams struct {

func RenderTd(params *TdParams) (string, error) {
var b bytes.Buffer
if (params.InnerHtml == "") == (params.Text == "") {
if (params.InnerHtml != "") && (params.Text != "") {
return "", errors.New("in a td tag, either InnerHtml or Text must be set")
}
err := tTd.Execute(&b, params)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

func also_applies_to(env *environment.Environment, reg *registry.Registry, data *CssData) (string, error) {
if data.AlsoAppliesTo == nil || len(data.AlsoAppliesTo) == 0 {
if len(data.AlsoAppliesTo) == 0 {
return "", nil
}
// Remove '::placeholder' from array to avoid displaying it,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ func animationType(env *environment.Environment, reg *registry.Registry, data *C
}
return strings.Join(parsedValues, listSeparator), nil
}
return as_longhands(env, reg, data.AnimationType)
return as_longhands(env, reg, data.AnimationType, animationType)
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ func appliesto(env *environment.Environment, reg *registry.Registry, data *CssDa
if data.AppliesTo == "" {
return "", nil
}
return as_single(env, reg, data, data.AppliesTo)
return as_single(env, reg, data, data.AppliesTo, true)
}
18 changes: 12 additions & 6 deletions revamp/preprocessors/src/run-macros/macros/cssinfo/as_longhands.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@ package cssinfo

import (
"html/template"
"log"
renderhtml "webdoky3/revamp/preprocessors/src/helpers/render_html"
"webdoky3/revamp/preprocessors/src/run-macros/environment"
"webdoky3/revamp/preprocessors/src/run-macros/macros/cssinfo/css_l10n"
"webdoky3/revamp/preprocessors/src/run-macros/macros/cssxref"
"webdoky3/revamp/preprocessors/src/run-macros/registry"
)

func as_longhands(env *environment.Environment, reg *registry.Registry, values []string) (string, error) {
func as_longhands(env *environment.Environment, reg *registry.Registry, values []string, get_nested func(*environment.Environment, *registry.Registry, *CssData) (string, error)) (string, error) {
log.Printf("as_longhands: %v", values)
asLonghands, err := css_l10n.Localize(env, reg, "asLonghands", "", "")
if err != nil {
return "", err
Expand All @@ -25,12 +27,16 @@ func as_longhands(env *environment.Environment, reg *registry.Registry, values [
if err != nil {
return "", err
}
longhandData, err := get_mdn_data("properties", singleInitial)
if err != nil {
return "", err
}
longHand, err := get_nested(env, reg, longhandData)
if err != nil {
return "", err
}
listItem, err := renderhtml.RenderLi(&renderhtml.LiParams{
InnerHtml: template.HTML(ref + ": TODO"),
// (Object.prototype.hasOwnProperty.call(data.properties, longhand) ?
// await getValueOutput(data.properties[longhand], property) :
// replacePlaceholders(formattedError,
// [localize(cssLocalStrings, "missing")]))
InnerHtml: template.HTML(ref + ": " + longHand),
})
if err != nil {
return "", err
Expand Down
11 changes: 9 additions & 2 deletions revamp/preprocessors/src/run-macros/macros/cssinfo/as_single.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,26 @@ import (
"webdoky3/revamp/preprocessors/src/run-macros/registry"
)

func as_single(env *environment.Environment, reg *registry.Registry, data *CssData, value string) (string, error) {
func as_single(env *environment.Environment, reg *registry.Registry, data *CssData, value string, includeAlso bool) (string, error) {
keywords := strings.Split(value, ", ")
localizedKeywords := []string{}
for _, keyword := range keywords {
localizedKeyword, err := css_l10n.Localize(env, reg, keyword, "", "")
if err != nil {
return "", err
}
// if localizedKeyword != keyword {
// log.Printf("Localized keyword %s: %s", keyword, localizedKeyword)
// }
localizedKeywords = append(localizedKeywords, localizedKeyword)
}
result := strings.Join(localizedKeywords, ", ")
if !includeAlso {
return result, nil
}
alsoAppliesToOutput, err := also_applies_to(env, reg, data)
if err != nil {
return "", err
}
return strings.Join(localizedKeywords, ", ") + string(alsoAppliesToOutput), nil
return css_l10n.Localize(env, reg, "applyingToMultiple", result, alsoAppliesToOutput)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ func computed(env *environment.Environment, reg *registry.Registry, data *CssDat
return "", nil
}
if len(data.Computed) == 1 {
return as_single(env, reg, data, data.Computed[0])
return as_single(env, reg, data, data.Computed[0], false)
}
return as_longhands(env, reg, data.Computed)
return as_longhands(env, reg, data.Computed, computed)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ func applyingToMultiple(_ *environment.Environment, _ *registry.Registry, arg1 s
return "", errors.New("arg1 is empty")
}
if arg2 == "" {
return "", errors.New("arg2 is empty")
return arg1, nil
}
return arg1 + ". Також застосовується до " + arg2, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ func asSpecifiedURLsAbsolute(env *environment.Environment, reg *registry.Registr
if err != nil {
return "", err
}
return "як задано, але з " + urlRef + ", зробленими абсолютними", nil
return "як задано, але зі значеннями " + urlRef + ", зробленими абсолютними", nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ import (
)

func lpc(env *environment.Environment, reg *registry.Registry, arg1 string, arg2 string) (string, error) {
return arg1 + ", <a href=\"/uk/docs/Web/CSS/percentage#interpoliatsiia\" title=\"Значення типу даних CSS &gt;percentage&lt; інтерполюються як дійсні числа з рухомою комою.\">percentage</a> або calc();" + arg2, nil
return arg1 + ", <a href=\"/uk/docs/Web/CSS/percentage#interpoliatsiia\" title=\"Значення типу даних CSS &gt;percentage&lt; інтерполюються як дійсні числа з рухомою комою.\">відсотки</a> або calc();" + arg2, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
"uk": "Застосовується до"
},
"asLonghands": {
"uk": "як і кожна зі складових цього скорочення:"
"uk": "складові цього скорочення:"
},
"asSpecified": {
"uk": "як задано"
Expand Down Expand Up @@ -174,7 +174,7 @@
"uk": "дочірні елементи рамкових елементів"
},
"color": {
"uk": "<a href=\"/uk/docs/Web/CSS/color_value#interpoliatsiia\" title=\"Значення типу даних <color> інтерполюються по кожній з їхніх складових – червоній, зеленій, синій, кожна з яких розглядається як дійсне число з рухомою комою. Зверніть увагу, що інтерполяція кольорів відбувається в просторі кольорів sRGBA з попереднім множенням на альфа-канал, щоб уникнути появи неочікуваних сірих кольорів.\">колір</a>"
"uk": "<a href=\"/uk/docs/Web/CSS/color_value#interpoliatsiia\" title=\"Значення типу даних CSS &lt;color&gt; інтерполюються по кожній з їхніх складових – червоній, зеленій, синій, кожна з яких розглядається як дійсне число з рухомою комою. Зверніть увагу, що інтерполяція кольорів відбувається в просторі кольорів sRGBA з попереднім множенням на альфа-канал, щоб уникнути появи неочікуваних сірих кольорів.\">колір</a>"
},
"colorPlusThreeAbsoluteLengths": {
"uk": "колір плюс три абсолютні довжини"
Expand Down Expand Up @@ -219,7 +219,7 @@
"uk": "елементи виключення"
},
"filterList": {
"uk": "<a href=\"/uk/docs/Web/CSS/filter#interpoliatsiia\" title=\"Якщо обидва фільтри мають списки функцій однакової довжини і без URL, то кожна функція інтерполюється згідно зі своїми специфічними правилами. Якщо вони мають різну довжину, то відсутні еквівалентні функції фільтрів з довшого списку додаються в кінець коротшого списку зі своїми усталеними значеннями, після чого всі функції фільтрів інтерполюються згідно зі своїми специфічними правилами. Якщо один з фільтрів – <code>none</code>, то він замінюється списком функцій іншого фільтра з використанням усталених значень функцій фільтра, після чого всі функції фільтрів інтерполюються згідно зі своїми специфічними правилами. В іншому випадку використовується дискретна інтерполяція.\">список функцій фільтрів</a>"
"uk": "<a href=\"/uk/docs/Web/CSS/filter#interpoliatsiia\" title=\"Якщо обидва фільтри мають списки функцій однакової довжини і без URL, то кожна функція інтерполюється згідно зі своїми специфічними правилами. Якщо вони мають різну довжину, то відсутні еквівалентні функції фільтрів з довшого списку додаються в кінець коротшого списку зі своїми усталеними значеннями, після чого всі функції фільтрів інтерполюються згідно зі своїми специфічними правилами. Якщо один з фільтрів – none, то він замінюється списком функцій іншого фільтра з використанням усталених значень функцій фільтра, після чого всі функції фільтрів інтерполюються згідно зі своїми специфічними правилами. В іншому випадку використовується дискретна інтерполяція.\">список функцій фільтрів</a>"
},
"flexContainers": {
"uk": "гнучкі контейнери"
Expand Down Expand Up @@ -288,7 +288,7 @@
"uk": "рядкова розмірність контейнерного блока"
},
"integer": {
"uk": "<a href=\"/uk/docs/Web/CSS/integer#interpoliatsiia\" title=\"Значення типу даних CSS <integer> інтерполюються по дискретних кроках. Інтерполяція відбувається так, ніби впорядковані значення є дійсними числами з рухомою комою, а дискретне значення отримується за допомогою округлення до меншого.\">ціле число</a>"
"uk": "<a href=\"/uk/docs/Web/CSS/integer#interpoliatsiia\" title=\"Значення типу даних CSS &lt;integer&gt; інтерполюються по дискретних кроках. Інтерполяція відбувається так, ніби впорядковані значення є дійсними числами з рухомою комою, а дискретне значення отримується за допомогою округлення до меншого.\">ціле число</a>"
},
"interactive": {
"uk": "інтерактивний"
Expand All @@ -306,7 +306,7 @@
"uk": "задане ключове слово, плюс ціле число, якщо 'digits'"
},
"length": {
"uk": "<a href=\"/uk/docs/Web/CSS/length#interpoliatsiia\" title=\"Значення типу даних CSS <length> інтерполюються як дійсні числа з рухомою комою.\">довжина</a>"
"uk": "<a href=\"/uk/docs/Web/CSS/length#interpoliatsiia\" title=\"Значення типу даних CSS &lt;length&gt; інтерполюються як дійсні числа з рухомою комою.\">довжина</a>"
},
"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto": {
"uk": "якщо задано як довжина, то відповідна абсолютна довжина; якщо задано як відсотки, то задане значення; інакше – <code>auto</code>"
Expand Down Expand Up @@ -414,7 +414,7 @@
"uk": "Не анімується"
},
"number": {
"uk": "<a href=\"/uk/docs/Web/CSS/number#interpoliatsiia\" title=\"Значення типу даних CSS <number> інтерполюються як дійсні числа з рухомою комою.\">число</a>"
"uk": "<a href=\"/uk/docs/Web/CSS/number#interpoliatsiia\" title=\"Значення типу даних CSS &lt;number&gt; інтерполюються як дійсні числа з рухомою комою.\">число</a>"
},
"numberOrLength": {
"uk": "або число, або довжина"
Expand Down
12 changes: 2 additions & 10 deletions revamp/preprocessors/src/run-macros/macros/cssinfo/initial.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package cssinfo

import (
"log"
renderhtml "webdoky3/revamp/preprocessors/src/helpers/render_html"
"webdoky3/revamp/preprocessors/src/run-macros/environment"
"webdoky3/revamp/preprocessors/src/run-macros/registry"
)
Expand All @@ -11,15 +10,8 @@ func initial(env *environment.Environment, reg *registry.Registry, data *CssData
initialValue := data.Initial
log.Printf("initial: %v", initialValue)
if len(initialValue) == 1 {
singleInitial := initialValue[0]
result, err := renderhtml.RenderCode(&renderhtml.CodeParams{
Text: singleInitial,
})
if err != nil {
return "", err
}
return result, nil
return as_single(env, reg, data, initialValue[0], false)
} else {
return as_longhands(env, reg, initialValue)
return as_longhands(env, reg, initialValue, initial)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ func percentages(env *environment.Environment, reg *registry.Registry, data *Css
return "", nil
}
if len(data.Percentages) == 1 {
return as_single(env, reg, data, data.Percentages[0])
return as_single(env, reg, data, data.Percentages[0], false)
}
return as_longhands(env, reg, data.Percentages)
return as_longhands(env, reg, data.Percentages, percentages)
}
5 changes: 2 additions & 3 deletions revamp/preprocessors/src/run-macros/macros/cssxref/cssxref.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,6 @@ func parseCssxrefArgs(args string) (string, string, string, error) {
default:
return "", "", "", errors.New("too many arguments")
}
if displayName == "" {
displayName = slug
}
return slug, displayName, anchor, nil
}

Expand Down Expand Up @@ -81,6 +78,8 @@ func Cssxref(env *environment.Environment, reg *registry.Registry, args string)
default:
displayName = slug
}
} else {
displayName = slug
}
}
aParams := renderhtml.AParams{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func extractTargetSection(content string, parentId string) (string, string, erro
}
}

if depth == 0 {
if depth == 0 || i == 0 {
return "", "", errors.New("macro argument is wrong")
}
j = strings.Index(macroAndAfter, strings.Repeat("#", depth))
Expand Down

0 comments on commit 4a21bcb

Please sign in to comment.