Z lenistwa cz. II

01 września, 2007

Chciałbym zaprezentować mój kolejny UserJS - tym razem napisany z myślą o panelu administracyjnym Joggera.

Nie wiem jak innych, ale mnie doprowadza do mdłości myśl, że przy formatowaniu wpisu wypadałoby opisać wszystkie skróty i skrótowce - i z reguły tego nie robię, bo wklepywanie rozwinięcia skrótu mnie drażni ;) Ale kto powiedział, że muszę to zawsze wklepywać ? Stworzyłem więc skrypt, który w edytorze wpisu dodaje nam dwa przyciski - ABBR i ACRONYM, po ich kliknięciu rozwinie się lista określonych przez użytkownika skryptu, skrótów i skrótowców. Domyślnie umieściłem kilka takowych w skrypcie, oczywiście listę można łatwo rozbudować według prezentowanego w skrypcie schematu:

var ABBR = [
        ["mln","milion(ów)"]
];

var ACRONYM = [
        ["IMHO","In My Humble Opinion"],
        ["TIA","Thanks In Advance"],
        ["OMG","Oh My God !"]
];

Myślę, że dzięki temu skryptowi dodanie skrótowca IMHO czy stworzenie zapisu 100 mln będzie o wiele wygodniejsze :)

Trzy uwagi użytkowe:

  • osoby korzystające z rozdzielczości mniejszych niż 1024x768 (są tacy ?) powinni się zainteresować linijkami 33. i 63., a dokładniej właściwością margin-left ;)
  • aby zamknąć otwartą listę trzeba albo wybrać jedną z pozycji na niej, albo kliknąć przycisk ją rozwijający - nie kombinowałem już z mouseover, a uzyskanie efektu hover wymagałoby dodania UserCSS (albo o czymś nie wiem :P)
  • przyciski są w pierwszym rzędzie przycisków, a nie w drugim, bo zwijanie drugiego rządka powodowało niedogodności związane z dostępem do rozwijanej listy.

Skrypt można pobrać ze strony userscripts.org. Wersji dla Opery póki co nie ma bo cały czas nie wiem dlaczego wszelkie skrypty wywalają mi się przy korzystaniu z metody forEach dla tablic i obiektów...

Komentarze do wpisu "Z lenistwa cz. II":

1. cimlik napisał(a):
01 września 2007, 17:02:44

Dobre, dzięki! Popraw sobie tylko w konfiguracji adresy, pod którymi ma działać skrypt – ustawiłeś http zamiast https :).

2. Dziudek napisał(a):
01 września 2007, 17:03:40

@cimlik – ja mam http ;) Ale dodam też te z https ;) dzięki za info ;]

3. radmen napisał(a):
01 września 2007, 17:18:47

> osoby korzystające z rozdzielczości mniejszych niż 1024×768 (są tacy ?)
tak ja! ;[

4. Dziudek napisał(a):
01 września 2007, 17:22:55

@Radmen – no w każdym razie dobrze, że to uwzględniłem ;)

5. radmen napisał(a):
01 września 2007, 17:23:42

Ktoś jeszcze o mnie pamięta.. ;-)

6. Dziudek napisał(a):
01 września 2007, 17:25:09

@radmen – wiesz mnie obecnie monitory 20.1” wydają się małe – więc wybacz rozmiary layoutu mojego bloga ;D

7. radmen napisał(a):
01 września 2007, 17:25:44

Twój blog jeszcze nie jest taki ogromniasty ;]

8. Dziudek napisał(a):
01 września 2007, 17:27:03

@radmen – bo tworzyłem go w czasach posiadania monitora 15” XD Choć chyba nowy lay postaram się zrobić skalowalny ;)

9. off napisał(a):
01 września 2007, 17:55:47

Osz ty. Teraz jest cudownie, ale osobiście wolałbym to robić za pomocą klawiatury, bo nawet to quicktagów nie mam ochoty sięgać i piszę z marszu :p

10. Dziudek napisał(a):
01 września 2007, 17:58:36

@off – to też jakaś myśl, ale sporo skrótów jest już zajętych przez firefoksa i obecne w panelu przyciski ;) Za dużo ograniczeń :) Dwa kliknięcia zawsze lepsze niż kilkanaście przyciśnięć klawiszy ;)

11. off napisał(a):
01 września 2007, 18:27:32

Dziudek: A co powiesz na to, by skrypt po wpisaniu frazy, np IMO, przekształcał go na acronym/abbr, z tym, że kursor byłby po zamykającym znaczniku i działałby tylko jeżeli notkę pisze się z miejsca. (Przy wklejaniu nie musi działać, chociaż ja wszystkie notki wklejam z n++) :>

12. Dziudek napisał(a):
01 września 2007, 18:39:48

@off – za dużo cudowania – skrypt musiałby sprawdzać co jest wklepywane na bieżąco, a to ssie ;]

Już lepszy byłby przycisk do podmieniania wszystkich skrótów i skrótowców naraz jednym kliknięciem ;) Ale wtedy trzeba by uważać na to by dany skrót był pomiędzy spacjami…

13. off napisał(a):
01 września 2007, 18:45:38

OK, to by skrypt się uruchamiał na zawołanie to byłoby dobre, a by zadanie uprościć, skrót wklepywać w takim formacie,: &skrót który byłby lepszy dla GM. jeżeli spacji by nie było, to zawsze przed wszystkim można jedną „po” zrobić ;)

14. Dziudek napisał(a):
01 września 2007, 18:48:56

@off – w sumie dobry koncept z tym & przed skrótem – wtedy znika od razu problem ponownego wciskania przycisku podmiany skrótów ;) Bo takto na przykład IMHO wciąż występowałoby w tekście ;)

Sprawa do zrobienia w nocy ;] Na razie się obijam dalej :P

15. rozie napisał(a):
02 września 2007, 09:22:54

‘Pełna’ lista akronimów zawarta jest w uniksowym wtf – IMO warto wrzucić je jako bazę.

16. Dziudek napisał(a):
02 września 2007, 12:02:39

@rozie – im większa lista tym skrypt będzie wolniejszy, bo będzie wymagał wykonania większej ilości operacji – lepiej wybrać te skróty i skrótowce, które stosuje się najczęściej na swoim joggerze ;)

17. rozie napisał(a):
02 września 2007, 17:33:29

No ja tam ogólnie sensu nie widzę, ale jak już robić, to IMHO czas działania nie jest aż tak istotny. Poza tym, nie możesz użyć jakiegoś hasha?

18. Dziudek napisał(a):
02 września 2007, 17:38:08

@rozie – każdy na swoim joggu używa tylko pewnej ilości skrótów i skrótowców – wrzucenie ich w dużej ilości spowoduje po pierwsze generowanie niemiłosiernie długiej listy, a po drugie użyteczność spadnie, bo użytkownik będzie szukał na liście wybranego skrótu co nie zdarzy się w wypadku posiadania na liście używanych przez siebie skrótów w ilości 10-15 ;)

Co do hasha – problem polega na tym, że skrypt generuje listę dynamicznie na podstawie tablicy – im więcej pozycji tym więcej razy trzeba tworzyć elementy listy – po co generować 50 pozycji skoro ktoś używa 10-15 z nich ? Zwłaszcza, że dodanie elementu do listy oznacza kilka operacji przy jednym elemencie…

19. blue napisał(a):
03 września 2007, 09:56:26

W Operze nie działa, bo nie posiada takich metody jak forEach dla tablicy. Użyj albo zwykłej pętli, albo napisz proste rozszerzenie poprzez prototype.
Poza tym trochę lepszym sposobem na przechowywanie tablicy asocjacyjnej jest użycie… tablicy asocjacyjnej, a właściwie jej sybstytutu, którym w JS jest zwykły objekt:
var ACRONYM = {
'IMHO': 'In My Houmble Opinion',
'TIA': 'Thanks In Advance',
'OMG': 'Oh My God'
}
i wtedy używasz for(var i in ACRONYM){...}, które jest w każdej przeglądarce.

20. Dziudek napisał(a):
03 września 2007, 12:35:51

@blue – co do forEach to już się zorientowałem (patrz następny wpis) ;) Co do tablic asocjacyjnych – jakoś o tym mi się nie pomyślało w czasie pisania skryptu – może w następnej wersji to poprawię, bo póki co ponoć skrypt sprawuje się nieźle ;)

Dodaj komentarz:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.