@politico/artisan

    2.0.0 • Public • Published

    Artisan

    A suite of tools for creating & managing Adobe Illustrator based embeds. Heavily inspired by and built upon ai2html.

    Contents

    Why This?

    When The New York Times created ai2html in 2015, it revolutionized the way online graphics teams published their work on the web. For the first time, a graphic artist could export an Adobe Illustrator file to the internet as web-friendly HTML instead of as a flat image, preserving text for SEO and maintaining responsiveness across all devices.

    That said, the world of online web development has changed drastically for news developers in the last five years. POLITICO, like many other newsrooms, now uses React and React components as the building blocks of all their interactive pages. Some newsrooms like The Washington Post are even moving to using React for every page on their website. Because of these changes, a large gap has grown between coders (who work with component-based JavaScript code) and non-coding graphic designers (who can only provide static HTML output by ai2html).

    POLITICO created Artisan to close that gap, taking the groundbreaking foundation laid by ai2html and updating it for the modern world with a few extra quality-of-life features. Where ai2html produces static HTML, Artisan exports Adobe Illustrator files as React components. By allowing any Adobe Illustrator file to be saved as a component, an illustration can be easily plugged into an existing React project or reused across multiple projects.

    While Artisan's practical uses are clear, it was also created as an easy and useful first step for our graphic designers to enter the developer world by introducing them to concepts like command lines, GitHub, and web components.

    Whether you're a news developer, a graphic designer or an editor: Artisan's suite of tools makes collaboration easier than ever without having to make sacrifices to your workflow.

    How's It Work?

    Unlike its predecessor, Artisan is more than an Adobe Script, featuring a fully fledged command line tool that can be used to create new interactive projects. What typically could be a messy handoff between a designer and a developer is now simple — the designer creates a graphic, spins up an interactive project to house it, and sends it to a developer for finishing touches.

    Artisan's command line tool also handles file and project management. With simple commands like "art new", "art activate", "art archive", "art open", and "art pub," users can move a project from a basic template to a published page without ever having to find a single file on their computer. Because all the file-management is handled by Artisan, users can also plug into their company's existing GitHub architecture. This means with simple commands like "art save" and "art download", entire projects (Illustrator files and all) can be viewed on GitHub and shared between designers, developers, and editors.

    Artisan In Action

    As An Embed

    This historical chart on the unemployment rate was easily plugged into [a story](Unemployment soars to 14.7 percent in April amid coronavirus fallout) on the unemployment rate and a deeper analysis on the future of the job market. The graphic designer built the chart completely in Adobe Illustrator, and then ran a single command to grab an embed code to use in any article page. You can see the embed's repo here.

    unemployment-graph A line graph is created in Adobe Illustrator at three breakpoints (left). Artisan publishes a preview page with an embed code (middle). That embed code is easily attached to any story (right).

    As Part of a Story

    A designer worked on a single scatterplot showing the results of a survey in Adobe Illustrator. Then, she used Artisan to save her work as a component, which was slotted in with other interactive components to make a custom page. The designer didn't have to think about the page, and the developer imported the scatterplot the same way they would import any other piece of code. You can see the story's repo here.

    risk-scatterplot A scatterplot is created in Adobe Illustrator at various breakpoints (first from left). Artisan exports the file as JSX (second) which can be easily imported and used like any other component (third) and integrates seamlessly (fourth).

    CLI Usage

    Usage:
      art <command> [options]
    
    Commands:
      art activate [project]         Sets a project to be active
      art archive [project]          Archives a project
      art code                       Opens the active project in Atom
      art conf                       Open the artisan conf file
      art deactivate                 Sets no project to be active
      art delete [type] [selection]  Delete something
      art dir                        Open the artisan projects folder
      art download [repo]            Downloads (or syncs) a project from GitHub
      art github                     Opens the active project's GitHub page.
      art install [illustrator]      Installs ai2jsx on your computer
      art new [type]                 Creates something new
      art open [illustration]        Open an illustration
      art pub [environment]          Publish the embed live
      art save [message]             Saves latest changes to GitHub
      art start                      Start a development server
      art unarchive [project]        Unarchives a project
      art update [project]           Updates Artisan to the latest version
      art which                      Find out what the active project is
    
    Options:
      --version      Show version number                                   [boolean]
      --verbose, -v  Log info & errors to the console      [boolean] [default: true]
      --skip-health  Skip the health checks               [boolean] [default: false]
      --howto        Show help                                             [boolean]
    

    Installation

    Artistan was custom-made for POLITICO and as such is very opinionated about project organization and publishing strategy. If you're not a member of POLITICO's team, these instructions may not make the most sense.

    Install @politico/interactive-bin

    $ npm install -g @politico/interactive-bin
    

    Setup @politico/interactive-bin

    $ pib setup
    

    You'll need the following things from your AWS, Google Service Account, and GitHub setup:

    From AWS

    • AWS_ACCESS_KEY_ID: AWS Credential
    • AWS_SECRET_ACCESS_KEY: AWS Credential
    • DEFAULT AWS_BUCKET_NAME: Name of AWS S3 Bucket
    • DEFAULT AWS_BASE_URL: Base URL for that Bucket (e.g. "http://bucket-name.s3.amazonaws.com/")
    • STAGING AWS_BUCKET_NAME: Name of AWS S3 Bucket
    • STAGING AWS_BASE_URL: Base URL for that Bucket
    • PRODUCTION AWS_BUCKET_NAME: Name of AWS S3 Bucket
    • PRODUCTION AWS_BASE_URL: Base URL for that Bucket

    From GitHub

    • GITHUB_TOKEN: Personal access token from GitHub

    Not Necessary For Artisan

    • GAPI_PRIVATE_KEY
    • POLITICOAPPS_TOKEN
    • GAPI_CLIENT_EMAIL

    Install the CLI.

    $ npm install -g @politico/artisan
    

    Find your Adobe Illustrator file. Go to your Adobe Illustrator folder in Applications. You should see an app called Adobe Illustrator inside of that.

    Install the ai2jsx script by running the art install command and dragging the Adobe Illustrator app into the terminal. You'll probably need to sudo the command to have write access to that folder. See GIF below. (Alternatively if you don't want to use sudo you can change the permissions on your Adobe Illustrator Scripts folder to allow your user read/write access.)

    $ sudo art install PATH_TO_YOUR_ILLUSTATOR_APP
    

    How To

    If that doesn't work, you can always copy the contents of the install directory of this repo into your Scripts folder directly.

    Keywords

    none

    Install

    npm i @politico/artisan

    DownloadsWeekly Downloads

    72

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    3.37 MB

    Total Files

    132

    Last publish

    Collaborators

    • mshushan-politico
    • kherbert
    • pfriedr
    • arm5077
    • wickidd
    • stilessl
    • guirreri
    • mazet
    • brizandrew
    • bzjin