Skip to content

Commit d1d21d2

Browse files
committed
Add prototype to highlight matched text
Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>
1 parent 5d30d72 commit d1d21d2

File tree

4 files changed

+150
-0
lines changed

4 files changed

+150
-0
lines changed

foo.html

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<style>
2+
pre.log {color: #f1f1f1; background-color: #222; font-family: monospace;}
3+
pre.wrap {white-space: pre-wrap;}
4+
span.not-matched {color:#f5bf3c;}
5+
span.matched {color:#000000;}
6+
</style>
7+
8+
<div class="license-match"><pre><span class="not-matched">Copyright</span><span class="not-matched"> (</span><span class="not-matched">c</span><span class="not-matched">) </span><span class="not-matched">Django</span><span class="not-matched"> </span><span class="not-matched">Software</span><span class="not-matched"> </span><span class="not-matched">Foundation</span><span class="not-matched"> </span><span class="not-matched">and</span><span class="not-matched"> </span><span class="not-matched">individual</span><span class="not-matched"> </span><span class="not-matched">contributors</span><span class="not-matched">.
9+
</span><span class="not-matched">All</span><span class="not-matched"> </span><span class="not-matched">rights</span><span class="not-matched"> </span><span class="not-matched">reserved</span><span class="not-matched">.
10+
</span><span class="not-matched">
11+
</span><span class="matched">Redistribution</span><span class="not-matched"> </span><span class="matched">and</span><span class="not-matched"> </span><span class="matched">use</span><span class="not-matched"> </span><span class="matched">in</span><span class="not-matched"> </span><span class="matched">source</span><span class="not-matched"> </span><span class="matched">and</span><span class="not-matched"> </span><span class="matched">binary</span><span class="not-matched"> </span><span class="matched">forms</span><span class="not-matched">, </span><span class="matched">with</span><span class="not-matched"> </span><span class="matched">or</span><span class="not-matched"> </span><span class="matched">without</span><span class="not-matched"> </span><span class="matched">modification</span><span class="not-matched">,
12+
</span><span class="matched">are</span><span class="not-matched"> </span><span class="matched">permitted</span><span class="not-matched"> </span><span class="matched">provided</span><span class="not-matched"> </span><span class="matched">that</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">following</span><span class="not-matched"> </span><span class="matched">conditions</span><span class="not-matched"> </span><span class="matched">are</span><span class="not-matched"> </span><span class="matched">met</span><span class="not-matched">:
13+
</span><span class="not-matched">
14+
</span><span class="not-matched"> </span><span class="matched">1</span><span class="not-matched">. </span><span class="matched">Redistributions</span><span class="not-matched"> </span><span class="matched">of</span><span class="not-matched"> </span><span class="matched">source</span><span class="not-matched"> </span><span class="matched">code</span><span class="not-matched"> </span><span class="matched">must</span><span class="not-matched"> </span><span class="matched">retain</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">above</span><span class="not-matched"> </span><span class="matched">copyright</span><span class="not-matched"> </span><span class="matched">notice</span><span class="not-matched">,
15+
</span><span class="not-matched"> </span><span class="matched">this</span><span class="not-matched"> </span><span class="matched">list</span><span class="not-matched"> </span><span class="matched">of</span><span class="not-matched"> </span><span class="matched">conditions</span><span class="not-matched"> </span><span class="matched">and</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">following</span><span class="not-matched"> </span><span class="matched">disclaimer</span><span class="not-matched">.
16+
</span><span class="not-matched">
17+
</span><span class="not-matched"> </span><span class="matched">2</span><span class="not-matched">. </span><span class="matched">Redistributions</span><span class="not-matched"> </span><span class="matched">in</span><span class="not-matched"> </span><span class="matched">binary</span><span class="not-matched"> </span><span class="matched">form</span><span class="not-matched"> </span><span class="matched">must</span><span class="not-matched"> </span><span class="matched">reproduce</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">above</span><span class="not-matched"> </span><span class="matched">copyright</span><span class="not-matched">
18+
</span><span class="not-matched"> </span><span class="matched">notice</span><span class="not-matched">, </span><span class="matched">this</span><span class="not-matched"> </span><span class="matched">list</span><span class="not-matched"> </span><span class="matched">of</span><span class="not-matched"> </span><span class="not-matched">FOOBAR</span><span class="not-matched"> </span><span class="matched">conditions</span><span class="not-matched"> </span><span class="matched">and</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">following</span><span class="not-matched"> </span><span class="matched">disclaimer</span><span class="not-matched"> </span><span class="matched">in</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched">
19+
</span><span class="not-matched"> </span><span class="matched">documentation</span><span class="not-matched"> </span><span class="matched">and</span><span class="not-matched">/</span><span class="matched">or</span><span class="not-matched"> </span><span class="matched">other</span><span class="not-matched"> </span><span class="matched">materials</span><span class="not-matched"> </span><span class="matched">provided</span><span class="not-matched"> </span><span class="matched">with</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">distribution</span><span class="not-matched">.
20+
</span><span class="not-matched">
21+
</span><span class="not-matched"> </span><span class="matched">3</span><span class="not-matched">. </span><span class="matched">Neither</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">name</span><span class="not-matched"> </span><span class="matched">of</span><span class="not-matched"> </span><span class="matched">Django</span><span class="not-matched"> </span><span class="matched">nor</span><span class="not-matched"> </span><span class="matched">the</span><span class="not-matched"> </span><span class="matched">names</span><span class="not-matched"> </span><span class="matched">of</span><span class="not-matched"> </span><span class="matched">its</span><span class="not-matched"> </span><span class="matched">contributors</span><span class="not-matched"> </span><span class="matched">may</span><span class="not-matched"> </span><span class="matched">be</span><span class="not-matched"> </span><span class="matched">used</span><span class="not-matched">
22+
</span><span class="not-matched"> </span><span class="matched">to</span><span class="not-matched"> </span><span class="matched">endorse</span><span class="not-matched"> </span><span class="matched">or</span><span class="not-matched"> </span><span class="matched">promote</span><span class="not-matched"> </span><span class="matched">products</span><span class="not-matched"> </span><span class="matched">derived</span><span class="not-matched"> </span><span class="matched">from</span><span class="not-matched"> </span><span class="matched">this</span><span class="not-matched"> </span><span class="matched">software</span><span class="not-matched"> </span><span class="matched">without</span><span class="not-matched">
23+
</span><span class="not-matched"> </span><span class="matched">specific</span><span class="not-matched"> </span><span class="matched">prior</span><span class="not-matched"> </span><span class="matched">written</span><span class="not-matched"> </span><span class="matched">permission</span><span class="not-matched">.
24+
</span><span class="not-matched">
25+
</span><span class="matched">THIS</span><span class="not-matched"> </span><span class="matched">SOFTWARE</span><span class="not-matched"> </span><span class="matched">IS</span><span class="not-matched"> </span><span class="matched">PROVIDED</span><span class="not-matched"> </span><span class="matched">BY</span><span class="not-matched"> </span><span class="matched">THE</span><span class="not-matched"> </span><span class="matched">COPYRIGHT</span><span class="not-matched"> </span><span class="matched">HOLDERS</span><span class="not-matched"> </span><span class="matched">AND</span><span class="not-matched"> </span><span class="matched">CONTRIBUTORS</span><span class="not-matched"> "</span><span class="matched">AS</span><span class="not-matched"> </span><span class="matched">IS</span><span class="not-matched">" </span><span class="matched">AND</span><span class="not-matched">
26+
</span><span class="matched">ANY</span><span class="not-matched"> </span><span class="matched">EXPRESS</span><span class="not-matched"> </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">IMPLIED</span><span class="not-matched"> </span><span class="matched">WARRANTIES</span><span class="not-matched">, </span><span class="matched">INCLUDING</span><span class="not-matched">, </span><span class="matched">BUT</span><span class="not-matched"> </span><span class="matched">NOT</span><span class="not-matched"> </span><span class="matched">LIMITED</span><span class="not-matched"> </span><span class="matched">TO</span><span class="not-matched">, </span><span class="matched">THE</span><span class="not-matched"> </span><span class="matched">IMPLIED</span><span class="not-matched">
27+
</span><span class="matched">WARRANTIES</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">MERCHANTABILITY</span><span class="not-matched"> </span><span class="matched">AND</span><span class="not-matched"> </span><span class="matched">FITNESS</span><span class="not-matched"> </span><span class="matched">FOR</span><span class="not-matched"> </span><span class="not-matched">A</span><span class="not-matched"> </span><span class="matched">PARTICULAR</span><span class="not-matched"> </span><span class="matched">PURPOSE</span><span class="not-matched"> </span><span class="matched">ARE</span><span class="not-matched">
28+
</span><span class="matched">DISCLAIMED</span><span class="not-matched">. </span><span class="matched">IN</span><span class="not-matched"> </span><span class="matched">NO</span><span class="not-matched"> </span><span class="matched">EVENT</span><span class="not-matched"> </span><span class="matched">SHALL</span><span class="not-matched"> </span><span class="matched">THE</span><span class="not-matched"> </span><span class="matched">COPYRIGHT</span><span class="not-matched"> </span><span class="matched">OWNER</span><span class="not-matched"> </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">CONTRIBUTORS</span><span class="not-matched"> </span><span class="matched">BE</span><span class="not-matched"> </span><span class="matched">LIABLE</span><span class="not-matched"> </span><span class="matched">FOR</span><span class="not-matched">
29+
</span><span class="matched">ANY</span><span class="not-matched"> </span><span class="matched">DIRECT</span><span class="not-matched">, </span><span class="matched">INDIRECT</span><span class="not-matched">, </span><span class="matched">INCIDENTAL</span><span class="not-matched">, </span><span class="matched">SPECIAL</span><span class="not-matched">, </span><span class="matched">EXEMPLARY</span><span class="not-matched">, </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">CONSEQUENTIAL</span><span class="not-matched"> </span><span class="matched">DAMAGES</span><span class="not-matched">
30+
</span><span class="not-matched">(</span><span class="matched">INCLUDING</span><span class="not-matched">, </span><span class="matched">BUT</span><span class="not-matched"> </span><span class="matched">NOT</span><span class="not-matched"> </span><span class="matched">LIMITED</span><span class="not-matched"> </span><span class="matched">TO</span><span class="not-matched">, </span><span class="matched">PROCUREMENT</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">SUBSTITUTE</span><span class="not-matched"> </span><span class="matched">GOODS</span><span class="not-matched"> </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">SERVICES</span><span class="not-matched">;
31+
</span><span class="matched">LOSS</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">USE</span><span class="not-matched">, </span><span class="matched">DATA</span><span class="not-matched">, </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">PROFITS</span><span class="not-matched">; </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">BUSINESS</span><span class="not-matched"> </span><span class="matched">INTERRUPTION</span><span class="not-matched">) </span><span class="matched">HOWEVER</span><span class="not-matched"> </span><span class="matched">CAUSED</span><span class="not-matched"> </span><span class="matched">AND</span><span class="not-matched"> </span><span class="matched">ON</span><span class="not-matched">
32+
</span><span class="matched">ANY</span><span class="not-matched"> </span><span class="matched">THEORY</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">LIABILITY</span><span class="not-matched">, </span><span class="matched">WHETHER</span><span class="not-matched"> </span><span class="matched">IN</span><span class="not-matched"> </span><span class="matched">CONTRACT</span><span class="not-matched">, </span><span class="matched">STRICT</span><span class="not-matched"> </span><span class="matched">LIABILITY</span><span class="not-matched">, </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">TORT</span><span class="not-matched">
33+
</span><span class="not-matched">(</span><span class="matched">INCLUDING</span><span class="not-matched"> </span><span class="matched">NEGLIGENCE</span><span class="not-matched"> </span><span class="matched">OR</span><span class="not-matched"> </span><span class="matched">OTHERWISE</span><span class="not-matched">) </span><span class="matched">ARISING</span><span class="not-matched"> </span><span class="matched">IN</span><span class="not-matched"> </span><span class="matched">ANY</span><span class="not-matched"> </span><span class="matched">WAY</span><span class="not-matched"> </span><span class="matched">OUT</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">THE</span><span class="not-matched"> </span><span class="matched">USE</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">THIS</span><span class="not-matched">
34+
</span><span class="matched">SOFTWARE</span><span class="not-matched">, </span><span class="matched">EVEN</span><span class="not-matched"> </span><span class="matched">IF</span><span class="not-matched"> </span><span class="matched">ADVISED</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">THE</span><span class="not-matched"> </span><span class="matched">POSSIBILITY</span><span class="not-matched"> </span><span class="matched">OF</span><span class="not-matched"> </span><span class="matched">SUCH</span><span class="not-matched"> </span><span class="matched">DAMAGE</span><span class="not-matched">.
35+
</span></pre></div>

ht.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from licensedcode.cache import get_index
2+
idx = get_index()
3+
file= "sample.license.txt"
4+
matches = idx.match(location=file)
5+
for match in matches:
6+
ht = match.get_highlighted_text()
7+
print(ht)

sample.license.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Copyright (c) Django Software Foundation and individual contributors.
2+
All rights reserved.
3+
4+
Redistribution and use in source and binary forms, with or without modification,
5+
are permitted provided that the following conditions are met:
6+
7+
1. Redistributions of source code must retain the above copyright notice,
8+
this list of conditions and the following disclaimer.
9+
10+
2. Redistributions in binary form must reproduce the above copyright
11+
notice, this list of FOOBAR conditions and the following disclaimer in the
12+
documentation and/or other materials provided with the distribution.
13+
14+
3. Neither the name of Django nor the names of its contributors may be used
15+
to endorse or promote products derived from this software without
16+
specific prior written permission.
17+
18+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

0 commit comments

Comments
 (0)