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.
- Host: GitHub
- URL: https://github.com/a6b8/markdown-titles-to-svg-for-ruby
- Owner: a6b8
- License: mit
- Created: 2021-06-18T00:14:47.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-05T15:38:43.000Z (over 2 years ago)
- Last Synced: 2025-03-09T23:48:48.570Z (7 months ago)
- Topics: github, headlines, markdown, readme-generator, readme-template, style, svg, titles
- Language: Ruby
- Homepage:
- Size: 155 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Headline Generator for ```Github Markdown``` File to generate beautiful ```Google Fonts``` Headlines.
```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" }
```
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)
**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',
{}
)
```
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

**A. Implementation**
> https://raw.githubusercontent.com/a6b8/a6b8/main/README.md**B. Execution**
> https://github.com/a6b8/a6b8/blob/main/titles.sh
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
``` txtMD_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 ]
},
{ ...```
### .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,
{}
)# =>
### 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. |
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).
- Font Types are limited to '.ttf' and '.otf'.
- Read only Markdown Files from Github.
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
![]()
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).
Please ⭐️ star this Project, every ⭐️ star makes us very happy!