Giter Site home page Giter Site logo

negative's Introduction

Negative - slideware software Copyright (c) 2008, Bart Trojanowski [email protected]

About

This program generates a presentation from an inkscape svg file containing specially named layers (see "Layer naming" below). The output can be either a collection of png files, a collection of pdf files, or a single pdf that contains all the slides.

License

The code is licensed as GPL v2 or, at your option, any later version. Please see [http://www.gnu.org/licenses/gpl-2.0.txt].

History

The initial prototype and idea for negative came from a blog post by Rusty Russell: [http://ozlabs.org/~rusty/index.cgi/2006]

Source code

The project is tracked in git, you can obtain it by cloning it:

    git clone git://github.com/bartman/negative.git

or

    git clone git://git.jukie.net/negative.git/

Dependencies

To build you will need at least librsvg, libcairo, libpcre and libxml2.

Try something like this on your Debian-based system:

    apt-get install librsvg2-dev libcairo2-dev libpcre3-dev libxml2-dev

Building

After obtaining the sources just run make in the project directory.

    make

Optionally you can install with:

    make install

Using

Edit your slideshow in inkscape and save it as an 'Inkscape SVG' which will preserve some of the information that negative works with. Then run:

    negative yourfile.svg

By default negative generates a yourfile.pdf from the input file.

Demo

Included in the project is a demo.svg which shows some of the features. In a clean clone you could run:

    make
    negative -t pdf demo.svg
    xpdf slides.pdf

or to generate png files:

    negative -t pngs demo.svg
    gqview *.png

Layer naming

Layer names are composed of mostly alpha numeric strings and spaces. Additionally a few characters that depict special handling of a given layer.

Layers generate slides from the top layer, being the first page in the output, to the bottom layer, being the last page in the output. Unless a slide name begins with a hash symbol (#) each layer will generate a slide page in the output.

Special meaning for non alpha-numeric characters at start of layer name:

  • # this layer does not generate a slide (it's hidden)
  • _ this layer will be rendered below any layer that generates a slide
  • ^ this layer will be rendered above any layer that generates a slide
  • % this layer will ignore sticky flags _ and ^

The # character can be combined with either _ or ^ to give the presentation a common theme across all slides. For example, adding #_border could be used to place a rectangular border around the slide which would be placed under all other slides. Similarly, a #^sun layer could draw a translucent sun that is rendered over the right corner of other slides. However, the %title layer would not include elements of the border or sun slides and would be rendered on its own.

Special meaning for non alpha-numeric characters found in the middle of the layer name:

  • _ this layer will be rendered below anything that matches the substring on the left of this character in the layer name.
  • ^ this layer will be rendered above anything that matches the substring on the right of this character in the layer name.

vim: set ts=8 et sw=8 tw=72 ft=mkd

negative's People

Contributors

agarciadom avatar bartman avatar

Stargazers

 avatar  avatar

Watchers

 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.