Особливості бота публікувального та формування пермлінку
Особливості бота публікувального та формування пермлінку
Щодо можливості відкладеноо публікування дописів, за допомогою безоплатного бота, який згадувався раніше.
По-перше, було виявлено, це щодо самого сервісу. Ключі які додані й засекречені, не показуються навіть при включенні функції редагувати, тобто просто показує порожнє поле. Тож ніхто не підгляне, за умов належної безпеки на різних рівнях.
По-друге, ота відкладена публікаці, чи радше запланована, доступна лише на steempro.com, у мене не вистачило розуму або терпіння чи разом їх разом взятих, щод дало воно бажаний результат. І до того ж, там запитується для цього діла фінансовий ключ. Не пам'ятаю, щоб віна надавався на upvu.org (але він зараз в ауті).
По-третє, бот, тобто скрипт, дає ще одне-два покращення. Це формування пермлінку відповідною українською транслітераціює, як то було постановлено КМУ (так написав ШІ, а мені не захотілось перевіряти деталі). Додатковий плюс до ідентифікації і відокремлення української мови та культури від москалячої. Бо воно так чере steemit.com і шльопає як було.
І мабуть найцікавіше, що дописів можна легко додавати багатенько. Тобто як є написаний матеріал, за допомогою скрпиптів, на пітоні чи ще чомусь, формувати їх у потріний формат розмітки й додавати на сайт.
Червоним підсвічено те, що мені не подобається, а зеленим потрібні правки
І як можна побачити на зображенні вище, різні сервіси доступу формують пермлінк по різному.
Наприклад, у мене мій редкктор, чомусь не бачив української взагалі, тому були просто цифри. SteemX робить лише набір символів. Steempro наче робить, як Steemit, але додає ще якісь символи, а Steemit як і робив, цілком все ім'я і без цифр зайвих. Змін там не було, та й особлива ураїнська мова, яка зазнає змін і так до неї і не підійдеш з наплигу)). Та в результаті, воно трохи виходить з москалячим відлунням. Де и транслітерується через i. Та завдяки ШІ це поправлено, тепер принаймні бот і редактор, роблять потрібний пермлінк. Хоча там все можна на власний смак робити.
В кодові це має десь такий вигляд для транслітерації:
window.submitToSteem = () => {// --- НОВИЙ БЛОК ТРАНСЛІТЕРЦІЇ (КМУ 2022) ---
function createPermlinkUA(title) {
let text = title.toLowerCase().trim();
text = text.replace(/зг/g, 'zgh'); // Правило "зг"
const specialStart = { 'є': 'ye', 'ї': 'yi', 'й': 'y', 'ю': 'yu', 'я': 'ya' };
const specialMid = { 'є': 'ie', 'ї': 'i', 'й': 'i', 'ю': 'iu', 'я': 'ia' };
const standardMap = {
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'h', 'ґ': 'g', 'д': 'd', 'е': 'e', 'ж': 'zh',
'з': 'z', 'и': 'y', 'і': 'i', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o',
'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'kh', 'ц': 'ts',
'ч': 'ch', 'ш': 'sh', 'щ': 'shch', 'ь': '', '’': '', "'": '', 'ʼ': ''
};
let result = text.split(/([\s\-]+)/).map(part => {
if (/[\s\-]+/.test(part)) return part;
let word = "";
for (let i = 0; i < part.length; i++) {
const char = part[i];
if (i === 0 && specialStart[char]) word += specialStart[char];
else if (i > 0 && specialMid[char]) word += specialMid[char];
else if (standardMap[char] !== undefined) word += standardMap[char];
else word += char;
}
return word;
}).join('');
return result.replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-').replace(/^-+|-+$/g, '').substring(0, 150);
}
І рядочок там де формується тіло пермлінка:
const parentPermlink = tagsArray[0]; const permlink = createPermlinkUA(title); // Тепер без Date.now() і з правильним транслітом
Хоч воно і мені й іншим не дуже зрозуміло, проте хтось та в цьому розбирається і для ШІ будуть точніші координати.