# MarkdownHelper
[![Gem Version](https://badge.fury.io/rb/markdown_helper.svg)](https://badge.fury.io/rb/markdown_helper)
## File Inclusion
![include_icon](images/include.png | width=50)
This markdown helper enables file inclusion in GitHub markdown.
(Actually, this README file itself is built using file inclusion.)
Use the markdown helper to merge external files into a markdown (.md) file.
### Merged Text Formats
#### Highlighted Code Block
@[ruby](include.rb)
#### Plain Code Block
@[:code_block](include.rb)
[Note: In the gem documentation, RubyDoc.info chooses to highlight this code block regardless. Go figure.]
#### Verbatim
Verbatim text is included unadorned. Most often, verbatim text is markdown to be rendered as part of the markdown page.
### Usage
#### CLI
@[:code_block](../bin/usage/include.txt)
#### API
@[ruby](include_usage.rb)
#### Include Pragmas
Specify each file inclusion via an *include pragma*, which has the form:
@[
*format*]\(
*relative_file_path*)
where:
* *format* (in square brackets) is one of the following:
* Highlighting mode such as [ruby]
, to include a highlighted code block. This can be any Ace mode mentioned in [GitHub Languages](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml).
* [:code_block]
, to include a plain code block.
* [:verbatim]
, to include text verbatim (to be rendered as markdown).
* *relative_file_path* points to the file to be included.
##### Example Include Pragmas
@[code_block](include.md)
## Image Path Resolution
![image_icon](images/image.png | width=50)
This markdown helper enables image path resolution in GitHub markdown.
(Actually, this README file itself is built using image path resolution.)
Use the markdown helper to resolve image relative paths in a markdown (.md) file.
This matters because when markdown becomes part of a Ruby gem, its images will have been relocated in the documentation at RubyDoc.info, breaking the relative paths. The resolved (absolute) urls, however, will still be valid.
### Usage
#### CLI
@[:code_block](../bin/usage/resolve_image_urls.txt)
#### API
@[ruby](resolve_image_urls_usage.rb)
#### Image Pragmas
Specify each image file via an *image pragma*, which has the form:
![*alt_text*]\(
*relative_file_path* |
*attributes*)
where:
* *alt_text* is the usual alt text for an HTML image.
* *relative_file_path* points to the file to be included.
* *attributes* are whitespace-separated name-value pairs in the form *name*=
*value*. These are passed through to the generated img
HTML element.
##### Example Image Pragmas
@[code_block](resolve_image_urls.md)