diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml
index 205842c..9fdf185 100644
--- a/.github/workflows/static.yml
+++ b/.github/workflows/static.yml
@@ -54,6 +54,13 @@ jobs:
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
+ - name: Aggregate external blog posts
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ echo "🔄 Aggregating external blog posts..."
+ npm run aggregate-posts || echo "⚠️ Post aggregation failed, continuing with build"
+
- name: Initialize Hugo modules
run: hugo mod get
diff --git a/assets/css/external-posts.css b/assets/css/external-posts.css
new file mode 100644
index 0000000..8db85e5
--- /dev/null
+++ b/assets/css/external-posts.css
@@ -0,0 +1,60 @@
+/* External post card styling */
+.external-post-card {
+ position: relative;
+}
+
+.external-post-card .card {
+ border-left: 4px solid #007bff;
+ background: linear-gradient(145deg, #ffffff, #f8f9fa);
+}
+
+.external-post-badge {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ background: rgba(0, 123, 255, 0.9);
+ color: white;
+ padding: 4px 8px;
+ border-radius: 12px;
+ font-size: 0.75rem;
+ font-weight: 500;
+ z-index: 10;
+}
+
+.external-post-badge i {
+ margin-right: 4px;
+}
+
+.external-post-source {
+ margin-top: 10px;
+ padding-top: 8px;
+ border-top: 1px solid #dee2e6;
+}
+
+.external-post-source i {
+ margin-right: 4px;
+}
+
+.tag-badge {
+ margin-right: 4px;
+ margin-bottom: 4px;
+ font-size: 0.7rem;
+}
+
+.tags {
+ margin-top: 8px;
+}
+
+/* Dark theme support */
+[data-theme="dark"] .external-post-card .card {
+ background: linear-gradient(145deg, #2d3748, #1a202c);
+ border-left-color: #4299e1;
+}
+
+[data-theme="dark"] .external-post-badge {
+ background: rgba(66, 153, 225, 0.9);
+}
+
+[data-theme="dark"] .external-post-source {
+ border-top-color: #4a5568;
+}
\ No newline at end of file
diff --git a/data/en/external-posts.yaml b/data/en/external-posts.yaml
new file mode 100644
index 0000000..cc090f3
--- /dev/null
+++ b/data/en/external-posts.yaml
@@ -0,0 +1 @@
+posts: []
diff --git a/data/en/external_posts.yaml b/data/en/external_posts.yaml
new file mode 100644
index 0000000..870284d
--- /dev/null
+++ b/data/en/external_posts.yaml
@@ -0,0 +1,11 @@
+posts:
+ - title: "Sample External Post"
+ date: "2024-01-15T00:00:00Z"
+ summary: "This is a sample external post to demonstrate the aggregation functionality."
+ url: "https://wesleycamargo.github.io/sample-post"
+ source:
+ repository: "wesleycamargo/wesleycamargo.github.io"
+ author: "wesleycamargo"
+ originalUrl: "https://github.com/wesleycamargo/wesleycamargo.github.io/blob/main/content/posts/sample.md"
+ tags: ["sample", "demo"]
+ external: true
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
new file mode 100644
index 0000000..2e49991
--- /dev/null
+++ b/layouts/_default/list.html
@@ -0,0 +1,60 @@
+{{ define "navbar" }}
+ {{ partial "navigators/navbar.html" . }}
+{{ end }}
+
+{{ define "sidebar" }}
+ {{ $homePage:="#" }}
+ {{ if hugo.IsMultilingual }}
+ {{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
+ {{ end }}
+
+
+{{ end }}
+
+{{ define "content" }}
+
{{ .summary }}
+ + {{ if .tags }} + + {{ end }} +