Станислав: тогда это нужно делать с системой реал-тайм синхронизации, поддерживающей блочное обновление различающихся частей файла (файловых блоков) и работать с локальной копией из любой IDE.
Это "из коробки" поддерживается SFTP-протоколом (я тут просветился), но исключительно только в сторону upload!
purplesky: ну я пишу так, как идёт мысль и открыто. да, не спорю: есть недочёты и все мои тексты - требуют переработки для стилизации и корректности оборотов.
Про "МАКСИМАЛЬНО короткий" - тут всё верно Вы написали.
Знаете что лучше бы сделали?! "Облако" синонимов с расстояниями (весами).
Я ввожу 3-4 опорных слова из своей тематики, а оно находит возможные ближайшие АДЕКВАТНЫЕ! синонимы исходя из моей опорной цепочки.
Для каждого существительного создаёте связь "многие-ко-многим" и с разным расстоянием для массы востребованных тегов, тем и т.д.
И уже на основе этих синонимов (после предварительного редактирования списка юзером на 2-м шаге) генерирует названия.
Вот тогда - уже такую "умную" выборку+генерацию - можно предлагать и платно!
А пока - это НЕ ПРОДУКТ...
Никита Полевой: конечно, URL-ы - не даст считать из объекта History, а вот хранить историю - лучше в LocalStorage или просто в массиве (при SPA-приложении).
Wgle: мусор попал на ось вращения при чистке,
или где-то контакт отошёл от датчика температуры или питания,
или просто сбой у BIOS-a и нужно сбросить его.