Страница обновлена 31.07.2017

Муниципальное общеобразовательное учреждения "Санаторная школа-интернат №10" г. Ярославль

Страница обновлена 31.07.2017
Муниципальное общеобразовательное учреждения "Санаторная школа-интернат №10" г. Ярославль

Простой скрипт для преобразования простых текстовых файлов в html.
 
Перейти:
 

Описание.
Данный скрипт (вернее 2 скрипта) предназначены для создания простых html-таблиц с изображениями и описаниями. Основа будущей таблицы — папка с фотографиями, куда помещён скрипт, и также файл с подписями в формате <имя фотографии> <описание> (без треугольных скобок). Пересохраняет фотографий с jpeg-сжатием в 75-процентном качестве (при незначительных и незаметных потерях уменьшает размер оригинального файла в 3-4 раза с сохранением оригинального разрешения), а также сам делает изображения для предварительного просмотра размером 320x240 точек.
 

Для работы скрипта нам понадобятся:
- компьютер с ОС Linux, интерпретатором bash, редакторами awk и sed;
- программа phatch (для операций над массой фотографий);
- программа rename (для смены регистра имён файлов и расширений);
- текстовые файлы с расширением txt в кодировке utf8;
- отсутствие пробелов в именах текствых файлов;
Проверено на: Ubuntu 10.04.4 LTS
 
Использование.
 

Подготовка материалов.
Для создания галереи крайне желательно отобрать фотографии с одинаковой ориентацией (горизонтальной или вертикальной), чтобы при создании предпросмотровых изображений они не искажались. ВАЖНО! Имена фотографий не должны содержать пробелов! Если в галерею нужно выложить и те, и другие фото, то лучше создать 2 отдельных таблицы и потом при необходимости поместить одну над другой.

Шаг два (можно пропустить): снижение разрешения фотографии. В связи с тем, что многие фотографии могут не изобиловать большим количеством мелких деталей, которые потенциальный посетитель вашего сайта захочет рассматривать, увеличивая фото, имеет смысл снизить разрешение (количество точек, из которых оно состоит, по вертикали и горизонтали). С одной стороны это несколько снизит детализацию, с другой — даст очень и очень заметный выигрыш в количестве занимаемого места и скорости загрузки.
Пример: фотография, сделанная 12-мпикс фотоаппаратом и сохранённая в jpeg-формате, имеет разрешение 4000х3000 точек и занимает порядка 5,5 мбайт места. С такими параметрами снимка при отсутствии серьёзных дефектов (замыленность, шумность) фотографию можно печатать в А3-формате, и все детали будут видны. Однако нам такая детализация, скорее всего, ни к чему, к тому же при не очень быстром интернете и компьютере открываться такое фото, выложенное в галерею, будет довольно долго. После снижения размера фотографии до, например, 1024х768 и сохранения с 75-процентным качеством фотография будет занимать около 100 (!) кбайт (всего-то в 55 раз меньше оригинала), загружаться мгновенно и отображаться без проблем даже на довольно старых ПК и мобильных устройствах.
Для выполнения шага два положите в папку с фотографиями файлы resize_foto.sh и resize_foto_4sed.phatch. Запустите в терминале скрипт resize_foto.sh, введите разрешение по вертикали и горизонтали в соответствии с предложенными инструкциями, и ждите. При отсутствии серьёзных проблем в папке с фотографиями будет создана папка resized, в которую будут помещены фотографии с меньшим разрешением. После можно работать с фотографиями либо в подпапке resized, либо удалив оригинальные файлы и заменив их копиями из папки resized.
Третьим этапом необходимо положить в папку с фотографиями скрипт low_case_2names.sh и запустить его. Он переведёт имена файлов в нижний регистр (из больших букв в маленькие) и сменит расширение фотографий с jpeg на jpg (для улучшения совместимости с CMS.edu). Он же создаст файл names.txt, в который аккуратно выведет список всех фотографий, найденных в папке.
Четвёртым шагом будет добавление описаний в файл names.txt. Нам необходимо открыть его текстовым редактором (gedit, leafpad, кому что по нраву) и, поставив пробел после названия фотографии, добавить описание. ВАЖНО! Описания вводятся на той же строке, где находится название файла с изображением, без перехода на другую строку кнопкой "enter". Автоматический перенос строк текстовым редактором для удобства восприятия не в счёт.
 

Создание галереи.
Кладём в папку с фотографиями и описаниями оставшиеся файлы: foto-table-simp.sh, resave_lq_4sed.phatch, resize_prev_4sed.phatch.
Запускаем в эмуляторе терминала файл foto-table-simp.sh (либо открыв эмулятор терминала, либо, если позволяет оболочка, после двойного щелчка выбрать "запустить в терминале"). Будет выведена информация о работе скрипта. Последним пунктом будет просьба ввести с клавиатуры слово hor или vert в зависимости от ориентации ваших фотографий.
После обработки фотографий (это может занять некоторое время, оригинальные файлы не будут изменены), будет просьба на ввод количества столбцов будущей таблицы и заголовка галереи. После ввода и подтверждения нажатием кнопки "enter" будет сгенерирован html-файл.
По завершении работы скрипта в каталоге с фотографиями появятся 2 папки: orig_lq (фотографий, пересохранённые с компрессией, но по-прежнему имеющие избыточное качество), и preview (картинки в маленьком разрешении для предпросмотра), а также файлы gallery.html и gallery_1251.html (в CMS.edu на данный момент используется кодировка windows-1251, поэтому в дальнейшем есть смысл использовать именно этот файл). html-файлы можете переименовать так, как посчитаете нужным (латинскими буквами, без пробелов и спецзнаков), пока же посчитаем, что обошлись без переименования.
Открыв любой из html-файлов в браузере, мы можем увидеть результат: таблица с фотографиями, под каждой фотографией — описание из файла names.txt. По нажатию на картинку откроется изображение в оригинальном масштабе, где можно более детально его рассмотреть.
Далее необходимо загрузить gallery_1251.html и папки orig_lq, preview на сервер edu.yar.ru и вносить поправки c помощью CMS.edu. Сейчас именно этот момент является наиболее проблемным, т.к. не поддерживается загрузка целых папок (и из-за особенностей http-протокола навряд ли будет поддерживаться) или распаковка архивов, поэтому либо создавать папки orig_lq и preview через CMS.edu вручную и вручную же загружать фото и превью, либо упаковывать html-файлы и папки и просить работников ЦТИСО распаковать в указанную вами папку на сервере.
 

Видеоурок по использованию данных скриптов можно будет скачать в ближайшее время.
 
Скрипты предоставляются на условиях "как есть", автор не несёт ответственности за возможный ущерб использующим лицам.
Скрипты полностью свободны для использования, дополнения и изменения, просим только не забывать авторов исходного скрипта. Комментариев внутри едва ли не больше, чем непосредственно кода, более или менее структурирован, поэтому проблем с пониманием быть особых не должно.
Будем признательны, если будет написан bat-аналог для windows.