Στατική επισήμανση σύνταξης


Η στατική επισήμανση σύνταξης είναι η επισήμανση κώδικα που ο χρήστης δεν μπορεί να αλλάξει. Σε αυτήν περιλαμβάνονται αποσπάσματα κώδικα, επαναλήψεις και άλλα.

Note

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

Υλοποίηση

Η στατική επισήμανση σύνταξης γίνεται με τη βιβλιοθήκη highlightjs.

Όταν προσθέτεις υποστήριξη για τη γλώσσα σου, υπάρχουν τρεις επιλογές:

  1. Η γλώσσα υποστηρίζεται αμέσως από το highlightjs (δηλαδή αναφέρεται ως υποστηριζόμενη γλώσσα). Αν ισχύει αυτό, συνέχισε στην ενότητα Ρύθμιση του track.
  2. Η γλώσσα υποστηρίζεται μέσω ενός υπάρχοντος plugin του highlightjs. Αν ισχύει αυτό, συνέχισε στην ενότητα Χρήση ενός υπάρχοντος plugin.
  3. Η γλώσσα δεν υποστηρίζεται. Τώρα υπάρχουν τρεις επιλογές:
    1. Γράψε ένα plugin του highlightjs από το μηδέν, όπως περιγράφεται στην ενότητα Δημιουργία ενός νέου plugin.
    2. Η σύνταξη της γλώσσας σου (σχεδόν) μοιάζει με τη σύνταξη μιας άλλης γλώσσας (π.χ. η σύνταξη της Unison μοιάζει με της Haskell), οπότε θα μπορούσες να χρησιμοποιήσεις την επισήμανση σύνταξης εκείνης της γλώσσας για τη δική σου. Δες την ενότητα Ρύθμιση του track για περισσότερες πληροφορίες.
    3. Να μην έχεις στατική επισήμανση σύνταξης.

Ρύθμιση του track

Για να ενεργοποιήσεις την υποστήριξη του highlightjs για τη γλώσσα του track σου, θα χρειαστεί να τροποποιήσεις το αρχείο config.json του track. Μέσα στο αρχείο config.json, πρόσθεσε/όρισε το κλειδί online_editor.highlightjs_language στο κατάλληλο αναγνωριστικό γλώσσας του highlightjs (το οποίο θα βρεις στην τεκμηρίωση).

Παράδειγμα

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

Χρήση ενός υπάρχοντος plugin

Για να χρησιμοποιήσεις ένα υπάρχον plugin, πρέπει να είναι δημοσιευμένο στο NPM. Αν το plugin δεν είναι δημοσιευμένο στο NPM, μπορείς είτε:

  1. Να ρωτήσεις τον δημιουργό του plugin αν θέλει να το δημοσιεύσει στο NPM.
  2. Να κάνεις fork το αποθετήριο και να το δημοσιεύσεις μόνος σου.
  3. Να κάνουμε εμείς (το Exercism) fork το αποθετήριο και να το δημοσιεύσουμε. Για να γίνει αυτό, άνοιξε ένα θέμα στο φόρουμ ζητώντας το.

Το επόμενο βήμα είναι να ενεργοποιήσεις το plugin.

Ενεργοποίηση του plugin

Για να ενεργοποιήσεις ένα plugin (το οποίο πρέπει να είναι δημοσιευμένο στο NPM), άνοιξε ένα θέμα στο φόρουμ ζητώντας μας να προσθέσουμε υποστήριξη για το plugin στον ιστότοπο. Εμείς (το Exercism) θα δημιουργήσουμε τότε ένα Pull Request που προσθέτει το plugin στον ιστότοπο. Μόλις γίνει merge το PR, μπορείς να ενεργοποιήσεις την υποστήριξη του highlightjs ακολουθώντας τις οδηγίες στην ενότητα Ρύθμιση του track.

Δημιουργία ενός νέου plugin

Αν θέλεις να δημιουργήσεις ένα plugin, έχεις δύο επιλογές για τη φιλοξενία του:

  1. Να δημιουργήσεις ένα αποθετήριο στον προσωπικό σου λογαριασμό και να το δημοσιεύσεις μόνος σου.
  2. Να δημιουργήσουμε εμείς (το Exercism) ένα αποθετήριο και να το δημοσιεύσουμε εμείς. Για να γίνει αυτό, άνοιξε ένα θέμα στο φόρουμ ζητώντας το.

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

Στη συνέχεια, θα χρειαστεί να δημοσιεύσεις το plugin στο NPM. Το επόμενο βήμα είναι να ενεργοποιήσεις το plugin.

Χρήση μιας άλλης γλώσσας

Η σύνταξη της γλώσσας σου (σχεδόν) μοιάζει με τη σύνταξη μιας άλλης γλώσσας, οπότε θα μπορούσες να χρησιμοποιήσεις την επισήμανση σύνταξης εκείνης της γλώσσας για τη δική σου. Για να γίνει αυτό, ρύθμισε το track ώστε να χρησιμοποιεί το αναγνωριστικό γλώσσας του highlightjs της άλλης γλώσσας. Δες την ενότητα Ρύθμιση του track για περισσότερες πληροφορίες.