Learning mojo/vanilla

I'm trying to familiarize myself with the mojo/vanilla libraries and I was hoping someone here could give me a better process than picking apart Robofont/Glyph extensions.

I don't want to pollute the forum and I'm fairly new to python and bash, so please forgive my naivety.

So far I'm stuck at extracting/installing the vanilla demos/documentation

# Via bash in terminal on a Mac I enter permissions
sudo -s

# followed by setting the current directory and installing setup file
cd "directory_where_setup_is_based"
python setup.py install

running install
running bdist_egg
running egg_info
creating UNKNOWN.egg-info
writing UNKNOWN.egg-info/PKG-INFO
writing top-level names to UNKNOWN.egg-info/top_level.txt
writing dependency_links to UNKNOWN.egg-info/dependency_links.txt
writing manifest file 'UNKNOWN.egg-info/SOURCES.txt'
warning: manifest_maker: standard file 'setup.py' not found

reading manifest file 'UNKNOWN.egg-info/SOURCES.txt'
writing manifest file 'UNKNOWN.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.9-intel/egg
running install_lib
warning: install_lib: 'build/lib' does not exist -- no Python modules to install

installing package data to build/bdist.macosx-10.9-intel/egg
running install_data
creating build
creating build/bdist.macosx-10.9-intel
creating build/bdist.macosx-10.9-intel/egg
warning: install_data: setup script did not provide a directory for 'Resources/English.lproj' -- installing right in 'build/bdist.macosx-10.9-intel/egg'

error: can't copy 'Resources/English.lproj': doesn't exist or not a regular file
Is this even the conventional method of learning Vanilla? Any advice would be very helpful.


  • Options
    Do you have RoboFont? If you're just getting started with Python it's probably going to be easier to use the scripting interface there—since vanilla, etc. are already installed—rather than installing the package yourself.

    Glyphs might have the same advantage but can't comment on that software.
  • Options
    What version of python are you running? Where are you getting the source code for vanilla from?

    I just checked out the most recent version from https://github.com/typesupply/vanilla and it installs fine for me on 2.7.6.

    If you're just trying to get at the generated documentation, you can view it directly in the source as well.
  • Options
    Quinn KeaveneyQuinn Keaveney Posts: 2
    edited June 2014
    Yep, I have Robofont,
    Sorry, my example was pretty vague.
    cd directory_where_setup_is_based
    python setup.py install
    I don't mean to install vanilla, that works fine, I'm running 2.7.5.

    I meant to put
    cd .../Documentation/source
    python conf.py install
    cd .../Demos/SimpleApp
    python setup.py install
    Now, I'm worried that "Demos/SimpleApp/setup.py" isn't meant to be run and that it is just a vanilla example file.

    The bigger picture is that I'm trying to write extensions and I don't have an easy environment to test errors in so I just receive "Not a valid extension" or get issues I can't easily troubleshoot so I wan't to better understand vanilla and mojo. Can I run extensions directly in Robofont's script interface? If so I didn't know that... I'm going to try that right now.
  • Options
    Jack JenningsJack Jennings Posts: 151
    edited June 2014
    To build the documentation as HTML you'll need to do this:
    pip install sphinx
    cd Documentation
    make html
    open build/html/index.html
    That installs the library that compiles the documentation can then runs the Makefile in the Documentation folder.
  • Options
    Jens KutilekJens Kutilek Posts: 342

    a RoboFont extension is just a packaged script file. There’s nothing that you can do in an extension but not a «plain» script. It’s much easier to start with a simple script, because with an extension you have to reinstall it each time you change something*.

    You don’t need to install vanilla or any of the demo scripts that come with it. The demo scripts are for building standalone applications with py2app. Vanilla is already available to scripts inside RoboFont with a simple import vanilla.

    I think it’s a good idea to build the vanilla documentation, as Jack suggested, because it contains mini-example scripts of the different ui elements.

    And then I’d recommend to check out some existing RoboFont scripts on GitHub and find out how they use vanilla and the other RoboFont stuff (mojo), for example Frederik’s own example scripts like multiFontPreview.py.

    * There are ways around that; if you put a file system link from your RoboFont script folder to the main script file of your extension bundle, you can run it like a script, but that makes it more complicated for a beginner, I think.

    BTW: My first post here, hello everybody :)
  • Options
    There’s also a documentation for Vanilla at http://ts-vanilla.readthedocs.org/en/latest/
Sign In or Register to comment.