0,scss linting kullanıyorum. Sorun şu ki, lls 'lerde URL'lerimdeki bazı satır değişkenlerim var, bu yüzden linter bir hata bildirdi:UrlFormat için scss_lint gem'e hariç tutma seçeneği ekle
Bazı şeyleri kontrolde dışlamak için bir yol olmalı. data:
'un beyaz listeye alınmış olduğunu görüyoruz, ancak bazen bir cms'ye konulduğu için değişkenlerimizi css'de kullanıyoruz.
UrlFormat: Invalid URL '/response/${siteId}/artifact/${campaignAndToolPath}/assets/fonts/roboto-light-webfont.woff2': bad URI(is not URI?): /response/${siteId}/artifact/${campaignAndToolPath}/assets/fonts/roboto-light-webfont.woff2
o üzerinde erroring olan koddur:
@font-face {
font-family: 'roboto';
src: url('/response/${siteId}/artifact/${campaignAndToolPath}/assets/fonts/roboto-italic-webfont.woff2') format('woff2'),
url('/response/${siteId}/artifact/${campaignAndToolPath}/assets/fonts/roboto-italic-webfont.woff') format('woff');
font-weight: $regular;
font-style: italic;
}
Belki de izin şeyler yazmak için Ruby usta değilim
UrlFormat:
enabled: true
ignore or exclude: [
- '${everythingbetween}'
- '{{everything between}}'
]
yapmak için bir yol olan Bu değişkenlerin kontrol edilmesi ve değişkenin kendisini veya bütün çizgiyi görmezden gelmesi.
Birisi bununla uğraşmak ister miydi?
Bunun için Ruby kodu geçerlidir.
require 'uri'
module SCSSLint
# Checks the format of URLs for unnecessary protocols or domains.
class Linter::UrlFormat < Linter
include LinterRegistry
def visit_script_funcall(node)
return unless node.name == 'url'
if url_string?(node.args[0])
url = node.args[0].value.value.to_s
check_url(url, node)
end
yield
end
def visit_prop(node)
if url_literal?(node.value)
url = node.value.to_sass.sub(/^url\((.*)\)$/, '\\1')
check_url(url, node)
end
yield
end
private
def url_literal?(prop_value)
return unless prop_value.is_a?(Sass::Script::Tree::Literal)
return unless prop_value.value.is_a?(Sass::Script::Value::String)
return unless prop_value.value.type == :identifier
prop_value.to_sass.start_with?('url(')
end
def url_string?(arg)
return unless arg.is_a?(Sass::Script::Tree::Literal)
return unless arg.value.is_a?(Sass::Script::Value::String)
arg.value.type == :string
end
def check_url(url, node)
return if url.start_with?('data:')
uri = URI(url)
if uri.scheme || uri.host
add_lint(node, "URL `#{url}` should not contain protocol or domain")
end
rescue URI::Error => ex
add_lint(node, "Invalid URL `#{url}`: #{ex}")
end
end
end
belki çözüm sadece aslında UrlFormat
çünkü eksik tırnak falan geçersiz sürece data:
değil hata yapar şekilde değişken görmezden olacağını düşünüyorum.
Herhangi bir yardım için teşekkür ederiz.
Teşekkürler! Bu kadar basit lol olduğunu farketmemişti. Bu şartname için çalışmalıdır? URL bir değişken içeriyorsa 'yapalım (: url) {' $ {'} it {not_not report_lint} sonu' –
Güzel görünüyor :) – acrogenesis