web templating engine for static websites, written in Go lang
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
media
.gitignore
LICENSE
README.md
color.go
errors.go
extractText.go
fileOperations.go
konstrui
main.go
readKonstruiConfig.go
stringManipulation.go
templating.go

README.md

Konstrui Go Report Card

web templating engine for static websites, written in Go lang

konstrui

Example

See the full example on https://github.com/arnaucode/konstrui/tree/master/example

  • Simple project structure example:
webInput/
    konstruiConfig.json
    index.html
    templates/
        userTemplate.html
        userTemplate.json
  • Set the html file:
<!DOCTYPE html>
<html>
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

<konstrui-template html="templates/userTemplate.html" data="templates/userTemplate.json"></konstrui-template>

</body>
</html>
  • Set the template file:
<div class="class1" id="user[[i]]">
    <div id="username[[i]]" class="class2">{{username}}</div>
    <div id="description[[i]]" class="class2">{{description}}</div>
    <div class="class2">{{phone}}</div>
</div>
  • Set the template data file:
[{
        "username": "Michaela Doe",
        "description": "Hi, I'm here to code",
        "phone": "456456456"
    },
    {
        "username": "John Doe",
        "description": "Hi, I'm here",
        "phone": "123456789"
    },
    {
        "username": "Myself",
        "description": "How are you",
        "phone": "no phone"
    }
]
  • Set the configuration file konstruiConfig.json in the webInput directory:
{
    "title": "Web example",
    "author": "arnaucode",
    "github": "github.com/arnaucode",
    "website": "arnaucode.com",
    "files": [
        "index.html",
        "projects.html",
        "app.css"
    ]
}
  • Execute konstrui
./konstrui
  • Output:
<!DOCTYPE html>
<html>

<body>
    <h1>Heading</h1>
    <p>Paragraph.</p>
    <div class="class1" id="user0">
        <div id="username0" class="class2">Michaela Doe</div>
        <div id="description0" class="class2">Hi, I'm here to code</div>
        <div class="class2">456456456</div>
    </div>
    <div class="class1" id="user1">
        <div id="username1" class="class2">John Doe</div>
        <div id="description1" class="class2">Hi, I'm here</div>
        <div class="class2">123456789</div>
    </div>
    <div class="class1" id="user2">
        <div id="username2" class="class2">Myself</div>
        <div id="description2" class="class2">How are you</div>
        <div class="class2">no phone</div>
    </div>
</body>

</html>

Features

Import templates

<konstrui-template html="template.html" data="template.json"></konstrui-template>

Load values:

{{username}}

Number of iterations:

User [[i]]

Subobjects:

<p konstrui-repeat="users">
    {{user.username}}
</p>