Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
9cd1a49
refactor: utilize nuxt layers for configuration, shared features, and…
omargfh Mar 11, 2026
38b1735
refactor: abstract website information sources and make use of Nuxt l…
omargfh Mar 25, 2026
5e9b1d9
chore: update turbo
omargfh Mar 25, 2026
8bdeaca
Edit tab icons and navbar logo
danielwong0115 Jan 16, 2026
770c37f
Implement Directus navigations on to navbar
danielwong0115 Jan 17, 2026
6165207
Change footer with Directus footer navigations
danielwong0115 Jan 17, 2026
0d1d47b
Add intro section onto index page
danielwong0115 Jan 23, 2026
563b5f5
Add News and Social Media section on main page
danielwong0115 Jan 29, 2026
957cc0c
Fix initial Directus loading issue with async functions
danielwong0115 Jan 29, 2026
753ed39
Add in Get NetLogo and Community sections on home page
danielwong0115 Jan 30, 2026
a25fed1
Fix Intro section with appropriate turtles and NetLogo Icon
danielwong0115 Feb 4, 2026
7a1cfd8
Add in copyright info to page footers
danielwong0115 Feb 4, 2026
684d970
Replace top search bar with donate button on navbar
danielwong0115 Feb 4, 2026
4a6f8e7
Minor fix: allow button to scroll to Get NetLogo section
danielwong0115 Feb 4, 2026
0ce4c0e
Initial Intro Splash
danielwong0115 Feb 4, 2026
cd81127
Fix responsiveness of intro splash section on <lg screens
danielwong0115 Feb 9, 2026
70fd63a
Fix issue of Button not supporting href prop
danielwong0115 Feb 10, 2026
00f02e4
Add contact page with Directus content
danielwong0115 Feb 10, 2026
b42ba3f
Fix metadata of contact page
danielwong0115 Feb 10, 2026
eb4ee16
Implement announcements page
danielwong0115 Feb 16, 2026
8987130
Implement about page with scoped styling
danielwong0115 Feb 17, 2026
3253e45
Fix responsiveness of videos
danielwong0115 Feb 17, 2026
f2124d3
Create official news page
danielwong0115 Feb 18, 2026
e07f8ff
Implement campaign page
danielwong0115 Feb 23, 2026
22c769a
Fix campaign page title layout
danielwong0115 Feb 24, 2026
bcd0ce2
Implement donate page
danielwong0115 Feb 24, 2026
cc0329d
Create download thank you page
danielwong0115 Feb 24, 2026
71f5996
Create base download page with proper access to navigator
danielwong0115 Feb 25, 2026
b28d716
Base framework of download page for windows
danielwong0115 Feb 25, 2026
8e1d6d5
Implement machine help section with manual link styling
danielwong0115 Feb 25, 2026
f2bd97f
Add in download section framework with updated CCL links
danielwong0115 Feb 25, 2026
f099d6d
Initial implementation of download form
danielwong0115 Feb 26, 2026
3c923fa
Fix responsiveness of download form fields
danielwong0115 Feb 26, 2026
78248a6
Update download form with NuxtUI Forms
danielwong0115 Feb 26, 2026
e1755ef
Fix image on download form
danielwong0115 Feb 27, 2026
b1b3ad7
Implement UAlert for required fields when subscribed
danielwong0115 Feb 27, 2026
dd7523a
Fix gridding between field names and inputs for download form on smal…
danielwong0115 Feb 27, 2026
fbdb9dc
Add in linux and mac download pages
danielwong0115 Feb 27, 2026
b762c0a
Create download options page
danielwong0115 Feb 27, 2026
ba0e93e
Fix download form validation to using required validation
danielwong0115 Mar 19, 2026
b3227b4
Initial implementation of references page without year anchor links
danielwong0115 Mar 20, 2026
027d098
Create references filter for year
danielwong0115 Mar 20, 2026
4d79ada
Add in reference subject filtering
danielwong0115 Mar 20, 2026
efad8e2
Add in references exploration files (getting from directus and sendin…
danielwong0115 Mar 20, 2026
a6628c3
Resolve check-types nullability errors and template path import
danielwong0115 Mar 20, 2026
f0ecdd5
Fix path referencing in engines.ts
danielwong0115 Mar 20, 2026
5f16611
Resolve lint errors blocking test builds
danielwong0115 Mar 20, 2026
59dd987
minor: fix merge conflic in app/netlogo
omargfh Mar 25, 2026
0a10785
refactor(@repo/tailwind-config): create mixins for netlogo/docs styling
omargfh Jan 23, 2026
05dc746
refactor(@repo/tailwind-config): update docs-theme to rely on mixins
omargfh Jan 23, 2026
697563d
refactor(@repo/tailwind-config): create netlogo-theme with scoped doc…
omargfh Jan 23, 2026
aeb7df3
minor(netlogo): fix merge conflics in main.scss
omargfh Mar 25, 2026
962f725
minor(@repo/vue-ui): make ErrorDisplay comptabile with netlogo-theme …
omargfh Jan 23, 2026
6576f97
bugfix(@repo/tailwind-config): fix pre and code missing spacing
omargfh Jan 26, 2026
25dc73b
minor(@repo/nuxt-core): change nuxt-core main theme to netlogo instea…
omargfh Jan 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,8 @@ packages/mustache/test-dist/
# should not be tracked
GITIGNORE_*
GITIGNORE_*/**/*

.env
.env.local
.env.development
.env.production
15 changes: 10 additions & 5 deletions apps/docs/.env
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
NUXT_TELEMETRY_DISABLED=true

PROJECT_ROOT="."
REPO_ROOT=../..
VERSIONS_SRC="/versions.json"
EXTENSIONS_DIR="$REPO_ROOT/external/extensions"

PRODUCT_NAME="NetLogo Documentation"
PRODUCT_DESCRIPTION="The official documentation for the NetLogo modeling environment, including user manuals, tutorials, and reference materials."
PRODUCT_KEYWORDS="NetLogo, Documentation, User Manual, Tutorials, Reference, Agent-Based Modeling, Simulation, Programming, Modeling Environment"
PRODUCT_VERSION="7.0.3"
PRODUCT_DISPLAY_NAME="7.0.3"
PRODUCT_BUILD_DATE=$(date +%Y-%m-%dT%H:%M:%SZ)
PRODUCT_WEBSITE="https://docs.netlogo.org"

VERSIONS_SRC="/versions.json"

REPO_ROOT=../..
EXTENSIONS_DIR="$REPO_ROOT/external/extensions"

BUILD_LATEST=${BUILD_LATEST:-true}
BUILD_REPO="git@github.com:NetLogo/docs.git"
BUILD_BRANCH="main"

# Enable for Development
NUXT_DEV_TOOLS=true
16 changes: 0 additions & 16 deletions apps/docs/.env.development

This file was deleted.

21 changes: 21 additions & 0 deletions apps/docs/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
NUXT_TELEMETRY_DISABLED=true

PROJECT_ROOT="."
REPO_ROOT=../..
VERSIONS_SRC="/versions.json"
EXTENSIONS_DIR="$REPO_ROOT/external/extensions"

PRODUCT_NAME="NetLogo Documentation"
PRODUCT_DESCRIPTION="The official documentation for the NetLogo modeling environment, including user manuals, tutorials, and reference materials."
PRODUCT_KEYWORDS="NetLogo, Documentation, User Manual, Tutorials, Reference, Agent-Based Modeling, Simulation, Programming, Modeling Environment"
PRODUCT_VERSION="7.0.3"
PRODUCT_DISPLAY_NAME="7.0.3"
PRODUCT_BUILD_DATE=$(date +%Y-%m-%dT%H:%M:%SZ)
PRODUCT_WEBSITE="https://docs.netlogo.org"

BUILD_LATEST=${BUILD_LATEST:-true}
BUILD_REPO="git@github.com:NetLogo/docs.git"
BUILD_BRANCH="main"

# Enable for Development
# NUXT_DEV_TOOLS=true
1 change: 1 addition & 0 deletions apps/docs/app/app.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default defineAppConfig({});
1 change: 1 addition & 0 deletions apps/docs/app/assets/styles/tailwind.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@

@import 'tw-animate-css';
@source "../../../../../packages/vue-ui/src";
@source "../../../../../packages/nuxt-core/";
@source "../../../content/**/*.md";
2 changes: 2 additions & 0 deletions apps/docs/app/assets/website-logo.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import WebsiteLogo from '@repo/vue-ui/assets/brands/NetLogoUserManual.svg';
export { WebsiteLogo };
8 changes: 6 additions & 2 deletions apps/docs/app/components/Announcer.vue
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,18 @@ const fetcher = async () => {
const { data: announcements } = await useLazyAsyncData<Announcements>('announcements', fetcher, { server: false });

const route = useRoute();
const productInfo = useProductInfo();
const {
public: {
website: { productVersion },
},
} = useRuntimeConfig();
const toast = useToast();

const visibleAnnouncements = computed(() => {
if (!announcements.value) return [];

return announcements.value.filter((item) => {
return item.appliesTo(route.path, productInfo.productVersion);
return item.appliesTo(route.path, productVersion);
});
});

Expand Down
17 changes: 10 additions & 7 deletions apps/docs/app/components/ClientNavbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<VersionSelectDropdown
:versions="versions"
:selected-version="selectedVersion"
@version-change="(version) => onVersionChange(version, productInfo)"
@version-change="(version) => onVersionChange(version, { productVersion, productWebsite })"
/>

<NavbarAction href="https://github.com/NetLogo" aria-label="NetLogo GitHub Repository">
Expand Down Expand Up @@ -57,8 +57,11 @@ import { useMediaQuery } from '@vueuse/core';
import { onMounted, ref, watch } from 'vue';
import { onVersionChange, pullVersionsFromSource } from '~~/shared/versions';

const productInfo = useProductInfo();
const runtimeInfo = useRuntimeInfo();
const {
public: {
website: { productWebsite, productVersion, versionsSrc },
},
} = useRuntimeConfig();

interface NavbarLink {
title: string;
Expand Down Expand Up @@ -174,7 +177,7 @@ const arePathnamesCongruent = (windowPathname: string, candidatePathname: string
pathname
.split('/')
.filter((p) => p.length > 0)
.filter((p) => p !== productInfo.productVersion)
.filter((p) => p !== productVersion)
.map((p) => p.replace(/\$/, ''))
.map((p) => p.trim().split('#')[0] ?? '')
.join('/');
Expand All @@ -196,7 +199,7 @@ const isLinkParentActive = (link: NavbarLink, currentPath: string): boolean => {

// Version selection
const versions = ref<Record<string, VersionProps>>({
[productInfo.productVersion]: { displayName: productInfo.productVersion },
[productVersion]: { displayName: productVersion },
'7.0.2': { displayName: '7.0.2' },
'7.0.1': { displayName: '7.0.1' },
'7.0.0': { displayName: '7.0.0' },
Expand All @@ -223,14 +226,14 @@ const versions = ref<Record<string, VersionProps>>({
'1.0': { disabled: true },
});

const selectedVersion = ref<string>(productInfo.productVersion);
const selectedVersion = ref<string>(productVersion);

onMounted(() => {
if (import.meta.client) {
updateActiveStates();
handleMediaQueryChange();
setTimeout(async () => {
versions.value = await pullVersionsFromSource(versions.value, runtimeInfo.versionsSrc);
versions.value = await pullVersionsFromSource(versions.value, versionsSrc);
}, 0);
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ import { wrapCacheLocalStorage } from '@repo/utils/lib/storage/cached-local-stor
import { removeHtmlExtension } from '~/utils/url';
import type { CatalogItemData, PrimitiveCatalogProps, SideCatalogItem } from './types';

const productInfo = useProductInfo();
const {
public: {
website: { productVersion },
},
} = useRuntimeConfig();

const { dictionaryDisplayName, dictionaryHomeDirectory, indexFileURI, currentItemId, currentItemLabel, primRoot } =
defineProps<PrimitiveCatalogProps>();
Expand Down Expand Up @@ -69,7 +73,7 @@ const {
error,
} = await useLazyAsyncData(
indexFileURI,
wrapCacheLocalStorage([productInfo.productVersion, 'primitive-catalog', indexFileURI].join('-'), null, () =>
wrapCacheLocalStorage([productVersion, 'primitive-catalog', indexFileURI].join('-'), null, () =>
fetcher(indexFileURI),
),
{ server: false },
Expand Down
31 changes: 0 additions & 31 deletions apps/docs/app/composables/configuration.ts

This file was deleted.

14 changes: 9 additions & 5 deletions apps/docs/app/layouts/default.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,18 @@
</template>

<script setup lang="ts">
const productInfo = useProductInfo();
const pageProductName = `NetLogo ${productInfo.productVersion} User Manual`;
const {
public: {
website: { productVersion, productWebsite },
},
} = useRuntimeConfig();
const pageProductName = `NetLogo ${productVersion} User Manual`;

const route = useRoute();
const canonical = computed(() => {
const routeWithoutVersion = route.fullPath.replace(`/${productInfo.productVersion}`, '');
const routeWithVersion = ['/', productInfo.productVersion, routeWithoutVersion].join('');
return new URL(routeWithVersion, productInfo.productWebsite).toString();
const routeWithoutVersion = route.fullPath.replace(`/${productVersion}`, '');
const routeWithVersion = ['/', productVersion, routeWithoutVersion].join('');
return new URL(routeWithVersion, productWebsite).toString();
});

useHead({
Expand Down
16 changes: 14 additions & 2 deletions apps/docs/app/pages/[...slug].vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,26 @@ import PrimitiveCatalog from '~/components/PrimitiveCatalog/PrimitiveCatalog.vue
import { PrimitiveCatalogSchema } from '~/components/PrimitiveCatalog/types';
import type { DocumentMetadata } from '~~/lib/docs/schema';

const productInfo = useProductInfo();
const {
public: {
website: { productName },
},
} = useRuntimeConfig();

const route = useRoute();
const path = decodeURIComponent(route.path).replace(/\?/, '');
const { data: page } = await useAsyncData(path, () => {
return queryCollection('content').path(path).first();
});

// Special case due to the large number of
// primitives on the dictionary page, which causes too many
// tooltips to be rendered and results in degraded performance.
// --Omar I. (05-10-2026)
if (['/dictionary', '/3d'].includes(path)) {
provide('prim-tooltip-disabled', true);
}

const { data: surround } = await useAsyncData(`${path}-surround`, () => {
return queryCollectionItemSurroundings('content', path, {
fields: ['description'],
Expand Down Expand Up @@ -44,7 +56,7 @@ defineOgImageComponent('DocsSeo', {
description,
theme: '#f31500',
siteLogo: '/turtles.png',
siteName: productInfo.productName,
siteName: productName,
});

useSeoMeta({
Expand Down
23 changes: 11 additions & 12 deletions apps/docs/app/pages/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<Anchor href="/copyright"> Copyright and License Information </Anchor>
page.
</p>
<div v-if="productInfo.isBeta" class="highlight highlight-warning">
<div v-if="productIsBeta" class="highlight highlight-warning">
<p>
NetLogo <span v-if="productVersion">{{ productVersion }}</span> is a beta release. It is not recommended for
production use, but we welcome your feedback on the new features and changes.
Expand Down Expand Up @@ -71,25 +71,24 @@ import { ref } from 'vue';
import beginnersLinksData from '~/assets/beginners-links.json';
import importantLinksData from '~/assets/important-links.json';

const productInfo = useProductInfo();
const productVersion = ref(productInfo.productVersion);
const {
public: {
website: { productVersion, productDescription, productKeywords, productName, productIsBeta },
},
} = useRuntimeConfig();
const importantLinks = ref(importantLinksData);
const beginnersLinks = ref(beginnersLinksData);

const description =
'The official documentation for the NetLogo modeling environment, including user manuals, tutorials, and reference materials.';
// Set page title and meta
useSeoMeta({
description,
keywords:
'NetLogo,Documentation,User Manual,Tutorials,Reference,Agent-Based Modeling,Simulation,Programming,Modeling Environment',
title: productName,
description: productDescription,
keywords: productKeywords.join(', '),
});

defineOgImageComponent('DocsSeo', {
title: productInfo.productName,
description,
title: productName,
theme: '#f31500',
siteLogo: '/turtles.png',
siteName: productInfo.productName,
siteName: productName,
});
</script>
40 changes: 0 additions & 40 deletions apps/docs/env.public.ts

This file was deleted.

Loading