--- /dev/null
+module.exports = function(grunt) {
+
+ grunt.loadNpmTasks('grunt-contrib-copy');
+ grunt.loadNpmTasks('grunt-contrib-less');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+
+ grunt.initConfig({
+
+ pkg: grunt.file.readJSON('package.json'),
+
+ copy: {
+ html: {
+ expand: true,
+ cwd: 'html',
+ src: '**/*.html',
+ dest: 'dist/thymeleaf/templates',
+ }
+ },
+
+ less: {
+ compile: {
+ options: {
+ sourceMapURL: 'frontend.css.map',
+ sourceMapFilename: 'dist/css/frontend.css.map'
+ },
+ src: 'less/frontend.less',
+ dest: 'dist/css/frontend.css'
+ }
+ },
+
+ watch: {
+ copy: {
+ files: [ 'html/**/*.html' ],
+ tasks: [ 'copy' ]
+ },
+ less: {
+ files: [ 'less/**/*.less' ],
+ tasks: [ 'less' ]
+ }
+ }
+
+ });
+
+ grunt.registerTask('http-server', function() {
+
+ grunt.util.spawn({
+ cmd: 'node_modules/http-server/bin/http-server',
+ args: [ 'dist' ],
+ opts: { stdio: 'inherit' }
+ });
+
+ });
+
+ grunt.registerTask('default', [ 'copy', 'less' ]);
+
+ grunt.registerTask('server', [ 'default', 'http-server', 'watch' ]);
+
+};
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+
+ <meta charset="utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+
+ <title>Layout-Template</title>
+
+ <link rel="stylesheet" type="text/css" href="../../css/frontend.css" />
+
+</head>
+
+<body>
+
+ <header>
+ <h2>yourSHOUTER - Startseite</h2>
+ <hr />
+ <!-- Navigation -->
+ <nav id="menu" class="navbar navbar-submenu navbar-fixed-top">
+ <h3 class="sr-only">Navigation</h3>
+ <ul>
+ <li><strong>Home</strong></li>
+ <li><a href="#a">A</a></li>
+ <li><a href="#b">B</a></li>
+ <li><a href="#c">C</a></li>
+ </ul>
+ </nav>
+ <hr />
+ </header>
+
+
+ <main>
+
+ <article id="top">
+ <h1>Layout-Template</h1>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
+ ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+ aliquip ex ea commodo consequat. Duis aute irure dolor in
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+ culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <h2>Duis aute irure dolor</h2>
+ <ul>
+ <li>Operators and other mathematical stuff: -+/*</li>
+ <li>
+ Characters offten used in programming languages:
+ {(<>)}@$?%*#;:&/\!^"'`~
+ </li>
+ <li>Special german characters: ÄäÖöÜü</li>
+ <li>Other special characters: @?¢§%°</li>
+ </ul>
+ <h2>Excepteur sint occaecat cupidatat</h2>
+ <p>
+ Lorem ipsum dolor <em>sit amet</em>, consectetur adipisicing elit,
+ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
+ nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+ culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ <strong>Ut enim ad minim veniam, quis nostrud <em>exercitation
+ ullamco</em> laboris nisi ut aliquip ex ea commodo consequat</strong>.
+ Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
+ cupidatat non proident, sunt in culpa qui officia deserunt mollit
+ anim id est laborum.
+ </p>
+ </article>
+
+ </main>
+
+ <footer>
+ <hr />
+ <p>Brought to you by <a href="http://juplo.de/">juplo.de</a>!</p>
+ </footer>
+
+</body>
+
+</html>