Git Product home page Git Product logo

geekppt's Introduction

Geekppt

A powerful slide making tool -- execute code in textbox

This is a MSc Computing group project in Imperial College London -- "A literate programming environment for PowerPoint".

Prominent literate programming environments nowadays are Jupyter notebooks, Mathematica, emacs' org-mode, etc. While all of them can produce slides, none of them supports the generation of PowerPoint presentations.

In this project, we aim to build a ppt addin called Code Evaluation that helps quickly insert code output, such as print and pictures in ppt, and enable command line and table input. This addin also supports shortcut conversion from multiple types to pptx while preserving all fhe features above.

Installation

TBI

User Guide

Prerequisites

need to install functionality
g++ C++
JDK Java
Python Python
Pandoc conversion to pptx file

PowerPoint 2016 or later.

Create codebox, click to execute

Click on a language button to create a codebox. For example, to create a Python codebox, simply click on the Python button, type in some code (such as print("Hello")). To execute the code, click the evaluate button, "Hello" will be shown in a newly inserted textbox.

Currently the addin supports C++, Java and Python. It is worth noting that using C++ and Java requires creating main function and helper functions with different buttons. Before executing main function with multiple helper functions, make sure they are the same language, then choose them all and click evaluate to get results.

add input to you code

Adding inputs can be easy using the General Inputs button. After creating a input box, choose it with codeboxes that requires input, click evaluate to get results.

graphical output

Graphical output can be triggered using plt.show() in Python. A plt.show() will result in a figure inserted in current slide. You can use multiple plt.show() to insert many images. The addin does not support plt.show() in loops.

Copy the following Python code in a codebox and try evaluate it to check the effect.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)  # Sample data.
fig, ax = plt.subplots(figsize=(6, 2.7))

ax.plot(x, x, label='linear')
ax.plot(x, x**2, label='quadratic')
ax.plot(x, x**5, label='pow5') 
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()
plt.show()

parameter table and plot template

Use Parameter Table button to generate a parameter table where you can add any row or column and write data into cells. The first row of the table defaults to the table name, which means that it will not be entered as an argument. It would help if you replaced the table name with the appropriate place in the code block to ensure it doesn't go wrong.

You can then select a parameter table and click the Plot Template button to generate a block of Python code. Using it, you can draw a simple scatter plot (based on the data in the table).

conversion to ppt with codebox enabled

TBI by WZF

Technical Documentation

TBI by LWX, ZJW

License

Geekppt is released under the MIT License. https://opensource.org/licenses/MIT

geekppt's People

Contributors

wzf6667 avatar jia-wei-zhou avatar luowx0905 avatar ender8848 avatar kevindurant111 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.