Validator TOML
Επικυρώστε αρχεία TOML όπως τα Cargo.toml, pyproject.toml ή τις ρυθμίσεις Hugo και Netlify πριν προκαλέσουν αποτυχία μιας διαδικασίας build. Ο validator αναλύει την είσοδο σύμφωνα με την προδιαγραφή TOML και αναφέρει το πρώτο σφάλμα μαζί με τη γραμμή, τη στήλη και την εξήγηση του parser, συμπεριλαμβανομένων διπλότυπων κλειδιών, επαναπροσδιορισμένων πινάκων και αδύνατων ημερομηνιών. Για τα έγκυρα αρχεία εμφανίζει τον αριθμό των πινάκων και των κλειδιών, καθώς και τα κλειδιά ανώτατου επιπέδου, ώστε να επιβεβαιώσετε τη δομή με μια ματιά.
Συχνές ερωτήσεις
Τι ελέγχει ο validator TOML;
Αναλύει κλειδιά, συμβολοσειρές, αριθμούς, boolean, ημερομηνίες και ώρες, πίνακες, ενσωματωμένους πίνακες, πίνακες και πίνακες πινάκων ακριβώς όπως τα ορίζει η προδιαγραφή TOML. Κάθε απόκλιση, όπως μια τιμή που λείπει, μια συμβολοσειρά χωρίς εισαγωγικά ή μια εσφαλμένη ακολουθία διαφυγής, αναφέρεται ως σφάλμα. Για τα έγκυρα αρχεία εμφανίζεται μια σύντομη σύνοψη της δομής τους.
Ποιες πληροφορίες περιλαμβάνει ένα σφάλμα;
Κάθε σφάλμα εμφανίζει τη γραμμή και τη στήλη όπου σταμάτησε η ανάλυση, καθώς και μια γραμμή λεπτομερειών από τον parser, για παράδειγμα «μη έγκυρη ημερομηνία» ή προσπάθεια επαναπροσδιορισμού ήδη ορισμένου πίνακα ή τιμής. Οι γραμμές και οι στήλες ξεκινούν από το 1. Εμφανίζεται μόνο το πρώτο σφάλμα, επειδή τα επόμενα συχνά προκύπτουν από αυτό.
Γιατί αναφέρεται ότι ένα κλειδί ή ένας πίνακας έχει επαναπροσδιοριστεί;
Το TOML δεν επιτρέπει να υπάρχει δύο φορές το ίδιο κλειδί σε έναν πίνακα, ενώ μια επικεφαλίδα πίνακα όπως [server] μπορεί να εμφανιστεί μόνο μία φορά. Η δήλωση ενός κλειδιού με τελείες, όπως server.port, μετά από έναν πίνακα [server] στον οποίο έχει ήδη οριστεί το port θεωρείται επίσης επαναπροσδιορισμός. Συγχωνεύστε τις καταχωρίσεις σε ένα σημείο για να το διορθώσετε.
Πώς υπολογίζονται οι πίνακες και τα κλειδιά;
Η μέτρηση των πινάκων περιλαμβάνει κάθε πίνακα κάτω από τη ρίζα, συμπεριλαμβανομένων των ενσωματωμένων πινάκων και κάθε καταχώρισης ενός πίνακα πινάκων. Η μέτρηση των κλειδιών περιλαμβάνει κάθε κλειδί που περιέχει τιμή διαφορετική από πίνακα ή πίνακα πινάκων, επομένως μια λίστα συμβολοσειρών υπολογίζεται ως ένα κλειδί. Η λίστα κλειδιών ανώτατου επιπέδου εμφανίζει τα ονόματα στη ρίζα, έως 50.
Ελέγχονται οι ημερομηνίες και οι ώρες;
Ναι. Επικυρώνονται ημερομηνίες και ώρες με μετατόπιση ζώνης ώρας, τοπικές ημερομηνίες και ώρες, τοπικές ημερομηνίες και τοπικές ώρες, συμπεριλαμβανομένων αδύνατων τιμών όπως ο μήνας 13 ή η ώρα 25. Μια ημερομηνία γραμμένη σε άλλη μορφή, για παράδειγμα 05/27/1979, δεν είναι ημερομηνία TOML και πρέπει να μπει σε εισαγωγικά ως συμβολοσειρά.
Ποιες συμβολοσειρές και ακολουθίες διαφυγής επιτρέπονται;
Οι βασικές συμβολοσειρές σε διπλά εισαγωγικά υποστηρίζουν ακολουθίες διαφυγής όπως \n, \t, \" και \uXXXX, ενώ οι κυριολεκτικές συμβολοσειρές σε μονά εισαγωγικά διατηρούν κάθε χαρακτήρα όπως είναι γραμμένος. Και οι δύο τύποι έχουν μορφές πολλών γραμμών με τρία εισαγωγικά. Μια άγνωστη ακολουθία διαφυγής ή μια συμβολοσειρά που δεν τερματίζεται αναφέρεται μαζί με τη θέση της.
Γίνονται δεκτοί πολύ μεγάλοι ακέραιοι;
Ναι. Γίνονται δεκτοί ακέραιοι έως το όριο των 64 bit της προδιαγραφής TOML, όπως ο 9223372036854775807. Οι ακέραιοι πέρα από αυτό το εύρος, τα αρχικά μηδενικά και οι κάτω παύλες που δεν βρίσκονται ανάμεσα σε ψηφία αποτελούν σφάλματα.
Προκαλεί προβλήματα ένα byte order mark ή η αλλαγή γραμμής Windows;
Όχι. Ένα byte order mark UTF-8 στην αρχή αγνοείται, ενώ γίνονται δεκτές αλλαγές γραμμής τόσο LF όσο και CRLF. Οι χαρακτήρες ελέγχου μέσα σε συμβολοσειρές που δεν έχουν διαφύγει αναφέρονται ως σφάλματα.
Ελέγχει τη σημασία των κλειδιών, όπως θα έκανε το Cargo ή το Poetry;
Όχι, ο validator ελέγχει μόνο τη σύνταξη και τη δομή του TOML. Ένα αρχείο μπορεί να είναι έγκυρο TOML και παρ' όλα αυτά να περιέχει κλειδί που δεν αναγνωρίζει το Cargo ή ένα backend build της Python. Χρησιμοποιήστε το εργαλείο για να αποκλείσετε προβλήματα σύνταξης πριν εξετάσετε ρυθμίσεις ειδικές για κάθε εργαλείο.
Πόσο μεγάλο μπορεί να είναι το input και μπορώ να το μετατρέψω;
Οι είσοδοι μπορούν να έχουν μέγεθος έως 5 MiB, ενώ οι εμφωλευμένοι πίνακες και οι ενσωματωμένοι πίνακες μπορούν να φτάνουν έως τα 64 επίπεδα βάθους. Για να μετατρέψετε έγκυρο TOML σε JSON, YAML ή άλλη μορφή, χρησιμοποιήστε τον Μετατροπέα μορφών δεδομένων.