archieml-pipe is a library to help easily export data structured in ArchieML in Google Docs to local JSON. You can then use that data as context to render HTML templates.
We use this library in order to separate the function of writing and editing text from producing interactive content for the web in the POLITICO newsroom.
Read all about how to use ArchieML, then see how you can use this library to easily authenticate and export structured data from Google Docs.
Use archieml-pipe in your build system:
const gulp = ;const archiePipe = default;const config =googleDocId: '<google doc id>' // requiredgoogleClientId: '<google client id>' // requiredgoogleClientSecret: '<google client secret>' // requiredredirectPort: '6006' // defaults to 6006exportPath: 'path/to/save/data.json' // defaults to ./data.jsontokenPath: 'path/to/save/token.json' // defaults to ./archie-token.json;gulp;
This example uses Gulp, but of course you can use whatever you like. Just call the function, passing it a config object with the required properties.
Simply open you doc in the browser and copy the ID from the URL:
Don't forget to change your share settings to "Anyone with the link can view."
Go to the Google Developers Console and create a new project.
Create credentials for an OAuth client ID.
Select "Web Application" for the Application Type, and give your client a name.
http://localhost:6006to Authorized Redirect URIs
Click create and copy both the client ID and client secret.
Go to the Library tab in the left rail and search for the Drive API
Click it and enable the API in the next screen.
Use the client secret key you copied out of the previous step.
On your first run, archieml-pipe will open a browser that will guide you through the Google permission dialogue to access you document, after which you will be redirected with an auth code. Copy and paste it into the prompt and archieml-pipe will save the token locally to a JSON file at
archieml-pipe is cobbled together from several other great ArchieML libs, namely:
Make changes in
src/ and then run
$ gulp to transpile ES6 code.