Use this component to show a section of news content. It also offers a vf-news-container--featured
variant with support for vf-summary
for when news is a higher level and, well, featured content on layout.
Combinations of cancer drugs can be quickly and cheaply tested using a novel microfluidic device.
Combinations of cancer drugs can be quickly and cheaply tested using a novel microfluidic device.
Combinations of cancer drugs can be quickly and cheaply tested using a novel microfluidic device.
Depending on your environment you'll want to use render
or include
. As a rule of thumb: server-side use include
, precompiled browser use render
. If you're using vf-eleventy you should use include
.
include
You'll need to pass a context object from your code or Yaml file (example), as well as the path to the Nunjucks template. Nunjucks' include
is an abstraction of render
and provides some additional portability.
{% set context fromYourYamlFile %}
- or -
{% set context = {
"component-type" : "container",
"section-title" : "Latest Press Releases",
}
%}
{% include "../path_to/vf-news-container/vf-news-container.njk" %}
render
This approach is best for bare-bones Nunjucks environments, such as precompiled templates with the Nunjucks slim runtime where include
is not be available.
{% render '@vf-news-container', {
"component-type" : "container",
"section-title" : "Latest Press Releases",}
%}
<section class="vf-news-container | embl-grid">
<div class="vf-section-header">
<h2 class="vf-section-header__heading"> Projects</h2>
</div>
<div class="vf-news-container__content">
<article class="vf-summary vf-summary--news">
<span class="vf-summary__date">4 September 2019</span>
<img class="vf-summary__image" src="../../assets/vf-summary/assets/vf-summary--news-has-image.jpg" alt="News image alt" loading="lazy">
<h3 class="vf-summary__title">
<a href="JavaScript:Void(0);" class="vf-summary__link">
news article summary
</a>
</h3>
<p class="vf-summary__text">
Combinations of cancer drugs can be quickly and cheaply tested using a novel microfluidic device.
</p>
</article>
<article class="vf-summary vf-summary--news">
<span class="vf-summary__date">4 September 2019</span>
<img class="vf-summary__image" src="../../assets/vf-summary/assets/vf-summary--news-has-image.jpg" alt="News image alt" loading="lazy">
<h3 class="vf-summary__title">
<a href="JavaScript:Void(0);" class="vf-summary__link">
news article summary
</a>
</h3>
<p class="vf-summary__text">
Combinations of cancer drugs can be quickly and cheaply tested using a novel microfluidic device.
</p>
</article>
<article class="vf-summary vf-summary--news">
<span class="vf-summary__date">4 September 2019</span>
<img class="vf-summary__image" src="../../assets/vf-summary/assets/vf-summary--news-has-image.jpg" alt="News image alt" loading="lazy">
<h3 class="vf-summary__title">
<a href="JavaScript:Void(0);" class="vf-summary__link">
news article summary
</a>
</h3>
<p class="vf-summary__text">
Combinations of cancer drugs can be quickly and cheaply tested using a novel microfluidic device.
</p>
</article>
</div>
<!--
<div class="vf-news-container__sidebar">
Optional vf-news-container__sidebar
</div>
-->
</section>
Depending on your environment you'll want to use render
or include
. As a rule of thumb: server-side use include
, precompiled browser use render
. If you're using vf-eleventy you should use include
.
include
You'll need to pass a context object from your code or Yaml file (example), as well as the path to the Nunjucks template. Nunjucks' include
is an abstraction of render
and provides some additional portability.
{% set context fromYourYamlFile %}
- or -
{% set context = {
"component-type" : "container",
"section-title" : "Latest Press Releases",
}
%}
{% include "../path_to/vf-news-container/vf-news-container.njk" %}
render
This approach is best for bare-bones Nunjucks environments, such as precompiled templates with the Nunjucks slim runtime where include
is not be available.
{% render '@vf-news-container', {
"component-type" : "container",
"section-title" : "Latest Press Releases",}
%}
<section class="vf-news-container vf-news-container--featured | vf-stack">
<div class="vf-section-header">
<h2 class="vf-section-header__heading"> Projects</h2>
</div>
<div class="vf-news-container__content | vf-grid vf-grid__col-4">
<article class="vf-summary vf-summary--news">
<span class="vf-summary__date">4 September 2019</span>
<img class="vf-summary__image" src="../../assets/vf-summary/assets/vf-summary--news-has-image.jpg" alt="BioSamples" loading="lazy">
<h3 class="vf-summary__title">
<a href="JavaScript:Void(0);" class="vf-summary__link">
news article summary
</a>
</h3>
</article>
<article class="vf-summary vf-summary--news">
<span class="vf-summary__date">4 September 2019</span>
<img class="vf-summary__image" src="../../assets/vf-summary/assets/vf-summary--news-has-image.jpg" alt="BioSamples" loading="lazy">
<h3 class="vf-summary__title">
<a href="JavaScript:Void(0);" class="vf-summary__link">
news article summary
</a>
</h3>
</article>
<article class="vf-summary vf-summary--news">
<span class="vf-summary__date">4 September 2019</span>
<img class="vf-summary__image" src="../../assets/vf-summary/assets/vf-summary--news-has-image.jpg" alt="BioSamples" loading="lazy">
<h3 class="vf-summary__title">
<a href="JavaScript:Void(0);" class="vf-summary__link">
news article summary
</a>
</h3>
</article>
<article class="vf-summary vf-summary--news">
<span class="vf-summary__date">4 September 2019</span>
<img class="vf-summary__image" src="../../assets/vf-summary/assets/vf-summary--news-has-image.jpg" alt="BioSamples" loading="lazy">
<h3 class="vf-summary__title">
<a href="JavaScript:Void(0);" class="vf-summary__link">
news article summary
</a>
</h3>
</article>
</div>
<!--
<div class="vf-news-container__sidebar">
Optional vf-news-container__sidebar
</div>
-->
</section>
This component is distributed with npm. After installing npm, you can install the vf-news-container
with this command.
$ yarn add --dev @visual-framework/vf-news-container
The source files included are written in Sass(scss
). You can point your Sass include-path
at your node_modules
directory and import it like this.
@import "@visual-framework/vf-news-container/index.scss";
Make sure you import Sass requirements along with the modules. You can use a project boilerplate or the vf-sass-starter
File system location: components/vf-news-container
Find an issue on this page? Propose a change or discuss it.