diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000000..2f6db3fc71 --- /dev/null +++ b/website/README.md @@ -0,0 +1,10 @@ +# Graphite Website + +Graphite's website uses the [Zola](https://www.getzola.org/) static site generator and [NPM](https://github.com/npm/cli) for dependency resolution. You will need to install both to build the site. + +## Building for Development + +1. Switch to this directory from the repo root: `cd website` +2. Install the fonts: `npm run install-fonts` +3. Run `zola serve` +4. Open in your browser and start coding! diff --git a/website/content/blog/2022-02-12-announcing-graphite-alpha.md b/website/content/blog/2022-02-12-announcing-graphite-alpha.md index 8395644ed7..a2fd4844af 100644 --- a/website/content/blog/2022-02-12-announcing-graphite-alpha.md +++ b/website/content/blog/2022-02-12-announcing-graphite-alpha.md @@ -1,12 +1,12 @@ +++ title = "Announcing Graphite alpha" date = 2022-02-12 +authors = ["Keavon Chambers"] +description = "The Graphite open source team announces the alpha release of their next-generation graphics editor, a web-based SVG editor with vector-based tools. Future plans include a node-based procedural workflow, a raster graphics compositing engine, and a native desktop client." [extra] banner = "https://static.graphite.rs/content/blog/2022-02-12-announcing-graphite-alpha.avif" banner_png = "https://static.graphite.rs/content/blog/2022-02-12-announcing-graphite-alpha.png" -author = "Keavon Chambers" -summary = "The Graphite open source team announces the alpha release of their next-generation graphics editor, a web-based SVG editor with vector-based tools. Future plans include a node-based procedural workflow, a raster graphics compositing engine, and a native desktop client." reddit = "https://www.reddit.com/r/graphite/comments/unw3hi/blog_post_announcing_graphite_alpha/" twitter = "https://twitter.com/GraphiteEditor/status/1524663930697568256" +++ diff --git a/website/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.md b/website/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.md index c3d7d77261..06d49aae4d 100644 --- a/website/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.md +++ b/website/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.md @@ -1,12 +1,12 @@ +++ title = "Graphite: a vision for the future of 2D content creation" date = 2022-03-12 +authors = ["Keavon Chambers"] +description = "Graphite is an open-source application for 2D graphics editing and digital content creation, offering a nondestructive, node-based workflow. It combines intuitive UI with powerful procedural image generators to revolutionize 2D content creation." [extra] banner = "https://static.graphite.rs/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.avif" banner_png = "https://static.graphite.rs/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.png" -author = "Keavon Chambers" -summary = "Graphite is an open-source application for 2D graphics editing and digital content creation, offering a nondestructive, node-based workflow. It combines intuitive UI with powerful procedural image generators to revolutionize 2D content creation." reddit = "https://www.reddit.com/r/graphite/comments/unw3va/blog_post_graphite_a_vision_for_the_future_of_2d/" twitter = "https://twitter.com/GraphiteEditor/status/1524664010091556864" +++ diff --git a/website/content/blog/2022-05-12-distributed-computing-in-the-graphene-runtime.md b/website/content/blog/2022-05-12-distributed-computing-in-the-graphene-runtime.md index 5a96b2b7b1..5a35c5a9a1 100644 --- a/website/content/blog/2022-05-12-distributed-computing-in-the-graphene-runtime.md +++ b/website/content/blog/2022-05-12-distributed-computing-in-the-graphene-runtime.md @@ -1,12 +1,12 @@ +++ title = "Distributed computing in the Graphene runtime" date = 2022-05-12 +authors = ["Keavon Chambers"] +description = "Graphite's 2D editor is built upon Graphene, a node-based editing system for nondestructive design across various data types designed to render artwork faster using multiple machines. The system optimizes execution paths, minimizes latency, and uses a distributed runtime for quick data processing." [extra] banner = "https://static.graphite.rs/content/blog/2022-05-12-distributed-computing-in-the-graphene-runtime__2.avif" banner_png = "https://static.graphite.rs/content/blog/2022-05-12-distributed-computing-in-the-graphene-runtime__2.png" -author = "Keavon Chambers" -summary = "Graphite's 2D editor is built upon Graphene, a node-based editing system for nondestructive design across various data types designed to render artwork faster using multiple machines. The system optimizes execution paths, minimizes latency, and uses a distributed runtime for quick data processing." reddit = "https://www.reddit.com/r/graphite/comments/unw45k/blog_post_distributed_computing_in_the_graphene/" twitter = "https://twitter.com/GraphiteEditor/status/1524664083554791424" +++ diff --git a/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md b/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md index c430a2fc75..b3a1ca1986 100644 --- a/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md +++ b/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md @@ -1,12 +1,12 @@ +++ title = "Looking back on 2023 and what's next" date = 2024-01-01 +authors = ["Keavon Chambers"] +description = "Looking back on 2023, we reflect on our significant achievements and milestones. As we move forward, we're excited to share what's next, promising a year filled with innovation and progress." [extra] banner = "https://static.graphite.rs/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.avif" banner_png = "https://static.graphite.rs/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.png" -author = "Keavon Chambers" -summary = "Looking back on 2023, we reflect on our significant achievements and milestones. As we move forward, we're excited to share what's next, promising a year filled with innovation and progress." reddit = "https://www.reddit.com/r/graphite/comments/18xmoti/blog_post_looking_back_on_2023_and_whats_next/" twitter = "https://twitter.com/GraphiteEditor/status/1742576805532577937" diff --git a/website/content/blog/2024-02-22-graphite-internships-announcing-participation-in-gsoc-2024.md b/website/content/blog/2024-02-22-graphite-internships-announcing-participation-in-gsoc-2024.md index f9fe300a5c..7e5107497f 100644 --- a/website/content/blog/2024-02-22-graphite-internships-announcing-participation-in-gsoc-2024.md +++ b/website/content/blog/2024-02-22-graphite-internships-announcing-participation-in-gsoc-2024.md @@ -1,11 +1,12 @@ +++ title = "Graphite internships: announcing participation in GSoC 2024" date = 2024-02-22 +authors = ["Keavon Chambers"] +description = "Join Graphite in Google Summer of Code 2024 for a unique opportunity to contribute to open-source software development in Rust and computer graphics. Get paid while learning, working on self-contained projects under experienced mentors, and help Graphite grow." + [extra] banner = "https://static.graphite.rs/content/blog/2024-02-22-graphite-internships-announcing-participation-in-gsoc-2024.avif" banner_png = "https://static.graphite.rs/content/blog/2024-02-22-graphite-internships-announcing-participation-in-gsoc-2024.png" -author = "Keavon Chambers" -summary = "Join Graphite in Google Summer of Code 2024 for a unique opportunity to contribute to open-source software development in Rust and computer graphics. Get paid while learning, working on self-contained projects under experienced mentors, and help Graphite grow." reddit = "https://www.reddit.com/r/graphite/comments/1ax3l8z/blog_post_graphite_internships_announcing/" twitter = "https://twitter.com/GraphiteEditor/status/1760619083396165703" +++ diff --git a/website/content/blog/2024-05-09-graphite-progress-report-q1-2024.md b/website/content/blog/2024-05-09-graphite-progress-report-q1-2024.md index bac4e44959..bc13adcd20 100644 --- a/website/content/blog/2024-05-09-graphite-progress-report-q1-2024.md +++ b/website/content/blog/2024-05-09-graphite-progress-report-q1-2024.md @@ -1,11 +1,13 @@ +++ title = "Graphite progress report (Q1 2024)" date = 2024-05-09 +authors = ["Keavon Chambers", "Hypercube"] +description = "Graphite's Q1 2024 update introduces a precise snapping system and a customizable grid for enhanced design control. The update also includes improved procedural scattering with the 'Copy to Points' node, demonstrated in new demo artwork." + + [extra] banner = "https://static.graphite.rs/content/blog/2024-05-09-graphite-progress-report-q1-2024__2.avif" banner_png = "https://static.graphite.rs/content/blog/2024-05-09-graphite-progress-report-q1-2024__2.png" -author = "Keavon Chambers & Hypercube" -summary = "Graphite's Q1 2024 update introduces a precise snapping system and a customizable grid for enhanced design control. The update also includes improved procedural scattering with the 'Copy to Points' node, demonstrated in new demo artwork." reddit = "https://www.reddit.com/r/graphite/comments/1coa0if/blog_post_graphite_progress_report_q1_2024/" twitter = "https://twitter.com/GraphiteEditor/status/1788698448348266946" css = ["/component/demo-artwork.css"] diff --git a/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md b/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md index 72b73f0db3..a3b269d0ba 100644 --- a/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md +++ b/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md @@ -1,11 +1,13 @@ +++ title = "Graphite progress report (Q2 2024)" date = 2024-07-31 +authors = ["Keavon Chambers", "Hypercube"] +description = "Graphite's Q2 2024 update introduces boolean path operations, a new gradient picker, layer locking, and more improvements." + + [extra] banner = "https://static.graphite.rs/content/blog/2024-07-31-graphite-progress-report-q2-2024.avif" banner_png = "https://static.graphite.rs/content/blog/2024-07-31-graphite-progress-report-q2-2024.png" -author = "Keavon Chambers & Hypercube" -summary = "Graphite's Q2 2024 update introduces boolean path operations, a new gradient picker, layer locking, and more improvements." reddit = "https://www.reddit.com/r/graphite/comments/1ei9ps2/blog_post_graphite_progress_report_q2_2024/" twitter = "https://x.com/GraphiteEditor/status/1819360794028462569" css = ["/component/demo-artwork.css"] diff --git a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md index 149e0c3c6d..9febc5f64a 100644 --- a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md +++ b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md @@ -1,11 +1,13 @@ +++ title = "Graphite progress report (Q3 2024)" date = 2024-10-15 +authors = ["Keavon Chambers", "Hypercube"] +description = "Graphite's Q3 2024 update introduces improvements to performance, node graph organization, nondestructive path editing, a new render engine, and more helpful nodes." + + [extra] banner = "https://static.graphite.rs/content/blog/2024-10-15-graphite-progress-report-q3-2024.avif" banner_png = "https://static.graphite.rs/content/blog/2024-10-15-graphite-progress-report-q3-2024.png" -author = "Keavon Chambers & Hypercube" -summary = "Graphite's Q3 2024 update introduces improvements to performance, node graph organization, nondestructive path editing, a new render engine, and more helpful nodes." reddit = "https://www.reddit.com/r/graphite/comments/1g4h6ya/blog_post_graphite_progress_report_q3_2024/" twitter = "https://x.com/GraphiteEditor/status/1846283664562573344" css = ["/component/demo-artwork.css"] diff --git a/website/content/blog/2025-01-16-year-in-review-2024-highlights-and-a-peek-at-2025.md b/website/content/blog/2025-01-16-year-in-review-2024-highlights-and-a-peek-at-2025.md index 283b590853..bcf00fefa8 100644 --- a/website/content/blog/2025-01-16-year-in-review-2024-highlights-and-a-peek-at-2025.md +++ b/website/content/blog/2025-01-16-year-in-review-2024-highlights-and-a-peek-at-2025.md @@ -1,12 +1,13 @@ +++ title = "Year in review: 2024 highlights and a peek at 2025" date = 2025-01-16 +authors = ["Keavon Chambers"] +description = "Graphite has come a long way in 2024. Read about the progress made and the plans for the upcoming year." + [extra] banner = "https://static.graphite.rs/content/blog/2025-01-16-year-in-review-2024-highlights-and-a-peek-at-2025.avif" banner_png = "https://static.graphite.rs/content/blog/2025-01-16-year-in-review-2024-highlights-and-a-peek-at-2025.png" -author = "Keavon Chambers" -summary = "Graphite has come a long way in 2024. Read about the progress made and the plans for the upcoming year." reddit = "https://www.reddit.com/r/graphite/comments/1i3umnl/blog_post_year_in_review_2024_highlights_and_a/" twitter = "https://x.com/GraphiteEditor/status/1880404337345851612" bluesky = "https://bsky.app/profile/graphiteeditor.bsky.social/post/3lfxysayh622g" diff --git a/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md b/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md index 732ff42e6a..abebd46854 100644 --- a/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md +++ b/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md @@ -1,11 +1,13 @@ +++ title = "Graphite progress report (Q4 2024)" date = 2025-03-31 +authors = ["Keavon Chambers", "Hypercube"] +description = "Graphite's Q4 2024 update introduces quality of life features across drawing tools and procedural editing." + + [extra] banner = "https://static.graphite.rs/content/blog/2025-03-31-graphite-progress-report-q4-2024.avif" banner_png = "https://static.graphite.rs/content/blog/2025-03-31-graphite-progress-report-q4-2024.png" -author = "Keavon Chambers & Hypercube" -summary = "Graphite's Q4 2024 update introduces quality of life features across drawing tools and procedural editing." css = ["/component/demo-artwork.css"] reddit = "https://www.reddit.com/r/graphite/comments/1jpjqcs/blog_post_graphite_progress_report_q4_2024/" twitter = "https://x.com/GraphiteEditor/status/1907350199414206604" diff --git a/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md b/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md index 1c8a54a583..8b60cde570 100644 --- a/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md +++ b/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md @@ -1,11 +1,13 @@ +++ title = "Internships for a Rust graphics engine: GSoC 2025" date = 2025-04-02 +authors = ["Keavon Chambers"] +description = "Join Graphite in Google Summer of Code 2025 for a unique opportunity to contribute to open-source software development in Rust and computer graphics. Get paid while learning, working on self-contained projects under experienced mentors, and help Graphite grow." + + [extra] banner = "https://static.graphite.rs/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.avif" banner_png = "https://static.graphite.rs/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.png" -author = "Keavon Chambers" -summary = "Join Graphite in Google Summer of Code 2025 for a unique opportunity to contribute to open-source software development in Rust and computer graphics. Get paid while learning, working on self-contained projects under experienced mentors, and help Graphite grow." reddit = "https://www.reddit.com/r/graphite/comments/1jplm6t/internships_for_a_rust_graphics_engine_gsoc_2025/" twitter = "https://x.com/GraphiteEditor/status/1907384498389651663" bluesky = "https://bsky.app/profile/graphiteeditor.bsky.social/post/3llt7lbmm4s24" diff --git a/website/content/blog/2025-09-19-graphite-community-meetup-in-germany.md b/website/content/blog/2025-09-19-graphite-community-meetup-in-germany.md index e672d60f42..452cf42378 100644 --- a/website/content/blog/2025-09-19-graphite-community-meetup-in-germany.md +++ b/website/content/blog/2025-09-19-graphite-community-meetup-in-germany.md @@ -1,11 +1,13 @@ +++ title = "Graphite community meetup in Germany" date = 2025-09-19 +authors = ["Keavon Chambers"] +description = "Join us for a Graphite community meetup on October 10th, 2025 in Karlsruhe, Germany. Meet the core team and connect with fellow enthusiasts." + + [extra] banner = "https://static.graphite.rs/content/blog/2025-09-19-graphite-community-meetup-in-germany.avif" banner_png = "https://static.graphite.rs/content/blog/2025-09-19-graphite-community-meetup-in-germany.png" -author = "Keavon Chambers" -summary = "Join us for a Graphite community meetup on October 10th, 2025 in Karlsruhe, Germany. Meet the core team and connect with fellow enthusiasts." reddit = "https://www.reddit.com/r/graphite/comments/1nlt64g/graphite_community_meetup_in_germany_october_10/" twitter = "https://x.com/GraphiteEditor/status/1969324821205925934" bluesky = "https://bsky.app/profile/graphiteeditor.bsky.social/post/3lzaz3uizkc2j" diff --git a/website/templates/article.html b/website/templates/article.html index 3e1f202c66..ad78a6df26 100644 --- a/website/templates/article.html +++ b/website/templates/article.html @@ -5,7 +5,7 @@ {%- set meta_title = page.title -%} {%- set meta_image = page.extra.banner_png | safe -%} {%- set meta_article_type = true -%} -{%- set meta_description = page.extra.summary | default(value = page.content | striptags | safe | linebreaksbr | replace(from = "
", to = " ") | replace(from = " ", to = " ") | trim | truncate(length = 200)) -%} +{%- set meta_description = page.description | default(value = page.content | striptags | safe | linebreaksbr | replace(from = "
", to = " ") | replace(from = " ", to = " ") | trim | truncate(length = 200)) -%} {%- set css = ["/template/article.css", "/layout/reading-material.css"] -%} {%- endblock head -%} @@ -14,7 +14,12 @@

{{ page.title }}

- By {{ page.extra.author }}. {{ page.date | date(format = "%B %d, %Y", timezone="America/Los_Angeles") }}. + + {% if page.authors %} + By {{ page.authors | join(sep=", ") }}. + {% endif %} + . +
@@ -42,7 +47,7 @@

{{ page.title }}

{% endif %}
-{%- if not page.summary -%} +{%- if not page.description -%} {{ throw(message = "------------------------------------------------------------> ARTICLE HAS NO SUMMARY! After the first paragraph (or two short ones), a `` comment must be inserted in the markdown. Otherwise the blog page would be missing its preview text." | safe) }} {%- endif -%} {%- endblock content -%} diff --git a/website/templates/blog.html b/website/templates/blog.html index 4581be356e..a1637cbdf9 100644 --- a/website/templates/blog.html +++ b/website/templates/blog.html @@ -19,9 +19,14 @@

{{ page.title }}

- By {{ page.extra.author }}. {{ page.date | date(format = "%B %d, %Y", timezone = "America/Los_Angeles") }}. + + {% if page.authors %} + By {{ page.authors | join(sep=", ") }}. + {% endif %} + . +
-

{{ page.summary | striptags | safe }}

+

{{ page.description | striptags | safe }}

Keep Reading diff --git a/website/templates/book.html b/website/templates/book.html index 12c54c7ec3..8daa32f617 100644 --- a/website/templates/book.html +++ b/website/templates/book.html @@ -3,7 +3,7 @@ {%- block head -%}{%- set page = page | default(value = section) -%} {%- set title = page.title -%} {%- set meta_article_type = true -%} -{%- set meta_description = page.extra.summary | default(value = page.content | striptags | safe | linebreaksbr | replace(from = "
", to = " ") | replace(from = " ", to = " ") | trim | truncate(length = 200)) -%} +{%- set meta_description = page.description | default(value = page.content | striptags | safe | linebreaksbr | replace(from = "
", to = " ") | replace(from = " ", to = " ") | trim | truncate(length = 200)) -%} {%- set linked_css = ["/syntax-highlighting.css"] -%} {%- set css = ["/template/book.css", "/layout/reading-material.css", "/component/code-snippet.css"] -%} {%- set js = ["/js/book.js"] -%} diff --git a/website/templates/macros/replacements.html b/website/templates/macros/replacements.html index f34f76ca82..7407aa9b67 100644 --- a/website/templates/macros/replacements.html +++ b/website/templates/macros/replacements.html @@ -6,7 +6,7 @@

{{ article.title }}

-

{{ article.summary | striptags | safe }}

+

{{ article.description | striptags | safe }}

Keep reading
diff --git a/website/templates/rss.xml b/website/templates/rss.xml new file mode 100644 index 0000000000..2d77259f6b --- /dev/null +++ b/website/templates/rss.xml @@ -0,0 +1,37 @@ + + + {{ config.title }} Blog + + {{ now() | date(format="%Y-%m-%dT%H:%M:%S%:z") }} + {{ config.base_url | safe }} + Latest news and articles from the Graphite team. + Zola + /favicon-32x32.png + © 2025 Graphite Labs, LLC + + {% for page in section.pages %} + + {{ page.title }} + + {{ page.permalink | safe }} + {{ page.updated | default(value=page.date) | date(format="%Y-%m-%dT%H:%M:%S%:z") }} + {{ page.date | date(format="%Y-%m-%dT%H:%M:%S%:z") }} + + {% if page.authors %} + {% for author in page.authors %} + + {{ author }} + + {% endfor %} + {% endif %} + + {% if page.description %} + {{ page.description }} + {% endif %} + + + + {% endfor %} +