init kirby

This commit is contained in:
isUnknown 2024-01-25 17:05:19 +01:00
commit 38acf68b47
24 changed files with 1915 additions and 0 deletions

21
.editorconfig Normal file
View file

@ -0,0 +1,21 @@
[*.{css,scss,less,js,json,ts,sass,html,hbs,mustache,phtml,html.twig,md,yml}]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
indent_size = 4
trim_trailing_whitespace = false
[site/templates/**.php]
indent_size = 2
[site/snippets/**.php]
indent_size = 2
[package.json,.{babelrc,editorconfig,eslintrc,lintstagedrc,stylelintrc}]
indent_style = space
indent_size = 2

56
.gitignore vendored Normal file
View file

@ -0,0 +1,56 @@
# System files
# ------------
Icon
.DS_Store
# Temporary files
# ---------------
/media/*
!/media/index.html
# Lock files
# ---------------
.lock
# Editors
# (sensitive workspace files)
# ---------------------------
*.sublime-workspace
/.vscode
/.idea
# -------------SECURITY-------------
# NEVER publish these files via Git!
# -------------SECURITY-------------
# Cache Files
# ---------------
/site/cache/*
!/site/cache/index.html
# Accounts
# ---------------
/site/accounts/*
!/site/accounts/index.html
# Sessions
# ---------------
/site/sessions/*
!/site/sessions/index.html
# License
# ---------------
/site/config/.license
/0_local
/kirby
/vendor

67
.htaccess Normal file
View file

@ -0,0 +1,67 @@
# Kirby .htaccess
# revision 2023-07-22
# rewrite rules
<IfModule mod_rewrite.c>
# enable awesome urls. i.e.:
# http://yourdomain.com/about-us/team
RewriteEngine on
# make sure to set the RewriteBase correctly
# if you are running the site in a subfolder;
# otherwise links or the entire site will break.
#
# If your homepage is http://yourdomain.com/mysite,
# set the RewriteBase to:
#
# RewriteBase /mysite
# In some environments it's necessary to
# set the RewriteBase to:
#
# RewriteBase /
# block files and folders beginning with a dot, such as .git
# except for the .well-known folder, which is used for Let's Encrypt and security.txt
RewriteRule (^|/)\.(?!well-known\/) index.php [L]
# block all files in the content folder from being accessed directly
RewriteRule ^content/(.*) index.php [L]
# block all files in the site folder from being accessed directly
RewriteRule ^site/(.*) index.php [L]
# block direct access to Kirby and the Panel sources
RewriteRule ^kirby/(.*) index.php [L]
# make site links work
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]
</IfModule>
# pass the Authorization header to PHP
SetEnvIf Authorization "(.+)" HTTP_AUTHORIZATION=$1
# compress text file responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
# set security headers in all responses
<IfModule mod_headers.c>
# serve files as plain text if the actual content type is not known
# (hardens against attacks from malicious file uploads)
Header set Content-Type "text/plain" "expr=-z %{CONTENT_TYPE}"
Header set X-Content-Type-Options "nosniff"
</IfModule>

36
README.md Normal file
View file

@ -0,0 +1,36 @@
<img src="http://getkirby.com/assets/images/github/plainkit.jpg" width="300">
**Kirby: the CMS that adapts to any project, loved by developers and editors alike.**
The Plainkit is a minimal Kirby setup with the basics you need to start a project from scratch. It is the ideal choice if you are already familiar with Kirby and want to start step-by-step.
You can learn more about Kirby at [getkirby.com](https://getkirby.com).
### Try Kirby for free
You can try Kirby and the Plainkit on your local machine or on a test server as long as you need to make sure it is the right tool for your next project. … and when youre convinced, [buy your license](https://getkirby.com/buy).
### Get going
Read our guide on [how to get started with Kirby](https://getkirby.com/docs/guide/quickstart).
You can [download the latest version](https://github.com/getkirby/plainkit/archive/main.zip) of the Plainkit.
If you are familiar with Git, you can clone Kirby's Plainkit repository from Github.
git clone https://github.com/getkirby/plainkit.git
## What's Kirby?
- **[getkirby.com](https://getkirby.com)** Get to know the CMS.
- **[Try it](https://getkirby.com/try)** Take a test ride with our online demo. Or download one of our kits to get started.
- **[Documentation](https://getkirby.com/docs/guide)** Read the official guide, reference and cookbook recipes.
- **[Issues](https://github.com/getkirby/kirby/issues)** Report bugs and other problems.
- **[Feedback](https://feedback.getkirby.com)** You have an idea for Kirby? Share it.
- **[Forum](https://forum.getkirby.com)** Whenever you get stuck, don't hesitate to reach out for questions and support.
- **[Discord](https://chat.getkirby.com)** Hang out and meet the community.
- **[Mastodon](https://mastodon.social/@getkirby)** Spread the word.
- **[Instagram](https://www.instagram.com/getkirby/)** Share your creations: #madewithkirby.
---
© 2009 Bastian Allgeier
[getkirby.com](https://getkirby.com) · [License agreement](https://getkirby.com/license)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

45
assets/script.js Normal file
View file

@ -0,0 +1,45 @@
function toggleTab(event, tabName) {
hideAllTabs(event)
const button =
event.target.tagName === "BUTTON"
? event.target
: event.target.closest("button")
// const buttonTop = button.offsetTop
const icon = button.querySelector(".more-less-icon")
const article = document.querySelector("#" + tabName)
icon.textContent = icon.textContent === "+" ? "-" : "+"
button.classList.toggle("open")
article.classList.toggle("hidden")
}
function hideAllTabs(event) {
const tabContainer = event.target.closest("toggle")
const buttons = document.querySelectorAll(".toggle-btn")
const articles = document.querySelectorAll(".tab")
buttons.forEach((btn) => {
btn.classList.remove("open")
btn.querySelector(".more-less-icon").textContent = "+"
})
articles.forEach((article) => {
article.classList.add("hidden")
})
}
document.addEventListener("DOMContentLoaded", () => {
function toggleLogoState() {
const scrollY = window.scrollY || window.pageYOffset
if (scrollY > 10) {
document.querySelector("#header").classList.add("minimized")
} else {
document.querySelector("#header").classList.remove("minimized")
}
}
window.addEventListener("scroll", () => {
toggleLogoState()
})
})

397
assets/style.css Normal file
View file

@ -0,0 +1,397 @@
/* ================= FONTFACE ================= */
@font-face {
font-family: "Switzer-Variable";
src: url("/assets/fonts/Switzer-Variable.woff2") format("woff2"),
url("/assets/fonts/Switzer-Variable.woff") format("woff"),
url("/assets/fonts/Switzer-Variable.ttf") format("truetype");
font-weight: 100 900;
font-display: swap;
font-style: normal;
}
/* ================= RESET ================= */
html,
body,
h1,
h2,
h3,
h4,
h5,
p,
ul {
margin: 0;
padding: 0;
font-family: "Switzer-Variable", sans-serif;
}
button {
background: none;
color: inherit;
border: none;
padding: 0;
font: inherit;
cursor: pointer;
outline: inherit;
}
a {
text-decoration: none;
color: inherit;
}
li {
list-style-type: none;
}
/* ================= SCROLLBAR ================= */
/* BROWSERS */
/* Works on Firefox */
* {
scrollbar-width: thin;
scrollbar-color: rgba(0, 0, 0, 0.1) transparent;
}
/* Works on Chrome, Edge, and Safari */
*::-webkit-scrollbar {
width: 6px;
height: 6px;
}
*::-webkit-scrollbar-track {
background: transparent;
}
*::-webkit-scrollbar-thumb {
background-color: rgba(0, 0, 0, 0.1);
border-radius: 0px;
border: none;
}
/* ================= VARIABLES ================= */
:root {
--color-background: #000;
--color-primary: #ffffff;
--color-primary--transparent: rgba(255, 255, 255, 0.86);
--color-secondary: rgb(120, 171, 150, 0.86);
--color-secondary--light: rgb(119, 177, 157, 0.25);
--color-secondary--x-light: rgb(119, 177, 157, 0.15);
--unit--horizontal: 5vw;
--unit--vertical: 1.3rem;
--font-size-m: 1.2rem;
}
* {
scroll-behavior: smooth;
}
body {
padding: var(--unit--vertical) var(--unit--horizontal);
background-color: var(--color-background);
color: var(--color-primary);
font-family: sans-serif;
}
/* ================= GENERIC CLASSES ================= */
.hidden {
display: none;
}
.grid {
background-size: var(--unit--horizontal) var(--unit--vertical);
background-image: linear-gradient(
to right,
var(--color-secondary--x-light) 1px,
transparent 1px
),
linear-gradient(
to bottom,
var(--color-secondary--light) 1px,
transparent 1px
),
linear-gradient(
to bottom,
var(--color-secondary--x-light) 1px,
transparent 1px
);
background-position: 0 0, 0 0, 0 calc(var(--unit--vertical) / 2);
background-attachment: fixed;
}
/* ================= HTML ================= */
hr {
height: calc(var(--unit--vertical) / 2);
border: none;
background-color: var(--color-primary);
width: calc(var(--unit--horizontal) * 4);
margin: calc(var(--unit--vertical) * 2) calc(var(--unit--horizontal));
}
hr.center {
width: calc(100% - (var(--unit--horizontal) * 2));
}
nav hr {
background-color: var(--color-background);
margin-left: 0;
}
/* ================= TEXTS ================= */
h1 {
font-size: 25vw;
line-height: 4rem;
transform: translate(-2px, -13px);
font-weight: 550;
}
p,
li,
button,
#baseline {
transform: translateY(calc(var(--unit--vertical) * 0.12));
font-weight: lighter;
font-size: var(--font-size-m);
line-height: calc(var(--unit--vertical));
}
p {
transform: translateY(3px);
}
button {
display: flex;
align-items: center;
}
/* ================= HEADER ================= */
#header {
position: fixed;
z-index: 1;
top: 0;
left: 0;
box-sizing: border-box;
width: 100%;
height: calc(var(--unit--vertical) * 5);
padding: var(--unit--vertical) var(--unit--horizontal);
transition: height 0.2s ease-in-out;
}
#header.minimized {
height: calc(var(--unit--vertical) * 3);
}
#logo,
#logo-nav {
position: relative;
}
#logo-nav {
margin-top: var(--unit--vertical);
margin-left: var(--unit--horizontal);
}
#header.open #actuel {
color: var(--color-background);
}
#logo #actuel,
#logo-nav #actuel-nav {
color: var(--color-primary--transparent);
position: relative;
z-index: 1;
margin-left: calc(var(--unit--horizontal) * 2);
}
#logo #inactuel,
#logo-nav #inactuel-nav {
position: absolute;
z-index: 0;
color: var(--color-secondary);
bottom: -48%;
transition: bottom 0.2s ease-in-out;
}
#header.minimized #logo #inactuel,
#header.minimized #logo-nav #inactuel-nav {
bottom: 0%;
}
/* NAV */
#nav-btn {
z-index: 3;
position: absolute;
top: var(--unit--vertical);
right: var(--unit--horizontal);
width: calc(var(--unit--horizontal) * 2);
height: var(--unit--vertical);
display: flex;
justify-content: center;
/* transform: rotate(-45deg); */
}
#nav-btn .line-up,
#nav-btn .line-center,
#nav-btn .line-down {
position: absolute;
height: 2px;
background-color: var(--color-primary);
transition: all 0.3s ease-in-out;
}
#header.open .line-up,
#header.open .line-center,
#header.open .line-down {
background-color: var(--color-background);
}
#nav-btn .line-up {
width: var(--unit--horizontal);
transform: translateY(calc(0rem - (var(--unit--vertical) / 3))) rotate(0deg);
}
#nav-btn .line-center {
height: 4px;
width: calc(var(--unit--horizontal) * 2);
}
#nav-btn .line-down {
width: var(--unit--horizontal);
transform: translateY(calc(var(--unit--vertical) / 3)) rotate(0deg);
}
/* NAV OPEN */
#nav-btn.open .line-up {
transform: translateY(0) rotate(90deg);
width: calc(var(--unit--horizontal) * 2);
}
#nav-btn.open .line-center {
height: 2px;
}
#nav-btn.open .line-down {
transform: translateY(0) rotate(-45deg);
width: calc(var(--unit--vertical) * 2);
}
/* NAV PANEL */
nav {
position: fixed;
z-index: 2;
top: 0;
left: 0;
width: 100vw;
height: 0vh;
background-color: var(--color-primary);
color: var(--color-background);
overflow: hidden;
transition: all 0.5s ease-in-out;
}
#header.open nav {
height: 100vh;
}
#spaces {
margin-left: var(--unit--horizontal);
}
#spaces li {
margin-bottom: var(--unit--vertical);
}
/* ================= MAIN ================= */
main,
#spaces {
margin-top: calc(var(--unit--vertical) * 6);
}
#baseline {
font-weight: 300;
margin-left: calc(var(--unit--horizontal) * 5);
margin-bottom: calc(var(--unit--vertical) * 10);
width: calc(var(--unit--horizontal) * 12);
}
section.closed {
height: var(--unit--vertical);
}
h2.right {
display: flex;
justify-content: flex-end;
color: var(--color-secondary);
}
h2.right::after,
h2.left::before {
display: inline-block;
content: "";
height: calc(var(--unit--vertical) / 2);
background-color: var(--color-primary);
width: calc(var(--unit--horizontal) * 1);
}
h2.right::after {
margin-right: calc(0vw - var(--unit--horizontal));
margin-left: var(--unit--horizontal);
background-color: var(--color-secondary);
}
h2.left::before {
margin-left: calc(0vw - var(--unit--horizontal));
margin-right: var(--unit--horizontal);
}
h2.left.open::before {
width: calc(var(--unit--horizontal) * 4);
}
/* ================= TABS ================= */
.toggle-btns {
display: flex;
justify-content: space-between;
}
#content {
margin-top: calc(var(--unit--vertical) * 2);
}
.toggle-btn--left .more-less-icon {
margin-left: var(--unit--horizontal);
}
.toggle-btn--right .more-less-icon {
margin-right: var(--unit--horizontal);
}
/* ================= ARTICLES LIST ================= */
#articles {
margin: 0 var(--unit--horizontal);
}
#organize {
margin-bottom: calc(var(--unit--vertical));
}
.article {
position: relative;
margin-bottom: calc(var(--unit--vertical) * 2);
box-sizing: border-box;
}
.article__infos,
.article__labels {
transform: translateY(calc(0rem - (var(--unit--vertical) * 0.1)));
}
.article__infos {
display: flex;
}
.article__labels {
display: flex;
}
.article .label {
margin-right: var(--unit--horizontal);
text-decoration: underline;
text-decoration-style: dotted;
text-underline-offset: 6px;
}

40
composer.json Normal file
View file

@ -0,0 +1,40 @@
{
"name": "getkirby/plainkit",
"description": "Kirby Plainkit",
"type": "project",
"keywords": [
"kirby",
"cms",
"starterkit"
],
"authors": [
{
"name": "Bastian Allgeier",
"email": "bastian@getkirby.com",
"homepage": "https://getkirby.com"
}
],
"homepage": "https://getkirby.com",
"support": {
"email": "support@getkirby.com",
"issues": "https://github.com/getkirby/starterkit/issues",
"forum": "https://forum.getkirby.com",
"source": "https://github.com/getkirby/starterkit"
},
"require": {
"php": "~8.1.0 || ~8.2.0 || ~8.3.0",
"getkirby/cms": "^4.0"
},
"config": {
"allow-plugins": {
"getkirby/composer-installer": true
},
"optimize-autoloader": true
},
"scripts": {
"start": [
"Composer\\Config::disableProcessTimeout",
"@php -S localhost:8000 kirby/router.php"
]
}
}

1218
composer.lock generated Normal file

File diff suppressed because it is too large Load diff

1
content/error/error.txt Normal file
View file

@ -0,0 +1 @@
Title: Error

1
content/home/home.txt Normal file
View file

@ -0,0 +1 @@
Title: Home

1
content/site.txt Normal file
View file

@ -0,0 +1 @@
Title: Site Title

5
index.php Normal file
View file

@ -0,0 +1,5 @@
<?php
require 'kirby/bootstrap.php';
echo (new Kirby)->render();

0
media/index.html Normal file
View file

0
site/accounts/index.html Normal file
View file

View file

@ -0,0 +1,21 @@
title: Default Page
columns:
main:
width: 2/3
sections:
fields:
type: fields
fields:
text:
type: textarea
size: huge
sidebar:
width: 1/3
sections:
pages:
type: pages
template: default
files:
type: files

5
site/blueprints/site.yml Normal file
View file

@ -0,0 +1,5 @@
title: Site
sections:
pages:
type: pages

0
site/cache/index.html vendored Normal file
View file

0
site/sessions/index.html Normal file
View file

0
site/snippets/index.html Normal file
View file

View file

@ -0,0 +1 @@
<h1><?= $page->title() ?></h1>