Hej,
Robię taki projekt, gdzie użytkownicy mogą do bazy danych wrzucić sobie dane w JSON, więc totalna dowolność typu danych i dostępnych "kolumn".
Na froncie chcę potem wyświetlać tabelkę z danymi tego użytkownika, gdzie użytkownik na widoku "listy" swoich danych widzi wiersze i wybrane przez siebie kolumny, ale chciałbym umożliwić użytkownikom renderowanie treści wewnątrz komórki w wybranej kolumnie wg własnego kodu.
Np. użytkownik doda sobie takie dane:
{
name: "Jan",
surname: "Kowalski",
nick: "Janu$h",
}
I chciałbym, żeby mógł sobie zrobić komórkę wg np: takiej logiki (przykład jako template string w js, ale jęyzk templatki może w ogóle nie przypominać JS):
<strong>${data.nick ? data.nick : (data.name + " " + data.surname)}</strong>
Czyli potrzebuję w tym systemie templatek, żeby się dało:
- uzyskać kod HTML jako wynik (potem przejadę go sanitizerem, żeby pousuwać onclicki itd)
- mieć możliwość tworzenia warunków
- mieć możliwość podstawowej ewaluacji wartości (operacje matematyczne na liczbach, łączenie stringów, substring, itd)
Całość chcę uruchamiać już w przeglądarce klienta, ale chciałbym uniknąć jakichś "self-xssów": wywoływania alert()ów, modyfikacji globalnych zmiennych, dostępu do DOM itd.
Czy znacie jakiś system templatek w js, co coś takiego umożliwi? Jak widzę na jaki pomysł wpadłem to aż mi samemu się słabo robi i przypominają się dziury Angulara 1 i jego "piaskownicy", ale może jest już jakieś dojrzałe rozwiązanie?