Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/schmidt/literate_maruku
Literate Maruku is a literate programming libary for Ruby based on the Markdown libary Maruku.
https://github.com/schmidt/literate_maruku
hacktoberfest literate-programming markdown ruby
Last synced: 30 days ago
JSON representation
Literate Maruku is a literate programming libary for Ruby based on the Markdown libary Maruku.
- Host: GitHub
- URL: https://github.com/schmidt/literate_maruku
- Owner: schmidt
- License: mit
- Created: 2009-11-27T14:37:24.000Z (almost 15 years ago)
- Default Branch: main
- Last Pushed: 2022-10-16T18:38:24.000Z (about 2 years ago)
- Last Synced: 2024-10-01T16:46:19.017Z (about 1 month ago)
- Topics: hacktoberfest, literate-programming, markdown, ruby
- Language: Ruby
- Homepage:
- Size: 58.6 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rdoc
- Changelog: History.rdoc
- License: License.txt
Awesome Lists containing this project
README
= Literate Maruku
Literate Maruku is a literate programming libary for ruby based on the markdown
libary maruku. This is basically what the name say, isn't it?== The Basics
There are two possible accesses to the libary. A programming API and a command
line interface. The first may be used to write better documented tests,
for example. Just write a little bit of code in your test_helper and call
Literate Maruku there and your markdown formatted tests will be executed.The command line interface may the be used inside of a rake task, e.g. to
generate some html files out of your test files demonstrating their usage.
We have used this approach in ContextR, so have a look there to get some input.== Demonstration of Use
=== The Markdown Syntax
Literate Maruku simply extends the functionality of Maruku and adds some
methods to make standard use cases easier. You may find detailed information
about maruku at {their project page}[http://maruku.rubyforge.org/]. They added
some nice features to {Markdown
formatting}[http://daringfireball.net/projects/markdown/syntax], esp. the {meta
data syntax}[http://maruku.rubyforge.org/proposal.html] which made implementing
literate maruku a charm.Wanna see examples? Okay, here they are:
==== Markdown
This is a normal paragraph, followed by a plain old code block
literate_maruku == maruku + ruby
And the following code block will not only be rendered, but also executed.
def echo_block(string)
(0...(text.size)).map{|i| text[0..i]}.reverse.join(" ... ")
end
{: execute}And, finally, the following block will be executed and its output will be
rendered as well.echo_block("hallo")
{: execute attach_output}==== HTML
This is a normal paragraph, followed by a plain old code block
literate_maruku == maruku + ruby
And the following code block will not only be rendered, but also executed.
def echo_block(string)
(0...(text.size)).map{|i| text[0..i]}.reverse.join(" ... ")
endAnd, finally, the following block will be executed and its output will be
rendered as well.echo_block("hallo")
>> "hello ... hell ... hel ... he ... h"== The Command Line Interface
Simply call literate_maruku filename.mkd to load your markdown
formatted ruby files. This will execute the code but not generate any output.
It basically works like a simpe ruby filename.rb call, but without all
the command line parameters the +ruby+ command supports.If you like to generate some html files, append an additional parameter, which
tells literate_maruku where to put the output.
literate_maruku --output_path=test filename.mkd would file the output
of filename.mkd to test/filename.html. That's all, folks.== The Programming Interface
To use Literate Maruku in your own special way simply use the
LiterateMaruku#require method.require 'literate_maruku'
LiterateMaruku.require('filename.mkd') # or
LiterateMaruku.require('filename.mkd', :output => "test")These will have the same result as the command line examples.
If you are unhappy with these little possibilities, no problem: You may still
use the standard maruku interface to do with your markdown string, what you like
after require'ing literate_maruku the maruku code base is extended for the
literate programming style.== Installing & Compatibility
gem install literate_maruku
Literate Maruku is currently only tested and known to work with
* Ruby 2.7, 3.0, 3.1
== Additional Resources
* {Project's website}[http://github.com/schmidt/literate_maruku/]
* {Introductory Talk about literate_maruku}[http://www.slideshare.net/schmidt/literate-maruku] (contains outdated URLs)
* {API doc}[http://rdoc.info/projects/schmidt/literate_maruku]
* {Build Status on GitHub Actions}[https://github.com/schmidt/literate_maruku/actions]== How to submit patches
In order to submit patches, please fork the repository on GitHub, add your
patches to your own copy and send a "Pull Request" afterwards. I will then try
to add your submissions as soon as possible. Patches containing corresponding
tests are always welcome.Bug reports or general feature requests should be added using GitHub Issues.
== License
This code is free to use under the terms of the MIT license.
:include: License.txt