An open API service indexing awesome lists of open source software.

https://github.com/a6b8/markdown-titles-to-svg-for-ruby

Headline Generator for Github Markdown File to generate beautiful Google Fonts Headlines.
https://github.com/a6b8/markdown-titles-to-svg-for-ruby

github headlines markdown readme-generator readme-template style svg titles

Last synced: 7 months ago
JSON representation

Headline Generator for Github Markdown File to generate beautiful Google Fonts Headlines.

Awesome Lists containing this project

README

          


Markdown Titles to .svg for Ruby.

Headline Generator for ```Github Markdown``` File to generate beautiful ```Google Fonts``` Headlines.



Examples





```ruby
{ font__google_fonts__h1__name: "Permanent Marker" }
```



```ruby
{ font__google_fonts__h1__name: "Playfair Display" }
```



```ruby
{ font__google_fonts__h1__name: "Roboto Condensed" }
```



```ruby
{ font__google_fonts__h1__name: "Sarina" }
```



```ruby
{ font__google_fonts__h1__name: "Sonsie One" }
```



```ruby
{ font__google_fonts__h1__name: "Trocchi" }
```



```ruby
{ font__google_fonts__h1__name: "UnifrakturMaguntia" }
```


```ruby
{ font__google_fonts__h1__name: "Zilla Slab Highlight" }
```



Table of Contents

1. [Examples](#examples)

2. [Quickstart](#quickstart)

3. [Demo](#demo)

4. [Setup](#setup)

5. [Process](#process)

6. [Functions](#functions)

7. [Options](#options)

8. [Limitations](#limitations)

9. [Contributing](#contributing)

10. [License](#license)

11. [Code of Conduct](#code-of-conduct)

12. [Support my Work](#support-my-work)



Quickstart

**Single Title**
```ruby
require 'markdown_titles_to_svg'

svg = MarkdownTitlesToSvg.single(
'headline',
:h1,
{}
)
```

**Generate from Github Markdown**
```ruby
require 'markdown_titles_to_svg'

markdowns = [
'https://raw.githubusercontent.com/a6b8/a6b8/main/templates/readme.md'
]

MarkdownTitlesToSvg.generate(
markdowns,
'a6b8',
{}
)
```



Setup

Add this line to your application's Gemfile:

```ruby
gem 'markdown_headlines_to_svg'
```

And then execute:

$ bundle install

Or install it yourself as:

$ gem install markdown_headlines_to_svg

![](https://ruby-gem-downloads-badge.herokuapp.com/markdown_titles_to_svg?type=total&color=lightgray)




Demo

**A. Implementation**
> https://raw.githubusercontent.com/a6b8/a6b8/main/README.md

**B. Execution**
> https://github.com/a6b8/a6b8/blob/main/titles.sh



Process

1. Run Command
```txt
mds = [ PATH_FILE1, PATH_FILE2 ]
markdown_headlines_to_svg.generate(
mds,
"github_profile_name",
options = {}
)
```

2. Prepare (Import) Font
``` txt
:h1 :default
| |
| mode | mode
---------- ----------
| | | |
v v v v
Local Google Fonts Local
```

3. Scrape Titles
``` txt

MD_FILE_ 1 QUEUE
------------------------------------------------------
| img src="../a/c/d/1.svg" alt="# Headline 1" ------|------> [ 0 ]
| |
| MD_FILE_2 |
| -----------------------------------------------------
| | img src="../b/c/d/1.svg" alt="# Headline 2" -----|-> [ 1 ]
|----| ... |
| img src="../c/d/e/2.svg" alt="Title 1" ----------|-> [ 2 ]
| ... |

[ 0 ] { text: 'Headline 1', type: :h1, output: '../a/c/d/1.svg' }
[ 1 ] { text: 'Headline 2', type: :h1, output: '../b/c/d/1.svg' }
[ 2 ] { text: 'Title 1', type: :default, output: '../c/d/e/2.svg' }
```

4. Add Style and Font Options

``` txt
default
+ user options
{ |
type: :h1, ---------------------|------------------
text: 'Headline 1', | |
output: '../a/c/d/1.svg', V V
style: <-------------------- options[ :style ][ :h1 ]
font: <---------------------- options[ :font ][ :h1 ]
},
{ ...

```



Functions

### .get_options()
Output all Parameter
```ruby
MarkdownTitlesToSvg.get_options()

# => { github: { profile: nil, ...
```

### .generate( [], '', {} )
Generate and store of Titles in all Files
```ruby
MarkdownTitlesToSvg.generate(
markdowns,
'a6b8',
{}
)
```

| **Type** | **Required** | **Description** | **Example** | **Description** |
|------:|:------|:------|:------|:------|
| **markdowns** | ```Array (of String)``` | Yes | ```[ '/markdown-titles-to-svg/main/README.md' ]``` | Define List of Markup |
| **github user name** | ```String``` | Yes | ```'a6b8'``` | Set Github User Name |
| **options** | ```Hash``` | No | ```'a6b8'``` | Change default options, see "options" for more Information. |

### .single( [], '', {} )
Generate a single Title and outputs a svg string.
```ruby
svg = MarkdownTitlesToSvg.single(
'headline',
:h1,
{}
)

# =>


Options

### Github
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| A.1. | Source |:github__source | `"https://raw.githubusercontent.com/"` | String | |

### Font
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| B.1. | Text_align |:font__text_align | `left` | Symbol | Set aligment of text |
| B.2. | Bold |:font__bold | `false` | Boolean | Set format of font. If you use Google Fonts try "variant first" |
| B.3. | Mode H1 |:font__mode__h1 | `:google_fonts` | Symbol | Set mode for Headlines. Choose between ```:local``` and ```:google_fonts``` |
| B.4. | Mode Default |:font__mode__default | `:google_fonts` | Symbol | Set mode for Titles. Choose between ```:local``` and ```:google_font``` |

#### Import from Local
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| B.5. | H1 |:font__local__h1 | `"/Library/Fonts/Microsoft/Corbel Bold.ttf"` | String | Set local font for Headline if necessary |
| B.6. | Default |:font__local__default | `"/Library/Fonts/Microsoft/Consolas.ttf"` | String | String | Set local font for Titles if necessary |

#### Import from "Google Fonts"
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| B.7. | H1 Name |:font__google_fonts__h1__name | `"Oswald"` | String | Set Google Fonts font name for Headline |
| B.8. | H1 Variant |:font__google_fonts__h1__variant | `"regular"` | String | Set Google Fonts variant type for headlines |
| B.9. | H1 Subset |:font__google_fonts__h1__subset | `"latin"` | String | Set Google Fonts subset type for headlines |
| B.10. | Default Name |:font__google_fonts__default__name | `"Amatic SC"` | String | Set Google Fonts font name for Titles |
| B.11. | Default Variant |:font__google_fonts__default__variant | `"regular"` | String | Set Google Fonts variant type for titles |
| B.12. | Default Subset |:font__google_fonts__default__subset | `"latin"` | String | Set Google Fonts subset type for titles |

Please use https://google-webfonts-helper.herokuapp.com/fonts to find your favorite Font.

### View
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| C.1. | Offset Height |:view__offset__height | `0` | Integer | Experimental: Set change View Box height |
| C.2. | Offset Widht |:view__offset__widht | `0` | Integer | Experimental: Set change View Box width |

### Style

#### Headlines
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| D.1. | Color Opacity |:style__h1__color__opacity | `1.0` | Float | Change Headline color opacity |
| D.2. | Color Default |:style__h1__color__default | `"#A5834B"` | String | Change Headline fill color |
| D.3. | Color Palette |:style__h1__color__palette | `[]` | Array | Experimental: Set for each character in headline an other color |
| D.4. | Stroke Color |:style__h1__stroke__color | `"none"` | String | Change headline fill color of stroke |
| D.5. | Stroke Width |:style__h1__stroke__width | `"0"` | String | Change headline stroke width |
| D.6. | Stroke Opacity |:style__h1__stroke__opacity | `1.0` | Float | Change headline stroke opacity |
| D.7. | Stroke Linecap |:style__h1__stroke__linecap | `"butt"` | String | Change headline stroke width |

#### Default
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| D.8. | Color Opacity |:style__default__color__opacity | `1.0` | Float | Change Title color opacity |
| D.9. | Color Default |:style__default__color__default | `"#A5834B"` | String | Change Title fill color |
| D.10. | Color Palette |:style__default__color__palette | `[]` | Array | Experimental: Set for each character in titles an other color |
| D.11. | Stroke Color |:style__default__stroke__color | `"none"` | String | Change title fill color of stroke |
| D.12. | Stroke Width |:style__default__stroke__width | `"0"` | String | Change title stroke width |
| D.13. | Stroke Opacity |:style__default__stroke__opacity | `1.0` | Float | Change title stroke opacity |
| D.14. | Stroke Linecap |:style__default__stroke__linecap | `"butt"` | String | Change title stroke width |

You can find more Information about ```svg``` format here: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path

### Other
| Nr | Name | Key | Default | Type | Description |
| :-- | :-- | :-- | :-- | :-- | :-- |
| E.1. | Silent | :silent | `false` | Boolean | Controll console output. |



Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/a6b8/markdown-titles-to-svg-for-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/a6b8/statosio/blob/master/CODE_OF_CONDUCT.md).



Limitations

- Font Types are limited to '.ttf' and '.otf'.
- Read only Markdown Files from Github.



Credits



License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).



Code of Conduct


Everyone interacting in the Statosio project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/a6b8/markdown-titles-to-svg-for-ruby/blob/master/CODE_OF_CONDUCT.md).



Star us

Please ⭐️ star this Project, every ⭐️ star makes us very happy!