From 38458a80f25dbd255aaa226eaa317ea0ccbffc82 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 26 Feb 2025 14:52:40 +0100 Subject: [PATCH] chore(docs): check formatting of docs in ci and do initial formatting (#3734) * chore(ci): check formatting of docs in ci Closes #2419 * Reduce diff * Format * Make prettier respect the .gitignore file as well * make md and mdx files indent at 2 * format after rebase (main was unformatted) * Update docs/package.json Co-authored-by: Cornelius Roemer --------- Co-authored-by: Felix Hennig Co-authored-by: Felix Hennig --- .github/workflows/docs-test.yml | 3 + docs/.prettierrc | 6 + docs/README.md | 2 + docs/astro.config.mjs | 4 +- docs/package.json | 3 +- docs/src/components/MarkdownRenderer.astro | 9 +- docs/src/components/SchemaDocs.astro | 72 +++--- .../for-administrators/data-use-terms.mdx | 6 +- .../existing-preprocessing-pipelines.md | 4 +- .../for-administrators/pipeline-concept.md | 2 +- .../for-administrators/sequence-reporting.md | 2 +- .../setup-with-k3d-and-nginx.mdx | 118 +++++----- .../setup-with-kubernetes.md | 216 +++++++++--------- .../docs/for-users/submit-sequences.md | 14 +- docs/src/content/docs/index.mdx | 52 ++--- .../docs/reference/helm-chart-config.mdx | 10 +- 16 files changed, 270 insertions(+), 253 deletions(-) diff --git a/.github/workflows/docs-test.yml b/.github/workflows/docs-test.yml index af8b354bbb..55efa57d9e 100644 --- a/.github/workflows/docs-test.yml +++ b/.github/workflows/docs-test.yml @@ -31,3 +31,6 @@ jobs: - name: Check Build run: npm run build working-directory: ./docs + - name: Check Format + run: npm run check-format + working-directory: ./docs diff --git a/docs/.prettierrc b/docs/.prettierrc index 1b5bd8dd9b..b52d8ff57d 100644 --- a/docs/.prettierrc +++ b/docs/.prettierrc @@ -13,6 +13,12 @@ "options": { "parser": "astro" } + }, + { + "files": ["*.md", "*.mdx"], + "options": { + "tabWidth": 2 + } } ] } diff --git a/docs/README.md b/docs/README.md index d1cd65ae3a..274e8d9f61 100644 --- a/docs/README.md +++ b/docs/README.md @@ -34,6 +34,8 @@ All commands are run from the root of the project, from a terminal: | :------------------------ | :----------------------------------------------- | | `npm install` | Installs dependencies | | `npm run dev` | Starts local dev server at `localhost:4321` | +| `npm run format` | Formats your code using Prettier | +| `npm run check-format` | Checks if your code is formatted correctly | | `npm run build` | Build your production site to `./dist/` | | `npm run preview` | Preview your build locally, before deploying | | `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 8fa96e2d97..6f4a237083 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -70,8 +70,8 @@ export default defineConfig({ items: [ 'for-administrators/pipeline-concept', 'for-administrators/existing-preprocessing-pipelines', - 'for-administrators/build-new-preprocessing-pipeline' - ] + 'for-administrators/build-new-preprocessing-pipeline', + ], }, { label: 'Data use terms', link: '/for-administrators/data-use-terms/' }, { label: 'User administration', link: '/for-administrators/user-administration/' }, diff --git a/docs/package.json b/docs/package.json index 0f7b081ef0..781ad76aa1 100644 --- a/docs/package.json +++ b/docs/package.json @@ -9,7 +9,8 @@ "build": "astro check && astro build", "preview": "astro preview", "astro": "astro", - "format": "prettier --ignore-path \"../.gitignore\" --write \"./**/*.{ts,tsx,json,astro,md,mdx,mjs,cjs}\"" + "check-format": "prettier --ignore-path \"../.gitignore\" --ignore-path .gitignore --check \"./**/*.{ts,tsx,json,astro,md,mdx,mjs,cjs}\"", + "format": "prettier --ignore-path \"../.gitignore\" --ignore-path .gitignore --write \"./**/*.{ts,tsx,json,astro,md,mdx,mjs,cjs}\"" }, "dependencies": { "@astrojs/check": "^0.9.4", diff --git a/docs/src/components/MarkdownRenderer.astro b/docs/src/components/MarkdownRenderer.astro index b408a4451a..3adcce4f41 100644 --- a/docs/src/components/MarkdownRenderer.astro +++ b/docs/src/components/MarkdownRenderer.astro @@ -9,10 +9,7 @@ import rehypeStringify from 'rehype-stringify'; const { content } = Astro.props; -const html = String(await unified() - .use(remarkParse) - .use(remarkRehype) - .use(rehypeStringify) - .process(content)); +const html = String(await unified().use(remarkParse).use(remarkRehype).use(rehypeStringify).process(content)); --- -
+ +
diff --git a/docs/src/components/SchemaDocs.astro b/docs/src/components/SchemaDocs.astro index f9b2bfac9a..340cf17845 100644 --- a/docs/src/components/SchemaDocs.astro +++ b/docs/src/components/SchemaDocs.astro @@ -4,7 +4,12 @@ * Properties in the schema can be assigned to groups by adding a new "groups": ["group1", "group2"] key to them. * This way, you can split schema definition into semantic groups. */ -import { type JSONSchema7, type JSONSchema7Definition, type JSONSchema7TypeName, type JSONSchema7Type } from 'json-schema'; +import { + type JSONSchema7, + type JSONSchema7Definition, + type JSONSchema7TypeName, + type JSONSchema7Type, +} from 'json-schema'; import MarkdownRenderer from './MarkdownRenderer.astro'; import rawSchema from '../values.schema.json'; @@ -26,24 +31,24 @@ function capitalizeFirst(str: string) { */ function typeToString( type: JSONSchema7TypeName | JSONSchema7TypeName[] | undefined, - enumvals: JSONSchema7Type[] | undefined + enumvals: JSONSchema7Type[] | undefined, ) { - if (type === undefined) return ""; + if (type === undefined) return ''; if (Array.isArray(type)) { - return type.map(t => capitalizeFirst(String(t))).join(", ") + return type.map((t) => capitalizeFirst(String(t))).join(', '); } - if (type === "string" && enumvals !== undefined) { - return enumvals?.map(enumval => String(enumval)).join(", ") + if (type === 'string' && enumvals !== undefined) { + return enumvals?.map((enumval) => String(enumval)).join(', '); } return capitalizeFirst(String(type)); } /** A row in the table. */ interface Row { - key: string, - type?: string, - default?: string, - description?: string + key: string; + type?: string; + default?: string; + description?: string; } const rows: Row[] = []; @@ -55,44 +60,40 @@ const rows: Row[] = []; * @param definition The definition of the property currently observed. */ function addSelfAndChildren(prefix: string, key: string, definition: JSONSchema7Definition) { - if ( - typeof definition === 'object' && - definition !== null - ) { + if (typeof definition === 'object' && definition !== null) { if ('placeholder' in definition) { key = `<${definition.placeholder}>`; } if ('docsIncludePrefix' in definition && definition.docsIncludePrefix === false) { - prefix = ""; + prefix = ''; } - if ( - 'groups' in definition && - Array.isArray(definition.groups) && - definition.groups.includes(group) - ) { - var def = definition.default !== undefined ? String(definition.default) : ""; - if (definition.type === "string" && def !== "") { - def = `"${def}"` + if ('groups' in definition && Array.isArray(definition.groups) && definition.groups.includes(group)) { + var def = definition.default !== undefined ? String(definition.default) : ''; + if (definition.type === 'string' && def !== '') { + def = `"${def}"`; } rows.push({ key: `${prefix}${key}`, type: typeToString(definition.type, definition.enum), default: def, - description: definition.description - }) + description: definition.description, + }); } if ('properties' in definition && definition.properties) { Object.entries(definition.properties).forEach(([k, d]) => addSelfAndChildren(`${prefix}${key}.`, k, d)); } if ('patternProperties' in definition && definition.patternProperties) { - Object.entries(definition.patternProperties).forEach(([k, d]) => addSelfAndChildren(`${prefix}${key}.`, k, d)); + Object.entries(definition.patternProperties).forEach(([k, d]) => + addSelfAndChildren(`${prefix}${key}.`, k, d), + ); } if ('items' in definition && definition.items !== undefined && typeof definition.items === 'object') { const items = definition.items; - if ('length' in items) { // filter out arrays + if ('length' in items) { + // filter out arrays return; } - addSelfAndChildren(`${prefix}${key}.`, "[]", items) + addSelfAndChildren(`${prefix}${key}.`, '[]', items); } } } @@ -101,7 +102,7 @@ if (schema.definitions) { Object.entries(schema.definitions).forEach(([_, definition]) => { if (typeof definition === 'object' && definition.properties) { Object.entries(definition.properties).forEach(([key, definition]) => { - addSelfAndChildren("", key, definition); + addSelfAndChildren('', key, definition); }); } }); @@ -110,10 +111,9 @@ if (schema.definitions) { // start of recursing with the top level properties in the schema. if (schema.properties) { Object.entries(schema.properties).forEach(([key, definition]) => { - addSelfAndChildren("", key, definition); + addSelfAndChildren('', key, definition); }); } - ---
@@ -128,12 +128,16 @@ if (schema.properties) { { - rows.map(row => ( + rows.map((row) => ( - {row.key} + + {row.key} + {row.type} {row.default} - + + + )) } diff --git a/docs/src/content/docs/for-administrators/data-use-terms.mdx b/docs/src/content/docs/for-administrators/data-use-terms.mdx index 471fd287b4..d44f569f38 100644 --- a/docs/src/content/docs/for-administrators/data-use-terms.mdx +++ b/docs/src/content/docs/for-administrators/data-use-terms.mdx @@ -5,7 +5,11 @@ description: What's the data use terms concept of Loculus and how to configure i import { Aside } from '@astrojs/starlight/components'; - + Loculus comes with built-in handling of data use terms for submitted data, which means that data can either be _open_ or _restricted_. You can define, what restricted means yourself. Users can submit data as restricted, but they have to give a date at which point the sequences become open, this date can at most be one year from the submission date. diff --git a/docs/src/content/docs/for-administrators/existing-preprocessing-pipelines.md b/docs/src/content/docs/for-administrators/existing-preprocessing-pipelines.md index 4ca4b588ee..cdbb3010af 100644 --- a/docs/src/content/docs/for-administrators/existing-preprocessing-pipelines.md +++ b/docs/src/content/docs/for-administrators/existing-preprocessing-pipelines.md @@ -16,8 +16,8 @@ Given a nextclade dataset this pipeline uses [nextclade run](https://docs.nextst ```yaml preprocessing: - - configFile: - nextclade_dataset_name: nextstrain/mpox/all-clades + - configFile: + nextclade_dataset_name: nextstrain/mpox/all-clades ``` Additionally the pipeline performs checks on the metadata fields. The checks are defined by custom preprocessing functions in the `values.yaml` file. These checks can be applied to and customized for other metadata fields, see [Preprocessing Checks](https://github.com/loculus-project/loculus/blob/main/preprocessing/nextclade/README.md#preprocessing-checks) for more info. diff --git a/docs/src/content/docs/for-administrators/pipeline-concept.md b/docs/src/content/docs/for-administrators/pipeline-concept.md index 8247777acb..424fdf3707 100644 --- a/docs/src/content/docs/for-administrators/pipeline-concept.md +++ b/docs/src/content/docs/for-administrators/pipeline-concept.md @@ -25,4 +25,4 @@ While the exact functionality depends on the specific pipeline, generally a pipe As the preprocessing logic might change over time, preprocessing pipelines are versioned (You specify the pipeline version under `.preprocessing.version`). The backend keeps track of which sequences have successfully been processed with which pipeline version. -Once all data for an organism has successfully been processed with a new version, that version will also automatically be served to users. \ No newline at end of file +Once all data for an organism has successfully been processed with a new version, that version will also automatically be served to users. diff --git a/docs/src/content/docs/for-administrators/sequence-reporting.md b/docs/src/content/docs/for-administrators/sequence-reporting.md index 1a901c259f..1e6edd3427 100644 --- a/docs/src/content/docs/for-administrators/sequence-reporting.md +++ b/docs/src/content/docs/for-administrators/sequence-reporting.md @@ -12,7 +12,7 @@ sequenceFlagging: github: organization: pathoplexus repository: curation_reports - issueTemplate: sequence-metadata-issue.md # (optional) + issueTemplate: sequence-metadata-issue.md # (optional) ``` Sequence reporting is done through GitHub issues. diff --git a/docs/src/content/docs/for-administrators/setup-with-k3d-and-nginx.mdx b/docs/src/content/docs/for-administrators/setup-with-k3d-and-nginx.mdx index 78eabaed23..e0cf105757 100644 --- a/docs/src/content/docs/for-administrators/setup-with-k3d-and-nginx.mdx +++ b/docs/src/content/docs/for-administrators/setup-with-k3d-and-nginx.mdx @@ -98,62 +98,62 @@ runDevelopmentMainDatabase: true runDevelopmentKeycloakDatabase: true website: - runtimeConfig: - public: - backendUrl: 'https://api./backend' - lapisUrlTemplate: 'https://api./%organism%' - keycloakUrl: 'https://auth.' + runtimeConfig: + public: + backendUrl: 'https://api./backend' + lapisUrlTemplate: 'https://api./%organism%' + keycloakUrl: 'https://auth.' auth: - verifyEmail: false - resetPasswordAllowed: false - registrationAllowed: true - smtp: null - identityProviders: null + verifyEmail: false + resetPasswordAllowed: false + registrationAllowed: true + smtp: null + identityProviders: null disableIngest: true disableEnaSubmission: true seqSets: - enabled: false + enabled: false secrets: - keycloak-admin: - type: raw - data: - initialAdminPassword: '' + keycloak-admin: + type: raw + data: + initialAdminPassword: '' organisms: - angelovirus: - schema: - organismName: 'Angelovirus' - metadata: - - name: country - type: string - initiallyVisible: true - - name: city - type: string - initiallyVisible: true - website: - tableColumns: - - country - - city - defaultOrder: descending - defaultOrderBy: country - preprocessing: - - version: 1 - image: ghcr.io/loculus-project/preprocessing-nextclade - args: - - 'prepro' - configFile: - log_level: DEBUG - genes: [] - batch_size: 100 - referenceGenomes: - nucleotideSequences: - - name: 'main' - sequence: 'NNN' # We are not performing alignment here, so this sequence doesn't matter - genes: [] + angelovirus: + schema: + organismName: 'Angelovirus' + metadata: + - name: country + type: string + initiallyVisible: true + - name: city + type: string + initiallyVisible: true + website: + tableColumns: + - country + - city + defaultOrder: descending + defaultOrderBy: country + preprocessing: + - version: 1 + image: ghcr.io/loculus-project/preprocessing-nextclade + args: + - 'prepro' + configFile: + log_level: DEBUG + genes: [] + batch_size: 100 + referenceGenomes: + nucleotideSequences: + - name: 'main' + sequence: 'NNN' # We are not performing alignment here, so this sequence doesn't matter + genes: [] ``` ## Step 4: Install and deploy @@ -300,20 +300,20 @@ Then, adapt `my-values.yaml` and add under the `secrets` key: ```yaml secrets: - database: - type: raw - data: - url: 'jdbc:postgresql://:/' - username: '' - password: '' - keycloak-database: - type: raw - data: - addr: '' - port: '' - database: '' - username: '' - password: '' + database: + type: raw + data: + url: 'jdbc:postgresql://:/' + username: '' + password: '' + keycloak-database: + type: raw + data: + addr: '' + port: '' + database: '' + username: '' + password: '' ``` To reinstall Loculus, execute: diff --git a/docs/src/content/docs/for-administrators/setup-with-kubernetes.md b/docs/src/content/docs/for-administrators/setup-with-kubernetes.md index 907ce24c9a..56e2b12afb 100644 --- a/docs/src/content/docs/for-administrators/setup-with-kubernetes.md +++ b/docs/src/content/docs/for-administrators/setup-with-kubernetes.md @@ -37,20 +37,20 @@ These details are configured in the `secrets` section of the `values.yaml` file. ```yaml secrets: - database: - type: raw - data: - url: 'jdbc:postgresql://loculus-database-service/loculus' - username: 'postgres' - password: 'password' - keycloak-database: - type: raw - data: - addr: 'loculus-keycloak-database-service' - database: 'keycloak' - username: 'postgres' - password: 'unsecure' - port: '5432' + database: + type: raw + data: + url: 'jdbc:postgresql://loculus-database-service/loculus' + username: 'postgres' + password: 'password' + keycloak-database: + type: raw + data: + addr: 'loculus-keycloak-database-service' + database: 'keycloak' + username: 'postgres' + password: 'unsecure' + port: '5432' ``` You can also use sealed secrets, see the [Sealed Secrets](#sealedsecret) section for more information. @@ -71,65 +71,65 @@ Here's an example of how the organism configuration might look: ```yaml organisms: - ebolavirus-sudan: - schema: - image: 'https://cdn.britannica.com/01/179201-050-FED1B381/filamentous-ebolavirus-particles-scanning-electron-micrograph-cell.jpg?w=400&h=300&c=crop' - organismName: 'Ebolavirus Sudan' - metadata: - - name: date - type: date - header: 'Collection Data' - - name: region - type: string - generateIndex: true - autocomplete: true - header: 'Collection Data' - - name: country - type: string - generateIndex: true - autocomplete: true - header: 'Collection Data' - - name: division - type: string - generateIndex: true - autocomplete: true - header: 'Collection Data' - - name: host - type: string - autocomplete: true - - name: pangoLineage - type: string - autocomplete: true - required: true - - name: insdcAccessionFull - type: string - displayName: INSDC accession - customDisplay: - type: link - url: 'https://www.ncbi.nlm.nih.gov/nuccore/__value__' - website: - tableColumns: - - country - - division - - date - - pangoLineage - defaultOrder: descending - defaultOrderBy: date - silo: - dateToSortBy: date - partitionBy: pangoLineage - preprocessing: - image: ghcr.io/loculus-project/preprocessing-dummy - args: - - '--watch' - warnings: true - errors: true - randomWarnError: true - referenceGenomes: - nucleotideSequences: - - name: 'main' - sequence: '[[URL:https://cov2tree.nyc3.cdn.digitaloceanspaces.com/reference.txt]]' - genes: [] + ebolavirus-sudan: + schema: + image: 'https://cdn.britannica.com/01/179201-050-FED1B381/filamentous-ebolavirus-particles-scanning-electron-micrograph-cell.jpg?w=400&h=300&c=crop' + organismName: 'Ebolavirus Sudan' + metadata: + - name: date + type: date + header: 'Collection Data' + - name: region + type: string + generateIndex: true + autocomplete: true + header: 'Collection Data' + - name: country + type: string + generateIndex: true + autocomplete: true + header: 'Collection Data' + - name: division + type: string + generateIndex: true + autocomplete: true + header: 'Collection Data' + - name: host + type: string + autocomplete: true + - name: pangoLineage + type: string + autocomplete: true + required: true + - name: insdcAccessionFull + type: string + displayName: INSDC accession + customDisplay: + type: link + url: 'https://www.ncbi.nlm.nih.gov/nuccore/__value__' + website: + tableColumns: + - country + - division + - date + - pangoLineage + defaultOrder: descending + defaultOrderBy: date + silo: + dateToSortBy: date + partitionBy: pangoLineage + preprocessing: + image: ghcr.io/loculus-project/preprocessing-dummy + args: + - '--watch' + warnings: true + errors: true + randomWarnError: true + referenceGenomes: + nucleotideSequences: + - name: 'main' + sequence: '[[URL:https://cov2tree.nyc3.cdn.digitaloceanspaces.com/reference.txt]]' + genes: [] ``` In this example, the configuration for the "ebolavirus-sudan" organism is defined. It includes schema settings, website display options, silo configuration, preprocessing details, and reference genome information. @@ -140,15 +140,15 @@ Your preprocessing pipeline can be customized for each organism. Currently, we u ```yaml preprocessing: - - version: 1 - image: ghcr.io/loculus-project/preprocessing-nextclade - args: - - 'prepro' - configFile: - log_level: DEBUG - nextclade_dataset_name: nextstrain/ebola/zaire - genes: [NP, VP35, VP40, GP, sGP, ssGP, VP30, VP24, L] - batch_size: 100 + - version: 1 + image: ghcr.io/loculus-project/preprocessing-nextclade + args: + - 'prepro' + configFile: + log_level: DEBUG + nextclade_dataset_name: nextstrain/ebola/zaire + genes: [NP, VP35, VP40, GP, sGP, ssGP, VP30, VP24, L] + batch_size: 100 ``` Additionally, the `tableColumns` section defines which metadata fields are shown as columns in the search results. @@ -161,15 +161,15 @@ In Loculus, sequence data from multi-segmented viruses is stored in accessioned ```yaml organisms: - cchf: - schema: - organismName: 'Crimean-Congo Hemorrhagic Fever Virus' - nucleotideSequences: [L, M, S] - metadata: - - name: length - type: int - header: 'Length' - perSegment: true + cchf: + schema: + organismName: 'Crimean-Congo Hemorrhagic Fever Virus' + nucleotideSequences: [L, M, S] + metadata: + - name: length + type: int + header: 'Length' + perSegment: true ``` Additionally, if you are using the preprocessing or ingest pipelines, `nucleotideSequences` must also be defined in those sections of the config. @@ -188,12 +188,12 @@ This is the simplest type of secret, it is just a key value pair. ```yaml secrets: - database: - type: raw - data: - url: 'jdbc:postgresql://loculus-database-service/loculus' - username: 'postgres' - password: 'password' + database: + type: raw + data: + url: 'jdbc:postgresql://loculus-database-service/loculus' + username: 'postgres' + password: 'password' ``` ### `sealedsecret` @@ -202,13 +202,13 @@ This is a sealed secret, it is encrypted and can only be decrypted by the cluste ```yaml secrets: - database: - type: sealedsecret - clusterWide: 'false' # If true the secret can be decrypted in any namespace, but must have been created with this setting enabled - encryptedData: - url: '[Encrypted Data]' - username: '[Encrypted Data]' - password: '[Encrypted Data]' + database: + type: sealedsecret + clusterWide: 'false' # If true the secret can be decrypted in any namespace, but must have been created with this setting enabled + encryptedData: + url: '[Encrypted Data]' + username: '[Encrypted Data]' + password: '[Encrypted Data]' ``` ### `autogen` @@ -217,10 +217,10 @@ This is a secret that is automatically generated by the helm chart. ```yaml secrets: - secretKey: - type: autogen - data: - myKey: '' + secretKey: + type: autogen + data: + myKey: '' ``` ## Ready to Deploy? diff --git a/docs/src/content/docs/for-users/submit-sequences.md b/docs/src/content/docs/for-users/submit-sequences.md index 47ba88d002..5927b3de82 100644 --- a/docs/src/content/docs/for-users/submit-sequences.md +++ b/docs/src/content/docs/for-users/submit-sequences.md @@ -39,13 +39,13 @@ To upload sequences through the HTTP API you will need to: 2. Retrieve an authentication JSON web token: see the [Authenticating via API guide](../authenticate-via-api/). 3. Identify the Group ID of your group: you can find it on the page of your group. 4. Send a POST request: - - The API path to use is: `//submit` - - Add your group ID to the query parameters: `?groupId=` - - If Data use Terms are configured for your Loculus instance, add `&dataUseTermsType=OPEN` for _open_ data use terms or `&dataUseTermsType=RESTRICTED&restrictedUntil=YYYY-MM-DD` (where `YYYY-MM-DD` refers to a date like 2025-01-31) for _restricted_ data use terms - with a date until when this restriction will be in place. If your Loculus instance doesn't use Data use Terms, you can leave out these settings. - - The header should contain - - `Authorization: Bearer ` - - `Content-Type: multipart/form-data` - - The request body should contain the FASTA and metadata TSV files with the keys `sequenceFile` and `metadataFile` + - The API path to use is: `//submit` + - Add your group ID to the query parameters: `?groupId=` + - If Data use Terms are configured for your Loculus instance, add `&dataUseTermsType=OPEN` for _open_ data use terms or `&dataUseTermsType=RESTRICTED&restrictedUntil=YYYY-MM-DD` (where `YYYY-MM-DD` refers to a date like 2025-01-31) for _restricted_ data use terms - with a date until when this restriction will be in place. If your Loculus instance doesn't use Data use Terms, you can leave out these settings. + - The header should contain + - `Authorization: Bearer ` + - `Content-Type: multipart/form-data` + - The request body should contain the FASTA and metadata TSV files with the keys `sequenceFile` and `metadataFile` Below you can see an example of submitting to the API with cURL (with open data use terms): diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 4bf590275f..b18e926044 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -3,18 +3,18 @@ title: Learn about Loculus description: Loculus is a software package for microbial genome databases template: splash hero: - tagline: Loculus is open-source software that powers microbial genome databases - image: - file: ../../assets/db.webp - actions: - - text: Read more - link: ./introduction/what-is-loculus/ - icon: right-arrow - variant: primary - - text: View a demo instance - link: https://main.loculus.org - icon: external - variant: secondary + tagline: Loculus is open-source software that powers microbial genome databases + image: + file: ../../assets/db.webp + actions: + - text: Read more + link: ./introduction/what-is-loculus/ + icon: right-arrow + variant: primary + - text: View a demo instance + link: https://main.loculus.org + icon: external + variant: secondary --- import { CardGrid, LinkCard } from '@astrojs/starlight/components'; @@ -36,30 +36,30 @@ import members from '../../team.json'; ## Team

## Contact diff --git a/docs/src/content/docs/reference/helm-chart-config.mdx b/docs/src/content/docs/reference/helm-chart-config.mdx index e5b79270db..22bb1c09ef 100644 --- a/docs/src/content/docs/reference/helm-chart-config.mdx +++ b/docs/src/content/docs/reference/helm-chart-config.mdx @@ -46,11 +46,11 @@ Here's an example of a `lineageDefinitions` section: ```yaml lineageSystemDefinitions: - pangoLineage: # Lineage name to use in metadata fields - 1: https://example.org/lineage_defintions_v1.yaml # Definition per pipeline version - 2: https://example.org/lineage_defintions_v2.yaml - myLineage: - 1: ... + pangoLineage: # Lineage name to use in metadata fields + 1: https://example.org/lineage_defintions_v1.yaml # Definition per pipeline version + 2: https://example.org/lineage_defintions_v2.yaml + myLineage: + 1: ... ```