У меня есть каталог, заполненный частями. Я хочу перечислить ТОЛЬКО первые теги h1 в каждом частичном. Методы выполнения этой задачи, вероятно, могут быть изменены для захвата и других элементов.
Прямо сейчас я использую ruby, чтобы открыть каждый файл, распечатать первые несколько символов, закрыть файл и повторить. Мои навыки парсинга файлов ruby ограничивают меня. Вот код, который у меня есть на данный момент:
<% Dir["app/views/partials/show/*.html.erb"].each do |f1| %>
<% aFile = File.open(f1, "r") %>
<% if aFile %>
<% content = aFile.sysread(20) %>
<p><%= content %></p>
<% else %>
<%= "Unable to open file!" %>
<% end %>
<% end %>
Я тоже думаю, что открываю весь партиал в памяти? Хотите знать, могу ли я просто читать, пока не найду свой тег h1, а затем закрыть файл и двигаться дальше? Опять же, я читаю только первые 20 символов, потому что еще не понял, как искать первый тег h1.
Я буду вносить изменения, когда работаю над открытием, разбором, фрагментом... Я ценю любые советы и указания, которые вы можете предложить. Спасибо!
EDIT: Основываясь на комментариях ниже, может быть гораздо лучший способ выполнить мою задачу. Поэтому я предоставляю дополнительную информацию, чтобы получить направление для других решений.
Это для слайд-шоу на основе частей в каталоге. Слайд-шоу управляется элементом навигации, который я хотел бы заполнить тегами h1 в разделах. Я не собираюсь вручную вводить эти вещи каждый раз, когда вносятся изменения! Я хочу, чтобы конечный пользователь просто перетаскивал фрагменты в каталог (с определенным соглашением об имени и описанием тега h1 для навигации), а слайд-шоу делало все остальное.
Я мог бы наложить класс на тег h1 «forNavigation» и на контент «sliderContent», а затем использовать jquery для создания пост-загрузки <ul>
, но это не кажется правильным. Кроме того, все они будут частью одного визуализированного div.
Я думаю, я не понимаю, почему чтение первых 50 символов партиала, копирование того, что находится в тегах h1, и помещение его в a - не самое элегантное решение?
Как я уже сказал, выше делается все необходимое, кроме копирования и печати того, что находится между первым тегом h1... С парсером xml или каким-либо регулярным выражением это будет сделано. Я просто плохо разбираюсь в файлах.
Пожалуйста, дайте мне знать другие методы, чтобы приблизиться к этому. Прямо сейчас я все еще думаю, что лучше разобрать партиал (с рендерингом или без него) и поместить то, что мне нужно, туда, где я хочу, по мере необходимости.