draaft v0.1.0-alpha8
Draaft
Draaft is a command line tool that simply allows you to retrieve content produced on Pilot for statics sites generators. Pilot is a content production platform for marketing or communication teams.
🚨 ⚠ Alpha version : This cli is absolutely not production ready and API is subject to changes ⚠ 🚨
Installing
Using npm:
$ npm install -g draaftUsing yarn:
$ yarn global add draaftUsage
$ npm install -g draaft
$ draaft COMMAND
running command...
$ draaft (-v|--version|version)
draaft/0.1.0-alpha8 darwin-x64 node-v12.18.3
$ draaft --help [COMMAND]
USAGE
  $ draaft COMMAND
...Configuration
A configuration file with sensible defaults will be created for you in .draaft/config.json when you execute a first command.
Only the API token will be prompted.
{
    // Base url of the API ( scheme + host + base path ).
    // You can change this value to force a specific version of the API.
    "apiBaseUrl": "https://app.pilot.pm/integrations/beta/",
    // The secret API token to authenticate yourself in the API
    "apiToken": "secretToken",
    // Should we make page bundles ?
    // If `true`, draaft will create a bundle for each item, containing the content and resources (images).
    // If `false`, all the resources will be created in the `/static/` directory
    "bundlePages": true,
    // The name of the field in `Item.content` that will be used for the page content.
    "contentFieldName": "body",
    // How should we serialize the frontmatter ?
    // Allowed values : "yaml" | "toml"
    "frontmatterFormat": "yaml"
    // Should we handle item translations, and if yes with which organization ?
    // Allowed values : "none" | "directory" | "filename"
    "i18nMode": "none",
    // When i18n is activated, and an item has no language defined, fallback on `i18nDefaultLanguage`
    "i18nDefaultLanguage": "en",
    // Should we create a top-directory with the channel name ?
    // If `true`, draaft will create all files into `/[destDir]/[channel.name]/`
    // If `false`, draaft will create all files into `/[destDir]/`
    "useChannelName": false,
    //Target Static Site Generator.
    // For now, only "hugo" is supported
    "ssg": "hugo"
}Commands
draaft help [COMMAND]
display help for draaft
USAGE
  $ draaft help [COMMAND]
ARGUMENTS
  COMMAND  command to show help for
OPTIONS
  --all  see all commands in CLISee code: @oclif/plugin-help
draaft layout
Create basic layout to display content
USAGE
  $ draaft layout
OPTIONS
  -f, --overwrite
  -h, --help       show CLI help
  -s, --ssg=ssg    Static site generatorSee code: src/commands/layout.ts
draaft pull
Pull content and create files on disk
USAGE
  $ draaft pull
OPTIONS
  -h, --help                           show CLI help
  -o, --overwrite                      Empty destination directory before writing
  --channel=channel                    [int] [multiple] Channel to pull content from
  --dest=dest                          Destination directory where to write files
  --publicationState=publicationState  [int] [multiple] workflow state for a published content
  --ssg=hugo|gatsby                    [default: hugo] Your static site generator.See code: src/commands/pull.ts
draaft states
List all workflow states
USAGE
  $ draaft states
OPTIONS
  -b, --backup  If file exists create backup
  -h, --help    show CLI help
  -s, --save    Save states as file for customisationSee code: src/commands/states.ts
draaft types [ID]
List all item types
USAGE
  $ draaft types [ID]
ARGUMENTS
  ID  ID of type
OPTIONS
  -b, --backup  If file exists create backup
  -h, --help    show CLI help
  -s, --save    Save content shema as file for customisation
  -w, --schema  Display content schema for each typeSee code: src/commands/types.ts
Roadmap
Alpha
- Get content from channel
 - hugo.io : Create _index.file for sections
 - generate basic Hugo layout
 - Data mapper : let user map Draaft response keys to Frontmatter (use Hugo archetype maybe)
 - Generate page bundles
 - Basic documentation
 
Beta
- Generate data files for complex layout (eg. home page)
 - Option : Flat layout (with frontmatter menu infos + hierarchy)
 - Option : Merge frontmatter
 - hugo.io : i18n support
 - Select which pilot.pm workflow state map with the "draft" frontmatter key in Hugo
 
V1.0.0
- Support Gatsby
 - Generate complete layout for Hugo and Gatsby with theme selector
 - Tests
 
Deploying to npm
Manually bump version number in package.json, then
[optionnal, only if a command has changed] yarn readme
yarn prepack
git add .
git commit
yarn publish5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago