The {{include}} statement is intended to include exactly what is in the included file, starting at the point of the {{include}} -- if the text in the included file is not indented, then neither will it be indented once included. If you want it indented, then you must indent the text in the included file.
Also, note that if you are producing HTML, indenting is not necessary anyway.
Anthony
Yes I'm producing HTML and I know it's not a big problem since it's not affecting to functionality. But still I prefer end result which looks clean and is indented in a proper manner. Indenting matters for the readability of HTML so I want it to be right.
Readability is most important in the files you edit (i.e., the view files). Why do you need the final HTML to be so readable? If it's for debugging, I suppose you could always pass the output through something like Beautiful Soup
prettify() when in development.
I could get a right end result if I manually indent every other than first line
Or indent everything (including the first line) in the included file but don't indent the {{include}} in the extended view.
In my opinion, include statement should work so that it preserves the original indentation. So if include statement is indented for example three tabs, then every line in included file should be indented three tabs plus their indentation in original file.
That would not be good default behavior because we can't always assume leading space represents indentation. Indentation would need to be an option triggered by some kind of flag.
Is there any quick fix how I could implement that?
I don't think so. I would suggest using an alternative templating engine, but I don't think others (e.g., Django, Jinja2, Mako) provide this option either (solutions I've seen require you to specify the indentation level, somewhat defeating the purpose).
You could probably write a function to add the indentation, but it would have to be called dynamically on the included template, which would kill the speed benefit of compiled views.
Anthony