Aktualizacja ikon
Na moim blogu pojawiły się nowe kategorie, dla których nie utworzyłam ikon. Pomyślałam, że czas uzupełnić braki.
We wpisie Jak zrobić własną ikonę SVG pokazuję, w jaki sposób utworzyć obraz .svg
zawierający listę ikon i jak użyć fragmentu pliku (pojedynczej ikony) jako obrazka przy nazwie kategorii.
Kiedy pojawiły się nowe kategorie/tagi wpisów, nie aktualizowałam pliku z ikonami. Teraz chciałabym sprawdzić, jakich ikon mi brakuje.
Wypisywanie tagów/kategorii
Polecenie wyszukujące wszystkie nazwy kategorii/tagów używanych w moich wpisach:
|
|
wypisze wszystkie obecnie występujące tagi/kategorie.
Wypisywanie nazw ikon
Plik images/icons.svg zawiera moje ikony; wybieram fragmenty identyfikatorów ikon (których używam w motywie bloga) odpowiadające kategoriom:
|
|
Jak mogę łatwo znaleźć nazwy kategorii/tagów, które nie mają jeszcze ikony?
Wystarczy, że wykorzystam polecenie diff
i przekażę mu rezultaty wykonania powyższych poleceń.
Process substitution
Bash
W przypadku shella bash
używałam składni “process substitution” - dzięki niej rezultat wykonania polecenia można przesłać do innego polecenia przez “named pipe” (po polsku to chyba “potok nazwany”).
|
|
FishShell
A ja od kilku dni bawię się powłoką FishShell.
Okazuje się, że składnia basha pozwalająca na “process substitution” nie jest przez FishShell obsługiwana. Istnieje odrębne polecenie - psub
- które przekierowuje swój stdin do utworzonego w locie potoku nazwanego i zwraca jego nazwę.
A więc polecenie diff
otrzyma dwie nazwy - utworzonych named pipes dla rezultatów wyszukiwania nazw ikon i wyszukiwania tagów/kategorii - i wypisze różnice.
Na stronie dokumentującej psub
jest nawet odpowiedni przykład:
|
|
Generowanie listy kategorii z brakującymi ikonami
Próbuję więc użyć diff
. Oczywiście, z opcją -u
(generowanie różnic w formacie unidiff):
|
|
Wybieranie wierszy - sed
… i na koniec wybieram wiersze, które rozpoczynają się od znaku + (to dodane kategorie, które nie występują w pliku z ikonami):
- sed ma nie wypisywać przetwarzanych wierszy (opcja
-n
) - sed ma przetworzyć podane wyrażenie regularne (opcja
-e
) - wyrażenie regularne ma po dopasowaniu wyrażenia
wyr
wypisać pierwszą - i jedyną - grupę (s/wyr(grupa)/\1/p
):
|
|
Całe polecenie:
|
|
Rysowanie ikonek
Ikonki generuję narzędziem dostępnym na githubie https://yqnn.github.io/svg-path-editor/:
Oto icons.svg z dodanymi nowymi ikonami: