diff --git a/plugins/configuration_basic.rb b/plugins/configuration_basic.rb
new file mode 100644
index 00000000000..816270a5d4a
--- /dev/null
+++ b/plugins/configuration_basic.rb
@@ -0,0 +1,74 @@
+module Jekyll
+ class ConfigurationBasicBlock < Liquid::Block
+ def initialize(tag_name, text, tokens)
+ super
+ @component, @platform = text.strip.split('.', 2)
+ end
+
+ def slug(key)
+ key.downcase.strip.gsub(' ', '-').gsub(/[^\w\-]/, '')
+ end
+
+ def render_config_vars(vars:, component:, platform:, converter:, classes: nil, parent_type: nil)
+ result = Array.new
+ result << "
"
+
+ result << vars.map do |key, attr|
+ markup = Array.new
+ markup << "
"
+
+ if attr.key? 'description'
+ markup << "#{converter.convert(attr['description'].to_s)}"
+ else
+ # Description is missing
+ raise ArgumentError, "Configuration key '#{key}' is missing a description."
+ end
+
+ markup << "
"
+
+ # Check for nested configuration variables
+ if attr.key? 'keys'
+ markup << render_config_vars(
+ vars: attr['keys'], component: component,
+ platform: platform, converter: converter,
+ classes: 'nested', parent_type: attr['type'])
+ end
+
+ markup << "
"
+ end
+
+ result << "
"
+ result.join
+ end
+
+ def render(context)
+ if @component.nil? and @platform.nil?
+ page = context.environments.first['page']
+ @component, @platform = page['slug'].split('.', 2)
+ end
+
+ contents = super(context)
+
+ component = Liquid::Template.parse(@component).render context
+ platform = Liquid::Template.parse(@platform).render context
+
+ site = context.registers[:site]
+ converter = site.find_converter_instance(::Jekyll::Converters::Markdown)
+
+ vars = SafeYAML.load(contents)
+
+ <<~MARKUP
+
+ #{render_config_vars(
+ vars: vars,
+ component: component,
+ platform: platform,
+ converter: converter
+ )}
+
+ MARKUP
+ end
+ end
+end
+
+Liquid::Template.register_tag('configuration_basic', Jekyll::ConfigurationBasicBlock)
\ No newline at end of file
diff --git a/source/_lovelace/weather-forecast.markdown b/source/_lovelace/weather-forecast.markdown
index 59049808c41..e5dac5a4462 100644
--- a/source/_lovelace/weather-forecast.markdown
+++ b/source/_lovelace/weather-forecast.markdown
@@ -7,10 +7,40 @@ description: "The Weather Forecast card displays the weather. Very useful to inc
The Weather Forecast card displays the weather. Very useful to include on interfaces that people display on the wall.
-
-Screenshot of the weather card.
+
+ Screenshot of the weather card.
+
+### Card Settings
+
+
+{% configuration_basic %}
+Entity:
+ description: "The entity of the `weather` platform to use."
+Name:
+ description: The name of the location where the weather platform is located. If not set, the name will be the name set on the weather entity
+Show Forecast:
+ description: Check this if you would like to show the upcoming forecast under the current weather.
+Secondary Info Attribute:
+ description: Here you can specify a secondary attribute to show under the current temperature. Ex. Extrema, Precipitation, Humidity. If not set, it will default to Extrema (High/Low) if available, if not available then Precipitation and if precipitation isn't available then Humidity.
+Theme:
+ description: Theme your card using any installed theme in your HA environment.
+{% endconfiguration_basic %}
+
+
+
+ This card works only with platforms that define a `weather` entity.
+
+ E.g., it works with [OpenWeatherMap](https://www.home-assistant.io/integrations/openweathermap/#weather) but not [OpenWeatherMap Sensor](https://www.home-assistant.io/integrations/openweathermap/#sensor)
+
+
+
+
+### YAML
+
+This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI
+
{% configuration %}
type:
required: true
@@ -48,13 +78,6 @@ type: weather-forecast
entity: weather.openweathermap
```
-
-
- This card works only with platforms that define a `weather` entity.
-
- E.g., it works with [OpenWeatherMap](https://www.home-assistant.io/integrations/openweathermap/#weather) but not [OpenWeatherMap Sensor](https://www.home-assistant.io/integrations/openweathermap/#sensor)
-
-
### Advanced