Slug არის ვებ მისამართის წაკითხვადი ბოლო — მაგალითად my-first-post მისამართში example.com/blog/my-first-post. ეს არის ის ნაწილი, რომელსაც ადამიანი კითხულობს, სანამ გადაწყვეტს დააწკაპუნოს, და რომელსაც საძიებო სისტემა კითხულობს, როგორც გვერდის შინაარსის მოკლე აღწერას. სწორედ ამიტომ, ის იმსახურებს მეტ ყურადღებას, ვიდრე უბრალოდ მონაცემთა ბაზის ID ან თარიღი. ეს უფასო გენერატორი ნებისმიერ ტექსტს აქცევს slug-ად: ჩასვით სათაური ველში „კონვერტაციის ტექსტი“, დააჭირეთ ღილაკს „გენერაცია“ და შედეგი გამოჩნდება მის გვერდით კოპირების ღილაკთან ერთად. საწყისი პარამეტრები არის ის, რასაც საიტების უმეტესობა იყენებს: ქვედა რეგისტრი, ტირეები სიტყვებს შორის, გავრცელებული დამხმარე სიტყვების წაშლა, არალათინური ასოების ტრანსლიტერაცია. ასე რომ, გამოსაყენებელი slug მხოლოდ ერთი დაწკაპუნებით არის ხელმისაწვდომი, და თითოეული ეს გადაწყვეტილება არის პარამეტრი, რომლის შეცვლაც შეგიძლიათ.
ყველაფერი ხდება თქვენს საკუთარ მოწყობილობაზე. გვერდი ტვირთავს მცირე JavaScript ძრავს და უშვებს მას ლოკალურად: თქვენი სათაურები არასდროს იტვირთება სერვერზე, არ ინახება ლოგებში და ინსტრუმენტი აგრძელებს მუშაობას ინტერნეტის გათიშვის შემთხვევაშიც. სწორედ ამიტომ, შედეგი განახლდება პარამეტრის შეცვლისთანავე. მუშაობის თანმიმდევრობის აღნიშვნა ღირს, რადგან ის ხდის შედეგს პროგნოზირებადს: ჩასმული ბმული ჯერ მცირდება ბოლო სეგმენტამდე, შემდეგ ტექსტი გადადის ქვედა რეგისტრში, იშლება stop სიტყვები, არალათინური სიმბოლოები გადის ტრანსლიტერაციას, რის შემდეგაც რიცხვები და სპეციალური სიმბოლოები იშლება, თუ ეს მოითხოვეთ. ის, რაც დარჩება, ერთდება თქვენი გამყოფით, შემდეგ შედეგი იკვეცება მაქსიმალურ სიგრძემდე და ბოლოს, განმეორებად შედეგს ემატება ციფრული სუფიქსი. „კონვერტაციის ტექსტი“ იღებს 500,000-მდე სიმბოლოს ერთ ჯერზე, რაც რამდენიმე ათასი სტატიის სათაურს უდრის.
ერთი ხაზი შემოდის, ერთი slug გადის. ჩასვით სათაურების მთელი სია და თითოეული ხაზი გახდება თავისი ნომრიანი slug, რომლის ზემოთაც ნაცრისფრად გამოჩნდება საწყისი სათაური, ასე რომ ორმოცდაათი ელემენტისგან შემდგარ პარტიაშიც კი შეგიძლიათ გაარჩიოთ რომელი slug რომელ სათაურს ეკუთვნის. სია, რომელიც უკვე ფაილშია, არ არის აუცილებელი გაატაროთ clipboard-ით: ღილაკი „ჩატვირთვა ფაილიდან“, რომელიც შეყვანის ველის გვერდითაა, ხსნის მარტივ ტექსტურ ფაილს — .txt, .csv, .md, .json და ა.შ. — და მის შიგთავსს აგდებს ველში. თქვენი ბრაუზერი კითხულობს ამ ფაილს ზუსტად ისე, როგორც თქვენს აკრეფილ ტექსტს, და ის არსად არ იტვირთება. „ტექსტის დაყოფა“ წყვეტს, როგორ უნდა დაიყოს სია. „ავტომატური“ არის საწყისი პარამეტრი: ახალი ხაზი ყოველთვის გამოყოფს ელემენტებს, ხოლო მძიმე მათ გამოყოფს მხოლოდ მაშინ, როდესაც შეყვანილი ტექსტი არის ერთი ხაზი, რომლის ყველა ნაწილი დამოუკიდებელ მნიშვნელობებს ჰგავს — ამიტომ „ფასი 3,500 ლარი“ და „თავი 5: შედეგები, დასკვნები“ რჩება მთლიანი და არ იშლება ფრაგმენტებად. „ახალი ხაზი“, „მძიმე“ და „ჰარი“ გაძლევთ არჩევანის საშუალებას, როდესაც უკვე იცით თქვენი მონაცემების ფორმატი. „გამოტანის ფორმატი“ წყვეტს, როგორ დაბრუნდება შედეგების პარტია — თითოეული ახალ ხაზზე, „ჰარით გამოყოფილი“ თუ „მძიმით გამოყოფილი“, და ღილაკები „ყველას კოპირება“ და „ფაილში შენახვა“ მას მიჰყვება. „ისტორია“ ინახავს თქვენს ბოლო 10 პარტიას საკუთარ ბრაუზერში, ამიტომ ერთი საათის წინ კონვერტირებული სია ჯერ კიდევ იქ არის.
არალათინური ტექსტი არის ის ნაწილი, რომელსაც slug გენერატორების უმეტესობა დაახლოებით სწორად აკეთებს, მაგრამ ცოტა თუ აკეთებს ზუსტად. URL ყველაზე უსაფრთხოა მარტივ ASCII ფორმატში, ამიტომ კირილიცა, ბერძნული, არაბული, ჩინური და ევროპული აქცენტიანი ასოები უნდა გარდაიქმნას, და ერთადერთი ნამდვილი კითხვა არის ვისი წესით. ეს გვერდი ამ კითხვას პასუხობს ორ დონეზე. ზოგადი დონე მოიცავს ყველა დამწერლობას: ეს არის ტრანსლიტერაციის ბიბლიოთეკა, რომელიც იძლევა ლოგიკურ ASCII პასუხს თითქმის ნებისმიერი სიმბოლოსთვის, რომლის აკრეფაც შეგიძლიათ, რასაც ნიშნავს „ავტომატური (ნებისმიერი ენა)“ ჩამოსაშლელ სიაში „ტრანსლიტერაცია ენიდან“. სპეციფიკური დონე არის ხელით შექმნილი ცხრილების ნაკრები იმ ენებისთვის, სადაც ზოგადი პასუხი არ ემთხვევა ამ ქვეყნებში რეალურად გამოყენებულ სტანდარტს. „ტრანსლიტერაცია ენიდან“ მენიუ ასახელებს მათ, რომლებსაც დღეს აქვთ თავისი ცხრილი, და ეს სია იზრდება ინსტრუმენტში ახალი ენების დამატებასთან ერთად. ერთ-ერთის არჩევისას მისი ცხრილი იტვირთება „ტრანსლიტერაციის წესები“-ს ქვეშ მდებარე რედაქტირებად ბადეში, სადაც ყოველი ასო არის ტექსტური ველი, რომლის შეცვლაც შეგიძლიათ, ხოლო ღილაკი „წესების საწყისზე დაბრუნება“ მას თავდაპირველ მდგომარეობაში აბრუნებს. უკრაინული ცხრილი მიჰყვება მინისტრთა კაბინეტის 2010 წლის № 55 დადგენილებას, სტანდარტს უკრაინულ პასპორტებში, მათ შორის იმ დეტალებს, რომელთა გამორჩენაც ადვილია: зг ხდება zgh და არა zh, რათა განირჩეოდეს ж-სგან; є, ї, й, ю და я ასოები იღებენ ერთ ფორმას სიტყვის დასაწყისში და სხვას მის შიგნით; აპოსტროფი და რბილი ნიშანი იშლება ახალი სიტყვის დაწყების გარეშე, ასე რომ Знам'янка ხდება znamianka და არა znamyanka. გერმანული ნაგულისხმევად იყენებს გაფართოებულ ä → ae, ö → oe, ü → ue, რასაც გერმანული მისამართები რეალურად იყენებენ, თუმცა ხელმისაწვდომია მარტივი ä → a ვარიანტიც, თუ მას ამჯობინებთ.
„Stop სიტყვების წაშლა“ საწყისად ჩართულია. ის შლის პატარა დამაკავშირებელ სიტყვებს — a, the, and, of, for — რომლებიც აგრძელებენ slug-ს მნიშვნელობის დამატების გარეშე. „Stop სიტყვები“-ს ქვეშ არსებული სია სრულად რედაქტირებადია და მოდის უკვე შევსებული: ინგლისური სია პლუს სია იმ ენისთვის, რომლის გვერდზეც იმყოფებით, ამიტომ უკრაინულმა გვერდმა იცის в, на, та და і, ხოლო გერმანულმა იცის der, die და das. დაამატეთ თქვენი საკუთარი სიტყვები, წაშალეთ ისინი, რომელთა შენარჩუნებაც გსურთ, ან საერთოდ გამორთეთ ეს ფუნქცია, რა შემთხვევაშიც ველი გაფერმკრთალდება იმის ნაცვლად, რომ ითამაშოს ვითომ ჯერ კიდევ მუშაობს. ორი გულწრფელი შენიშვნა ამის შესახებ. Stop სიტყვების წაშლა უფრო მისამართის გასუფთავებაა, ვიდრე საძიებო რეიტინგის გაუმჯობესება — თქვენ იღებთ უფრო მოკლე, სუფთა მისამართს და არა უკეთეს პოზიციას. და თუ სათაურის ყველა სიტყვა აღმოჩნდება სიაში, ინსტრუმენტი გეუბნებათ ამის შესახებ იმის ნაცვლად, რომ ცარიელი უჯრა მოგცეთ.
დანარჩენი გადამრთველები წყვეტენ ფორმას. „გამყოფი slug-ში“ ირჩევს რა იჯდება სიტყვებს შორის, და ტირეს არჩევა ნაგულისხმევად არ არის გემოვნების საკითხი: Google კითხულობს ტირეს როგორც სიტყვების გამყოფს, ხოლო ქვედა ტირეს როგორც დამაკავშირებელს, ამიტომ my_first_post აღწევს რობოტამდე როგორც ერთი გრძელი სიტყვა, ხოლო my-first-post — როგორც სამი. „ქვედა ტირე (_)“ არსებობს იმ სისტემებისთვის, რომლებიც მას ითხოვენ. „ქვედა რეგისტრი“ ჩართულია, რადგან სერვერების უმეტესობა მისამართებს აღიქვამს რეგისტრის მიმართ მგრძნობიარედ (case-sensitive) და შერეული რეგისტრი ადვილი გზაა ერთი გვერდისთვის ორი URL-ის მისაღებად. „სპეციალური სიმბოლოების წაშლა“ ასუფთავებს ყველაფერს, რაც არ არის ასო, ციფრი, ჰარი, ტირე ან ქვედა ტირე. სწორედ ეს ინახავს პუნქტუაციას, ბრჭყალებსა და ემოჯებს მისამართის გარეთ — ემოჯები იშლება ტრანსლიტერაციამდე სპეციალურად იმისთვის, რომ რაკეტის ემოჯი არ გახდეს სიტყვა rocket. „რიცხვების წაშლა“ გამორთულია, რადგან სათაურში რიცხვი, როგორც წესი, სათაურის ნაწილია. „მაქსიმალური სიგრძე“ მერყეობს 10-დან 200-მდე და ნაგულისხმევად არის 80; როდესაც slug ამაზე გრძელია, ძრავი ჭრის მას ბოლო მთლიან სიტყვაზე, რომელიც ეტევა, ნაცვლად იმისა, რომ შუაზე გაყოს ის. თითოეული შედეგის გვერდით არსებული ციფრი არის მისი სიგრძე სიმბოლოებში და ის წითლდება 60-ს გადაცილებისას — ეს არ არის მკაცრი ლიმიტი, მაგრამ ეს ის წერტილია, სადაც საძიებო სისტემები იწყებენ მის შეკვეცას და როცა მისი შეტყობინებაში ჩასმა მოუხერხებელი ხდება.
არსებობს კიდევ ორი გადამრთველი, რადგან ისინი მასიურ კონვერტაციას ისევ ერთი დაწკაპუნების საქმედ აქცევენ. „slug-ების უნიკალურობა“ აგვარებს შემთხვევას, როდესაც ორი განსხვავებული სათაური ერთსა და იმავე slug-ზე დადის — „საუკეთესო 10 რჩევა“ და „საუკეთესო-10 რჩევა“ ორივე ხდება sauketeso-10-rcheva — და მეორეს აძლევს -2, მესამეს -3, ამასთან ამოკლებს ფუძეს, თუ სუფიქსი გადააჭარბებს თქვენს მაქსიმალურ სიგრძეს. ერთ მისამართზე ორი გვერდის ქონა გაცილებით ძვირი პრობლემაა, ვიდრე ამ სიაში მისი დაჭერა. „slug-ის ამოღება ჩასმული ბმულიდან“ მუშაობს საპირისპირო მიმართულებით: ჩასვით სრული ბმული და ინსტრუმენტი აიღებს მისამართის ბოლო ნაწილს, წაშლის query string-ს და ნებისმიერ .html ან .php დაბოლოებას, ასევე გაშიფრავს percent-encoding-ს. ასე რომ, ვიკიპედიის ბმული, რომელიც მთავრდება %D0%9B%D1%8C%D0%B2%D1%96%D0%B2-ით, დაბრუნდება როგორც lviv და არა როგორც hex ციფრების ნაკრები. ის მუშაობს მხოლოდ მაშინ, როცა მთელი ხაზი არის ბმული, ამიტომ წინადადების შიგნით მოყვანილი მისამართი რჩება ისე, როგორც არის.
რატომ უნდა აირჩიოთ ეს slug გენერატორი?
- მხოლოდ ბრაუზერში: თქვენი სათაურები არასდროს იტვირთება და გვერდი მუშაობს ხაზგარეშე (offline)
- მასიური კონვერტაცია ჩასმული ტექსტიდან ან ფაილიდან, ყოველი slug-ის ზემოთ ორიგინალური სათაურით
- რეალური ტრანსლიტერაციის სტანდარტები თითოეული ენისთვის და არა ერთი ზოგადი ცხრილი ყველასთვის
- უკრაინული 2010 წლის № 55 დადგენილებით — პასპორტებში გამოყენებული მართლწერა
- ყველა წესი რედაქტირებადია ასო-ასო, ერთი დაწკაპუნებით საწყისზე დაბრუნებით
- ავტომატური -2 და -3 სუფიქსები, რათა სიაში არცერთი ორი slug არ დაემთხვეს
- ჩასვით ბმული და ამოიღეთ მისგან slug, percent-encoding გაშიფვრით
- Stop სიტყვების რედაქტირებადი სია, რომელიც უკვე შევსებულია თქვენი ენისთვის
- უსაფრთხო შეკვეცა მთლიან სიტყვაზე, თითოეული შედეგის გვერდით სიმბოლოების მთვლელით
- უფასო და შეუზღუდავი: რეგისტრაციის გარეშე, ლიმიტების გარეშე, არაფერი ინახება ჩვენს სერვერებზე
Slug-ები საჭიროა ყველგან, სადაც გვერდს უნდა ჰქონდეს წაკითხვადი მისამართი. ბლოგი ან ახალი ამბების საიტი ყოველ სათაურს აქცევს მასად, და სწორედ ამ შემთხვევისთვის შეიქმნა ეს ინსტრუმენტი: ჩასვით კვირის სათაურები, მიიღეთ კვირის URL-ები. ონლაინ მაღაზია იგივეს აკეთებს პროდუქტებისა და კატეგორიების სახელებისთვის, როგორც წესი, მასიურად იმპორტის შემდეგ, და ხშირად იმ ენაზე, რომლის ანბანსაც მისამართი ვერ იტევს. დოკუმენტაცია და ცოდნის ბაზები აშენებენ ანკერებს (anchors) და ფაილების სახელებს იმავე გზით. ვებ მისამართების მიღმა, იგივე სუფთა სტრიქონი არის ის, რაც გჭირდებათ ფაილის სახელისთვის, რომელიც არ გაფუჭდება სხვა ოპერაციულ სისტემაში, მონაცემთა ბაზის გასაღებისთვის, რომელსაც ადამიანი წაიკითხავს ლოგებში, branch-ის სახელისთვის, მედია ბიბლიოთეკაში სურათის სახელისთვის, ან სტატიკური საიტის გენერატორში სექციის იდენტიფიკატორისთვის. ნებისმიერი ადგილი, სადაც ადამიანისთვის წაკითხვადი სახელი უნდა გადარჩეს მანქანური წაკითხვის ველში მოხვედრას, არის ადგილი, სადაც slug გჭირდებათ.
სანამ ამ ინსტრუმენტს დაენდობით, ღირს იცოდეთ რამდენიმე შეზღუდვის შესახებ. ეს არის გენერატორი და არა ვალიდატორი: ის არ შეამოწმებს, არის თუ არა slug უკვე გამოყენებული თქვენს საიტზე, რადგან მას არანაირი წარმოდგენა არ აქვს, რას შეიცავს თქვენი საიტი — უნიკალურობა, რომელსაც ის უზრუნველყოფს, მხოლოდ თქვენს მიერ კონვერტირებულ სიაშია. გადამისამართებები (redirects) ასევე თქვენი საქმეა; გამოქვეყნებული გვერდის slug-ის შეცვლა ანგრევს მის ძველ მისამართს, და ეს გადაწყვეტილება თქვენი CMS-ის მისაღებია, და არა ამ ინსტრუმენტის. „ფაილში შენახვა“ წერს უბრალო ტექსტს, და არა CSV ან JSON. ავტომატური დაყოფა მძიმეებთან დაკავშირებით იღებს გადაწყვეტილებას, რომელიც თითქმის ყოველთვის სწორია, მაგრამ არა ყოველთვის, და სწორედ ამიტომ „ტექსტის დაყოფა“ გაძლევთ საშუალებას შეცვალოთ ის. ტრანსლიტერაცია არის კონვენცია და არა თარგმანი — München ხდება muenchen და არა Munich — ამიტომ როდესაც გვერდს აქვს დამკვიდრებული სახელი სამიზნე ენაზე, ეს სახელი უკეთესი slug-ია, ვიდრე ორიგინალის ნებისმიერი ავტომატური კონვერტაცია.