From d9b93c34023878938c352416b97e769b5bb33b9f Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:33:27 -0400 Subject: [PATCH 01/43] Refactor lint workflow to use reviewdog action --- .github/workflows/lint.yaml | 64 +++++++++++++------------------------ 1 file changed, 23 insertions(+), 41 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 070d50b8d5..85902e598f 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -16,10 +16,9 @@ jobs: remark-lint: name: runner / remark-lint runs-on: ubuntu-latest + steps: - uses: actions/checkout@v7 - with: - fetch-depth: 0 - name: Install pnpm uses: pnpm/action-setup@v6 @@ -30,42 +29,25 @@ jobs: # https://github.com/pnpm/pnpm/issues/12959 version: 11.11.0 - - name: Install remark plugins and reviewdog - run: | - npm install -g remark-cli@10 remark-lint@10 remark-preset-lint-recommended remark-mdx@2 remark-lint-no-undefined-references@4 remark-directive@3 - curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b /tmp - # reviewdog/action-remark-lint runs remark against a directory, but this - - # repository currently has existing repo-wide remark warnings. Because this - # workflow fails on warnings, running remark on the whole repository would - # fail PRs for warnings unrelated to the modified files. - # Until the existing repo-wide warnings are cleaned up, lint only Markdown/MDX - # files changed in the current PR and pipe the result to reviewdog manually. - # See the follow-up cleanup issue before reverting this back to - # reviewdog/action-remark-lint. - - - name: Find changed Markdown files - id: changed_files - run: | - git fetch origin ${{ github.base_ref }} - git diff --name-only --diff-filter=ACMRT origin/${{ github.base_ref }}...HEAD -- '*.md' '*.mdx' > changed-markdown-files.txt - - if [ -s changed-markdown-files.txt ]; then - echo "has_changed_files=true" >> "$GITHUB_OUTPUT" - cat changed-markdown-files.txt - else - echo "has_changed_files=false" >> "$GITHUB_OUTPUT" - echo "No changed Markdown files." - fi - - - name: remark-lint changed files - if: steps.changed_files.outputs.has_changed_files == 'true' - run: | - remark $(cat changed-markdown-files.txt) --use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ext .md,.mdx 2>&1 \ - | sed 's/\x1b\[[0-9;]*m//g' \ - | /tmp/reviewdog -f=remark-lint \ - -name="remark-lint" \ - -reporter="github-pr-review" \ - -filter-mode="nofilter" \ - -fail-level="warning" \ - -level="warning" + # npm (not pnpm) is intentional: remark-cli is installed globally by the + # action at /usr/local/lib/node_modules/. pnpm's global store is not on + # that resolution path, so remark-cli would fall back to resolving + # remark-mdx from the project's node_modules, where @mdx-js/react pulls + # in mdast-util-mdx-jsx@3 — incompatible with remark-cli@10's bundled + # unified v10 stack. npm -g puts the remark plugins next to remark-cli so + # the versions stay compatible. + # + # install_deps: false prevents the action from running npm install and + # reintroducing the incompatible project dependencies. + - name: Install remark plugins globally + run: npm install -g remark-mdx@2 remark-lint-no-undefined-references@4 remark-directive@3 + + - name: remark-lint + uses: reviewdog/action-remark-lint@v5 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + reporter: github-pr-review + fail_level: "error" + level: "warning" + install_deps: false + remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ext .md,.mdx" From c35ff4b8cf9def085a73e26759d5535da8a88a23 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:42:36 -0400 Subject: [PATCH 02/43] Fix formatting in introduction documentation --- docs/genai/01_getting_started/01_intro.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/genai/01_getting_started/01_intro.mdx b/docs/genai/01_getting_started/01_intro.mdx index 2b9cd71255..2432df5471 100644 --- a/docs/genai/01_getting_started/01_intro.mdx +++ b/docs/genai/01_getting_started/01_intro.mdx @@ -5,8 +5,8 @@ If you looking to access LLMs for non-research workflows, please reach out to th ::: Welcome to Pythia, the generative AI platform for research workflows. As part of the Pythia platform, the following capabilities are offered: -- [Access to externally hosted LLMs](../01_getting_started/02_llm_gateway.mdx) -- [HPC resources for fine tuning LLMs](../../hpc/08_ml_ai_hpc/05_llm_fine_tuning.md) +- [Access to externally hosted LLMs](../01_getting_started/02_llm_gateway.mdx) +- [HPC resources for fine tuning LLMs](../../hpc/08_ml_ai_hpc/05_llm_fine_tuning.md) :::info[Personal use] If you want to access NYU provided LLMs for personal use, proceed to https://gemini.google.com/app with your NYU credentials. From ef89481936c0884a0ac7afbdf2a7f8c7f78a1f90 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:43:04 -0400 Subject: [PATCH 03/43] Fix formatting of applications list in embeddings guide --- docs/genai/04_how_to_guides/02_embeddings.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/genai/04_how_to_guides/02_embeddings.mdx b/docs/genai/04_how_to_guides/02_embeddings.mdx index 291e8fd2d9..824d734091 100644 --- a/docs/genai/04_how_to_guides/02_embeddings.mdx +++ b/docs/genai/04_how_to_guides/02_embeddings.mdx @@ -43,9 +43,9 @@ and gives the following response: ## Applications of Embeddings Embeddings are typically used for: -- retrieval-augmented generation -- search -- classification +- retrieval-augmented generation +- search +- classification :::info Embeddings are typically stored in a *vector* database which is designed for efficient storage and fast retrieval of vectors. From ea4818010bbe908911a638d6bb12c24187176644 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:43:26 -0400 Subject: [PATCH 04/43] Update 03_retrieval_augmented_generation.mdx --- .../04_how_to_guides/03_retrieval_augmented_generation.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/genai/04_how_to_guides/03_retrieval_augmented_generation.mdx b/docs/genai/04_how_to_guides/03_retrieval_augmented_generation.mdx index e6a82c95fe..d2fadd7fdd 100644 --- a/docs/genai/04_how_to_guides/03_retrieval_augmented_generation.mdx +++ b/docs/genai/04_how_to_guides/03_retrieval_augmented_generation.mdx @@ -5,8 +5,8 @@ For an in-depth overview of RAG and Jupyter notebook examples, please access the ::: Large Language Models only know about the data they were trained upon and do not have the context needed to be effective at answering questions based on: -- private datasets -- newer knowledge past the cutoff date (i.e. the date at which data collection was frozen) +- private datasets +- newer knowledge past the cutoff date (i.e. the date at which data collection was frozen) To get around this issue, one of the most popular techniques is Retrieval-augmented generation, the most basic version of which is outlined below: From 4a1ca9aadb13e87e9bcf46a1a001dbc0ceb14e09 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:44:07 -0400 Subject: [PATCH 05/43] Fix formatting in account renewal instructions --- .../02_HPC_Accounts/01_getting_and_renewing_an_account.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/01_getting_started/02_HPC_Accounts/01_getting_and_renewing_an_account.mdx b/docs/hpc/01_getting_started/02_HPC_Accounts/01_getting_and_renewing_an_account.mdx index 8a3d19241e..60de48f595 100644 --- a/docs/hpc/01_getting_started/02_HPC_Accounts/01_getting_and_renewing_an_account.mdx +++ b/docs/hpc/01_getting_started/02_HPC_Accounts/01_getting_and_renewing_an_account.mdx @@ -121,7 +121,7 @@ Linux clients are not officially supported, however we were able to successfully apt-get install openconnect sudo openconnect -b vpn.nyu.edu ``` - - When prompted follow the instructions and provide your netID, password, and authenticate with ('push', 'phone1' or 'sms') + - When prompted follow the instructions and provide your netID, password, and authenticate with ('push', 'phone1' or 'sms') This method was tested on few Linux distributions and settings however is not guaranteed to work in future. From c4483f373f9e8f0aef47b4667604dd945a1749d3 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:45:38 -0400 Subject: [PATCH 06/43] Update 08_sharing_data_on_hpc.mdx --- .../hpc/03_storage/08_sharing_data_on_hpc.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx index 98433b4268..476ec27691 100644 --- a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx +++ b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx @@ -88,14 +88,14 @@ g-DEPT-LABNAME Once you have a group assigned, managers of the group can use the `ipa` commands to manage members via the login nodes. Relevant user commands include: -- `ipa group-add-member`: Add members to a group. - - Example: +- `ipa group-add-member`: Add members to a group. + - Example: `ipa group-add-member GROUP-NAME --users='NETID'` -- `ipa group-add-member-manager`: Add users that can manage members of this group. - - Example: +- `ipa group-add-member-manager`: Add users that can manage members of this group. + - Example: `ipa group-add-member-manager GROUP-NAME --users='NETID'` -- `ipa group-find`: Search for groups. - - Example: +- `ipa group-find`: Search for groups. + - Example: ``` ipa group-find test ---------------- @@ -111,16 +111,16 @@ ipa group-find test Number of entries returned 2 ---------------------------- ``` -- `ipa group-remove-member`: Remove members from a group. - - Example: +- `ipa group-remove-member`: Remove members from a group. + - Example: `ipa group-remove-member --users=NETID` -- `ipa group-remove-member-manager`: Remove users that can manage members of this group. - - Example: +- `ipa group-remove-member-manager`: Remove users that can manage members of this group. + - Example: `ipa group-remove-member-manager --users=NETID` -- `ipa group-show`: Display information about a named group. - - Example: +- `ipa group-show`: Display information about a named group. + - Example: `ipa group-show GROUP-NAME` - - Example: + - Example: ``` [mdw303@torch-login-1 ~]$ ipa group-show g-hpc-mdw303test Group name: g-hpc-mdw303test From b2451ec25d3f486735a5ba789fdd14b7f887fb04 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:46:08 -0400 Subject: [PATCH 07/43] Fix formatting in R packages with renv documentation --- docs/hpc/06_tools_and_software/05_r_packages_with_renv.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hpc/06_tools_and_software/05_r_packages_with_renv.mdx b/docs/hpc/06_tools_and_software/05_r_packages_with_renv.mdx index 7a283d50bd..9c40a2a42e 100644 --- a/docs/hpc/06_tools_and_software/05_r_packages_with_renv.mdx +++ b/docs/hpc/06_tools_and_software/05_r_packages_with_renv.mdx @@ -195,8 +195,8 @@ renv::init() ### What to save/publish/commit with Git In order to have your work reproducible by you and/or others: -- save and/or commit your code in git -- be sure to include `renv.lock` (which lists all packages and versions that you use including the version of R) +- save and/or commit your code in git +- be sure to include `renv.lock` (which lists all packages and versions that you use including the version of R) ### Migrating from Packrat The `renv` package has replaced the now deprecated `Packrat` package. The `renv::migrate()` function makes it possible to migrate projects from `Packrat` to `renv`. See the ?migrate documentation for more details. In essence, calling `renv::migrate("")` will be enough to migrate the `Packrat` library and lockfile such that they can then be used by `renv`. From 4576bf76d6b94019e35ea6802181ca0a1f3004a9 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:47:22 -0400 Subject: [PATCH 08/43] Fix formatting of VSCode Remote - SSH setup steps Corrected the instructions for enabling settings in VSCode Remote - SSH. --- docs/hpc/06_tools_and_software/09_vscode_remote_ssh_torch.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hpc/06_tools_and_software/09_vscode_remote_ssh_torch.mdx b/docs/hpc/06_tools_and_software/09_vscode_remote_ssh_torch.mdx index 89aba1e2c3..ff2db536e1 100644 --- a/docs/hpc/06_tools_and_software/09_vscode_remote_ssh_torch.mdx +++ b/docs/hpc/06_tools_and_software/09_vscode_remote_ssh_torch.mdx @@ -21,8 +21,8 @@ Ensure that you SSH client has been configured [as described here](../02_connect Install the VSCode Remote - SSH extension. Configure Remote - SSH settings: -1. Enable `Remote.SSH: Lockfiles In Tmp` -2. Unable `Remote.SSH: Use Flock` +1. Enable `Remote.SSH: Lockfiles In Tmp` +2. Unable `Remote.SSH: Use Flock` Because Torch requires Microsoft device authentication during SSH login, VSCode may time out before you finish entering the device code. If this happens, search for Remote.SSH: Connect Timeout and set it to 120. From 04ce20f26b43d452a2bdc1e78e7112286b8d7cc0 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Wed, 9 Sep 2026 17:47:53 -0400 Subject: [PATCH 09/43] Fix formatting of numbered list in MATLAB proxy guide --- docs/hpc/09_ood/03_matlab_proxy.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/hpc/09_ood/03_matlab_proxy.mdx b/docs/hpc/09_ood/03_matlab_proxy.mdx index 529f5df35a..abcbc72397 100644 --- a/docs/hpc/09_ood/03_matlab_proxy.mdx +++ b/docs/hpc/09_ood/03_matlab_proxy.mdx @@ -19,10 +19,10 @@ Please be aware that when you run each version of Matlab for the first time, the Be careful not to go over your quota for `/home`. You can find your current usage with the `myquota` command. Please see our [Storage documentation](../03_storage/01_intro_and_data_management.mdx) for details about your storage options. ::: Each time you start it up after that it will set its working directory to the last directory you were in. If you'd like to change this behavior, so that you always start at the same directory: -1. click on `ENVIRONMENT` in your `Home` panel -1. select `Preferences` -1. select `Current Folder` -1. select `initial working folder preferences` +1. click on `ENVIRONMENT` in your `Home` panel +1. select `Preferences` +1. select `Current Folder` +1. select `initial working folder preferences` This will allow you to set the full path of the initial working folder you would prefer. Be sure to hit the `Apply` button, so your changes are applied. :::: From 758eb2d898578404f9448dcd04bbde1ccbdbf817 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 10 Sep 2026 18:22:37 -0400 Subject: [PATCH 10/43] Update 03_moving_looking.mdx --- .../03_moving_looking.mdx | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx index ef58722788..4662302f5d 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx @@ -42,10 +42,10 @@ $ whoami More specifically, when we type `whoami` in the shell: -1. finds a program called whoami, -1. runs that program, -1. displays that program’s output, then -1. displays a new prompt to tell us that it’s ready for more commands. +1. finds a program called whoami, +1. runs that program, +1. displays that program’s output, then +1. displays a new prompt to tell us that it’s ready for more commands. Next, let’s find out where we are by running a command called `pwd` (which stands for “print working directory”). (“Directory” is another word for “folder”). At any moment, our current working directory (where we are) is the directory that the computer assumes we want to run commands in unless we explicitly specify something else. Here, the computer’s response is `/home/`, which is ``'s home directory. Note that the location of your home directory may differ from system to system. ```bash @@ -248,28 +248,28 @@ When used with the `-l` option, use unit suffixes: Byte, Kilobyte, Megabyte, Gig :::info[Absolute vs Relative Paths] Starting from `/Users/amanda/data/`, which of the following commands could Amanda use to navigate to her home directory, which is `/Users/amanda`? -1. `cd .` -1. `cd /` -1. `cd /home/amanda` -1. `cd ../..` -1. `cd ~` -1. `cd home` -1. `cd ~/data/..` -1. `cd` -1. `cd ..` +1. `cd .` +1. `cd /` +1. `cd /home/amanda` +1. `cd ../..` +1. `cd ~` +1. `cd home` +1. `cd ~/data/..` +1. `cd` +1. `cd ..` ::: **[Click for Solution]** :::tip[Solution] -1. No: `.` stands for the current directory. -1. No: `/` stands for the root directory. -1. No: Amanda’s home directory is `/Users/amanda`. -1. No: this goes up two levels, i.e. ends in `/Users`. -1. Yes: `~` stands for the user’s home directory, in this case `/Users/amanda`. -1. No: this would navigate into a directory home in the current directory if it exists. -1. Yes: unnecessarily complicated, but correct. -1. Yes: shortcut to go back to the user’s home directory. -1. Yes: goes up one level. +1. No: `.` stands for the current directory. +1. No: `/` stands for the root directory. +1. No: Amanda’s home directory is `/Users/amanda`. +1. No: this goes up two levels, i.e. ends in `/Users`. +1. Yes: `~` stands for the user’s home directory, in this case `/Users/amanda`. +1. No: this would navigate into a directory home in the current directory if it exists. +1. Yes: unnecessarily complicated, but correct. +1. Yes: shortcut to go back to the user’s home directory. +1. Yes: goes up one level. ::: @@ -278,10 +278,10 @@ Starting from `/Users/amanda/data/`, which of the following commands could Amand :::info[Relative Path Resolution] Using the filesystem diagram below, if `pwd` displays `/Users/thing`, what will `ls -F ../backup` display? -1. `../backup: No such file or directory` -1. `2012-12-01 2013-01-08 2013-01-27` -1. `2012-12-01/ 2013-01-08/ 2013-01-27/` -1. `original/ pnas_final/ pnas_sub/` +1. `../backup: No such file or directory` +1. `2012-12-01 2013-01-08 2013-01-27` +1. `2012-12-01/ 2013-01-08/ 2013-01-27/` +1. `original/ pnas_final/ pnas_sub/` ::: ```mermaid @@ -308,10 +308,10 @@ block-beta **[Click for Solution]** :::tip[Solution] -1. No: there is a directory backup in `/Users`. -1. No: this is the content of `Users/thing/backup`, but with `..` we asked for one level further up. -1. No: see previous explanation. -1. Yes: `../backup/` refers to `/Users/backup/`. +1. No: there is a directory backup in `/Users`. +1. No: this is the content of `Users/thing/backup`, but with `..` we asked for one level further up. +1. No: see previous explanation. +1. Yes: `../backup/` refers to `/Users/backup/`. ::: @@ -322,18 +322,18 @@ Assuming a directory structure as in the above figure, if `pwd` displays `/Users ::::info[Output] pnas_sub/ pnas_final/ original/ :::: -1. `ls pwd` -1. `ls -r -F` -1. `ls -r -F /Users/backup` -1. Either #2 or #3 above, but not #1. +1. `ls pwd` +1. `ls -r -F` +1. `ls -r -F /Users/backup` +1. Either #2 or #3 above, but not #1. **[Click for Solution]** :::tip[Solution] -1. No: `pwd` is not the name of a directory. -1. Yes: `ls` without directory argument lists files and directories in the current directory. -1. Yes: uses the absolute path explicitly. -1. Correct: see explanations above. +1. No: `pwd` is not the name of a directory. +1. Yes: `ls` without directory argument lists files and directories in the current directory. +1. Yes: uses the absolute path explicitly. +1. Correct: see explanations above. ::: From eb590027b729ba6da85967e36dbe1f58f42ea856 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 10 Sep 2026 19:03:42 -0400 Subject: [PATCH 11/43] Update 04_writing_reading_files.mdx --- .../04_writing_reading_files.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/04_writing_reading_files.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/04_writing_reading_files.mdx index 20c052f9c5..723b5edff6 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/04_writing_reading_files.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/04_writing_reading_files.mdx @@ -216,18 +216,18 @@ Install wget - Fedora: `sudo dnf install wget` - **macOS**: `brew install wget` - **Windows**: - 1. Download the Wget executable (wget.exe) from a reliable source. - 1. Place the `wget.exe` file in a directory that's included in your system's PATH environment variable (e.g., `C:\Windows\System32`). - 1. Open a command prompt and verify the installation by running `wget --version` + 1. Download the Wget executable (wget.exe) from a reliable source. + 1. Place the `wget.exe` file in a directory that's included in your system's PATH environment variable (e.g., `C:\Windows\System32`). + 1. Open a command prompt and verify the installation by running `wget --version`
Install cURL - **Linux**: curl is packaged for every major distribution. You can install it through the usual means. - - Debian, Ubuntu, Mint: `sudo apt install curl` - - CentOS, Red Hat: `sudo yum install curl` or `zypper install curl` - - Fedora: `sudo dnf install curl` + - Debian, Ubuntu, Mint: `sudo apt install curl` + - CentOS, Red Hat: `sudo yum install curl` or `zypper install curl` + - Fedora: `sudo dnf install curl` - **macOS**: curl is preinstalled on macOS. If you must have the latest version you can brew install it, but only do so if the stock version has failed you. - **Windows**: - curl comes preinstalled for the Windows 10 command line. From 361d79fc9d4c399fb8be4734098549fe6fcb695e Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 10 Sep 2026 19:04:31 -0400 Subject: [PATCH 12/43] Fix numbering in scheduler fundamentals tutorial Corrected numbering format in tutorial for clarity. --- .../13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx b/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx index 24652899be..14a4d61daa 100644 --- a/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx @@ -27,10 +27,10 @@ The most basic use of the scheduler is to run a command non-interactively. Any c In this case, the job we want to run is a shell script – essentially a text file containing a list of UNIX commands to be executed in a sequential manner. Our shell script will have three parts: -1. On the very first line, add `#!/bin/bash`. The `#!` (pronounced “hash-bang” or “shebang”) tells the computer what program is meant to process the contents of this file. In this case, we are telling it that the commands that follow are written for the command-line shell (what we’ve been doing everything in so far). -1. Anywhere below the first line, we’ll add an `echo` command with a friendly greeting. When run, the shell script will print whatever comes after `echo` in the terminal. - - `echo -n` will print everything that follows, *without* ending the line by printing the new-line character. -1. On the last line, we’ll invoke the `hostname` command, which will print the name of the machine the script is run on. +1. On the very first line, add `#!/bin/bash`. The `#!` (pronounced “hash-bang” or “shebang”) tells the computer what program is meant to process the contents of this file. In this case, we are telling it that the commands that follow are written for the command-line shell (what we’ve been doing everything in so far). +1. Anywhere below the first line, we’ll add an `echo` command with a friendly greeting. When run, the shell script will print whatever comes after `echo` in the terminal. + - `echo -n` will print everything that follows, *without* ending the line by printing the new-line character. +1. On the last line, we’ll invoke the `hostname` command, which will print the name of the machine the script is run on. ```bash [NetID@log-1 ~]$ nano example-job.sh ``` From 4dde4133b0f3fca471267956cf45ad12ef4cdd4e Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 10 Sep 2026 19:05:02 -0400 Subject: [PATCH 13/43] Fix formatting and improve clarity in modules tutorial --- docs/hpc/13_tutorial_intro_hpc/06_modules.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx b/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx index 2ec8ae8da3..d441f5a1d3 100644 --- a/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx @@ -1,11 +1,11 @@ # Accessing Software via Modules :::info[Overview] Questions -- How do we load and unload software packages? +- How do we load and unload software packages? Objectives -- Load and use a software package. -- Explain how the shell environment changes when the module mechanism loads or unloads packages. +- Load and use a software package. +- Explain how the shell environment changes when the module mechanism loads or unloads packages. ::: On a high-performance computing system, it is seldom the case that the software we want to use is available when we log in. It is installed, but we will need to “load” it before it can run. From 1c051fbfffd60725293d0c27ddc23efacb69c66c Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 10 Sep 2026 19:06:21 -0400 Subject: [PATCH 14/43] Update 07_transferring_files_remote.mdx --- .../07_transferring_files_remote.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx b/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx index 2028378bc9..522498cde9 100644 --- a/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx @@ -299,11 +299,11 @@ Say you have a “data” folder containing 10,000 or so files, a healthy mix of ::: :::tip[Solution] -1. `scp` will recursively copy the directory. This works, but without compression. -1. `rsync -ra` works like `scp -r`, but preserves file information like creation times. This is marginally better. -1. `rsync -raz` adds compression, which will save some bandwidth. If you have a strong CPU at both ends of the line, and you’re on a slow network, this is a good choice. -1. This command first uses `tar` to merge everything into a single file, then `rsync -z` to transfer it with compression. If you have a large number of files, metadata overhead can hamper your transfer, so this is a good idea. -1. This command uses `tar -z` to compress the archive, then `rsync` to transfer it. This may perform similarly to the command directly above, but in most cases (for large datasets), it’s the best combination of high throughput and low latency (making the most of your time and network connection). +1. `scp` will recursively copy the directory. This works, but without compression. +1. `rsync -ra` works like `scp -r`, but preserves file information like creation times. This is marginally better. +1. `rsync -raz` adds compression, which will save some bandwidth. If you have a strong CPU at both ends of the line, and you’re on a slow network, this is a good choice. +1. This command first uses `tar` to merge everything into a single file, then `rsync -z` to transfer it with compression. If you have a large number of files, metadata overhead can hamper your transfer, so this is a good idea. +1. This command uses `tar -z` to compress the archive, then `rsync` to transfer it. This may perform similarly to the command directly above, but in most cases (for large datasets), it’s the best combination of high throughput and low latency (making the most of your time and network connection). :::
From e275b1a1027fd2e9f42e17f09d3a40ae79b54fb1 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 10 Sep 2026 19:06:49 -0400 Subject: [PATCH 15/43] Fix bullet point formatting in tutorial Corrected formatting of bullet points in the interactive shell section. --- docs/hpc/14_tutorial_apptainer/02_running_containers.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/hpc/14_tutorial_apptainer/02_running_containers.mdx b/docs/hpc/14_tutorial_apptainer/02_running_containers.mdx index 2628e27dcb..5944b619ab 100644 --- a/docs/hpc/14_tutorial_apptainer/02_running_containers.mdx +++ b/docs/hpc/14_tutorial_apptainer/02_running_containers.mdx @@ -68,10 +68,10 @@ Both `apptainer run` and `apptainer exec` start a container, but they serve diff ## Opening an Interactive Shell Within a Container There are many reasons why you might want to use a container interactively. -- debugging (software, bind mounts, hardware integrations, etc.) -- testing software upgrades -- rapid Software Prototyping -- data exploration +- debugging (software, bind mounts, hardware integrations, etc.) +- testing software upgrades +- rapid Software Prototyping +- data exploration Apptainer provides the `apptainer shell` command for this purpose. From b6bcbacf533ef1f974b4fa5e19cd1aea7fd547ff Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 13:40:56 -0400 Subject: [PATCH 16/43] Update 08_sharing_data_on_hpc.mdx --- docs/hpc/03_storage/08_sharing_data_on_hpc.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx index 476ec27691..41706d1d07 100644 --- a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx +++ b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx @@ -89,13 +89,13 @@ Once you have a group assigned, managers of the group can use the `ipa` commands Relevant user commands include: - `ipa group-add-member`: Add members to a group. - - Example: + - Example: `ipa group-add-member GROUP-NAME --users='NETID'` - `ipa group-add-member-manager`: Add users that can manage members of this group. - - Example: + - Example: `ipa group-add-member-manager GROUP-NAME --users='NETID'` - `ipa group-find`: Search for groups. - - Example: + - Example: ``` ipa group-find test ---------------- @@ -112,15 +112,15 @@ Number of entries returned 2 ---------------------------- ``` - `ipa group-remove-member`: Remove members from a group. - - Example: + - Example: `ipa group-remove-member --users=NETID` - `ipa group-remove-member-manager`: Remove users that can manage members of this group. - - Example: + - Example: `ipa group-remove-member-manager --users=NETID` - `ipa group-show`: Display information about a named group. - - Example: + - Example: `ipa group-show GROUP-NAME` - - Example: + - Example: ``` [mdw303@torch-login-1 ~]$ ipa group-show g-hpc-mdw303test Group name: g-hpc-mdw303test From ffc3c1fda89726c280d7772dd2d4427cde4529dd Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 15:39:13 -0400 Subject: [PATCH 17/43] Update 04_scheduler_fundamentals.mdx --- docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx b/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx index 14a4d61daa..ca5fd74c6f 100644 --- a/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx @@ -191,7 +191,7 @@ Try submitting multiple jobs and then cancelling them all with `scancel -u NetID ## Job Arrays > Job arrays offer a mechanism for submitting and managing collections of similar jobs quickly and easily, useful for repetitive workloads that follow a common job pattern. This greatly improves overall performance, since job arrays with millions of tasks can be submitted in milliseconds (subject to configured size limits) and the scheduler can quickly identify cases when no more array tasks are eligible to start.
--- [Slurm documentation](https://slurm.schedmd.com/job_array.html) +> -- [Slurm documentation](https://slurm.schedmd.com/job_array.html) ### Job Array Example As stated above, you can have a single sbatch job submit multiple jobs by using Job Arrays. This example shows how you can run the same python file with a range of input parameters from a single sbatch file. From e29d92d9b9563ff97962ef265ec1d9e91e6d5dc9 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 15:55:00 -0400 Subject: [PATCH 18/43] Update 08_sharing_data_on_hpc.mdx --- docs/hpc/03_storage/08_sharing_data_on_hpc.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx index 41706d1d07..e0aa1bac54 100644 --- a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx +++ b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx @@ -89,13 +89,13 @@ Once you have a group assigned, managers of the group can use the `ipa` commands Relevant user commands include: - `ipa group-add-member`: Add members to a group. - - Example: + - Example: `ipa group-add-member GROUP-NAME --users='NETID'` - `ipa group-add-member-manager`: Add users that can manage members of this group. - - Example: + - Example: `ipa group-add-member-manager GROUP-NAME --users='NETID'` - `ipa group-find`: Search for groups. - - Example: + - Example: ``` ipa group-find test ---------------- From 4e8302b7d871e278b90658a80a9a9eb525fc181b Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 15:59:09 -0400 Subject: [PATCH 19/43] Fix formatting of examples in sharing data documentation --- docs/hpc/03_storage/08_sharing_data_on_hpc.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx index e0aa1bac54..b9601eea54 100644 --- a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx +++ b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx @@ -89,13 +89,13 @@ Once you have a group assigned, managers of the group can use the `ipa` commands Relevant user commands include: - `ipa group-add-member`: Add members to a group. - - Example: + - Example: `ipa group-add-member GROUP-NAME --users='NETID'` - `ipa group-add-member-manager`: Add users that can manage members of this group. - - Example: + - Example: `ipa group-add-member-manager GROUP-NAME --users='NETID'` - `ipa group-find`: Search for groups. - - Example: + - Example: ``` ipa group-find test ---------------- From 590ace505efc0648399404967689aa79457d8c84 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 16:03:12 -0400 Subject: [PATCH 20/43] Update 08_sharing_data_on_hpc.mdx --- docs/hpc/03_storage/08_sharing_data_on_hpc.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx index b9601eea54..87ce5f6567 100644 --- a/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx +++ b/docs/hpc/03_storage/08_sharing_data_on_hpc.mdx @@ -112,15 +112,15 @@ Number of entries returned 2 ---------------------------- ``` - `ipa group-remove-member`: Remove members from a group. - - Example: + - Example: `ipa group-remove-member --users=NETID` - `ipa group-remove-member-manager`: Remove users that can manage members of this group. - - Example: + - Example: `ipa group-remove-member-manager --users=NETID` - `ipa group-show`: Display information about a named group. - - Example: + - Example: `ipa group-show GROUP-NAME` - - Example: + - Example: ``` [mdw303@torch-login-1 ~]$ ipa group-show g-hpc-mdw303test Group name: g-hpc-mdw303test From 523c1a25da92daa4e357bb57726f65899b87a9fd Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 16:16:33 -0400 Subject: [PATCH 21/43] Update 03_moving_looking.mdx --- docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx index 4662302f5d..7b1977a2b2 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx @@ -64,7 +64,7 @@ $ ls :::info[**Differences between remote and local system**] Open a second terminal window on your local computer and run the `ls` command without logging in remotely. What differences do you see?
-**[click to see the solution]** +**\[click to see the solution]** :::
From 2d68ae24611c3856faff7d8f849327837e0083a1 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 16:18:50 -0400 Subject: [PATCH 22/43] Fix formatting for solution link in tutorial --- docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx index 7b1977a2b2..4662302f5d 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx @@ -64,7 +64,7 @@ $ ls :::info[**Differences between remote and local system**] Open a second terminal window on your local computer and run the `ls` command without logging in remotely. What differences do you see?
-**\[click to see the solution]** +**[click to see the solution]** :::
From 738ba9728a518665bd5f68b79eda135218f07079 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 16:28:54 -0400 Subject: [PATCH 23/43] Fix formatting of solution prompts in documentation --- docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx index 4662302f5d..b193f0e34e 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx @@ -64,7 +64,7 @@ $ ls :::info[**Differences between remote and local system**] Open a second terminal window on your local computer and run the `ls` command without logging in remotely. What differences do you see?
-**[click to see the solution]** +**\[click to see the solution\]** :::
@@ -236,7 +236,7 @@ Try 'ls --help' for more information. :::info[Looking at documentation] Looking at the man page for `ls` or using `ls --help`, what does the `-h` (`--human-readable`) option do? ::: -**[Click for Solution]** +**Click for Solution** :::tip[Solution] When used with the `-l` option, use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte and Petabyte in order to reduce the number of digits to four or fewer using base 2 for sizes. This option is not defined in IEEE Std 1003.1-2008 (“POSIX.1”). From 8bb5c4367b0906a6a7a261f243be63edb6c0b103 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 16:34:18 -0400 Subject: [PATCH 24/43] Update 03_moving_looking.mdx --- .../03_moving_looking.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx index b193f0e34e..d24da3c71e 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/03_moving_looking.mdx @@ -236,7 +236,7 @@ Try 'ls --help' for more information. :::info[Looking at documentation] Looking at the man page for `ls` or using `ls --help`, what does the `-h` (`--human-readable`) option do? ::: -**Click for Solution** +**\[Click for Solution\]** :::tip[Solution] When used with the `-l` option, use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte and Petabyte in order to reduce the number of digits to four or fewer using base 2 for sizes. This option is not defined in IEEE Std 1003.1-2008 (“POSIX.1”). @@ -258,7 +258,7 @@ Starting from `/Users/amanda/data/`, which of the following commands could Amand 1. `cd` 1. `cd ..` ::: -**[Click for Solution]** +**\[Click for Solution\]** :::tip[Solution] 1. No: `.` stands for the current directory. @@ -305,7 +305,7 @@ block-beta d --> i d --> j ``` -**[Click for Solution]** +**\[Click for Solution\]** :::tip[Solution] 1. No: there is a directory backup in `/Users`. @@ -327,7 +327,7 @@ pnas_sub/ pnas_final/ original/ 1. `ls -r -F /Users/backup` 1. Either #2 or #3 above, but not #1. -**[Click for Solution]** +**\[Click for Solution\]** :::tip[Solution] 1. No: `pwd` is not the name of a directory. @@ -343,7 +343,7 @@ pnas_sub/ pnas_final/ original/ What does the command ls do when used with the `-l` and `-h` arguments? Some of its output is about properties that we do not cover in this lesson (such as file permissions and ownership), but the rest should be useful nevertheless. -
**[Click for Solution]** +
**\[Click for Solution\]** ::: :::tip[Solution] @@ -360,7 +360,7 @@ The command `ls -t` lists things by time of last change, with most recently chan In what order does `ls -R -t` display things? **Hint:** `ls -l` uses a long listing format to view timestamps. ::: -**[Click for Solution]** +**\[Click for Solution\]** :::tip[Solution] The directories are listed alphabetical at each level, the files/directories in each directory are sorted by time of last change. From 4e1b2f4d0932c4b0870d36787296181efee3b161 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:37:55 -0400 Subject: [PATCH 25/43] Update 05_wildcards_pipes.mdx --- .../12_tutorial_intro_shell_hpc/05_wildcards_pipes.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/05_wildcards_pipes.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/05_wildcards_pipes.mdx index e7206c3e29..2e8b97ee1f 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/05_wildcards_pipes.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/05_wildcards_pipes.mdx @@ -109,7 +109,7 @@ $ wc -l * :::info[Multiple wildcards] You can even use multiple *s at a time. How would you run wc -l on every file with “fb” in it? -
**[Click for Solution]** +
**\[Click for Solution\]** :::
:::tip[Solution] @@ -124,7 +124,7 @@ i.e. *anything or nothing* then `fb` then *anything or nothing* :::info[Using other commands] Now let’s try cleaning up our working directory a bit. Create a folder called “fastq” and move all of our .fastq files there in one `mv` command. -
**[Click for Solution]** +
**\[Click for Solution\]** :::
:::tip[Solution] @@ -234,7 +234,7 @@ This is just the same as redirecting output to a file, then reading the number o :::info[Writing commands using pipes] How many files are there in the “fastq” directory we made earlier? (Use the shell to do this.) ::: -**[Click for Solution]** +**\[Click for Solution\]** :::tip[Solution] ```bash @@ -252,7 +252,7 @@ Let’s compress one of our files using `gzip`. $ gzip gene_association.fb ``` `zcat` acts like `cat`, except that it can read information from `.gz` (compressed) files. Using `zcat`, can you write a command to take a look at the top few lines of the `gene_association.fb.gz` file (without decompressing the file itself)?
-**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[Solution] From c1c6852be77f479f620f917df584de4813ab327c Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:38:55 -0400 Subject: [PATCH 26/43] Fix solution link formatting in tutorial Updated formatting for solution links in tutorial. --- .../06_scripts_variables_loops.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hpc/12_tutorial_intro_shell_hpc/06_scripts_variables_loops.mdx b/docs/hpc/12_tutorial_intro_shell_hpc/06_scripts_variables_loops.mdx index 87085de9f6..c0839bd653 100644 --- a/docs/hpc/12_tutorial_intro_shell_hpc/06_scripts_variables_loops.mdx +++ b/docs/hpc/12_tutorial_intro_shell_hpc/06_scripts_variables_loops.mdx @@ -298,7 +298,7 @@ gene_association.fb.gz `cd` to our `fastq` directory from earlier and write a loop to print off the name and top 4 lines of every fastq file in that directory. Is there a way to only run the loop on fastq files ending in _1.fastq?
-**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[Solution] @@ -326,7 +326,7 @@ $ echo ${FILE}.example stuff.txt.example ``` Can you write a script that prints off the name of every file in a directory with `.processed` added to it?
-**[Click for Solution]** +**\[Click for Solution\]** ::: ::::tip[Solution] @@ -381,7 +381,7 @@ $ ls -l example ``` How might we give ourselves permission to do everything with a file, but allow no one else to do anything with it.
-**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[Solution] From 5f514cc9b47d285d22d085f3773f63d4d1479b9e Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:49:21 -0400 Subject: [PATCH 27/43] Fix escape characters for solution links in tutorial --- .../03_exploring_remote_resources.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/03_exploring_remote_resources.mdx b/docs/hpc/13_tutorial_intro_hpc/03_exploring_remote_resources.mdx index cf7740c68b..63b465abda 100644 --- a/docs/hpc/13_tutorial_intro_hpc/03_exploring_remote_resources.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/03_exploring_remote_resources.mdx @@ -27,7 +27,7 @@ Take a look at your home directory on the remote system: :::info[What’s different between your machine and the remote?] Open a second terminal window on your local computer and run the `ls` command (without logging in to Torch). What differences do you see?
-**[Click for Solution]** +**\[Click for Solution\]** :::
:::tip[Solution] @@ -164,7 +164,7 @@ Note that, if you’re logged in to the remote computer cluster, you need to log [NYUNetID@log-1 ~]$ exit [user@laptop ~]$ ``` -**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[Solution] @@ -192,7 +192,7 @@ More detailed information can be found on the command line: :::info[Explore the Login Node] Now compare the resources of your computer with those of the login node.
-**[Click for Solution]** +**\[Click for Solution\]** :::
:::tip[Solution] @@ -230,7 +230,7 @@ Finally, let’s look at the resources available on the worker nodes where your :::info[Compare Your Computer, the Login Node and the Compute Node] Compare your laptop’s number of processors and memory with the numbers you see on the cluster login node and compute node. What implications do you think the differences might have on running your research work on the different systems and nodes?
-**[Click for Solution]** +**\[Click for Solution\]** :::
:::tip[Solution] From 8eeda1d0dd78c308927133d7b2b700d8b6121bbd Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:49:58 -0400 Subject: [PATCH 28/43] Update 04_scheduler_fundamentals.mdx --- docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx b/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx index ca5fd74c6f..9aafbd6b3e 100644 --- a/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/04_scheduler_fundamentals.mdx @@ -46,7 +46,7 @@ hostname :::info[Creating Our Test Job] Run the script. Does it execute on the cluster or just our login node? ::: -**[Click for Solution]** +**\[Click for Solution\]** :::tip[Solution] ```bash @@ -118,7 +118,7 @@ It’s best if your requests accurately reflect your job’s requirements. We’ :::info[Submitting Resource Requests] Modify our `hostname` script so that it runs for a minute, then submit a job for it on the cluster.
-**[Click for Solution]** +**\[Click for Solution\]** :::
:::tip[Solution] From e22706c25d738e6b7d2773701867a1c9f019d072 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:50:28 -0400 Subject: [PATCH 29/43] Update 05_environment_variables.mdx --- docs/hpc/13_tutorial_intro_hpc/05_environment_variables.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/05_environment_variables.mdx b/docs/hpc/13_tutorial_intro_hpc/05_environment_variables.mdx index 5f3004afd5..89657c4a0b 100644 --- a/docs/hpc/13_tutorial_intro_hpc/05_environment_variables.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/05_environment_variables.mdx @@ -108,7 +108,7 @@ Set a shell variable `TIME_STYLE` to have a value of `iso` and check this value Now, run the command `ls` with the option `-l` (which gives a long format). `export` the variable and rerun the `ls -l` command. Do you notice any difference?
-**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[Solution] @@ -122,7 +122,7 @@ You can see the complete set of environment variables in your current shell sess :::info[Job environment variables] When Slurm runs a job, it sets a number of environment variables for the job. One of these will let us check what directory our job script was submitted from. The `SLURM_SUBMIT_DIR` variable is set to the directory from which our job was submitted. Using the `SLURM_SUBMIT_DIR` variable, modify your job so that it prints out the location from which the job was submitted.
-**[Click for Solution]** +**\[Click for Solution\]** :::
:::tip[Solution] From fea49c789449dca0b0ae80ce6019d1d897e4fead Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:50:56 -0400 Subject: [PATCH 30/43] Fix markdown syntax for clickable solution link --- docs/hpc/13_tutorial_intro_hpc/06_modules.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx b/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx index d441f5a1d3..dfd9c488f8 100644 --- a/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/06_modules.mdx @@ -194,7 +194,7 @@ To load a software module we must specify the full module name: :::info[Using Software Modules in Scripts] Create a job that is able to run `R --version`. Remember, no software is loaded by default! Running a job is just like logging on to the system (you should not assume a module loaded on the login node is loaded on a compute node).
-**[Click for Solution]** +**\[Click for Solution\]** :::
:::tip[Solution] From f059b70b2d30f5084db0a89fbd5e80d2f8956239 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:51:37 -0400 Subject: [PATCH 31/43] Fix markdown for clickable solution links Updated markdown syntax for clickable solutions. --- .../13_tutorial_intro_hpc/07_transferring_files_remote.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx b/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx index 522498cde9..178eaa643c 100644 --- a/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/07_transferring_files_remote.mdx @@ -27,7 +27,7 @@ The word “tarball” in the above URL refers to a compressed archive format co You may also see the extension `.tgz`, which is just an abbreviation of `.tar.gz`. By default, `curl` and `wget` download files to the same name as the URL: in this case, `main`. Use one of the above commands to save the tarball as `amdahl.tar.gz`.
-**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[wget and curl Commands] @@ -211,7 +211,7 @@ Say we have to connect `rsync` through port 768 instead of 22. How would we modi [user@laptop ~]$ rsync amdahl.tar.gz NetID@login.torch.hpc.nyu.edu: ``` Hint: check the `man` page or “help” for `rsync`.
-**[Click for Solution]** +**\[Click for Solution\]** ::: ::::tip[Solution] @@ -295,7 +295,7 @@ Say you have a “data” folder containing 10,000 or so files, a healthy mix of ```bash [user@laptop ~]$ rsync -ra data.tar.gz NYUNetID@login.torch.hpc.nyu.edu:~/ ``` -**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[Solution] From 8fc5ba4e78119a22225bc3ec587d4e5bf4277ed9 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:52:19 -0400 Subject: [PATCH 32/43] Update 08_running_parallel_job.mdx --- docs/hpc/13_tutorial_intro_hpc/08_running_parallel_job.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/08_running_parallel_job.mdx b/docs/hpc/13_tutorial_intro_hpc/08_running_parallel_job.mdx index bd2093592a..3329668372 100644 --- a/docs/hpc/13_tutorial_intro_hpc/08_running_parallel_job.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/08_running_parallel_job.mdx @@ -116,7 +116,7 @@ Use `ls` to locate the output file. The `-t` flag sorts in reverse-chronological
:::info[Read the Job Output] -**[Click for Output]** +**\[Click for Output\]** ::: :::tip[Output] @@ -199,7 +199,7 @@ Total execution time (according to rank 0): 10.888 seconds :::info[Is it 4× faster?] The parallel job received 4× more processors than the serial job: does that mean it finished in ¼ the time?
-**[Click for Solution]** +**\[Click for Solution\]** :::
:::tip[Solution] From dd28d7c21a49a55740e3e0b645edb6ee2941e9e6 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:52:47 -0400 Subject: [PATCH 33/43] Fix markdown formatting for solution link --- .../13_tutorial_intro_hpc/09_using_resources_effectively.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/09_using_resources_effectively.mdx b/docs/hpc/13_tutorial_intro_hpc/09_using_resources_effectively.mdx index 6ee5c74db4..a725ae7cc9 100644 --- a/docs/hpc/13_tutorial_intro_hpc/09_using_resources_effectively.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/09_using_resources_effectively.mdx @@ -53,7 +53,7 @@ From the job history, we see that `amdahl` jobs finished executing in at most a Edit `parallel_job.sh` to set a better time estimate. How close can you get? Hint: use `-t`.
-**[Click for Solution]** +**\[Click for Solution\]** ::: :::tip[Solution] From 08b010b5274c990486ffc0267a50946331f4a83d Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 22:53:08 -0400 Subject: [PATCH 34/43] Fix markdown formatting for solution link --- .../13_tutorial_intro_hpc/10_using_resources_responsibly.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/13_tutorial_intro_hpc/10_using_resources_responsibly.mdx b/docs/hpc/13_tutorial_intro_hpc/10_using_resources_responsibly.mdx index f6b6dac8b3..50758eb1fa 100644 --- a/docs/hpc/13_tutorial_intro_hpc/10_using_resources_responsibly.mdx +++ b/docs/hpc/13_tutorial_intro_hpc/10_using_resources_responsibly.mdx @@ -40,7 +40,7 @@ Which of these commands would be a routine task to run on the login node? - `molecular_dynamics_2` - `tar -xzf R-3.3.0.tar.gz` -**[Click for Solution]** +**\[Click for Solution\]** ::: ::::tip[Solution] From d0456f1d129984202c83186b5bc8f3ec35a35d4a Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:05:27 -0400 Subject: [PATCH 35/43] Fix formatting for authors and tags in blog post Updated authors and tags formatting in blog post. --- blog/2025-05-02-blog-post.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/2025-05-02-blog-post.mdx b/blog/2025-05-02-blog-post.mdx index fbe0a1dcc6..450d10a86a 100644 --- a/blog/2025-05-02-blog-post.mdx +++ b/blog/2025-05-02-blog-post.mdx @@ -1,8 +1,8 @@ --- slug: 2025-05-02-o4-mini title: o4-mini is now available -authors: [sajid-ali] -tags: [pythia, genai] +authors: \[sajid-ali\] +tags: \[pythia, genai\] --- We are pleased to announce that `o4-mini` is now available via Pythia. Here is an overview of the model: https://platform.openai.com/docs/models/o4-mini From 6ebf9d2c3611e8d52d88ffd4901a4044c372ef33 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:06:13 -0400 Subject: [PATCH 36/43] Fix authors and tags formatting in blog post Updated authors and tags formatting in the blog post. --- blog/2025-09-10-blog-post.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/2025-09-10-blog-post.mdx b/blog/2025-09-10-blog-post.mdx index aa445567ad..48bdad8755 100644 --- a/blog/2025-09-10-blog-post.mdx +++ b/blog/2025-09-10-blog-post.mdx @@ -1,8 +1,8 @@ --- slug: 2025-09-10-claude title: Claude is now available -authors: [sajid-ali] -tags: [pythia, genai] +authors: \[sajid-ali\] +tags: \[pythia, genai\] --- We are pleased to announce that the `claude` (`4.0` and `3.7`) models are now available via Pythia. Here are the overviews for the models: From 12a3b269199e514867b46820386abd4f34b1d7f0 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:09:20 -0400 Subject: [PATCH 37/43] Update 2025-05-02-blog-post.mdx --- blog/2025-05-02-blog-post.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/2025-05-02-blog-post.mdx b/blog/2025-05-02-blog-post.mdx index 450d10a86a..fbe0a1dcc6 100644 --- a/blog/2025-05-02-blog-post.mdx +++ b/blog/2025-05-02-blog-post.mdx @@ -1,8 +1,8 @@ --- slug: 2025-05-02-o4-mini title: o4-mini is now available -authors: \[sajid-ali\] -tags: \[pythia, genai\] +authors: [sajid-ali] +tags: [pythia, genai] --- We are pleased to announce that `o4-mini` is now available via Pythia. Here is an overview of the model: https://platform.openai.com/docs/models/o4-mini From fb12ca00babaf170739d56b38509a9b1be970759 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:09:39 -0400 Subject: [PATCH 38/43] Update 2025-09-10-blog-post.mdx --- blog/2025-09-10-blog-post.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/2025-09-10-blog-post.mdx b/blog/2025-09-10-blog-post.mdx index 48bdad8755..aa445567ad 100644 --- a/blog/2025-09-10-blog-post.mdx +++ b/blog/2025-09-10-blog-post.mdx @@ -1,8 +1,8 @@ --- slug: 2025-09-10-claude title: Claude is now available -authors: \[sajid-ali\] -tags: \[pythia, genai\] +authors: [sajid-ali] +tags: [pythia, genai] --- We are pleased to announce that the `claude` (`4.0` and `3.7`) models are now available via Pythia. Here are the overviews for the models: From ed65a85a63af4bbf5057a9e3a6a79f148a38175a Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:15:32 -0400 Subject: [PATCH 39/43] Update remark_args to ignore blog pattern --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 85902e598f..7bf67158d9 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -50,4 +50,4 @@ jobs: fail_level: "error" level: "warning" install_deps: false - remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ext .md,.mdx" + remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ignore-pattern=blog --ext .md,.mdx" From 0b756f33c0209a07487c2929218d167141eb5f0f Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:18:44 -0400 Subject: [PATCH 40/43] Change linting fail level from error to warning --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 7bf67158d9..9e51926630 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -47,7 +47,7 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} reporter: github-pr-review - fail_level: "error" + fail_level: "warning" level: "warning" install_deps: false remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ignore-pattern=blog --ext .md,.mdx" From 451699e8c291ef380c4e39ba43c54025761a40ed Mon Sep 17 00:00:00 2001 From: Sajid Ali Date: Mon, 14 Sep 2026 09:51:01 -0400 Subject: [PATCH 41/43] lint blog posts as well --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 9e51926630..5f03f15359 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -50,4 +50,4 @@ jobs: fail_level: "warning" level: "warning" install_deps: false - remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ignore-pattern=blog --ext .md,.mdx" + remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ext .md,.mdx" From d0e97324af9a404315bc513eed6782e5bc95d68a Mon Sep 17 00:00:00 2001 From: Sajid Ali Date: Mon, 14 Sep 2026 09:56:52 -0400 Subject: [PATCH 42/43] remove redundant pnpm install step --- .github/workflows/lint.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 5f03f15359..822be6bc75 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -20,15 +20,6 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Install pnpm - uses: pnpm/action-setup@v6 - with: - # Pinned below 11.12.0, whose self-install crashes with - # "Cannot use 'in' operator to search for 'integrity' in undefined". - # https://github.com/pnpm/action-setup/issues/276 - # https://github.com/pnpm/pnpm/issues/12959 - version: 11.11.0 - # npm (not pnpm) is intentional: remark-cli is installed globally by the # action at /usr/local/lib/node_modules/. pnpm's global store is not on # that resolution path, so remark-cli would fall back to resolving From 233056760a59fe7bfb5b183c2e02079ffc2bb330 Mon Sep 17 00:00:00 2001 From: Sajid Ali Date: Mon, 14 Sep 2026 10:01:48 -0400 Subject: [PATCH 43/43] blogs entries have yaml formatted entries at the top, add remark-frontmatter to lint those sections --- .github/workflows/lint.yaml | 4 +- .memsearch/.index-state.json | 16 ---- package.json | 2 + pnpm-lock.yaml | 147 +++++++++++++++++++++++++++++++++++ 4 files changed, 151 insertions(+), 18 deletions(-) delete mode 100644 .memsearch/.index-state.json diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 822be6bc75..5f7df45548 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -31,7 +31,7 @@ jobs: # install_deps: false prevents the action from running npm install and # reintroducing the incompatible project dependencies. - name: Install remark plugins globally - run: npm install -g remark-mdx@2 remark-lint-no-undefined-references@4 remark-directive@3 + run: npm install -g remark-mdx@2 remark-lint-no-undefined-references@4 remark-directive@3 remark-frontmatter@4 - name: remark-lint uses: reviewdog/action-remark-lint@v5 @@ -41,4 +41,4 @@ jobs: fail_level: "warning" level: "warning" install_deps: false - remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --ext .md,.mdx" + remark_args: "--use=remark-preset-lint-recommended --use=remark-mdx --use=remark-directive --use=remark-frontmatter --ext .md,.mdx" diff --git a/.memsearch/.index-state.json b/.memsearch/.index-state.json deleted file mode 100644 index 91f0f63c59..0000000000 --- a/.memsearch/.index-state.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "collection": "ms_rts_docs_f1cd2d40", - "failed_files": [], - "indexed_chunks": 1, - "indexed_files": 6, - "last_completed_at": "2026-07-21T18:32:57.171985Z", - "last_started_at": "2026-07-21T18:32:55.572924Z", - "last_success_at": "2026-07-21T18:32:57.171985Z", - "milvus_uri": "~/.memsearch/milvus.db", - "operation": "index", - "paths": ["/Users/ss19980/Documents/packages/rts-docs/.memsearch/memory"], - "schema_version": 1, - "status": "ok", - "total_files": 6, - "updated_at": "2026-07-21T18:32:57.171985Z" -} diff --git a/package.json b/package.json index 77ec84e856..c0b20a7006 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "prettier": "^3.9.4", "prettier-plugin-jsdoc": "^1.8.1", "remark-directive": "^3.0.0", + "remark-frontmatter": "^4.0.1", "stylelint": "^17.14.0", "stylelint-config-rational-order": "^0.1.2", "stylelint-config-standard": "^40.0.0", @@ -80,6 +81,7 @@ "plugins": [ "remark-lint", "remark-directive", + "remark-frontmatter", [ "remark-lint-no-undefined-references" ] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17f725ae2f..35a7549122 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -114,6 +114,9 @@ importers: remark-directive: specifier: ^3.0.0 version: 3.0.1(supports-color@10.2.2) + remark-frontmatter: + specifier: ^4.0.1 + version: 4.0.1 stylelint: specifier: ^17.14.0 version: 17.14.0(supports-color@10.2.2)(typescript@5.9.3) @@ -2754,6 +2757,9 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/mdast@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -6111,6 +6117,9 @@ packages: mdast-util-from-markdown@2.0.3: resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + mdast-util-frontmatter@1.0.1: + resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} + mdast-util-frontmatter@2.0.1: resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} @@ -6144,15 +6153,24 @@ packages: mdast-util-mdxjs-esm@2.0.1: resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} mdast-util-to-hast@13.2.1: resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -6208,6 +6226,9 @@ packages: micromark-extension-directive@3.0.2: resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} + micromark-extension-frontmatter@1.1.1: + resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==} + micromark-extension-frontmatter@2.0.0: resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} @@ -6283,9 +6304,15 @@ packages: micromark-util-combine-extensions@2.0.1: resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + micromark-util-decode-numeric-character-reference@2.0.2: resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + micromark-util-decode-string@2.0.1: resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} @@ -7617,6 +7644,9 @@ packages: resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + remark-frontmatter@4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} + remark-frontmatter@5.0.0: resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} @@ -8586,6 +8616,9 @@ packages: resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} engines: {node: '>=20'} + unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -8609,6 +8642,9 @@ packages: unist-util-is@3.0.0: resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} + unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -8624,18 +8660,27 @@ packages: unist-util-stringify-position@1.1.2: resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} + unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} unist-util-visit-parents@2.1.2: resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} + unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} unist-util-visit@1.4.1: resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} + unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + unist-util-visit@5.1.0: resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} @@ -8752,12 +8797,18 @@ packages: vfile-message@1.1.1: resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} + vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + vfile-message@4.0.3: resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@3.0.1: resolution: {integrity: sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==} + vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -12743,6 +12794,10 @@ snapshots: '@types/json5@0.0.29': {} + '@types/mdast@3.0.15': + dependencies: + '@types/unist': 2.0.11 + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -16457,6 +16512,12 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-frontmatter@1.0.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + micromark-extension-frontmatter: 1.1.1 + mdast-util-frontmatter@2.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 @@ -16574,6 +16635,11 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-phrasing@3.0.1: + dependencies: + '@types/mdast': 3.0.15 + unist-util-is: 5.2.1 + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 @@ -16591,6 +16657,17 @@ snapshots: unist-util-visit: 5.1.0 vfile: 6.0.3 + mdast-util-to-markdown@1.5.0: + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 @@ -16603,6 +16680,10 @@ snapshots: unist-util-visit: 5.1.0 zwitch: 2.0.4 + mdast-util-to-string@3.2.0: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 @@ -16709,6 +16790,13 @@ snapshots: micromark-util-types: 2.0.2 parse-entities: 4.0.2 + micromark-extension-frontmatter@1.1.1: + dependencies: + fault: 2.0.1 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 @@ -16899,10 +16987,21 @@ snapshots: micromark-util-chunked: 2.0.1 micromark-util-types: 2.0.2 + micromark-util-decode-numeric-character-reference@1.1.0: + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: micromark-util-symbol: 2.0.1 + micromark-util-decode-string@1.1.0: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-decode-string@2.0.1: dependencies: decode-named-character-reference: 1.3.0 @@ -18368,6 +18467,13 @@ snapshots: node-emoji: 2.2.0 unified: 11.0.5 + remark-frontmatter@4.0.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-frontmatter: 1.0.1 + micromark-extension-frontmatter: 1.1.1 + unified: 10.1.2 + remark-frontmatter@5.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 @@ -19539,6 +19645,16 @@ snapshots: unicorn-magic@0.4.0: {} + unified@10.1.2: + dependencies: + '@types/unist': 2.0.11 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 5.3.7 + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -19579,6 +19695,10 @@ snapshots: unist-util-is@3.0.0: {} + unist-util-is@5.2.1: + dependencies: + '@types/unist': 2.0.11 + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -19597,6 +19717,10 @@ snapshots: unist-util-stringify-position@1.1.2: {} + unist-util-stringify-position@3.0.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 @@ -19605,6 +19729,11 @@ snapshots: dependencies: unist-util-is: 3.0.0 + unist-util-visit-parents@5.1.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 5.2.1 + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 @@ -19614,6 +19743,12 @@ snapshots: dependencies: unist-util-visit-parents: 2.1.2 + unist-util-visit@4.1.2: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 @@ -19747,6 +19882,11 @@ snapshots: dependencies: unist-util-stringify-position: 1.1.2 + vfile-message@3.1.4: + dependencies: + '@types/unist': 2.0.11 + unist-util-stringify-position: 3.0.3 + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 @@ -19759,6 +19899,13 @@ snapshots: unist-util-stringify-position: 1.1.2 vfile-message: 1.1.1 + vfile@5.3.7: + dependencies: + '@types/unist': 2.0.11 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + vfile@6.0.3: dependencies: '@types/unist': 3.0.3