First Commit
This commit is contained in:
commit
a85a692e3f
16 changed files with 356 additions and 0 deletions
11
.gitignore
vendored
Normal file
11
.gitignore
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
/build_local/
|
||||
/cache/
|
||||
/node_modules/
|
||||
/vendor/
|
||||
/.idea/
|
||||
/.vscode/
|
||||
npm-debug.log
|
||||
/package-lock.json
|
||||
/composer.lock
|
||||
/build_production/
|
||||
/build_staging/
|
17
bootstrap.php
Normal file
17
bootstrap.php
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
use TightenCo\Jigsaw\Jigsaw;
|
||||
|
||||
/** @var $container \Illuminate\Container\Container */
|
||||
/** @var $events \TightenCo\Jigsaw\Events\EventBus */
|
||||
|
||||
/**
|
||||
* You can run custom code at different stages of the build process by
|
||||
* listening to the 'beforeBuild', 'afterCollections', and 'afterBuild' events.
|
||||
*
|
||||
* For example:
|
||||
*
|
||||
* $events->beforeBuild(function (Jigsaw $jigsaw) {
|
||||
* // Your code here
|
||||
* });
|
||||
*/
|
5
composer.json
Normal file
5
composer.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"require": {
|
||||
"tightenco/jigsaw": "^1.3"
|
||||
}
|
||||
}
|
34
config.php
Normal file
34
config.php
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'production' => false,
|
||||
'baseUrl' => '',
|
||||
'title' => 'Socialtree',
|
||||
'author' => 'Nikurasu',
|
||||
'design' => 'main',
|
||||
'description' => 'A simple website to display links to social media accounts',
|
||||
'collections' => [],
|
||||
'imageName' => 'NikuPB.webp',
|
||||
'links' => [
|
||||
[
|
||||
'color' => 'youtube',
|
||||
'link' => 'https://youtube.com',
|
||||
'text' => 'Hier klicken',
|
||||
'platform' => 'youtube'
|
||||
],
|
||||
[
|
||||
'color' => 'youtube',
|
||||
'link' => 'https://twitter.com',
|
||||
'platform' => 'twitter'
|
||||
],
|
||||
[
|
||||
'link' => 'https://deviantart.com',
|
||||
'platform' => 'twitter',
|
||||
'text' => 'Ein Link'
|
||||
],
|
||||
[
|
||||
'link' => 'https://twitter.com',
|
||||
'platform' => 'mastodon'
|
||||
]
|
||||
],
|
||||
];
|
5
config.production.php
Normal file
5
config.production.php
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'production' => true,
|
||||
];
|
16
package.json
Normal file
16
package.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "mix",
|
||||
"watch": "mix watch",
|
||||
"staging": "NODE_ENV=staging mix",
|
||||
"prod": "mix --production"
|
||||
},
|
||||
"devDependencies": {
|
||||
"laravel-mix": "^6.0.39",
|
||||
"laravel-mix-jigsaw": "^1.5.0",
|
||||
"postcss": "^8.2.4",
|
||||
"sass": "^1.51.0",
|
||||
"sass-loader": "^12.6.0"
|
||||
}
|
||||
}
|
0
source/_assets/js/main.js
Normal file
0
source/_assets/js/main.js
Normal file
18
source/_assets/sass/main.sass
Normal file
18
source/_assets/sass/main.sass
Normal file
|
@ -0,0 +1,18 @@
|
|||
body
|
||||
margin: 0
|
||||
padding: 0
|
||||
display: flex
|
||||
justify-content: center
|
||||
|
||||
.mainContainer
|
||||
margin-top: 3rem
|
||||
|
||||
h1
|
||||
text-align: center
|
||||
font-family: sans-serif
|
||||
font-weight: 400
|
||||
|
||||
img
|
||||
height: 8rem
|
||||
width: auto
|
||||
border-radius: 100%
|
15
source/_layouts/main.blade.php
Normal file
15
source/_layouts/main.blade.php
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ $page->language ?? 'en' }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="canonical" href="{{ $page->getUrl() }}">
|
||||
<meta name="description" content="{{ $page->description }}">
|
||||
<title>{{ $page->author . " | " . $page->title }}</title>
|
||||
<link rel="stylesheet" href="{{ mix('css/'. $page->design. '.css', 'assets/build') }}">
|
||||
<script defer src="{{ mix('js/main.js', 'assets/build') }}"></script>
|
||||
</head>
|
||||
<body>
|
||||
@yield('body')
|
||||
</body>
|
||||
</html>
|
20
source/assets/build/css/main.css
Normal file
20
source/assets/build/css/main.css
Normal file
|
@ -0,0 +1,20 @@
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.mainContainer {
|
||||
margin-top: 3rem;
|
||||
}
|
||||
.mainContainer h1 {
|
||||
text-align: center;
|
||||
font-family: sans-serif;
|
||||
font-weight: 400;
|
||||
}
|
||||
.mainContainer img {
|
||||
height: 8rem;
|
||||
width: auto;
|
||||
border-radius: 100%;
|
||||
}
|
169
source/assets/build/js/main.js
Normal file
169
source/assets/build/js/main.js
Normal file
|
@ -0,0 +1,169 @@
|
|||
/******/ (() => { // webpackBootstrap
|
||||
/******/ var __webpack_modules__ = ({
|
||||
|
||||
/***/ "./source/_assets/js/main.js":
|
||||
/*!***********************************!*\
|
||||
!*** ./source/_assets/js/main.js ***!
|
||||
\***********************************/
|
||||
/***/ (() => {
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./source/_assets/sass/main.sass":
|
||||
/*!***************************************!*\
|
||||
!*** ./source/_assets/sass/main.sass ***!
|
||||
\***************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
/************************************************************************/
|
||||
/******/ // The module cache
|
||||
/******/ var __webpack_module_cache__ = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/ // Check if module is in cache
|
||||
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||
/******/ if (cachedModule !== undefined) {
|
||||
/******/ return cachedModule.exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||
/******/ // no module.id needed
|
||||
/******/ // no module.loaded needed
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = __webpack_modules__;
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/ /* webpack/runtime/chunk loaded */
|
||||
/******/ (() => {
|
||||
/******/ var deferred = [];
|
||||
/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
|
||||
/******/ if(chunkIds) {
|
||||
/******/ priority = priority || 0;
|
||||
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
|
||||
/******/ deferred[i] = [chunkIds, fn, priority];
|
||||
/******/ return;
|
||||
/******/ }
|
||||
/******/ var notFulfilled = Infinity;
|
||||
/******/ for (var i = 0; i < deferred.length; i++) {
|
||||
/******/ var [chunkIds, fn, priority] = deferred[i];
|
||||
/******/ var fulfilled = true;
|
||||
/******/ for (var j = 0; j < chunkIds.length; j++) {
|
||||
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
|
||||
/******/ chunkIds.splice(j--, 1);
|
||||
/******/ } else {
|
||||
/******/ fulfilled = false;
|
||||
/******/ if(priority < notFulfilled) notFulfilled = priority;
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(fulfilled) {
|
||||
/******/ deferred.splice(i--, 1)
|
||||
/******/ var r = fn();
|
||||
/******/ if (r !== undefined) result = r;
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ return result;
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/make namespace object */
|
||||
/******/ (() => {
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = (exports) => {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/jsonp chunk loading */
|
||||
/******/ (() => {
|
||||
/******/ // no baseURI
|
||||
/******/
|
||||
/******/ // object to store loaded and loading chunks
|
||||
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
||||
/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
|
||||
/******/ var installedChunks = {
|
||||
/******/ "/js/main": 0,
|
||||
/******/ "css/main": 0
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // no chunk on demand loading
|
||||
/******/
|
||||
/******/ // no prefetching
|
||||
/******/
|
||||
/******/ // no preloaded
|
||||
/******/
|
||||
/******/ // no HMR
|
||||
/******/
|
||||
/******/ // no HMR manifest
|
||||
/******/
|
||||
/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
|
||||
/******/
|
||||
/******/ // install a JSONP callback for chunk loading
|
||||
/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
|
||||
/******/ var [chunkIds, moreModules, runtime] = data;
|
||||
/******/ // add "moreModules" to the modules object,
|
||||
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||
/******/ var moduleId, chunkId, i = 0;
|
||||
/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
|
||||
/******/ for(moduleId in moreModules) {
|
||||
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
|
||||
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(runtime) var result = runtime(__webpack_require__);
|
||||
/******/ }
|
||||
/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
|
||||
/******/ for(;i < chunkIds.length; i++) {
|
||||
/******/ chunkId = chunkIds[i];
|
||||
/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
|
||||
/******/ installedChunks[chunkId][0]();
|
||||
/******/ }
|
||||
/******/ installedChunks[chunkId] = 0;
|
||||
/******/ }
|
||||
/******/ return __webpack_require__.O(result);
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || [];
|
||||
/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
|
||||
/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
|
||||
/******/ })();
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/
|
||||
/******/ // startup
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
|
||||
/******/ __webpack_require__.O(undefined, ["css/main"], () => (__webpack_require__("./source/_assets/js/main.js")))
|
||||
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["css/main"], () => (__webpack_require__("./source/_assets/sass/main.sass")))
|
||||
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
|
||||
/******/
|
||||
/******/ })()
|
||||
;
|
4
source/assets/build/mix-manifest.json
Normal file
4
source/assets/build/mix-manifest.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"/js/main.js": "/js/main.js?id=e9ff9bdfe6299cba8475000be0e17fd2",
|
||||
"/css/main.css": "/css/main.css?id=46a431ae19ed72d43b6de8e5f9a8a912"
|
||||
}
|
BIN
source/assets/images/NikuPB.webp
Normal file
BIN
source/assets/images/NikuPB.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
0
source/assets/images/jigsaw.png
Normal file
0
source/assets/images/jigsaw.png
Normal file
29
source/index.blade.php
Normal file
29
source/index.blade.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
@extends('_layouts.main')
|
||||
|
||||
@section('body')
|
||||
<div class="mainContainer">
|
||||
<img src="{{ 'assets/images/' . $page->imageName }}">
|
||||
<h1 class="">{{ $page->author }}</h1>
|
||||
<div>
|
||||
@foreach ($page->links as $link)
|
||||
@if (isset($link['text']) && isset($link['color']))
|
||||
<div class="{{strtolower($link->color)}}">
|
||||
<a href="{{$link->link}}">{{ strtoupper($link->text) }}</a>
|
||||
</div>
|
||||
@elseif (!isset($link['text']) && isset($link['color']))
|
||||
<div class="{{strtolower($link->color)}}">
|
||||
<a href="{{$link->link}}">{{ strtoupper($link->platform) }}</a>
|
||||
</div>
|
||||
@elseif (isset($link['text']) && !isset($link['color']))
|
||||
<div class="styledefault">
|
||||
<a href="{{$link->link}}">{{ strtoupper($link->text) }}</a>
|
||||
</div>
|
||||
@else
|
||||
<div class="sytledefault">
|
||||
<a href="{{$link->link}}">{{ strtoupper($link->platform) }}</a>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
13
webpack.mix.js
Normal file
13
webpack.mix.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
const mix = require('laravel-mix');
|
||||
require('laravel-mix-jigsaw');
|
||||
|
||||
mix.disableSuccessNotifications();
|
||||
mix.setPublicPath('source/assets/build');
|
||||
|
||||
mix.jigsaw()
|
||||
.js('source/_assets/js/main.js', 'js')
|
||||
.sass('source/_assets/sass/main.sass', 'css')
|
||||
.options({
|
||||
processCssUrls: false,
|
||||
})
|
||||
.version();
|
Reference in a new issue