Używam sass i kompasu i staram się tworzyć klasy css dla obrazów pasujących do danego wzorca. Zamierzony/wynikające css przeważnie wygląda następująco:Uzyskiwanie listy plików w sass/compass
.class1 { background-image: url(class1.png); }
.class2 { background-image: url(class2.png); }
Chociaż może to być możliwe, aby korzystać z funkcji kompasu sprite (http://compass-style.org/help/tutorials/spriting/) jest niewygodny (jak będzie generować nowe pliki) w moim przypadku jak obrazy są już spritesheets się.
Tak jest w stanie zrobić coś takiego
@each $clazz in listFiles("images/*") {
.#{$clazz} {
background-image: url('#{$clazz}.png');
}
}
byłoby świetnie. Czy jest to mniej lub bardziej łatwy sposób na zrobienie tego?
To tworzy listę pełnych ścieżek plików dla mnie (np. Images/filename1.png). Czy istnieje prosty sposób, aby uzyskać samą bazę dla początkujących rubinów? – morewry
@morewry Oczywiście, po prostu użyj metody Ruby [File.basename] (http://www.ruby-doc.org/core/File.html#method-c-basename): 'Sass :: Script :: String.new (File.basename (x)) '. – hopper
Możesz także użyć 'Sass :: Script :: String.new (File.basename (x,". * "))', Aby uzyskać tylko nazwę pliku bez rozszerzenia. –