diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..e3373b5 Binary files /dev/null and b/.DS_Store differ diff --git a/Getting Started/.DS_Store b/Getting Started/.DS_Store new file mode 100644 index 0000000..c22d527 Binary files /dev/null and b/Getting Started/.DS_Store differ diff --git a/Getting Started/create-a-site.md b/Getting Started/create-a-site.md new file mode 100644 index 0000000..5e3a97f --- /dev/null +++ b/Getting Started/create-a-site.md @@ -0,0 +1,162 @@ +--- +title: How to Set Up a Publishing Site in Curvenote +short_title: Create a Site +--- + + + +# Create a Site + +:::{tip} ObjectiveCreate a publishing destination for your articles, lab notebooks, or group collections. ::: + +## Quick Checklist + +- Have a Curvenote account & CLI installed +- Access or create a site (web admin) +- Configure your project (curvenote.yml) +- Organize local content (if using Git/GitHub) +- Add metadata to each file +- Submit content to a site & collection +- Push changes for internal review (optional) +- Run checks before publishing (optional) +- Publish (admin only) + +## Workflow at a Glance + +```mermaid +graph TD + A[1. Create Site
web admin] --> B[2. Set Landing Page] + B --> C[3. Organize Content
optional for local/Git] + C --> D[4. Add Metadata] + D --> E[5. Submit Content] + E --> F[6. Push Changes
optional] + F --> G[7. Run Checks
optional] + G --> H[8. Publish
admin only] + H --> I[🎉 Site Live!] + + style A fill:#e1f5fe + style I fill:#c8e6c9 +``` + +**Text Version:** + +``` +[1] Create Site (web admin) + ↓ +[2] Set Landing Page + ↓ +[3] Organize Content (optional for local/Git) + ↓ +[4] Add Metadata + ↓ +[5] Submit Content → [6] Push Changes (optional) + ↓ +[7] Run Checks (optional) + ↓ +[8] Publish (admin only) + ↓ + 🎉 Site Live! +``` + ## Before You Begin +:::{important} Make sure you have: + +- A Curvenote account and Curvenote CLI installed +- Access to an existing site (or permission to create one via the web admin interface) +- A configured project (curvenote.yml) if publishing from GitHub or locally +::: + + +### 1. Create a Site (via Web Admin) + +Currently, new sites must be created through the web admin interface. + +- Choose a title and subdomain (e.g., `my-lab.curve.space`) +- Set the site visibility (public or private) +- Define the organization or group that owns the site + +_Coming Soon: Site creation directly from the CLI._ + +### 2. Set a Landing Page or Featured Work + +Once the site exists, an admin can define a “landing page” — the main entry point for visitors. + +- Recommended: Set this via the web admin interface +- CLI support available for some workflows + +### 3. Organize Your Content (Optional, CLI or Git-based Workflows) + +If you are managing content locally (e.g., in GitHub), organize your files into logical directories: + +- **Full Research Articles:** `articles/` +- **Figures/Methods:** `components/` +- **Landing page:** `index.md` + +For sites with community submissions, content organization happens after submission. + +### 4. Add Metadata + +Each content file should have frontmatter with key details: + +```yaml +--- +title: 'An Advanced Microscopy Study' +authors: + - name: Dr. Lee +kind: article +--- +``` + +Metadata enables automated checks, collection assignment, and proper formatting + +### 5. Submit Content to a Site and Collection + +From your local project, run: + +```bash +curvenote submit +``` + +You’ll be prompted to: + +- Select an existing site +- Choose a collection (e.g., "Lab Articles") + +This prepares your content for publishing and notifies site administrators. + +### 6. Push Changes (Optional: Internal Review) + +```bash +curvenote push +``` + +This allows collaborators to preview your work, but does not make it publicly visible. + +### 7. Run Checks (Optional but Recommended) + + +```bash +curvenote check +``` + +This will run structural and metadata checks and highlight any issues. + +> 💡 **Tip:** For more details on how to run a structural check, visit this page (link) + +### 8. Publish Content (Admin Action) + +Publishing makes submitted content live on the site: + +```bash +curvenote submission publish +``` + +Only site admins can publish. Once published: + +- Content appears on the site +- DOI, metadata, and links are activated + +## After Publishing + +- Share links to your articles or site homepage +- Updates and re-publish (each update is tracked) +- Embed individual figures, notebooks, or methods in other sites and tools. diff --git a/Getting Started/create-article-cli.md b/Getting Started/create-article-cli.md new file mode 100644 index 0000000..6fa5cc6 --- /dev/null +++ b/Getting Started/create-article-cli.md @@ -0,0 +1,102 @@ +--- +title: Write Your First Article +short_title: Write Article +--- + + +# Write Your First Article + +**Goal:** Create and edit your first article in Curvenote using the CLI. + + + +## 1. Create a New Article + +From inside your project folder, run: + +```bash +curvenote create article my-first-article +``` + +This will: + +- Create a new Markdown file in your `content/` directory. +- Add default frontmatter (metadata) like `title` and `date`. +- Link the article into your site navigation if your `curvenote.yml` is set up. + +Example folder after running the command: + +``` +content/ +├── index.md +└── my-first-article.md +``` + + + +## 2. Open and Edit Your Article + +Open the new file in your preferred text editor: + +```bash +code content/my-first-article.md +``` + +You can write in **Markdown**, **MyST**, or embed Jupyter code blocks if your project supports it. + +Example content: + +```markdown +--- +title: My First Curvenote Article +authors: + - name: Jane Doe + orcid: 0000-0001-2345-6789 +--- + +# Introduction + +This is my first article written in Curvenote! 🎉 + +## My First Figure + +```{figure} assets/fig1.png +:alt: Example figure +:width: 60% +``` +Figure caption goes here. + + +## 3. Preview Locally + +See your changes instantly by running: + +```bash +curvenote preview +``` + +This opens a local preview of your site in your browser so you can check formatting, figures, and links. + + + +## 4. Organize Your Articles + +Best practices for keeping articles manageable: + +- Use short, descriptive file names. +- Group related content into folders (e.g., `methods/`, `results/`). +- Keep figures, datasets, and large media files in an `assets/` folder. + + + +## Next Steps + +Once your article looks good, you can: + +1. [Publish & Share →](./publish-article.md) +2. [Add Figures, Images, and Media →](../authoring/add-figures-media.md) +3. [Link Data and Code →](../authoring/link-data-code.md) + +--- + +**Tip:** Curvenote supports reusable content blocks, so you can keep figures, citations, or sections consistent across multiple articles. diff --git a/Getting Started/create-project.md b/Getting Started/create-project.md new file mode 100644 index 0000000..c9a4f18 --- /dev/null +++ b/Getting Started/create-project.md @@ -0,0 +1,114 @@ +--- +title: Create Your First Project +short_title: Create Project +--- + +# Create Your First Project + +**Goal:** Create and organize your first Curvenote project so you can start writing and publishing content. + + + +## 1. What’s a Project in Curvenote? + +A **project** is the home for your articles, figures, datasets, and other content. +It also stores your site configuration so you can publish to the web. + +Projects contain: + +- **Content folder** (`content/`) for articles, sections, and figures. +- **Configuration file** (`curvenote.yml`) for site and article settings. +- **Assets folder** for images, datasets, and other media. + + + +## 2. Create a New Project + +From your terminal: + +```bash +curvenote init my-first-project +``` + +You’ll be prompted to: + +1. **Name your project** + Example: `My Lab Website` or `My Article` +2. **Add an optional description** +3. Confirm your configuration. + +This creates a folder with the following structure: + +``` +my-first-project/ +├── content/ +│ └── index.md +├── curvenote.yml +└── README.md +``` + + +## 3. Navigate and Explore + +Move into your new project folder: + +```bash +cd my-first-project +``` + +Open `content/index.md` in your editor — this is your first article. +You can rename it, add more `.md` or `.myst.md` files, and create subfolders for sections. + + + +## 4. Organize Your Content + +Best practices: + +- **One article per file** for clarity. +- Group related articles into folders (e.g., `/methods`, `/results`). +- Keep images and figures in an `/assets` folder. +- Use clear, short file names (avoid spaces). + +Example: + +``` +content/ +├── introduction.md +├── methods/ +│ ├── data-collection.md +│ └── analysis.md +├── results/ +│ ├── experiment-1.md +│ └── experiment-2.md +└── assets/ + ├── fig1.png + └── dataset.csv +``` + + + +## 5. Check Your Setup + +You can preview your content locally by running: + +```bash +curvenote preview +``` + +This launches a local development server where you can see your project as it will appear online. + + + + +## Next Steps + +Now that you have a project: + +1. [Write Your First Article →](../how-to/create-article-cli.md) +2. [Publish & Share →](../how-to/publish-article.md) +3. [Set Up a Site →](../getting-started/set-up-site.md) + +--- + +**Tip:** You can connect your project to GitHub for version control. See [Connect to GitHub](../integrations/github.md). \ No newline at end of file diff --git a/Getting Started/install-cli.md b/Getting Started/install-cli.md new file mode 100644 index 0000000..d34be54 --- /dev/null +++ b/Getting Started/install-cli.md @@ -0,0 +1,80 @@ +--- +title: Install & Authenticate the Curvenote CLI +short_title: Install CLI +--- + +# Install & Authenticate the Curvenote CLI + +**Goal:** Install the Curvenote command-line tool, log in, and ensure you're ready to create and publish content. + + + +## Prerequisites + +Before installing the CLI, make sure you have: + +- **Node.js v18 or later** (comes with `npm`) + - Check your version: + ```bash + node --version + ``` + - If needed, [download Node.js](https://nodejs.org/) or install via Conda: + ```bash + conda install -c conda-forge nodejs + ``` + + + +## 1. Install the CLI + +Open your terminal and run: + +```bash +npm install -g curvenote + +``` +After installation, verify the CLI is installed: +```bash +curvenote --version +``` +You should see a version number (e.g., `0.1.2`). +If you see an error, check your Node.js and `npm` setup. + +## 2. Authenticate with Curvenote +Run the login command: +```bash +curvenote login +``` +1. Your browser will open to the Curvenote sign-in page. + +2. Sign in with your Curvenote account. + +3. Once you return to the terminal, you should see a confirmation message like: +``` +Logged in as +``` + +If you use multiple accounts, you can switch by running: +```bash +curvenote token select +``` +## 3. Verify Your Setup +To confirm you’re ready to go: +```bash +curvenote whoami +``` + +If it returns your username, your CLI is authenticated and ready. + + +## Next Steps + +Now that you’ve installed and authenticated the CLI, you can: + +1. [Create Your First Project →](../getting-started/organize-content.md) +2. [Write Your First Article →](../how-to/create-article-cli.md) +3. [Publish & Share →](../how-to/publish-article.md) + +--- + +**Tip:** The Curvenote CLI is open source—[view it on GitHub](https://github.com/curvenote/curvenote). diff --git a/Getting Started/publish-article.md b/Getting Started/publish-article.md new file mode 100644 index 0000000..a4daa82 --- /dev/null +++ b/Getting Started/publish-article.md @@ -0,0 +1,69 @@ +--- +title: Publish & Share Your Article +short_title: Publish & Share +--- + + +# Publish & Share + +**Goal:** Publish your article or site so it’s live on the web. + + + +## 1. Make Sure Your Project Is Ready + +Before publishing, confirm that your project has: + +- At least one article with content. +- A valid `curvenote.yml` configuration file. +- Any required assets (figures, datasets, notebooks) included in the project. + +If you’re not sure your site is configured, see: +[Set Up a Site →](../getting-started/set-up-site.md) + + + +## 2. Publish from the CLI + +Run the publish command from your project folder: + +```bash +curvenote publish +``` + +You’ll see output confirming which articles or collections are being published and the URL where your content will appear. + + + +## 3. View Your Live Site + +Once publishing finishes, the CLI will display a URL to your live site. +Open it in your browser to verify: + +- Formatting and layout look correct. +- Figures, tables, and media load properly. +- Links and citations work as expected. + + + +## 4. Update Published Content + +If you make changes to your articles, simply run: + +```bash +curvenote publish +``` + +Curvenote will update the existing content without requiring you to start over. + + + +## Next Steps + +- [Add Figures, Images, and Media →](../authoring/add-figures-media.md) +- [Link Data and Code →](../authoring/link-data-code.md) +- [Export to PDF/Typst →](../tutorials/export-pdf.md) + +--- + +**Tip:** Published content is “living” in Curvenote — you can make edits anytime, and your audience will always see the latest version. \ No newline at end of file diff --git a/Getting Started/what-is-curvenote.md b/Getting Started/what-is-curvenote.md new file mode 100644 index 0000000..ccbbbe1 --- /dev/null +++ b/Getting Started/what-is-curvenote.md @@ -0,0 +1,59 @@ +--- +title: What is Curvenote? +short_title: What is Curvenote +--- + +# What is Curvenote? + +Curvenote is a platform for **writing, organizing, and publishing scientific content**—built by researchers, for researchers. + +It helps you move beyond static PDFs by enabling **interactive, modular, and versioned scientific outputs**. Whether you're drafting a preprint, creating a lab website, or sharing reproducible analyses, Curvenote provides the tools to publish with **structure, transparency, and flexibility**. + +## A new kind of scientific output + +Most research outputs today are frozen in time—locked into PDFs and detached from their underlying data, code, and figures. Curvenote takes a different approach: + +- **Modular articles** with reusable blocks and components +- **Versioned content** that tracks every change +- **Web-first publishing** for better discoverability +- **One-click exports** to Typst or PDF when needed + + +Work in your browser or use the Curvenote CLI: + +- Write in **Markdown, Jupyter**, or the Curvenote editor +- Organize content into **folders, articles, and blocks** +- Connect to **GitHub** for version control and collaboration +- Publish to the web with a single command +- Export to Typst or PDF for review or submission + +--- + +## Publishing as part of your workflow +Publishing with Curvenote is fast and flexible. You can publish: + +- Single articles +- Multi-article collections (lab sites, conference proceedings, documentation) +- Research outputs with **interactive figures, notebooks, and citations** + +Everything you publish stays editable and updateable—no reformatting required. + + +## Built for research teams +Curvenote supports: + +- Collaborative editing & version tracking +- Reusable figures, text blocks, and citations +- DOI minting & metadata management +- Research integrity checks (iThenticate, Proofig) +- Compliance with open science, funder, and institutional policies + + +## Why it matters +Scientific knowledge should be **open, versioned, and reusable**. Curvenote provides the infrastructure for **living research outputs**—helping you move faster, stay organized, and share work in ways that are valuable to both humans and machines. + + +## Next steps +1. [Install the CLI](install-cli.md) +2. [Set up your first publishing site](set-up-site.md) +3. [Write and publish your first article](create-article-cli.md) \ No newline at end of file diff --git a/myst.yml b/myst.yml index 4b2d76a..8bbb2ec 100644 --- a/myst.yml +++ b/myst.yml @@ -42,27 +42,29 @@ project: - file: solutions.md - title: Getting Started children: - - file: start/index.md - - title: Site design + - file: getting-started/What-is-curvenote.md + - file: getting-started/install-cli.md + - file: getting-started/create-project.md + - file: getting-started/create-article-cli.md + - file: getting-started/publish-article.md + - file: getting-started/create-a-site.md + - title: Design & Customize Your Site children: - - file: sites/index.md - - file: sites/concepts.md - - file: sites/create-a-site.md - - file: sites/landing-pages.md - - file: sites/navigation.md - - file: sites/cards.md - - file: sites/listings.md - - file: sites/custom-domains.md - - file: sites/curvenote-branding.md - - file: sites/analytics.md - - file: sites/custom-development.md - - title: Preparing articles + - file: site-design/layout-and-theme.md + - file: site-design/planning.md + - file: site-design/custom-domains.md + - file: site-design/navigation.md + - title: Authoring Content children: - - file: authoring/myst-markdown.md - - file: article-actions.md - - file: authoring/submitting-your-work.md - - file: tutorial-deploy-local.md - - file: try-curvespace.md + - file: authoring/citations.md + - file: authoring/add-figures-media.md + - file: authoring/interactive-figures.md + - file: authoring/link-data-code.md + - file: authoring/organize-content.md + - file: authoring/reuse-blocks.md + - file: authoring/version-history.md + - file: authoring/writing-markdown-myst-jupyter.md + - title: Computational articles children: - file: computational-articles.md diff --git a/sites/create-a-site.md b/sites/create-a-site.md deleted file mode 100644 index cd40544..0000000 --- a/sites/create-a-site.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: How to Set Up a Publishing Site in Curvenote -short_title: Create a Site ---- - -:::{tip} Objective -Get started creating a publishing destination for your articles, lab notebooks, or group collections. -::: - -## Steps to Set Up a Site - -:::{important} Before you start -Make sure you have: - -- A Curvenote account and access to the [Curvenote CLI](../cli/index.md) -- Access to an existing site (or create one via the web admin interface) -- A configured project (`curvenote.yml` file) if publishing from GitHub or locally - ::: - -### 1. Create a Site (via Web Admin) - -Creating a new site must currently be done through the web admin interface. - -- Choose a title and subdomain (e.g., `my-lab.curve.space`) -- Set the site visibility (public or private) -- Define the organization or group that owns the site - -_Coming Soon: CLI-based site creation is planned to make this easier for new users._ - -### 2. Set a Landing Page or Featured Work - -Once the site exists, site administrators can set a "landing page" or featured work. This may be configured via: - -- The web admin interface (recommended) -- CLI tools (if supported) - -The landing page gives visitors an entry point to your site’s most important content. - -### 3. Organize Your Content (Optional, CLI or Git-based Workflows) - -If you are managing content locally (e.g., in GitHub), organize your files into logical directories: - -- **Articles:** `articles/` -- **Figures/Methods:** `components/` -- **Landing page:** `index.md` - -For sites that accept community contributions or external submissions, this structure will be handled post-submission. - -### 4. Add Metadata and Content Types (Kinds) - -Ensure that each content file includes a frontmatter block with relevant metadata: - -```yaml ---- -title: 'An Advanced Microscopy Study' -authors: - - name: Dr. Lee -kind: article ---- -``` - -This metadata supports automated checks, collection assignment, and proper formatting. - -### 5. Submit Content to a Site and Collection - -Use the CLI to associate your content with a site and collection: - -```bash -curvenote submit -``` - -You’ll be prompted to: - -- Select an existing site -- Choose a collection (e.g., "Lab Articles") - -This prepares your content for publishing and notifies site administrators. - -### 6. Push Changes to the Server (Optional) - -To sync your draft content to the server for internal review: - -```bash -curvenote push -``` - -This allows collaborators to preview your work, but does not make it publicly visible. - -### 7. Run Structural Checks (Optional) - -To verify your content is valid before publishing: - -```bash -curvenote check -``` - -This will run structural and metadata checks and highlight any issues. - -> 💡 **Tip:** For more details on how to run a structural check, visit this page (link) - -### 8. Publish Content (Admin Action) - -Publishing makes submitted content live on the site: - -```bash -curvenote submission publish -``` - -Only site admins can publish submitted content. Once published: - -- Content appears on the site -- DOI, metadata, and links are activated - -## What Happens Next? - -Once published, you can: - -- Share links to your articles or site homepage -- Make updates and re-publish (each update is versioned) -- Embed content elsewhere (figures, notebooks, methods) diff --git a/start/index.md b/start/index.md deleted file mode 100644 index 6021bdf..0000000 --- a/start/index.md +++ /dev/null @@ -1,56 +0,0 @@ -# What is Curvenote? - -Curvenote is a platform for writing, organizing, and publishing scientific content—built by researchers, for researchers. - -It helps you move beyond static PDFs by enabling interactive, modular, and versioned scientific outputs. Whether you're drafting a preprint, creating a lab website, or sharing reproducible analyses, Curvenote provides the tools to publish with structure, transparency, and flexibility. - -## A new kind of scientific output - -Most research outputs today are frozen in time—locked into PDFs and detached from the data, code, or figures that created them. Curvenote enables a different approach: - -- Modular articles with reusable blocks and components -- Versioned content that captures draft history and changes -- Web-first publishing that prioritizes discoverability -- Integrated exports to Typst and PDF when needed - -## Write once, publish anywhere - -Curvenote works in your browser or with the Curvenote CLI. You can: - -- Write in Markdown, Jupyter, or the Curvenote editor -- Organize content into folders, articles, and blocks -- Connect to GitHub for version control and collaboration -- Publish to the web with a single command -- Export to Typst or PDF for review or submission - -## Publishing is part of your workflow - -Publishing with Curvenote is fast and flexible. You can publish: - -- Single articles -- Multi-article collections (like lab sites or documentation) -- Research outputs with interactive figures, notebooks, and citations - -Everything you publish remains editable and updateable—no reformatting required. - -## Built for research teams - -Curvenote supports: - -- Collaborative editing and version tracking -- Reusable figures, text blocks, and citations -- DOI minting and metadata support -- Automated research integrity checks (iThenticate, Proofig) -- Compliance with open science, funder, and institutional policies - -## Why it matters - -Scientific knowledge should be open, versioned, and reusable. Curvenote is designed to support modern scientific communication by providing infrastructure for living research outputs. - -Whether you're preparing a funder report, publishing a preprint, or launching a public-facing project, Curvenote helps you move faster, stay organized, and share your work in ways that are meaningful to both humans and machines. - -## Next steps - -- [Install the CLI](../cli/index.md) -- [Set up your first publishing site](../sites/index.md) -- [Write and publish your first article](../authoring/index.md)