Я создаю приложение, в котором пользователи могут редактировать свой собственный CSS (в синтаксисе SCSS ). Это прекрасно работает, однако, я в конечном итоге хочу, чтобы эти CSS-файлы были «программируемыми», чтобы пользователи, которые не знают CSS, могли редактировать их в основном виде. Как?
Если я могу пометить некоторые вещи как редактируемые, мне не нужно создавать невозможную схему базы данных. Например, у меня есть файл scss с именем style.scss:
// @type color
$header_bg_color: #555;
// @type image
$header_image: "http://someurl.com/image.jpg";
Тогда я могу сделать это:
SomeParser.parse(contents of style.scss here)
Это вернет хеш или что-то похожее из переменных:
{:header_bg_color => {:type => "color", :value => "#555"}, :header_image => {:type => "image", :value => "http://someurl.com/image.jpg"} }
Я могу использовать вышеупомянутый хеш для создания формы, которую может использовать начинающий пользователь для изменения данных и отправки. Я верю, что знаю, как выполнить GET и POST.
Как лучше всего создать / настроить свой собственный анализатор, чтобы я мог читать комментарии и извлекать «переменные» из этого? А потом снова легко обновить текстовый файл?
Другой возможный способ - что-то вроде этого:
o = SomeParser.new(contents of style.scss here)
o.header_bg_color #returns "#555"
o.header_image = "http://anotherurl.com/image2.jpg" # "updates" or replaces the old header image variable with the new one
o.render # returns the text with the new values
Заранее спасибо!