22 | By {article._author[0].title} · {new Date(article.publishDate).toLocaleDateString()} 23 |
24 |{article.title}
25 |{article.excerpt}
26 |├── frontend
├── Procfile
├── tsconfig.json
├── src
│ ├── env.d.ts
│ ├── widgets
│ │ ├── FileWidget.astro
│ │ ├── RichTextWidget.astro
│ │ ├── index.js
│ │ ├── VideoWidget.astro
│ │ ├── ImageWidget.astro
│ │ ├── LinkWidget.astro
│ │ ├── AccordionWidget.astro
│ │ ├── CardWidget.astro
│ │ └── SlideshowWidget.astro
│ ├── templates
│ │ ├── DefaultPage.astro
│ │ ├── index.js
│ │ ├── ArticleShowPage.astro
│ │ ├── HomePage.astro
│ │ └── ArticleIndexPage.astro
│ ├── components
│ │ ├── Figure.astro
│ │ ├── ImageLink.astro
│ │ ├── Pagination.astro
│ │ ├── ArticlesFilter.astro
│ │ ├── Header.astro
│ │ └── Footer.astro
│ ├── lib
│ │ ├── homepage-defaults.js
│ │ ├── use-site-config.js
│ │ └── attachments.js
│ ├── layouts
│ │ └── article-layouts
│ │ │ ├── ShowMagazine.astro
│ │ │ ├── ShowMinimal.astro
│ │ │ ├── Standard.astro
│ │ │ ├── HeroGrid.astro
│ │ │ ├── ListAside.astro
│ │ │ └── ShowFullWidth.astro
│ ├── pages
│ │ └── [...slug].astro
│ └── styles
│ │ └── main.scss
├── .vscode
│ ├── extensions.json
│ └── launch.json
├── public
│ ├── fonts
│ │ └── fontawesome
│ │ │ ├── fa-brands-400.woff2
│ │ │ ├── fa-solid-900.woff2
│ │ │ ├── fa-regular-400.woff2
│ │ │ └── fa-v4compatibility.woff2
│ ├── images
│ │ ├── image-widget-placeholder.jpg
│ │ └── missing-icon.svg
│ ├── scripts
│ │ ├── dynamic-navbar-padding.js
│ │ └── VideoWidget.js
│ └── favicon.svg
├── .gitignore
├── postcss.config.js
├── README.md
├── package.json
└── astro.config.mjs
├── .gitignore
├── backend
├── modules
│ ├── @apostrophecms
│ │ ├── home-page
│ │ │ ├── views
│ │ │ │ └── page.html
│ │ │ └── index.js
│ │ ├── page
│ │ │ ├── views
│ │ │ │ └── notFound.html
│ │ │ └── index.js
│ │ ├── asset
│ │ │ └── index.js
│ │ ├── image-widget
│ │ │ ├── index.js
│ │ │ └── public
│ │ │ │ └── preview.svg
│ │ ├── express
│ │ │ └── index.js
│ │ ├── video-widget
│ │ │ ├── index.js
│ │ │ └── public
│ │ │ │ └── preview.svg
│ │ ├── attachment
│ │ │ └── index.js
│ │ ├── layout-column-widget
│ │ │ └── index.js
│ │ ├── user
│ │ │ └── index.js
│ │ ├── admin-bar
│ │ │ └── index.js
│ │ ├── rich-text-widget
│ │ │ ├── index.js
│ │ │ └── public
│ │ │ │ └── preview.svg
│ │ ├── i18n
│ │ │ └── index.js
│ │ └── settings
│ │ │ └── index.js
│ ├── link-widget
│ │ ├── index.js
│ │ └── public
│ │ │ └── preview.svg
│ ├── card-widget
│ │ ├── index.js
│ │ └── public
│ │ │ └── preview.svg
│ ├── hero-widget
│ │ ├── index.js
│ │ └── public
│ │ │ └── preview.svg
│ ├── slideshow-widget
│ │ ├── index.js
│ │ └── public
│ │ │ └── preview.svg
│ ├── default-page
│ │ └── index.js
│ ├── accordion-widget
│ │ ├── public
│ │ │ └── preview.svg
│ │ └── index.js
│ ├── author
│ │ └── index.js
│ ├── article
│ │ └── index.js
│ └── article-page
│ │ └── index.js
├── public
│ └── images
│ │ └── logo.png
├── eslint.config.js
├── .gitignore
├── scripts
│ ├── load-starter-content
│ └── update-starter-content
├── LICENSE
├── README.md
├── app.js
├── lib
│ ├── helpers
│ │ ├── color-options.js
│ │ ├── area-widgets.js
│ │ └── typography-options.js
│ └── schema-mixins
│ │ ├── slideshow-fields.js
│ │ ├── link-fields.js
│ │ ├── hero-fields.js
│ │ └── card-fields.js
├── package.json
└── views
│ └── layout.html
├── LICENSE
└── package.json
/frontend/Procfile:
--------------------------------------------------------------------------------
1 | web: node dist/server/entry.mjs
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 | /node_modules
3 | .DS_Store
4 |
--------------------------------------------------------------------------------
/frontend/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "astro/tsconfigs/base"
3 | }
4 |
--------------------------------------------------------------------------------
/backend/modules/@apostrophecms/home-page/views/page.html:
--------------------------------------------------------------------------------
1 | {% extends "layout.html" %}
2 |
--------------------------------------------------------------------------------
/backend/modules/@apostrophecms/page/views/notFound.html:
--------------------------------------------------------------------------------
1 | {% extends "layout.html" %}
2 |
--------------------------------------------------------------------------------
/frontend/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
22 | By {article._author[0].title} · {new Date(article.publishDate).toLocaleDateString()} 23 |
24 |{article.excerpt}
26 |39 | {new Date(article.publishDate).toLocaleDateString()} · By { 40 | article._author[0].title 41 | } 42 |
43 | 44 |65 | {excerptLength 66 | ? article.excerpt.slice(0, excerptLength) + 67 | (article.excerpt.length > excerptLength ? '...' : '') 68 | : article.excerpt} 69 |
70 | 71 | Read Full Article 72 | 73 |