Merge
This commit is contained in:
commit
3bed56ed4b
13 changed files with 24 additions and 27 deletions
3
.idea/workspace.xml
generated
3
.idea/workspace.xml
generated
|
|
@ -15,9 +15,6 @@
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="FavoritesManager">
|
|
||||||
<favorites_list name="CompiledCV" />
|
|
||||||
</component>
|
|
||||||
<component name="FileTemplateManagerImpl">
|
<component name="FileTemplateManagerImpl">
|
||||||
<option name="RECENT_TEMPLATES">
|
<option name="RECENT_TEMPLATES">
|
||||||
<list>
|
<list>
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"last 2 version",
|
"defaults"
|
||||||
"not dead",
|
|
||||||
"iOS >= 9",
|
|
||||||
"> 0.2%"
|
|
||||||
],
|
],
|
||||||
"homepage": "https://github.com/schmelczerandras/timeline#readme",
|
"homepage": "https://github.com/schmelczerandras/timeline#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
@ -39,6 +36,7 @@
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
"clean-webpack-plugin": "^3.0.0",
|
||||||
"css-loader": "^3.4.0",
|
"css-loader": "^3.4.0",
|
||||||
"file-loader": "^5.0.2",
|
"file-loader": "^5.0.2",
|
||||||
|
"html-webpack-inline-source-plugin": "0.0.10",
|
||||||
"html-webpack-plugin": "^3.2.0",
|
"html-webpack-plugin": "^3.2.0",
|
||||||
"image-webpack-loader": "^6.0.0",
|
"image-webpack-loader": "^6.0.0",
|
||||||
"mini-css-extract-plugin": "^0.9.0",
|
"mini-css-extract-plugin": "^0.9.0",
|
||||||
|
|
@ -57,6 +55,7 @@
|
||||||
"typescript": "^3.7.3",
|
"typescript": "^3.7.3",
|
||||||
"webpack": "^4.41.4",
|
"webpack": "^4.41.4",
|
||||||
"webpack-cli": "^3.3.10",
|
"webpack-cli": "^3.3.10",
|
||||||
"webpack-dev-server": "^3.10.1"
|
"webpack-dev-server": "^3.10.1",
|
||||||
|
"workbox-webpack-plugin": "^4.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,10 @@ export class Page extends PageElement {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
rootElement.append(...children.map(e => e.getElement()).filter(e => e));
|
children
|
||||||
|
.map(e => e.getElement())
|
||||||
|
.filter(e => e)
|
||||||
|
.forEach(e => rootElement.appendChild(e));
|
||||||
|
|
||||||
if (isRootPage) {
|
if (isRootPage) {
|
||||||
this.broadcastEvent({ type: PageEventType.onLoad }, this);
|
this.broadcastEvent({ type: PageEventType.onLoad }, this);
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
<meta property="og:image" content="https://schmelczer.dev/og-image.jpg">
|
<meta property="og:image" content="https://schmelczer.dev/og-image.jpg">
|
||||||
|
|
||||||
<meta name="description" content="You can view my projects on a timeline.">
|
<meta name="description" content="You can view my projects on a timeline.">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover" />
|
||||||
<meta name="theme-color" content="#AA4465" />
|
<meta name="theme-color" content="#AA4465" />
|
||||||
|
|
||||||
<title>Portfolio - András Schmelczer</title>
|
<title>Portfolio - András Schmelczer</title>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import { ResponsiveImage, url } from "./misc";
|
import { ResponsiveImage, url } from "./misc";
|
||||||
|
|
||||||
interface Anchor {
|
export type Anchor = {
|
||||||
type: "a";
|
type: "a";
|
||||||
href: url;
|
href: url;
|
||||||
text: string;
|
text: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
export type Video = {
|
export type Video = {
|
||||||
type: "video";
|
type: "video";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { url } from "./misc";
|
import { url } from "./misc";
|
||||||
import { Content, Image, Video } from "./content";
|
import { Anchor, Content, Image, Video } from "./content";
|
||||||
|
|
||||||
export interface Portfolio {
|
export interface Portfolio {
|
||||||
config: Config;
|
config: Config;
|
||||||
|
|
@ -25,7 +25,7 @@ export interface TimelineElement {
|
||||||
figure: Image | Video;
|
figure: Image | Video;
|
||||||
description: string;
|
description: string;
|
||||||
more?: Content;
|
more?: Content;
|
||||||
link?: url;
|
link?: Anchor;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Footer {
|
export interface Footer {
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,6 @@ export class PageBackground extends PageElement {
|
||||||
protected handleEvent(event: PageEvent, parent: PageElement) {
|
protected handleEvent(event: PageEvent, parent: PageElement) {
|
||||||
if (event.type === PageEventType.onLoad) {
|
if (event.type === PageEventType.onLoad) {
|
||||||
this.bindListeners(parent);
|
this.bindListeners(parent);
|
||||||
this.resize(parent);
|
|
||||||
} else if (event.type === PageEventType.onBodyDimensionsChanged) {
|
} else if (event.type === PageEventType.onBodyDimensionsChanged) {
|
||||||
this.resize(parent, event.data?.deltaHeight);
|
this.resize(parent, event.data?.deltaHeight);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ footer#page-footer {
|
||||||
|
|
||||||
h6 {
|
h6 {
|
||||||
@include insignificant-font();
|
@include insignificant-font();
|
||||||
opacity: 0.6;
|
opacity: 0.75;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,12 +28,7 @@ export const generate = (
|
||||||
`
|
`
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
${
|
${link ? PageContent.parseTypedContent(link) : ""}
|
||||||
link
|
|
||||||
? `
|
|
||||||
<a href="${link}" target="_blank">${link}</a>`
|
|
||||||
: ""
|
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
`;
|
`;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export class PageTimeline extends PageElement {
|
||||||
const elements = timeline.map(
|
const elements = timeline.map(
|
||||||
e => new PageTimelineElement(e, showMore, showLess)
|
e => new PageTimelineElement(e, showMore, showLess)
|
||||||
);
|
);
|
||||||
root.append(...elements.map(e => e.getElement()));
|
elements.map(e => e.getElement()).forEach(e => root.appendChild(e));
|
||||||
super(elements);
|
super(elements);
|
||||||
this.setElement(root);
|
this.setElement(root);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ export const portfolio: Portfolio = {
|
||||||
alt: `a picture of the website`
|
alt: `a picture of the website`
|
||||||
},
|
},
|
||||||
description: `A simple web page where you can view my photos.`,
|
description: `A simple web page where you can view my photos.`,
|
||||||
link: `schmelczer.dev/photos`
|
link: { type: `a`, href: `photos`, text: `schmelczer.dev/photos` }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
date: `2016 spring`,
|
date: `2016 spring`,
|
||||||
|
|
@ -203,7 +203,7 @@ export const portfolio: Portfolio = {
|
||||||
footer: {
|
footer: {
|
||||||
title: `Learn more`,
|
title: `Learn more`,
|
||||||
cv,
|
cv,
|
||||||
email: `andras@schmelczer.dev`,
|
email: `schmelczerandras@gmail.com`,
|
||||||
cvName: `Curriculum vitae`,
|
cvName: `Curriculum vitae`,
|
||||||
lastEditName: `Last modified on `,
|
lastEditName: `Last modified on `,
|
||||||
lastEdit: new Date(2019, 11, 29) // months are 0 indexed
|
lastEdit: new Date(2019, 11, 29) // months are 0 indexed
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ html {
|
||||||
body {
|
body {
|
||||||
@include main-font();
|
@include main-font();
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
padding: env(safe-area-inset-top, 20px) env(safe-area-inset-right, 20px)
|
||||||
|
env(safe-area-inset-bottom, 20px) env(safe-area-inset-left, 20px);
|
||||||
|
|
||||||
& > main {
|
& > main {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ const { CleanWebpackPlugin } = require("clean-webpack-plugin");
|
||||||
const TerserJSPlugin = require("terser-webpack-plugin");
|
const TerserJSPlugin = require("terser-webpack-plugin");
|
||||||
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
|
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
|
||||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||||
|
const HtmlWebpackInlineSourcePlugin = require("html-webpack-inline-source-plugin");
|
||||||
|
|
||||||
const isProduction = process.env.NODE_ENV === "production";
|
const isProduction = process.env.NODE_ENV === "production";
|
||||||
|
|
||||||
|
|
@ -20,11 +21,12 @@ module.exports = {
|
||||||
plugins: [
|
plugins: [
|
||||||
new CleanWebpackPlugin(),
|
new CleanWebpackPlugin(),
|
||||||
new HtmlWebpackPlugin({
|
new HtmlWebpackPlugin({
|
||||||
hash: true,
|
|
||||||
xhtml: true,
|
xhtml: true,
|
||||||
minify: true,
|
minify: true,
|
||||||
template: "./src/index.html"
|
template: "./src/index.html",
|
||||||
|
inlineSource: ".(js|css)$"
|
||||||
}),
|
}),
|
||||||
|
new HtmlWebpackInlineSourcePlugin(),
|
||||||
new MiniCssExtractPlugin({
|
new MiniCssExtractPlugin({
|
||||||
filename: "[name].[contenthash].css",
|
filename: "[name].[contenthash].css",
|
||||||
chunkFilename: "[id].[contenthash].css"
|
chunkFilename: "[id].[contenthash].css"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue