diff --git a/index.html b/index.html index 2e986e00..42186ec4 100644 --- a/index.html +++ b/index.html @@ -18,6 +18,10 @@ NEWS + + + + diff --git a/src/ads/a9.html b/src/ads/a9.html deleted file mode 100644 index 65234daf..00000000 --- a/src/ads/a9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - -
- - -
- - diff --git a/src/ads/demo/index.html b/src/ads/demo/index.html deleted file mode 100644 index 12fbbda2..00000000 --- a/src/ads/demo/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - -

a9

- - - - diff --git a/src/lazy-resources.js b/src/lazy-resources.js index 2ed481fa..f977516f 100644 --- a/src/lazy-resources.js +++ b/src/lazy-resources.js @@ -1,6 +1,7 @@ import './news-icons.js'; import './news-analytics.js'; import './news-drawer.js'; +import './news-gpt-ad.js'; import './news-network-warning.js'; import './news-snackbar.js'; diff --git a/src/news-app.js b/src/news-app.js index e2105b5f..fc341ef6 100644 --- a/src/news-app.js +++ b/src/news-app.js @@ -260,6 +260,37 @@ class NewsApp extends Element { // Response by a11y announcing the section and syncronizing the category. _updateDocumentTitle(page, categoryTitle, articleHeadline, appTitle) { document.title = (page === 'list' ? categoryTitle : articleHeadline) + ' - ' + appTitle; + if (page === 'list') { + this._setPageMetadata(categoryTitle, null); + } else { + this._setPageMetadata(articleHeadline, this.article); + } + } + + _setPageMetadata(description, article) { + let image = article ? article.imageUrl : 'images/news-icon-128.png'; + + // Set open graph metadata + this._setMeta('property', 'og:title', document.title); + this._setMeta('property', 'og:description', description || document.title); + this._setMeta('property', 'og:url', document.location.href); + this._setMeta('property', 'og:image', this.baseURI + image); + + // Set twitter card metadata + this._setMeta('property', 'twitter:title', document.title); + this._setMeta('property', 'twitter:description', description || document.title); + this._setMeta('property', 'twitter:url', document.location.href); + this._setMeta('property', 'twitter:image:src', this.baseURI + image); + } + + _setMeta(attrName, attrValue, content) { + let element = document.head.querySelector(`meta[${attrName}="${attrValue}"]`); + if (!element) { + element = document.createElement('meta'); + element.setAttribute(attrName, attrValue); + document.head.appendChild(element); + } + element.setAttribute('content', content || ''); } _refreshData() { diff --git a/src/news-article.js b/src/news-article.js index 409d3a1a..0e58211c 100644 --- a/src/news-article.js +++ b/src/news-article.js @@ -2,7 +2,6 @@ import { Element } from '../node_modules/@polymer/polymer/polymer-element.js'; import '../node_modules/@polymer/app-route/app-route.js'; import '../node_modules/@polymer/iron-icon/iron-icon.js'; import './news-article-cover.js'; -import './news-iframe.js'; import './news-side-list.js'; import { afterNextRender } from '../node_modules/@polymer/polymer/lib/utils/render-status.js'; import { scroll } from '../node_modules/@polymer/app-layout/helpers/helpers.js'; @@ -74,7 +73,8 @@ class NewsArticle extends Element { margin-bottom: 32px; } - news-iframe { + news-gpt-ad { + display: block; width: 300px; height: 250px; } @@ -163,7 +163,9 @@ class NewsArticle extends Element {