diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 20062064f..895e1075e 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -44,7 +44,7 @@ env: # ---------------------------------------------------------------------------- # Specify the deployment environment: staging or production HUGO_ENVIRONMENT: ${{ vars.HUGO_ENVIRONMENT || 'staging' }} - HUGO_VERSION: 0.144.2 + HUGO_VERSION: 0.155.3 jobs: # ---------------------------------------------------------------------------- @@ -72,8 +72,6 @@ jobs: with: lookup-only: true path: | - static/data/bibliography.json - static/data/bibItems content/en/history/bibliography key: bib-${{ fromJson(steps.zoteroVersion.outputs.headers).last-modified-version }} diff --git a/README.md b/README.md index fb23a47ac..255667131 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,108 @@ # Interlisp.org Home Page +[![GitHub Pages Deploy](https://github.com/Interlisp/Interlisp.github.io/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/Interlisp/Interlisp.github.io/actions/workflows/gh-pages.yml) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) +[![Hugo](https://img.shields.io/badge/Hugo-0.155.3-ff4088?logo=hugo)](https://gohugo.io/) +[![Docsy](https://img.shields.io/badge/Theme-Docsy-blue)](https://www.docsy.dev/) + The documentation repository for , the restoration project for the Interlisp ecosystem. The collection of pages provides information on the restoration effort, Medley, Interlisp and how to access and use the restored Medley system. -## Maintaining the website +## Table of Contents + +- [Getting Started](#getting-started) + - [Quick Start](#quick-start) + - [Prerequisites](#prerequisites) +- [Content Authoring](#content-authoring) + - [Editing Existing Pages](#editing-existing-pages) + - [Adding New Pages](#adding-new-pages) + - [Adding or Updating the Comments Page](#adding-or-updating-the-comments-page) + - [Bibliography Data](#bibliography-data) +- [Local Development](#local-development) + - [Installing Hugo](#installing-hugo) + - [Running the Development Server](#running-the-development-server) +- [CI/CD and Deployment](#cicd-and-deployment) + - [gh-pages GitHub Workflow](#gh-pages-github-workflow) + - [Environment Variables](#environment-variables) + - [Deploying a Staging Site](#deploying-a-staging-site) +- [Reference](#reference) + - [Repository Layout](#repository-layout) + - [Dependencies](#dependencies) + - [Search Configuration](#search-configuration) +- [Contact and Support](#contact-and-support) +- [License](#license) + +--- + +## Getting Started + +The website is built using the [Hugo](https://gohugo.io/) static site generator and the [Docsy](https://www.docsy.dev/) technical documentation theme. Both sites contain extensive documentation on setup and maintenance. + +### Quick Start + +For experienced users who want to get started quickly: + +```bash +# Clone the repository +git clone https://github.com/Interlisp/Interlisp.github.io.git +cd Interlisp.github.io + +# Fetch bibliography data (required for build) +./scripts/update_bibliography.sh + +# Start local development server +hugo server -e development +``` + +Then open in your browser. + +### Prerequisites + +Before working with this repository, ensure you have the following installed: + +| Tool | Version | Purpose | +|------|---------|--------| +| [Hugo Extended](https://gohugo.io/installation/) | v0.145.0+ | Static site generator | +| [Go](https://go.dev/doc/install) | 1.24+ | Required for Hugo modules | +| [Node.js & npm](https://nodejs.org/) | Latest LTS | PostCSS and autoprefixer | +| [jq](https://jqlang.github.io/jq/) | Latest | Bibliography JSON processing | +| curl, wget | System default | Script downloads | -The website is build using the [Hugo](https://gohugo.io/) static -site generator and the [Docsy](https://www.docsy.dev/) technical documentation -theme. Both of these sites contain a wealth of information on how to setup and -maintain a Hugo based website. +**Verify installations:** -The process can be summarized as follows: +```bash +hugo version # Should show "extended" and v0.145.0+ +go version # Should show 1.24+ +node --version # Should show v18+ or later +jq --version # Any recent version +``` + +--- + +## Content Authoring + +This section covers how to add and edit content on the Interlisp.org website. + +**General workflow:** 1. Clone the [Interlisp.github.io](https://github.com/Interlisp/Interlisp.github.io) repository -2. Edit or Add new pages -3. Validate the changes running Hugo locally -4. Add, Commit and Push the updates back to the Interlisp.github.io repository -5. Once the changes are merged into the `main` branch, `github actions` will rebuild and update the website +2. Edit or add new pages +3. Validate the changes by running Hugo locally +4. Add, commit and push the updates back to the repository +5. Once merged into `main`, GitHub Actions will rebuild and update the website ### Editing Existing Pages -Content is located in the `content/en` directory. At present, English is the only language -supported by the web site. If in the future, that changes, a new subdirectory can easily -be added to the `content` directory`. +Content is located in the `content/en` directory. At present, English is the only language supported. If that changes in the future, additional language subdirectories can be added to the `content` directory. -Existing pages are written using [Markdown](https://www.markdownguide.org/tools/hugo/) and -can easily be edited. Updates to pages can be submitted as a pull request and upon approval -will be merged in to the `main` branch to be deployed to the website. +Existing pages are written using [Markdown](https://www.markdownguide.org/tools/hugo/) and can easily be edited. Updates can be submitted as a pull request and, upon approval, will be merged into the `main` branch and deployed to the website. ### Adding New Pages -Each page must have a preamble section that provides metadata for the `Hugo` engine. The format -is as follows: +Each page must have a preamble section that provides metadata for the Hugo engine: ```markdown --- @@ -44,303 +112,334 @@ type: docs --- ``` -- Title: The displayed title for the page. -- Weight: Specifies the positioning of the page. Lower number pages are higher in the page order. `Hugo` allows for multiple pages to be assigned the same weight. -- Type: Identifies the type of the page. Currently all pages are of type `docs` +| Field | Description | +|-------|-------------| +| `title` | The displayed title for the page | +| `weight` | Positioning of the page (lower numbers appear first). Multiple pages can share the same weight. | +| `type` | Page type. Currently all pages are of type `docs` | + +The content follows the preamble and is written using [Markdown](https://www.markdownguide.org/tools/hugo/). -The content to display on the page follows the preamble. Content is written using [Markdown](https://www.markdownguide.org/tools/hugo/). +### Adding or Updating the Comments Page -Once authored the updated page can be submitted as a pull request and upon approval will be integrated -into the `main` branch and deployed to the website. +The *comments* page ("What people are saying") collects quotes and screenshots that discuss Medley Interlisp. We preserve Twitter and Mastodon posts as images along with links to the post to protect against content being deleted from social platforms. -#### Adding or Updating the comments page +To add a new entry to the comments page (`content/en/project/comments/_index.md`): -We've moved from 'Twitter' to a more general 'What people are saying' with quotes from social media. +```markdown +{{< imgproc AuthorName_YYYYMMDD Resize "550x803">}} Link to post {{< /imgproc >}} +``` -For Twitter, the *comments* page uses images of Tweets of interest. While `Hugo` has implemented a shortcode that will load the actual tweet, it -fails when the tweet no longer exists. We believe there is value in keeping a record of conversations about Medley Interlisp and -to protect against losing portions of it, we have developed the practice of capturing an image of the tweet, using that on our page -and linking to the actual tweet. +- Use the `imgproc` shortcode to render and size the image +- Name images with the author and date (e.g., `PaulFord_20211214.jpg`) +- Store image files in the same directory as `_index.md` +- Posts that are no longer accessible will have their links removed but the content will be preserved -Tweets that are no longer accessible will have their links removed but the content will be preserved. +### Bibliography Data -The structure for new twitter entries on the *comments* page, the `_index.md` file in the `comments` directory is +The website maintains an extensive bibliography. The information displayed on the webpage is a snapshot of the data stored in our online [Zotero Group Library](https://www.zotero.org/groups/2914042/interlisp). The Zotero library is our source of truth. -```markdown -{{< imgproc PaulFord_20211214 Resize "550x803">}} Link to tweet {{< /imgproc >}} +A GitHub Action runs daily to check if the Zotero library has changed. If so, a [script](https://github.com/Interlisp/Interlisp.github.io/blob/main/scripts/update_bibliography.sh) downloads and rebuilds the bibliography pages. + +To fetch the bibliography locally: + +```bash +cd scripts +./update_bibliography.sh +``` + +This script retrieves the bibliography from Zotero, formats it appropriately, and places the individual JSON files in `static/data/bibItems/`. + +--- + +## Local Development + +Local testing of updates requires running Hugo locally. + +### Installing Hugo + +Instructions for installing Hugo on various operating systems are at: [Installing Hugo](https://gohugo.io/getting-started/installing). **Interlisp uses the extended version of Hugo.** + +For Ubuntu: + +```bash +curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ + | grep browser_download_url \ + | grep linux-amd64.deb \ + | grep extended \ + | cut -d '"' -f 4 \ + | wget -i - + +sudo dpkg -i hugo_extended*linux-amd64.deb +``` + +Verify installation: + +```bash +hugo version +# Expected output (version should be v0.145.0 or later): +hugo v0.155.2-d8c0dfccf72ab43db2b2bca1483a61c8660021d9+extended+withdeploy linux/amd64 BuildDate=2026-02-02T10:04:51Z VendorInfo=gohugoio +``` + +### Running the Development Server + +1. Ensure bibliography data is available (see [Bibliography Data](#bibliography-data)) + +2. Start the Hugo development server: + +```bash + hugo server --cleanDestinationDir --disableFastRender --renderToMemory +``` + +Hugo will automatically download the Docsy theme and its dependencies as Hugo modules. Expected output: + +```bash +Watching for changes in /home/wstumbo/development/Interlisp.github.io/archetypes, /home/wstumbo/development/Interlisp.github.io/assets/{css,icons,js,scss}, /home/wstumbo/development/Interlisp.github.io/content/en/{history,project,software}, /home/wstumbo/development/Interlisp.github.io/layouts/{_default,_partials,_shortcodes,bibliography,redirect}, /home/wstumbo/development/Interlisp.github.io/package.json, /home/wstumbo/development/Interlisp.github.io/static/{Resources,data,docs,documentation,favicons} +Watching for config changes in /home/wstumbo/development/Interlisp.github.io/config/_default, /home/wstumbo/development/Interlisp.github.io/config/development, /home/wstumbo/development/Interlisp.github.io/go.mod +Start building sites … +hugo v0.155.2-d8c0dfccf72ab43db2b2bca1483a61c8660021d9+extended+withdeploy linux/amd64 BuildDate=2026-02-02T10:04:51Z VendorInfo=gohugoio + +WARN WARNING: 298 sidebar entries have been truncated. To avoid this, increase `params.ui.sidebar_menu_truncate` to at least 398 (from 100) in your config file. Section: /history/bibliography + + │ EN +──────────────────┼────── + Pages │ 1165 + Paginator pages │ 0 + Non-page files │ 66 + Static files │ 79 + Processed images │ 50 + Aliases │ 51 + Cleaned │ 0 + +Built in 1169 ms +Environment: "development" +Serving pages from memory +Web Server is available at //localhost:1313/ (bind address 127.0.0.1) +Press Ctrl+C to stop ``` -We use the `imgproc` shortcode to render the image and size it. The label for the image is a bit of html to link to the original tweet. Lastly, the images -are titled with the author and the date of the tweet. Ideally this will allow for easy identification of `jpeg` files. The files are stored in the same -directory as the `_index.md` file, so everything needed for the page is packaged together. +3. Open to review the locally running website -### Bibliography.json +4. For additional debugging information, use `--logLevel debug` -The web page maintains an extensive bibliography. The information displayed on -the webpage is a snapshot of the data stored in our online [Zotero Group Library](https://www.zotero.org/groups/2914042/interlisp). +Once validated, create a pull request to merge your changes into the `main` branch. -The webpage data is updated daily to help ensure it is an accurate -reflection of the bibliographic material related to Medley and Interlisp. +--- + +## CI/CD and Deployment + +This section covers automated builds and deployment processes. ### gh-pages GitHub Workflow -Building the website is driven by a GitHub workflow. - -The workflow is triggered by one of two events, a `push` to main, representing updates -to the Interlisp.org website or a scheduled execution of the workflow. The -workflow is scheduled to run on a regular basis to ensure the bibliography remains -consistent with the online Zotero catalog. - -The GitHub Action workflow can also be initiated from the Action panel within -the Interlisp.github.io repository. This option allows manual execution when -necessary. - -The workflow consists of three jobs. The first job, `check`, uses Zotero's REST -interface to query for the latest version of the group bibliography. A `GET` call -is made to `https://api.zotero.org/groups/2914042/items`. It -returns a collection of metadata and information describing the current state of -items within the catalog. We are interested in a specific header, `Last-Modified-Version`. -The value returned with this header is incremented every time the Zotero Interlisp -catalog is updated. We use the value returned as a cache-key for the bibliography. -If the cache-key matches one in the current GitHub Action cache we use the saved -bibliography information and save the overhead of building it. - -The second job, `build`, starts by determining if a build and deploy need to occur. -If the workflow was initiated by a `push` a deploy will always be done. However, -if the workflow was started by a scheduled execution and the Zotero bibliography -cache is consistent with the online Zotero catalog, the build and deploy are skipped. - -A build starts by checking out the `Interlisp.github.io` repository. Then, -if the Zotereo cache is valid, its contents are copied into the `data` file within the -repository directory structure. If the cache is invalid, the `update_bibliography.sh` -shell script runs and downloads a new copy of the bibliography as a `json` file. -Once downloaded the script does some additional processing to complete the -formatting of the file. - -After this work is completed, Hugo is setup and run to build the website. We use -Hugo extended to build our site. The version of Hugo currently being used is -defined by the environment variable, `HUGO_VERSION`. - -We run Hugo with two flags: - -- `-e $HUGO_ENVIRONMENT` to specify whether we are building a production or staging site. If the website is being build to deploy to Interlisp.org,it should be built with `HUGO_ENVIRONMENT` set to production. Deployment to any other site should set the environment flag to staging. -- `--cleanDestinationDir` clears the destination directory, `./public` on each build. This will ensure we do not have any unneeded artifacts in our deployment. - -The last part of the build activity is to save the created artifact, the information -in the `./public` directory. We use the GitHub composition action `upload-pages-artifact` -for this. It packages the contents of the directory and stores it in the appropriate -format for deployment to GitHub pages. - -The last job in the tool chain is `deploy`. This job simply takes the output -of the build step and formally deploys it to GitHub pages using the GitHub `deploy-pages` -action. +Building the website is driven by a GitHub workflow (`.github/workflows/gh-pages.yml`). -### Deploying a Staging Site +**Triggers:** + +- `push` to main — updates to the Interlisp.org website +- Scheduled execution — ensures the bibliography remains consistent with Zotero +- Manual execution — via the Actions panel in GitHub + +**Workflow Jobs:** + +The workflow consists of three jobs: + +**1. `check` — Verify Bibliography is Current** + +Uses Zotero's REST interface to query for the latest version of the group bibliography. A `GET` call is made to: + +``` +https://api.zotero.org/groups/2914042/items +``` -Successfully deploying a Staging Site requires you to configure your GitHub -repository to enable GitHub Pages. The following steps will accomplish this task: +This returns metadata including the `Last-Modified-Version` header, which is incremented every time the Zotero Interlisp catalog is updated. This value is used as a cache key for the bibliography. If the cache key matches one in the current GitHub Action cache, we reuse the saved bibliography and skip rebuilding. -1. Clone the Interlisp.github.io repository into your GitHub site -2. In GitHub go to the cloned repository, in my case https://github.com/stumbo/InterlispDraft.github.io and select Settings -3. Under Settings, find Pages and select it -4. Under **Build and deployment** set Source to Deploy *GitHub Actions* +**2. `build` — Build the Website** -Once the repository is cloned and GitHub Pages has been setup, you can deploy a -staging site to validate changes prior to creating a Pull Request to merge your -changes back into the main site. +- Determines if a build is needed: + - On `push`: Always builds and deploys + - On schedule: Skips build if Zotero cache is current +- Checks out the repository +- If the Zotero cache is valid, copies its contents into the `content/en/history/bibliography` directory +- If the cache is invalid, runs `update_bibliography.sh` to download and process a new copy +- Runs Hugo Extended (version defined by `HUGO_VERSION` environment variable) with flags: + - `-e $HUGO_ENVIRONMENT` — specifies production or staging build + - `--cleanDestinationDir` — clears `./public` directory to avoid stale artifacts +- Uses the GitHub `upload-pages-artifact` action to package and store the `./public` directory contents for deployment -When creating a staging site we want to do a couple things to ensure we do not -interfere with the production site, first we want to disable Google Analytics -and secondly we want to ensure the site is not crawled and indexed. +**3. `deploy` — Deploy to GitHub Pages** -#### Setup Your Repository +Takes the output of the build step and deploys it to GitHub Pages using the GitHub `deploy-pages` action. -A best practice for the updating your clone of the repository is to create a branch -and make the following required changes on the branch you created. +### Environment Variables -The appropriate settings for this are all enabled by setting the `HUGO_ENVIRONMENT` -variable in `.github/workflows/gh-pages.yaml` to *staging*. +The following environment variables control the build and deployment process: -You also need to set `baseURL` to match the GitHub site you are deploying to -in the `config/staging/hugo.yaml` file. The file currently looks like: +| Variable | Description | Values | Default | +|----------|-------------|--------|---------| +| `HUGO_ENVIRONMENT` | Specifies the build environment | `development`, `staging`, `production` | `staging` | +| `HUGO_VERSION` | Hugo version used in CI/CD | Semantic version (e.g., `0.155.3`) | Set in workflow | + +**Environment-specific behavior:** + +| Environment | Analytics | Crawlers | Use Case | +|-------------|-----------|----------|----------| +| `production` | Enabled | Allowed | Live interlisp.org site | +| `staging` | Disabled | Blocked | PR previews and testing | +| `development` | Disabled | N/A | Local development | + +These variables are set in `.github/workflows/gh-pages.yml` and can be overridden via GitHub repository variables. + +### Deploying a Staging Site + +To deploy a personal staging site for testing: + +**1. Initial Setup:** + +1. Fork/clone the Interlisp.github.io repository to your GitHub account +2. In your repository, go to **Settings → Pages** +3. Under **Build and deployment**, set Source to **Deploy from GitHub Actions** + +**2. Configure Your Fork:** + +Create a branch and make these required changes: + +1. Update `baseURL` in `config/staging/hugo.yaml` to match your repository: ```yaml -baseURL: https://stumbo.github.io/InterlispDraft.github.io/ +baseURL: https://YOUR_USERNAME.github.io/YOUR_REPO_NAME/ languageCode: en-us - -# title -# Insert Staging Environment onto every page to make clear -# this is not the production site title: 'Staging Environment' ``` -Make sure the `baseURL` reflects the complete path of your repository. Failure -to do this will either cause the deployment to fail or URLs within your built -site may be incorrectly set. Resulting in 404s or expected resources not found. +> **Important:** The `baseURL` must reflect the complete path of your repository. Incorrect URLs will cause deployment failures or broken links. -With these changes the cloned repository is ready to be deployed to a staging site. +**3. Deploy:** -Commit the changes you made and push the new branch to your cloned repository. -At this point, create a Pull Request to merge the changes you made into your -repository's main branch. Complete the operation by merging the pull request. +1. Commit and push your branch +2. Create a Pull Request to merge into your repository's main branch +3. Merge the PR — GitHub Actions will build and deploy your staging site -Once the merge occurs, the GitHub Actions should fire off and your site will be -built and deployed. +**4. Develop Features:** -Once you have successfully completed this operation and your staging site is -deployed and operational you can experiment with adding new content or -functionality to the Interlisp site. +Create feature branches for new work. Once tested on your staging site, create a PR to merge content into the main Interlisp repository. -#### Develop a Feature +--- -To develop new pages or functionality, create a new branch for your work. once -you have completed development and testing on your staging site, you can create -a PR to merge the content into the Interlisp site. +## Reference -### Running Hugo and Docsy Locally +### Repository Layout -Local testing of updates to the Interlisp.org website requires running `Hugo` locally. +The repository follows the standard [Hugo directory structure](https://gohugo.io/getting-started/directory-structure/): -To do this `Hugo` needs to be installed. Instructions for installing `Hugo` on a variety of operating systems can be -found at: [Installing Hugo](https://gohugo.io/getting-started/installing). Interlisp uses the extended version of Hugo. +| Directory | Purpose | +|-----------|---------| +| `.github/workflows` | GitHub Actions workflow (`gh-pages.yml`) | +| `assets/` | Custom global resources (CSS, JS, icons, SCSS) | +| `config/` | Site configuration for different environments | +| `content/en/` | All website content (English only) | +| `layouts/` | Hugo layout templates and overrides | +| `static/` | Files copied directly to the built site | -For Ubuntu the following command works: +**Key subdirectories:** -```bash -curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ - | grep browser_download_url \ - | grep linux-amd64.deb \ - | grep extended \ - | cut -d '"' -f 4 \ - | wget -i - +
+assets/ — Custom resources - sudo dpkg -i hugo_extended*linux-amd64.deb -``` +- `css/` — Third-party CSS files +- `icons/` — SVG Interlisp-D logo (`logo.svg`) +- `js/` — Custom and third-party JavaScript +- `scss/` — Custom SCSS files + - `_styles_project.scss` — Project-specific styles + - `_variables_project.scss` — Docsy theme variable overrides -The command can be adjusted for different architectures. +
-You can verify that `Hugo` is installed and working by running the following command: +
+config/ — Environment configurations -```bash -hugo version -``` +- `_default/` — Shared settings across all environments +- `development/` — Local development settings +- `staging/` — Staging site settings +- `production/` — Production site settings -The response will be something along the lines of: +
-```bash -hugo v0.126.1-3d40aba512931031921463dafc172c0d124437b8+extended linux/amd64 BuildDate=2024-05-15T10:42:34Z VendorInfo=gohugoio -``` +
+layouts/ — Template overrides -Be sure your version is at least `v0.122.0`. Older versions of `hugo` may fail to load correctly. +- `_partials/` — Partial templates (favicons, footer, head, meta descriptions) +- `_shortcodes/` — Hugo shortcodes (cover block, image gallery) +- `bibliography/` — Bibliography section templates +- `redirect/` — Redirect page template -Secondly, there is one data file that is required to successfully build and run the `Interlisp.org` website locally, `static/data/bibliography.json`. -The production version of the website uses a GitHub Action to retrieve this file. -We can mimic that functionality by going to the `scripts` directory in your clone of the `Intelisp.github.io` repository. -Once in the directory, run the following command: +
-```bash -./update_bibliography.sh -``` +
+static/ — Static files -This script will retrieve the bibliography from our Zotero library, format it appropriately and place the created file -in the appropriate location, the `static/data` directory. +- `data/bibItems/` — Bibliography JSON files (generated, not in Git) +- `documentation/` — PDF files referenced in the website +- `favicons/` — Favicon files (SVG, ICO, PNG) +- `Resources/` — Site resources including watermark logo +- `CNAME` — Custom domain configuration -This completes all the setup required for `Hugo`. +
-To run `Hugo` go to the root directory of your repository clone and run the following command: +### Dependencies -```bash -hugo server --logLevel debug -v --renderToMemory -e development -``` +**Hugo Modules (go.mod):** -`Hugo` will start and automatically download the Docsy theme and its dependencies as hugo modules. You should see output along the lines of: +| Module | Version | Purpose | +|--------|---------|---------| +| [google/docsy](https://github.com/google/docsy) | v0.14.3 | Technical documentation theme | +| docsy/dependencies | v0.7.2 | Docsy's required dependencies | -```bash -Watching for changes in /home/wstumbo/development/stumbo.github.io/{archetypes,content,layouts,package.json,static} -Watching for config changes in /home/wstumbo/development/stumbo.github.io/config/_default, /home/wstumbo/development/stumbo.github.io/config/development, /home/wstumbo/development/stumbo.github.io/go.mod -Start building sites … -hugo v0.126.1-3d40aba512931031921463dafc172c0d124437b8+extended linux/amd64 BuildDate=2024-05-15T10:42:34Z VendorInfo=gohugoio - - - | EN --------------------+----- - Pages | 52 - Paginator pages | 0 - Non-page files | 46 - Static files | 97 - Processed images | 47 - Aliases | 66 - Cleaned | 0 - -Built in 3230 ms -Environment: "development" -Serving pages from memory -Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender -Web Server is available at //localhost:1313/ (bind address 127.0.0.1) -Press Ctrl+C to stop -``` +Hugo modules are automatically downloaded when you run `hugo server` or `hugo build`. + +**npm Packages (package.json):** + +| Package | Purpose | +|---------|---------| +| autoprefixer | Adds vendor prefixes to CSS for browser compatibility | +| hugo-extended | Hugo binary for npm-based workflows | +| postcss / postcss-cli | CSS transformation pipeline | +| jquery | JavaScript library used by some Docsy components | +| tabpanel | Accessible tab panel widget | + +Install npm dependencies with `npm install` (optional for local development). + +### Search Configuration -`Hugo` is now running. You can go to [http://localhost:1313](http://localhost:1313) to review the locally running version of the website. -For most changes you should be able to review the text and layout to validate the effects are as expected. - -You can get additional debugging information by adding the following two options -to your `hugo` command `--logLevel debug -v`. - -Once you have validated your changes, create a pull request to merge your changes into the `main` branch. - -## Layout of the `Interlisp.github.io` repository - -The layout of the `Interlisp.github.io` repository follows the standard [`Hugo` directory structure](https://gohugo.io/getting-started/directory-structure/). Directories -that have components specific to `Interlisp.github.io` are as follows: - -- `.github\workflows` - home to the github actions `gh-pages.yml` that specifies how to build and release the Interlisp home page -- `assets` - customization of the `Docsy` theme for Interlisp. - - `icons` - holds and `svg` version of `Interlisp-D' logo. This logo is used in the page header - - `scss` - contains some custom `scss` - - `_styles_project.scss` sets the size of the `svg` file in the header and disables the edit page functionality - - `main.scss` - links in the `scss` updates -- `config` - contains all the site specific configuration information - - `_default` - configuration information shared across different supported environments [development, staging, production] - - `development` - configuration information specific to the development environment - - `production` - configuration information specific to the production environment - - `staging` - configuration information specific to the staging environment -- `content\en` - home of all the content for the web page. We currently only support the English language. `Hugo` supports multiple languages and we have not disabled that feature. However there are no plans at present to transcribe the web pages and documentation into another language. -- `layout` - - `shortcodes` - a simple snippet inside a content file that Hugo will render using a predefined template - - `bibTable.html` - a shortcode used to format the [bibliography table](https://interlisp.org/bibliography/) -- `static` - the data in this folder is copied directly into the folder structure of the home page - - `css` - custom css files - - `data` - holds `bibliography.json` used to create the [bibliography table](https://interlisp.org/bibliography/) - - `documentation` - contains the pdf files referenced in the document section of the home page - - `favicons` - contains `favicon.png` a small icon that browsers can use when referencing the website - - `Resources` - contains the current `Interlisp-D` logo, used on the home page, and another instance of `favicon.png` - - `CNAME` - a one line text file that provides support for using a [custom domain](https://gohugo.io/hosting-and-deployment/hosting-on-github/#use-a-custom-domain) - -## Search - -`Interlisp.org` uses Google Custom Search to provide search results encompassing -the `Interlisp.org` website, our GitHub sites used for continued development of -Medley Interlisp, and the discussions groups associated with both the Medley project and -Interlisp. - -The search engine is identified in the `config/params.yaml` file: +The site uses Google Custom Search to provide search results encompassing: +- The Interlisp.org website +- Interlisp GitHub repositories +- Discussion groups for Medley and Interlisp + +The search engine is configured in `config/params.yaml`: ```yaml -# Google custom seach engine configuration -# gcs_engine_id: search engine gcs_engine_id: 33ef4cbe0703b4f3ax ``` -Search results are returned and presented using the page template, `search.md`. -The page template currently contains only a `yaml` header specifying the -layout as being `search`. +Search results are rendered using the `search.html` layout template. + +**Updating Search:** + +Modifying search scope requires updating the Google Custom Search engine settings via the [Programmable Search Engine Dashboard](https://programmablesearchengine.google.com). Access is restricted. To suggest changes, open an issue: [Search Engine Issue](https://github.com/interlisp/medley/issues/new?template=bug_report.md&title=Search_Engine_Issue) + +--- + +## Contact and Support + +- **Report Issues**: [GitHub Issues](https://github.com/Interlisp/medley/issues/new?template=documentation.md&projects=Interlisp/medley/5) — Report bugs or request features for the website +- **Medley Interlisp Issues**: [Medley Repository](https://github.com/Interlisp/medley/issues) — For issues related to Medley itself +- **Discussions**: [Interlisp Discussions](https://github.com/orgs/Interlisp/discussions) — Community discussions and questions +- **Mailing List**: [interlisp@googlegroups.com](https://groups.google.com/g/interlisp) — General Interlisp community discussion -### Updating Search +## License -Modifying the websites that are searched requires updating the Google Custom -Search engine settings. This is done via logging into Google's Programmable Search -Engine Dashboard at: [https://programmablesearchengine.google.com](https://programmablesearchengine.google.com) +This project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details. -Access to the Programmable Search Engine Dashboard is restricted. To suggest updates or changes -open an issue: [Search Engine Issue](https://github.com/interlisp/medley/issues/new?template=bug_report.md&title=Search_Engine_Issue) +Copyright (c) 2026 Interlisp.org diff --git a/static/css/prism.css b/assets/css/prism.css similarity index 100% rename from static/css/prism.css rename to assets/css/prism.css diff --git a/static/icons/logo.svg b/assets/icons/logo.svg similarity index 100% rename from static/icons/logo.svg rename to assets/icons/logo.svg diff --git a/static/js/prism.js b/assets/js/prism.js similarity index 100% rename from static/js/prism.js rename to assets/js/prism.js diff --git a/assets/js/search-text-fragment.js b/assets/js/search-text-fragment.js new file mode 100644 index 000000000..12c8bf3f9 --- /dev/null +++ b/assets/js/search-text-fragment.js @@ -0,0 +1,81 @@ +/** + * Text Fragment Enhancement for Google Programmable Search Engine + * + * This script intercepts clicks on GCSE search result links and adds + * text fragment highlighting (#:~:text=...) to navigate users directly + * to the relevant content on the target page. + * + * Text fragments are supported in Chrome 80+, Edge 80+, and other + * Chromium-based browsers. Firefox and Safari have limited support. + */ + +(function() { + 'use strict'; + + // Get the search query from the URL + function getSearchQuery() { + const params = new URLSearchParams(window.location.search); + return params.get('q') || ''; + } + + // Create a text fragment from search terms + function createTextFragment(query) { + if (!query) return ''; + + // Clean and encode the query for use in text fragment + // Use the first few significant words (avoid very long fragments) + const words = query.trim().split(/\s+/).slice(0, 5); + const fragment = words.join(' '); + + return '#:~:text=' + encodeURIComponent(fragment); + } + + // Check if browser supports text fragments + function supportsTextFragments() { + return 'fragmentDirective' in document || + // Chrome/Edge support detection + (navigator.userAgent.includes('Chrome') || navigator.userAgent.includes('Edg')); + } + + // Intercept clicks on GCSE result links + function setupLinkInterception() { + const query = getSearchQuery(); + if (!query || !supportsTextFragments()) return; + + const textFragment = createTextFragment(query); + + // Use event delegation since GCSE results are loaded dynamically + document.addEventListener('click', function(event) { + // Find if click was on a GCSE result link + const link = event.target.closest('.gs-title a, a.gs-title'); + if (!link) return; + + const href = link.getAttribute('href'); + if (!href) return; + + // Only modify links to our own site + const currentHost = window.location.hostname; + try { + const linkUrl = new URL(href, window.location.origin); + if (linkUrl.hostname !== currentHost) return; + + // Don't add fragment if one already exists + if (linkUrl.hash && !linkUrl.hash.startsWith('#:~:text=')) return; + + // Modify the link to include text fragment + event.preventDefault(); + const newUrl = href.split('#')[0] + textFragment; + window.location.href = newUrl; + } catch (e) { + // Invalid URL, let it proceed normally + } + }, true); + } + + // Initialize when DOM is ready + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', setupLinkInterception); + } else { + setupLinkInterception(); + } +})(); diff --git a/static/js/vendor/dompurify/purify.min.js b/assets/js/vendor/dompurify/purify.min.js similarity index 100% rename from static/js/vendor/dompurify/purify.min.js rename to assets/js/vendor/dompurify/purify.min.js diff --git a/static/js/vendor/prettier/plugins/html.js b/assets/js/vendor/prettier/plugins/html.js similarity index 100% rename from static/js/vendor/prettier/plugins/html.js rename to assets/js/vendor/prettier/plugins/html.js diff --git a/static/js/vendor/prettier/standalone.js b/assets/js/vendor/prettier/standalone.js similarity index 100% rename from static/js/vendor/prettier/standalone.js rename to assets/js/vendor/prettier/standalone.js diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index ae5ffc2e1..d7ee441c2 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -5,3 +5,78 @@ .td-page-meta { display: none; } + +// Hide site title in navbar on home page only +.td-home .td-navbar .navbar-brand__name { + display: none; +} + +// Image gallery shortcode styles +.image-gallery { + overflow: auto; + margin-left: -1% !important; + + li { + float: left; + display: block; + margin: 0 0 1% 1%; + width: 19%; + + a { + text-align: center; + text-decoration: none !important; + color: #777; + + span { + display: block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + padding: 3px 0; + } + + img { + width: 100%; + display: block; + } + } + } +} + +// Custom styles used by home page +.hero-content-column { + background-position: -2px 0; + background-repeat: no-repeat; + background-size: 26em 28em; + + .text-center { + h1, p { + text-shadow: 2px 3px 0 #333; + } + + .display-1, + .display-3 { + font-weight: 700; + } + } + + .top-summary { + background: rgba(0, 0, 0, 0.3); + padding: 7px; + border-radius: 11px; + } +} + +// Keep search visible on mobile, wrap to second row +@media (max-width: 991.98px) { + .td-navbar-container { + flex-wrap: wrap; + } + // Override Bootstrap d-none with higher specificity + nav.td-navbar .td-navbar__search.d-none.d-lg-block { + display: block !important; + width: 100%; + order: 99; + padding: 0.5rem 0; + } +} diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss index 9e0e4eb79..3f773776a 100644 --- a/assets/scss/_variables_project.scss +++ b/assets/scss/_variables_project.scss @@ -1,3 +1,9 @@ -//$primary: #390040; -#$primary: #c80000; -$secondary: #A23B72; +$primary: #30638e; // rgb(48, 99, 142) +$secondary: #f08073; + +$td-enable-google-fonts: true; + +// Set the navbar background color to match the primary color +$td-navbar-bg-color: #30638e; + +// $enable-dark-mode: false; diff --git a/config/_default/hugo.yaml b/config/_default/hugo.yaml index 7db922ece..c36849e5a 100644 --- a/config/_default/hugo.yaml +++ b/config/_default/hugo.yaml @@ -26,7 +26,7 @@ canonifyURLs: false enableRobotsTXT: false # assetDir: Location where Hugo looks for assets -assetDir: static +#assetDir: static # Enable .GitInfo object for each page. This will give values to .Lastmod etc. enableGitInfo: true diff --git a/config/_default/module.yaml b/config/_default/module.yaml index d6c27e0b3..fc98f3889 100644 --- a/config/_default/module.yaml +++ b/config/_default/module.yaml @@ -3,7 +3,7 @@ # replacements = "github.com/google/docsy -> ../../docsy" hugoVersion: extended: true - min: "0.73.0" + min: "0.155.2" imports: - path: "github.com/google/docsy" disable: false diff --git a/config/_default/params.yaml b/config/_default/params.yaml index f6cc05f26..0ccd9e4da 100644 --- a/config/_default/params.yaml +++ b/config/_default/params.yaml @@ -41,17 +41,17 @@ copyright: from_year: 2024 license: MIT -# github information +# github information - disabled, only needed if feedback is enabled. # github_repo: url to repo of web site # github_branch: main branch of repo # github_subdir: unused by Interlisp.org # github_project_repo: added by Interlisp.org points to repo used # for issue reporting # -github_repo: https://github.com/interlisp/Interlisp.github.io -github_branch: main -github_subdir: -github_project_repo: https://github.com/interlisp/medley +#github_repo: https://github.com/interlisp/Interlisp.github.io +#github_branch: main +#github_subdir: +#github_project_repo: https://github.com/interlisp/medley # Google custom search engine configuration # gcs_engine_id: search engine @@ -136,24 +136,11 @@ taxonomy: # User Interface Configuration options # -# feedback: -# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses -# are sent to Google Analytics as events. This feature depends -# on [services.googleAnalytics] and will be disabled if -# "services.googleAnalytics.id" is not set. -# -# If you want this feature, but occasionally need to remove the -# "Feedback" section from a single page, -# add "hide_feedback: true" to the page's front matter. -# enable: boolean Turn feedback -# yes: text to display with yes is selected -# no: text to display when no is selected - ui: + # Adds a H2 section titled "Feedback" to the bottom of each doc. The responses + # are sent to Google Analytics as events. feedback: - enable: true - 'yes': 'Glad to hear it! Please tell us how we can improve.' - 'no': 'Sorry to hear that. Please tell us how we can improve.' + enable: false # Adds a reading time to the top of each doc. # If you want this feature, but occasionally need to remove the Reading time from a single page, @@ -187,7 +174,8 @@ ui: ul_show: 3 -# Identify the custom css files -custom_css: - - "css/custom.css" + # Set the navbar to dark mode, This keeps the fonts white, which works better with the blue background. + navbar_theme: dark + # Set to false to disable dark mode menu + showLightDarkModeMenu: false diff --git a/content/en/_index.html b/content/en/_index.html deleted file mode 100644 index 87d260715..000000000 --- a/content/en/_index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Medley Interlisp Project -aliases: - - /hugo ---- - -{{< blocks/cover title="The Medley Interlisp Project" subtitle="a retrofuturistic software system" image_anchor="smart" color="primary" height="min">}} -
- What did we leave behind on the path to developing today's computer systems? Could there be lessons for the future of computing hidden in the past? Enter the Medley software environment to explore these questions. -
-
- {{< blocks/link-down color="white" >}} -
-{{< /blocks/cover >}} - -{{< blocks/section color="white" >}} - -
-

The Interlisp Revival

-
- -
-

Welcome to the start of a new chapter in software preservation and computing. We're a group of researchers, software developers, and friends working to make the Medley Interlisp system available for use on modern computer systems.

- -

The Medley system was created at Xerox's Palo Alto Research Center (PARC). PARC was the cradle of the modern graphical user interface and its design thinking continued with the development of Medley Interlisp, an extensible graphical operating system with nearly limitless possibilities for customization. Whatever the task, using Medley you can design a custom workflow to help accomplish it.

- -

Interlisp had its beginnings as a DARPA sponsored Lisp environment for researchers. Interlisp was then ported and expanded into Interlisp-D, first released by Xerox and distributed commercially until its development tapered off in the 1990s. Now this classic software system is running again on your favorite operating system. The project is more than a trip down memory lane: our mission is to expand the scope of what Medley can do, fulfilling its promise of software tools limited only by the user's imagination. Dive in and explore the language, the tools, and the myriad applications, experiments, and playful creations that were crafted in and for Interlisp.

- -

The 2025 Medley Interlisp Annual Report describes our recent activities.

- -

We encourage you to read the Medley primer and try out the Interlisp environment. The primer, designed for modern users, assumes no prior knowledge of Lisp and will ease you into the system.

- -

Feeling confused by the jargon? Don't worry, we've got you covered. Check out our glossary to learn the terms associated with our project.

- -

Most software in this project is licensed under the terms of the MIT license.

- -
- -{{< /blocks/section >}} - -{{< blocks/section color="primary" type="row" >}} - -{{% blocks/feature icon="fas fa-feather" title="History of Interlisp" %}} -

- The history of Interlisp and Medley development, and applications written in - and for it. -

- - - -{{% /blocks/feature %}} - -{{% blocks/feature icon="fas fa-globe-asia" title="The Project" %}} -

- Who we are, what we've done, our plans for the future, ways you can - get involved. -

- - -{{% /blocks/feature %}} - -{{% blocks/feature icon="fas fa-medal" title="Try Medley" %}} -

- How to run Medley "in the cloud" (on our servers), install - it on popular platforms or build it for new ones. -

- - -{{% /blocks/feature %}} - - {{< /blocks/section >}} diff --git a/content/en/_index.md b/content/en/_index.md new file mode 100644 index 000000000..a929f9b20 --- /dev/null +++ b/content/en/_index.md @@ -0,0 +1,76 @@ +--- +title: Medley Interlisp Project +aliases: + - /hugo +--- + +{{% blocks/cover title="The Medley Interlisp Project" subtitle="a retrofuturistic software system" image_anchor="smart" color="primary" height="min" %}} +
+ What did we leave behind on the path to developing today's computer systems? Could there be lessons for the future of computing hidden in the past? Enter the Medley software environment to explore these questions. +
+
+ {{% blocks/link-down color="white" %}} +
+{{% /blocks/cover %}} + +{{% blocks/section color="white" %}} + +# The Interlisp Revival + +The Medley system was created at Xerox's Palo Alto Research Center (PARC). PARC was the cradle of the modern graphical user interface and its design thinking continued with the development of Medley Interlisp, an extensible graphical operating system with nearly limitless possibilities for customization. Whatever the task, using Medley you can design a custom workflow to help accomplish it. + +Interlisp had its beginnings as a DARPA sponsored Lisp environment for researchers. Interlisp was then ported and expanded into Interlisp-D, first released by Xerox and distributed commercially until its development tapered off in the 1990s. Now this classic software system is running again on your favorite operating system. The project is more than a trip down memory lane: our mission is to expand the scope of what Medley can do, fulfilling its promise of software tools limited only by the user's imagination. Dive in and explore the language, the tools, and the myriad applications, experiments, and playful creations that were crafted in and for Interlisp. + +The [2025 Medley Interlisp Annual Report](project/status/2025medleyannualreport/) describes our recent activities. + +We encourage you to read the [Medley primer](https://primer.interlisp.org) and try out the Interlisp environment. The primer, designed for modern users, assumes no prior knowledge of Lisp and will ease you into the system. + +Feeling confused by the jargon? Don't worry, we've got you covered. [Check out our glossary](history/glossary/) to learn the terms associated with our project. + +Most software in this project is licensed under the terms of the [MIT license](https://github.com/Interlisp/medley/blob/master/LICENSE). + + +{{% /blocks/section %}} + +{{% blocks/section color="primary" type="row" %}} + +{{% blocks/feature icon="fas fa-feather" title="History of Interlisp" %}} +

+ The history of Interlisp and Medley development, and applications written in + and for it. +

+ + + +{{% /blocks/feature %}} + +{{% blocks/feature icon="fas fa-globe-asia" title="The Project" %}} +

+ Who we are, what we've done, our plans for the future, ways you can + get involved. +

+ + +{{% /blocks/feature %}} + +{{% blocks/feature icon="fas fa-medal" title="Try Medley" %}} +How to run Medley "in the cloud" (on our servers), install +it on popular platforms or build it for new ones. + + + +{{% /blocks/feature %}} + + {{% /blocks/section %}} diff --git a/content/en/history/bibliography/_index.md b/content/en/history/bibliography/_index.md index af682331c..a4ad1df13 100644 --- a/content/en/history/bibliography/_index.md +++ b/content/en/history/bibliography/_index.md @@ -9,4 +9,4 @@ aliases: - /bibliography/ --- -(This bibliography is kept in sync with our [Zotero](https://www.zotero.org/) collection [Library](https://www.zotero.org/groups/2914042/interlisp/library). +We generate this from our [Zotero collection library](https://www.zotero.org/groups/2914042/interlisp/library). diff --git a/content/en/history/in-memoriam.md b/content/en/history/in-memoriam.md index 4ea242f71..eb96274ef 100644 --- a/content/en/history/in-memoriam.md +++ b/content/en/history/in-memoriam.md @@ -3,11 +3,11 @@ title: In Memoriam weight: 100 type: docs --- -Some of the key contributors to Interlisp who are no longer with us. This page is to honor and appreciate them for the contributions they made. +Some of the key contributors to Interlisp are no longer with us. This page is to honor and appreciate them for the contributions they made. -#### [Warren Teitelman](https://en.wikipedia.org/wiki/Warren_Teitelman) ([Obituary](http://warrenteitelman.com)) +#### [Warren Teitelman](https://en.wikipedia.org/wiki/Warren_Teitelman) ([Obituary](https://web.archive.org/web/20250317210326/http://warrenteitelman.com/)) -#### [Danny Bobrow](https://en.wikipedia.org/wiki/Daniel_G._Bobrow) ([Obituary](https://www.paloaltoonline.com/obituaries/memorials/daniel-danny-g-bobrow-phd?o=4957)) +#### [Danny Bobrow](https://en.wikipedia.org/wiki/Daniel_G._Bobrow) ([Obituary](https://web.archive.org/web/20231002012901/https://www.paloaltoonline.com/obituaries/memorials/daniel-danny-g-bobrow-phd?o=4957)) #### [John Sybalsky](http://www.sybalsky.net) diff --git a/content/en/history/timeline/_index.md b/content/en/history/timeline/_index.md index 7d4279a3f..51946eac2 100644 --- a/content/en/history/timeline/_index.md +++ b/content/en/history/timeline/_index.md @@ -135,7 +135,7 @@ In 1979, PARC began the design of the Dorado, a high performance personal workst - AAAI launch of 1108 (Dandelion) and 1132 (Dorado) -{{< image-gallery gallery_dir="/photos/AAAI82" >}} +{{< image-gallery gallery_dir="photos/AAAI82" >}} ### 1983 diff --git a/static/photos/AAAI82/AAAI82.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82.jpg diff --git a/static/photos/AAAI82/AAAI82_1.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_1.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_1.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_1.jpg diff --git a/static/photos/AAAI82/AAAI82_10.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_10.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_10.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_10.jpg diff --git a/static/photos/AAAI82/AAAI82_11.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_11.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_11.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_11.jpg diff --git a/static/photos/AAAI82/AAAI82_12.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_12.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_12.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_12.jpg diff --git a/static/photos/AAAI82/AAAI82_13.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_13.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_13.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_13.jpg diff --git a/static/photos/AAAI82/AAAI82_14.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_14.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_14.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_14.jpg diff --git a/static/photos/AAAI82/AAAI82_15.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_15.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_15.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_15.jpg diff --git a/static/photos/AAAI82/AAAI82_2.1.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_2.1.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_2.1.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_2.1.jpg diff --git a/static/photos/AAAI82/AAAI82_2.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_2.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_2.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_2.jpg diff --git a/static/photos/AAAI82/AAAI82_3.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_3.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_3.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_3.jpg diff --git a/static/photos/AAAI82/AAAI82_4.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_4.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_4.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_4.jpg diff --git a/static/photos/AAAI82/AAAI82_5.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_5.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_5.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_5.jpg diff --git a/static/photos/AAAI82/AAAI82_6.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_6.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_6.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_6.jpg diff --git a/static/photos/AAAI82/AAAI82_7.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_7.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_7.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_7.jpg diff --git a/static/photos/AAAI82/AAAI82_8.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_8.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_8.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_8.jpg diff --git a/static/photos/AAAI82/AAAI82_9.jpg b/content/en/history/timeline/photos/AAAI82/AAAI82_9.jpg similarity index 100% rename from static/photos/AAAI82/AAAI82_9.jpg rename to content/en/history/timeline/photos/AAAI82/AAAI82_9.jpg diff --git a/content/en/project/status/2023MedleyAnnualReport.md b/content/en/project/status/2023MedleyAnnualReport.md index 005474c00..2dc544131 100644 --- a/content/en/project/status/2023MedleyAnnualReport.md +++ b/content/en/project/status/2023MedleyAnnualReport.md @@ -7,7 +7,7 @@ aliases: - /project/news/2023medleyannualreport/ --- - +{{< static-img src="Resources/logo_red_no_border_568x385.png" width="284" height="194" >}} ### **Overview** diff --git a/content/en/project/status/2024MedleyAnnualReport.md b/content/en/project/status/2024MedleyAnnualReport.md index fcd5e0275..6b7704caf 100755 --- a/content/en/project/status/2024MedleyAnnualReport.md +++ b/content/en/project/status/2024MedleyAnnualReport.md @@ -7,7 +7,8 @@ aliases: - /project/news/2023medleyannualreport/ --- - +{{< static-img src="Resources/logo_red_no_border_568x385.png" width="284" height="194" >}} + ## **Overview** diff --git a/content/en/project/status/2025MedleyAnnualReport.md b/content/en/project/status/2025MedleyAnnualReport.md index 75028fc55..3da0962cf 100644 --- a/content/en/project/status/2025MedleyAnnualReport.md +++ b/content/en/project/status/2025MedleyAnnualReport.md @@ -7,7 +7,7 @@ aliases: - /project/news/2025medleyannualreport/ --- - +{{< static-img src="Resources/logo_red_no_border_568x385.png" width="284" height="194" >}} ## **Overview** diff --git a/go.mod b/go.mod index b96314dad..1b1fd15ce 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module github.com/Interlisp/Interlisp.github.io -go 1.20 +go 1.24 require ( - github.com/google/docsy v0.10.0 // indirect + github.com/google/docsy v0.14.3 // indirect github.com/google/docsy/dependencies v0.7.2 // indirect ) diff --git a/go.sum b/go.sum index 25f0e2cb7..dda9d0e98 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,11 @@ github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= -github.com/FortAwesome/Font-Awesome v0.0.0-20240108205627-a1232e345536/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= -github.com/FortAwesome/Font-Awesome v0.0.0-20240402185447-c0f460dca7f7/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= github.com/FortAwesome/Font-Awesome v0.0.0-20241216213156-af620534bfc3/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= -github.com/google/docsy v0.10.0 h1:6tMDacPwAyRWNCfvsn/9qGOZDQ8b0aRzjRZvnZPY5dg= -github.com/google/docsy v0.10.0/go.mod h1:c0nIAqmRTOuJ01F85U/wJPQtc3Zj9N58Kea9bOT2AJc= +github.com/google/docsy v0.14.2 h1:XJud05ZWCUFgvE9G1KdxhGsDdr7OmWYdnWPxrclIPWE= +github.com/google/docsy v0.14.2/go.mod h1:1Fj1W1O3esZh7IBQ8XAYtxtg10udBXuGI89+LUQc1AU= +github.com/google/docsy v0.14.3 h1:4uFgPWTPj4NT79IboVkXGi49LLQadLVfU4WNOfD/s74= +github.com/google/docsy v0.14.3/go.mod h1:1Fj1W1O3esZh7IBQ8XAYtxtg10udBXuGI89+LUQc1AU= github.com/google/docsy/dependencies v0.7.2 h1:+t5ufoADQAj4XneFphz4A+UU0ICAxmNaRHVWtMYXPSI= github.com/google/docsy/dependencies v0.7.2/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4= github.com/twbs/bootstrap v4.6.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= github.com/twbs/bootstrap v5.2.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= -github.com/twbs/bootstrap v5.3.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= -github.com/twbs/bootstrap v5.3.6+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= +github.com/twbs/bootstrap v5.3.8+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/layouts/-save.html b/layouts/-save.html deleted file mode 100644 index 74ad9cbeb..000000000 --- a/layouts/-save.html +++ /dev/null @@ -1,7 +0,0 @@ -{{ define "main" }} -
-
-

Go Home

-
-
-{{ end }} diff --git a/layouts/Gallery/baseof.html b/layouts/Gallery/baseof.html deleted file mode 100644 index 962f80c88..000000000 --- a/layouts/Gallery/baseof.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "navbar.html" . }} -
-
-
-
- - -
- {{ partial "version-banner.html" . }} - {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial "breadcrumb.html" . }}{{ end }} - {{ block "main" . }}{{ end }} -
-
-
- {{ partial "footer.html" . }} -
- {{ partial "scripts.html" . }} - - diff --git a/layouts/Gallery/list.html b/layouts/Gallery/list.html deleted file mode 100644 index f1e218b24..000000000 --- a/layouts/Gallery/list.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ define "main" }} - -{{ .Content }} - -{{ range $p := .RegularPagesRecursive }} -
- -

{{ .Title }}

- -
-
-{{ end }} - -{{ end }} diff --git a/layouts/Gallery/single.html b/layouts/Gallery/single.html deleted file mode 100644 index f7fd95c38..000000000 --- a/layouts/Gallery/single.html +++ /dev/null @@ -1,34 +0,0 @@ -{{ define "main" }} -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - {{ if (and (not .Params.hide_readingtime) (.Site.Params.ui.readingtime.enable)) }} - {{ partial "reading-time.html" . }} - {{ end }} - {{ .Content }} -

- - - -

-

- [Input .gv File] - [SVG] - [Raster Image] -

- {{ $gv_src := readFile (print .File.Dir .Params.gv_file) }} - {{ partial "dot_card" (dict "context" . "gv_src" $gv_src "header" .Params.gv_file) }} - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.GoogleAnalytics)) }} - {{ partial "feedback.html" .Site.Params.ui.feedback }} -
- {{ end }} - {{ if (.Site.Params.DisqusShortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} -

- {{- .Params.copyright -}} -

- {{ partial "page-meta-lastmod.html" . }} -
-{{ end}} diff --git a/layouts/_partials/favicons.html b/layouts/_partials/favicons.html new file mode 100644 index 000000000..fd11a28fe --- /dev/null +++ b/layouts/_partials/favicons.html @@ -0,0 +1,6 @@ +{{/* Modern favicon setup using SVG + fallbacks */}} +{{ $baseURL := .Site.BaseURL -}} + + + + diff --git a/layouts/partials/footer/links.html b/layouts/_partials/footer/links.html similarity index 100% rename from layouts/partials/footer/links.html rename to layouts/_partials/footer/links.html diff --git a/layouts/partials/hooks/head-end.html b/layouts/_partials/hooks/head-end.html similarity index 100% rename from layouts/partials/hooks/head-end.html rename to layouts/_partials/hooks/head-end.html diff --git a/layouts/partials/page-description.html b/layouts/_partials/page-description.html similarity index 100% rename from layouts/partials/page-description.html rename to layouts/_partials/page-description.html diff --git a/layouts/partials/page-meta-links.html b/layouts/_partials/page-meta-links.html similarity index 100% rename from layouts/partials/page-meta-links.html rename to layouts/_partials/page-meta-links.html diff --git a/layouts/partials/taxonomy_terms_cloud.html b/layouts/_partials/taxonomy_terms_cloud.html similarity index 100% rename from layouts/partials/taxonomy_terms_cloud.html rename to layouts/_partials/taxonomy_terms_cloud.html diff --git a/layouts/_shortcodes/blocks/cover.html b/layouts/_shortcodes/blocks/cover.html new file mode 100644 index 000000000..3c293a7fc --- /dev/null +++ b/layouts/_shortcodes/blocks/cover.html @@ -0,0 +1,44 @@ +{{/* Simplified cover block - based on Docsy v0.14.3, keeping watermark */}} +{{ $blockID := printf "td-cover-block-%d" .Ordinal -}} +{{ $promo_image := (.Page.Resources.ByType "image").GetMatch "**background*" -}} +{{ $col_id := .Get "color" | default "dark" -}} +{{ $image_anchor := .Get "image_anchor" | default "smart" -}} +{{/* Height can be one of: auto, min, med, max, full. */}} +{{ $height := .Get "height" | default "max" -}} +{{ $baseURL := .Site.BaseURL -}} + +{{ with $promo_image -}} + {{ $promo_image_big := . -}} + {{ $promo_image_small := . -}} + {{ if ne $promo_image.MediaType.SubType "svg" -}} + {{ $promo_image_big = .Fill (printf "1920x1080 %s" $image_anchor) -}} + {{ $promo_image_small = .Fill (printf "960x540 %s" $image_anchor) -}} + {{ end -}} + + + +{{ end -}} + +
+
+
+
+ {{ with .Get "title" }}

{{ . | html }}

{{ end }} + {{ with .Get "subtitle" }}

{{ . | html }}

{{ end }} +
{{ .Inner }}
+
+
+
+ {{ with .Get "byline" }}{{ end }} +
diff --git a/layouts/_shortcodes/image-gallery.html b/layouts/_shortcodes/image-gallery.html new file mode 100644 index 000000000..842873d56 --- /dev/null +++ b/layouts/_shortcodes/image-gallery.html @@ -0,0 +1,12 @@ +{{ $dir := string (.Get "gallery_dir") }} + \ No newline at end of file diff --git a/layouts/_shortcodes/static-img.html b/layouts/_shortcodes/static-img.html new file mode 100644 index 000000000..1b344d041 --- /dev/null +++ b/layouts/_shortcodes/static-img.html @@ -0,0 +1,4 @@ +{{/* static-img: Image shortcode that works with subpath baseURLs */}} +{{- $src := .Get "src" -}} +{{- $baseURL := .Site.BaseURL -}} +{{ . }} diff --git a/layouts/attr-types/baseof.html b/layouts/attr-types/baseof.html deleted file mode 100644 index 20af4e652..000000000 --- a/layouts/attr-types/baseof.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "navbar.html" . }} -
-
-
-
- - -
- {{ partial "version-banner.html" . }} - {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial "breadcrumb.html" . }}{{ end }} - {{ block "main" . }}{{ end }} -
-
-
- {{ partial "footer.html" . }} -
- {{ partial "scripts.html" . }} - - \ No newline at end of file diff --git a/layouts/attr-types/content.html b/layouts/attr-types/content.html deleted file mode 100644 index 54a3364e2..000000000 --- a/layouts/attr-types/content.html +++ /dev/null @@ -1,43 +0,0 @@ -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - - {{ .Content }} - -

-

Attributes

- {{ .Title }} is a valid type for: -
    - {{ range $i, $page := (where $.Site.RegularPages "Type" "attrs") }} - {{ if in $page.Params.types $.Title }} -
  • - {{ $page.Title }} -
  • - {{ end }} - {{ end }} -
- - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.GoogleAnalytics)) }} - {{ partial "feedback.html" .Site.Params.ui.feedback }} -
- {{ end }} - {{ if (.Site.Params.DisqusShortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} - {{ partial "page-meta-lastmod.html" . }} -
diff --git a/layouts/attr-types/single.html b/layouts/attr-types/single.html deleted file mode 100644 index 00cb3ab91..000000000 --- a/layouts/attr-types/single.html +++ /dev/null @@ -1,3 +0,0 @@ -{{ define "main" }} -{{ .Render "content" }} -{{ end }} \ No newline at end of file diff --git a/layouts/attrs/baseof.html b/layouts/attrs/baseof.html deleted file mode 100644 index 962f80c88..000000000 --- a/layouts/attrs/baseof.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "navbar.html" . }} -
-
-
-
- - -
- {{ partial "version-banner.html" . }} - {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial "breadcrumb.html" . }}{{ end }} - {{ block "main" . }}{{ end }} -
-
-
- {{ partial "footer.html" . }} -
- {{ partial "scripts.html" . }} - - diff --git a/layouts/attrs/content.html b/layouts/attrs/content.html deleted file mode 100644 index 6574507e6..000000000 --- a/layouts/attrs/content.html +++ /dev/null @@ -1,45 +0,0 @@ -

-type: {{ range $i, $t := .Params.types -}} -{{- if $i }} | {{ end -}} -{{$t}} -{{- end -}} -{{- range $i, $d := .Params.defaults }} - {{- if eq $i 0 }}, default: {{ end }} - {{- if $i }}, {{ end -}} - {{- if reflect.IsMap $d -}} - {{ $d.default }} {{$d.for}} {{$d.suffix}} - {{- else -}} - {{ $d }} - {{- end -}} -{{- end -}} -{{- range $i, $minimum := .Params.minimums -}} - {{- if eq $i 0 }}, minimum: {{ end }} - {{- if $i }}, {{ end -}} - {{- $minimum -}} -{{- end -}} - -

- -{{ .Content }} - -Valid on: -
    -{{- if in .Params.used_by "C" }}
  • Clusters
  • {{ end -}} -{{- if in .Params.used_by "E" }}
  • Edges
  • {{ end -}} -{{- if in .Params.used_by "G" }}
  • Graphs
  • {{ end -}} -{{- if in .Params.used_by "N" }}
  • Nodes
  • {{ end -}} -{{- if in .Params.used_by "S" }}
  • Subgraphs
  • {{ end -}} -
- -{{- if .Params.flags -}} - Note: - {{ if eq (index .Params.flags 0) "notdot" }} - not dot - {{ else }} - {{ range $i, $flag := .Params.flags -}} - {{- if $i }}, {{ end -}} - {{ $flag }} - {{- end }} only - {{ end }} -{{- end -}} - diff --git a/layouts/attrs/list.html b/layouts/attrs/list.html deleted file mode 100644 index 67ea14d3f..000000000 --- a/layouts/attrs/list.html +++ /dev/null @@ -1,107 +0,0 @@ -{{ define "main" }} -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - {{ if (and (not .Params.hide_readingtime) (.Site.Params.ui.readingtime.enable)) }} - {{ partial "reading-time.html" . }} - {{ end }} - -{{/* -`used_by` is a string consisting of `G`,`C`,`N`,`E`, indicating that the attribute - applies to graphs, clusters, nodes and edges, respectively. - -`types` is a list: Types can be `int`, `bool`, `string`, `double`, or a -special type. We assume there is an entry for the type in the `_attr_types/` -collection. - -`defaults` is a list: gives a description of the default values of the -attribute. - -`minimums` is a list: gives a description of the minimum values of the -attribute. It can contain arbitrary text. - -`flags`, if present, is a list of: - -- `bitmap` `cmap` `map` `postscript` `svg` - attribute limited to specified output formats -- `dot` `neato` `twopi` `circo` `fdp` `sfdp` - attribute limited to specified layouts -- `notdot` - attribute use in all layouts but dot -- `write` - attribute is write-only - -In the summary table, attributes are anchored with `#a:`. -In the description list, attributes are anchored with `#d:`. -The attributes are alphabetized on output. -*/}} - -{{ .Content }} - - - - - - - - - - -{{ range $attr := .Page.Pages }} - - - - - - - - -{{ end }} -
NameUsed ByTypeDefaultMinimumNotes
{{ .Title }}{{ .Params.used_by }} - {{- range $i, $type := .Params.types -}} - {{- if $i -}}
{{- end -}} - {{$type}} - {{- end -}} -
- {{- range $i, $d := .Params.defaults -}} - {{- if $i -}}
{{- end -}} - {{- if reflect.IsMap $d -}} - {{ $d.default }} {{$d.for}} {{$d.suffix}} - {{- else -}} - {{ $d }} - {{- end -}} - {{- end -}} -
- {{- range $i, $minimum := .Params.minimums -}} - {{- if $i -}}
{{- end -}} - {{ $minimum }} - {{- end -}} -
- {{- if .Params.flags -}} - {{- if eq (index .Params.flags 0) "notdot" -}} - not dot - {{- else -}} - {{- range $i, $flag := .Params.flags -}} - {{- if $i }}, {{ end -}} - {{ $flag }} - {{- end }} only - {{- end -}} - {{- end -}} -
- -{{ range $attr := .Page.Pages }} -

- {{ .Title }} -

- -{{ .Render "content" }} - -{{ end }} - - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.GoogleAnalytics)) }} - {{ partial "feedback.html" .Site.Params.ui.feedback }} -
- {{ end }} - {{ if (.Site.DisqusShortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} - {{ partial "page-meta-lastmod.html" . }} -
-{{ end }} diff --git a/layouts/attrs/single.html b/layouts/attrs/single.html deleted file mode 100644 index 61e095706..000000000 --- a/layouts/attrs/single.html +++ /dev/null @@ -1,16 +0,0 @@ -{{ define "main" }} -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - {{ .Render "content" }} - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.GoogleAnalytics)) }} - {{ partial "feedback.html" .Site.Params.ui.feedback }} -
- {{ end }} - {{ if (.Site.DisqusShortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} - {{ partial "page-meta-lastmod.html" . }} -
-{{ end }} diff --git a/layouts/output/baseof.html b/layouts/output/baseof.html deleted file mode 100644 index 962f80c88..000000000 --- a/layouts/output/baseof.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "navbar.html" . }} -
-
-
-
- - -
- {{ partial "version-banner.html" . }} - {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial "breadcrumb.html" . }}{{ end }} - {{ block "main" . }}{{ end }} -
-
-
- {{ partial "footer.html" . }} -
- {{ partial "scripts.html" . }} - - diff --git a/layouts/output/list.html b/layouts/output/list.html deleted file mode 100644 index f7a479e4c..000000000 --- a/layouts/output/list.html +++ /dev/null @@ -1,20 +0,0 @@ -{{ define "main" }} -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - {{ if (and (not .Params.hide_readingtime) (.Site.Params.ui.readingtime.enable)) }} - {{ partial "reading-time.html" . }} - {{ end }} - {{ partial "output-section-index.html" . }} - {{ .Content }} - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.GoogleAnalytics)) }} - {{ partial "feedback.html" .Site.Params.ui.feedback }} -
- {{ end }} - {{ if (.Site.DisqusShortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} - {{ partial "page-meta-lastmod.html" . }} -
-{{ end }} diff --git a/layouts/output/single.html b/layouts/output/single.html deleted file mode 100644 index 3c8fda333..000000000 --- a/layouts/output/single.html +++ /dev/null @@ -1,13 +0,0 @@ -{{ define "main" }} - -Usage: - -
-{{ range .Page.Params.params }}
-$ dot -T{{ . }} input.dot
-{{- end }}
-
- -{{ .Render "content" }} - -{{ end }} diff --git a/layouts/partials/favicons.html b/layouts/partials/favicons.html deleted file mode 100644 index c68d1fbc5..000000000 --- a/layouts/partials/favicons.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/layouts/partials/hooks/body-end.html b/layouts/partials/hooks/body-end.html deleted file mode 100644 index 4f41decce..000000000 --- a/layouts/partials/hooks/body-end.html +++ /dev/null @@ -1,3 +0,0 @@ -{{range .Site.Params.custom_css -}} - -{{- end}} diff --git a/layouts/partials/navbar.html b/layouts/partials/navbar.html deleted file mode 100644 index 46197276f..000000000 --- a/layouts/partials/navbar.html +++ /dev/null @@ -1,86 +0,0 @@ -{{ $cover := and - (.HasShortcode "blocks/cover") - (not .Site.Params.ui.navbar_translucent_over_cover_disable) --}} -{{ $baseURL := urls.Parse $.Site.Params.Baseurl -}} - - \ No newline at end of file diff --git a/layouts/partials/output-section-index.html b/layouts/partials/output-section-index.html deleted file mode 100644 index b4a1145a5..000000000 --- a/layouts/partials/output-section-index.html +++ /dev/null @@ -1,29 +0,0 @@ -{{ $pages := (where .Site.Pages "Section" .Section).ByWeight }} -{{ $pages = (where $pages "Type" "!=" "search") }} -{{ $parent := .Page }} - - - - - - -{{ range $pages }} - {{ if eq .Parent $parent }} - {{ $manualLink := cond (isset .Params "manuallink") .Params.manualLink ( cond (isset .Params "manuallinkrelref") (relref . .Params.manualLinkRelref) .RelPermalink) }} - - - - - - {{ end }} -{{ end }} -
FormatCommand-line parameterDescription
- {{- .Title -}} - - {{ range $i, $v := .Params.params }} - {{ if $i }}
{{ end }} - {{$v}} - {{end}} -
-

{{ .Description | markdownify }}

-
diff --git a/layouts/partials/page-meta-lastmod.html b/layouts/partials/page-meta-lastmod.html deleted file mode 100644 index 1b4e36a05..000000000 --- a/layouts/partials/page-meta-lastmod.html +++ /dev/null @@ -1,13 +0,0 @@ -{{ if and .GitInfo .Site.Params.github_repo -}} -
- -
-{{ end -}} \ No newline at end of file diff --git a/layouts/shortcodes/blocks/cover.html b/layouts/shortcodes/blocks/cover.html deleted file mode 100644 index 2b6bc2437..000000000 --- a/layouts/shortcodes/blocks/cover.html +++ /dev/null @@ -1,57 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` -}} -{{ $blockID := printf "td-cover-block-%d" .Ordinal -}} -{{ $promo_image := (.Page.Resources.ByType "image").GetMatch "**background*" -}} -{{ $logo_image := (.Page.Resources.ByType "image").GetMatch "**logo*" -}} -{{ $col_id := .Get "color" | default "dark" -}} -{{ $image_anchor := .Get "image_anchor" | default "smart" -}} -{{ $logo_anchor := .Get "logo_anchor" | default "smart" -}} -{{/* Height can be one of: auto, min, med, max, full. */ -}} -{{ $height := .Get "height" | default "max" -}} -{{ with $promo_image -}} - -{{ $promo_image_big := (.Fill (printf "1920x1080 %s" $image_anchor)) -}} -{{ $promo_image_small := (.Fill (printf "960x540 %s" $image_anchor)) -}} - -{{ $promo_image_big := trim $promo_image_big "/" }} -{{ $promo_image_small := trim $promo_image_small "/" }} - - - - -{{ end -}} - -
-
-
-
- {{ with .Get "title" }}

{{ $title := . }}{{ with $logo_image }}{{ $logo_image_resized := (.Fit (printf "70x70 %s" $logo_anchor)) }}{{ end }}{{ $title | html }}

{{ end }} - {{ with .Get "subtitle" }}

{{ . | html }}

{{ end }} -
- {{ if eq .Page.File.Ext "md" }} - {{ .Inner | markdownify }} - {{ else }} - {{ .Inner | htmlUnescape | safeHTML }} - {{ end }} -
-
-
-
- {{ with .Get "byline" | default "" -}} - - {{- end }} -
diff --git a/layouts/shortcodes/button.html b/layouts/shortcodes/button.html deleted file mode 100644 index ea6e91411..000000000 --- a/layouts/shortcodes/button.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` }} - - {{ $icon := .Get "icon" }} - {{ $iconposition := .Get "icon-position" }} - {{ if ($icon) }} - {{ if or (not ($iconposition)) (eq $iconposition "left") }} - - {{ end }} - {{ end }} - {{ .Inner }} - {{ if and ($icon) (eq $iconposition "right")}} - - {{ end }} - \ No newline at end of file diff --git a/layouts/shortcodes/gdocs.html b/layouts/shortcodes/gdocs.html deleted file mode 100644 index aa3ad33aa..000000000 --- a/layouts/shortcodes/gdocs.html +++ /dev/null @@ -1,3 +0,0 @@ -
- -
\ No newline at end of file diff --git a/layouts/shortcodes/image-gallery.html b/layouts/shortcodes/image-gallery.html deleted file mode 100644 index ba553d1a4..000000000 --- a/layouts/shortcodes/image-gallery.html +++ /dev/null @@ -1,23 +0,0 @@ - - -{{ $dir := string (.Get "gallery_dir") }} - \ No newline at end of file diff --git a/layouts/shortcodes/read_file.html b/layouts/shortcodes/read_file.html deleted file mode 100644 index b4d169557..000000000 --- a/layouts/shortcodes/read_file.html +++ /dev/null @@ -1 +0,0 @@ -{{- readFile ($.Get "file") -}} diff --git a/package-lock.json b/package-lock.json index 07e60ed3a..824707026 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,8 @@ "": { + "name": "Interlisp.github.io", + "dependencies": { "jquery": "^3.7.1", @@ -22,6 +24,8 @@ "autoprefixer": "^10.4.8", + "hugo-extended": "^0.155.3", + "postcss": "^8.4.16", "postcss-cli": "^10.0.0" @@ -30,6 +34,30 @@ }, + "node_modules/@isaacs/fs-minipass": { + + "version": "4.0.1", + + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + + "dev": true, + + "dependencies": { + + "minipass": "^7.0.4" + + }, + + "engines": { + + "node": ">=18.0.0" + + } + + }, + "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -100,6 +128,24 @@ }, + "node_modules/adm-zip": { + + "version": "0.5.16", + + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + + "dev": true, + + "engines": { + + "node": ">=12.0" + + } + + }, + "node_modules/ansi-regex": { "version": "5.0.1", @@ -260,17 +306,17 @@ "node_modules/braces": { - "version": "3.0.2", + "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, @@ -424,6 +470,24 @@ }, + "node_modules/chownr": { + + "version": "3.0.0", + + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + + "dev": true, + + "engines": { + + "node": ">=18" + + } + + }, + "node_modules/cliui": { "version": "7.0.4", @@ -618,11 +682,11 @@ "node_modules/fill-range": { - "version": "7.0.1", + "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, @@ -838,6 +902,42 @@ }, + "node_modules/hugo-extended": { + + "version": "0.155.3", + + "resolved": "https://registry.npmjs.org/hugo-extended/-/hugo-extended-0.155.3.tgz", + + "integrity": "sha512-nzGmsgnOdeOGDgtpPHEPZ1PVizDHPU3240UdRmxu0b9vT+A7iB9toaUGcUQXQ/PVURq6y8lIuoTFsI4xfDoLLA==", + + "dev": true, + + "hasInstallScript": true, + + "dependencies": { + + "adm-zip": "^0.5.16", + + "tar": "^7.5.7" + + }, + + "bin": { + + "hugo": "dist/cli.mjs", + + "hugo-extended": "dist/cli.mjs" + + }, + + "engines": { + + "node": ">=18.17" + + } + + }, + "node_modules/ignore": { "version": "5.2.0", @@ -1030,17 +1130,17 @@ "node_modules/micromatch": { - "version": "4.0.5", + "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1054,16 +1154,70 @@ }, + "node_modules/minipass": { + + "version": "7.1.2", + + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + + "dev": true, + + "engines": { + + "node": ">=16 || 14 >=14.17" + + } + + }, + + "node_modules/minizlib": { + + "version": "3.1.0", + + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + + "dev": true, + + "dependencies": { + + "minipass": "^7.1.2" + + }, + + "engines": { + + "node": ">= 18" + + } + + }, + "node_modules/nanoid": { - "version": "3.3.4", + "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, + "funding": [ + + { + + "type": "github", + + "url": "https://github.com/sponsors/ai" + + } + + ], + "bin": { "nanoid": "bin/nanoid.cjs" @@ -1146,11 +1300,11 @@ "node_modules/picocolors": { - "version": "1.0.0", + "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true @@ -1200,11 +1354,11 @@ "node_modules/postcss": { - "version": "8.4.16", + "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, @@ -1224,17 +1378,25 @@ "url": "https://tidelift.com/funding/github/npm/postcss" + }, + + { + + "type": "github", + + "url": "https://github.com/sponsors/ai" + } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.11", - "picocolors": "^1.0.0", + "picocolors": "^1.1.1", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.1" }, @@ -1624,11 +1786,11 @@ "node_modules/source-map-js": { - "version": "1.0.2", + "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, @@ -1702,6 +1864,38 @@ }, + "node_modules/tar": { + + "version": "7.5.7", + + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz", + + "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==", + + "dev": true, + + "dependencies": { + + "@isaacs/fs-minipass": "^4.0.0", + + "chownr": "^3.0.0", + + "minipass": "^7.1.2", + + "minizlib": "^3.1.0", + + "yallist": "^5.0.0" + + }, + + "engines": { + + "node": ">=18" + + } + + }, + "node_modules/thenby": { "version": "1.3.4", @@ -1860,19 +2054,49 @@ }, + "node_modules/yallist": { + + "version": "5.0.0", + + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + + "dev": true, + + "engines": { + + "node": ">=18" + + } + + }, + "node_modules/yaml": { - "version": "2.1.1", + "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, + "bin": { + + "yaml": "bin.mjs" + + }, + "engines": { - "node": ">= 14" + "node": ">= 14.6" + + }, + + "funding": { + + "url": "https://github.com/sponsors/eemeli" } @@ -1936,6 +2160,24 @@ "dependencies": { + "@isaacs/fs-minipass": { + + "version": "4.0.1", + + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + + "dev": true, + + "requires": { + + "minipass": "^7.0.4" + + } + + }, + "@nodelib/fs.scandir": { "version": "2.1.5", @@ -1988,6 +2230,18 @@ }, + "adm-zip": { + + "version": "0.5.16", + + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + + "dev": true + + }, + "ansi-regex": { "version": "5.0.1", @@ -2080,17 +2334,17 @@ "braces": { - "version": "3.0.2", + "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } @@ -2164,6 +2418,18 @@ }, + "chownr": { + + "version": "3.0.0", + + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + + "dev": true + + }, + "cliui": { "version": "7.0.4", @@ -2328,11 +2594,11 @@ "fill-range": { - "version": "7.0.1", + "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, @@ -2472,6 +2738,26 @@ }, + "hugo-extended": { + + "version": "0.155.3", + + "resolved": "https://registry.npmjs.org/hugo-extended/-/hugo-extended-0.155.3.tgz", + + "integrity": "sha512-nzGmsgnOdeOGDgtpPHEPZ1PVizDHPU3240UdRmxu0b9vT+A7iB9toaUGcUQXQ/PVURq6y8lIuoTFsI4xfDoLLA==", + + "dev": true, + + "requires": { + + "adm-zip": "^0.5.16", + + "tar": "^7.5.7" + + } + + }, + "ignore": { "version": "5.2.0", @@ -2612,17 +2898,17 @@ "micromatch": { - "version": "4.0.5", + "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -2630,13 +2916,43 @@ }, + "minipass": { + + "version": "7.1.2", + + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + + "dev": true + + }, + + "minizlib": { + + "version": "3.1.0", + + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + + "dev": true, + + "requires": { + + "minipass": "^7.1.2" + + } + + }, + "nanoid": { - "version": "3.3.4", + "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true @@ -2692,11 +3008,11 @@ "picocolors": { - "version": "1.0.0", + "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true @@ -2728,21 +3044,21 @@ "postcss": { - "version": "8.4.16", + "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.11", - "picocolors": "^1.0.0", + "picocolors": "^1.1.1", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.1" } @@ -2956,11 +3272,11 @@ "source-map-js": { - "version": "1.0.2", + "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true @@ -3016,6 +3332,32 @@ }, + "tar": { + + "version": "7.5.7", + + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz", + + "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==", + + "dev": true, + + "requires": { + + "@isaacs/fs-minipass": "^4.0.0", + + "chownr": "^3.0.0", + + "minipass": "^7.1.2", + + "minizlib": "^3.1.0", + + "yallist": "^5.0.0" + + } + + }, + "thenby": { "version": "1.3.4", @@ -3112,13 +3454,25 @@ }, + "yallist": { + + "version": "5.0.0", + + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + + "dev": true + + }, + "yaml": { - "version": "2.1.1", + "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true diff --git a/package.json b/package.json index 87bd243f1..7acc342bb 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,8 @@ "autoprefixer": "^10.4.8", + "hugo-extended": "^0.155.3", + "postcss": "^8.4.16", "postcss-cli": "^10.0.0" diff --git a/static/Resources/favicon.png b/static/Resources/favicon.png deleted file mode 100644 index f120260e7..000000000 Binary files a/static/Resources/favicon.png and /dev/null differ diff --git a/static/css/custom.css b/static/css/custom.css deleted file mode 100644 index 9ef9b516c..000000000 --- a/static/css/custom.css +++ /dev/null @@ -1,16 +0,0 @@ -/* Custom styles used by home page */ -.hero-content-column { - background-position: -2 0; - background-repeat: no-repeat; - background-size: 26em 28em; -} - -.hero-content-column .text-center h0, .hero-content-column .text-center p { - text-shadow: 2px 3px 0 #333; -} - -.hero-content-column .top-summary { - background: rgba(-1,0,0,0.3); - padding: 7px; - border-radius: 11px; -} \ No newline at end of file diff --git a/static/favicons/apple-touch-icon.png b/static/favicons/apple-touch-icon.png new file mode 100644 index 000000000..fbaabfdba Binary files /dev/null and b/static/favicons/apple-touch-icon.png differ diff --git a/static/favicons/favicon-96x96.png b/static/favicons/favicon-96x96.png new file mode 100644 index 000000000..ae284f5ad Binary files /dev/null and b/static/favicons/favicon-96x96.png differ diff --git a/static/favicons/favicon.ico b/static/favicons/favicon.ico new file mode 100644 index 000000000..d51f0f17f Binary files /dev/null and b/static/favicons/favicon.ico differ diff --git a/static/favicons/favicon.png b/static/favicons/favicon.png deleted file mode 100644 index f120260e7..000000000 Binary files a/static/favicons/favicon.png and /dev/null differ diff --git a/static/favicons/favicon.svg b/static/favicons/favicon.svg new file mode 100644 index 000000000..ed4f147d2 --- /dev/null +++ b/static/favicons/favicon.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file