Использование Chirpy с синтаксисом Razor - PullRequest
1 голос
/ 16 декабря 2011

Я только начал использовать Chirpy (как v2.01, так и v2.03 - http://chirpy.codeplex.com/),, и хотя он отлично работает с файлами .js и .css, у меня возникли некоторые проблемы с любым RazorСинтаксис в VS 2010.

По сути, у меня есть файл Razor, который выглядит следующим образом:

@{ ViewBag.Title = "Blah"}

@section Styles{ ... }

@section Scripts{ ... }

html

В разных местах я использую циклы @foreach и использую либо "@:", либочтобы сообщить, что такое код и что нужно выводить.

Все сказано и сделано, Chirpy выдает мне сотни ошибок. Все они либо:

Error 60 "missing name after .@" 

Error 62 "syntax error" 

Error 63 "invalid property id" 

Error 67 "missing ; before statement" 

Error 68 "illegally formed XML syntax" 

На самом деле проблем в этом нетфайлы cshtml, так как все они отлично работают в Firefox / Chrome без ошибок.

Может ли кто-нибудь помочь? Хотелось бы получить встроенное js-минирование, если оно доступно.

Я разместил этот запрос в кодекплексесайт также (и будет сообщать, если я получу ответ): http://chirpy.codeplex.com/discussions/283079

Если все остальное не поможет, я прыгну в код (это с открытым исходным кодом). Любой предложит лучшее место для начала, чем здесь: http://chirpy.codeplex.com/SourceControl/changeset/view/d003dad47915#Engines%2fViewEngine.cs?

Приветствия, Daz.

1 Ответ

2 голосов
/ 29 декабря 2011

Насколько я вижу из кода, Chirpy использует свои "обычные" механизмы преобразования для минимизации CSS и JS.

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

На самом деле, это имеет большой смысл, так как минификатор может работать только с расширенным кодом, что-то вроде этого, просто не может быть "минимизировано" (то же самое верно для .less / css):

   <script>
        @for(int i = 0; i < 10: i++) {
            var k@i = @(i * i);
        }
        alert(k@(variable_from_razor));
   </script>
...