generated from cloud-gov/pages-uswds-11ty
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 5f5a6fe
Showing
57 changed files
with
26,440 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
const { DateTime } = require('luxon'); | ||
const fs = require('fs'); | ||
const pluginRss = require('@11ty/eleventy-plugin-rss'); | ||
const pluginNavigation = require('@11ty/eleventy-navigation'); | ||
const markdownIt = require('markdown-it'); | ||
const markdownItAnchor = require('markdown-it-anchor'); | ||
const yaml = require("js-yaml"); | ||
const svgSprite = require("eleventy-plugin-svg-sprite"); | ||
const { imageShortcode, imageWithClassShortcode } = require('./config'); | ||
|
||
module.exports = function (config) { | ||
// Set pathPrefix for site | ||
let pathPrefix = '/'; | ||
|
||
// Copy the `admin` folders to the output | ||
config.addPassthroughCopy('admin'); | ||
|
||
// Copy USWDS init JS so we can load it in HEAD to prevent banner flashing | ||
config.addPassthroughCopy({'./node_modules/@uswds/uswds/dist/js/uswds-init.js': 'assets/js/uswds-init.js'}); | ||
|
||
// Add plugins | ||
config.addPlugin(pluginRss); | ||
config.addPlugin(pluginNavigation); | ||
|
||
//// SVG Sprite Plugin for USWDS USWDS icons | ||
config.addPlugin(svgSprite, { | ||
path: "./node_modules/@uswds/uswds/dist/img/uswds-icons", | ||
svgSpriteShortcode: 'uswds_icons_sprite', | ||
svgShortcode: 'uswds_icons' | ||
}); | ||
|
||
//// SVG Sprite Plugin for USWDS USA icons | ||
config.addPlugin(svgSprite, { | ||
path: "./node_modules/@uswds/uswds/dist/img/usa-icons", | ||
svgSpriteShortcode: 'usa_icons_sprite', | ||
svgShortcode: 'usa_icons' | ||
}); | ||
|
||
// Allow yaml to be used in the _data dir | ||
config.addDataExtension("yaml", contents => yaml.load(contents)); | ||
|
||
config.addFilter('readableDate', (dateObj) => { | ||
return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat( | ||
'dd LLL yyyy' | ||
); | ||
}); | ||
|
||
// https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string | ||
config.addFilter('htmlDateString', (dateObj) => { | ||
return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat('yyyy-LL-dd'); | ||
}); | ||
|
||
// Get the first `n` elements of a collection. | ||
config.addFilter('head', (array, n) => { | ||
if (!Array.isArray(array) || array.length === 0) { | ||
return []; | ||
} | ||
if (n < 0) { | ||
return array.slice(n); | ||
} | ||
|
||
return array.slice(0, n); | ||
}); | ||
|
||
// Return the smallest number argument | ||
config.addFilter('min', (...numbers) => { | ||
return Math.min.apply(null, numbers); | ||
}); | ||
|
||
function filterTagList(tags) { | ||
return (tags || []).filter( | ||
(tag) => ['all', 'nav', 'post', 'posts'].indexOf(tag) === -1 | ||
); | ||
} | ||
|
||
config.addFilter('filterTagList', filterTagList); | ||
|
||
// Create an array of all tags | ||
config.addCollection('tagList', function (collection) { | ||
let tagSet = new Set(); | ||
collection.getAll().forEach((item) => { | ||
(item.data.tags || []).forEach((tag) => tagSet.add(tag)); | ||
}); | ||
|
||
return filterTagList([...tagSet]); | ||
}); | ||
|
||
// Customize Markdown library and settings: | ||
let markdownLibrary = markdownIt({ | ||
html: true, | ||
breaks: true, | ||
linkify: true, | ||
}).use(markdownItAnchor, { | ||
permalink: markdownItAnchor.permalink.ariaHidden({ | ||
placement: 'after', | ||
class: 'direct-link', | ||
symbol: '#', | ||
level: [1, 2, 3, 4], | ||
}), | ||
slugify: config.getFilter('slug'), | ||
}); | ||
config.setLibrary('md', markdownLibrary); | ||
|
||
// Override Browsersync defaults (used only with --serve) | ||
config.setBrowserSyncConfig({ | ||
callbacks: { | ||
ready: function (err, browserSync) { | ||
const content_404 = fs.readFileSync('_site/404/index.html'); | ||
|
||
browserSync.addMiddleware('*', (req, res) => { | ||
// Provides the 404 content without redirect. | ||
res.writeHead(404, { 'Content-Type': 'text/html; charset=UTF-8' }); | ||
res.write(content_404); | ||
res.end(); | ||
}); | ||
}, | ||
}, | ||
ui: false, | ||
ghostMode: false, | ||
}); | ||
|
||
// Set image shortcodes | ||
config.addLiquidShortcode('image', imageShortcode); | ||
config.addLiquidShortcode('image_with_class', imageWithClassShortcode); | ||
config.addLiquidShortcode("uswds_icon", function (name) { | ||
return ` | ||
<svg class="usa-icon" aria-hidden="true" role="img"> | ||
<use xlink:href="#svg-${name}"></use> | ||
</svg>`; | ||
}); | ||
|
||
// If BASEURL env variable exists, update pathPrefix to the BASEURL | ||
if (process.env.BASEURL) { | ||
pathPrefix = process.env.BASEURL | ||
} | ||
|
||
return { | ||
// Control which files Eleventy will process | ||
// e.g.: *.md, *.njk, *.html, *.liquid | ||
templateFormats: ['md', 'njk', 'html', 'liquid'], | ||
|
||
// Pre-process *.md files with: (default: `liquid`) | ||
// Other template engines are available | ||
// See https://www.11ty.dev/docs/languages/ for other engines. | ||
markdownTemplateEngine: 'liquid', | ||
|
||
// Pre-process *.html files with: (default: `liquid`) | ||
// Other template engines are available | ||
// See https://www.11ty.dev/docs/languages/ for other engines. | ||
htmlTemplateEngine: 'liquid', | ||
|
||
// ----------------------------------------------------------------- | ||
// If your site deploys to a subdirectory, change `pathPrefix`. | ||
// Don’t worry about leading and trailing slashes, we normalize these. | ||
|
||
// If you don’t have a subdirectory, use "" or "/" (they do the same thing) | ||
// This is only used for link URLs (it does not affect your file structure) | ||
// Best paired with the `url` filter: https://www.11ty.dev/docs/filters/url/ | ||
|
||
// You can also pass this in on the command line using `--pathprefix` | ||
|
||
// Optional (default is shown) | ||
pathPrefix: pathPrefix, | ||
// ----------------------------------------------------------------- | ||
|
||
// These are all optional (defaults are shown): | ||
dir: { | ||
input: '.', | ||
includes: '_includes', | ||
data: '_data', | ||
output: '_site', | ||
}, | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
CONTRIBUTING.md | ||
LICENSE.md | ||
README.md | ||
.github | ||
config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
## Changes proposed in this pull request: | ||
- | ||
- | ||
- | ||
|
||
## security considerations | ||
[Note the any security considerations here, or make note of why there are none] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
name: "CodeQL" | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
pull_request: | ||
branches: [ main ] | ||
schedule: | ||
- cron: '20 22 * * 2' | ||
|
||
jobs: | ||
analyze: | ||
name: Analyze | ||
runs-on: ubuntu-latest | ||
permissions: | ||
actions: read | ||
contents: read | ||
security-events: write | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
language: [ 'javascript' ] | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
- name: Initialize CodeQL | ||
uses: github/codeql-action/init@v2 | ||
with: | ||
languages: ${{ matrix.language }} | ||
|
||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). | ||
# If this step fails, then you should remove it and run the build manually (see below) | ||
- name: Autobuild | ||
uses: github/codeql-action/autobuild@v2 | ||
|
||
# ℹ️ Command-line programs to run using the OS shell. | ||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun | ||
|
||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines | ||
# and modify them (or add more) to build your code if your project | ||
# uses a compiled language | ||
|
||
#- run: | | ||
# make bootstrap | ||
# make release | ||
|
||
- name: Perform CodeQL Analysis | ||
uses: github/codeql-action/analyze@v2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
# General | ||
.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk | ||
|
||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
lerna-debug.log* | ||
.pnpm-debug.log* | ||
|
||
# Diagnostic reports (https://nodejs.org/api/report.html) | ||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
*.lcov | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# Snowpack dependency directory (https://snowpack.dev/) | ||
web_modules/ | ||
|
||
# TypeScript cache | ||
*.tsbuildinfo | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional stylelint cache | ||
.stylelintcache | ||
|
||
# Microbundle cache | ||
.rpt2_cache/ | ||
.rts2_cache_cjs/ | ||
.rts2_cache_es/ | ||
.rts2_cache_umd/ | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variable files | ||
.env | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
.env.local | ||
|
||
# Stores VSCode versions used for testing VSCode extensions | ||
.vscode-test | ||
|
||
# yarn v2 | ||
.yarn/cache | ||
.yarn/unplugged | ||
.yarn/build-state.yml | ||
.yarn/install-state.gz | ||
.pnp.* | ||
|
||
# 11ty Related | ||
_site | ||
public | ||
node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
layout: layouts/wide | ||
--- | ||
|
||
<div class="grid-row grid-gap"> | ||
<div class="usa-layout-docs-main_content desktop:grid-col-9 usa-prose"> | ||
<h1>>Page not found</strong></h1> | ||
<p>The requested page could not be found (404).</p> | ||
</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Welcome! | ||
|
||
We're so glad you're thinking about contributing to a [open source project of the U.S. government](https://code.gov/)! If you're unsure about anything, just ask -- or submit the issue or pull request anyway. The worst that can happen is you'll be politely asked to change something. We love all friendly contributions. | ||
|
||
We encourage you to read this project's CONTRIBUTING policy (you are here), its [LICENSE](LICENSE.md), and its [README](README.md). | ||
|
||
## Policies | ||
|
||
We want to ensure a welcoming environment for all of our projects. Our staff follow the [TTS Code of Conduct](https://18f.gsa.gov/code-of-conduct/) and all contributors should do the same. | ||
|
||
We adhere to the [18F Open Source Policy](https://github.com/18f/open-source-policy). If you have any questions, just [shoot us an email](mailto:[email protected]). | ||
|
||
As part of a U.S. government agency, the General Services Administration (GSA)’s Technology Transformation Services (TTS) takes seriously our responsibility to protect the public’s information, including financial and personal information, from unwarranted disclosure. For more information about security and vulnerability disclosure for our projects, please read our [18F Vulnerability Disclosure Policy](https://18f.gsa.gov/vulnerability-disclosure-policy/). | ||
|
||
## Public domain | ||
|
||
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). | ||
|
||
All contributions to this project will be released under the CC0 dedication. By submitting a pull request or issue, you are agreeing to comply with this waiver of copyright interest. |
Oops, something went wrong.