Project

ragerender

0.0
The project is in a healthy, maintained state
== What's this? {ComicFury}[https://comicfury.com] is an excellent no-bullshit webcomic hosting site created and maintained by the legend Kyo. You should support them on {Patreon}[https://www.patreon.com/comicfury]! {Jekyll}[https://jekyllrb.com] is a highly regarded and widespread static site generator. It builds simple slowly-changing content into HTML files using templates. RageRender allows you to use your ComicFury templates to generate a static version of your webcomic site using Jekyll. You just supply your templates, comics and blogs, and RageRender will output a site that mimics your ComicFury site. Well, I say "mimics". Output is a static site, which means all of the interactive elements of ComicFury don't work. This includes comments, subscriptions, search, and comic management. === But why?! RageRender allows those of us who work on making changes to ComicFury site templates to test our changes before we put them live. With RageRender, you can edit your CSS, HTML templates and site settings before you upload them to ComicFury. This makes the process of testing changes quicker and makes it much more likely that you catch mistakes before any comic readers have a chance to see them. RageRender doesn't compete with the most excellent ComicFury (who's Patreon you should contribute to, as I do!) – you should continue to use ComicFury for all your day-to-day artistic rage management needs. But if you find yourself making changes to a site design, RageRender may be able to help you. == Getting started First, you need to have {Ruby}[https://www.ruby-lang.org/] and {Bundler}[https://bundle.io/] installed. The Jekyll site has {good guides on how to do that}[https://jekyllrb.com/docs/installation/] depending on your operating system. To set up a new site, open a terminal and type: mkdir mycomic && cd mycomic bundle init bundle add jekyll bundle add ragerender Now you can add comics! Add the image into an <tt>images</tt> folder: mkdir images cp 'cool comic.jpg' 'images/My first page.jpg' The file name of the image will be the title of your comic page. And that's it, you added your first comic! If you want to add an author note, create a text file in a folder called <tt>_comics</tt> that has the same file name, but with a <tt>.md</tt> extension: mkdir _comics echo "Check out my cool comic y'all!" > '_comics/My first page.md' Generate the site using: bundle exec jekyll build Or start a local website to see it in your browser: bundle exec jekyll serve # Now visit http://localhost:4000! === Customising your site You'll notice a few things that might be off about your site, including that the webcomic title and author name are probably not what you were expecting. You can create a configuration file to tell RageRender the important details. Put something like this in your webcomic folder and call it <tt>_config.yml</tt>: title: "My awesome webcomic!" slogan: "It's the best!" description: > My epic story about how him and her fell into a romantic polycule with they and them defaults: - scope: path: '' values: author: "John smith" theme: ragerender Your webcomic now has its basic information set up. === Adding your layouts If you want to use your own layout code, then create a <tt>_layouts</tt> directory and put the contents of each of your ComicFury layout tabs in there, and then put your CSS in the main folder. You should end up with a full set of files like: _layouts archive.html blog-archive.html blog-display.html comic-page.html error-page.html overall.html overview.html search.html layout.css Now when you build your site, your custom templates and styles will be used instead. === Adding blogs Add your blogs into a folder called `_posts`: cat _posts/2025-05-29-my-new-comic.md Hey guys, welcome to my new comic! It's gonna be so sick! Note that the name of your blog post has to include the date and the title, or it'll be ignored. === Customising comics and blogs You can add {Front Matter}[https://jekyllrb.com/docs/front-matter/] to set the details of your author notes and blogs manually: --- title: "spooky comic page" date: "2025-03-05 16:20" image: "images/ghost.png" author: "Jane doe" custom: # use yes and no for tickbox settings spooky: yes # use text in quotes for short texts mantra: "live long and prosper" # use indented text for long texts haiku: > Testing webcomics Now easier than ever Thanks to RageRender comments: - author: "Skippy" date: "13 Mar 2025, 3.45 PM" comment: "Wow this is so sick!" --- Your author note still goes at the end, like this! === Adding extra pages You can add extra pages just by adding new HTML files to your webcomic folder. The name of the file becomes the URL that it will use. Pages by default won't be embedded into your 'Overall' layout. You can change that and more with optional Front Matter: --- # Include this line to set the page title title: "Bonus content" # Include this line to hide the page from the navigation menu hidden: yes # Include this line to embed this page in the overall layout layout: Overall --- <h1>yo check out my bonus content!</h1> === Stuff that doesn't work Here is a probably incomplete list of things you can expect to be different about your local site compared to ComicFury: - Any comments you specify in Front Matter will be present, but you can't add new ones - Search doesn't do anything at all - Saving and loading your place in the comic isn't implemented - GET and POST variables in templates are ignored and will always be blank - Random numbers in templates will be random only once per site build, not once per page call == Without Jekyll RageRender can also be used without Jekyll to turn ComicFury templates into templates in other languages. E.g: gem install ragerender echo "[c:iscomicpage]<div>[f:js|v:comictitle]</div>[/]" > template.html ruby $(gem which ragerender/to_liquid) template.html # {% if iscomicpage %}<div>{{ comictitle | escape }}</div>{% endif %} ruby $(gem which ragerender/to_erb) template.html # <% if iscomicpage %><div><%= js(comictitle) %></div><% end %> You still need to pass the correct variables to these templates; browse {this unofficial documentation}[https://github.com/heyeinin/comicfury-documentation] or RageRender::ComicDrop etc. to see which variables work on which templates. == Get help That's not a proclamation but an invitation! Reach out if you're having trouble by {raising an issue}[https://github.com/simonwo/ragerender/issues] or posting in the ComicFury forums.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 4
~> 13

Runtime

~> 1
 Project Readme

RageRender¶ ↑

A template parser and site generator that can render a webcomic site using ComicFury templates, using the Jekyll static site generator.

What’s this?¶ ↑

ComicFury is an excellent no-bullshit webcomic hosting site created and maintained by the legend Kyo. You should support them on Patreon!

Jekyll is a highly regarded and widespread static site generator. It builds simple slowly-changing content into HTML files using templates.

RageRender allows you to use your ComicFury templates to generate a static version of your webcomic site using Jekyll. You just supply your templates, comics and blogs, and RageRender will output a site that mimics your ComicFury site.

Well, I say “mimics”. Output is a static site, which means all of the interactive elements of ComicFury don’t work. This includes comments, subscriptions, search, and comic management.

But why?!¶ ↑

RageRender allows those of us who work on making changes to ComicFury site templates to test our changes before we put them live.

With RageRender, you can edit your CSS, HTML templates and site settings before you upload them to ComicFury. This makes the process of testing changes quicker and makes it much more likely that you catch mistakes before any comic readers have a chance to see them.

RageRender doesn’t compete with the most excellent ComicFury (who’s Patreon you should contribute to, as I do!) – you should continue to use ComicFury for all your day-to-day artistic rage management needs. But if you find yourself making changes to a site design, RageRender may be able to help you.

Getting started¶ ↑

First, you need to have Ruby and Bundler installed. The Jekyll site has good guides on how to do that depending on your operating system.

To set up a new site, open a terminal and type:

mkdir mycomic && cd mycomic
bundle init
bundle add jekyll
bundle add ragerender

Now you can add comics! Add the image into an images folder:

mkdir images
cp 'cool comic.jpg' 'images/My first page.jpg'

The file name of the image will be the title of your comic page. And that’s it, you added your first comic!

If you want to add an author note, create a text file in a folder called _comics that has the same file name, but with a .md extension:

mkdir _comics
echo "Check out my cool comic y'all!" > '_comics/My first page.md'

Generate the site using:

bundle exec jekyll build

Or start a local website to see it in your browser:

bundle exec jekyll serve
# Now visit http://localhost:4000!

Customising your site¶ ↑

You’ll notice a few things that might be off about your site, including that the webcomic title and author name are probably not what you were expecting.

You can create a configuration file to tell RageRender the important details. Put something like this in your webcomic folder and call it _config.yml:

title: "My awesome webcomic!"
slogan: "It's the best!"
description: >
  My epic story about how him and her
  fell into a romantic polycule with they and them

defaults:
- scope:
    path: ''
  values:
    author: "John smith"

theme: ragerender

Your webcomic now has its basic information set up.

Adding your layouts¶ ↑

If you want to use your own layout code, then create a _layouts directory and put the contents of each of your ComicFury layout tabs in there, and then put your CSS in the main folder. You should end up with a full set of files like:

_layouts
  archive.html
  blog-archive.html
  blog-display.html
  comic-page.html
  error-page.html
  overall.html
  overview.html
  search.html
layout.css

Now when you build your site, your custom templates and styles will be used instead.

Adding blogs¶ ↑

Add your blogs into a folder called ‘_posts`:

cat _posts/2025-05-29-my-new-comic.md
Hey guys, welcome to my new comic! It's gonna be so sick!

Note that the name of your blog post has to include the date and the title, or it’ll be ignored.

Customising comics and blogs¶ ↑

You can add Front Matter to set the details of your author notes and blogs manually:

---
title: "spooky comic page"
date: "2025-03-05 16:20"
image: "images/ghost.png"
author: "Jane doe"
custom:
  # use yes and no for tickbox settings
  spooky: yes
  # use text in quotes for short texts
  mantra: "live long and prosper"
  # use indented text for long texts
  haiku: >
    Testing webcomics
    Now easier than ever
    Thanks to RageRender
comments:
  - author: "Skippy"
    date: "13 Mar 2025, 3.45 PM"
    comment: "Wow this is so sick!"
---
Your author note still goes at the end, like this!

Adding extra pages¶ ↑

You can add extra pages just by adding new HTML files to your webcomic folder. The name of the file becomes the URL that it will use.

Pages by default won’t be embedded into your ‘Overall’ layout. You can change that and more with optional Front Matter:

---
# Include this line to set the page title
title: "Bonus content"
# Include this line to hide the page from the navigation menu
hidden: yes
# Include this line to embed this page in the overall layout
layout: Overall
---
<h1>yo check out my bonus content!</h1>

Controlling the front page¶ ↑

As on ComicFury you have a few options for setting the front page of you site. You control this by setting a frontpage key in your site config.

  • latest will display the latest comic (also the default)

  • first will display the first comic

  • chapter will display the first comic in the latest chapter

  • blog will display the list of blog posts

  • archive will display the comic archive

  • overview will display the comic overview (blogs and latest page)

  • anything else will display the extra page that has the matching slug in its Front Matter

Stuff that doesn’t work¶ ↑

Here is a probably incomplete list of things you can expect to be different about your local site compared to ComicFury:

  • Any comments you specify in Front Matter will be present, but you can’t add new ones

  • Search doesn’t do anything at all

  • Saving and loading your place in the comic isn’t implemented

  • GET and POST variables in templates are ignored and will always be blank

  • Random numbers in templates will be random only once per site build, not once per page call

Without Jekyll¶ ↑

RageRender can also be used without Jekyll to turn ComicFury templates into templates in other languages.

E.g:

gem install ragerender
echo "[c:iscomicpage]<div>[f:js|v:comictitle]</div>[/]" > template.html
ruby $(gem which ragerender/to_liquid) template.html
# {% if iscomicpage   %}<div>{{ comictitle | escape }}</div>{% endif %}
ruby $(gem which ragerender/to_erb) template.html
# <% if  iscomicpage   %><div><%= js(comictitle) %></div><% end %>

You still need to pass the correct variables to these templates; browse this unofficial documentation or RageRender::ComicDrop etc. to see which variables work on which templates.

Get help¶ ↑

That’s not a proclamation but an invitation! Reach out if you’re having trouble by raising an issue or posting in the ComicFury forums.