Проблемът
Проблемът е, че когато се пише нов пост, то прикачените файлове все още нямат URL и по принцип URL-то им още не е възможно да се предскаже.
Затова е и невъзможно да се вмъкне таг за картинка/видео/mp3 в поста, сочеща към прикачения файл.
Заобикаляне
В момента заобикалянето на проблема става в две стъпки - създава се пост с прикачените файлове и след това се редактира този пост, като се вмъкват желаните медиа елементи с вече известните URL-та на прикачените файлове.
Идея за кардинално решение
В момента, URL-тата на прикачените файлове се създават на базата на ID-то на файла в таблицата в базата данни:
/!attached/%FILE_DB_ID%
Идеята е да се направи втора схема на URL-то, базирано на MD5 сумата на файла:
/!file/%MD5_SUM%
Тъй като MD5 сумата на файла е известна преди записа му в базата данни, то и URL-то ще е известно и ще може да се използва в непубликуван пост.
Алгоритъма го виждам така:
1. Когато един или няколко файла се посочат за прикачане в browse редактора, то техните MD5 суми се изчисляват с JS и се създават бутончета за всеки файл, които да вмъкват в редактора таговете за картинка/видео/аудио със коректното URL на файла по новата схема.
Единственото, което ме притеснява е, че подобни сметки могат да забавят значително работата на редактора и това би било тъжно.
Тука може да се опита и последният писък – webassembly.
2. Разбира се, в бакенда се имплементира поддръжката на новата схема на URL-то.
3. Готово.
Аз лесно ще направя точка 2. Обаче точка 1 е леко доста над възможностите ми в JS/WASM...
Моля за коментари, пропуснати моменти, възможни усложнения...
Също, ако решението се приеме за работоспособно, се търсят доброволци за т.1