diff --git a/core/modules/aggregator/aggregator.module b/core/modules/aggregator/aggregator.module
index 7298e4c..f563ae8 100644
--- a/core/modules/aggregator/aggregator.module
+++ b/core/modules/aggregator/aggregator.module
@@ -52,12 +52,17 @@ function aggregator_help($path, $arg) {
  */
 function aggregator_theme() {
   return array(
+    'aggregator_wrapper' => array(
+      'variables' => array('content' => NULL),
+      'file' => 'aggregator.pages.inc',
+      'template' => 'aggregator-wrapper',
+    ),
     'aggregator_categorize_items' => array(
       'render element' => 'form',
       'file' => 'aggregator.pages.inc',
     ),
     'aggregator_feed_source' => array(
-      'variables' => array('aggregator_feed' => NULL, 'view_mode' => NULL),
+      'variables' => array('feed' => NULL),
       'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-feed-source',
     ),
@@ -70,11 +75,11 @@ function aggregator_theme() {
       'template' => 'aggregator-summary-items',
     ),
     'aggregator_summary_item' => array(
-      'variables' => array('aggregator_item' => NULL, 'view_mode' => NULL),
+      'variables' => array('item' => NULL),
       'file' => 'aggregator.pages.inc',
     ),
     'aggregator_item' => array(
-      'variables' => array('aggregator_item' => NULL, 'view_mode' => NULL),
+      'variables' => array('item' => NULL),
       'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-item',
     ),
diff --git a/core/modules/aggregator/templates/aggregator-feed-source.html.twig b/core/modules/aggregator/templates/aggregator-feed-source.html.twig
new file mode 100644
index 0000000..12b2e2d
--- /dev/null
+++ b/core/modules/aggregator/templates/aggregator-feed-source.html.twig
@@ -0,0 +1,36 @@
+{#
+/**
+ * @file
+ * Default theme implementation to present the source of the feed.
+ *
+ * The contents are rendered above feed listings when browsing source feeds.
+ * For example, "example.com/aggregator/sources/1".
+ *
+ * Available variables:
+ * - source_icon: Feed icon linked to the source. Rendered through
+ *   theme_feed_icon().
+ * - source_image: Image set by the feed source.
+ * - source_description: Description set by the feed source.
+ * - source_url: URL to the feed source.
+ * - last_checked: How long ago the feed was checked locally.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_aggregator_feed_source()
+ * @see theme_feed_icon()
+ *
+ * @ingroup themeable
+ */
+#}
+<div class="feed-source">
+  {{ source_icon }}
+  {{ source_image }}
+  <div class="feed-description">
+    {{ source_description }}
+  </div>
+  <div class="feed-url">
+    <em>{{ 'URL' | t }}:</em> <a href="{{ source_url }}">{{ source_url }}</a>
+  </div>
+  <div class="feed-updated">
+    <em>{{ 'Updated' | t }}:</em>
+  </div>
+</div>
diff --git a/core/modules/aggregator/templates/aggregator-feed-source.tpl.php b/core/modules/aggregator/templates/aggregator-feed-source.tpl.php
deleted file mode 100644
index f9cfa55..0000000
--- a/core/modules/aggregator/templates/aggregator-feed-source.tpl.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * @file
- * Default theme implementation to present the source of the feed.
- *
- * The contents are rendered above feed listings when browsing source feeds.
- * For example, "example.com/aggregator/sources/1".
- *
- * Available variables:
- * - $source_icon: Feed icon linked to the source. Rendered through
- *   theme_feed_icon().
- * - $source_image: Image set by the feed source.
- * - $source_description: Description set by the feed source.
- * - $source_url: URL to the feed source.
- * - $last_checked: How long ago the feed was checked locally.
- *
- * @see template_preprocess()
- * @see template_preprocess_aggregator_feed_source()
- *
- * @ingroup themeable
- */
-?>
-<div class="feed-source">
-  <?php print $source_icon; ?>
-  <?php print $source_image; ?>
-  <div class="feed-description">
-    <?php print $source_description; ?>
-  </div>
-  <div class="feed-url">
-    <em><?php print t('URL:'); ?></em> <a href="<?php print $source_url; ?>"><?php print $source_url; ?></a>
-  </div>
-  <div class="feed-updated">
-    <em><?php print t('Updated:'); ?></em> <?php print $last_checked; ?>
-  </div>
-</div>
diff --git a/core/modules/aggregator/templates/aggregator-item.html.twig b/core/modules/aggregator/templates/aggregator-item.html.twig
new file mode 100644
index 0000000..6751bf9
--- /dev/null
+++ b/core/modules/aggregator/templates/aggregator-item.html.twig
@@ -0,0 +1,46 @@
+{#
+/**
+ * @file
+ * Default theme implementation to present a feed in an aggregator page.
+ *
+ * Available variables:
+ * - feed_url: URL to the originating feed item.
+ * - feed_title: Title of the feed item.
+ * - source_url: Link to the local source section.
+ * - source_title: Title of the remote source.
+ * - source_date: Date the feed was posted on the remote source.
+ * - content: Feed item content.
+ * - categories: Linked categories assigned to the feed.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_aggregator_item()
+ *
+ * @ingroup themeable
+ */
+#}
+<div class="feed-item">
+
+  <h3 class="feed-item-title">
+    <a href="{{ feed_url }}">{{ feed_title }}</a>
+  </h3>
+
+  <div class="feed-item-meta">
+    {% if source_url %}
+      <a href="{{ source_url }}" class="feed-item-source">{{ source_title }}</a> -
+    {% endif %}
+    <span class="feed-item-date">{{ source_date }}</span>
+  </div>
+
+  {% if content %}
+    <div class="feed-item-body">
+      {{ content }}
+    </div>
+  {% endif %}
+
+  {% if categories %}
+    <div class="feed-item-categories">
+      {{ 'Categories' | t }}: {{ categories|join(', ') }}
+    </div>
+  {% endif %}
+
+</div>
diff --git a/core/modules/aggregator/templates/aggregator-item.tpl.php b/core/modules/aggregator/templates/aggregator-item.tpl.php
deleted file mode 100644
index 74b2284..0000000
--- a/core/modules/aggregator/templates/aggregator-item.tpl.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/**
- * @file
- * Default theme implementation to format an individual feed item for display
- * on the aggregator page.
- *
- * Available variables:
- * - $feed_url: URL to the originating feed item.
- * - $feed_title: Title of the feed item.
- * - $source_url: Link to the local source section.
- * - $source_title: Title of the remote source.
- * - $source_date: Date the feed was posted on the remote source.
- * - $content: Feed item content.
- * - $categories: Linked categories assigned to the feed.
- *
- * @see template_preprocess()
- * @see template_preprocess_aggregator_item()
- *
- * @ingroup themeable
- */
-?>
-<div class="feed-item">
-  <h3 class="feed-item-title">
-    <a href="<?php print $feed_url; ?>"><?php print $feed_title; ?></a>
-  </h3>
-
-  <div class="feed-item-meta">
-  <?php if ($source_url): ?>
-    <a href="<?php print $source_url; ?>" class="feed-item-source"><?php print $source_title; ?></a> -
-  <?php endif; ?>
-    <span class="feed-item-date"><?php print $source_date; ?></span>
-  </div>
-
-<?php if ($content): ?>
-  <div class="feed-item-body">
-    <?php print $content; ?>
-  </div>
-<?php endif; ?>
-
-<?php if ($categories): ?>
-  <div class="feed-item-categories">
-    <?php print t('Categories'); ?>: <?php print implode(', ', $categories); ?>
-  </div>
-<?php endif ;?>
-
-</div>
diff --git a/core/modules/aggregator/templates/aggregator-summary-items.html.twig b/core/modules/aggregator/templates/aggregator-summary-items.html.twig
new file mode 100644
index 0000000..077b017
--- /dev/null
+++ b/core/modules/aggregator/templates/aggregator-summary-items.html.twig
@@ -0,0 +1,24 @@
+{#
+/**
+ * @file
+ * Default theme implementation to present feeds as list items.
+ *
+ * Each iteration generates a single feed source or category.
+ *
+ * Available variables:
+ * - title: Title of the feed or category.
+ * - summary_list: Unordered list of linked feed items generated through
+ *   theme_item_list().
+ * - source_url: URL to the local source or category.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_aggregator_summary_items()
+ *
+ * @ingroup themeable
+ */
+#}
+<h3>{{ title }}</h3>
+{{ summary_list }}
+<div class="links">
+  <a href="{{ source_url }}">{{ 'More' | t }}</a>
+</div>
diff --git a/core/modules/aggregator/templates/aggregator-summary-items.tpl.php b/core/modules/aggregator/templates/aggregator-summary-items.tpl.php
deleted file mode 100644
index eec3683..0000000
--- a/core/modules/aggregator/templates/aggregator-summary-items.tpl.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @file
- * Default theme implementation to present feeds as list items.
- *
- * Each iteration generates a single feed source or category.
- *
- * Available variables:
- * - $title: Title of the feed or category.
- * - $summary_list: Render array of unordered feed items list.
- * - $source_url: URL to the local source or category.
- *
- * @see template_preprocess()
- * @see template_preprocess_aggregator_summary_items()
- *
- * @ingroup themeable
- */
-?>
-<h3><?php print $title; ?></h3>
-<?php print render($summary_list); ?>
-<div class="links">
-  <a href="<?php print $source_url; ?>"><?php print t('More'); ?></a>
-</div>
diff --git a/core/modules/aggregator/templates/aggregator-wrapper.html.twig b/core/modules/aggregator/templates/aggregator-wrapper.html.twig
new file mode 100644
index 0000000..184d106
--- /dev/null
+++ b/core/modules/aggregator/templates/aggregator-wrapper.html.twig
@@ -0,0 +1,20 @@
+{#
+/**
+ * @file
+ * Default theme implementation to wrap aggregator content.
+ *
+ * Available variables:
+ * - content: All aggregator content.
+ * - page: Pager links rendered through theme_pager().
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_aggregator_wrapper()
+ * @see theme_pager()
+ *
+ * @ingroup themeable
+ */
+#}
+<div class="{{ attributes.class }}">
+  {{ content }}
+  {{ pager }}
+</div>
diff --git a/core/modules/aggregator/templates/aggregator-wrapper.tpl.php b/core/modules/aggregator/templates/aggregator-wrapper.tpl.php
deleted file mode 100644
index 0e97ba4..0000000
--- a/core/modules/aggregator/templates/aggregator-wrapper.tpl.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @file
- * Default theme implementation to wrap aggregator content.
- *
- * Available variables:
- * - $content: All aggregator content.
- * - $page: Pager links rendered through theme_pager().
- *
- * @see template_preprocess()
- * @see template_preprocess_aggregator_wrapper()
- *
- * @ingroup themeable
- */
-?>
-<div class="<?php print $attributes['class']; ?>">
-  <?php print $content; ?>
-  <?php print $pager; ?>
-</div>
