diff --git a/.github/workflows/links.yml b/.github/workflows/links.yml new file mode 100644 index 00000000..ea5947b2 --- /dev/null +++ b/.github/workflows/links.yml @@ -0,0 +1,51 @@ +name: links + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + link_checker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Build site + run: npm run build + + - name: Serve site + run: npx serve dist -p 3000 & + + - name: Restore lychee cache + uses: actions/cache@v4 + with: + path: .lycheecache + key: cache-lychee-${{ github.sha }} + restore-keys: cache-lychee- + + - name: Run lychee + uses: lycheeverse/lychee-action@v2 + with: + args: >- + --verbose + --no-progress + --cache + --max-cache-age 1d + --accept 200,202,206,403,429 + --exclude https://www.ap210.org + --exclude https://expresslang.org + --base http://localhost:3000 + 'dist/**/*.html' + fail: true diff --git a/content/application/examples.adoc b/content/application/examples.adoc index 1c2b454a..ade75c20 100644 --- a/content/application/examples.adoc +++ b/content/application/examples.adoc @@ -61,7 +61,7 @@ Nets and interconnections link component terminals: == Full Examples -The <<{/resources/test-cases#,Test Case Gallery>> contains 35 complete STEP files demonstrating every aspect of the AP 210 information model: +The link:/resources/test-cases[Test Case Gallery] contains 35 complete STEP files demonstrating every aspect of the AP 210 information model: * *1_ResistanceModule* — simplest case: single resistor with parameters * *Atx* — ATX motherboard with physical requirements and envelope constraints @@ -70,4 +70,4 @@ The <<{/resources/test-cases#,Test Case Gallery>> contains 35 complete STEP file == Further Reading -For guided walk-throughs of specific test cases, see the <<{/learn/reading-data#,Reading AP210 Data>> course module. +For guided walk-throughs of specific test cases, see the link:/learn/reading-data[Reading AP210 Data] course module. diff --git a/content/application/recommended-practices.adoc b/content/application/recommended-practices.adoc index 9ea3659f..c951e4ef 100644 --- a/content/application/recommended-practices.adoc +++ b/content/application/recommended-practices.adoc @@ -15,9 +15,9 @@ The recommended approach to AP 210 implementation follows three phases: Before implementing exchange, validate that your data can be represented in AP 210: 1. Identify the product types in your data (components, assemblies, substrates) -2. Map your data elements to AP 210 entities (see <<{/about/scope#,Scope>>) -3. Use the <<{/resources/test-cases#,test cases>> as reference for valid entity combinations -4. Validate your STEP files against the <<{/resources/express-schema#,EXPRESS schema>> +2. Map your data elements to AP 210 entities (see link:/about/scope[Scope]) +3. Use the link:/resources/test-cases[test cases] as reference for valid entity combinations +4. Validate your STEP files against the link:/resources/express-schema[EXPRESS schema] === Phase 2: Incremental Exchange @@ -36,7 +36,7 @@ Validate that your data exchanges correctly with trading partners: 1. Exchange test files with your partners 2. Compare round-trip results (export, import, compare) -3. Use the 14 <<{/resources/implementation#,reference queries>> to verify data integrity +3. Use the 14 link:/resources/implementation[reference queries] to verify data integrity 4. Validate against known-good test cases == Key Recommendations diff --git a/content/pages/about.adoc b/content/pages/about.adoc index 4e9bdea9..11bffcbc 100644 --- a/content/pages/about.adoc +++ b/content/pages/about.adoc @@ -37,7 +37,7 @@ AP 210 has been developed through four editions, each expanding scope to address * *Edition 3 (2016)* — Design rules, constraints, and layer stack modeling * *Edition 4 (2021)* — Current edition with comprehensive coverage -See the <<{/standard#,Standards>> page for details on each edition. +See the link:/standard[Standards] page for details on each edition. == Research and Implementation @@ -48,4 +48,4 @@ AP 210 has been the subject of significant collaborative research between the Na * 80+ standardized queries for extracting AP210 data * Visualization tools and conversion utilities -Explore the <<{/research#,research>> and <<{/resources#,resources>> sections to learn more. +Explore the link:/research[research] and link:/resources[resources] sections to learn more. diff --git a/content/pages/application.adoc b/content/pages/application.adoc index f03bb5df..243ee4c5 100644 --- a/content/pages/application.adoc +++ b/content/pages/application.adoc @@ -8,10 +8,10 @@ AP 210 application documentation covers the concepts, recommended practices, and == What's Here -*<<{/application/concepts#,Concept of Operations>>* — How AP 210 data flows through the design-to-manufacturing process, including the roles of different participants and the lifecycle of design data. +*link:/application/concepts[Concept of Operations]* — How AP 210 data flows through the design-to-manufacturing process, including the roles of different participants and the lifecycle of design data. -*<<{/application/recommended-practices#,Recommended Practices>>* — Guidance for implementing AP 210 data exchange, including best practices for file structure, entity usage, and validation. +*link:/application/recommended-practices[Recommended Practices]* — Guidance for implementing AP 210 data exchange, including best practices for file structure, entity usage, and validation. -*<<{/application/terms#,Terms & Glossary>>* — Key terms and definitions used in the AP 210 domain, from "application protocol" to "stratum technology." +*link:/application/terms[Terms & Glossary]* — Key terms and definitions used in the AP 210 domain, from "application protocol" to "stratum technology." -*<<{/application/examples#,Examples>>* — STEP file examples demonstrating common AP 210 data patterns. +*link:/application/examples[Examples]* — STEP file examples demonstrating common AP 210 data patterns. diff --git a/content/pages/research.adoc b/content/pages/research.adoc index d060b1fb..b995cd18 100644 --- a/content/pages/research.adoc +++ b/content/pages/research.adoc @@ -10,18 +10,18 @@ Collaborative research projects from NIST and PDES Inc. advancing AP210 tooling The National Institute of Standards and Technology (NIST) has conducted several research projects that apply AP 210 to real-world engineering challenges: -* <<{/research/nist-cfd#,*CFD Analysis*>> — Computational fluid dynamics models for electronic assembly thermal management -* <<{/research/nist-gdt-connectors#,*GDT for Connectors*>> — Geometric Dimensioning and Tolerancing for electronic connectors -* <<{/research/nist-gdt-packages#,*GDT for Packages*>> — Geometric Dimensioning and Tolerancing for IC packages -* <<{/research/nist-spice#,*SPICE Integration*>> — Circuit simulation data integrated with AP210 mechanical design models +* link:/research/nist-cfd[*CFD Analysis*] — Computational fluid dynamics models for electronic assembly thermal management +* link:/research/nist-gdt-connectors[*GDT for Connectors*] — Geometric Dimensioning and Tolerancing for electronic connectors +* link:/research/nist-gdt-packages[*GDT for Packages*] — Geometric Dimensioning and Tolerancing for IC packages +* link:/research/nist-spice[*SPICE Integration*] — Circuit simulation data integrated with AP210 mechanical design models == PDES Inc. Projects PDES Inc. has developed tools and resources to support AP 210 adoption: -* <<{/research/pdes-viewer#,*AP210 Viewer*>> — Visualization tool for AP210 STEP data -* <<{/research/pdes-idf2ap210#,*IDF to AP210*>> — Conversion tool from legacy Intermediate Data Format to AP210 -* <<{/research/data-archive#,*Data Archive*>> — Comprehensive research dataset with DOI citation +* link:/research/pdes-viewer[*AP210 Viewer*] — Visualization tool for AP210 STEP data +* link:/research/pdes-idf2ap210[*IDF to AP210*] — Conversion tool from legacy Intermediate Data Format to AP210 +* link:/research/data-archive[*Data Archive*] — Comprehensive research dataset with DOI citation == Data Access diff --git a/content/pages/resources-discussions.adoc b/content/pages/resources-discussions.adoc index 01a8fc21..677f9756 100644 --- a/content/pages/resources-discussions.adoc +++ b/content/pages/resources-discussions.adoc @@ -43,5 +43,5 @@ assets/pdes_discussion/PDES_AP210Rules_Model/ == Related Resources -* <<{/learn/ap210-concepts/design-rules#,AP210 Design Rules lesson>> — educational walk-through of the design rules concept -* <<{/resources/express-schema#,EXPRESS Schema>> — the schema definition implementing the rules model +* link:/learn/ap210-concepts/design-rules[AP210 Design Rules lesson] — educational walk-through of the design rules concept +* link:/resources/express-schema[EXPRESS Schema] — the schema definition implementing the rules model diff --git a/content/pages/resources-express-schema.adoc b/content/pages/resources-express-schema.adoc index bbb2b969..4e0ce2ed 100644 --- a/content/pages/resources-express-schema.adoc +++ b/content/pages/resources-express-schema.adoc @@ -46,4 +46,4 @@ To work with the EXPRESS schema: 3. **Generate** code bindings using tools like JSDAI or the ECCO compiler 4. **Query** the schema to find entities for specific data extraction tasks -See the <<{/learn/querying-data#,Querying AP210 Data>> module for practical examples of using the schema to construct data extraction queries. +See the link:/learn/querying-data[Querying AP210 Data] module for practical examples of using the schema to construct data extraction queries. diff --git a/content/pages/resources-implementation.adoc b/content/pages/resources-implementation.adoc index fde21dcd..9357e6bc 100644 --- a/content/pages/resources-implementation.adoc +++ b/content/pages/resources-implementation.adoc @@ -11,7 +11,7 @@ Java source code and tools from the NIST AP210 JSDAI reference implementation pr The reference implementation is built on the JSDAI (Java STEP Data Access Interface) framework and consists of several key Java classes: `SampleModelTraversal.java`:: -Primary tutorial class demonstrating how to open an AP 210 STEP file, navigate the entity graph, and extract data. Used as the basis for the <<{/learn/programming/model-traversal#,Programming Module>>. +Primary tutorial class demonstrating how to open an AP 210 STEP file, navigate the entity graph, and extract data. Used as the basis for the link:/learn/programming/model-traversal[Programming Module]. `MIMqueries.java`:: Interface defining 80+ query methods for extracting specific data from AP 210 datasets. Methods cover product categories, component locations, interconnect data, stratum/layer information, and parameter extraction. @@ -47,4 +47,4 @@ Source code is located at: assets/implementation_reference/NIST_AP210_Javadoc_Project/src/ ``` -The full Javadoc API documentation is available at <<{/resources/javadoc#,Java API>>. +The full Javadoc API documentation is available at link:/resources/javadoc[Java API]. diff --git a/content/pages/resources-test-cases.adoc b/content/pages/resources-test-cases.adoc index 553a8733..872a8642 100644 --- a/content/pages/resources-test-cases.adoc +++ b/content/pages/resources-test-cases.adoc @@ -74,4 +74,4 @@ Test case files are available in the repository at `assets/test_cases/PDES_Testc == Use in Learning -Test cases are referenced throughout the <<{/learn/reading-data#,Reading AP210 Data>> course module, which provides guided walk-throughs of selected test cases from simple to complex. +Test cases are referenced throughout the link:/learn/reading-data[Reading AP210 Data] course module, which provides guided walk-throughs of selected test cases from simple to complex. diff --git a/content/pages/resources-training-materials.adoc b/content/pages/resources-training-materials.adoc index 7aa9d32c..961a6e9e 100644 --- a/content/pages/resources-training-materials.adoc +++ b/content/pages/resources-training-materials.adoc @@ -4,7 +4,7 @@ title: Training Materials = Training Materials -Original PDES AP210 Training CD presentation slides from the July 2003 training program. These slides formed the basis of the structured <<{/learn#,learning modules>> available on this site. +Original PDES AP210 Training CD presentation slides from the July 2003 training program. These slides formed the basis of the structured link:/learn[learning modules] available on this site. == Training Programs @@ -63,4 +63,4 @@ Training materials are located at: assets/implementation_reference/PDES_AP210_Training_CD/ ``` -The content from these slides has been rewritten as structured <<{/learn#,learning modules>> for online consumption, while the original presentations remain available as reference material. +The content from these slides has been rewritten as structured link:/learn[learning modules] for online consumption, while the original presentations remain available as reference material. diff --git a/content/pages/resources.adoc b/content/pages/resources.adoc index aceefeb3..daad318b 100644 --- a/content/pages/resources.adoc +++ b/content/pages/resources.adoc @@ -8,20 +8,20 @@ AP 210 reference materials — test cases, API documentation, implementation too == Reference Materials -*<<{/resources/test-cases#,Test Case Gallery>>* — 35 validated test cases with STEP files covering the full range of AP 210 entities, from simple resistor modules to complex multi-layer PCAs. +*link:/resources/test-cases[Test Case Gallery]* — 35 validated test cases with STEP files covering the full range of AP 210 entities, from simple resistor modules to complex multi-layer PCAs. -*<<{/resources/javadoc#,Java API (Javadoc)>>* — Complete Javadoc for the NIST AP210 JSDAI reference implementation, including the `MIMqueries` interface with 80+ query methods. +*link:/resources/javadoc[Java API (Javadoc)]* — Complete Javadoc for the NIST AP210 JSDAI reference implementation, including the `MIMqueries` interface with 80+ query methods. -*<<{/resources/arm-mim-reference#,ARM/MIM Entity Reference>>* — Cross-reference index of AP 210 ARM and MIM entities, useful for navigating the information model. +*link:/resources/arm-mim-reference[ARM/MIM Entity Reference]* — Cross-reference index of AP 210 ARM and MIM entities, useful for navigating the information model. == Implementation -*<<{/resources/implementation#,Source Code & Tools>>* — Java source code for the JSDAI reference implementation (`SampleModelTraversal.java`, `MIMqueries`, `MIMparamQueries`), compiled tools, and the ECCO output. +*link:/resources/implementation[Source Code & Tools]* — Java source code for the JSDAI reference implementation (`SampleModelTraversal.java`, `MIMqueries`, `MIMparamQueries`), compiled tools, and the ECCO output. -*<<{/resources/express-schema#,EXPRESS Schema>>* — The complete AP 210 ARM extended longform EXPRESS schema (`ap210_arm_extended_longform.exp`), the authoritative definition of the information model. +*link:/resources/express-schema[EXPRESS Schema]* — The complete AP 210 ARM extended longform EXPRESS schema (`ap210_arm_extended_longform.exp`), the authoritative definition of the information model. == Standards Engineering -*<<{/resources/discussions#,PDES Rules Model Discussions>>* — Primary source materials from the PDES AP210 Rules Model design process, including presentation slides, email correspondence, and working notes. +*link:/resources/discussions[PDES Rules Model Discussions]* — Primary source materials from the PDES AP210 Rules Model design process, including presentation slides, email correspondence, and working notes. -*<<{/resources/training-materials#,Training Materials>>* — Original PDES AP210 Training CD presentation slides from the July 2003 training program, covering STEP fundamentals through AP210 concepts and implementation. +*link:/resources/training-materials[Training Materials]* — Original PDES AP210 Training CD presentation slides from the July 2003 training program, covering STEP fundamentals through AP210 concepts and implementation. diff --git a/content/pages/standard.adoc b/content/pages/standard.adoc index 4f401835..49bde8be 100644 --- a/content/pages/standard.adoc +++ b/content/pages/standard.adoc @@ -14,19 +14,19 @@ The standard has evolved through four editions, each expanding scope and refinin |=== | Edition | Published | Scope -| <> -| 2001 +| link:/standard/ed1[Edition 1^] +| 2004 | Initial scope: printed circuit assembly design data -| <> +| link:/standard/ed2[Edition 2^] | 2011 | Expanded to include advanced packaging and interconnect -| <> +| link:/standard/ed3[Edition 3^] | 2016 | Added design rules, constraints, and layer stack modeling -| <> +| link:/standard/ed4[Edition 4^] | 2021 | Current edition: comprehensive coverage of electronic design data |=== diff --git a/content/standards/ed4.adoc b/content/standards/ed4.adoc index c666b8be..e7a78966 100644 --- a/content/standards/ed4.adoc +++ b/content/standards/ed4.adoc @@ -30,6 +30,6 @@ This edition represents the most complete standard for electronic design data ex The https://github.com/expresslang/ap210.org[AP 210 project resources^] include: -- <<{/resources/test-cases#,Test cases>> validating the standard's information model -- <<{/resources/express-schema#,EXPRESS schema>> (ARM extended longform) -- <<{/resources/javadoc#,Java API>> (JSDAI-based reference implementation) +- link:/resources/test-cases[Test cases] validating the standard's information model +- link:/resources/express-schema[EXPRESS schema] (ARM extended longform) +- link:/resources/javadoc[Java API] (JSDAI-based reference implementation) diff --git a/src/data/navigation.ts b/src/data/navigation.ts index b9d096c4..71efbcd1 100644 --- a/src/data/navigation.ts +++ b/src/data/navigation.ts @@ -136,6 +136,7 @@ export const resourcesNavigation: NavItem[] = [ { title: 'EXPRESS Schema', slug: 'express-schema' }, { title: 'Discussions', slug: 'discussions' }, { title: 'Training Materials', slug: 'training-materials' }, + { title: 'Publications', slug: 'publications' }, ] export const navigationMap: Record = { diff --git a/src/pages/about/team.vue b/src/pages/about/team.vue index b48ddddf..9feb9bae 100644 --- a/src/pages/about/team.vue +++ b/src/pages/about/team.vue @@ -213,19 +213,6 @@ const organizations = [ ], }, ] - -const publications = [ - { id: 'NIST AMS 100-51', title: 'On Migrating ISO 10303 PMI Models to a Common Core', authors: 'Feeney & Thurman', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=935394' }, - { id: 'NIST AMS 300-12', title: 'Research Results and Recommendations for Universally Unique Identifiers', authors: 'NIST', url: 'https://nvlpubs.nist.gov/nistpubs/ams/NIST.AMS.300-12.pdf' }, - { id: 'NIST GCR 15-990', title: 'Representation of Thermal Resistor Network Model in STEP AP210 Ed2', authors: 'Stori, Brady & Thurman', url: 'https://www.nist.gov/publications/representation-thermal-resistor-network-model-packaged-component-step-ap210-edition-2' }, - { id: 'NIST GCR 15-991', title: 'Extensions of Recommended Practices for GD&T in STEP-AP210', authors: 'NIST', url: 'https://www.nist.gov/publications/extensions-recommended-practices-gdt-step-ap210-context-packaged-electronic-components' }, - { id: 'NIST IR 6991', title: 'Thermal Resistor Network Model for a Packaged Component for Use in STEP AP210', authors: 'NIST', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=903903' }, - { id: 'NIST IR 7648', title: 'NIST IR 7648', authors: 'NIST', url: 'https://doi.org/10.6028/NIST.IR.7648' }, - { id: 'PLM Requirements', title: 'Requirements on Information Technology for Product Lifecycle Management', authors: 'Denno & Thurman', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=822191' }, - { id: 'INCOSE MBSE', title: 'On Enabling a Model-Based Systems Engineering Discipline', authors: 'Denno, Thurman, Mettenburg & Hardy', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=824653' }, - { id: 'NIST IR 7677', title: 'AP210 Edition 2 Concept of Operations', authors: 'Stori & Brady', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=905123' }, - { id: 'NIST IR 7717', title: 'Use Cases for Management and Maintenance of Multi-Domain AP210 Component Models', authors: 'NIST', url: 'https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=906355' }, -]