First steps
This commit is contained in:
commit
9086b7e537
33 changed files with 3981 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/node_modules/
|
4
Configuration/PageTSconfig/Index.tsconfig
Normal file
4
Configuration/PageTSconfig/Index.tsconfig
Normal file
|
@ -0,0 +1,4 @@
|
|||
@import 'EXT:ds_site/Configuration/PageTSconfig/Tceform/*.tsconfig'
|
||||
@import 'EXT:ds_site/Configuration/PageTSconfig/TcaDefaults/*.tsconfig'
|
||||
@import 'EXT:ds_site/Configuration/PageTSconfig/Mod/Wizards/*.tsconfig'
|
||||
@import 'EXT:ds_site/Configuration/PageTSconfig/Mod/WebLayout/BackendLayouts/*.tsconfig'
|
|
@ -0,0 +1,38 @@
|
|||
mod.web_layout.BackendLayouts {
|
||||
blog_post {
|
||||
title = Blog Post
|
||||
icon = content-news
|
||||
config {
|
||||
backend_layout {
|
||||
colCount = 1
|
||||
rowCount = 2
|
||||
rows {
|
||||
1 {
|
||||
columns {
|
||||
1 {
|
||||
name = Introduction
|
||||
colPos = 50
|
||||
}
|
||||
}
|
||||
}
|
||||
2 {
|
||||
columns {
|
||||
1 {
|
||||
name = Content
|
||||
colPos = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
3 {
|
||||
columns {
|
||||
1 {
|
||||
name = Footer
|
||||
colPos = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
mod.wizards.newContentElement.wizardItems {
|
||||
common {
|
||||
show = text
|
||||
}
|
||||
menu {
|
||||
show = menu_abstract
|
||||
}
|
||||
special {
|
||||
show =
|
||||
}
|
||||
forms {
|
||||
show =
|
||||
}
|
||||
plugins {
|
||||
show =
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
TCAdefaults.tt_content {
|
||||
header_layout = 1
|
||||
}
|
8
Configuration/PageTSconfig/Tceform/Pages.tsconfig
Normal file
8
Configuration/PageTSconfig/Tceform/Pages.tsconfig
Normal file
|
@ -0,0 +1,8 @@
|
|||
TCEFORM.pages {
|
||||
TSconfig {
|
||||
disabled = 1
|
||||
}
|
||||
rowDescription {
|
||||
disabled = 1
|
||||
}
|
||||
}
|
48
Configuration/PageTSconfig/Tceform/TtContent.tsconfig
Normal file
48
Configuration/PageTSconfig/Tceform/TtContent.tsconfig
Normal file
|
@ -0,0 +1,48 @@
|
|||
TCEFORM.tt_content {
|
||||
header_position {
|
||||
disabled = 1
|
||||
}
|
||||
date {
|
||||
disabled = 1
|
||||
}
|
||||
header_link {
|
||||
disabled = 1
|
||||
}
|
||||
subheader {
|
||||
disabled = 1
|
||||
}
|
||||
|
||||
layout {
|
||||
disabled = 1
|
||||
}
|
||||
frame_class {
|
||||
disabled = 1
|
||||
}
|
||||
space_before_class {
|
||||
disabled = 1
|
||||
}
|
||||
space_after_class {
|
||||
disabled = 1
|
||||
}
|
||||
sectionIndex {
|
||||
disabled = 1
|
||||
}
|
||||
linkToTop {
|
||||
disabled = 1
|
||||
}
|
||||
|
||||
fe_group {
|
||||
disabled = 1
|
||||
}
|
||||
editlock {
|
||||
disabled = 1
|
||||
}
|
||||
|
||||
categories {
|
||||
disabled = 1
|
||||
}
|
||||
|
||||
rowDescription {
|
||||
disabled = 1
|
||||
}
|
||||
}
|
9
Configuration/TCA/Overrides/pages.php
Normal file
9
Configuration/TCA/Overrides/pages.php
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
(function (string $extensionKey) {
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
|
||||
$extensionKey,
|
||||
'Configuration/PageTSconfig/Index.tsconfig',
|
||||
$extensionKey
|
||||
);
|
||||
})('ds_site');
|
9
Configuration/TCA/Overrides/sys_template.php
Normal file
9
Configuration/TCA/Overrides/sys_template.php
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
(function (string $extensionKey) {
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
|
||||
$extensionKey,
|
||||
'Configuration/TypoScript/',
|
||||
$extensionKey
|
||||
);
|
||||
})('ds_site');
|
|
@ -0,0 +1,14 @@
|
|||
lib.contentElement = FLUIDTEMPLATE
|
||||
lib.contentElement {
|
||||
templateName = Default
|
||||
templateRootPaths {
|
||||
10 = EXT:ds_site/Resources/Private/Templates/ContentElements/
|
||||
}
|
||||
partialRootPaths {
|
||||
10 = EXT:ds_site/Resources/Private/Partials/
|
||||
20 = EXT:ds_site/Resources/Private/Partials/ContentElements/
|
||||
}
|
||||
layoutRootPaths {
|
||||
10 = EXT:ds_site/Resources/Private/Layouts/ContentElements/
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
tt_content.menu_abstract =< lib.contentElement
|
||||
tt_content.menu_abstract {
|
||||
templateName = MenuAbstract
|
||||
dataProcessing {
|
||||
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
|
||||
10 {
|
||||
special = directory
|
||||
special.value.field = pages
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
tt_content.text =< lib.contentElement
|
||||
tt_content.text {
|
||||
templateName = Text
|
||||
}
|
50
Configuration/TypoScript/Setup/Page.typoscript
Normal file
50
Configuration/TypoScript/Setup/Page.typoscript
Normal file
|
@ -0,0 +1,50 @@
|
|||
page = PAGE
|
||||
page {
|
||||
includeCSS {
|
||||
index = EXT:ds_site/Resources/Public/Css/index.css
|
||||
}
|
||||
|
||||
10 = FLUIDTEMPLATE
|
||||
10 {
|
||||
templateName {
|
||||
cObject = TEXT
|
||||
cObject {
|
||||
data = pagelayout
|
||||
required = 1
|
||||
case = uppercamelcase
|
||||
split {
|
||||
token = pagets__
|
||||
cObjNum = 1
|
||||
1.current = 1
|
||||
}
|
||||
}
|
||||
ifEmpty = Default
|
||||
}
|
||||
layoutRootPaths {
|
||||
10 = EXT:ds_site/Resources/Private/Layouts/Page/
|
||||
}
|
||||
partialRootPaths {
|
||||
10 = EXT:ds_site/Resources/Private/Partials/
|
||||
20 = EXT:ds_site/Resources/Private/Partials/Page/
|
||||
}
|
||||
templateRootPaths {
|
||||
10 = EXT:ds_site/Resources/Private/Templates/Page/
|
||||
}
|
||||
|
||||
variables {
|
||||
introduction < styles.content.get
|
||||
introduction {
|
||||
select {
|
||||
where = {#colPos}=50
|
||||
}
|
||||
}
|
||||
contentMain =< styles.content.get
|
||||
footer < styles.content.get
|
||||
footer {
|
||||
select {
|
||||
where = {#colPos}=100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
Configuration/TypoScript/constants.typoscript
Normal file
3
Configuration/TypoScript/constants.typoscript
Normal file
|
@ -0,0 +1,3 @@
|
|||
pageUids {
|
||||
blogPosts = 2
|
||||
}
|
2
Configuration/TypoScript/setup.typoscript
Normal file
2
Configuration/TypoScript/setup.typoscript
Normal file
|
@ -0,0 +1,2 @@
|
|||
@import 'EXT:ds_site/Configuration/TypoScript/Setup/'
|
||||
@import 'EXT:ds_site/Configuration/TypoScript/Setup/ContentElements/'
|
13
Resources/Private/Layouts/ContentElements/Default.html
Normal file
13
Resources/Private/Layouts/ContentElements/Default.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:render section="Header" arguments="{_all}" optional="1">
|
||||
<a name="{data.uid}"></a>
|
||||
<f:if condition="{data.header_layout} != 100">
|
||||
<!-- TODO: Map header_layout and use mapped value -->
|
||||
<h2>{data.header} <small><a href="#{data.uid}">¶</a></small></h2>
|
||||
</f:if>
|
||||
</f:render>
|
||||
|
||||
{f:render(section: 'Content', arguments: _all)}
|
||||
</html>
|
89
Resources/Private/Layouts/Page/Default.html
Normal file
89
Resources/Private/Layouts/Page/Default.html
Normal file
|
@ -0,0 +1,89 @@
|
|||
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
<div class="container">
|
||||
<header class="blog-header py-3">
|
||||
<div class="row flex-nowrap justify-content-between align-items-center">
|
||||
<div class="col-4 offset-4 text-center">
|
||||
<a class="blog-header-logo text-dark" href="/">Website Title</a>
|
||||
</div>
|
||||
<div class="col-4 pt-1 text-right">
|
||||
<a class="text-muted" href="#">RSS Feed</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- <div class="nav-scroller py-1 mb-2"> -->
|
||||
<!-- <nav class="nav d-flex justify-content-between"> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">World</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">U.S.</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Technology</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Design</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Culture</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Business</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Politics</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Opinion</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Science</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Health</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Style</a> -->
|
||||
<!-- <a class="p-2 text-muted" href="#">Travel</a> -->
|
||||
<!-- </nav> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- <div class="jumbotron p-4 p-md-5 text-white rounded bg-dark"> -->
|
||||
<!-- <div class="col-md-6 px-0"> -->
|
||||
<!-- <h1 class="display-4 font-italic">Title of a longer featured blog post</h1> -->
|
||||
<!-- <p class="lead my-3">Multiple lines of text that form the lede, informing new readers quickly and efficiently about what’s most interesting in this post’s contents.</p> -->
|
||||
<!-- <p class="lead mb-0"><a href="#" class="text-white font-weight-bold">Continue reading...</a></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- <div class="row mb-2"> -->
|
||||
<!-- <div class="col-md-6"> -->
|
||||
<!-- <div class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"> -->
|
||||
<!-- <div class="col p-4 d-flex flex-column position-static"> -->
|
||||
<!-- <strong class="d-inline-block mb-2 text-primary">World</strong> -->
|
||||
<!-- <h3 class="mb-0">Featured post</h3> -->
|
||||
<!-- <div class="mb-1 text-muted">Nov 12</div> -->
|
||||
<!-- <p class="card-text mb-auto">This is a wider card with supporting text below as a natural lead-in to additional content.</p> -->
|
||||
<!-- <a href="#" class="stretched-link">Continue reading</a> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="col-auto d-none d-lg-block"> -->
|
||||
<!-- <svg class="bd-placeholder-img" width="200" height="250" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: Thumbnail"><title>Placeholder</title><rect width="100%" height="100%" fill="#55595c"/><text x="50%" y="50%" fill="#eceeef" dy=".3em">Thumbnail</text></svg> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="col-md-6"> -->
|
||||
<!-- <div class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"> -->
|
||||
<!-- <div class="col p-4 d-flex flex-column position-static"> -->
|
||||
<!-- <strong class="d-inline-block mb-2 text-success">Design</strong> -->
|
||||
<!-- <h3 class="mb-0">Post title</h3> -->
|
||||
<!-- <div class="mb-1 text-muted">Nov 11</div> -->
|
||||
<!-- <p class="mb-auto">This is a wider card with supporting text below as a natural lead-in to additional content.</p> -->
|
||||
<!-- <a href="#" class="stretched-link">Continue reading</a> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="col-auto d-none d-lg-block"> -->
|
||||
<!-- <svg class="bd-placeholder-img" width="200" height="250" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: Thumbnail"><title>Placeholder</title><rect width="100%" height="100%" fill="#55595c"/><text x="50%" y="50%" fill="#eceeef" dy=".3em">Thumbnail</text></svg> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<main class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 blog-main">
|
||||
{f:render(section: 'Content', arguments: _all)}
|
||||
</div>
|
||||
|
||||
<aside class="col-md-4 blog-sidebar">
|
||||
{f:render(section: 'Aside', arguments: _all)}
|
||||
</aside>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer class="blog-footer">
|
||||
<p>ⓒ by Daniel Siepmann 2016 - {f:format.date(format: 'Y')}</p>
|
||||
<!-- TODO: Add imprint -->
|
||||
</footer>
|
||||
</div>
|
||||
</html>
|
8
Resources/Private/Partials/Menu/Page.html
Normal file
8
Resources/Private/Partials/Menu/Page.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
<div class="blog-post">
|
||||
<h2 class="blog-post-title"><a href="{page.link}">{page.title}</a></h2>
|
||||
<p class="blog-post-meta">{page.data.lastUpdated -> f:format.date(format: 'Y-m-d')}</p>
|
||||
|
||||
<p>{page.data.abstract -> f:format.nl2br()}</p>
|
||||
</div>
|
||||
</html>
|
108
Resources/Private/Sass/_blog.scss
Normal file
108
Resources/Private/Sass/_blog.scss
Normal file
|
@ -0,0 +1,108 @@
|
|||
@import "bootstrap/scss/bootstrap";
|
||||
|
||||
.blog-header {
|
||||
line-height: 1;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.blog-header-logo {
|
||||
font-family: "Playfair Display", Georgia, "Times New Roman", serif;
|
||||
font-size: 2.25rem;
|
||||
}
|
||||
|
||||
.blog-header-logo:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.display-4 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.nav-scroller {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
height: 2.75rem;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
.nav-scroller .nav {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
padding-bottom: 1rem;
|
||||
margin-top: -1px;
|
||||
overflow-x: auto;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.nav-scroller .nav-link {
|
||||
padding-top: .75rem;
|
||||
padding-bottom: .75rem;
|
||||
font-size: .875rem;
|
||||
}
|
||||
|
||||
.card-img-right {
|
||||
height: 100%;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
|
||||
.flex-auto {
|
||||
-ms-flex: 0 0 auto;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.h-250 { height: 250px; }
|
||||
|
||||
/*
|
||||
* Blog name and description
|
||||
*/
|
||||
.blog-title {
|
||||
margin-bottom: 0;
|
||||
font-size: 2rem;
|
||||
font-weight: 400;
|
||||
}
|
||||
.blog-description {
|
||||
font-size: 1.1rem;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.blog-pagination {
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
.blog-pagination > .btn {
|
||||
border-radius: 2rem;
|
||||
}
|
||||
|
||||
/*
|
||||
* Blog posts
|
||||
*/
|
||||
.blog-post {
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
.blog-post-title {
|
||||
margin-bottom: .25rem;
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
.blog-post-meta {
|
||||
margin-bottom: 1.25rem;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
/*
|
||||
* Footer
|
||||
*/
|
||||
.blog-footer {
|
||||
padding: 2.5rem 0;
|
||||
color: #999;
|
||||
text-align: center;
|
||||
background-color: #f9f9f9;
|
||||
border-top: .05rem solid #e5e5e5;
|
||||
}
|
||||
.blog-footer p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
10
Resources/Private/Sass/_layout.scss
Normal file
10
Resources/Private/Sass/_layout.scss
Normal file
|
@ -0,0 +1,10 @@
|
|||
h1, h2, h3, h4, h5, h6 {
|
||||
small a {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:hover small a {
|
||||
display: inline;
|
||||
color: $gray-500;
|
||||
}
|
||||
}
|
16
Resources/Private/Sass/index.scss
Normal file
16
Resources/Private/Sass/index.scss
Normal file
|
@ -0,0 +1,16 @@
|
|||
|
||||
// // Required
|
||||
// @import "bootstrap/scss/functions";
|
||||
// @import "bootstrap/scss/variables";
|
||||
// @import "bootstrap/scss/mixins";
|
||||
|
||||
// // Option
|
||||
// @import "bootstrap/scss/reboot";
|
||||
// @import "bootstrap/scss/type";
|
||||
// @import "bootstrap/scss/images";
|
||||
// @import "bootstrap/scss/code";
|
||||
// @import "bootstrap/scss/grid";
|
||||
|
||||
@import "blog";
|
||||
|
||||
@import "layout";
|
|
@ -0,0 +1,16 @@
|
|||
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
{f:layout(name: 'Default')}
|
||||
|
||||
<f:section name="Content">
|
||||
<f:for each="{menu}" as="page">
|
||||
{f:render(partial: 'Menu/Page', arguments: {page: page})}
|
||||
</f:for>
|
||||
|
||||
<!-- <nav class="blog-pagination"> -->
|
||||
<!-- <a class="btn btn-outline-primary" href="#">Older</a> -->
|
||||
<!-- <a class="btn btn-outline-secondary disabled" href="#" tabindex="-1" aria-disabled="true">Newer</a> -->
|
||||
<!-- </nav> -->
|
||||
</f:section>
|
||||
</html>
|
9
Resources/Private/Templates/ContentElements/Text.html
Normal file
9
Resources/Private/Templates/ContentElements/Text.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
{f:layout(name: 'Default')}
|
||||
|
||||
<f:section name="Content">
|
||||
{data.bodytext -> f:format.html()}
|
||||
</f:section>
|
||||
</html>
|
1
Resources/Private/Templates/ErrorHandling/404.html
Normal file
1
Resources/Private/Templates/ErrorHandling/404.html
Normal file
|
@ -0,0 +1 @@
|
|||
test
|
55
Resources/Private/Templates/Page/BlogPost.html
Normal file
55
Resources/Private/Templates/Page/BlogPost.html
Normal file
|
@ -0,0 +1,55 @@
|
|||
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:layout name="Default" />
|
||||
|
||||
<f:section name="Content">
|
||||
<section>
|
||||
<header>
|
||||
<h1 class="pb-4 mb-4 font-italic border-bottom">{data.title}</h1>
|
||||
<p class="blog-post-meta">Published: {data.lastUpdated -> f:format.date(format: 'Y-m-d')}</p>
|
||||
</header>
|
||||
|
||||
<p>{data.abstract -> f:format.nl2br()}</p>
|
||||
{introduction -> f:format.raw()}
|
||||
|
||||
{contentMain -> f:format.raw()}
|
||||
|
||||
{footer -> f:format.raw()}
|
||||
</section>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Aside">
|
||||
<div class="p-4 mb-3 bg-light rounded">
|
||||
<h4 class="font-italic">About</h4>
|
||||
<p class="mb-0">Etiam porta <em>sem malesuada magna</em> mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.</p>
|
||||
</div>
|
||||
|
||||
<div class="p-4">
|
||||
<h4 class="font-italic">Archives</h4>
|
||||
<ol class="list-unstyled mb-0">
|
||||
<li><a href="#">March 2014</a></li>
|
||||
<li><a href="#">February 2014</a></li>
|
||||
<li><a href="#">January 2014</a></li>
|
||||
<li><a href="#">December 2013</a></li>
|
||||
<li><a href="#">November 2013</a></li>
|
||||
<li><a href="#">October 2013</a></li>
|
||||
<li><a href="#">September 2013</a></li>
|
||||
<li><a href="#">August 2013</a></li>
|
||||
<li><a href="#">July 2013</a></li>
|
||||
<li><a href="#">June 2013</a></li>
|
||||
<li><a href="#">May 2013</a></li>
|
||||
<li><a href="#">April 2013</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<div class="p-4">
|
||||
<h4 class="font-italic">Elsewhere</h4>
|
||||
<ol class="list-unstyled">
|
||||
<li><a href="#">GitHub</a></li>
|
||||
<li><a href="#">Twitter</a></li>
|
||||
<li><a href="#">Facebook</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</f:section>
|
||||
</html>
|
44
Resources/Private/Templates/Page/Default.html
Normal file
44
Resources/Private/Templates/Page/Default.html
Normal file
|
@ -0,0 +1,44 @@
|
|||
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:layout name="Default" />
|
||||
|
||||
<f:section name="Content">
|
||||
<h1 class="pb-4 mb-4 font-italic border-bottom">{data.title}</h1>
|
||||
{contentMain -> f:format.raw()}
|
||||
</f:section>
|
||||
|
||||
<f:section name="Aside">
|
||||
<div class="p-4 mb-3 bg-light rounded">
|
||||
<h4 class="font-italic">About</h4>
|
||||
<p class="mb-0">Etiam porta <em>sem malesuada magna</em> mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.</p>
|
||||
</div>
|
||||
|
||||
<div class="p-4">
|
||||
<h4 class="font-italic">Archives</h4>
|
||||
<ol class="list-unstyled mb-0">
|
||||
<li><a href="#">March 2014</a></li>
|
||||
<li><a href="#">February 2014</a></li>
|
||||
<li><a href="#">January 2014</a></li>
|
||||
<li><a href="#">December 2013</a></li>
|
||||
<li><a href="#">November 2013</a></li>
|
||||
<li><a href="#">October 2013</a></li>
|
||||
<li><a href="#">September 2013</a></li>
|
||||
<li><a href="#">August 2013</a></li>
|
||||
<li><a href="#">July 2013</a></li>
|
||||
<li><a href="#">June 2013</a></li>
|
||||
<li><a href="#">May 2013</a></li>
|
||||
<li><a href="#">April 2013</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<div class="p-4">
|
||||
<h4 class="font-italic">Elsewhere</h4>
|
||||
<ol class="list-unstyled">
|
||||
<li><a href="#">GitHub</a></li>
|
||||
<li><a href="#">Twitter</a></li>
|
||||
<li><a href="#">Facebook</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</f:section>
|
||||
</html>
|
7
Resources/Public/Css/index.css
Normal file
7
Resources/Public/Css/index.css
Normal file
File diff suppressed because one or more lines are too long
BIN
Resources/Public/Icons/Extension.png
Normal file
BIN
Resources/Public/Icons/Extension.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
21
composer.json
Normal file
21
composer.json
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "danielsiepmann/ds-site",
|
||||
"description": "TYPO3 Sitepackage for daniel-siepmann.de",
|
||||
"type": "typo3-cms-extension",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Daniel Siepmann",
|
||||
"email": "coding@daniel-siepmann.de"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.3.0",
|
||||
"typo3/cms-core": "^9.5"
|
||||
},
|
||||
"extra": {
|
||||
"typo3/cms": {
|
||||
"extension-key": "ds_site"
|
||||
}
|
||||
}
|
||||
}
|
21
ext_emconf.php
Normal file
21
ext_emconf.php
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$EM_CONF[$_EXTKEY] = [
|
||||
'title' => 'Daniel Siepmann Website',
|
||||
'description' => 'Configuration of Daniel Siepmann Website',
|
||||
'category' => 'fe',
|
||||
'state' => 'stable',
|
||||
'uploadfolder' => 0,
|
||||
'createDirs' => '',
|
||||
'clearCacheOnLoad' => 0,
|
||||
'author' => 'Daniel Siepmann',
|
||||
'author_email' => 'coding@daniel-siepmann.de',
|
||||
'author_company' => '',
|
||||
'version' => '0.0.1',
|
||||
'constraints' => [
|
||||
'depends' => [
|
||||
'core' => '',
|
||||
],
|
||||
'conflicts' => [],
|
||||
'suggests' => [],
|
||||
],
|
||||
];
|
22
gulpfile.js
Normal file
22
gulpfile.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
const { src, dest, parallel, watch } = require('gulp');
|
||||
const sass = require('gulp-sass');
|
||||
const minifyCSS = require('gulp-csso');
|
||||
|
||||
const sassFolder = 'Resources/Private/Sass/';
|
||||
|
||||
function css() {
|
||||
return src(sassFolder + 'index.scss')
|
||||
.pipe(sass({
|
||||
includePaths: [
|
||||
'./node_modules/'
|
||||
]
|
||||
}).on('error', sass.logError))
|
||||
.pipe(minifyCSS())
|
||||
.pipe(dest('Resources/Public/Css/'))
|
||||
}
|
||||
|
||||
exports.css = css;
|
||||
exports.watch = function () {
|
||||
watch([sassFolder + '**/*.scss'], {ignoreInitial: false}, css);
|
||||
};
|
||||
exports.default = parallel(css);
|
16
package.json
Normal file
16
package.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"scripts": {
|
||||
"build": "gulp default",
|
||||
"watch": "gulp watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "^4.3.1",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-cli": "^2.2.0",
|
||||
"gulp-csso": "^3.0.1",
|
||||
"gulp-sass": "^4.0.2",
|
||||
"jquery": "^3.4.1",
|
||||
"popper.js": "^1.16.0",
|
||||
"sass": "^1.23.3"
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue