Re: Is it's possible to make modular pug template in vibed?

2017-08-09 Thread Steven Schveighoffer via Digitalmars-d-learn

On 8/9/17 5:30 AM, Suliman wrote:



Big thanks! Now I understand. Now i redone dlang.ru in diet templates.


Great!



Am I right understand that include is needed only for small includes 
without any nesting levels?


No, includes can be as big as you want, with as many nested levels as 
you want. You just can't alter the structure of the including template. 
I think what you are getting hung up on is that the indentation of the 
include has nothing to do with the indentation of the template that's 
including it. It's not like the text is copy-pasted and then evaluated 
in that context.


So if you have:

someelement
   include x

the resulting html file is going to be:


   

Re: Is it's possible to make modular pug template in vibed?

2017-08-09 Thread Suliman via Digitalmars-d-learn
On Tuesday, 8 August 2017 at 15:54:29 UTC, Steven Schveighoffer 
wrote:

On 8/8/17 10:52 AM, Suliman wrote:

your examples generate me:




 
 DLANG.ru
 
 
 
 
 (c) DLANG 2017
 
 
 



That's the template without the block.


The only one modification that I did I changes pages names:
extends home

because my main page is home.dt


You have it backwards. You don't render the layout template, 
but the template that extends the layout.


-Steve


Big thanks! Now I understand. Now i redone dlang.ru in diet 
templates.


Am I right understand that include is needed only for small 
includes without any nesting levels?


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Steven Schveighoffer via Digitalmars-d-learn

On 8/8/17 10:52 AM, Suliman wrote:

your examples generate me:




 
 DLANG.ru
 
 
 
 
 (c) DLANG 2017
 
 
 



That's the template without the block.


The only one modification that I did I changes pages names:
extends home

because my main page is home.dt


You have it backwards. You don't render the layout template, but the 
template that extends the layout.


-Steve


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Suliman via Digitalmars-d-learn

your examples generate me:





DLANG.ru




(c) DLANG 2017





The only one modification that I did I changes pages names:
extends home

because my main page is home.dt




Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Suliman via Digitalmars-d-learn

Am I right understand that I can extend only one template?


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Steven Schveighoffer via Digitalmars-d-learn

On 8/8/17 9:19 AM, Suliman wrote:

Still can't get it work.

include header
..MainContainer
..Header
   .HeaderMenu
 .HeaderBlock
   a(href="/") General
 .HeaderBlock
   a(href="/FAQ") FAQ
 .HeaderBlock
   a(href="/book") Book
   .HeaderLoginBlock Sign in
..Middle
   f
include footer


OK, you aren't thinking of this correctly then, each pug/diet file must 
be complete. It's not like C preprocessor where the structure can be 
played with via includes or macros.


That is, .MainContainer cannot be a child under something defined in header.

In this case, you need to use the block system.

it's template is compilable, but it have wrong indent. Original page 
(that I am trying to split) have next indents:


doctype html
html
   head
 title DLANG.ru
   body
 #app
   .MainContainer
 .Header
   .HeaderMenu
 .HeaderBlock
   router-link(to='/') General
 .HeaderBlock
   router-link(to='/FAQ') FAQ
 .HeaderBlock
   router-link(to='/book') Book
   .HeaderLoginBlock Sign in
 .Middle
   f
 .footer (c) DLANG 2017

But I can't get right indents when I am splition it.


So what you want is probably like:

layout.dt:
doctype html
html
   head
  title DLANG.ru
   body
  #app
 .MainContainer
block contents
.footer (c) DLANG 2017

myfile.dt:
extends layout
block contents
   .Header
  .HeaderMenu
 .HeaderBlock
router-link(to='/') General
 .HeaderBlock
router-link(to='/FAQ') FAQ
 .HeaderBlock
router-link(to='/book') Book
  .HeaderLoginBlock Sign in
   .Middle
  f

-Steve


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Suliman via Digitalmars-d-learn
On Tuesday, 8 August 2017 at 13:22:58 UTC, Steven Schveighoffer 
wrote:

On 8/8/17 9:10 AM, Suliman wrote:

Yes, thanks what: extends layout mean?


It means that your final file will be layout.dt, but with the 
block statements replaced with the contents defined by the 
specific view file.


Think of it like an interface, where the "blocks" are function 
prototypes, and your specific view file is a class that 
implements the interface, where you implement the functions by 
defining the blocks.


-Steve


Could you show how to improve my code above? I can't get it 
work...


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Steven Schveighoffer via Digitalmars-d-learn

On 8/8/17 9:10 AM, Suliman wrote:

Yes, thanks what: extends layout mean?


It means that your final file will be layout.dt, but with the block 
statements replaced with the contents defined by the specific view file.


Think of it like an interface, where the "blocks" are function 
prototypes, and your specific view file is a class that implements the 
interface, where you implement the functions by defining the blocks.


-Steve


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Suliman via Digitalmars-d-learn

Still can't get it work.

include header
.MainContainer
.Header
  .HeaderMenu
.HeaderBlock
  a(href="/") General
.HeaderBlock
  a(href="/FAQ") FAQ
.HeaderBlock
  a(href="/book") Book
  .HeaderLoginBlock Sign in
.Middle
  f
include footer



it's template is compilable, but it have wrong indent. Original 
page (that I am trying to split) have next indents:


doctype html
html
  head
title DLANG.ru
  body
#app
  .MainContainer
.Header
  .HeaderMenu
.HeaderBlock
  router-link(to='/') General
.HeaderBlock
  router-link(to='/FAQ') FAQ
.HeaderBlock
  router-link(to='/book') Book
  .HeaderLoginBlock Sign in
.Middle
  f
.footer (c) DLANG 2017

But I can't get right indents when I am splition it.



Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Suliman via Digitalmars-d-learn

Yes, thanks what: extends layout mean?




Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Steven Schveighoffer via Digitalmars-d-learn

On 8/8/17 8:38 AM, Suliman wrote:

On Tuesday, 8 August 2017 at 11:59:38 UTC, Suliman wrote:

On Tuesday, 8 August 2017 at 11:55:09 UTC, Suliman wrote:
For example I am making simple site with header and footer. header 
and footer will be same for all pages. I do not want to do copy-paste 
it in every page. I want write it's once and than simpy import in 
every page. Is it's possible to do with vibed?


Oh, I founded answer in docs.


I can't fund way to `include` header and footer in the same docs. I cam 
getting error: "Includes cannot have children"


This is probably because you have something like:

include myfile
   hr // this is not allowed

The way I do it is this (learned from Kai's book):

layout.dt:

html
  head
...
  body
... // header here
block content
... // footer here

someview.dt:
extends layout
block content
  ... // your content


-Steve


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Suliman via Digitalmars-d-learn

On Tuesday, 8 August 2017 at 11:59:38 UTC, Suliman wrote:

On Tuesday, 8 August 2017 at 11:55:09 UTC, Suliman wrote:
For example I am making simple site with header and footer. 
header and footer will be same for all pages. I do not want to 
do copy-paste it in every page. I want write it's once and 
than simpy import in every page. Is it's possible to do with 
vibed?


Oh, I founded answer in docs.


I can't fund way to `include` header and footer in the same docs. 
I cam getting error: "Includes cannot have children"


Re: Is it's possible to make modular pug template in vibed?

2017-08-08 Thread Suliman via Digitalmars-d-learn

On Tuesday, 8 August 2017 at 11:55:09 UTC, Suliman wrote:
For example I am making simple site with header and footer. 
header and footer will be same for all pages. I do not want to 
do copy-paste it in every page. I want write it's once and than 
simpy import in every page. Is it's possible to do with vibed?


Oh, I founded answer in docs.