Местные почтовые активы с Джекиллом


Мне было интересно, как другие люди организуют свои активы для отдельных сообщений при использовании Jekyll. Например, если сообщение имеет изображение, вы просто сбрасываете его в папку общих изображений? Мне не очень нравится идея сделать это - это означает, что изображение полностью отделено от сообщения, когда я думаю, что они должны быть сопряжены.

5 59

5 ответов:

Я предпочитаю думать об изображениях как об автономных активах, которые включены в ноль или более страниц. В большинстве случаев мои изображения отображаются на одной странице. Бывают случаи, когда я хочу иметь их на нескольких страницах, а в других случаях я вообще не связываю изображение. Если ваш рабочий процесс заключается в том, чтобы поместить каждое изображение в каталог с сообщением, их поиск начинает требовать значительного объема поиска, и вам нужно придумать что-то другое для изображений, которые не принадлежат к определенному должность.

подход, который я использую, находится на противоположной стороне спектра. У меня есть один каталог изображений (обслуживается из "/images") и 100% моих изображений размещены там. Преимущества этого являются:

  1. когда я добавляю изображение в сообщение, легко узнать, какой путь использовать. Это всегда:

    /images/{image-name}
    

    например:http://alanwsmith.com/i/aws-20111017--0906-02. это позволяет написать плагин, так что все, что вам нужно ввести это имя изображения и остальная часть известного пути заполняется автоматически.

  2. С приложением, как Фото Механик, это невероятно легко просматривать один каталог локально и увидеть каждое изображение. Если я хочу включить изображение на другой странице, это значительно сокращает время его поиска.

  3. нет отдельного места / процесса, если я хочу отправить изображение кому-то без фактического включения его в страницу (т. е. пошлите им прямую ссылку на файл изображения). Я просто бросаю изображение в стандартный каталог и отправляю прямую ссылку.

если вы хотите получить немного более продвинутый, сохраняя все ваши изображения в одном каталоге делает некоторые хорошие твики можно также. Например, хотя URL-адреса для моих изображений начинаются с "/images", изображения фактически хранятся в каталоге за пределами тех, которые использует jekyll. В моем случае вершина моего исходного дерева выглядит так это:

./html
./source-files
./image-files

все мои изображения хранятся в "./ image-files" каталог. В моей конфигурации apache я настроил псевдоним так, чтобы URL "/images" указывал на "./ image-files" каталог. Например:

Alias /images /webroot/image-files

когда я запускаю jekyll, он обрабатывает все "./ исходные файлы" и бросает его в "./формат HTML." Поскольку все изображения находятся вне этих двух каталогов, Джекилл никогда не видит/не касается их. По мере роста вашей библиотеки изображений это поможет ускорить процесс и предотвратит огромное количество ненужного копирования файлов.

еще одна настройка, которая мне нравится в Apache, включается:

Options +MultiViews

Это позволяет вызывать ваши изображения без использования расширения файла (например, no '.jpg','.png ' и др...). Вы можете видеть это в приведенной выше ссылке примера. На самом деле это не имеет значения для производительности. Мне просто нравится, как это выглядит, и это избавляет меня от необходимости вводить расширение каждый раз, когда я звоню изображения.

MultiViews также делает его возможно заменить изображение одного формата на другой без необходимости перекодировать что-либо еще. Например, если вы удалите " some-image.gif "и заменить его на" some-image.png", вам не придется прикасаться к любому HTML. Он будет по-прежнему будет подаваться форма "/картинки/какой-изображения". Необходимость вносить такие изменения, вероятно, чрезвычайно редка. Я просто думаю, что это интересная вещь, чтобы быть в состоянии сделать.

наконец, вы можете принять одно решение о разрешении или запрещении вашего каталога изображений быть просмотренным. Лично я хочу, чтобы мои изображения отображались только там, где я их размещаю. Итак, я установил .htaccess файл в моем каталоге изображений:

Options -Indexes

если вы собираетесь работать на сайте со многими тысячами или десятками тысяч страниц и изображений, это не масштаб. Для обычного размера личного сайта я считаю, что этот подход упрощает поддержание изображений.

Я написал плагин, чтобы позволить мне организовать активы в подкаталогах легко:
https://github.com/samrayner/jekyll-asset-path-plugin

{% asset_path my-image.png %}

в пост 2013-01-01-пост-название будет выводить:

/assets/posts/post-title/my-image.png

на странице my-first-page выводится:

/assets/my-first-page/my-image.png

как и вы, я действительно ненавижу иметь все изображения в одной общей папке.

большинство, если не все, моих изображений полезны в одном сообщении, и держать их рядом с файлом Markdown действительно лучше для управления сообщениями:

  • Я могу удалить новый пост как одну подпапку /_posts/ в один шаг, без необходимости ставить уценку в одном месте и изображение(ы) в другом
  • когда я хочу отредактировать изображение(ы) существующего сообщения, я не нужно искать правильное изображение в огромном /assets/ папка, она находится рядом с файлом Markdown
  • в моей Markdown, я могу использовать имя файла изображения напрямую, без какого-либо пути
  • если я хочу использовать любой редактор Markdown с Live preview, он работает, нет необходимости в конкретной конфигурации папки активов

Я пытался сделать это для моего блога (пример поста здесь).

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

теперь, когда Jekyll 3 есть, я хотел бы, чтобы он мог позволить нам использовать изображения как в папке post, так и в /assets/ один, ищет изображение, отмеченное ![alt](image-file-without-path.jpg) в обоих, в таком порядке.

теперь мне удалось разработать плагин Jekyll, который помогает сохранять активы сообщений вместе с файлом Markdown: https://nhoizey.github.io/jekyll-postfiles/

для JavaScript и CSS, вы можете рассмотреть конвейер активов. Вы можете получить хорошее повышение производительности за счет связывания и сжатия. Я также использую CoffeeScript и Sass, поэтому мне нужен был препроцессор для преобразования моих активов. Я использую Jekyll Asset Pipeline чтобы управлять всем этим процессом автоматически, когда я запускаю .

для изображений / видео я рекомендую вам разработать Соглашение для именования папок в вашем проекте. У меня вообще есть " активы" папка затем вложенные папки с датой каждого сообщения, которое содержит изображения, связанные с этими сообщениями. Если у вас есть несколько сообщений в день, Вы можете рассмотреть возможность включения имени сообщения.