|
| 1 | +--- |
| 2 | +description: |
| 3 | +globs: |
| 4 | +alwaysApply: true |
| 5 | +--- |
| 6 | +# Plutojl.org Website Content Guidelines |
| 7 | + |
| 8 | +This rule describes how to write and organize content for the [plutojl.org](mdc:plutojl website/plutojl website/https:/plutojl.org) website. See [README.md](mdc:plutojl website/plutojl website/README.md) and [src/en/docs/install.jlmd](mdc:plutojl website/plutojl website/src/en/docs/install.jlmd) for examples. |
| 9 | + |
| 10 | +The Static Site Generation is custom-made, called PlutoPages.jl. It's a small Julia port of eleventy. |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +## Creating New Docs Pages |
| 15 | + |
| 16 | +- **Location:** Place new documentation pages in `src/en/docs/` as `.jlmd` files (Julia-flavored Markdown). |
| 17 | +- **Frontmatter:** Start each file with a YAML frontmatter block, e.g.: |
| 18 | + ```markdown |
| 19 | + --- |
| 20 | + title: "🚂 Page Title" |
| 21 | + tags: ["docs", "category"] |
| 22 | + layout: "md.jlmd" |
| 23 | + order: 1 |
| 24 | + --- |
| 25 | + ``` |
| 26 | + - `title`: Page title for sidebar and heading. Start with an emoji and a space. |
| 27 | + - `tags`: List of tags for organization/search/sidebar. |
| 28 | + - `layout`: Always use `md.jlmd` for docs pages. |
| 29 | + - `order`: Floating point. Determines sidebar order (lower numbers appear first). |
| 30 | +- **Content:** Write content in Markdown below the frontmatter. Use Julia code blocks and Pluto-specific features as needed. You can use `$` for interpolation of Julia code, and `\$` to insert a dollar sign. |
| 31 | + |
| 32 | +## Adding Pages to the Docs Sidebar |
| 33 | + |
| 34 | +- Pages in `src/en/docs/` with proper frontmatter are automatically included in the sidebar, ordered by the `order` field. |
| 35 | +- The `tags` frontmatter is used to determine the sidebar category. Check [sidebar data.jl](mdc:plutojl website/plutojl website/src/sidebar data.jl) for existing categories, or add a new category. |
| 36 | + |
| 37 | +## Referencing Between Docs Pages |
| 38 | + |
| 39 | +- Use relative links. For example, to link to `src/en/docs/install.jlmd` from another page in the same folder: |
| 40 | + ```markdown |
| 41 | + [Installation Guide](mdc:plutojl website/plutojl website/install) |
| 42 | + ``` |
| 43 | +- Omit the `.jlmd` extension; use the folder or file name. |
| 44 | +- For subfolders, use relative paths: |
| 45 | + ```markdown |
| 46 | + [Advanced Widgets](mdc:plutojl website/advanced-widgets) |
| 47 | + ``` |
| 48 | +- For external resources, use full URLs: |
| 49 | + ```markdown |
| 50 | + [Pluto.jl homepage](mdc:plutojl website/plutojl website/https:/plutojl.org) |
| 51 | + ``` |
| 52 | + |
| 53 | +## Writing Style |
| 54 | + |
| 55 | +- **Friendly and Encouraging:** Use a welcoming, informal tone. Emojis and friendly language are encouraged (see [install.jlmd](mdc:plutojl website/plutojl website/src/en/docs/install.jlmd)). |
| 56 | +- **Clarity First:** Explain concepts simply. Assume the reader is new to Pluto and Julia. |
| 57 | +- **Short Paragraphs:** Use short paragraphs and bullet points for readability. |
| 58 | +- **Use Examples:** Show code snippets and practical examples where possible. |
| 59 | +- **Direct Instructions:** Use direct language for instructions (e.g., "Go to [this page] for more info!"). |
| 60 | +- **Accessibility:** Avoid jargon unless explained. Use descriptive link text. |
| 61 | + |
| 62 | +## General Tips |
| 63 | + |
| 64 | +- **Preview Your Changes:** Use the development server as described in [README.md](mdc:plutojl website/plutojl website/README.md) to preview edits live. |
| 65 | +- **No Manual Sidebar Edits Needed:** The sidebar is generated automatically from the docs folder structure and frontmatter. |
| 66 | +- **Ask for Help:** If unsure, just add your file—maintainers will help with technical details. |
0 commit comments