feat: add basic script to build techradar

This commit is contained in:
Mathias Schopmans
2024-02-29 11:46:58 +01:00
committed by Mathias Schopmans
parent 535c9e8a8f
commit 2682ea4e46
6 changed files with 570 additions and 948 deletions

1
.gitignore vendored
View File

@@ -24,6 +24,7 @@
# misc
.DS_Store
*.pem
*.tgz
# debug
npm-debug.log*

46
bin/techradar.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
CWD=$(pwd)
BUILDER_DIR="$CWD/.techradar"
SOURCE_DIR="$CWD/node_modules/aoe_technology_radar"
PARAMETER=$1 # "build" or "serve"
function info {
echo -e "\033[32m$1\033[0m"
}
function error {
echo "Error: $1"
exit 1
}
# create builder dir by copying source dir if it does not exist
if [ ! -d "$BUILDER_DIR" ]; then
cp -R "$SOURCE_DIR" "$BUILDER_DIR" || error "Could not copy $SOURCE_DIR to $BUILDER_DIR"
cd "$BUILDER_DIR" || error "Could not change to $BUILDER_DIR"
info "Installing npm packages"
npm install || error "Could not install npm packages"
fi
cp -R "$CWD/radar" "$BUILDER_DIR/data/radar" || error "Could not copy $CWD/radar to $BUILDER_DIR/data/radar"
cp -R $CWD/public/* "$BUILDER_DIR/public/" || error "Could not copy $CWD/public to $BUILDER_DIR/public"
cd "$BUILDER_DIR" || error "Could not change to $BUILDER_DIR"
info "Building data"
npm run build:data
if [ "$PARAMETER" == "serve" ]; then
info "Starting techradar"
npm run dev
fi
if [ "$PARAMETER" == "build" ]; then
info "Building techradar"
npm run build
if [ -d "$CWD/build" ]; then
rm -rf "$CWD/build"
fi
info "Copying techradar to $CWD/build"
mv "$BUILDER_DIR/out" "$CWD/build"
fi

View File

@@ -1,7 +1,7 @@
/** @type {import("next").NextConfig} */
const nextConfig = {
output: "export",
// basePath: '/techradar',
// basePath: "/techradar",
trailingSlash: true,
reactStrictMode: true,
};

1418
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,10 @@
{
"name": "aoe-next-techradar",
"version": "0.1.0",
"name": "aoe_technology_radar",
"version": "4.0.0-alpha.2",
"private": true,
"bin": {
"techradar": "./bin/techradar.sh"
},
"scripts": {
"dev": "next dev --turbo",
"build:icons": "npx @svgr/cli --typescript --no-dimensions --no-prettier --out-dir src/components/Icons -- src/icons",
@@ -13,33 +16,31 @@
"prepare": "husky",
"postinstall": "npm run build:icons"
},
"dependencies": {
"devDependencies": {
"@commitlint/cli": "^19.0.3",
"@commitlint/config-conventional": "^19.0.3",
"@radix-ui/react-dialog": "^1.0.5",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"clsx": "^2.1.0",
"eslint": "^8.57.0",
"eslint-config-next": "14.1.0",
"fuse.js": "^7.0.0",
"gray-matter": "^4.0.3",
"highlight.js": "^11.9.0",
"husky": "^9.0.11",
"lint-staged": "^15.2.2",
"marked": "^12.0.0",
"marked-highlight": "^2.1.1",
"next": "14.1.0",
"postcss-nested": "^6.0.1",
"postcss-preset-env": "^9.4.0",
"prettier": "^3.2.5",
"react": "^18",
"react-dom": "^18",
"tsx": "^4.7.1"
},
"devDependencies": {
"@commitlint/cli": "^18.6.1",
"@commitlint/config-conventional": "^18.6.2",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"eslint": "^8",
"eslint-config-next": "14.1.0",
"husky": "^9.0.11",
"lint-staged": "^15.2.2",
"prettier": "^3.2.5",
"tsx": "^4.7.1",
"typescript": "^5"
},
"lint-staged": {

View File

@@ -5,15 +5,17 @@ import { Marked } from "marked";
import { markedHighlight } from "marked-highlight";
import path from "path";
import config from "../next.config.mjs";
import config from "../data/config.json";
import nextConfig from "../next.config.mjs";
import Positioner from "./positioner";
import { getChartConfig, getQuadrants, getRings } from "@/lib/data";
import { Flag, Item } from "@/lib/types";
const rings = getRings();
const quadrants = getQuadrants();
const { size } = getChartConfig();
const {
rings,
quadrants,
chart: { size },
} = config;
const positioner = new Positioner(size, quadrants, rings);
const marked = new Marked(
@@ -31,8 +33,8 @@ function dataPath(...paths: string[]): string {
}
function convertToHtml(markdown: string): string {
if (config.basePath) {
markdown = markdown.replace(/]\(\//g, `](${config.basePath}/`);
if (nextConfig.basePath) {
markdown = markdown.replace(/]\(\//g, `](${nextConfig.basePath}/`);
}
let html = marked.parse(markdown.trim()) as string;