Connorizer

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Connorizer

Δημοσίευση από skeftomilos » 22 Ιούλ 2008 02:37

Με αφορμή το θέμα για την απλοποίηση της ελληνικής γραφής έφτιαξα ένα greasemonkey script που απλοποιεί αυτόματα τα κείμενα κάθε web σελίδας στο διαδίκτυο:

- Connorizer

Ο κώδικας που κάνει τη μετατροπή είναι ο ίδιος που χρησιμοποιείται και στον μετατροπέα σύνθετης ελληνικής γραφής σε απλή. Χρειάστηκε μόνο να κωδικοποιηθούν οι ελληνικοί χαρακτήρες στα strings, γιατί για κάποιο άγνωστο λόγο το script δε δούλευε διαφορετικά. Για παράδειγμα αυτό:

Κώδικας: Επιλογή όλων

var replacements = [
  {complex:'αι', simple:'ε'},
  {complex:'αί', simple:'έ'},
  {complex:'αυ', fivi:1},
  ...
...έγινε έτσι:

Κώδικας: Επιλογή όλων

var replacements = [
  {complex:'\u03b1\u03b9', simple:'\u03b5'},
  {complex:'\u03b1\u03af', simple:'\u03ad'},
  {complex:'\u03b1\u03c5', fivi:1},
  ...
Μπορεί να φταίει ότι έχω παλιά έκδοση του Greasemonkey, ή μπορεί να οφείλεται στα διαφορετικά charsets των σελίδων του διαδικτύου, άλλες windows-1253/iso-8859-7 και άλλες utf-8.

Προσοχή δόθηκε επίσης στην απόδοση του script. Για να μην προκληθεί κόλλημα σε πολύ μεγάλες σελίδες, η επεξεργασία γίνεται τμηματικά. Τα διαστήματα επεξεργασίας διαρκούν 500 msec, και χωρίζονται από διαστήματα ανάπαυσης διάρκειας 200 msec. Αυτό το στήσιμο προκαλεί ως παρενέργεια μικρές αναπηδήσεις της σελίδας, αν γίνει scroll down κατά τη διάρκεια της μετατροπής. Ίσως να είναι καλύτερο αν αυξηθούν τα διαστήματα, δεν είμαι σίγουρος.

Screenshots:

Εικόνα

Εικόνα

Εικόνα
Τελευταία επεξεργασία από το μέλος skeftomilos την 22 Ιούλ 2008 09:00, έχει επεξεργασθεί 2 φορές συνολικά.

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Connorizer

Δημοσίευση από Basilakis » 22 Ιούλ 2008 02:46

hahah έχω λιώσει στο γέλιο :D

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Connorizer

Δημοσίευση από skeftomilos » 22 Ιούλ 2008 08:08

Βελτίωσα λίγο τη λογική του script. Πρώτα γίνονται οι χρονοβόρες μετατροπές των κειμένων και αποθηκεύονται σε ένα προσωρινό array, και στο τέλος εφαρμόζονται μαζικά στα text nodes της σελίδας. Με αυτό τον τρόπο υπάρχει μία καθυστέρηση, αλλά όχι πολλές αναπηδήσεις.

- Αρχική version
- Βελτιωμένη version
Τελευταία επεξεργασία από το μέλος skeftomilos την 22 Ιούλ 2008 08:59, έχει επεξεργασθεί 1 φορά συνολικά.

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Connorizer

Δημοσίευση από zeppos » 22 Ιούλ 2008 08:34

Ιστορική η προσφορά σου skeftomile στις επερχόμενες γενιές των Ελλήνων (και οχι μόνο!)
Γράφεις ιστορία σήμερα!
Κάποτε είμαι σίγουρος οτι θα ανατρέχουν με ευλάβεια σε αυτά τα ποστ οι μελλοντικοί ερευνητές. ..
Εικόνα

Άβαταρ μέλους
ksarm
Δημοσιεύσεις: 915
Εγγραφή: 22 Μάιος 2007 10:47

Connorizer

Δημοσίευση από ksarm » 22 Ιούλ 2008 08:39

:respect:!!!

Άβαταρ μέλους
Connor MacLeod
Honorary Member
Δημοσιεύσεις: 13372
Εγγραφή: 07 Φεβ 2005 13:36
Τοποθεσία: Κοζάνη
Επικοινωνία:

Connorizer

Δημοσίευση από Connor MacLeod » 22 Ιούλ 2008 08:45

Dεν κακο-Δεν κακο.

Μπραβο Σκευτομιλε.
Meizu MX5(5.5"/8Core/3GB/32GB/Sony IMX220 20.7MP)
PC 27'' (3770@3.4/16GB/560SE/500GB SATA3/650W S12G)
Mac mini (2.5GHz/8GB/6630/90GB GorsairGT)

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Connorizer

Δημοσίευση από skeftomilos » 22 Ιούλ 2008 09:03

zeppos ήδη σκέφτομαι να αρχίσω τις προπονήσεις για πρόεδρος της δημοκρατίας. Δεν ξέρω ακριβώς τι προσόντα χρειάζονται, αλλά υποθέτω ότι με λίγη εξάσκηση σε ποδηλασία, ορθοστασία και τελετουργική χειραψία θα έχω καλύψει τα βασικά requirements. Το μόνο που με ανησυχεί είναι μη βάλει υποψηφιότητα και ο Κόννορας, γιατί είμαι χαμένος από χέρι.

Νομίζω βρέθηκε η ισορροπία στο script συνδυάζοντας τις δύο τεχνικές. Ξεκινά τις αντικαταστάσεις κατευθείαν πάνω στο DOM, και αν δεν έχει τελειώσει σε 2 δευτερόλεπτα τότε συνεχίζει τμηματικά με τα υπόλοιπα (με χρήση του προσωρινού array). Με αυτό τον τρόπο δεν υπάρχει ούτε αρχική καθυστέρηση, ούτε πολλές αναπηδήσεις, ούτε κολλάει η σελίδα.

- Αρχική version
- Βελτιωμένη version
- Τελική version

Άβαταρ μέλους
The Razor
Δημοσιεύσεις: 1940
Εγγραφή: 10 Φεβ 2007 12:37
Επικοινωνία:

Connorizer

Δημοσίευση από The Razor » 22 Ιούλ 2008 10:15

Μήπως θα μπορούσε να γίνει και το αντίθετο ωστε να κάνουμε το εν τρίτον του φορουμ πιο ευανάγνωστο? :P


Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Connorizer

Δημοσίευση από dimsis » 22 Ιούλ 2008 10:41

Το τσουρέκ προβλέπετε στο σκριπτάκι skeftomylos; :)
Κάνε αν έχεις χρόνο και ένα on the fly converter Greek <=> Greeklish μια και το 'χει τώρα σχεδόν έτοιμο για χρήση και εδώ μέσα. (ονόμασε το kgperter :p )
Ακόμα καλύτερο θα ήταν ένα σκριπτάκι που να μπορούσες εύκολα να σετάρεις τις αντιστοιχίες των character set π.χ.
ψ=ps
u=ου
κλπ

Άβαταρ μέλους
Connor MacLeod
Honorary Member
Δημοσιεύσεις: 13372
Εγγραφή: 07 Φεβ 2005 13:36
Τοποθεσία: Κοζάνη
Επικοινωνία:

Connorizer

Δημοσίευση από Connor MacLeod » 22 Ιούλ 2008 11:58

hahah έχω λιώσει στο γέλιο
Δε σε καταλαβα Βασιλη?
Εννοεις ότι ειμαι γελοίος και ότι αυτα που λέω ειναι γελοία?
Meizu MX5(5.5"/8Core/3GB/32GB/Sony IMX220 20.7MP)
PC 27'' (3770@3.4/16GB/560SE/500GB SATA3/650W S12G)
Mac mini (2.5GHz/8GB/6630/90GB GorsairGT)

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Connorizer

Δημοσίευση από zeppos » 22 Ιούλ 2008 12:07

Άσε τα .. προεδριλίκια skeftomile, αυτά είναι για όσους ήσαν μεν σπουδαίοι στο παρελθόν, αλλά πάνε για .. απόσυρση..
Εσύ έχεις πολλά να δώσεις ακόμη στην παγκόσμια κοινότητα της γνώσης..

Όπως σου είπε πιο πάνω ο The Razor, φιάξε ένα να διορθώνει αυτόματα όλα τα τρανταχτά ανορθόγραφα κείμενα. Οχι σαν αυτούς τους "ορθογράφους" που σου υπογραμίζουν τα λάθη αλλά μια εφαρμογή που θα τρέχει ακριβώς ... πίσω μας! Εμείς θα γράφουμε οτι μας έρχεται και πίσω μας ο δαίμων του skeftomiloy θα διορθώνει.. μαθαίνοντας και τις πιο συνηθισμένες .. κοτσάνες μας!
Εικόνα

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Connorizer

Δημοσίευση από Basilakis » 22 Ιούλ 2008 13:55

Connor MacLeod έγραψε:
hahah έχω λιώσει στο γέλιο
Δε σε καταλαβα Βασιλη?
Εννοεις ότι ειμαι γελοίος και ότι αυτα που λέω ειναι γελοία?
8) 8) 8) 8) 8) 8) 8)

Όχι βέβαια,

ενοώ πως ατό που έκανε ο skeftomilos, βασισμένος σε ένα topic Και μόνο είναι καταπληκτικό
και πως αυτά που γράφεις εσύ αφού έχουνε "βάση" σε μία λογική δημιουργήσανε ολόκληρο script ;)

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Connorizer

Δημοσίευση από soteres2002 » 22 Ιούλ 2008 15:35

καταπληκτικό σκριπτάκι. μήπως υπάρχει περίπτωση ο μετασχηματισμός του κειμένου να γίνεται αρχικά πριν την εκφόρτωση του κανονικού κειμένου;;

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Connorizer

Δημοσίευση από skeftomilos » 23 Ιούλ 2008 02:06

soteres2002 από ένα πείραμα που έκανα τώρα είδα ότι τα greasemonkey scripts τρέχουν λίγα milliseconds μετά το συμβάν DOMContentLoaded. Δε νομίζω να υπάρχει τρόπος να τρέξουν νωρίτερα.

Το αντίστοιχο script για greeklish τελικά πώς να το ονομάσουμε; kgperter λέει ο Dimsis, αλλά νομίζω ότι ένα τέτοιο script δικαιούται να έχει πολλούς νονούς και προβλέπω να γίνει σφαγή. Το μακεδονικό ζήτημα θα ωχριά μπροστά του. :-)

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες