diff --git a/src/chordpro/renderers/html.py b/src/chordpro/renderers/html.py
index 7ff6d52..6b00d89 100644
--- a/src/chordpro/renderers/html.py
+++ b/src/chordpro/renderers/html.py
@@ -46,6 +46,7 @@ STYLE_KEYS = [
'is_bold',
'is_centered',
'is_upper',
+ 'is_hidden',
'indent'
]
HTML_OPTIONS = {
@@ -223,6 +224,12 @@ HTML_OPTIONS = {
'default': True,
'group': 'stanza_heading'
},
+ 'stanza_heading_is_hidden': {
+ 'description': 'Hide the stanza headings',
+ 'type': bool,
+ 'default': False,
+ 'group': 'stanza_heading'
+ },
'verse_font': {
'description': 'The font for the verses',
'type': str,
@@ -271,6 +278,12 @@ HTML_OPTIONS = {
'default': True,
'group': 'verse_heading'
},
+ 'verse_heading_is_hidden': {
+ 'description': 'Hide the verse headings',
+ 'type': bool,
+ 'default': False,
+ 'group': 'verse_heading'
+ },
'chorus_font': {
'description': 'The font for the choruses',
'type': str,
@@ -319,6 +332,12 @@ HTML_OPTIONS = {
'default': True,
'group': 'chorus_heading'
},
+ 'chorus_heading_is_hidden': {
+ 'description': 'Hide the chorus headings',
+ 'type': bool,
+ 'default': False,
+ 'group': 'chorus_heading'
+ },
'bridge_font': {
'description': 'The font for the bridge',
'type': str,
@@ -367,6 +386,12 @@ HTML_OPTIONS = {
'default': True,
'group': 'bridge_heading'
},
+ 'bridge_heading_is_hidden': {
+ 'description': 'Hide the bridge headings',
+ 'type': bool,
+ 'default': False,
+ 'group': 'bridge_heading'
+ },
'chord_font': {
'description': 'The font for the chord',
'type': str,
@@ -390,7 +415,13 @@ HTML_OPTIONS = {
'type': bool,
'default': True,
'group': 'chord'
- }
+ },
+ 'chord_is_hidden': {
+ 'description': 'Hide all the chords',
+ 'type': bool,
+ 'default': False,
+ 'group': 'chord'
+ },
}
_OPTION_GROUPS = []
@@ -411,7 +442,7 @@ def get_option_groups():
return _OPTION_GROUPS
-def make_style(name, font=None, size=None, is_bold=None, is_centered=None, is_upper=None, indent=None):
+def make_style(name, font=None, size=None, is_bold=None, is_centered=None, is_upper=None, is_hidden=False, indent=None):
"""Build a CSS style"""
styles = []
if name == 'default':
@@ -428,6 +459,9 @@ def make_style(name, font=None, size=None, is_bold=None, is_centered=None, is_up
styles.append(' text-align: center;')
if is_upper:
styles.append(' text-transform: uppercase;')
+ if is_hidden:
+ styles.append(' display: none !important;')
+ styles.append(' visibility: hidden !important;')
if indent:
styles.append(' margin-left: {indent}rem;'.format(indent=indent))
if styles:
@@ -447,9 +481,9 @@ def generate_option_styles(options):
name = '{group}_{key}'.format(group=group, key=key)
if name not in HTML_OPTIONS:
continue
- option = options.get(name, HTML_OPTIONS[name]['default'])
- if option:
- kwargs[key] = option
+ value = options.get(name, HTML_OPTIONS[name]['default'])
+ if value is not None:
+ kwargs[key] = value
styles.append(make_style(group.replace('_', '-'), **kwargs))
return styles