Commit Graph

291 Commits

Author SHA1 Message Date
Inaki Fernandez
6711720d34 feat: inject high-value DSL solutions and slide/video embeds into V2 jenkins.md 2026-07-11 15:14:37 +02:00
Nubenetes Bot
3c414e9a37 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-07-11 12:52:15 +00:00
Nubenetes Bot
a61a1b946b feat: sync V2 elite curated edition and README metrics [skip ci] 2026-07-11 12:43:21 +00:00
Nubenetes Bot
a977a1b04d feat: sync V2 elite curated edition and README metrics [skip ci] 2026-07-11 10:25:07 +00:00
Nubenetes Bot
015f11a5c6 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-07-01 12:54:49 +00:00
Nubenetes Bot
b919da66d1 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-07-01 09:44:59 +00:00
Inaki Fernandez
6c36a493c7 feat(v2): add Awesome Lists hero card on index + Portal Guide nav entry
- New "Awesome Lists" hero-badge card on the V2 index, right after "Get
  Started", linking to /other-awesome-lists/.
- Custom gold-star + list-motif cover (docs/images/awesome-lists-cover.svg),
  matching the Awesome Lists page hero theme.
- New .hero-badge-card--gold modifier.
- Also list "Awesome Lists" under the Portal Guide top-bar menu (after Topic
  Map) for discoverability, in addition to the flagship " Awesome Lists" tab.
- Card added to the index template (survives regeneration) and to the current
  rendered v2-docs/index.md for immediate deploy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 18:25:19 +02:00
Nubenetes Bot
42d00482df feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-25 16:04:34 +00:00
Inaki Fernandez
07e64cbda0 feat(v2): promote Awesome Lists to a flagship page with hero + category grid
The V2 "Awesome Lists" page (other-awesome-lists.md, derived from V1's
/v1/other-awesome-lists/) already existed but was buried under the
"Architectural Foundations" submenu. Promote it to a top-level, high-impact
destination:

- New src/awesome_page.py builds a hero banner + a category card grid derived
  from the page's own rendered H2 sections (stays in sync with AI re-clustering).
- v2_optimizer injects the header for other-awesome-lists.md during rendering,
  so it survives pipeline regeneration.
- Move it to a prominent top-level nav entry " Awesome Lists" (removed from the
  Architectural Foundations submenu).
- Add hero/grid/card styles to the V2 stylesheet.
- Apply the header to the current rendered page for immediate deploy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 18:00:53 +02:00
Inaki Fernandez
521918d553 fix(v2): persist About standardization quotes in render template
The agentic V2 pipeline re-renders v2-docs/about.md from the
v2_optimizer.py template, which had overwritten the manually-added
Kelsey Hightower / Red Hat / Automation Anxiety sections on the last
release. Move those sections into the template so they survive
regeneration, and re-apply them to the rendered about.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:31:35 +02:00
Nubenetes Bot
756f43a079 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-25 15:04:51 +00:00
Inaki Fernandez
aa097c3695 feat: enrich V2 About with V1 standardization quotes; swap SoundCloud for YouTube in V1 DevOps
- V2 About: add Kelsey Hightower standardization thesis (§1), Red Hat's
  approach-to-Kubernetes quote table (§5.1), and Automation Anxiety (§8.1).
  Reuse existing V1 source links (techrepublic, redhat.com) as clickable refs.
- V1 DevOps: replace SoundCloud player with a small, centered, lazy-loaded
  YouTube embed (VON6YhZkNT0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:01:04 +02:00
Nubenetes Bot
9184cb3f72 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-25 10:05:47 +00:00
Nubenetes Bot
250cc564ac feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-25 09:31:33 +00:00
Inaki Fernandez
c9e5a96ada feat: add IONOS, Nutanix, VMware, ProxmoxVE, Salesforce, SAP to mosaic via inventory
Add 6 YouTube channels to data/inventory.yaml + data/inventory.sql (the authoritative
source read by reorganize_mosaic.py). Previous commits edited index.md directly and
were overwritten by the agentic pipeline. Regenerate both V1 and V2 mosaics.
Also restore RedHat RAG blog link to v2-docs/mlops.md (removed by pipeline PR #462).

Categories assigned:
- IONOS UK, Nutanix → cloud_providers (order_v1 138-139)
- VMware, ProxmoxVE → cloud_native_kubernetes (order_v1 140-141)
- Salesforce, SAP → dev_testing_collab (order_v1 142-143)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 11:25:02 +02:00
Nubenetes Bot
ef5b684a76 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-25 08:14:42 +00:00
Inaki
bca58cdad9 Merge pull request #459 from nubenetes/feat/mosaic-ionos-proxmox-nutanix-salesforce-sap-vmware
feat: add IONOS, ProxmoxVE, Nutanix, Salesforce, SAP, VMware channels to mosaic + new links
2026-06-25 10:10:34 +02:00
Inaki Fernandez
fbf6712455 feat: add IONOS, ProxmoxVE, Nutanix, Salesforce, SAP, VMware channels to V1/V2 mosaic + RedHat RAG blog + AWS Skill Builder
- Add 6 new YouTube channels to V1 and V2 mosaics (IONOS UK, ProxmoxVE, Nutanix, Salesforce, SAP, VMware main)
- Skip already-present channels: Cloudflare, Atlassian, VMware Tanzu
- Categorize in V2: Cloud Providers (IONOS, Nutanix), Cloud Native (VMware, Proxmox), Dev&Collab (Salesforce, SAP)
- Add logos: ionos_logo.png, proxmox_logo.png, nutanix_logo.png, sap_logo.png, vmware_logo.png, salesforce_logo.svg
- Add RedHat RAG blog to V1 mlops.md (Data Science section) and V2 mlops.md (Cloud Platforms > Red Hat)
- Add AWS Skill Builder to V1 aws.md (Free Resources) and V2 aws-training.md (Learning Platforms)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 10:10:02 +02:00
Nubenetes Bot
8328d2240f feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-24 16:31:47 +00:00
Inaki Fernandez
3eb9c18eb0 feat: add Firebase and Supabase YouTube channels to V1/V2 mosaic
Add the @Firebase and @supabase YouTube channels to the homepage
channel mosaic under the Observability, Databases & Cloud Storage
category, with icon logos and regenerated V1/V2 index mosaics.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 18:26:58 +02:00
Nubenetes Bot
72b619e3b6 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-23 12:00:06 +00:00
Nubenetes Bot
e42dc07ba8 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 21:36:55 +00:00
Nubenetes Bot
fa1852b88f feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 21:20:08 +00:00
Nubenetes Bot
2aea4a0634 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 21:00:16 +00:00
Nubenetes Bot
5b06f98814 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 20:56:58 +00:00
Nubenetes Bot
f574af6537 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 20:24:08 +00:00
Nubenetes Bot
038c12f4d8 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 17:41:05 +00:00
Nubenetes Bot
94ec98dd8b feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 17:18:53 +00:00
Nubenetes Bot
96332b5b00 docs: update Video Hub with high-fidelity metadata 2026-06-20 17:15:41 +00:00
Nubenetes Bot
9047b2af3e feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 14:55:05 +00:00
Nubenetes Bot
40275974c0 feat(v2): collapsible nested left nav + 3 home section headings
Two fixes following the tabs removal:

1) Nav was a FLAT list of 18 section labels with no expand/indent, because
   navigation.sections rendered them as non-collapsible group labels and
   navigation.prune stripped inactive children. Disabled both → the left
   sidebar is now a proper COLLAPSIBLE, nested, indented tree (14 toggles,
   chevrons, collapsed by default). No size penalty (88213 vs 88516 bytes).

2) Home had a single H2, so its right-hand 'On this page' TOC was empty. Added
   '## Explore the Ecosystem' (badge cards) and '## Trending Now' (digest) to
   join the existing '## The Cloud Native Universe We Track' — the home's right
   TOC now lists three real sections.

Net effect: both side columns are now useful on every page, incl. the home —
left = full collapsible directory, right = per-page section map.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:33:27 +02:00
Nubenetes Bot
9971945e9f feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 11:44:11 +00:00
Nubenetes Bot
680d5f83f5 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 11:27:10 +00:00
Nubenetes Bot
6fb3808850 feat(v2/seo): unique per-page meta descriptions + robots.txt
Every V2 page previously fell back to the identical global site_description
(duplicate meta descriptions = SEO penalty across ~140 pages). The generator now
emits a unique description: front-matter per page — derived from the page title
and its strategic dimension — which Material renders as <meta name=description>
and og:description. Topic Map and Methodology get tailored descriptions too.

Also add v2-docs/robots.txt (deployed at the site root) allowing full crawl and
referencing both the V2 (root) and V1 (/v1/) sitemaps.

Verified locally: each built page now carries a distinct meta description, and
robots.txt lands in the build output. The ~140 generated pages pick up their
front-matter on the next V2 Publisher run.

Note: the 12 redirect-stub pages (chef->ansible, react->javascript, ...) were
left as-is — they already 0s meta-refresh redirect with canonical pointing at
the target, which is better SEO than noindex (and the redirects plugin would
overwrite any front-matter anyway).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:21:57 +02:00
Nubenetes Bot
8e065c5406 feat(v2/tags): grouped, compact Technical Tags Index TOC + unique anchors
The Technical Tags Index TOC was a flat 80-entry numbered list that buried the
8 meaningful maturity tags under a long tail of one-resource 'X Content'
language tags, with colliding anchors (C / C# / C++ all -> #c-content) and a
'1 resources' grammar bug.

- Group the TOC: 'Maturity and Quality' as a clean numbered list; 'Technical
  Domains' and 'Language and Format' as compact, count-sorted inline pill rows.
- Precompute unique, explicit heading anchors ({#slug}) shared by the TOC and
  the section headers (c-sharp-content, c-plus-plus-content, dedup counter),
  fixing the collisions.
- Correct singular/plural ('1 resource').
- Filter non-language language values (En, Not Applicable, Multi-Language,
  Polyglot, ...) so they no longer create meaningless tag buckets.

Validated: 0 markdownlint errors on the regenerated tags.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:05:48 +02:00
Nubenetes Bot
01c514b07b fix(rss): derive feed lastBuildDate from item content dates, not _meta
Follow-up to v2.9.19: deriving lastBuildDate from _meta.last_updated only moved
the drift one level — that analysis timestamp is itself bumped on every publish
even when the ranked content is unchanged, so feed.xml kept differing between
develop and master. Use the freshest item's content date instead (the items only
change when the ranking actually changes). Verified: deterministic across reruns,
and the develop and master digests both yield 2026-06-18, so feed.xml is now
byte-identical across branches — the drift is fully eliminated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:46:52 +02:00
Nubenetes Bot
3fa1370e30 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:43:13 +00:00
Nubenetes Bot
09d7a68ef8 fix(rss): derive feed lastBuildDate from content, not wall-clock now()
rss_generator set <lastBuildDate> to datetime.utcnow(), so every republish
rewrote it even when the digest was unchanged — leaving a 1-line develop<->master
drift in v2-docs/feed.xml (the residual after the PR Guardian drift fix). Derive
it from the digest's _meta.last_updated (the actual analysis date), falling back
to the most recent item date, so the feed is a pure function of its input:
regenerating unchanged content now yields byte-identical output. Verified
deterministic across repeated runs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:37:11 +02:00
Nubenetes Bot
fdb93ccc16 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:29:10 +00:00
Nubenetes Bot
088dc12a8e feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:09:02 +00:00
nubenetes-bot
8643517e2e style(cleaner): auto-correcting formatting & URL normalization 2026-06-20 10:04:03 +00:00
Nubenetes Bot
ae0af172dc fix(v2): Topic Map dimensions must be h2 not h3 (MD001 lint failure)
The Topic Map page H1 is 'Topic Map', so dimension headings jumped h1->h3
and tripped markdownlint MD001/heading-increment, failing 07.2 Markdown
Linter on develop and master after v2.9.16. Emit dimensions as h2 in the
generator, the committed page, and update the CSS selector
(.topic-map-dim h2). Verified 0 errors with the CI markdownlint config.
Bumped v2_elite.css?v=2.9.17.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:03:02 +02:00
Nubenetes Bot
4d0be41548 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:00:32 +00:00
nubenetes-bot
f983d787b0 style(cleaner): auto-correcting formatting & URL normalization 2026-06-20 09:53:39 +00:00
Nubenetes Bot
c41028e023 feat(v2): restructure home — Topic Map + Methodology pages, mosaic & a11y polish
Declutter the V2 landing page into a curated entry point and move the
full category directory and reference legends to dedicated pages.

Home (index):
- Move "Trending Now / Digest" above the signature YouTube mosaic (fix
  inverted altitude: fresh, dynamic content first).
- Replace the ~130-link "Strategic Dimensions" dump with a "Topic Map"
  badge card + a slim reference footer (Topic Map · Methodology · Videos).
- Frame the mosaic with a "The Cloud Native Universe We Track" heading.

New generated pages:
- topic-map.md — full category directory by dimension in a responsive
  multi-column CSS grid, with per-category resource counts.
- methodology.md — Maturity Taxonomy + Technical Impact legend tables
  (moved out of the home).

Mosaic (kept as brand signature, reinforced):
- Surface the per-group category labels that were hidden in title=.
- loading="lazy" on the ~150 channel logos (LCP/perf win).

about.md videos:
- youtube-nocookie.com + loading="lazy" + responsive aspect-ratio wrapper.

Config & cleanup:
- Disable navigation.expand (169-entry nav stayed fully open); the Topic
  Map page now serves as the full directory.
- Branded 404 page with clear ways back (Home / Topic Map / V1 Archive).
- Hoist repeated inline styles (hero badge row) into CSS classes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:52:21 +02:00
Nubenetes Bot
2e281e98ea feat(v2): category-first digest layout for a navigable right-hand TOC
The Tech & Cloud and Industry & Geo digest pages rendered period-first (three
time-window tabs, each nesting every category as bold text), so they had zero
real headings and an empty "On this page" TOC. Inverted _generate_digest_pages()
to category-first: each category is a real ## heading with the 3 time-windows as
content tabs inside it. The right TOC now lists all 22 tech categories / 4 geo
regions once each, headings sit at column 0 (no MD023 workaround), tabs preserved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:50:23 +02:00
Nubenetes Bot
49b3405097 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 17:39:56 +00:00
Nubenetes Bot
f60d071e40 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 16:55:52 +00:00
Nubenetes Bot
19b7b44e20 feat(v2): restore in-page search/tag filter & drop redundant Markdown TOC
Fix: the per-page resource search box with maturity tag-pills stopped
appearing after navigation.instant was enabled (DOMContentLoaded fires only
on first SPA load). Reworked v2_filter.js to init via Material's document$
observable with a DOMContentLoaded fallback, guard double-injection, bind the
clickable-tag delegation once, and add a no-results state. Cache-bust ?v=2.9.12.

Change: removed the duplicated Markdown "## Table of Contents" from all 156 V2
content pages and from v2_optimizer.py — it forced hundreds of links of scroll
on large pages. Replaced by Material's native sticky "On this page" TOC
(removed toc.integrate, added toc.follow). tags.md keeps its TOC (it is an index).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 18:49:15 +02:00
Nubenetes Bot
600dceff4e feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 14:38:39 +00:00