Skip to content
Constantine Xipolitopoulos edited this page Jun 22, 2020 · 3 revisions

Το tagcloud εμφανίζεται στο sidebar της σελίδας Ανακοινώσεις και αποτελείται από links με τους τίτλους των tags, τα οποία οδηγούν σε σχετικές σελίδες με τις ανακοινώσεις που περιέχουν το κάθε tag.

Αλλαγές στο sitegr

Για τη δημιουργία του archive και των σελίδων των tags, χρησιμοποιείται το plugin jekyll-archives.

Στη συνέχεια, στο αρχείο _config.yml, ο τύπος του tag_archieve (καθώς και του category_archieve για πιθανές μελλοντικές εφαρμογές) είναι απαραίτητο να αλλάξει σε jekyll-archives.

Επιπλέον, προστίθεται το layout για τις σελίδες των tags με τον ακόλουθο τρόπο:

image

Oρίζονται επίσης, με τρόπο δυναμικό, τα permalinks για τη κάθε σελίδα του tag (και του category).

Τέλος, στη σελίδα με τις ανακοινώσεις (posts.html), προστίθεται το tag_cloud = true, το οποίο χρησιμοποιείται από το αποθετήριο του θέματος και ελέγχει την εμφάνιση του tagcloud.

Αλλαγές στο minimal-ionio

Στο αποθετήριο minimal-ionio, είναι απαραίτητη η προσθήκη μιας σελίδας (generate_tag_cloud.html), η οποία δημιουργεί το tagcloud. Ο κώδικας του tagcloud είναι γραμμένος σε Liquid.

Αρχικά, δημιουργείται μια λίστα tags, που περιέχει όλα τα tags των ανακοινώσεων (posts). Έπειτα, προσαρμόζεται το μέγεθος του κάθε στοιχείου (span) του tag, ανάλογα με τη συχνότητα χρήσης του. Το κάθε στοιχείο tag στοιχίζεται το ένα κάτω από το άλλο.

Αφού οριστεί ο τρόπος δημιουργίας του tagcloud, είναι απαραίτητο να οριστεί το σημείο όπου είναι επιθυμητή η δημιουργία του. Το αρχείο sidebar.html περιέχει το sidebar της ιστοσελίδας και ελέγχει την εμφάνιση των κατάλληλων αρχείων ανάλογα με τον "τύπο" της ιστοσελίδας. Ο "τύπος" της ιστοσελίδας των ανακοινώσεων posts.html του αποθετηρίου sitegr ορίζεται με το tag_cloud = true, και έτσι η ιστοσελίδα αυτή εμφανίζει το tagcloud στο σημείο του sidebar.

image

Ένα θέμα που προέκυψε κατά την υλοποίση του συγκεκριμένου, είναι πως τα posts είναι ορισμένα μέσα σε collections. Λόγω αυτής της λογικής δεν ήταν δυνατή η χρήση των περισσότερων προσεγγίσεων σε σχετικά renferences (1,2) και έτσι έγινε χρήση σχετικού plugin.

Αξίζει να σημειωθεί, επίσης, πως για τη σωστή εμφάνιση του tagcloud, είναι απαραίτητη η σωστή διαχείριση του περιεχομένου των ετικετών, τόσο από τη πλευρά των ατόμων με πρόσβαση στο περιεχόμενο του sitegr μέσω GitHub, καθώς και από τη πλευρά των απλών χρηστών κατά την εισαγωγή νέων ανακοινώσεων στην ιστοσελίδα σύμφωνα με τις οδηγίες που αναφέρονται στο Posting with CMS Netlify. Ο δυναμικός σχεδιασμός του tagcloud δεν είναι σε θέση να προβλέπει λάθη κατά την εισαγωγή των ετικετών και των ανακοινώσεων. Μία προσπάθεια προς αυτήν τη κατέυθυνση μπορεί να βρεθεί στο issue #4, όπου κατά την εισαγωγή νέων ανακοινώσεων στο site, οι απλοί χρήστες θα περιορίζονται σε μία προϋπάρχουσα λίστα ετικετών η οποία ορίζεται στο Taxonomy. Άλλη μελλοντική προσθήκη θα μπορούσε να είναι ο περιορισμός της λίστας των ετικετών που εμφανίζει το ίδιο το tagcloud, στην εμφάνιση μόνο των ετικέτων που ορίζονται στο Taxonomy.

Σχετικά PR:

Σχετικά Issues:

References: