Skip to main content

Tool to handle multiple beamer decks.

Project description

deckz

CI Status CD Status Test Coverage PyPI Project

Tool to handle a large number of beamer decks, used by several persons, with shared slides amongst the decks. It is currently not meant to be usable directly by people finding about the package on GitHub. Please open an issue if you want more details or want to discuss this solution.

Installation

With pip:

pip install deckz

Shell completion installation

See the --show-completion or --install-completion options of the deckz CLI.

Directory Structure

deckz works with big assumptions on the directory structure of your presentation repository. Among those assumptions:

  • your directory should be a git repository
  • it should contain a shared folder for everything that will be shared by all decks during compilation (images, code snippets, etc)
  • it should contain jinja2 LaTeX templates in the templates/jinja2 directory, with a specific name (listed below)
  • it should contain YAML templates in the templates/yml directory, with specific names (listed below)
  • your deck folders should be contained in an organization/company folder. This is meant to avoid repeating the company details all over the place
  • several configuration should be present to customize the decks efficiently (more on that later)
root (git repository)
├── global-config.yml
├── templates
│   ├── jinja2
│   │   ├── main.tex
│   └── yml
│       ├── company-config.yml
│       ├── deck-config.yml
│       ├── global-config.yml
│       └── user-config.yml
├── shared
│   ├── img
│   │   ├── image1.png
│   │   └── image2.jpg
│   ├── code
│   │   ├── snippet1.py
│   │   └── snippet2.js
│   └── latex
│       ├── module1.tex
│       └── module2.tex
├── company1
│   ├── company-config.yml
│   └── deck1
│       ├── session-config.yml
│       ├── deck-config.yml
│       └── targets.yml
└── company2
    ├── company-config.yml
    └── deck2
        ├── target1
        │   └── custom-module.tex
        ├── deck-config.yml
        └── targets.yml

Configuration

deckz uses small configuration files in several places to avoid repetition.

Configuration merging

The configuration are merged in this order (a value from a configuration on the bottom overrides a value from a configuration on the top):

  • global-config.yml
  • user-config.yml
  • company-config.yml
  • deck-config.yml
  • session-config.yml

Using the configuration values in LaTeX files

The values obtained from the merged configurations can be used in LaTeX after a conversion from snake case to camel case: if the configuration contains the key trainer_email, it will be defined as the \TrainerEmail command in LaTeX.

Details about specific configurations

Global configuration

The global configuration contains the default values that don't fit at a more specific level.

Example:

presentation_size: 10pt

User configuration

The user configuration contains the values that change when the speaker changes. It is located in the XDG compliant config location. It is $HOME/.config/deckz/user-config.yml on GNU/Linux for example.

Example:

trainer_activity: Data Scientist
trainer_email: john@doe.me
trainer_name: John Doe
trainer_specialization: NLP, NLU
trainer_training: MSc at UCL

Company configuration

The company configuration contains everything required to brand the presentations according to the represented company.

Example:

company_logo: logo_company
company_logo_height: 1cm
company_name: Company
company_website: https://www.company.com

Deck configuration

The deck configuration contains the title and acronym of the talk.

Example:

deck_acronym: COV19
deck_title: Machine Learning and COVID-19

Session configuration

The session configuration is optional and contains everything that will change from one session of a specific talk to another one.

Example:

session_end: 30/04/2020
session_start: 27/04/2020

Usage

See the --help flag of the deckz command line tool.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deckz-20.3.1.tar.gz (29.8 kB view details)

Uploaded Source

Built Distribution

deckz-20.3.1-py3-none-any.whl (39.1 kB view details)

Uploaded Python 3

File details

Details for the file deckz-20.3.1.tar.gz.

File metadata

  • Download URL: deckz-20.3.1.tar.gz
  • Upload date:
  • Size: 29.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.8.18 Linux/6.5.0-1025-azure

File hashes

Hashes for deckz-20.3.1.tar.gz
Algorithm Hash digest
SHA256 b3babfa3231706598416fecdf2d634de512aa0b065ad23fd2b728b6b57965392
MD5 0d09761ac606833b7ca79eac02cc28d3
BLAKE2b-256 2257ec695efce26c731dcc9e669fe60b50644677ed19661eedf6f401b9983c1f

See more details on using hashes here.

File details

Details for the file deckz-20.3.1-py3-none-any.whl.

File metadata

  • Download URL: deckz-20.3.1-py3-none-any.whl
  • Upload date:
  • Size: 39.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.8.18 Linux/6.5.0-1025-azure

File hashes

Hashes for deckz-20.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eeb9c0cadcdecc6da23b5921bd9dd78ac97fec544d408dfb999c2ce57c8597c4
MD5 f9a478a0cafce3cfb1fd52aff1e7c42e
BLAKE2b-256 843c128b269573d0b631c2dc2df5328302129da5c36f37a1ab7e7635d75d5574

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page