[LEGACY] Importing a .zip Directory

You are able to import content to a single Collection using a zip file using Guru's webapp. Navigate to the Users & Collections page using the profile menu, and then click on the Collections tab. Click the settings icon of the Collection that you would like to add content to, then choose Import Content. To import a .zip file, click the option that says Other and then follow the below instructions to create your .zip file.

The full structure of the .zip file represents all the content in a single Collection. Every card, board, board group, resource, etc. in this directory structure will be added to the same collection. This guide will give an overview of the required directory structure, and sample contents to build out your Collection's content.

Directory Structure

mycollection.zip:

/
    cards/
        card1.yaml
        card1.md
        card2.yaml
        card2.html
    boards/
        board1.yaml
    board-groups/
        board-group1.yaml
        board-group2.yaml
    resources/
        Image1.png
        mycoolsalesdeck.pdf
    collection.yaml

Root Directory

The root directory contains all of the content for the Collection.

A collection.yaml file in the root directory is used to summarize the tag/tag category information in the import. A sample collection.yaml file is below.

Tags:
    - Tag1
    - Category:Tag2

Cards

Individual cards are saved in the cards directory with a unique file name. For each card, there is a metadata file and a content file which should have the same file name part with different file extensions. The metadata file is stored in .yaml format and contains the card’s title and any tags that should be on the card. The content file can either be markdown (using the .md file extension) or html (.html file extension). For the tags in the metadata file, both categorized and uncategorized tags are supported as described in the collection.yaml section above. It is important that any and all tags in the individual card files be listed in the collection.yaml file.

A sample card metadata and content is below:

card1.yaml:

Title: Card Title
Tags: 
    - Category:Tag1
    - Tag2
    - Tag3
ExternalId: 123
ExternalUrl: https://mycoolsite.com/123

card1.md:

# Markdown header

And whatever content you want
This is read
In
Raw
So all
Newlines
Are preserved
> ok
       Got it?

Boards

Boards can be represented with structured YAML listing cards that are contained in it. The order of the cards matters. Cards are referenced by their unique file identifier without the extension and Sections can be created at the top level that include a list of cards. The board's Title is required and the Description is optional.

Title: Board Title
Description: |
  Multi line
  Description
  here
Items:
- ID: "card1"
  Type: "card"
- Type: "section"
  Title: "My Section"
  Items:
  - ID: "card2"
    Type: "card"

Board Group

A Board Group can be represented using a structured YAML file and reference board files that live under the boards/ directory within the current Board Group’s directory. The board group Title is required and the Description is optional.

Title: Board Group Title
Description: |
  Multiple lines
  Are allowed
Boards:
- board1
- board2
- board3

Resources

Images and resources can be saved to the resource/ directory and they will be uploaded to Guru. Images and resources can be linked within card content as described below.

Referencing Other Cards, Boards, Board Groups, and Resources

Board Groups, Boards, Resources and other Cards can be referenced in card markdown/html content by utilizing the regular link syntax, but using the appropriate directory name and card/board/board group/resource ID as the actual link. This allows the bulk importer to replace the unique cards/board/groups/resources in the content with the actual IDs during the import process.

To link to card1, reference cards/card1. To link to board1, reference boards/board1. To link to boardGroup1, reference board-groups/boardGroup1. To link to resources, use the resources/ folder and the full name of the resource (ie, image1.png, mycoolsalesdeck.pdf).

# Markdown

This is a [card link](cards/card1) and this is a [board link](boards/board1)

This is an image:

![Alt Text](resources/image1.png)

This is a PDF link
[PDF link](resources/mycoolsalesdeck.pdf)