This repository contains scripts and configurations to streamline the creation and management of project slides from Linear initiatives and communicate updates via email. It's designed to integrate seamlessly with Google Slides.
This project is designed to be set up as an add-on for a Google Slides document.
Currently, there are 4 main scripts:
Script Name | Description |
---|---|
Email Project Leads with Slides | Emails project leads with reminders for upcoming project slides. |
Create Linear Slides | Creates slides for each project in the Linear API. |
Update Project Slide | Updates the project slide with the latest status and health information. |
Show Configuration | Displays the configuration dialog for project settings. |
To configure project settings, use the "Show Configuration" script. This opens a dialog where you can set the following options (defined in configSchema.json):
Option | Description |
---|---|
Include Assignee Pictures | Include pictures of the assignees for each project. |
Include Project Slides | Include or skip slides for each project. |
Include Agenda Slide | Include a slide for the agenda. |
This is a clasp
project, which means it's a Google Apps Script project that uses the clasp tool to bundle and deploy the project as a single .gs
file.
- Create a Google Apps Script Project: Click here to create a new project.
- Add Project ID to
.clasp.json
: Include your project ID in the.clasp.json
file. - Enable Google Apps Script API: Click here to enable the API.
- Login to Clasp: Run
clasp login
to authenticate (.clasprc.json
should be stored).
-
Build the Project: Run the following command to build the project:
npm run build
This creates a
dist
directory withindex.js
andappsscript.json
. -
Deploy the Project: Push the built files to Google Apps Script:
npm run push
This overwrites the existing project with a new
index.gs
file. -
Install the Project:
- Go to the Google Apps Script editor.
- Click the “New Deployment” button.
- Select “Deploy as add-on” and choose between deploying to your GCP or as a test deployment.
- The project should appear in the Add-Ons menu of a Google Slides document.
These are the main scripts for the project and should be the only functions called from the Google Apps Script editor.
File | Description |
---|---|
email/emailProjectsToUserEmails.ts | Emails users with slide reminders. |
slides/createSlidesFromLinearInitiatives.ts | Creates slides from Linear initiatives. |
File | Description |
---|---|
emoji.spec.ts | Test specifications for emoji-related functionalities. |
emoji.ts | Fetches emojis using shortcodes (e.g., 👩). |
emojiMap.json | Contains a mapping of Slack emojis to their Unicode counterparts. |
formatting.ts | Handles text styling and formatting. |
googleAppsScript.ts | Leverages Google Apps Script properties for caching. |
googleSlides.ts | Provides functions for inserting text boxes and images on slides. |
linear.ts | Queries the Linear GraphQL API and provides helper functions. |
markdown.ts | Converts markdown into Slides.TextBox . |
File | Description |
---|---|
secretService.ts | Source code for the Secret Service library. |
File | Description |
---|---|
appsscript.json | Configuration file for the Google Apps Script project. |
constants.ts | Defines useful constants used throughout the project. |
configSchema.json | Schema for config to appear in script and dialog. |
config.html | HTML file for the configuration dialog. |
index.ts | Entry point for the Google Apps Script project. |