├── .gitignore
├── backend
├── modules
│ ├── default-page
│ │ ├── views
│ │ │ └── page.html
│ │ └── index.js
│ └── @apostrophecms
│ │ ├── home-page
│ │ ├── views
│ │ │ └── page.html
│ │ └── index.js
│ │ ├── page
│ │ ├── views
│ │ │ └── notFound.html
│ │ └── index.js
│ │ ├── express
│ │ └── index.js
│ │ ├── asset
│ │ └── index.js
│ │ ├── settings
│ │ └── index.js
│ │ ├── blog
│ │ └── index.js
│ │ └── layout-column-widget
│ │ └── index.js
├── public
│ └── images
│ │ └── logo.png
├── lib
│ └── area.js
├── eslint.config.js
├── deployment
│ ├── README
│ ├── settings.staging
│ ├── migrate
│ ├── rsync_exclude.txt
│ ├── stop
│ ├── settings
│ ├── dependencies
│ └── start
├── views
│ └── layout.html
├── .gitignore
├── LICENSE
├── app.js
├── README.md
├── scripts
│ ├── sync-down
│ └── sync-up
└── package.json
├── frontend
├── tsconfig.json
├── src
│ ├── env.d.ts
│ ├── templates
│ │ ├── NotFoundPage.astro
│ │ ├── DefaultPage.astro
│ │ ├── BlogShowPage.astro
│ │ ├── index.js
│ │ ├── BlogIndexPage.astro
│ │ └── HomePage.astro
│ ├── widgets
│ │ ├── RichTextWidget.astro
│ │ ├── FileWidget.astro
│ │ ├── index.js
│ │ ├── ImageWidget.astro
│ │ └── VideoWidget.astro
│ ├── styles
│ │ └── app.css
│ ├── components
│ │ ├── Figure.astro
│ │ └── ImageLink.astro
│ └── pages
│ │ └── [...slug].astro
├── .vscode
│ ├── extensions.json
│ └── launch.json
├── public
│ ├── images
│ │ └── image-widget-placeholder.jpg
│ └── favicon.svg
├── .gitignore
├── postcss.config.js
├── package.json
├── README.md
└── astro.config.mjs
├── package.json
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 | /node_modules
3 | .DS_Store
4 |
--------------------------------------------------------------------------------
/backend/modules/default-page/views/page.html:
--------------------------------------------------------------------------------
1 | {% extends "layout.html" %}
2 |
--------------------------------------------------------------------------------
/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 | /// Sorry, that page was not found.Not Found
5 |
6 | This project is a backend for astro. Leave it running separately and access 7 | the astro project's URL for all edits. 8 |
9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | # generated types 4 | .astro/ 5 | 6 | # dependencies 7 | node_modules/ 8 | package-lock.json 9 | 10 | # logs 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | 17 | # environment variables 18 | .env 19 | .env.production 20 | 21 | # macOS-specific files 22 | .DS_Store 23 | -------------------------------------------------------------------------------- /frontend/postcss.config.js: -------------------------------------------------------------------------------- 1 | import postcssViewportToContainerToggle from 'postcss-viewport-to-container-toggle'; 2 | 3 | export default { 4 | // Is the site still editable in production like a normal Apos Site, 5 | // if yes we need the plugin for all builds 6 | plugins: [ 7 | postcssViewportToContainerToggle({ 8 | modifierAttr: 'data-breakpoint-preview-mode', 9 | debug: true, 10 | transform: null 11 | }) 12 | ] 13 | } -------------------------------------------------------------------------------- /backend/modules/@apostrophecms/settings/index.js: -------------------------------------------------------------------------------- 1 | export default { 2 | options: { 3 | subforms: { 4 | title: { 5 | fields: [ 'title' ], 6 | protection: true, 7 | reload: true 8 | }, 9 | changePassword: { 10 | fields: [ 'password' ] 11 | } 12 | }, 13 | 14 | groups: { 15 | account: { 16 | label: 'Account', 17 | subforms: [ 'title', 'changePassword' ] 18 | } 19 | } 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /frontend/src/templates/BlogShowPage.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import AposArea from '@apostrophecms/apostrophe-astro/components/AposArea.astro'; 3 | import dayjs from 'dayjs'; 4 | 5 | const { page, piece, user, query } = Astro.props.aposData; 6 | const { main } = piece; 7 | --- 8 | 9 |15 | Use the credentials created during setup with the Apostrophe CLI or create a new user with this command 16 | in your apostrophe project folder (not Astro): 17 |
18 |
19 | Command Line
20 |
21 | node app @apostrophecms/user:add myUsername admin
22 |
23 |
24 | 25 | Then log in here. 26 |
27 |31 | For a guide on how to configure and customize this project, please check out the apostrophe-astro documentation. 32 |
33 |36 | Enter Edit mode from the admin bar 👆 to begin. 37 |
38 | : 39 |40 | Add and edit content below in the content area. 👇 41 |
42 | } 43 |