First steps

This commit is contained in:
Daniel Siepmann 2019-11-13 23:40:26 +01:00
commit 9086b7e537
33 changed files with 3981 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/node_modules/

View 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'

View file

@ -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
}
}
}
}
}
}
}
}

View file

@ -0,0 +1,17 @@
mod.wizards.newContentElement.wizardItems {
common {
show = text
}
menu {
show = menu_abstract
}
special {
show =
}
forms {
show =
}
plugins {
show =
}
}

View file

@ -0,0 +1,3 @@
TCAdefaults.tt_content {
header_layout = 1
}

View file

@ -0,0 +1,8 @@
TCEFORM.pages {
TSconfig {
disabled = 1
}
rowDescription {
disabled = 1
}
}

View 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
}
}

View file

@ -0,0 +1,9 @@
<?php
(function (string $extensionKey) {
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
$extensionKey,
'Configuration/PageTSconfig/Index.tsconfig',
$extensionKey
);
})('ds_site');

View file

@ -0,0 +1,9 @@
<?php
(function (string $extensionKey) {
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
$extensionKey,
'Configuration/TypoScript/',
$extensionKey
);
})('ds_site');

View file

@ -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/
}
}

View file

@ -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
}
}
}

View file

@ -0,0 +1,4 @@
tt_content.text =< lib.contentElement
tt_content.text {
templateName = Text
}

View 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
}
}
}
}
}

View file

@ -0,0 +1,3 @@
pageUids {
blogPosts = 2
}

View file

@ -0,0 +1,2 @@
@import 'EXT:ds_site/Configuration/TypoScript/Setup/'
@import 'EXT:ds_site/Configuration/TypoScript/Setup/ContentElements/'

View 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>

View 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 whats most interesting in this posts 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>

View 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>

View 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;
}

View file

@ -0,0 +1,10 @@
h1, h2, h3, h4, h5, h6 {
small a {
display: none;
}
&:hover small a {
display: inline;
color: $gray-500;
}
}

View 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";

View file

@ -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>

View 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>

View file

@ -0,0 +1 @@
test

View 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>

View 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>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

21
composer.json Normal file
View 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
View 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
View 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
View 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"
}
}

3304
yarn.lock Normal file

File diff suppressed because it is too large Load diff