Yamlify page objects
This commit is contained in:
parent
7ac30458d1
commit
088932a742
@ -7,22 +7,27 @@ module.exports = {
|
||||
config.experiments = { asset: true };
|
||||
|
||||
config.module.rules.push(
|
||||
{
|
||||
test: /\.ya?ml$/,
|
||||
use: 'js-yaml-loader',
|
||||
|
||||
},
|
||||
{
|
||||
test: /\.svg$/,
|
||||
use: [{ loader: "@svgr/webpack" }]
|
||||
use: [{ loader: "@svgr/webpack" }],
|
||||
},
|
||||
{
|
||||
test: /\.md$/,
|
||||
type: 'asset/source'
|
||||
type: 'asset/source',
|
||||
},
|
||||
{
|
||||
test: /\.otf$/,
|
||||
type: 'asset/resource'
|
||||
type: 'asset/resource',
|
||||
},
|
||||
{
|
||||
resourceQuery: /raw/,
|
||||
type: 'asset/source',
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
return config
|
||||
|
79
package-lock.json
generated
79
package-lock.json
generated
@ -8,6 +8,7 @@
|
||||
"@types/react": "^17.0.37",
|
||||
"dotenv": "^10.0.0",
|
||||
"gray-matter": "^4.0.3",
|
||||
"js-yaml-loader": "^1.2.2",
|
||||
"next": "^11.1.4",
|
||||
"normalize.css": "^8.0.1",
|
||||
"react": "^17.0.2",
|
||||
@ -3643,7 +3644,6 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
|
||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 4"
|
||||
}
|
||||
@ -5256,6 +5256,40 @@
|
||||
"js-yaml": "bin/js-yaml.js"
|
||||
}
|
||||
},
|
||||
"node_modules/js-yaml-loader": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml-loader/-/js-yaml-loader-1.2.2.tgz",
|
||||
"integrity": "sha512-H+NeuNrG6uOs/WMjna2SjkaCw13rMWiT/D7l9+9x5n8aq88BDsh2sRmdfxckWPIHtViYHWRG6XiCKYvS1dfyLg==",
|
||||
"dependencies": {
|
||||
"js-yaml": "^3.13.1",
|
||||
"loader-utils": "^1.2.3",
|
||||
"un-eval": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/js-yaml-loader/node_modules/json5": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
||||
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
|
||||
"dependencies": {
|
||||
"minimist": "^1.2.0"
|
||||
},
|
||||
"bin": {
|
||||
"json5": "lib/cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/js-yaml-loader/node_modules/loader-utils": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
|
||||
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
|
||||
"dependencies": {
|
||||
"big.js": "^5.2.2",
|
||||
"emojis-list": "^3.0.0",
|
||||
"json5": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/jsesc": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
|
||||
@ -8141,6 +8175,11 @@
|
||||
"node": ">=4.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/un-eval": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/un-eval/-/un-eval-1.2.0.tgz",
|
||||
"integrity": "sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA=="
|
||||
},
|
||||
"node_modules/unbox-primitive": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
|
||||
@ -11206,8 +11245,7 @@
|
||||
"emojis-list": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
|
||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
|
||||
"dev": true
|
||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
|
||||
},
|
||||
"encoding": {
|
||||
"version": "0.1.13",
|
||||
@ -12367,6 +12405,36 @@
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"js-yaml-loader": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml-loader/-/js-yaml-loader-1.2.2.tgz",
|
||||
"integrity": "sha512-H+NeuNrG6uOs/WMjna2SjkaCw13rMWiT/D7l9+9x5n8aq88BDsh2sRmdfxckWPIHtViYHWRG6XiCKYvS1dfyLg==",
|
||||
"requires": {
|
||||
"js-yaml": "^3.13.1",
|
||||
"loader-utils": "^1.2.3",
|
||||
"un-eval": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"json5": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
||||
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
|
||||
"requires": {
|
||||
"minimist": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"loader-utils": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
|
||||
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
|
||||
"requires": {
|
||||
"big.js": "^5.2.2",
|
||||
"emojis-list": "^3.0.0",
|
||||
"json5": "^1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jsesc": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
|
||||
@ -14472,6 +14540,11 @@
|
||||
"integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
|
||||
"dev": true
|
||||
},
|
||||
"un-eval": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/un-eval/-/un-eval-1.2.0.tgz",
|
||||
"integrity": "sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA=="
|
||||
},
|
||||
"unbox-primitive": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
|
||||
|
@ -9,6 +9,7 @@
|
||||
"@types/react": "^17.0.37",
|
||||
"dotenv": "^10.0.0",
|
||||
"gray-matter": "^4.0.3",
|
||||
"js-yaml-loader": "^1.2.2",
|
||||
"next": "^11.1.4",
|
||||
"normalize.css": "^8.0.1",
|
||||
"react": "^17.0.2",
|
||||
|
@ -1,5 +1,6 @@
|
||||
import React, { ReactElement } from 'react';
|
||||
import Layout from '../components/layout';
|
||||
import pl from '../public/playlists.yaml';
|
||||
|
||||
type listItem = {
|
||||
children?: listItem[];
|
||||
@ -7,27 +8,7 @@ type listItem = {
|
||||
title: string;
|
||||
};
|
||||
|
||||
const list: listItem[] = [{
|
||||
title: 'Classical by Composer',
|
||||
children: [
|
||||
{
|
||||
title: '[Youtube] Antonio Lucio Vivaldi',
|
||||
url: 'https://youtube.com/playlist?list=PLSU6wJEYct5HslkoJWHQFCttB-lhSwVr2'
|
||||
},
|
||||
{
|
||||
title: '[Youtube] Johann Sebastian Bach',
|
||||
url: 'https://youtube.com/playlist?list=PLSU6wJEYct5HftuY6UunC6zE_QMXOGmhm'
|
||||
},
|
||||
{
|
||||
title: '[Youtube] Ludwig van Beethoven',
|
||||
url: 'https://youtube.com/playlist?list=PLSU6wJEYct5Etx0WAXUQ7YXe84Fp5E142'
|
||||
},
|
||||
{
|
||||
title: '[Youtube] Wolfgang Amadeus Mozart',
|
||||
url: 'https://youtube.com/playlist?list=PLSU6wJEYct5EJsE-9Zh-jWckBuZAmIt8Q'
|
||||
}
|
||||
]
|
||||
}];
|
||||
const list: listItem[] = pl;
|
||||
|
||||
function mapChild(obj: listItem, level: number) {
|
||||
if (obj.url)
|
||||
|
@ -1,6 +1,6 @@
|
||||
import Layout from '../../components/layout';
|
||||
import { useRouter } from 'next/router';
|
||||
import { getAllPosts, getPost } from '../../lib/slug';
|
||||
import { getAllPosts, getPost } from '../../util/slug';
|
||||
import ReactMarkdown from 'react-markdown';
|
||||
import Image from 'next/image';
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
import Link from 'next/link';
|
||||
import React from 'react';
|
||||
import Layout from '../../components/layout';
|
||||
import { getAllPosts } from '../../lib/slug';
|
||||
import Pages from '../../public/pages.json';
|
||||
import cachePostLinkData from '../../util/post-cache';
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import React, { ReactElement } from 'react';
|
||||
import Layout from '../components/layout';
|
||||
import style from '../styles/lists.module.css';
|
||||
import rec from '../public/recommended.yaml';
|
||||
|
||||
type listItem = {
|
||||
children?: listItem[] | string[];
|
||||
@ -9,150 +10,10 @@ type listItem = {
|
||||
description?: string
|
||||
};
|
||||
|
||||
const list: listItem[] = [
|
||||
{
|
||||
title: 'Books',
|
||||
children: [
|
||||
{
|
||||
title: 'Technology',
|
||||
children: [
|
||||
{
|
||||
title: 'C programming',
|
||||
children: [
|
||||
{
|
||||
title: 'The C Programming Language [K&R]',
|
||||
url: 'https://en.wikipedia.org/wiki/The_C_Programming_Language'
|
||||
},
|
||||
{
|
||||
title: 'Expert C Programming by Peter van der Linden'
|
||||
},
|
||||
{
|
||||
title: 'Practical C Programming by Steve Oualline (outdated like all the books in this section but still good)'
|
||||
},
|
||||
{
|
||||
title: 'Mastering Algorithms with C by Kyle Loudon'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Other Programming',
|
||||
children: [
|
||||
'Programming Perl by Larry Wall [Camel Book] (one of the first programming books I used. It probably is outdated but it is written well)',
|
||||
'Programming Rust: Fast, Safe Systems Development',
|
||||
'The Rust Programming Language',
|
||||
'Programming in Lua, Fourth Edition by Roberto Ierusalimschy'
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Operating Systems',
|
||||
children: [
|
||||
'Advanced Programming in the Unix Environment by W. Richard Stevens',
|
||||
'Operating Systems: Design and Implementation by Andrew S. Tanenbaum (I have not had a chance to read his other books on OS. I am not a fan of his networking book though.)'
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: 'Networking'
|
||||
// },
|
||||
// {
|
||||
// title: 'Electronics'
|
||||
// },
|
||||
{
|
||||
title: 'Computer Engineering',
|
||||
children: [
|
||||
'Making Embedded Systems: Design Patterns for Great Software by Elecia White',
|
||||
'Computer Organization and Design: the Hardware/Software Interface [Patterson Hennessy]',
|
||||
'Computer Architecture: A Quantitative Approach [Hennessy Patterson]'
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Compilers',
|
||||
children: [
|
||||
{
|
||||
title: 'Compilers: Principles, Techniques, and Tools [Dragon Book] (discusses theory in detail so it is kind of hard to read)'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Other',
|
||||
children: [
|
||||
{
|
||||
title: 'Definitive Guide to sed: Tutorial and Reference'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Classics',
|
||||
description: 'Only the English ones for now.',
|
||||
children: [
|
||||
'Christmas Carol',
|
||||
'A Tale of Two Cities',
|
||||
'The Mayor of Casterbridge',
|
||||
'The Citadel',
|
||||
'Oliver Twist',
|
||||
'Macbeth',
|
||||
'Othello',
|
||||
'Adventures of Huckleberry Finn',
|
||||
'Murder on the Orient Express'
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Language Learning',
|
||||
children: ['Lingua Latina per se Illustrata (Both parts)']
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Movies',
|
||||
children: [
|
||||
'Pulp Fiction',
|
||||
'Blade Runner 2049',
|
||||
'The Grand Budapest Hotel',
|
||||
'The Hateful Eight',
|
||||
'Goodfellas',
|
||||
'Inception',
|
||||
'Memento',
|
||||
'Dune (2021)',
|
||||
'Hot Fuzz',
|
||||
'Snatch'
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Music',
|
||||
children: [
|
||||
'American Pie by Don McLean',
|
||||
'L\'Ultima Diligenza by Ennio Morricone'
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Classical Music',
|
||||
children: [
|
||||
'Große Fuge Op. 133',
|
||||
'KV 387',
|
||||
'KV 448',
|
||||
'KV 626',
|
||||
'Piano Sonata No. 2 Mvmt. 3 (Chopin)',
|
||||
'BWV 1048',
|
||||
'Prelude in G Minor (Op. 23 No. 5)',
|
||||
'String Quartet, Op. 20 No. 2 (Haydn)',
|
||||
'Arabesque No. 1 (Debussy)'
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Video Games',
|
||||
children: [
|
||||
'The Legend of Zelda: Breath of the Wild',
|
||||
'Portal 2',
|
||||
'Factorio',
|
||||
'The Witcher 3: The Wild Hunt GOTY Edition (Especially the DLCs)',
|
||||
'Baba is You',
|
||||
'Red Dead Redemption'
|
||||
]
|
||||
}
|
||||
];
|
||||
const list: listItem[] = rec // todo: validate this
|
||||
|
||||
function mapChild(obj: listItem | string, level: number) {
|
||||
console.log(list)
|
||||
if (typeof obj === 'string') {
|
||||
if (obj === '')
|
||||
return <></>
|
||||
|
@ -1,6 +1,7 @@
|
||||
import React, { ReactElement } from 'react';
|
||||
import Layout from '../components/layout';
|
||||
import style from '../styles/lists.module.css';
|
||||
import res from '../public/resources.yaml';
|
||||
|
||||
type listItem = {
|
||||
children?: listItem[] | string[];
|
||||
@ -9,80 +10,7 @@ type listItem = {
|
||||
description?: string
|
||||
};
|
||||
|
||||
const list = [{
|
||||
title: 'Programming',
|
||||
children: [
|
||||
{
|
||||
url: 'http://aggregate.org/MAGIC/',
|
||||
title: 'The Aggregate Magic Algorithms'
|
||||
},
|
||||
{
|
||||
url: 'https://3fx.ch/typing-is-hard.html',
|
||||
title: 'Typing is Hard'
|
||||
},
|
||||
{
|
||||
url: 'https://www.atlassian.com/git/',
|
||||
title: 'Atlassian\'s Git Guide'
|
||||
},
|
||||
{
|
||||
url: 'https://learnopengl.com/',
|
||||
title: 'LearnOpenGL.com'
|
||||
},
|
||||
{
|
||||
url: 'http://ctan.math.utah.edu/ctan/tex-archive/info/symbols/comprehensive/symbols-letter.pdf',
|
||||
title: '[PDF] LaTeX Symbols'
|
||||
},
|
||||
{
|
||||
url: 'https://tobi.oetiker.ch/lshort/lshort.pdf',
|
||||
title: '[PDF] The Not So Short Introduction to LATEX 2ε'
|
||||
|
||||
},
|
||||
{
|
||||
url: 'https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html',
|
||||
title: 'The MIT License, Line by Line by Kyle E. Mitchell'
|
||||
},
|
||||
{
|
||||
title: 'Posts',
|
||||
children: [
|
||||
{
|
||||
title: 'How to Make Your Code Reviewer Fall in Love with You by Michael Lynch',
|
||||
url: 'https://mtlynch.io/code-review-love/'
|
||||
},
|
||||
{
|
||||
title: 'What\'s in the box? by @fasterthanlime',
|
||||
url: 'https://fasterthanli.me/articles/whats-in-the-box'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Talks',
|
||||
children: [
|
||||
{
|
||||
title: 'Concurrency is not Parallelism by Rob Pike',
|
||||
url: 'https://talks.golang.org/2012/waza.slide'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Electrical',
|
||||
children: [
|
||||
{
|
||||
title: 'Common Wire-To-Board, Wire-To-Wire Connectors, And Crimp Tools',
|
||||
url: 'http://www.mattmillman.com/info/crimpconnectors/'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Other Topics',
|
||||
children: [
|
||||
{
|
||||
title: 'Sight Reading Trainer',
|
||||
url: 'https://sightreading.training/'
|
||||
}
|
||||
]
|
||||
}];
|
||||
const list: listItem[] = res;
|
||||
|
||||
function mapChild(obj: listItem | string, level: number) {
|
||||
if (typeof obj === 'string') {
|
||||
|
11
public/playlists.yaml
Normal file
11
public/playlists.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
- title: Classical by Composer
|
||||
children:
|
||||
- title: "[Youtube] Antonio Lucio Vivaldi"
|
||||
url: https://youtube.com/playlist?list=PLSU6wJEYct5HslkoJWHQFCttB-lhSwVr2
|
||||
- title: "[Youtube] Johann Sebastian Bach"
|
||||
url: https://youtube.com/playlist?list=PLSU6wJEYct5HftuY6UunC6zE_QMXOGmhm
|
||||
- title: "[Youtube] Ludwig van Beethoven"
|
||||
url: https://youtube.com/playlist?list=PLSU6wJEYct5Etx0WAXUQ7YXe84Fp5E142
|
||||
- title: "[Youtube] Wolfgang Amadeus Mozart"
|
||||
url: https://youtube.com/playlist?list=PLSU6wJEYct5EJsE-9Zh-jWckBuZAmIt8Q
|
||||
|
89
public/recommended.yaml
Normal file
89
public/recommended.yaml
Normal file
@ -0,0 +1,89 @@
|
||||
- title: Books
|
||||
hey: sdf
|
||||
children:
|
||||
- title: Technology
|
||||
children:
|
||||
- title: C programming
|
||||
children:
|
||||
- title: The C Programming Language [K&R]
|
||||
url: https://en.wikipedia.org/wiki/The_C_Programming_Language
|
||||
- title: Expert C Programming by Peter van der Linden
|
||||
- title: Practical C Programming by Steve Oualline (outdated like all the books
|
||||
in this section but still good)
|
||||
- title: Mastering Algorithms with C by Kyle Loudon
|
||||
- title: Other Programming
|
||||
children:
|
||||
- Programming Perl by Larry Wall [Camel Book] (one of the first programming
|
||||
books I used. It probably is outdated but it is written well)
|
||||
- 'Programming Rust: Fast, Safe Systems Development'
|
||||
- The Rust Programming Language
|
||||
- Programming in Lua, Fourth Edition by Roberto Ierusalimschy
|
||||
- title: Operating Systems
|
||||
children:
|
||||
- Advanced Programming in the Unix Environment by W. Richard Stevens
|
||||
- 'Operating Systems: Design and Implementation by Andrew S. Tanenbaum (I have
|
||||
not had a chance to read his other books on OS. I am not a fan of his networking
|
||||
book though.)'
|
||||
- title: Computer Engineering
|
||||
children:
|
||||
- 'Making Embedded Systems: Design Patterns for Great Software by Elecia White'
|
||||
- 'Computer Organization and Design: the Hardware/Software Interface [Patterson
|
||||
Hennessy]'
|
||||
- 'Computer Architecture: A Quantitative Approach [Hennessy Patterson]'
|
||||
- title: Compilers
|
||||
children:
|
||||
- title: 'Compilers: Principles, Techniques, and Tools [Dragon Book] (discusses
|
||||
theory in detail so it is kind of hard to read)'
|
||||
- title: Other
|
||||
children:
|
||||
- title: 'Definitive Guide to sed: Tutorial and Reference'
|
||||
- title: Classics
|
||||
description: Only the English ones for now.
|
||||
children:
|
||||
- Christmas Carol
|
||||
- A Tale of Two Cities
|
||||
- The Mayor of Casterbridge
|
||||
- The Citadel
|
||||
- Oliver Twist
|
||||
- Macbeth
|
||||
- Othello
|
||||
- Adventures of Huckleberry Finn
|
||||
- Murder on the Orient Express
|
||||
- title: Language Learning
|
||||
children:
|
||||
- Lingua Latina per se Illustrata (Both parts)
|
||||
- title: Movies
|
||||
children:
|
||||
- Pulp Fiction
|
||||
- Blade Runner 2049
|
||||
- The Grand Budapest Hotel
|
||||
- The Hateful Eight
|
||||
- Goodfellas
|
||||
- Inception
|
||||
- Memento
|
||||
- Dune (2021)
|
||||
- Hot Fuzz
|
||||
- Snatch
|
||||
- title: Music
|
||||
children:
|
||||
- American Pie by Don McLean
|
||||
- L'Ultima Diligenza by Ennio Morricone
|
||||
- title: Classical Music
|
||||
children:
|
||||
- Große Fuge Op. 133
|
||||
- KV 387
|
||||
- KV 448
|
||||
- KV 626
|
||||
- Piano Sonata No. 2 Mvmt. 3 (Chopin)
|
||||
- BWV 1048
|
||||
- Prelude in G Minor (Op. 23 No. 5)
|
||||
- String Quartet, Op. 20 No. 2 (Haydn)
|
||||
- Arabesque No. 1 (Debussy)
|
||||
- title: Video Games
|
||||
children:
|
||||
- 'The Legend of Zelda: Breath of the Wild'
|
||||
- Portal 2
|
||||
- Factorio
|
||||
- 'The Witcher 3: The Wild Hunt GOTY Edition (Especially the DLCs)'
|
||||
- Baba is You
|
||||
- Red Dead Redemption
|
34
public/resources.yaml
Normal file
34
public/resources.yaml
Normal file
@ -0,0 +1,34 @@
|
||||
- title: Programming
|
||||
children:
|
||||
- url: http://aggregate.org/MAGIC/
|
||||
title: The Aggregate Magic Algorithms
|
||||
- url: https://3fx.ch/typing-is-hard.html
|
||||
title: Typing is Hard
|
||||
- url: https://www.atlassian.com/git/
|
||||
title: Atlassian's Git Guide
|
||||
- url: https://learnopengl.com/
|
||||
title: LearnOpenGL.com
|
||||
- url: http://ctan.math.utah.edu/ctan/tex-archive/info/symbols/comprehensive/symbols-letter.pdf
|
||||
title: "[PDF] LaTeX Symbols"
|
||||
- url: https://tobi.oetiker.ch/lshort/lshort.pdf
|
||||
title: "[PDF] The Not So Short Introduction to LATEX 2ε"
|
||||
- url: https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html
|
||||
title: The MIT License, Line by Line by Kyle E. Mitchell
|
||||
- title: Posts
|
||||
children:
|
||||
- title: How to Make Your Code Reviewer Fall in Love with You by Michael Lynch
|
||||
url: https://mtlynch.io/code-review-love/
|
||||
- title: What's in the box? by @fasterthanlime
|
||||
url: https://fasterthanli.me/articles/whats-in-the-box
|
||||
- title: Talks
|
||||
children:
|
||||
- title: Concurrency is not Parallelism by Rob Pike
|
||||
url: https://talks.golang.org/2012/waza.slide
|
||||
- title: Electrical
|
||||
children:
|
||||
- title: Common Wire-To-Board, Wire-To-Wire Connectors, And Crimp Tools
|
||||
url: http://www.mattmillman.com/info/crimpconnectors/
|
||||
- title: Other Topics
|
||||
children:
|
||||
- title: Sight Reading Trainer
|
||||
url: https://sightreading.training/
|
@ -1,5 +1,5 @@
|
||||
import fs from 'fs';
|
||||
import { getAllPosts } from '../lib/slug';
|
||||
import { getAllPosts } from './slug';
|
||||
import { join } from 'path';
|
||||
|
||||
const publicDir = join(process.cwd(), 'public');
|
||||
|
@ -39,5 +39,9 @@ export function getPost(rawslug: string, filter: Array<any> = []) {
|
||||
export function getAllPosts(filter: Array<any> = []) {
|
||||
const files = fs.readdirSync(postsDirectory);
|
||||
|
||||
return files.map(file => { return getPost(file, filter) });
|
||||
return files
|
||||
.filter(c => !c.match(/^\./))
|
||||
.map(file => {
|
||||
return getPost(file, filter)
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user