Libsass: لا تعمل الألوان المسماة كمفاتيح خرائط

تم إنشاؤها على ١٧ نوفمبر ٢٠١٤  ·  8تعليقات  ·  مصدر: sass/libsass

تحية للجميع،

أحاول تنفيذ وظيفة لوحة الألوان الموضحة في هذه المقالة هنا.

http://erskinedesign.com/blog/friendlier-colour-names-sass-maps/

هذا هو الكود الناتج

// config
$_color-base-grey: rgb(229,231,234);
$palettes: (
    purple: (
        base:   rgb(42,40,80),
        light:  rgb(51,46,140),
        dark:   rgb(40,38,65)
    ),
    grey: (
        base:  $_color-base-grey,
        light: lighten($_color-base-grey, 10%),
        dark: darken($_color-base-grey, 10%)
    )
);

// Palette function,
<strong i="10">@function</strong> palette($palette, $tone: 'base') {
    <strong i="11">@return</strong> map-get(map-get($palettes, $palette), $tone);
}


// in module styles
a {
    color: palette(purple);
    &:hover {
        color: palette(purple, light);
    }
}

يبدو أن جميع الدلائل تشير إلى هذا العمل ولكني أحصل على هذا الخطأ.

Warning: /Users/xxx/xxx//styles.scss:35: argument `$map` of `map-get($map, $key)` must be a map

أنا أستخدم إصدار Grunt Sass - 0.16.1

أيه أفكار؟

تشكرات

Bug - Confirmed Dev - Test Written

التعليق الأكثر فائدة

يبدو أن أفكاري الأولية كانت خاطئة. تكمن المشكلة في أن مفتاح الخريطة هو اسم لوني. يواجه Libsass بعض المشكلات عندما يتعلق الأمر بتحليل السلاسل ذات الأسماء الملونة ، مثل https://github.com/sass/libsass/issues/558

حالة مخفضة: http://sassmeister.com/gist/d2be1def3619bd6c3a54

ال 8 كومينتر

مؤكد! لقد تلقيت الخطأ (JSON) التالي من libsass ، مع تطبيق API الجديد

{
        "status": 1,
        "path": "c:/temp/foo3.scss",
        "line": 18,
        "column": 13,
        "message": "argument `$map` of `map-get($map, $key)` must be a map\nBacktrace:\n\tc:/temp/foo3.scss:18, in function `map-get`\n\tc:/temp/foo3.scss:18, in function `palette`\n\tc:/temp/foo3.scss:24"
}

mgreter ، بشكل منفصل ؛ في message من JSON ، لا يجب تكرار اسم الملف ورقم السطر. :)

لقد بحثت في هذا وبدا أن السبب هو إرجاع map-get($palettes, $palette) فارغًا.

أي حل حتى الآن؟

لقد أضفت هذا إلى الإصدار 3.0.3 الذي يجب أن يدخله في الإصدار التالي.

يبدو أن أفكاري الأولية كانت خاطئة. تكمن المشكلة في أن مفتاح الخريطة هو اسم لوني. يواجه Libsass بعض المشكلات عندما يتعلق الأمر بتحليل السلاسل ذات الأسماء الملونة ، مثل https://github.com/sass/libsass/issues/558

حالة مخفضة: http://sassmeister.com/gist/d2be1def3619bd6c3a54

كتنبيه ، يبدو أن المستخدم قد يتعامل مع المشكلة المتعلقة بـ sass / sass # 363 بهذه الألوان لأن مفاتيح الخريطة ليست سلاسل ، بل ألوانًا.

أعتقد أن هذا صحيح إلى حد ما. أعتقد أن مفتاح الخريطة يتم التعامل معه على أنه لون وليس سلسلة ، على الرغم من أنني لست متأكدًا من سبب هذه المشكلة.

تجدر الإشارة إلى أن حالة الاختبار المخفضة تعمل بشكل جيد على Ruby sass.

المشكلة هي أننا نتعامل مع purple في مفتاح الخريطة كسلسلة و purple في استدعاء الوظيفة على أنه color . عندما نطلق على map-get فإننا نطلب القيمة المرتبطة باللون الأرجواني ، ولكن يتم تخزينها تحت السلسلة Purple. هذان الشيئان غير متكافئين - http://sassmeister.com/gist/77ae29d46ebecd0823ed

لدي إصلاح سأشحنه في غضون ساعتين.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

bertusgroenewegen picture bertusgroenewegen  ·  6تعليقات

Hint-ru picture Hint-ru  ·  5تعليقات

c0d3xpl0it picture c0d3xpl0it  ·  4تعليقات

delijah picture delijah  ·  7تعليقات

xzyfer picture xzyfer  ·  9تعليقات