Ruby Sinatra Embed erb Частичный внешний HTML-файл - PullRequest
0 голосов
/ 12 февраля 2019

Мне нужно разместить отчет типа «Договор купли-продажи» на моем веб-сайте.Я использую Sinatra, используя erb файлы для доставки контента.Я хотел бы отправить по электронной почте текущий отчет (версии изменится), когда люди подпишутся на различные элементы.

Я думаю, что могу разместить его в базе данных или во внешнем файле, в каком-то формате, поэтому я могу сделать оба:

  • импортировать его в *Файл 1008 * для презентации в Интернете
  • используйте его в электронном письме, чтобы его можно было прочитать в текстовом формате

Так что в основном он мне нужен в максимально простом формате, но он имеетперевести на HTML (erb) и текст.

Какие у меня варианты с форматом этого файла?И как я могу перевести это в HTML?Я посмотрел на markdown, и это не очень красиво с gems, который я нахожу переводящим в текст.Видя, что для этого нужен простой текст, а также HTML Я немного растерялся, как это сделать.

Фрагмент файла

Privacy Policy
Updated Feb 20, 2019

Website.com (“Website”) is a private business. In this Privacy Statement the terms “we” and “our” refer to Website. This Privacy Statement explains Website’s practices regarding personal information of our users and visitors to this website (the “Website”), as well as those who have transactions with us through telephone, Internet, faxes and other means of communications.

Website’s Commitment to Privacy
At Website, we are committed to respecting the privacy of our members and our Website visitors. For that reason we have taken, and will continue to take, measures to help protect the privacy of personal information held by us.

This Privacy Statement provides you with details regarding: (1) how and why we collect personal information; (2) what we do with that information; (3) the steps that we take to help ensure that access to that information is secure; (4) how you can access personal information pertaining to you; and (5) who you should contact if you have questions and concerns about our policies or practices.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Решение : сохраните файл как HTML и используйте этот камень для преобразования в text:

https://github.com/soundasleep/html2text_ruby

Работает нормально, если HTML достаточно просто.

Осталось : по-прежнему возникает проблема с использованием файла HTML в качестве partial.

Решено :

@text = markdown File.read('views/privacy.md')

Поэтому запишите исходный файл как файл markdown, который можно преобразовать в HTML.Когда мне нужна версия email, мне нужно перевести на HTML, а затем на text, используя камень HTML2text.https://rubygems.org/gems/html2text

0 голосов
/ 24 февраля 2019

Насколько я понимаю, у вас есть часть текста (хранящаяся в базе данных или файле, где на самом деле не имеет значения), и вы хотите:

  • подать это в форматеHTML через веб-страницу
  • отправьте его простым по электронной почте

Предполагая стандартную компоновку проекта Sinatra, в которой каталог представлений находится в каталоге проекта, например

project-root/
  app.rb
  views/

и маршрут для доставки текста в app.rb:

get "/sometext" do

end

Если вы поместите шаблон erb в каталог views и в качестве последней строки маршрута сделайте вызов erb Шаблон рендерера вы должны получить в формате HTML.Например,

project-root/
  app.rb
  views/
    sometext.erb # this is the erb template

В приложении Sinatra

# app.rb
# I'm assuming you've some way to differentiate
# bits of text, e.g.
get "/sometext/:id" do |id|
  @text = DB.sometext.getid id # my fake database call
  erb :sometext # <- this will render it, make it the final statement of the block
  # make sure @text is in the template
  # else use locals, e.g.
  # erb :sometext, :locals => { text: @text }
end

Теперь, когда пользователь посещает http://example.org/sometext/485995, он получает HTML.Отправка текста по электронной почте пользователю может быть инициирована через веб-сайт или другим способом по вашему выбору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...