Comments (8)
Sources bucket structure will be something like - root folder contains all the project yaml files (cantilevers.yaml
). Each project will then have a folder based on the domain specified (www.cantilevers.org), which will contain the usual sources, images, generated folder etc.
The destination bucket will have a folder for each domain, containing the published website content.
So next step is to build the project creation service and front end.
from cantilever.
When loading and saving content, how do I specify the project? This will be needed to identify what source folder to save to. Options are:
- change routes to be, eg. GET /posts/{projectKey}/{srcKey}
- Put the {projectKey} into a Header
- Do something with cookies?
from cantilever.
A project definition requires a domain (like www.cantilevers.org) which gets treated as the 'domainKey', the name of the root folder in the S3 sources and destination buckets. It is set on project creation, but it's just part of the project yaml and can easily be modified. Which would break things. Ignoring that part for now, it's still a bit tricky to know what to name the '.yaml' file in the first place. It is currently set to a sluggified version of the original project name. I kinda what to make that more of a UUID.
from cantilever.
I am going to experiment with headers and cookies. New territory for me. I don't really want to complicate my routes by passing the project key.
from cantilever.
Project needs a proper testing but I think I've got all the core routes working with new cantilever-project-domain header.
from cantilever.
Testing to be done:
- posts
- create new post
- load post
- save post
- delete post
- pages
- load page list
- create new page - works where a page template has sections; fails otherwise - template issue
- load page
- save page
- save new page
- delete page
- create folder
- delete folder
- setting a page as the index/root for a folder?
- manage page sections based on the template
- templates
- create new template
- load template
- save template
- delete template
- create, manage and delete template sections
- trigger regeneration of pages based on template
- media
- load image gallery
- upload new image
- delete image
- project configuration
- load and save existing configuration
- create, manage and delete custom attributes
- create, manage and delete image resolutions
- Generation menus
- Rebuild metadata
- Rebuild all pages
- Rebuild all posts
- Rebuild image resolutions
from cantilever.
Bugs found:
- switching projects does not clear posts store/list
- images are uploaded to the wrong folder
- can create a post even when there is no post template.
- can attempt (but fail) to create a page when there is no non-post template
- when creating the first template, it repeatedly checks for template usage - stop this for unsaved templates
- when saving a new template, the template list is not updated afterwards
- when saving the first 'post' template and then attempting to create a post, after having previously visited the Posts page, the new post dialog never fetches the newly updated template list so it's not possible to create a post. Log out and back in to resolve this. Same for pages.
Major problem:
- File uploads no longer trigger the generation pipeline, because this was based on the key starting with sources/. This is no longer true. I'll probably need to return to a three-bucket solution.
from cantilever.
I've done enough, for now.
from cantilever.
Related Issues (20)
- Create URL generation strategies for posts and pages and other ContentNodes
- Allow configuration of error pages, such as 404, through project definition file HOT 1
- Add schema defintions to the OpenAPI specification by compile-time generation of schema information HOT 1
- Allow upload, processing, management and linking of image files HOT 4
- Folder structure for posts is wrong - starts with / HOT 1
- "Is root" flag is not persisting for pages other than the root index.html HOT 1
- Creating a new folder for pages does not update the web UI HOT 4
- Switch out Flowbite UI for another framework such as Skeleton or Carbon HOT 4
- Router: OK responses should not have a message so my Response.OK class is wrong. Always return JSON if a message is needed.
- Navigating between pages must clear various stores, like contentStore
- Delete old web editing environment project
- /pages routes were did not require authentication!
- Create lambda@edge function to rewrite requests and deploy via CDK HOT 2
- Move generated folder to new S3 bucket
- Use treeview for posts as well as pages, grouped by year
- Create a route to clear the generated bucket for a project, to free up space. HOT 2
- Prod build bugs HOT 1
- Implement regenerate image metadata
- Fix bucket permissions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cantilever.