You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+28-39
Original file line number
Diff line number
Diff line change
@@ -1,37 +1,11 @@
1
1
# Matthew Oldfield's Portfolio and Blog
2
2
3
-
## Features
4
-
5
-
- Easy styling customization with [Tailwind 3.0](https://tailwindcss.com/blog/tailwindcss-v3) and primary color attribute
6
-
- Near perfect lighthouse score - [Lighthouse report](https://www.webpagetest.org/result/210111_DiC1_08f3670c3430bf4a9b76fc3b927716c5/)
7
-
- Lightweight, 45kB first load JS, uses Preact in production build
8
-
- Mobile-friendly view
9
-
- Light and dark theme
10
-
- Self-hosted font with [Fontsource](https://fontsource.org/)
11
-
- Supports [plausible](https://plausible.io/), [simple analytics](https://simpleanalytics.com/) and google analytics
12
-
-[MDX - write JSX in markdown documents!](https://mdxjs.com/)
13
-
- Server-side syntax highlighting with line numbers and line highlighting via [rehype-prism-plus](https://github.com/timlrx/rehype-prism-plus)
14
-
- Math display supported via [KaTeX](https://katex.org/)
15
-
- Citation and bibliography support via [rehype-citation](https://github.com/timlrx/rehype-citation)
16
-
- Automatic image optimization via [next/image](https://nextjs.org/docs/basic-features/image-optimization)
17
-
- Flexible data retrieval with [mdx-bundler](https://github.com/kentcdodds/mdx-bundler)
18
-
- Support for tags - each unique tag will be its own page
19
-
- Support for multiple authors
20
-
- Blog templates
21
-
- TOC component
22
-
- Support for nested routing of blog posts
23
-
- Newsletter component with support for mailchimp, buttondown, convertkit and klaviyo
24
-
- Supports [giscus](https://github.com/laymonage/giscus), [utterances](https://github.com/utterance/utterances) or disqus
25
-
- Projects page
26
-
- Preconfigured security headers
27
-
- SEO friendly with RSS feed, sitemaps and more!
28
-
29
3
## Installation
30
4
31
5
```bash
32
6
npm install
33
7
```
34
-
8
+
35
9
## Development
36
10
37
11
First, run the development server:
@@ -40,13 +14,15 @@ First, run the development server:
40
14
npm run dev
41
15
```
42
16
43
-
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
17
+
Open [http://localhost:3000](http://localhost:3000)
44
18
45
19
## Extend / Customize
46
20
47
-
`data/siteMetadata.js` - contains most of the site related information which should be modified for a user's need.
21
+
`data/siteMetadata.js` - contains most of the site related information which should be modified for
22
+
a user's need.
48
23
49
-
`data/authors/default.md` - default author information (required). Additional authors can be added as files in `data/authors`.
24
+
`data/authors/default.md` - default author information (required). Additional authors can be added
25
+
as files in `data/authors`.
50
26
51
27
`data/projectsData.js` - data used to generate styled card on the projects page.
52
28
@@ -58,19 +34,27 @@ Open [http://localhost:3000](http://localhost:3000) with your browser to see the
58
34
59
35
`public/static` - store assets such as images and favicons.
60
36
61
-
`tailwind.config.js` and `css/tailwind.css` - contain the tailwind stylesheet which can be modified to change the overall look and feel of the site.
37
+
`tailwind.config.js` and `css/tailwind.css` - contain the tailwind stylesheet which can be modified
38
+
to change the overall look and feel of the site.
62
39
63
-
`css/prism.css` - controls the styles associated with the code blocks. Feel free to customize it and use your preferred prismjs theme e.g. [prism themes](https://github.com/PrismJS/prism-themes).
40
+
`css/prism.css` - controls the styles associated with the code blocks. Feel free to customize it and
41
+
use your preferred prismjs theme e.g. [prism themes](https://github.com/PrismJS/prism-themes).
64
42
65
-
`components/social-icons` - to add other icons, simply copy an svg file from [Simple Icons](https://simpleicons.org/) and map them in `index.js`. Other icons use [heroicons](https://heroicons.com/).
43
+
`components/social-icons` - to add other icons, simply copy an svg file from
44
+
[Simple Icons](https://simpleicons.org/) and map them in `index.js`. Other icons use
45
+
[heroicons](https://heroicons.com/).
66
46
67
-
`components/MDXComponents.js` - pass your own JSX code or React component by specifying it over here. You can then call them directly in the `.mdx` or `.md` file. By default, a custom link and image component is passed.
47
+
`components/MDXComponents.js` - pass your own JSX code or React component by specifying it over
48
+
here. You can then call them directly in the `.mdx` or `.md` file. By default, a custom link and
49
+
image component is passed.
68
50
69
51
`layouts` - main templates used in pages.
70
52
71
-
`pages` - pages to route to. Read the [Next.js documentation](https://nextjs.org/docs) for more information.
53
+
`pages` - pages to route to. Read the [Next.js documentation](https://nextjs.org/docs) for more
54
+
information.
72
55
73
-
`next.config.js` - configuration related to Next.js. You need to adapt the Content Security Policy if you want to load scripts, images etc. from other domains.
56
+
`next.config.js` - configuration related to Next.js. You need to adapt the Content Security Policy
57
+
if you want to load scripts, images etc. from other domains.
74
58
75
59
## Post
76
60
@@ -119,10 +103,15 @@ Follow the interactive prompt to generate a post with pre-filled front matter.
119
103
## Deploy
120
104
121
105
**Vercel**
122
-
Check out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
106
+
Check out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more
107
+
details.
123
108
124
-
The API routes used in the newsletter component cannot be used in a static site export. You will need to use a form API endpoint provider and substitute the route in the newsletter component accordingly. Other hosting platforms such as Netlify also offer alternative solutions - please refer to their docs for more information.
109
+
The API routes used in the newsletter component cannot be used in a static site export. You will
110
+
need to use a form API endpoint provider and substitute the route in the newsletter component
111
+
accordingly. Other hosting platforms such as Netlify also offer alternative solutions - please refer
0 commit comments