@@ -15,6 +15,7 @@ require File.expand_path('../gollum/blob_entry', __FILE__)
|
|||||||
require File.expand_path('../gollum/wiki', __FILE__)
|
require File.expand_path('../gollum/wiki', __FILE__)
|
||||||
require File.expand_path('../gollum/page', __FILE__)
|
require File.expand_path('../gollum/page', __FILE__)
|
||||||
require File.expand_path('../gollum/file', __FILE__)
|
require File.expand_path('../gollum/file', __FILE__)
|
||||||
|
require File.expand_path('../gollum/file_view', __FILE__)
|
||||||
require File.expand_path('../gollum/markup', __FILE__)
|
require File.expand_path('../gollum/markup', __FILE__)
|
||||||
require File.expand_path('../gollum/sanitization', __FILE__)
|
require File.expand_path('../gollum/sanitization', __FILE__)
|
||||||
require File.expand_path('../gollum/tex', __FILE__)
|
require File.expand_path('../gollum/tex', __FILE__)
|
||||||
|
|||||||
@@ -0,0 +1,154 @@
|
|||||||
|
module Gollum
|
||||||
|
=begin
|
||||||
|
FileView requires that:
|
||||||
|
- All files in root dir are processed first
|
||||||
|
- Then all the folders are sorted and processed
|
||||||
|
=end
|
||||||
|
class FileView
|
||||||
|
def initialize pages
|
||||||
|
@pages = pages
|
||||||
|
end
|
||||||
|
|
||||||
|
def enclose_tree string
|
||||||
|
%Q(<ol class="tree">\n) + string + %Q(\n</ol>)
|
||||||
|
end
|
||||||
|
|
||||||
|
def new_page page
|
||||||
|
name = page.name
|
||||||
|
%Q( <li class="file"><a href="#{name}">#{name}</a></li>\n)
|
||||||
|
end
|
||||||
|
|
||||||
|
def new_folder page
|
||||||
|
new_sub_folder ::File.dirname(page.path), page.name
|
||||||
|
end
|
||||||
|
|
||||||
|
def new_sub_folder path, name
|
||||||
|
<<-HTML
|
||||||
|
<li>
|
||||||
|
<label>#{path}</label> <input type="checkbox" checked />
|
||||||
|
<ol>
|
||||||
|
<li class="file"><a href="#{name}">#{name}</a></li>
|
||||||
|
HTML
|
||||||
|
end
|
||||||
|
|
||||||
|
def end_folder
|
||||||
|
<<-HTML
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
HTML
|
||||||
|
end
|
||||||
|
|
||||||
|
def render_files
|
||||||
|
html = ''
|
||||||
|
count = @pages.size
|
||||||
|
folder_start = -1
|
||||||
|
|
||||||
|
# Process all pages until folders start
|
||||||
|
count.times do | index |
|
||||||
|
page = @pages[ index ]
|
||||||
|
path = page.path
|
||||||
|
|
||||||
|
unless path.include? '/'
|
||||||
|
# Page processed (not contained in a folder)
|
||||||
|
html += new_page page
|
||||||
|
else
|
||||||
|
# Folders start at the next index
|
||||||
|
folder_start = index
|
||||||
|
break # Pages finished, move on to folders
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# If there are no folders, then we're done.
|
||||||
|
return enclose_tree(html) if folder_start <= -1
|
||||||
|
|
||||||
|
# Handle special case of only one folder.
|
||||||
|
if (count - folder_start == 1)
|
||||||
|
path = @pages[ folder_start ]
|
||||||
|
name = page.name
|
||||||
|
html += <<-HTML
|
||||||
|
<li>
|
||||||
|
<label>#{::File.dirname(path)}</label> <input type="checkbox" checked />
|
||||||
|
<ol>
|
||||||
|
<li class="file"><a href="#{name}">#{name}</a></li>
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
HTML
|
||||||
|
|
||||||
|
return enclose_tree html
|
||||||
|
end
|
||||||
|
|
||||||
|
sorted_folders = []
|
||||||
|
(folder_start).upto count - 1 do | index |
|
||||||
|
sorted_folders += [[ @pages[ index ].path, index ]]
|
||||||
|
end
|
||||||
|
|
||||||
|
# http://stackoverflow.com/questions/3482814/sorting-list-of-string-paths-in-vb-net
|
||||||
|
sorted_folders.sort! do |first,second|
|
||||||
|
a = first[0]
|
||||||
|
b = second[0]
|
||||||
|
|
||||||
|
# use :: operator because gollum defines its own conflicting File class
|
||||||
|
dir_compare = ::File.dirname(a) <=> ::File.dirname(b)
|
||||||
|
|
||||||
|
# Sort based on directory name unless they're equal (0) in
|
||||||
|
# which case sort based on file name.
|
||||||
|
if dir_compare == 0
|
||||||
|
::File.basename(a) <=> ::File.basename(b)
|
||||||
|
else
|
||||||
|
dir_compare
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process first folder
|
||||||
|
page = @pages[ sorted_folders[ 0 ][1] ]
|
||||||
|
html += new_folder page
|
||||||
|
|
||||||
|
last_folder = ::File.dirname page.path # define last_folder
|
||||||
|
|
||||||
|
# keep track of folder depth, 0 = at root.
|
||||||
|
depth = 0
|
||||||
|
|
||||||
|
# process rest of folders
|
||||||
|
1.upto(sorted_folders.size - 1) do | index |
|
||||||
|
page = @pages[ sorted_folders[ index ][1] ]
|
||||||
|
path = page.path
|
||||||
|
folder = ::File.dirname path
|
||||||
|
|
||||||
|
if last_folder == folder
|
||||||
|
# same folder
|
||||||
|
html += new_page page
|
||||||
|
elsif folder.include?('/')
|
||||||
|
# check if we're going up or down a depth level
|
||||||
|
if last_folder.scan('/').size > folder.scan('/').size
|
||||||
|
# end tag for 1 subfolder & 1 parent folder
|
||||||
|
# so emit 2 end tags
|
||||||
|
2.times { html += end_folder; }
|
||||||
|
depth -= 1
|
||||||
|
else
|
||||||
|
depth += 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# subfolder
|
||||||
|
html += new_sub_folder ::File.dirname(page.path).split('/').last, page.name
|
||||||
|
else
|
||||||
|
# depth+1 because we need an additional end_folder
|
||||||
|
(depth+1).times { html += end_folder; }
|
||||||
|
depth = 0
|
||||||
|
# New root folder
|
||||||
|
html += new_folder page
|
||||||
|
end
|
||||||
|
|
||||||
|
last_folder = folder
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process last folder's ending tags.
|
||||||
|
(depth+1).times {
|
||||||
|
depth.times { html += end_folder; }
|
||||||
|
depth = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# return the completed html
|
||||||
|
enclose_tree html
|
||||||
|
end # end render_files
|
||||||
|
end # end FileView class
|
||||||
|
end # end Gollum module
|
||||||
@@ -200,6 +200,17 @@ module Precious
|
|||||||
mustache :pages
|
mustache :pages
|
||||||
end
|
end
|
||||||
|
|
||||||
|
get '/fileview' do
|
||||||
|
wiki = Gollum::Wiki.new(settings.gollum_path, settings.wiki_options)
|
||||||
|
@results = Gollum::FileView.new(wiki.pages).render_files
|
||||||
|
File.open('/tmp/log.txt', 'w') {|f|
|
||||||
|
f.puts "log!"
|
||||||
|
f.puts @results
|
||||||
|
}
|
||||||
|
@ref = wiki.ref
|
||||||
|
mustache :file_view
|
||||||
|
end
|
||||||
|
|
||||||
get '/*' do
|
get '/*' do
|
||||||
show_page_or_file(params[:splat].first)
|
show_page_or_file(params[:splat].first)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
/* Just some base styles not needed for example to function */
|
||||||
|
*, html { font-family: Verdana, Arial, Helvetica, sans-serif; }
|
||||||
|
|
||||||
|
|
||||||
|
#results a:hover {
|
||||||
|
background-color: #4c4c4c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#home_button {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#home_button .minibutton {
|
||||||
|
/* controls size of home btn */
|
||||||
|
font-size: 1em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#results {
|
||||||
|
position: absolute;
|
||||||
|
top: 60px;
|
||||||
|
left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
body, form, ul, li, p, h1, h2, h3, h4, h5
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
body { background-color: #606061; color: #ffffff; margin: 0; }
|
||||||
|
img { border: none; }
|
||||||
|
p
|
||||||
|
{
|
||||||
|
font-size: 1em;
|
||||||
|
margin: 0 0 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
html { font-size: 100%; /* IE hack */ }
|
||||||
|
body { font-size: 1em; /* Sets base font size to 16px */ }
|
||||||
|
table { font-size: 100%; /* IE hack */ }
|
||||||
|
input, select, textarea, th, td { font-size: 1em; }
|
||||||
|
|
||||||
|
/* CSS Tree menu styles */
|
||||||
|
ol.tree
|
||||||
|
{
|
||||||
|
padding: 0 0 0 30px;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
li
|
||||||
|
{
|
||||||
|
position: relative;
|
||||||
|
margin-left: -15px;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
li.file
|
||||||
|
{
|
||||||
|
margin-left: -1px !important;
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
|
li.file a
|
||||||
|
{
|
||||||
|
background: url(/images/fileview/document.png) 0 0 no-repeat;
|
||||||
|
color: #fff;
|
||||||
|
padding-left: 21px;
|
||||||
|
text-decoration: none;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
li.file a[href *= '.pdf'] { background: url(/images/fileview/document.png) 0 0 no-repeat; }
|
||||||
|
li.file a[href *= '.html'] { background: url(/images/fileview/document.png) 0 0 no-repeat; }
|
||||||
|
li.file a[href $= '.css'] { background: url(/images/fileview/document.png) 0 0 no-repeat; }
|
||||||
|
li.file a[href $= '.js'] { background: url(/images/fileview/document.png) 0 0 no-repeat; }
|
||||||
|
li input
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
opacity: 0;
|
||||||
|
z-index: 2;
|
||||||
|
cursor: pointer;
|
||||||
|
height: 1em;
|
||||||
|
width: 1em;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
li input + ol
|
||||||
|
{
|
||||||
|
background: url(/images/fileview/toggle-small-expand.png) 40px 0 no-repeat;
|
||||||
|
margin: -1.188em 0 0 -44px; /* 15px */
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
|
li input + ol > li { display: none; margin-left: -14px !important; padding-left: 1px; }
|
||||||
|
li label
|
||||||
|
{
|
||||||
|
background: url(/images/fileview/folder-horizontal.png) 15px 1px no-repeat;
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
padding-left: 37px;
|
||||||
|
}
|
||||||
|
|
||||||
|
li input:checked + ol
|
||||||
|
{
|
||||||
|
background: url(/images/fileview/toggle-small.png) 40px 5px no-repeat;
|
||||||
|
margin: -1.5em 0 0 -44px; /* 20px */
|
||||||
|
padding: 1.563em 0 0 80px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
li input:checked + ol > li { display: block; margin: 0 0 0.125em; /* 2px */}
|
||||||
|
li input:checked + ol > li:last-child { margin: 0 0 0.063em; /* 1px */ }
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 177 B |
Binary file not shown.
|
After Width: | Height: | Size: 271 B |
Binary file not shown.
|
After Width: | Height: | Size: 433 B |
Binary file not shown.
|
After Width: | Height: | Size: 462 B |
@@ -0,0 +1,33 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/_styles.css" media="all">
|
||||||
|
<title>File View</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="home_button">
|
||||||
|
<ul class="actions">
|
||||||
|
<li class="minibutton">
|
||||||
|
<a href="/" class="action-edit-page">Home</a>
|
||||||
|
</li>
|
||||||
|
<li class="minibutton" class="jaws">
|
||||||
|
<a href="#" id="minibutton-new-page">New Page</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#has_results}}
|
||||||
|
<div id="results">
|
||||||
|
{{{results}}}
|
||||||
|
</div>
|
||||||
|
{{/has_results}}
|
||||||
|
|
||||||
|
{{#no_results}}
|
||||||
|
<p id="no-results">
|
||||||
|
There are no pages in <strong>{{ref}}</strong>.
|
||||||
|
</p>
|
||||||
|
{{/no_results}}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -7,6 +7,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="minibutton"><a href="/pages"
|
<li class="minibutton"><a href="/pages"
|
||||||
class="action-all-pages">All Pages</a></li>
|
class="action-all-pages">All Pages</a></li>
|
||||||
|
<li class="minibutton"><a href="/fileview"
|
||||||
|
class="action-all-pages">File View</a></li>
|
||||||
<li class="minibutton" class="jaws">
|
<li class="minibutton" class="jaws">
|
||||||
<a href="#" id="minibutton-new-page">New Page</a></li>
|
<a href="#" id="minibutton-new-page">New Page</a></li>
|
||||||
{{#editable}}
|
{{#editable}}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
module Precious
|
||||||
|
module Views
|
||||||
|
class FileView < Layout
|
||||||
|
attr_reader :results, :ref
|
||||||
|
|
||||||
|
def title
|
||||||
|
"All pages in #{@ref}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_results
|
||||||
|
!@results.empty?
|
||||||
|
end
|
||||||
|
|
||||||
|
def no_results
|
||||||
|
@results.empty?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2010 Ryan Seddon
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
=============================================================================
|
||||||
|
|
||||||
|
BSD License
|
||||||
|
|
||||||
|
Copyright (c) 2010, Ryan Seddon
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
3. Neither the name of the organization nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER "AS IS" AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
The following PNGs are based on Ubuntu 11.10 SVG files located in /usr/share/icons/unity-icon-theme/places/svg/
|
||||||
|
- group-folders.svg
|
||||||
|
- group-files.svg
|
||||||
|
- group-downloads.svg
|
||||||
|
|
||||||
|
lib/gollum/frontend/public/css/document.png
|
||||||
|
lib/gollum/frontend/public/css/folder-horizontal.png
|
||||||
|
lib/gollum/frontend/public/css/toggle-small-expand.png
|
||||||
|
lib/gollum/frontend/public/css/toggle-small.png
|
||||||
|
|
||||||
|
Creative Commons - Attribution Share Alike
|
||||||
|
https://launchpad.net/unity-asset-pool
|
||||||
|
http://packages.ubuntu.com/oneiric/all/unity-asset-pool/filelist
|
||||||
|
https://bazaar.launchpad.net/~unity-team/unity-asset-pool/trunk/view/head:/COPYRIGHT
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The css-tree-menu code is used under the MIT license.
|
||||||
|
|
||||||
|
http://www.thecssninja.com/css/css-tree-menu
|
||||||
|
http://www.thecssninja.com/demo/license.txt
|
||||||
|
|
||||||
|
lib/gollum/frontend/public/css/_styles.css
|
||||||
@@ -0,0 +1,286 @@
|
|||||||
|
This package was debianized by Kenneth Wimer <kwwii@ubuntu.com> on
|
||||||
|
Fri, 12 Dec 2010 9:08:32 +0200.
|
||||||
|
|
||||||
|
Upstream Author:
|
||||||
|
Michael Forrest <michael.forrest@canonical.com>
|
||||||
|
Otto Greenslade <otto.greenslade@canonical.com>
|
||||||
|
|
||||||
|
Copyright:
|
||||||
|
|
||||||
|
(c) Canonical Ltd 2004- 2009
|
||||||
|
|
||||||
|
Unless otherwise indicated, artwork is available under the Creative
|
||||||
|
Commons Attribution Share-alike license v3.0 or any later version. To
|
||||||
|
view a copy of this license, visit
|
||||||
|
http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to
|
||||||
|
Creative Commons, 171 Second Street, Suite 300, San Francisco,
|
||||||
|
California, 94105, USA. See below for the full text of the license.
|
||||||
|
|
||||||
|
Some Rights Reserved:
|
||||||
|
|
||||||
|
The rights in the trademarks, logos, service marks of Canonical Ltd,
|
||||||
|
as well as the look and feel of Ubuntu, are not licensed under the
|
||||||
|
Creative Commons license and are subject to the Canonical Trademark
|
||||||
|
Policy at http://www.ubuntu.com/ubuntu/TrademarkPolicy
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||||
|
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
|
||||||
|
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||||
|
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||||
|
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
|
||||||
|
DAMAGES RESULTING FROM ITS USE.
|
||||||
|
|
||||||
|
License
|
||||||
|
|
||||||
|
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
|
||||||
|
CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS
|
||||||
|
PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE
|
||||||
|
WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW
|
||||||
|
IS PROHIBITED.
|
||||||
|
|
||||||
|
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND
|
||||||
|
AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU
|
||||||
|
THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH
|
||||||
|
TERMS AND CONDITIONS.
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
|
||||||
|
1. "Collective Work" means a work, such as a periodical issue,
|
||||||
|
anthology or encyclopedia, in which the Work in its entirety in
|
||||||
|
unmodified form, along with a number of other contributions,
|
||||||
|
constituting separate and independent works in themselves, are
|
||||||
|
assembled into a collective whole. A work that constitutes a
|
||||||
|
Collective Work will not be considered a Derivative Work
|
||||||
|
(as defined below) for the purposes of this License.
|
||||||
|
2. "Derivative Work" means a work based upon the Work or upon the
|
||||||
|
Work and other pre-existing works, such as a translation, musical
|
||||||
|
arrangement, dramatization, fictionalization, motion picture
|
||||||
|
version, sound recording, art reproduction, abridgment,
|
||||||
|
condensation, or any other form in which the Work may be recast,
|
||||||
|
transformed, or adapted, except that a work that constitutes a
|
||||||
|
Collective Work will not be considered a Derivative Work for the
|
||||||
|
purpose of this License. For the avoidance of doubt, where the Work
|
||||||
|
is a musical composition or sound recording, the synchronization of
|
||||||
|
the Work in timed-relation with a moving image ("synching") will be
|
||||||
|
considered a Derivative Work for the purpose of this License.
|
||||||
|
3. "Licensor" means the individual or entity that offers the Work
|
||||||
|
under the terms of this License.
|
||||||
|
4. "Original Author" means the individual or entity who created the
|
||||||
|
Work.
|
||||||
|
5. "Work" means the copyrightable work of authorship offered under
|
||||||
|
the terms of this License.
|
||||||
|
6. "You" means an individual or entity exercising rights under this
|
||||||
|
License who has not previously violated the terms of this License
|
||||||
|
with respect to the Work, or who has received express permission
|
||||||
|
from the Licensor to exercise rights under this License despite a
|
||||||
|
previous violation.
|
||||||
|
7. "License Elements" means the following high-level license
|
||||||
|
attributes as selected by Licensor and indicated in the title of
|
||||||
|
this License: Attribution, ShareAlike.
|
||||||
|
|
||||||
|
2. Fair Use Rights. Nothing in this license is intended to reduce,
|
||||||
|
limit, or restrict any rights arising from fair use, first sale or
|
||||||
|
other limitations on the exclusive rights of the copyright owner under
|
||||||
|
copyright law or other applicable laws.
|
||||||
|
|
||||||
|
3. License Grant. Subject to the terms and conditions of this License,
|
||||||
|
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||||
|
perpetual (for the duration of the applicable copyright) license to
|
||||||
|
exercise the rights in the Work as stated below:
|
||||||
|
|
||||||
|
1. to reproduce the Work, to incorporate the Work into one or more
|
||||||
|
Collective Works, and to reproduce the Work as incorporated in the
|
||||||
|
Collective Works;
|
||||||
|
2. to create and reproduce Derivative Works;
|
||||||
|
3. to distribute copies or phonorecords of, display publicly,
|
||||||
|
perform publicly, and perform publicly by means of a digital audio
|
||||||
|
transmission the Work including as incorporated in Collective Works;
|
||||||
|
4. to distribute copies or phonorecords of, display publicly,
|
||||||
|
perform publicly, and perform publicly by means of a digital audio
|
||||||
|
transmission Derivative Works.
|
||||||
|
5.
|
||||||
|
|
||||||
|
For the avoidance of doubt, where the work is a musical
|
||||||
|
composition:
|
||||||
|
1. Performance Royalties Under Blanket Licenses. Licensor
|
||||||
|
waives the exclusive right to collect, whether individually
|
||||||
|
or via a performance rights society (e.g. ASCAP, BMI, SESAC),
|
||||||
|
royalties for the public performance or public digital
|
||||||
|
performance (e.g. webcast) of the Work.
|
||||||
|
2. Mechanical Rights and Statutory Royalties. Licensor waives
|
||||||
|
the exclusive right to collect, whether individually or via a
|
||||||
|
music rights society or designated agent (e.g. Harry Fox
|
||||||
|
Agency), royalties for any phonorecord You create from the
|
||||||
|
Work ("cover version") and distribute, subject to the
|
||||||
|
compulsory license created by 17 USC Section 115 of the US
|
||||||
|
Copyright Act (or the equivalent in other jurisdictions).
|
||||||
|
6. Webcasting Rights and Statutory Royalties. For the avoidance of
|
||||||
|
doubt, where the Work is a sound recording, Licensor waives the
|
||||||
|
exclusive right to collect, whether individually or via a
|
||||||
|
performance-rights society (e.g. SoundExchange), royalties for the
|
||||||
|
public digital performance (e.g. webcast) of the Work, subject to
|
||||||
|
the compulsory license created by 17 USC Section 114 of the US
|
||||||
|
Copyright Act (or the equivalent in other jurisdictions).
|
||||||
|
|
||||||
|
The above rights may be exercised in all media and formats whether now
|
||||||
|
known or hereafter devised. The above rights include the right to make
|
||||||
|
such modifications as are technically necessary to exercise the rights
|
||||||
|
in other media and formats. All rights not expressly granted by
|
||||||
|
Licensor are hereby reserved.
|
||||||
|
|
||||||
|
4. Restrictions.The license granted in Section 3 above is expressly
|
||||||
|
made subject to and limited by the following restrictions:
|
||||||
|
|
||||||
|
1. You may distribute, publicly display, publicly perform, or
|
||||||
|
publicly digitally perform the Work only under the terms of this
|
||||||
|
License, and You must include a copy of, or the Uniform Resource
|
||||||
|
Identifier for, this License with every copy or phonorecord of the
|
||||||
|
Work You distribute, publicly display, publicly perform, or publicly
|
||||||
|
digitally perform. You may not offer or impose any terms on the Work
|
||||||
|
that alter or restrict the terms of this License or the recipients'
|
||||||
|
exercise of the rights granted hereunder. You may not sublicense the
|
||||||
|
Work. You must keep intact all notices that refer to this License
|
||||||
|
and to the disclaimer of warranties. You may not distribute,
|
||||||
|
publicly display, publicly perform, or publicly digitally perform
|
||||||
|
the Work with any technological measures that control access or use
|
||||||
|
of the Work in a manner inconsistent with the terms of this License
|
||||||
|
Agreement. The above applies to the Work as incorporated in a
|
||||||
|
Collective Work, but this does not require the Collective Work apart
|
||||||
|
from the Work itself to be made subject to the terms of this
|
||||||
|
License. If You create a Collective Work, upon notice from any
|
||||||
|
Licensor You must, to the extent practicable, remove from the
|
||||||
|
Collective Work any credit as required by clause 4(c), as requested.
|
||||||
|
If You create a Derivative Work, upon notice from any Licensor You
|
||||||
|
must, to the extent practicable, remove from the Derivative Work
|
||||||
|
any credit as required by clause 4(c), as requested.
|
||||||
|
2. You may distribute, publicly display, publicly perform, or
|
||||||
|
publicly digitally perform a Derivative Work only under the terms
|
||||||
|
of this License, a later version of this License with the same
|
||||||
|
License Elements as this License, or a Creative Commons iCommons
|
||||||
|
license that contains the same License Elements as this License
|
||||||
|
(e.g. Attribution-ShareAlike 2.5 Japan). You must include a copy of,
|
||||||
|
or the Uniform Resource Identifier for, this License or other
|
||||||
|
license specified in the previous sentence with every copy or
|
||||||
|
phonorecord of each Derivative Work You distribute, publicly
|
||||||
|
display, publicly perform, or publicly digitally perform. You may
|
||||||
|
not offer or impose any terms on the Derivative Works that alter or
|
||||||
|
restrict the terms of this License or the recipients' exercise of
|
||||||
|
the rights granted hereunder, and You must keep intact all notices
|
||||||
|
that refer to this License and to the disclaimer of warranties.
|
||||||
|
You may not distribute, publicly display, publicly perform, or
|
||||||
|
publicly digitally perform the Derivative Work with any
|
||||||
|
technological measures that control access or use of the Work in a
|
||||||
|
manner inconsistent with the terms of this License Agreement.
|
||||||
|
The above applies to the Derivative Work as incorporated in a
|
||||||
|
Collective Work, but this does not require the Collective Work
|
||||||
|
apart from the Derivative Work itself to be made subject to the
|
||||||
|
terms of this License.
|
||||||
|
3. If you distribute, publicly display, publicly perform, or
|
||||||
|
publicly digitally perform the Work or any Derivative Works or
|
||||||
|
Collective Works, You must keep intact all copyright notices for
|
||||||
|
the Work and provide, reasonable to the medium or means You are
|
||||||
|
utilizing: (i) the name of the Original Author (or pseudonym, if
|
||||||
|
applicable) if supplied, and/or (ii) if the Original Author and/or
|
||||||
|
Licensor designate another party or parties (e.g. a sponsor
|
||||||
|
institute, publishing entity, journal) for attribution in Licensor's
|
||||||
|
copyright notice, terms of service or by other reasonable means, the
|
||||||
|
name of such party or parties; the title of the Work if supplied; to
|
||||||
|
the extent reasonably practicable, the Uniform Resource Identifier,
|
||||||
|
if any, that Licensor specifies to be associated with the Work,
|
||||||
|
unless such URI does not refer to the copyright notice or licensing
|
||||||
|
information for the Work; and in the case of a Derivative Work, a
|
||||||
|
credit identifying the use of the Work in the Derivative Work (e.g.,
|
||||||
|
"French translation of the Work by Original Author," or "Screenplay
|
||||||
|
based on original Work by Original Author"). Such credit may be
|
||||||
|
implemented in any reasonable manner; provided, however, that in the
|
||||||
|
case of a Derivative Work or Collective Work, at a minimum such
|
||||||
|
credit will appear where any other comparable authorship credit
|
||||||
|
appears and in a manner at least as prominent as such other
|
||||||
|
comparable authorship credit.
|
||||||
|
|
||||||
|
5. Representations, Warranties and Disclaimer
|
||||||
|
|
||||||
|
UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
|
||||||
|
THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
|
||||||
|
CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
||||||
|
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
|
||||||
|
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF
|
||||||
|
ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW
|
||||||
|
THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY
|
||||||
|
TO YOU.
|
||||||
|
|
||||||
|
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
|
||||||
|
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
|
||||||
|
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
|
||||||
|
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR
|
||||||
|
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
7. Termination
|
||||||
|
|
||||||
|
1. This License and the rights granted hereunder will terminate
|
||||||
|
automatically upon any breach by You of the terms of this License.
|
||||||
|
Individuals or entities who have received Derivative Works or
|
||||||
|
Collective Works from You under this License, however, will not have
|
||||||
|
their licenses terminated provided such individuals or entities
|
||||||
|
remain in full compliance with those licenses. Sections 1, 2, 5, 6,
|
||||||
|
7, and 8 will survive any termination of this License.
|
||||||
|
2. Subject to the above terms and conditions, the license granted
|
||||||
|
here is perpetual (for the duration of the applicable copyright in
|
||||||
|
the Work). Notwithstanding the above, Licensor reserves the right to
|
||||||
|
release the Work under different license terms or to stop
|
||||||
|
distributing the Work at any time; provided, however that any such
|
||||||
|
election will not serve to withdraw this License (or any other
|
||||||
|
license that has been, or is required to be, granted under the terms
|
||||||
|
of this License), and this License will continue in full force and
|
||||||
|
effect unless terminated as stated above.
|
||||||
|
|
||||||
|
8. Miscellaneous
|
||||||
|
|
||||||
|
1. Each time You distribute or publicly digitally perform the Work
|
||||||
|
or a Collective Work, the Licensor offers to the recipient a license
|
||||||
|
to the Work on the same terms and conditions as the license granted
|
||||||
|
to You under this License.
|
||||||
|
2. Each time You distribute or publicly digitally perform a
|
||||||
|
Derivative Work, Licensor offers to the recipient a license to the
|
||||||
|
original Work on the same terms and conditions as the license
|
||||||
|
granted to You under this License.
|
||||||
|
3. If any provision of this License is invalid or unenforceable under
|
||||||
|
applicable law, it shall not affect the validity or enforceability of
|
||||||
|
the remainder of the terms of this License, and without further
|
||||||
|
action by the parties to this agreement, such provision shall be
|
||||||
|
reformed to the minimum extent necessary to make such provision
|
||||||
|
valid and enforceable.
|
||||||
|
4. No term or provision of this License shall be deemed waived and
|
||||||
|
no breach consented to unless such waiver or consent shall be in
|
||||||
|
writing and signed by the party to be charged with such waiver or
|
||||||
|
consent.
|
||||||
|
5. This License constitutes the entire agreement between the parties
|
||||||
|
with respect to the Work licensed here. There are no understandings,
|
||||||
|
agreements or representations with respect to the Work not specified
|
||||||
|
here. Licensor shall not be bound by any additional provisions that
|
||||||
|
may appear in any communication from You. This License may not be
|
||||||
|
modified without the mutual written agreement of the Licensor and
|
||||||
|
You.
|
||||||
|
|
||||||
|
Creative Commons is not a party to this License, and makes no warranty
|
||||||
|
whatsoever in connection with the Work. Creative Commons will not be
|
||||||
|
liable to You or any party on any legal theory for any damages
|
||||||
|
whatsoever, including without limitation any general, special,
|
||||||
|
incidental or consequential damages arising in connection to this
|
||||||
|
license. Notwithstanding the foregoing two (2) sentences, if Creative
|
||||||
|
Commons has expressly identified itself as the Licensor hereunder,
|
||||||
|
it shall have all rights and obligations of Licensor.
|
||||||
|
|
||||||
|
Except for the limited purpose of indicating to the public that the
|
||||||
|
Work is licensed under the CCPL, neither party will use the trademark
|
||||||
|
"Creative Commons" or any related trademark or logo of Creative Commons
|
||||||
|
without the prior written consent of Creative Commons. Any permitted
|
||||||
|
use will be in compliance with Creative Commons' then-current trademark
|
||||||
|
usage guidelines, as may be published on its website or otherwise made
|
||||||
|
available upon request from time to time.
|
||||||
|
|
||||||
|
Creative Commons may be contacted at http://creativecommons.org/
|
||||||
|
|
||||||
Reference in New Issue
Block a user