Miałem na myśli to, że aby elementy były wyświetlane w jednej linii to musisz ustawić im float lub odpowiedni display (inline, inline-block; da się bawić z flexem dla rodzica, etc). Obrazki domyślnie się ustawiają w jednej linii. Wyjątkiem jest gdy są zbyt duże i się nie mieszczą lub mają jakieś niestandardowe style. Na twoim ss widać, że prawdopodobnie problemem jest to drugie. Niestety bez podglądu nie możemy tutaj nic poradzić.
Moja propozycja: MyCode flex
Wyrażenie:
\[flex=(.*?)\](.*?)\[/flex\]
Zastąpienie:
<div style="display: flex; justify-content: $1">$2</div>
Podstawowe wartości, które cię interesują:
space-between - elementy są pomiędzy sobą (jak najdalej)
space-around - elementy są pomiędzy sobą (równe odległości zachowane)
center - elementy są wyśrodkowane
[/code]
To co musisz wziąć pod uwagę to ataki XSS. Co jeśli użytkownik wpisze tam coś typu
"? Wykrzaczy MyCode i prawdopodobnie layout forum, a może tam wpisać dużo gorsze rzeczy.
Jak temu zapobiec? Zamiast pozwalać wpisywać wszystkie znaki, pozwól jedynie na [a-z] i ewentualnie [A-Z] lub nawet same nazwy.