See the work in progress for the docsmith reference implementation
Also see the status page and roadmap
Focus on allowing user to start from a project scaffold:
We could create repos (contentascode-blog
, contentascode-wiki
, contentascode-site
, contentascode-doc
) that are ready to clone with some sensible defaults.
The default pipelines would have a travis.yml that push to a gh-pages
branch.
We could also look into Grunt-init or Yeoman Project Scaffolding tools to allow configuration of various options such as:
We also need to think about migration and various options to use integrations to facilitate a progressive transition process from CMSes to the content as code approach.
Name | Description | Repo | Editor | Generator | Build | Hosting | Services |
---|---|---|---|---|---|---|---|
scaffold-github-pages | Fork and play. | Github | Prose | Jekyll | Github Pages | Github | |
scaffold-github-jekyll-travis | With Jekyll and Travis CI | Github | Prose | Jekyll | Travis | Github | |
scaffold-github-metalsmith-travis | With Metalsmith and Travis CI | Github | Prose | Metalsmith | Travis | Github | |
scaffold-jekyll-jenkins | Open source stack | Gitlab | Hosted Prose | Jekyll | Jenkins | Self-Hosted | |
scaffold-metalsmith-gitlabci | Open source stack with metalsmith | Gitlab | Hosted Prose | Jekyll | Gitlab CI | Self-Hosted | |
infra-heroku | Push to deploy micro-service infra | Gitlab | Hosted Prose | Jekyll | Jenkins | Heroku | Single container |
infra-docker | Docker single server micro-service infra | Multi-container | |||||
infra-ansible | Distributed micro-service infra | Multi-server |
Scaffold and infrastructure repos might make some choices with regards to lower level implementation approaches (make vs bash vs gulp…) and it would be good to allow this to be plug and play. i.e. Content as Code should be opinionated with regards to concepts and architecture (and maybe its pivot data format, metadata description and other declarative things about workflow configuration), but not with regards to implementation.
This table aims to represent which components affect which stages of the content as code framework.
- Key : means that this component is a key component for this stage.
- Change : means that this component modifies or applies to this stage.
- +1 component : means that this component works better with another component.
- -1 component : means that this component doesn’t work with another component.
Component \ Stage | Source | Author | Build | Integrate | Translate | Publish |
---|---|---|---|---|---|---|
github | Key | +1 travis | +1 gh-pages | |||
gitlab | Key | +1 gitlab-ci | ||||
prose | +1 github | Key | +1 jekyll | |||
jekyll | Key | |||||
metalsmith | Key | |||||
travis | Key | |||||
gitlab-ci | -1 github | Key | ||||
linkchecker | Change | |||||
transifex | Key | |||||
gh-pages | +1 github | Key |
| Components \ Stages | Store | Edit | Share | Check | Translate | Publish |
|———————|——-|——|——-|——-|———–|———|