-
Wiki markup σε απλές ιστοσελίδες
-
Πρόσφατα αναρωτήθηκα αν θα συνέφερε να χρησιμοποιώ κάποιο wiki-style markup για τις στατικές σελίδες του ιστοχώρου, κυρίως για να δημιουργούνται αυτόματα τα βασικά: παράγραφοι, επικεφαλίδες, λίστες και σύνδεσμοι. Αποδείχτηκε πολύ εύκολο τελικά.
Καταρχάς χρειάστηκε ένα επιπλέον πακέτο στην PHP, το Text/Wiki (πακέτο της βιβλιοθήκης PEAR):
# pear install text_wiki downloading Text_Wiki-1.0.0.tgz ... Starting to download Text_Wiki-1.0.0.tgz (47,569 bytes) .............done: 47,569 bytes install ok: Text_Wiki 1.0.0
Στο σημείο αυτό χρειάστηκε να αλλάξω ένα αρχείο της βιβλιοθήκης για να υποστηρίζει σωστά το UTF-8 encoding, ακολουθώντας τις οδηγίες στα σχόλια της τεκμηρίωσης της βιβλιοθήκης.
Το δεύτερο βήμα ήταν να φτιάξω μια συνάρτηση η οποία θα καλεί τη βιβλιοθήκη και θα μετατρέπει ένα wiki-κείμενο σε XHTML.
Αυτό ήταν. Για να δούμε με ένα παράδειγμα…
…τυμπανοκρουσίες αγωνίας πριν το rendering…
**Γειά! Είμαι ένα παράδειγμα κειμένου wiki.** Αυτό το κείμενο περιέχει //emphasized// και **strong** κείμενο. Επίσης, @@--- αυτό διαγράφηκε @@ και @@ +++ αυτό εισήχθηκε@@ μετά τη συγγραφή του. +++ Επικεφαλίδα επιπέδου 3 ++++ Επικεφαλίδα επιπέδου 4 # Νούμερο 1 * Λίστα * Λίστα * Υπο-λίστα # Υπο-υπο-αριθμός # Υπο-υπο-αριθμός # Νούμερο 2 * Λίστα * Λίστα Αυτό εδώ είναι κανονικό κείμενο > Μπλοκ κειμένου (blockquote) > Ακόμη ένα μπλοκ, το οποίο περιέχει... >> Ένα εσωτερικό μπλοκ. Λα λα λα, όλα καλά \ όλα ανθηρά! Πίσω στο κανονικό κείμενο.
Έτοιμο! Για του λόγου το αληθές, η αρχική σελίδα του ιστοχώρου είναι γραμμένη σε
wiki-formatMarkdown πλέον.Προφανώς, δεν πρόκειται να αντικαταστήσει πλήρως την χειρόγραφη HTML. Γι’ αυτό, όπου βλέπεις πως δε σε βολεύει, ρίχνεις ένα ζευγάρι διπλών backticks (
don't-parse-me-please
) και γράφεις ό,τι θα έγραφες κανονικά (από HTML μέχρι και PHP).Η βιβλιοθήκη θέλει λίγο ρεγουλάρισμα φυσικά. Ήδη την πείραξα ώστε να υποστηρίζει σχετικά URL (χωρίς http:// μπροστά). Επίσης, σε μια πιο καθαρή προσέγγιση θα μπορούσε κανείς να περικλείσει το wiki κείμενο σε δύο XML tags (π.χ.
<wikitext language="php">μπλα μπλα</wikitext>
), ώστε το αρχείο να περιέχει καθαρή XML αντί ανακατεμένες HTML+PHP.Ό,τι χρειαστεί, στην πορεία…
Το Markdown είναι επίσης καλό, ενώ υπάρχει ήδη υλοποίηση σε PHP.
Διάολε.
Δεν είχα προσέξει ότι το Markdown είχε υλοποίηση σε PHP. :#