diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..0b0ac6c --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,32 @@ +name: CodeQL + +on: + push: + branches: [main, dev] + pull_request: + branches: [main, dev] + schedule: + - cron: "24 3 * * 1" + +permissions: + security-events: write + packages: read + actions: read + contents: read + +jobs: + analyze: + name: Analyze JavaScript + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: javascript-typescript + + - name: Perform CodeQL analysis + uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/promote-to-main.yml b/.github/workflows/promote-to-main.yml index 0335bc7..e049591 100644 --- a/.github/workflows/promote-to-main.yml +++ b/.github/workflows/promote-to-main.yml @@ -32,7 +32,7 @@ jobs: exit 1 - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/src/components/RSkills.jsx b/src/components/RSkills.jsx index d328f8c..f1ac014 100644 --- a/src/components/RSkills.jsx +++ b/src/components/RSkills.jsx @@ -125,6 +125,7 @@ function colorize(text) { } function colorVal(s) { const out = []; + // Match either a double-quoted string (group 1) or a number (integer/decimal, group 2). const re = /("[^"]*")|(\b\d+\.\d+\b|\b\d+\b)/g; let last = 0; let mm; @@ -148,7 +149,7 @@ export default function RSkills() { const [active, setActive] = useState(KINDS[0].kind); // Auto-cycle through the kinds every 3s until the user picks a tab. const [autoplay, setAutoplay] = useState(true); - const current = KINDS.find((k) => k.kind === active); + const current = KINDS.find((k) => k.kind === active) || KINDS[0]; useEffect(() => { if (!autoplay || reduce) return;