Skip to content

Commit 5c945c8

Browse files
committed
feat: add new projects and expand premier projects to 7
- Add canon, moxml, unibuf, xmi as premier projects - Add ali, genericode, messagepack, oasis-etm, reqif, rng to Extended - Update versionian description and move to Extended - Add docs links for projects with documentation sites - Remove obsolete projects (annotated-express, express-grammar, expression, reeper, lutaml-express, lutaml-xmi, lutaml-sysml, lutaml-uml) - Make nav Software dropdown use single source of truth from projects.ts - Remove Transformed category (all projects removed) Total projects: 17 (7 premier + 10 extended)
1 parent 2a18715 commit 5c945c8

3 files changed

Lines changed: 73 additions & 67 deletions

File tree

.vitepress/config.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { defineConfig } from 'vitepress'
2+
import { softwareNavItems } from './data/projects'
23

34
export default defineConfig({
45
title: 'LutaML',
@@ -26,11 +27,7 @@ export default defineConfig({
2627
{ text: 'Introduction', link: '/docs/simple-tutorial' },
2728
{
2829
text: 'Software',
29-
items: [
30-
{ text: 'lutaml-model', link: 'https://github.com/lutaml/lutaml-model' },
31-
{ text: 'lutaml-hal', link: 'https://github.com/lutaml/lutaml-hal' },
32-
{ text: 'expressir', link: 'https://github.com/lutaml/expressir' }
33-
]
30+
items: softwareNavItems
3431
},
3532
{ text: 'Documentation', link: 'https://www.lutaml.org/docs/' },
3633
{ text: 'Blog', link: '/blog/' },

.vitepress/data/projects.ts

Lines changed: 70 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,24 @@ export const projects: Project[] = [
2828
featured: true,
2929
category: 'Core'
3030
},
31+
{
32+
name: 'canon',
33+
version: '',
34+
description: 'Semantic comparison for serialization formats with W3C XML C14N canonicalization. Compare XML, HTML, JSON, and YAML semantically.',
35+
github: 'https://github.com/lutaml/canon',
36+
docs: 'https://lutaml.github.io/canon/',
37+
featured: true,
38+
category: 'Core'
39+
},
40+
{
41+
name: 'moxml',
42+
version: '',
43+
description: 'Modern XML processing library with unified API across Nokogiri, Oga, REXML, LibXML, and Ox backends.',
44+
github: 'https://github.com/lutaml/moxml',
45+
docs: 'https://lutaml.github.io/moxml/',
46+
featured: true,
47+
category: 'Core'
48+
},
3149
{
3250
name: 'expressir',
3351
version: 'v2.2.0',
@@ -37,21 +55,37 @@ export const projects: Project[] = [
3755
featured: true,
3856
category: 'Core'
3957
},
58+
{
59+
name: 'unibuf',
60+
version: '',
61+
description: 'Universal Buffer Format Parser for Protocol Buffers, FlatBuffers, and Cap\'n Proto with text/binary format support.',
62+
github: 'https://github.com/lutaml/unibuf',
63+
featured: true,
64+
category: 'Core'
65+
},
66+
{
67+
name: 'xmi',
68+
version: '',
69+
description: 'Ruby object mapper for XMI (XML Metadata Interchange) files with dynamic class generation.',
70+
github: 'https://github.com/lutaml/xmi',
71+
featured: true,
72+
category: 'Core'
73+
},
4074

41-
// Extended Models
75+
// Extended Projects
4276
{
43-
name: 'lutaml',
77+
name: 'rng',
4478
version: '',
45-
description: 'Universal data modeling language and toolkit for creating interoperable data models.',
46-
github: 'https://github.com/lutaml/lutaml',
79+
description: 'Ruby tools for RELAX NG schemas supporting both XML (.rng) and compact (.rnc) syntax.',
80+
github: 'https://github.com/lutaml/rng',
4781
featured: false,
4882
category: 'Extended'
4983
},
5084
{
51-
name: 'lutaml-express',
85+
name: 'lutaml',
5286
version: '',
53-
description: 'LutaML integration for EXPRESS language modeling and processing.',
54-
github: 'https://github.com/lutaml/lutaml-express',
87+
description: 'Universal data modeling language and toolkit for creating interoperable data models.',
88+
github: 'https://github.com/lutaml/lutaml',
5589
featured: false,
5690
category: 'Extended'
5791
},
@@ -72,73 +106,64 @@ export const projects: Project[] = [
72106
category: 'Extended'
73107
},
74108
{
75-
name: 'lutaml-sysml',
109+
name: 'ali',
76110
version: '',
77-
description: 'SysML modeling support for the LutaML ecosystem.',
78-
github: 'https://github.com/lutaml/lutaml-sysml',
111+
description: 'NISO Access and License Indicators (ALI) Schemas implementation (NISO RP-22-2021).',
112+
github: 'https://github.com/lutaml/ali',
79113
featured: false,
80114
category: 'Extended'
81115
},
82116
{
83-
name: 'lutaml-uml',
117+
name: 'genericode',
84118
version: '',
85-
description: 'UML modeling support with LutaML syntax and tools.',
86-
github: 'https://github.com/lutaml/lutaml-uml',
119+
description: 'OASIS Genericode 1.0 implementation for code lists in XML (.gc) and JSON (.gcj) formats.',
120+
github: 'https://github.com/lutaml/genericode',
87121
featured: false,
88122
category: 'Extended'
89123
},
90124
{
91-
name: 'lutaml-xmi',
125+
name: 'messagepack',
92126
version: '',
93-
description: 'XMI (XML Metadata Interchange) support for model interchange.',
94-
github: 'https://github.com/lutaml/lutaml-xmi',
127+
description: 'Pure Ruby MessagePack binary serialization format implementation.',
128+
github: 'https://github.com/lutaml/messagepack',
129+
docs: 'https://lutaml.github.io/messagepack/',
95130
featured: false,
96131
category: 'Extended'
97132
},
98-
99-
// Transformed Models
100133
{
101-
name: 'annotated-express',
134+
name: 'oasis-etm',
102135
version: '',
103-
description: 'Tools for working with annotated EXPRESS schemas.',
104-
github: 'https://github.com/lutaml/annotated-express',
136+
description: 'OASIS Exchange Table Model TR 9503:1995 implementation for DocBook and NISO JATS.',
137+
github: 'https://github.com/lutaml/oasis-etm',
105138
featured: false,
106-
category: 'Transformed'
107-
},
108-
{
109-
name: 'express-grammar',
110-
version: '',
111-
description: 'EXPRESS language grammar definitions for parsing.',
112-
github: 'https://github.com/lutaml/express-grammar',
113-
featured: false,
114-
category: 'Transformed'
115-
},
116-
{
117-
name: 'expression',
118-
version: '',
119-
description: 'Expression parsing and evaluation library.',
120-
github: 'https://github.com/lutaml/expression',
121-
featured: false,
122-
category: 'Transformed'
139+
category: 'Extended'
123140
},
124141
{
125-
name: 'reeper',
142+
name: 'reqif',
126143
version: '',
127-
description: 'EXPRESS schema processing and transformation tools.',
128-
github: 'https://github.com/lutaml/reeper',
144+
description: 'ReqIF (Requirements Interchange Format) v1.2 parser and generator.',
145+
github: 'https://github.com/lutaml/reqif',
129146
featured: false,
130-
category: 'Transformed'
147+
category: 'Extended'
131148
},
132149
{
133150
name: 'versionian',
134151
version: '',
135-
description: 'Version management for data models and schemas.',
152+
description: 'Declarative versioning schemes library supporting semantic, calendar, and custom version formats.',
136153
github: 'https://github.com/lutaml/versionian',
154+
docs: 'https://lutaml.github.io/versionian/',
137155
featured: false,
138-
category: 'Transformed'
156+
category: 'Extended'
139157
}
140158
]
141159

142160
export const premierProjects = projects.filter(p => p.featured)
143161
export const extendedProjects = projects.filter(p => !p.featured && p.category === 'Extended')
144-
export const transformedProjects = projects.filter(p => !p.featured && p.category === 'Transformed')
162+
163+
// Generate nav items for Software dropdown from all projects (sorted alphabetically)
164+
export const softwareNavItems = [...projects]
165+
.sort((a, b) => a.name.localeCompare(b.name))
166+
.map(p => ({
167+
text: p.name,
168+
link: p.docs || p.github
169+
}))

.vitepress/theme/components/HomePage.vue

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup lang="ts">
2-
import { premierProjects, extendedProjects, transformedProjects } from '../../data/projects'
2+
import { premierProjects, extendedProjects } from '../../data/projects'
33
</script>
44

55
<template>
@@ -56,22 +56,6 @@ import { premierProjects, extendedProjects, transformedProjects } from '../../da
5656
</div>
5757
</div>
5858

59-
<div class="section">
60-
<h2 class="section-title">
61-
<span class="icon">◈</span>
62-
Transformed Models
63-
</h2>
64-
<p class="section-description">
65-
Tools for transforming and processing data models.
66-
</p>
67-
<div class="project-list">
68-
<div v-for="project in transformedProjects" :key="project.name" class="project-list-item">
69-
<a :href="project.github" target="_blank" rel="noopener">{{ project.name }}</a>
70-
<span class="category-badge transformed">{{ project.category }}</span>
71-
</div>
72-
</div>
73-
</div>
74-
7559
<div class="section">
7660
<h2 class="section-title">
7761
<span class="icon">✦</span>

0 commit comments

Comments
 (0)