This is the repository for the UGRC agency website.
Read about our new website. Contribute content or typos. License: MIT.
- Node.js - v18.14.1 or higher
- Text editor - We recommend VS Code
- Terminal - Astro is accessed through its command-line interface (CLI).
- Clone this repository
git clone https://github.com/agrc/gis.utah.gov.git
- Install the dependencies
npm install
- Start the website
npm start
- browse to
localhost:4321
_italic_
**bold**
_**bold italic**_
- list
---
import BulletedList from '@components/page/BulletedList.astro';
import NumberedList from '@components/page/NumberedList.astro';
import DefinitionListItem from '@components/page/DefinitionListItem.astro';
---
<em>italic</em> or <span class="italic">italic</span>
<strong>bold</strong> or <span class="font-bold">bold</span>
<strong><em>bold and italic</em></strong> or <span class="italic font-bold">bold and italic</span>
<BulletedList>
<li>list item</li>
</BulletedList>
<NumberedList>
<li>list item</li>
</NumberedList>
<dl>
<DefinitionListItem title="Word">Definition</DefinitionListItem>
</dl>
-
markdown
[link text](/pillar/level-1/page/) [link text](/pillar/level-1/page/#to-anchor)
-
astro
<a href="/pillar/level-1/page/">link text</a> <a href="/pillar/level-1/page/#to-anchor>link text</a>
-
markdown
[link text](/blog/2016-05-26-file-name/) [link text](/blog/2016-05-26-file-name/#to-anchor/)
-
astro
<a href="{/blog/2016-05-26-file-name/">link text</a> <a href="{/blog/2016-05-26-file-name/#to-anchor">link text</a>
-
markdown
[link text](http://external.website.location) [link text](http://external.website.location#to-anchor)
-
astro
--- import ExternalLink from '@components/page/ExternalLink.astro'; --- <ExternalLink href="https://url.com">link text</ExternalLink> <ExternalLink href="https://url.com#to-anchor">link text</ExternalLink>
-
markdown
[![displayed image alt text](../../relative/path/to/image.jpg)](![link to alt text](/path/to/item))
-
markdown
![alt text](../../relative/path/to/image.jpg)
-
astro
--- import { Image } from 'astro:assets'; import photo from '@images/pillar/image.phg'; --- <Image src={photo} alt="text describing the image to a non sighted person" />
title: Title
- the title of the contentauthor.display_name: Full Name
- The author of the contentauthor.email: email@address
- The author emaildate: 2018-02-13
- the date the content was createdtags:
a list of tagscategories: Featured|Developer|SGID Blog|GPS-surveyor|Guestblog
published: true|false
Important
Please do not put email addresses directly into content.
Contacts are managed in a typescript file.
-
markdown
--- --- import import Contacts from '@components/page/Contacts.astro'; <Contacts contactKey="ugrc" subject={frontmatter.title} />
-
astro
--- import import Contacts from '@components/page/Contacts.astro'; --- <Contacts contactKey="ugrc" subject={frontmatter.title} />
The data that powers the SGID Index search page comes from a Google Sheet. Fresh data is scraped from the sheet each time the website is built in Netlify.
The data is validated using a NodeJS script which is scheduled to run nightly via GitHub Actions. If there are validation errors, the script opens a new GitHub issue with a comment displaying the errors. If there is an existing issue already open, the output comment is updated. If there are no errors, the issue will be closed. The validation script can also be triggered manually by adding a new issue comment that begins with the following text: /validate-sgid-index
.
Rows that have indexStatus
set to removed
or draft
are skipped.
The validation scripts performs the following checks:
- Validates that
openSgidTableName
is a valid table name in the Open SGID database. - Validates that
productPage
is a valid path relative to https://gis.utah.gov/ or an external URL. - Adds a new guid value for
id
if it is empty. - Validates the
itemId
is a valid AGOL item and auto-populates the following fields:hubName
hubOrganization
serverHost
serverServiceName
serverLayerId
- Checks for duplicates values between rows for the following fields:
openSgidTableName
itemId
id
displayName
- Validates that the values in the spreadsheet match the corresponding values in the download metadata file.
- Checks that there is a value in either
productPage
oritemId
. - Validates that
inActionUrl
is a valid URL if it is populated.