Αψήφησε τους κανόνες της αναδυόμενης τάξης της Πληροφορίας

Grav: ένα διαφορετικό CMS με… βαρύτητα.

Γνωρίστε ένα ξεχωριστό, flat-file σύστημα διαχείρισης περιεχομένου. Γρήγορο, ευέλικτο, προσαρμόσιμο, τι άλλο θα μπορούσε να ζητήσει κανείς;

Μπορεί οι δικές μας προσπάθειες να μην καρποφόρησαν τελικά, θα ήταν όμως άδικο να μην αναφερθούμε σε μια εξαιρετική CMS λύση που μπήκε δυναμικά στο χώρο και έχει αρκετά καλές προοπτικές.

Θα μιλήσουμε λοιπόν για το Grav, ένα νέο και ανερχόμενο σύστημα διαχείρισης περιεχομένου, που δημιουργήθηκε για να καλύψει το κενό ανάμεσα στα «μεγάλα» CMS και τις γεννήτριες στατικών ιστοσελίδων.

Είναι βεβαίως έργο ανοιχτού κώδικα, υπό άδεια MIT, και αυτή τη στιγμή έχει 138 συνεισφέροντες. Η βασική του ομάδα αποτελείται από τέσσερα άτομα, ενώ ο lead developer και εμπνευστής του έργου (Andy Miller) είναι και συν-δημιουργός του Joomla.

Η ανάπτυξη του έργου χρηματοδοτείται από εταιρεία που συνέστησαν οι βασικοί προγραμματιστές του για να προσφέρουν υπηρεσίες υποστήριξης γύρω από το ίδιο το Grav αλλά και (κυρίως) από δωρεές. Ταυτόχρονα, συμμετέχει στο Open Collective, γεγονός που προσφέρει διαφάνεια στη διαχείριση των οικονομικών του πόρων.

Τεχνικά χαρακτηριστικά

  • Το Grav είναι δημιουργημένο σε PHP και κάνει χρήση της Twig για τη δημιουργία προτύπων πάνω στη γλώσσα αυτή
  • Βασίζεται σε flat-file σύστημα, άρα δεν έχει βάση δεδομένων και τον πρόσθετο φόρτο (αλλά και τους δυνητικούς κινδύνους) που επιφέρει η συντήρησή της
  • Το περιεχόμενό του δημιουργείται δυναμικά από Markdown αρχεία μέσω του Parsedown, το οποίο προσφέρει και υποστήριξη για Markdown Extra
  • Αξιοποιεί τη YAML για τα αρχεία ρυθμίσεών του
  • Διαθέτει ενσωματωμένη δυνατότητα caching με την Doctrine Cache. Σε συνδυασμό με το προηγούμενο χαρακτηριστικό, αυτό σημαίνει ότι δε θα χρειαστεί να κάνετε rebuild ολόκληρη την ιστοσελίδα σας κάθε φορά που πραγματοποιείτε κάποια αλλαγή και φυσικά αποτελεί συγκριτικό πλεονέκτημα έναντι των static site generators
  • Έχει επίσης το Gregwar Image Library, μια βιβλιοθήκη που του προσδίδει δυνατότητες επεξεργασίας εικόνων (αλλαγή μεγέθους, προσθήκη εφέ κλπ.)
  • Μπορεί να λειτουργήσει ως headless εγκατάσταση για όσους το προτιμούν (διαθέτει και CLI εργαλείο) ή με την προσθήκη του panel διαχείρισης για εκείνους που επιθυμούν μια τέτοια λύση
  • Ενσωματώνει ορισμένα συστατικά του Symphony για το χειρισμό των events λειτουργίας του και την CLI διεπαφή
  • Συνοδεύεται από σύστημα εγκατάστασης θεμάτων εμφάνισης αλλά και πρόσθετων, με 99 θέματα -τα περισσότερα από τα οποία διαθέτουν live demo για να τα δείτε στην πράξη- και 260 πρόσθετα να είναι διαθέσιμα δωρεάν
grav2
Το panel διαχείρισης

Επιμέρους χαρακτηριστικά

Το πρώτο commit κώδικα για το Grav έγινε το 2014, με την έκδοση 1.0 να έρχεται το 2015. Μέσα σε αυτά τα λίγα χρόνια έχει καταφέρει να βρίσκεται στην πρώτη εικοσάδα των PHP έργων με τα περισσότερα αστέρια στο GitHub, έχει αποσπάσει τα βραβεία «Best Open Source CMS 2016» και «Best Flat File CMS 2017» από το CMS Critic1, ενώ έχει δημιουργηθεί και μια πολύ φιλική κοινότητα γύρω από αυτό.

Εγκατάσταση και χρήση

Οι μοναδικές απαιτήσεις για την εγκατάσταση του Grav είναι ένας server με έκδοση της PHP μεγαλύτερη ή ίση με την 5.5.9. Ναι, μόνο αυτό.

Θα κατεβάσετε ένα από τα δύο διαθέσιμα zip πακέτα (Grav Core ή Grav Core + Admin Plugin), θα το αποσυμπιέσετε στο server σας και θα κατευθυνθείτε στο ανάλογο URL. Αν εγκαταστήσατε το Core πακέτο, θα χρειαστεί να δημιουργήσετε ένα λογαριασμό διαχειριστή από το CLI εργαλείο. Σε διαφορετική περίπτωση μπορείτε να κάνετε το ίδιο από το panel διαχείρισης κατά την πρώτη σας επίσκεψη.

Κατεβάστε το Grav

Στην ίδια επίσκεψη επίσης θα σας αναφέρει αν λείπει κάποιο απαιτούμενο συστατικό και θα γίνουν precompiled ορισμένα αρχεία ώστε να λειτουργεί η cache από την πρώτη στιγμή.

Ένας εναλλακτικός τρόπος εγκατάστασης είναι η χρήση «σκελετών». Ένας «σκελετός» δεν είναι παρά το βασικό αρχείο εγκατάστασης, στο οποίο έχει προστεθεί κάποιο θέμα εμφάνισης και περιεχόμενο-δείγμα, για να έχετε μια πιο πλήρη πρώτη επαφή και να κατανοήσετε καλύτερα τις λειτουργίες.

Για τις βασικές του ρυθμίσεις χρησιμοποιούνται τα αρχεία system.yaml και site.yaml, τα οποία θα τα βρείτε στη διαδρομή /system/config και θα τα αντιγράψετε στο φάκελο /user/config πριν κάνετε τις αλλαγές σας ώστε αυτές να διατηρηθούν σε μελλοντική αναβάθμιση. Αν έχετε το panel, μπορείτε φυσικά να πραγματοποιείτε ρυθμίσεις μέσα από αυτό και τα ανάλογα αρχεία αντιγράφονται αυτόματα στην κατάλληλη τοποθεσία.

Υπάρχουν διαθέσιμες αρκετές ρυθμίσεις, για τον τίτλο της ιστοσελίδας σας και τη ζώνη ώρας μέχρι το είδος της cache (π.χ. Redis, APCu) αλλά και τον τύπο των πολυμέσων που θα επιτρέψετε.

Για το Grav τα πάντα είναι σελίδες (Pages στη γλώσσα του). Είτε πρόκειται για τις εσωτερικές υποσελίδες της ιστοσελίδας σας ή το μενού είτε για άρθρα και λοιπές αναρτήσεις, η λογική είναι ακριβώς ίδια και έχει ομοιότητες με ορισμένους static site generators. Υπάρχουν τρεις τύποι σελίδων: standard, listing και modular. Ο πρώτος είναι ένας γενικός τύπος HTML σελίδας, ο δεύτερος έχει τη μορφή λίστας (όπως ας πούμε οι αναρτήσεις σε ένα τυπικό blog) και ο τρίτος αποτελείται από υποενότητες, οι οποίες με τη σειρά τους είναι υποσελίδες που η κάθε μία σχηματίζει έναν τομέα και όλες μαζί μία HTML σελίδα.

Δεν έχει κάποια κεντρική βιβλιοθήκη πολυμέσων αλλά κάθε τέτοιο αρχείο κατοικεί στον υποφάκελο της σελίδας του, κάτι που οδηγεί σε πιο «συγυρισμένο» αποτέλεσμα για το σύστημα αρχείων.

Ανάλογα με το θέμα εμφάνισης, θα βρείτε τα σχετικά Twig πρότυπα στο φάκελο /user/themes/xxxx/templates. Οποιαδήποτε σελίδα είναι ένας υποφάκελος μέσα στο /user/pages και ένα Markdown αρχείο με ονομασία αντίστοιχη με το εκάστοτε πρότυπο. Αντίστοιχα, κάθε Markdown αρχείο αποτελείται από δύο ενότητες. Προηγείται πάντα το frontmatter που είναι σε YAML και περιέχει στοιχεία για τη σελίδα όπως ο τίτλος, η διαδρομή της (slug) και η ημερομηνία δημοσίευσης, και ακολουθεί το κυρίως περιεχόμενο της σελίδας.

Αν για παράδειγμα θέλετε μια σελίδα με φόρμα επικοινωνίας και το πρότυπο είναι το form.html.twig, το μόνο που έχετε να κάνετε είναι να φτιάξετε το φάκελο /user/pages/contact και μέσα σε αυτόν το αρχείο form.md, το οποίο θα συμπληρώσετε όπως θέλετε. Έτσι θα δημιουργηθεί η σελίδα https://your-domain/contact που θα περιέχει τη φόρμα -η οποία θα αντληθεί αυτόματα από το πρότυπο- και ό,τι άλλο θέλετε, χωρίς να χρειαστεί να γράψετε ούτε μια γραμμή HTML.

Στα εξέχοντα χαρακτηριστικά του Grav συγκαταλέγεται και το πολύ δυνατό σύστημα ταξινομίας με ετικέτες, κατηγορίες, συντάκτες, ημερομηνίες και διάφορους άλλους τρόπους που μεταχειρίζονται τα μεταδεδομένα των σελίδων, όπως επίσης μπορεί να δημιουργήσει και συλλογές σελίδων (Page Collections) με βάση συγκεκριμένα χαρακτηριστικά που έχουν αυτές. Τα περιεχόμενα των συλλογών μπορούν και αυτά να ταξινομηθούν ως προς ορισμένα χαρακτηριστικά τους, όπως ένα εύρος ημερομηνιών ή ο τίτλος, και να προβληθούν με σελιδοποίηση.

Φυσικά επιδέχεται custom προσαρμογές σε πάρα πολλές περιπτώσεις, αν έχετε σχετικές γνώσεις και ξέρετε πώς να το κάνετε. Υπάρχει βεβαίως και λειτουργία αποσφαλμάτωσης με προβολή μέσα στη σελίδα, καταγραφή σε κάποιο log αρχείο ή/και μια πολύ απλή μπάρα που εμφανίζεται στο κάτω μέρος.

grav3
Ο επεξεργαστής κειμένου

Αναλυτικές πληροφορίες για όλα τα παραπάνω και πολλά περισσότερα για τη χρήση και τις δυνατότητές του θα βρείτε στην πραγματικά εξαιρετική τεκμηρίωσή του, που ενημερώνεται τακτικά.

Οι δικές μας εντυπώσεις

Έχοντας εξετάσει εντατικά το Grav σε διάστημα αρκετών μηνών, μπορούμε να πούμε ότι αξίζει να του ρίξετε μια ματιά αν σκοπεύετε να φτιάξετε κάποια ιστοσελίδα ή ένα blog. Έχει ποιότητα ως έργο και κάποια ιδιαίτερα χαρακτηριστικά, και θα σας ικανοποιήσει αν οι ανάγκες σας δεν είναι τόσες πολλές όσο αυτά που προσφέρει ένα «διάσημο» σύστημα διαχείρισης περιεχομένου ή δε θέλετε μια περίπτωση όπου θα αναγκαστείτε να κάνετε τα πάντα «με το χέρι».

Σίγουρα δεν είναι τόσο «εύκολο» όσο μια πλήρως αυτοματοποιημένη λύση, από την άλλη όμως συνηθίζεται πολλές φορές οι χρήστες να χρησιμοποιούν κάποιο mainstream CMS ακριβώς επειδή είναι τέτοιο και χωρίς να κατανοούν στην πραγματικότητα τις λειτουργίες του.

Δεν απαιτεί όμως εξειδικευμένες γνώσεις. Η Markdown είναι απλή στην κατανόησή της και ενδεχομένως να τη χρησιμοποιείτε ήδη σε κάποια εφαρμογή, η YAML το ίδιο, ενώ και η Twig κάνει την PHP πιο «προσβάσιμη».

Στα δυνατά του σημεία προσμετράται επίσης και η φορητότητά του, αφού για τη μεταφορά σε άλλο server θα χρειαστεί απλά να αντιγράψετε το φάκελό του (στην πραγματικότητα μόνο ο φάκελος /user είναι απαραίτητος).

Ένα βασικό αρνητικό του –που ισχύει εξίσου για όλες τις αντίστοιχες λύσεις– είναι ότι, εφόσον δε διαθέτει βάση δεδομένων, έχει ένα θεωρητικό ανώτατο όριο στον αριθμό των σελίδων που μπορεί να περιέχει. Δεν υπάρχει πραγματικό όριο και όλα εξαρτώνται από το είδος του περιεχομένου, της cache και του server αλλά από κάποιες χιλιάδες σελίδες και πάνω θα αρχίσουν να εμφανίζονται καθυστερήσεις στη φόρτωση, χωρίς όμως «ακρότητες» που παρουσιάζουν άλλες εναλλακτικές (λ.χ. το Jekyll) όπως το να διαρκεί μία ολόκληρη ώρα το rebuild της ιστοσελίδας. Αυτό είναι κάτι που προφανώς το γνωρίζουν οι προγραμματιστές του και σκοπεύουν να το βελτιώσουν σε επόμενες εκδόσεις.

Ένα δεύτερο αρνητικό είναι το ότι, πέρα από ένα third party εργαλείο για το WordPress που όμως δεν είναι και τόσο αποτελεσματικό, δεν υπάρχουν διαθέσιμα συστήματα για τη μετατροπή περιεχομένου από κάποια άλλη CMS πλατφόρμα. Έτσι, αν τυχόν έχετε ήδη μια ιστοσελίδα, θα χρειαστεί να αναζητήσετε έμμεσους τρόπους, που συνήθως περιλαμβάνουν τη μετατροπή σε Markdown για κάποιο static site generator ή τη χρήση custom scripts.

Σε γενικές γραμμές όμως, το Grav έχει σίγουρα κάτι να προσφέρει και δεν είναι «άλλη μία εναλλακτική» στον υπερπληθυσμό των CMS, όπως διάφορα για τα οποία δυσκολευόμαστε να εντοπίσουμε το λόγο ύπαρξής τους. Μπορεί άνετα να αποτελέσει τη βάση για τη δημιουργία ενός απλού wiki, μιας «landing page» για κάποιο προϊόν, ενός προσωπικού blog ή ακόμα και μιας σύνθετης ιστοσελίδας. Απλά δοκιμάστε το.

Η ιστοσελίδα του Grav Το Grav στο GitHub

Μοιραστείτε μαζί μας τις σκέψεις σας

avatar
  Εγγραφή  
Ειδοποίηση για

Σας ενημερώνουμε ότι η ιστοσελίδα μας ακολουθεί ειδικό πρόγραμμα διατροφής και μασουλάει φρεσκοψημένα cookies Καλά μωρέ Θέλω να μάθω περισσότερα