###############################################################################
# Copyright (c) {%year} {%copyright}
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
###############################################################################

bin.includes = plugin.xml,\
               META-INF/,\
               about.html,\
               plugin.properties,\
               book.css,\
               doc/
jars.extra.classpath = platform:/plugin/org.eclipse.mylyn.wikitext.core,\
                       platform:/plugin/org.eclipse.mylyn.wikitext.core.ant,\
                       platform:/plugin/org.eclipse.mylyn.wikitext.mediawiki.core
src.includes = about.html

