Что такое среда docpad по умолчанию / как настроить

Не удается найти информацию о настройках по умолчанию/конфигурации для среды. На самом деле я хочу создать --env myenv без минимизации вывода html, как это делает --env development.


person user1308302    schedule 27.05.2014    source источник
comment
Минимизация вывода не является свойством среды. Обычно это задача, которая выполняется в файле docpad.coffee. Какой скелет вы используете? Параметры конфигурации для docpad находятся по адресу: docpad.org/docs/config.   -  person Steve Mc    schedule 27.05.2014
comment
хорошо, но в конфиге я не нахожу адресованной задачи минификации. По умолчанию он установлен по-разному для разработки и статики. Но не знаю, как это решить. Есть очень голый docpad.coffe почти без определений.   -  person user1308302    schedule 29.05.2014
comment
Я расширил то, что я имею в виду в ответе ниже.   -  person Steve Mc    schedule 29.05.2014


Ответы (2)


Обычно это делается путем запуска задачи grunt в событии writeAfter внизу файла docpad.coffee. Если вы загрузите скелет шаблон HTML5 с grunt, то это будет легче увидеть. Это второй в списке, когда вы устанавливаете скелеты через docpad.

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

<%if @site.env == 'development':%>
   <%- @getBlock('styles').add(@site.styles).toHTML() %>
<%else:%>
   <link  rel="stylesheet" href="/styles/all.min.css" />
<%end%>

Конечно, вы можете сделать это без ворчания, если у вас уже есть минифицированные и неминифицированные файлы. Grunt просто минифицирует и объединяет каждый раз, когда docpad регенерирует.

Что делает скелет HTML5, так это использует вспомогательную функцию и файл конфигурации grunt для достижения того же самого:

    getGruntedStyles: ->
            _ = require 'underscore'
            styles = []
            gruntConfig = require('./grunt-config.json')
            _.each gruntConfig, (value, key) ->
                styles = styles.concat _.flatten _.pluck value, 'dest'
            styles = _.filter styles, (value) ->
                return value.indexOf('.min.css') > -1
            _.map styles, (value) ->
                return value.replace 'out', ''

Если вы действительно хотите определить свою собственную среду, это может быть так же просто, как определить значение свойства env в файле docpad.coffee, а затем запросить это значение в макете.

В docpad.coffee

    env: myenvironment 

И в макете:

<%if @site.env == 'myenvironment':%>
person Steve Mc    schedule 29.05.2014
comment
может быть, я был неясен. Я имел в виду не минимизацию css, а простую минимизацию или сжатие html. На самом деле я посмотрел на шаблонную платформу html5 с помощью grunt. Но, честно говоря, я не очень понимаю ту часть, которую вы упоминаете о gruntedStyles. Все скрипты я сократил до минимума и своими усилиями. Я вызываю подпрограмму ворчания с помощью writeafter, и одна задача — uncss. Но uncss не работает, если html минимизирован/сжат. И с моей собственной средой, которую я вызываю, весь html плоский. Поэтому я хочу настроить среду с симпатичным выводом html, как это делает --env development. - person user1308302; 29.05.2014
comment
В этом контексте я сталкиваюсь с другим конфликтом, который также не решает шаблон html5boilerplategrunt. Возможно, у вас также есть идеи по этой проблеме - person user1308302; 29.05.2014
comment
@user1308302 user1308302 Да, за gruntedStyles немного сложно следовать, но более простой способ - использовать оператор if в макете, который раньше делал скелет html5. Из того, что вы говорите, я подозреваю, что какой бы процесс вы ни использовали для «выравнивания» html, в этом процессе есть что-то, принимающее решение о среде, в которой он находится. - person Steve Mc; 29.05.2014
comment
Я предположил, что это настройка по умолчанию из docpad в статической среде. Но теперь я думаю, что это связано с нефритом, на который я перешла из эко. В статическом (и во всех пользовательских) env eco рендерит обычный html, jade рендерит flatt. В среде разработки оба рендера расширены. Это как-то странно. Не могу найти где эти настройки. - person user1308302; 30.05.2014

Я посмотрел файлы jade-plugin. Итак, вам нужно это в вашем docpad.coffee:

environments:
  static:
    plugins:
      jade:
        jadeOptions: 
          pretty: true
person user1308302    schedule 30.05.2014