Компиляция всех файлов shtml в один файл html с использованием SSI или grunt

Я пытаюсь создать действующее руководство по стилю для существующего проекта. В рамках этого я хотел бы включить все виджеты shtml, которые у меня есть в одной папке, в один файл html.

Тип решения, который я ищу, будет следовать такому поведению:

  1. Поиск по всем файлам в папке виджетов
  2. Скомпилируйте все файлы в одну HTML-страницу
  3. Используйте имя файла в качестве заголовка над каждым включенным виджетом

Проект работает как с grunt, так и с SSI через экспресс-сервер, так что я думаю, есть несколько вариантов.

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

Это код, который у меня есть для моего файла grunt:

includes: {
  files: {
    src: ['widgets/.shtml'], // Source files
    dest: 'kitchen-sink', // Destination directory
    flatten: true,
    cwd: '.',
    options: {
      silent: true,
      banner: '<!-- I am a banner <% includes.files.dest %> -->'
    }
  }
}

Я вижу, как это может работать с одним файлом с именем, но перебирать папку кажется гораздо более сложной задачей.

Мы будем рады любым предложениям по возможному решению.


person Alex    schedule 21.04.2015    source источник
comment
Может быть, взгляните на npmjs.com/package/grunt-htmlbuild?   -  person ItalyPaleAle    schedule 21.04.2015
comment
Это может быть многообещающим: github.com/spatools/grunt-html -build / wiki /   -  person Alex    schedule 21.04.2015


Ответы (1)


В конце концов, я воспользовался предложением Qualcuno использовать grunt-html-build. Это работает очень хорошо, я потенциально напишу еще одну черновую задачу, чтобы написать в заголовках виджетов на странице.

Это был мой последний код:

htmlbuild: {
            dist: {
            src: 'kitchen_sink/kitchen-sink.shtml',
            dest: 'prod/kitchen_sink/kitchen-sink.shtml',
            options: {
                sections: {
                    views: 'prod/templates/widgets/**/*.shtml',
                    templates: 'prod/templates/widgets/**/*.shtml'
                }
            }
        }
        }
person Alex    schedule 22.04.2015