# Flask-Silk

Flask-Silk is small Flask extension. It adds silk icons to your Flask application or blueprint, or extension!

Silk is very awesome. It will be good for your Flask extensions. But if someone use many Flask extensions which contains silk icons, they will lose their storage space too much. They can solve the problem with Flask-Silk.

If you want to preview silk icons, visit Silk Icon Dictionary.

Note

Silk is licensed under Creative Commons Attribution 2.5 License or 3.0 License. Before using the icons, read the license.

## Installation

Install via PyPI:

    $ easy_install Flask-Silk

Or check out development version:

    $ git clone git://github.com/sublee/flask-silk.git

## How to Use

If you want to contain silk icons to your application, follow the below example:

    from flask import Flask
    from flask.ext.silk import Silk
    app = Flask(__name__)
    silk = Silk(app)

In your application, you can get an icon’s url by:

    url_for('silkicon', filename='bug.png')

It also works with Flask blueprint:

    from flask import Blueprint
    from flask.ext.silk import Silk
    blu = Blueprint(__name__, __name__)
    silk = Silk(blu)

## API

class `flask_silk.``Silk`(base, silk_path='/icons')

  This small extension adds `silkicon()` to your Flask application:

      from flask import Flask
      from flask.ext.silk import Silk
      app = Flask(__name__)
      silk = Silk(app)

  Or it works with your Flask blueprint:

      from flask import Blueprint
      from flask.ext.silk import Silk
      blu = Blueprint(__name__, __name__)
      silk = Silk(blu)

  Now the application or blueprint’s `/icons/<filaname>` is bound to `silkicon()` for serves a prepared silk icon.

  Also you can work with your own icon directory:

      import os.path
      my_icons = os.path.join(silk.base.static_path, 'icons')
      my_icons2 = os.path.join(silk.base.static_path, 'other-icons')
      silk.register_icon_directory(my_icons)
      silk.register_icon_directory(my_icons2)

  Silk finds the icon in the registered directories first. If the icon does not exist in any directories, Silk finds the prepared silk icon.

  Parameters:

  - base – the flask application or blueprint.
  - silk_path – the path to serve silk icons. Defaults to `/icons`.

`flask_silk.``send_silkicon`(filename, directories=[])

  Sends an icon. The icon is in a shared directory or specified directories. Here’s a simple examples of how to send an icon:

      from flask.ext.silk import send_silkicon
      from myapplication import app

      my_icons = os.path.join(app.static_path, 'icons')
      my_icons2 = os.path.join(app.static_path, 'other-icons')

      @app.route('/static/icons/<filename>')
      def icon(filename):
          return send_silkicon(filename, directories=[my_icons, my_icons2])

  Parameters:

  - filename – the filename for icon.
  - directories – specified icon directories.

## Indices and tables

- Silk Icon Dictionary
- Index
- Module Index
- Search Page