Μετατροπή κειμένου σε slug (URL)

Ένα επαγγελματικό εργαλείο μετατροπής κειμένου σε slug που ομαλοποιεί το κείμενο σε slug φιλικά προς το URL, υποστηρίζει μετατροπή σε πεζά, προσαρμόσιμα διαχωριστικά και αφαίρεση κοινών αγγλικών λέξεων σύνδεσης. Χρησιμοποιεί κανονικοποίηση Unicode για τη διαχείριση χαρακτήρων από τις περισσότερες γλώσσες, διασφαλίζοντας ότι τα slug που δημιουργούνται ακολουθούν τις βέλτιστες πρακτικές SEO. Ιδανικό για διευθύνσεις URL αναρτήσεων ιστολογίου, ονομασία αρχείων, αναγνωριστικά βάσεων δεδομένων και άλλες περιπτώσεις. Όλη η επεξεργασία γίνεται τοπικά για την προστασία της ιδιωτικότητάς σας – δεν απαιτείται εγγραφή. Παρέχει λεπτομερείς οδηγίες χρήσης και προτάσεις βέλτιστων πρακτικών για να σας βοηθήσει να δημιουργήσετε υψηλής ποιότητας slugs.

Παράμετροι & Είσοδος

Συνιστάται: χρήση - ή _, μήκος 1~3 χαρακτήρες

Αποτέλεσμα

Γιατί να χρησιμοποιήσετε το Slugify;

🔍 Βελτιστοποίηση SEO

Οι λέξεις κλειδιά στις διευθύνσεις URL βοηθούν τις μηχανές αναζήτησης να κατανοήσουν το περιεχόμενο της σελίδας και να βελτιώσουν την κατάταξή της. Για παράδειγμα, το example.com/blog/how-to-learn-javascript είναι πιο αποτελεσματικό από το example.com/blog/123.

👁️ Αναγνωσιμότητα & Κοινή χρήση

Οι χρήστες μπορούν να κατανοήσουν αμέσως το περιεχόμενο από τη διεύθυνση URL. Τα slugs είναι πιο κοινόχρηστα στα μέσα κοινωνικής δικτύωσης και πιο εύκολο να τα θυμάστε ή να τα πληκτρολογήσετε χειροκίνητα.

💻 Συμβατότητα συστήματος

Αποφυγή σφαλμάτων που προκαλούνται από ειδικούς χαρακτήρες στα ονόματα αρχείων ή στις διευθύνσεις URL. Εξασφαλίζει τη διασταυρούμενη συμβατότητα πλατφορμών (Windows/Linux/macOS) και αποτρέπει προβλήματα κωδικοποίησης.

🗄️ Φιλικό προς τη βάση δεδομένων

Χρησιμοποιούνται ως μοναδικά αναγνωριστικά (π.χ. ονόματα χρήστη, ετικέτες) για μείωση των κινδύνων εισαγωγής SQL injection και βελτίωση της απόδοσης της ευρετηρίασης και των ερωτημάτων.

Τι είναι το Slugify;

Ένα slug είναι μια συντομευμένη, τυποποιημένη έκδοση κειμένου που χρησιμοποιείται ως URL, όνομα αρχείου ή αναγνωριστικό. Η συνήθης επεξεργασία περιλαμβάνει τυποποίηση πεζών/κεφαλαίων, αφαίρεση σημείων στίξης και σύνδεση λέξεων με διαχωριστικά.

  • Προτεραιότητα ASCII: Αφαίρεση τόνων και συμβόλων, διατήρηση μόνο αλφαριθμητικών χαρακτήρων και κενών
  • Συμβατό με Unicode: Ομαλοποίηση των περισσότερων χαρακτήρων γλωσσών με NFKD πριν την επεξεργασία
  • Φιλικό προς το URL: Η έξοδος περιέχει μόνο γράμματα, αριθμούς και διαχωριστικά – έτοιμη για άμεση χρήση σε διαδρομές

Περιπτώσεις χρήσης

Διευθύνσεις URL αναρτήσεων ιστολογίου

How to Learn JavaScript?

how-to-learn-javascript

Ονομασία αρχείων

Product Requirements Document v2.0.docx

product-requirements-v2-0.docx

Αναγνωριστικό βάσης δεδομένων

用户-张三

user-zhang-san

Συχνές ερωτήσεις

Ε: Πώς αντιμετωπίζονται οι κινέζικοι χαρακτήρες;

Α: Από προεπιλογή, αφαιρούνται οι τονισμένες γραμμές και διατηρούνται τα γράμματα pinyin. Το καθαρό κινέζικο κείμενο ενδέχεται να είναι κενό: συνιστάται η μετατροπή χειροκίνητα σε pinyin πριν από το slugification ή η χρήση εργαλείου μετατροπής κινέζικου pinyin.

Ε: Γιατί το αποτέλεσμα μου είναι κενό;

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

Ε: Πρέπει να χρησιμοποιήσω το - ή το _ ως διαχωριστικό;

Α: Για το SEO, χρησιμοποιήστε το - (ενωτικό), καθώς το Google το αντιμετωπίζει ως κενό. Το _ (κανονισμός κωδικού) αντιμετωπίζεται ως σύμβολο σύνδεσης, το οποίο εμποδίζει τον διαχωρισμό λέξεων. Για τα ονόματα αρχείων, οποιοδήποτε από τα δύο είναι αποδεκτό.

Ε: Υπάρχει όριο μήκους για τα slugs;

Α: Δεν υπάρχει τεχνικό όριο, αλλά συνιστάται να διατηρήσετε τα slugs κάτω από 50 χαρακτήρες για καλύτερη εμφάνιση της διεύθυνσης URL και το SEO. Τα υπερβολικά μακριά slugs ενδέχεται να αποκοπούν από τις μηχανές αναζήτησης.

Βέλτιστες πρακτικές

Προτεινόμενες πρακτικές

  • ✓ Κρατήστε το σύντομα (προτεινόμενο < 50 χαρακτήρες)
  • ✓ Αποφύγετε ειδικούς χαρακτήρες· χρησιμοποιήστε μόνο γράμματα, αριθμούς και διαχωριστικά
  • ✓ Χρησιμοποιήστε πεζά για την αποφυγή προβλημάτων ευαισθησίας πεζού/κεφαλαίου
  • ✓ Αφαιρέστε τις συνηθισμένες λέξεις (stopwords) για βελτίωση της σημασιολογικής πυκνότητας

Αποφύγετε αυτές τις πρακτικές

  • ✗ Μην συμπεριλάβετε ευαίσθητες πληροφορίες (π.χ. αναγνωριστικά, email, κωδικούς πρόσβασης)
  • ✗ Μην χρησιμοποιείτε ειδικούς χαρακτήρες (π.χ. @#$%^&*)
  • ✗ Μην διατηρείτε κενά ή συνεχόμενα διαχωριστικά
  • ✗ Μην επαναλαμβάνετε την ίδια λέξη

Τεχνικές Λεπτομέρειες

Κανονικοποίηση Unicode:

Χρησιμοποιεί αποσύνθεση NFKD + αφαίρεση συνδυαστικών διακριτικών (\p{M}), μετατρέποντας το Café σε Cafe. Υποστηρίζει τους περισσότερους λατινικούς χαρακτήρες.

Λίστα συνηθισμένων λέξεων (stopwords):

Βασίζεται σε κοινές αγγλικές λέξεις (a/an/the/and/or/of/to/in/on/for/at/by/with· προσαρμόσιμη. Οι κινέζικες συνηθισμένες λέξεις απαιτούν ξεχωριστή处理.

Συμβατότητα με προγράμματα περιήγησης:

Απαιτεί υποστήριξη για ES6+ και Unicode regex (\p{...}). Υποστηρίζεται σε σύγχρονα προγράμματα περιήγησης: Chrome 64+, Firefox 78+, Safari 11.1+.

Πώς να δημιουργήσετε ένα slug μέσω μιας γλώσσας προγραμματισμού;

JavaScript

function slugify(text) {
  return text
    .toLowerCase()
    .normalize("NFKD")
    .replace(/[\u0300-\u036f]/g, "")
    .replace(/[^\w\s-]/g, "")
    .trim()
    .replace(/[\s_-]+/g, "-")
    .replace(/^-+|-+$/g, "");
}

PHP

function slugify($text) {
  $text = mb_strtolower($text);
  $text = iconv("UTF-8", "ASCII//TRANSLIT", $text);
  $text = preg_replace("/[^\w\s-]/", "", $text);
  $text = preg_replace("/[\s_-]+/", "-", $text);
  return trim($text, "-");
}

Python

import re
import unicodedata

def slugify(text):
    text = text.lower()
    text = unicodedata.normalize("NFKD", text)
    text = text.encode("ascii", "ignore").decode("ascii")
    text = re.sub(r"[^\w\s-]", "", text)
    text = re.sub(r"[\s_-]+", "-", text)
    return text.strip("-")

Go

import (
    "regexp"
    "strings"
    "golang.org/x/text/unicode/norm"
)

func Slugify(text string) string {
    text = strings.ToLower(text)
    text = norm.NFKD.String(text)
    re := regexp.MustCompile(`[^\w\s-]`)
    text = re.ReplaceAllString(text, "")
    re = regexp.MustCompile(`[\s_-]+`)
    text = re.ReplaceAllString(text, "-")
    return strings.Trim(text, "-")
}

Ruby

require "unicode"

def slugify(text)
  text = text.downcase
  text = Unicode.nfkd(text).gsub(/[^\x00-\x7F]/, "")
  text = text.gsub(/[^\w\s-]/, "")
  text = text.gsub(/[\s_-]+/, "-")
  text.strip.gsub(/^-+|-+$/, "")
end

Java

import java.text.Normalizer;

public static String slugify(String text) {
    text = text.toLowerCase();
    text = Normalizer.normalize(text, Normalizer.Form.NFKD);
    text = text.replaceAll("[^\\w\\s-]", "");
    text = text.replaceAll("[\\s_-]+", "-");
    return text.replaceAll("^-+|-+$", "");
}