Categories
Jekyll is a simple, blog aware, static site generator.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
8.58
Octopress is an obsessively designed framework for Jekyll blogging. It’s easy to configure and easy to deploy. Sweet huh?
Activity
3.96
Since Typo has been in existence since March 2005, it is likely the oldest blogging platform in Rails. It has a full set of features you would expect from such an engine, which include powerful SEO capabilities, full themes, and plug-in extensions.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
3.05
A simple blog theme based on Bootstrap 4 by Start Bootstrap.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
3.16
A super customizable Jekyll theme for personal site, team site, blog, project, documentation, etc.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.76
A Blog component for decidim's participatory spaces.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
1.46
Have you ever wanted to call <code>exit()</code> with an error condition, but
weren't sure what exit status to use? No? Maybe it's just me, then.
Anyway, I was reading manpages late one evening before retiring to bed in my
palatial estate in rural Oregon, and I stumbled across
<code>sysexits(3)</code>. Much to my chagrin, I couldn't find a +sysexits+ for
Ruby! Well, for the other 2 people that actually care about
<code>style(9)</code> as it applies to Ruby code, now there is one!
Sysexits is a *completely* *awesome* collection of human-readable constants for
the standard (BSDish) exit codes, used as arguments to +exit+ to
indicate a specific error condition to the parent process.
It's so fantastically fabulous that you'll want to fork it right away to avoid
being thought of as that guy that's still using Webrick for his blog. I mean,
<code>exit(1)</code> is so passé! This is like the 14-point font of Systems
Programming.
Like the C header file from which this was derived (I mean forked, naturally),
error numbers begin at <code>Sysexits::EX__BASE</code> (which is way more cool
than plain old +64+) to reduce the possibility of clashing with other exit
statuses that other programs may already return.
The codes are available in two forms: as constants which can be imported into
your own namespace via <code>include Sysexits</code>, or as
<code>Sysexits::STATUS_CODES</code>, a Hash keyed by Symbols derived from the
constant names.
Allow me to demonstrate. First, the old way:
exit( 69 )
Whaaa...? Is that a euphemism? What's going on? See how unattractive and...
well, 1970 that is? We're not changing vaccuum tubes here, people, we're
<em>building a totally-awesome future in the Cloud™!</em>
include Sysexits
exit EX_UNAVAILABLE
Okay, at least this is readable to people who have used <code>fork()</code>
more than twice, but you could do so much better!
include Sysexits
exit :unavailable
Holy Toledo! It's like we're writing Ruby, but our own made-up dialect in
which variable++ is possible! Well, okay, it's not quite that cool. But it
does look more Rubyish. And no monkeys were patched in the filming of this
episode! All the simpletons still exiting with icky _numbers_ can still
continue blithely along, none the wiser.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Popularity
Activity
0.0
== 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>.txt</tt> extension:
mkdir _comics
echo "Check out my cool comic y'all!" > '_comics/My first page.txt'
Or use HTML:
echo "This is my <strong>first</strong> page!" > '_comics/My first page.html'
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.
The easiest way is to go to your Webcomic Management, click "Edit Layout", then
in the box labelled "Useful", click "Download Layout Backup". Pass this file to
RageRender, which will <tt>unpack</tt> it for you:
bundle exec jekyll unpack mycomic-2025-09-13.cflxml
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 <tt>_posts</tt>:
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>
=== 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 <tt>frontpage</tt> key in your site config.
- <tt>latest</tt> will display the latest comic (also the default)
- <tt>first</tt> will display the first comic
- <tt>chapter</tt> will display the first comic in the latest chapter
- <tt>blog</tt> will display the list of blog posts
- <tt>archive</tt> will display the comic archive
- <tt>overview</tt> will display the comic overview (blogs and latest page)
- anything else will display the extra page that has the matching
<tt>slug</tt> in its Front Matter
=== Putting changes on ComicFury
Once you're done making changes, you can <tt>pack</tt> your layout:
bundle exec jekyll pack
The resulting file can be uploaded to ComicFury by going to your Webcomic
Management, clicking "Edit Layout", then in the box labelled "Useful", click
"Restore Layout Backup".
=== 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
0.53
the tiniest blog-engine in Oz. Build of evaryont's branch with better permalink choices
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.53
the tiniest blog-engine in Oz.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
{<img src="https://secure.travis-ci.org/socialcast/socialcast-shoulda-ext.png?branch=master" alt="Build Status" />}[http://travis-ci.org/socialcast/socialcast-shoulda-ext]
= Socialcast Shoulda Extensions
Adds new matchers and functionality to the shoulda test library
= Installation
In your Gemfile:
group :test do
gem 'socialcast_shoulda_ext', :git => 'git@github.com:socialcast/socialcast-shoulda-ext.git', :require => 'shoulda_ext'
end
If you want to include the trigger_callbacks matcher, also add the following to your test helper:
ShouldaExt::Matchers::TriggerCallbackMatcher.attach_active_record_callback_hooks!
= Matchers
== RecordCountChangeMatcher
Test if the count for a model has changed, and by how much. Requires the context_with_matcher_before_hooks patch, which is included by default.
Provides the following matcher methods:
- create_record(klass_or_symbol)
Alias for change_record_count.for(klass_or_symbol).by(1)
- create_records(klass_or_symbol, amount)
Alias for change_record_count.for(klass_or_symbol).by(amount)
- destroy_record(klass_or_symbol)
Alias for change_record_count.for(klass_or_symbol).by(-1)
- destroy_records(klass_or_symbol, amount)
Alias for change_record_count.for(klass_or_symbol).by(-amount)
- change_record_count
Tests the difference in record count before and after the current setup/subject block
Can be used with the follow methods:
- for(klass_or_symbol)
Provides the class which the test is being performed on. Can be a constant or a symbol
- by(amount)
Provides an expected difference for the number of records for the specified class.
Excluding this number will allow the matcher to check for any difference
Examples:
context "creating a blog article" do
context "with good parameters" do
setup do
post :create, :blog => {:title => 'my blog post', :body => 'Ipsum lorem...'}
end
should create_record :blog
end
context "without a body" do
setup do
post :create, :blog => {:title => 'my blog post' }
end
should_not create_record Blog
end
end
== RespondWithJson
Check if the controller's response is json
Examples:
context ":index.json" do
setup do
get :index, :format => 'json'
end
# Just check to see that the response was json
should respond_with_json
# Evaluate the hash produced by the json yourself
should respond_with_json { |json| json.first['blog']['title'] == 'blog post 1'}
# Provide an exact match
should respond_with_json.exactly(['blog' => {'id' => 1, 'title' => 'blog post 1'}])
# Provide an exact match with a block
should response_with_json.exactly{ |json| JSON.parse(Blog.all.to_json)}
end
context ":index.html" do
setup do
get :index
end
# or the negation
should_not respond_with_json
end
== TriggerCallbackMatcher
Test if create, update, destroy, or save callbacks were triggered.
Requires running
ShouldaExt::Matchers::TriggerCallbackMatcher.attach_active_record_callback_hooks!
in your test suite in order to work properly.
Examples:
context "doing nothing to a record" do
subject { Blog.new :title => 'blog title' }
should_not trigger_callbacks
end
context "creating a record" do
subject { Blog.create! :title => 'blog title' }
should trigger_callbacks.for :create
should_not trigger_callbacks.for :update, :destroy
end
= Integrations
Currently only integrates with test/unit. RSpec support to come.
= Shoulda Extensions
== ContextWithMatcherBeforeHooks
Adds the ability to define a 'before' method on any method which will be run before each context's setup/subject block. Used by RecordCountChangeMatcher to record the number of records before the tested operation takes place.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
The Blogger module provides services related to Blogger, and only blogger. The GData gem is great, but it provides a much lower-level interface to Google's Blogger API. With the Blogger gem, you have full access to the Blogger API, with easy to use classes, and it integrates with 6 different markup/markdown gems! What's more, you won't have to muck around with XML. Sure, XML is easy. But why waste time messing around with it? With just 3 or 4 lines of Blogger.gem code, you'll be able to take a markdown-formatted string and post it as a blog post, with categories, and comments. You can also search through all of your comments, old posts, and pretty much anything you can do at the blogger.com website, you can do with this gem.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Inaba SDBM Manipulator
=======================
## Introduction
Inaba SDBM Manipulator is a command line tool to manipulate SDBM database.
## Operation Environment
We checked good operation within following environment.
- Linux(openSUSE 12.2)・Mac OS X 10.8.2
- Ruby 1.9.3
## Architectonics
- **bin**
- **inaba** :: Executable script
- **doc** :: Documents generated by rdoc
- **lib**
- **inaba**
- **manipulator.rb** :: Manipulator class
- **Rakefile** :: Rakefile that is used to generate gem file
- **test**
- **tb_manipulator.rb** :: Unit test of Manipulator
## Depended libraries
- [Hakto SDBM Safe Wrapper](http://blog.quellencode.org/post/37391766923/ruby-hakto-safe-sdbm-wrapper)
- [Ariete STDOUT & STDERR Capture Module](http://blog.quellencode.org/post/37625422082/ariete-stdout-stderr-capture-module)
## Install
Download inaba-x.y.z.gem, then execute following command to install Inaba.
`$ sudo gem install inaba-x.y.z.gem`
On the other hand, you can install from RubyGems.org to use following command.
`$ sudo gem install inaba`
## Tutorial
### Configuration of environment variable
Set file path of SDBM database to environment variable named $INABA_DB. If target database file is named rabbit.sdb, use following command in bash.
`$ export INABA_DB="rabbit.sdb"`
### Add key value pair
Use **add** command to add a value to key.
`$ inaba add rabbit RABBIT`
Use **list** command to show key value pairs.
`$ inaba list`
[rabbit]:RABBIT
Add more pairs.
`$ inaba add bunny BUNNY`
`$ inaba add hare HARE`
`$ inaba list`
[rabbit]:RABBIT
[bunny]:BUNNY
[hare]:HARE
Inaba can output a pair list with CSV format.
`$ inaba csv`
rabbit,RABBIT
bunny,BUNNY
hare,HARE
Also use **keys** command to list keys.
`$ inaba keys`
rabbit, bunny, hare,
**Values** command works listing values.
`$ inaba values`
RABBIT, BUNNY, HARE,
Use **del** command to delete key value command.
`$ inaba del rabbit`
`$ inaba list`
[bunny]:BUNNY
[hare]:HARE
**Clear** command removes all key value pairs.
`$ inaba clear`
## Commands reference
|コマンド |引数 |説明 |
|----------|-------------|------------------------------------|
|**add** |*key* *value*|Add *value* to *key* |
|**del** |*key* |Delete a value associated with *key*|
|**list** | |Output key value pairs |
|**keys** | |Output keys |
|**values**| |Output values |
|**csv** | |Output pairs with CSV format |
|**help** | |Output command list |
## License
Inaba is distributed with MIT License. See the LICENSE file to read the detail of license.
## About Author
Moza USANE
[http://blog.quellencode.org/](http://blog.quellencode.org/ "")
mozamimy@quellencode.org
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
Adds basic social networking capabilities to your existing application, including users, blogs, photos, clippings, favorites, and more.
Activity
1.05
A minimalist Jekyll theme for running a blog or publication powered by Jekyll and GitHub Pages
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.36
Jekyll-Scholar is for all the academic bloggers out there. It is a set of extensions for Jekyll the awesome, blog aware, static site generator; it formats your BibTeX bibliographies for the web using CSL citation styles and generally gives your blog posts citation super-powers.'
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.02
This gem imports a WordPress XML dump into refinerycms (Page, User) and refinerycms-blog (BlogPost, BlogCategory, Tag, BlogComment)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Narwhal
=======
A general purpose JavaScript platform
-------------------------------------
Narwhal is a cross-platform, multi-interpreter, general purpose JavaScript platform. It aims to provide a solid foundation for building JavaScript applications, primarily outside the web browser. Narwhal includes a package manager, module system, and standard library for multiple JavaScript interpreters. Currently Narwhal's [Rhino](http://www.mozilla.org/rhino/) support is the most complete, but [other engines](engines.html) are available too.
Narwhal's standard library conforms to the [CommonJS standard](http://wiki.commonjs.org). It is designed to work with multiple JavaScript interpreters, and to be easy to add support for new interpreters. Wherever possible, it is implemented in pure JavaScript to maximize reuse of code among engines.
Combined with [Jack](http://jackjs.org/), a [Rack](http://rack.rubyforge.org/)-like [JSGI](http://jackjs.org/jsgi-spec.html) compatible library, Narwhal provides a platform for creating server-side JavaScript web applications and frameworks such as [Nitro](http://www.nitrojs.org/).
### Homepage:
* [http://narwhaljs.org/](http://narwhaljs.org/)
### Source & Download:
* [http://github.com/tlrobinson/narwhal/](http://github.com/tlrobinson/narwhal/)
### Mailing list:
* [http://groups.google.com/group/narwhaljs](http://groups.google.com/group/narwhaljs)
### IRC:
* [\#narwhal on irc.freenode.net](http://webchat.freenode.net/?channels=narwhal)
Documentation
-------------
* [Quick Start](quick-start.html)
* [Packages](packages.html)
* [How to Install Packages](packages.html)
* [How to Build Packages](packages-howto.html)
* [Modules](modules.html)
* [Virtual Environments / Seas](sea.html)
* [How to Build Engines](engines.html)
* [How Narwhal Works](narwhal.html)
Contributors
------------
* [Tom Robinson](http://tlrobinson.net/)
* [Kris Kowal](http://askawizard.blogspot.com/)
* [George Moschovitis](http://blog.gmosx.com/)
* [Kevin Dangoor](http://www.blueskyonmars.com/)
* Hannes Wallnöfer
* Sébastien Pierre
* Irakli Gozalishvili
* [Christoph Dorn](http://www.christophdorn.com/)
* Zach Carter
* Nathan L. Smith
* Jan Varwig
* Mark Porter
* [Isaac Z. Schlueter](http://blog.izs.me/)
* [Kris Zyp](http://www.sitepen.com/blog/author/kzyp/)
* [Nathan Stott](http://nathan.whiteboard-it.com/)
* [Toby Ho](http://tobyho.com)
License
-------
Copyright (c) 2009, 280 North Inc. <[280north.com](http://280north.com/)\>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Inspired by thousand-line routes files, KonmariRoutes aims to make routes more manageable by enabling
a routing structure that mirrors the controller file structure of a standard web application, powered
by one guiding principle: Keep only what makes you happy. This is largely inspired by two articles:
https://blog.lelonek.me/keep-your-rails-routes-clean-and-organized-83e78f2c11f2 and
https://blog.arkency.com/2015/02/how-to-split-routes-dot-rb-into-smaller-parts/
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.99
Deprecated, please use 'type-on-strap' instead. A custom Type Theme template (a free and open-source Jekyll theme). Great for blogs, easy to customize and responsive.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity