Skip to content

Commit

Permalink
Merge pull request #64 from thomasrosen/nextjs
Browse files Browse the repository at this point in the history
use NextJS to statically generate to HTML
  • Loading branch information
thomasrosen committed Nov 17, 2023
2 parents 5ad8de9 + 707e3c2 commit 3702a36
Show file tree
Hide file tree
Showing 37 changed files with 4,747 additions and 13,252 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,19 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
check-latest: true
cache: 'npm'
- name: Install Dependencies
run: yarn
- name: Add gh-pages as a dev-dependency
run: yarn add --dev gh-pages
- name: Build ReactJS App
run: yarn build
- name: Get Music Data
run: yarn get_music_data
- name: Convert blog articles to JSON
run: yarn build_blog
- name: Build ReactJS App
run: yarn build
- name: Remove node_modules folder
run: rm -rf node_modules
- name: Deploy to GitHub Pages
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.tmp
data_about_thomasrosen/
public/music/
public/static/music/
Expand Down
3 changes: 3 additions & 0 deletions backend/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ app.use(function (req, res, next) {
next()
})

app.get('/blog', function (req, res) {
res.redirect(302, '/articles')
});
app.get('/zenris', function (req, res) {
res.redirect(302, '/articles/zenris')
});
Expand Down
16 changes: 10 additions & 6 deletions build_blog.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ const { generate_rss_feed } = require('./feed_generator.js')
const dir_articles = './blog/articles/'
const dir_images = './blog/images/'
const dir_audio = './blog/audio/'
const blog_build_dir = './build/blog/'
const articles_build_dir = './build/blog/articles/'
const images_build_dir = './build/blog/images/'
const audio_build_dir = './build/blog/audio/'
const blog_build_dir = './.tmp/build_blog/blog/'
const articles_build_dir = './.tmp/build_blog/blog/articles/'
const images_build_dir = './.tmp/build_blog/blog/images/'
const audio_build_dir = './.tmp/build_blog/blog/audio/'
const public_blog_dir = './public/blog/'


Expand Down Expand Up @@ -279,10 +279,14 @@ buildBlog()
// copy blog_build_dir to ./public/blog
fs.cpSync(blog_build_dir, public_blog_dir, { recursive: true, overwrite: true });

// delete tmp blog_build_dir
if (fs.existsSync(blog_build_dir)) {
fs.rmdirSync(blog_build_dir, { recursive: true });
}

console.info('✅ Blog build complete.')
console.info('✅ Blog build complete.');

// end node process
process.exit(0)
process.exit(0);
})
.catch(console.error)
4 changes: 2 additions & 2 deletions build_music_metadata.js
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ async function build_music_metadata() {
playlists,
}

fs.writeFileSync('./public/static/music/playlists.json', JSON.stringify(playlists_metadata))
fs.writeFileSync('./build/static/music/playlists.json', JSON.stringify(playlists_metadata))
fs.writeFileSync('./public/music/playlists.json', JSON.stringify(playlists_metadata))
// fs.writeFileSync('./build/music/playlists.json', JSON.stringify(playlists_metadata))
}
build_music_metadata()
10 changes: 0 additions & 10 deletions get_music_data.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,10 @@ fi

echo "✅ done cloneing";

# for production
mkdir -p ./build/static/music/playlists
cp ./data_about_thomasrosen/music/playlists/* ./build/static/music/playlists

echo "✅ done coping playlists to build";

# for development
mkdir -p ./public/music/playlists
cp ./data_about_thomasrosen/music/playlists/* ./public/music/playlists

# for development
mkdir -p ./public/static/music/playlists
cp ./data_about_thomasrosen/music/playlists/* ./public/static/music/playlists

echo "✅ done coping playlists to public";

node ./build_music_metadata.js
Expand Down
5 changes: 5 additions & 0 deletions next-env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
33 changes: 33 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
output: 'export',

// Optional: Change links `/me` -> `/me/` and emit `/me.html` -> `/me/index.html`
// trailingSlash: true,

// Optional: Prevent automatic `/me` -> `/me/`, instead preserve `href`
skipTrailingSlashRedirect: true,

// Optional: Change the output directory `out` -> `dist`
distDir: 'build',

async redirects() {
return [
{
source: '/blog',
destination: '/articles',
permanent: false,
},
{
source: '/zenris',
destination: '/articles/zenris',
permanent: false,
},
]
},
}


module.exports = nextConfig
Loading

0 comments on commit 3702a36

Please sign in to comment.