From 1836ced6c3154904f2bcf72167bda20d57786fe4 Mon Sep 17 00:00:00 2001 From: Andrew Aiken Date: Fri, 26 Jun 2026 14:51:32 -0400 Subject: [PATCH] Update modules, cleanup themeing and structure of header --- .dockerignore | 1 + .gitmodules | 2 +- Dockerfile | 4 +- README.md | 2 - assets/scss/_typography.scss | 11 +- config/_default/hugo.yaml | 2 +- config/_default/languages.yaml | 22 +- config/production/hugo.yaml | 3 +- .../index.md} | 19 +- .../operational-aid/price_multiplier.svg | 1 + content/en/volunteer/_index.md | 6 +- docker-compose.yaml | 19 + docker-compose.yml | 9 - hugo_stats.json | 167 ----- layouts/partials/footer/github.html | 4 +- layouts/partials/header.html | 18 +- package-lock.json | 694 ++++++++++++++---- package.json | 8 +- themes/dot-org-hugo-theme | 2 +- 19 files changed, 648 insertions(+), 346 deletions(-) rename content/en/docs/neccdc/{operational-aid.md => operational-aid/index.md} (92%) create mode 100644 content/en/docs/neccdc/operational-aid/price_multiplier.svg create mode 100644 docker-compose.yaml delete mode 100644 docker-compose.yml delete mode 100644 hugo_stats.json diff --git a/.dockerignore b/.dockerignore index 66c9ca6..4c24c0b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,5 +10,6 @@ tmp .gitmodules .hugo_build.lock Dockerfile +docker-compose.yaml hugo_stats.json README.md diff --git a/.gitmodules b/.gitmodules index 3a77948..d4631ac 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "themes/dot-org-hugo-theme"] path = themes/dot-org-hugo-theme url = https://github.com/NE-Collegiate-Cyber-Defense-League/dot-org-hugo-theme.git - branch = release + branch = main diff --git a/Dockerfile b/Dockerfile index ebf9b25..947cf7e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -FROM node:latest AS build +FROM node:26 AS build ARG WORKDIR=/app ARG BUILD_URL=http://localhost:8080 -ARG HUGO_VERSION=0.154.2 \ +ARG HUGO_VERSION=0.159.1 \ DART_SASS_VERSION=1.97.1 WORKDIR $WORKDIR diff --git a/README.md b/README.md index f0cf479..66da5aa 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,6 @@ npx -y pagefind --site public - https://github.com/cncf/dot-org-hugo-theme/ - https://dot-org-hugo-theme-demo.netlify.app/demo-page/ -- https://github.com/deepcausality-rs/sites - - https://beta-7j9.pages.dev/ - https://github.com/todogroup/todogroup.org/ - https://todogroup.org/ diff --git a/assets/scss/_typography.scss b/assets/scss/_typography.scss index 3691c1c..1594a91 100644 --- a/assets/scss/_typography.scss +++ b/assets/scss/_typography.scss @@ -36,7 +36,6 @@ h1, .h1 { font-family: var(--condensed-font-family); font-weight: 700; - color: var(--primary-400); text-transform: uppercase; line-height: 112.2%; @@ -65,8 +64,9 @@ h2, h3, .h3 { - font-family: var(--rounded-font-family); + font-family: var(--condensed-font-family); font-size: 20px; + color: var(--primary-400); line-height: 150%; text-transform: none; margin-block-start: 40px; @@ -78,12 +78,13 @@ h3, h4, .h4 { - font-family: var(--rounded-font-family); - font-weight: 900; + font-family: var(--condensed-font-family); + font-weight: 700; + color: var(--primary-400); font-size: 16px; line-height: 150%; text-transform: uppercase; - letter-spacing: 2.4px; + letter-spacing: 1px; margin-block-start: 28px; margin-block-end: 18px; @media (min-width: variables.$min-desktop) { diff --git a/config/_default/hugo.yaml b/config/_default/hugo.yaml index 48bcd93..a7c7a02 100644 --- a/config/_default/hugo.yaml +++ b/config/_default/hugo.yaml @@ -2,7 +2,7 @@ # Your theme name theme: "dot-org-hugo-theme" # Title of your website (required). -title: "Dot Org Theme Demo" +title: "NECCDL" # Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List timeZone: "America/New_York" diff --git a/config/_default/languages.yaml b/config/_default/languages.yaml index 7ba2923..90e61d3 100644 --- a/config/_default/languages.yaml +++ b/config/_default/languages.yaml @@ -1,5 +1,5 @@ en: - languageName: English + label: English weight: 1 ### copyright (markdown can be used) ### copyright: " " @@ -48,11 +48,25 @@ en: # post: "Learn how to impact the next generation of cybersecurity professionals" # parent: "support" - - identifier: "neccdc-2026" - name: "NECCDC 2026" - url: "/history/2026/" + - identifier: "resources" + name: "Resources" weight: 4 + - identifier: "neccdc" + name: "NECCDC" + url: "/docs/neccdc" + weight: 1 + post: "Documentation about the competition" + parent: "resources" + + - identifier: "volunteer" + name: "Volunteer" + url: "/volunteer/" + weight: 2 + post: "Get involved with League" + parent: "resources" + + - identifier: "history" name: "History" url: "/history/" diff --git a/config/production/hugo.yaml b/config/production/hugo.yaml index e26e9c6..7713c13 100644 --- a/config/production/hugo.yaml +++ b/config/production/hugo.yaml @@ -1,7 +1,6 @@ ######################## production configuration #################### # The base URL of your site (required). This will be prepended to all relative URLs. -baseURL: https://beta.neccdl.org -googleAnalytics: +baseURL: https://neccdl.org enableRobotsTXT: true build: writeStats: true diff --git a/content/en/docs/neccdc/operational-aid.md b/content/en/docs/neccdc/operational-aid/index.md similarity index 92% rename from content/en/docs/neccdc/operational-aid.md rename to content/en/docs/neccdc/operational-aid/index.md index 0dffeac..8d51dad 100644 --- a/content/en/docs/neccdc/operational-aid.md +++ b/content/en/docs/neccdc/operational-aid/index.md @@ -13,9 +13,6 @@ The goal behind this change is to balance between encouraging teams to seek help Each team is given a budget of 1000 points that they can spend on assistance from the Black Team. Spent points will count against system scoring. -Each assistance request that has a point cost will be multiplied by the corresponding number in the [Fibonacci sequence](https://en.wikipedia.org/wiki/Fibonacci_sequence) (excluding 0). -For example, the first request will cost x1, the second x1, the third x2, and so on, following the sequence of Fibonacci numbers. - | Type | Description | Cost | | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | | Server Redeployments | Cleanly redeploy the server to a pre-competition state. | 30 | @@ -25,12 +22,20 @@ For example, the first request will cost x1, the second x1, the third x2, and so | Competent Questions | Thoughtful questions that include information on what your team has already tried, including results if applicable.
Abuse of this offering or questions that lack any prior effort will result in a 5-point fee. | 0\* | | Competition Setup Questions | This includes questions related to initial environment VPN setup, access to initial credentials, questions designated to Black, White or Red Teams, and the like. | 0 | -## Additional Information +
+ +Each assistance request that has a point cost will be multiplied by the corresponding number in the [Fibonacci sequence](https://en.wikipedia.org/wiki/Fibonacci_sequence) (excluding 0). +For example, the first request will cost x1, the second x1, the third x2, and so on, following the sequence of Fibonacci numbers. + +
+ +{{< image alt="Price Multiplier by Occurrence" src="price_multiplier.svg" >}} + +--- - When servers are redeployed or access is restored, teams do not get refunded for the missing points they could have gained from injects or service checks. - Server redeployments cannot be performed during the end of the competition. - Submit a ticket and use the **@BlackTeam** handle in the competition Discord, otherwise, your message will not be noticed. Keep in mind that the Black Team is also responding to other teams. If there is no response in five minutes, please ping us again. -- The more point-costing requests you make to the Black Team for assistance, the higher the cost of each subsequent request. -- Upon request after competition completion, teams can request a summary of events that required the Black Teams' intervention. -- In case of _force majeure_ or proven hosting issues, lost points can be refunded. +- Upon request after competition completion, teams can request a summary of events that required intervention from the Black Team. +- In case of _force majeure_ or confirmed hosting issues, lost points can be refunded. - The Black Team has full discretion to assign point pricing to help events. diff --git a/content/en/docs/neccdc/operational-aid/price_multiplier.svg b/content/en/docs/neccdc/operational-aid/price_multiplier.svg new file mode 100644 index 0000000..7e9ad3f --- /dev/null +++ b/content/en/docs/neccdc/operational-aid/price_multiplier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/en/volunteer/_index.md b/content/en/volunteer/_index.md index 5813912..47f9008 100644 --- a/content/en/volunteer/_index.md +++ b/content/en/volunteer/_index.md @@ -17,11 +17,11 @@ Representatives who serve as competition officials, moderators, and rule enforce - Supply and score Blue Team tasks in the form of competition injects - Adjudicate the scoring for the competition -#### Chief Judge +### Chief Judge Responsible for final decisions concerning scoring. The chief judge has no active or historical, professional or personal affiliation with any school in the league. -#### Moderators +### Moderators - Undertake moderator training offered by NECCDC - Gain familiarity with using the required communication tools (e.g., Competition Discord) - Submit questions and requests from the blue team members to the designated communication channels @@ -32,7 +32,7 @@ The chief judge has no active or historical, professional or personal affiliatio ## [Black Team]({{< ref "black-team" >}}) Black Team members are our competition technicians. They develop, deploy, and maintain a unique competition environment every year. They also configure remote access, Discord, the service scoring. -#### Gray Team +### Gray Team Helps write technical injects alongside the White Team. ## Red Team diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..f1d3797 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,19 @@ +services: + hugo: + container_name: neccdl-hugo + build: + context: . + dockerfile: Dockerfile + target: build + platform: linux/amd64 + entrypoint: hugo + command: + - server + - -D + - --bind + - 0.0.0.0 + ports: + - "1313:1313" + volumes: + - ./:/app + restart: unless-stopped diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 4b77e1e..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -services: - hugo-tmp: - build: - context: . - dockerfile: Dockerfile - ports: - - "8080:80" - container_name: hugo-tmp - restart: unless-stopped diff --git a/hugo_stats.json b/hugo_stats.json deleted file mode 100644 index fd630ae..0000000 --- a/hugo_stats.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "htmlElements": { - "tags": [ - "a", - "article", - "blockquote", - "body", - "br", - "button", - "center", - "div", - "footer", - "form", - "h1", - "h2", - "h3", - "h4", - "h5", - "head", - "header", - "hr", - "html", - "i", - "iframe", - "img", - "input", - "li", - "link", - "main", - "meta", - "nav", - "ol", - "option", - "p", - "path", - "script", - "section", - "select", - "source", - "span", - "strong", - "style", - "svg", - "table", - "tbody", - "td", - "th", - "thead", - "title", - "tr", - "ul", - "video" - ], - "classes": [ - "attachments", - "attachments-files", - "box", - "box-content", - "box-grid", - "breadcrumb", - "breadcrumbs", - "breadcrumbs-list", - "button", - "card", - "cards", - "categories", - "columns-1", - "columns-3", - "container", - "content", - "copyright", - "copyright__accessibility-git-wrapper", - "cstyle", - "custom-form", - "fa-check", - "fa-fw", - "fas", - "footer", - "footer__cta", - "footer__logo-social-wrapper", - "footer__menu-cta-wrapper", - "grid", - "h4", - "hamburger", - "hamburger-box", - "hamburger-inner", - "header", - "hero-grid", - "hero-grid__col1", - "hero-grid__col2", - "hidden-on-small", - "history", - "home-title", - "intro", - "large-text", - "logo", - "logo-link", - "main-menu", - "main-menu-search", - "main-menu__cta-language-wrapper", - "main-menu__search-language-wrapper", - "main-menu__wrapper", - "medium-text", - "menu-item", - "menu-item-has-children", - "menu-item__description", - "menu-link", - "nowrap", - "page", - "page-404", - "page-home", - "page-page", - "page-section", - "page-taxonomy", - "shortened-width", - "skip-link", - "social-links", - "spacer-10", - "spacer-15", - "spacer-25", - "spacer-5", - "stat-item", - "stat-label", - "stat-number", - "stats-container", - "sticky", - "sub-menu", - "sub-menu__nav", - "table-container", - "tags", - "tertiary", - "title", - "toc", - "top-menu-item", - "wrap" - ], - "ids": [ - "2008-finalists", - "2009-finalists", - "2010-finalists", - "2011-finalists", - "2012-finalists", - "2013-finalists", - "2014-finalists", - "2015-finalists", - "2016-finalists", - "2017-finalists", - "2018-finalists", - "2019-finalists", - "TableOfContents", - "benefits", - "concepts-involved-in-the-theme-of-visibility-include", - "content", - "finalists", - "funding-options", - "information-packets", - "past-competitions", - "resources", - "search", - "sponsor", - "sponsors", - "team-resource-submissions", - "technologies-that-often-help-improve-visibility", - "theme" - ] - } -} diff --git a/layouts/partials/footer/github.html b/layouts/partials/footer/github.html index d3b86cf..c3ccdc4 100644 --- a/layouts/partials/footer/github.html +++ b/layouts/partials/footer/github.html @@ -2,7 +2,7 @@ {{ if and .repo_url .show_edit_link }} {{ with $.File }} {{ $pageRelPath := replace .Path "\\" "/" }} -{{ $langPrefix := $.Site.LanguageCode }} +{{ $langPrefix := $.Site.Language.Locale }} {{ $editURL := printf "%s/content/%s/%s" $.Site.Params.github.repo_url $langPrefix $pageRelPath }} @@ -11,4 +11,4 @@ {{ end }} {{ end }} -{{ end }} \ No newline at end of file +{{ end }} diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 8fc7b12..8de92c2 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -14,20 +14,24 @@ {{ $.Site.Title }} {{ end }} - + {{ with .Site.Menus.main }}