diff --git a/static/background.png b/static/background.png deleted file mode 100644 index ae63674..0000000 Binary files a/static/background.png and /dev/null differ diff --git a/static/style.css b/static/style.css index a95cebf..eb3e883 100644 --- a/static/style.css +++ b/static/style.css @@ -1,58 +1,89 @@ +html, body { + height: 100%; + margin: 0; +} + body { - font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; + display: flex; + flex-direction: column; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 14px; color: #000; - background-color: #000; + background-color: #eaecf0; background-attachment: fixed; background-position: center; - margin: 0; + background-size: cover; } -ul, ol { - line-height: 1.5; +#container { + flex: auto; + line-height: 1.25; + margin: 0 auto; } -h2 { - margin-bottom: 0.2em; +#container > div { + background-color: #fff; + border: 1px solid #c8ccd1; + filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.25)); + margin: 1.5em 3em; + padding: 1em; } -#header { - font-size: 2.5em; - font-weight: bold; - margin: 20px 60px; - padding: 10px 15px; - border: 1px solid #777; - background-color: #FFF; +header { + background-color: #eaecf0; + padding: 0.2em 1em; } -#container { - line-height: 1.25; - margin: 0 60px 65px 60px; - padding: 5px 15px 15px 15px; - border: 1px solid #777; - background-color: #FFF; +header > * { + vertical-align: middle; + display: inline-block; } -#footer { - position: fixed; - width: 100%; - height: 45px; - bottom: 0; +header h1 { + font-size: 2em; + margin: 0 1em 0 0; +} + +#settings-link::before { + content: ' '; font-size: 0.85em; + color: black; + opacity: 0.6; + padding-left: 1.67em; + background-image: linear-gradient(transparent,transparent), url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 xmlns:xlink=%22http://www.w3.org/1999/xlink%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Esettings%3C/title%3E%3Cg transform=%22translate%2810 10%29%22%3E%3Cpath id=%22a%22 d=%22M1.5-10h-3l-1 6.5h5m0 7h-5l1 6.5h3%22/%3E%3Cuse transform=%22rotate%2845%29%22 xlink:href=%22%23a%22/%3E%3Cuse transform=%22rotate%2890%29%22 xlink:href=%22%23a%22/%3E%3Cuse transform=%22rotate%28135%29%22 xlink:href=%22%23a%22/%3E%3C/g%3E%3Cpath d=%22M10 2.5a7.5 7.5 0 000 15 7.5 7.5 0 000-15v4a3.5 3.5 0 010 7 3.5 3.5 0 010-7%22/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-size: contain; +} + +footer { + padding: 1em; + font-size: 0.9em; text-align: center; line-height: 1.5; - border-top: 1px solid #777; - background: #DDDDDD; + border-top: 1px solid #c8ccd1; + background: #fff; } -#footer li { +footer ul { + margin: 0; +} + +footer li { display: inline; } -#footer li:not(:last-child)::after { +footer li:not(:last-child)::after { content: ' \00b7'; } +ul, ol { + line-height: 1.5; +} + +h2 { + margin-bottom: 0.2em; +} + #notice-box { padding: 10px; margin: 10px 5px; @@ -90,8 +121,8 @@ h2 { #sources-container { padding: 5px 10px; margin: 15px 5px 10px 5px; - background-color: #EEE; - border: 1px solid #BBB; + background-color: #eee; + border: 1px solid #bbb; } #turnitin-title, #sources-title { @@ -147,7 +178,7 @@ h2 { } #cv-result-sources tr:nth-child(even) { - background-color: #E0E0E0; + background-color: #e0e0e0; } #cv-result-sources td:first-child { @@ -206,7 +237,7 @@ h2 { } #source-row-selected { - background-color: #CFCFCF !important; + background-color: #cfcfcf !important; } #head-settings { @@ -272,31 +303,31 @@ h2 { width: 500px; padding: 5px; z-index: 1; - background: #F3F3F3; - border: 1px solid #AAA; + background: #f3f3f3; + border: 1px solid #aaa; color: black; font-style: normal; text-align: left; } .green-box { - background-color: #EFE; - border: 1px solid #7F7; + background-color: #efe; + border: 1px solid #7f7; } .yellow-box { - background-color: #FFD; - border: 1px solid #EE5; + background-color: #ffd; + border: 1px solid #ee5; } .red-box { - background-color: #FEE; - border: 1px solid #F77; + background-color: #fee; + border: 1px solid #f77; } .gray-box { - background-color: #EEE; - border: 1px solid #AAA; + background-color: #eee; + border: 1px solid #aaa; } .indentable { @@ -314,8 +345,8 @@ h2 { .cv-chain-detail { padding: 0 10px 0 10px; - background-color: #FFF; - border: 1px solid #BBB; + background-color: #fff; + border: 1px solid #bbb; } .cv-chain-cell { @@ -354,22 +385,22 @@ h2 { } .cv-hl { - background: #FAA; + background: #faa; } .cv-hl-in { - background: #FCC; - background: linear-gradient(to left, #FAA, #FFF); + background: #fcc; + background: linear-gradient(to left, #faa, #fff); } .cv-hl-out { - background: #FCC; - background: linear-gradient(to right, #FAA, #FFF); + background: #fcc; + background: linear-gradient(to right, #faa, #fff); } .mono { font-family: monospace; } -.light { color: #CCC; } -.medium { color: #AAA; } +.light { color: #ccc; } +.medium { color: #aaa; } .source-similarity { font-weight: bold; } .source-suspect { color: #900; } @@ -393,15 +424,13 @@ a:active { text-decoration: underline; } -#a-home:link { color: #777; } -#a-home:visited { color: #777; } -#a-home:hover { color: #555; } -#a-home:active { color: #333; } +header a:link, header a:visited, header a:hover { + color: #54595d; +} -#a-settings:link { color: #AAA; } -#a-settings:visited { color: #AAA; } -#a-settings:hover { color: #888; } -#a-settings:active { color: #666; } +header a:active { + color: #333; +} #cv-cached:active { color: #040; text-decoration: none; } #cv-cached:hover { text-decoration: none; } diff --git a/static/style.min.css b/static/style.min.css index 25ec8dd..d5ba315 100644 --- a/static/style.min.css +++ b/static/style.min.css @@ -1 +1 @@ -body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;color:#000;background-color:#000;background-attachment:fixed;background-position:50%;margin:0}ol,ul{line-height:1.5}h2{margin-bottom:.2em}#header{font-size:2.5em;font-weight:700;margin:20px 60px;padding:10px 15px}#container,#header{border:1px solid #777;background-color:#fff}#container{line-height:1.25;margin:0 60px 65px;padding:5px 15px 15px}#footer{position:fixed;width:100%;height:45px;bottom:0;font-size:.85em;text-align:center;line-height:1.5;border-top:1px solid #777;background:#ddd}#footer li{display:inline}#footer li:not(:last-child):after{content:" \00b7"}#notice-box{padding:10px;margin:10px 5px}#notice-box p{margin:.25em 0}#notice-box ul{padding-left:1.5em;margin:0}#info-box{padding:0 10px;margin:10px 5px}#cv-result{padding:5px;margin:10px 5px}#attribution-warning{padding:1em;margin:15px 5px 10px}#turnitin-container{padding:5px;margin:15px 5px 10px}#sources-container{padding:5px 10px;margin:15px 5px 10px;background-color:#eee;border:1px solid #bbb}#sources-title,#turnitin-title{margin-bottom:-5px;text-align:center;font-weight:700}#turnitin-summary{padding-bottom:5px;font-style:italic}#cv-additional{display:none}#generation-time{margin-right:5px;text-align:right;font-style:italic}#cv-chain-container{margin:0 4px}#heading{width:100%}#cv-form-outer{width:800px}#cv-form-inner{width:100%;border-spacing:0}#cv-result-sources{width:100%;border-spacing:0 4px;table-layout:fixed}#cv-result-sources col:first-child{width:80%}#cv-result-sources col:nth-child(2),#cv-result-sources col:nth-child(3){width:10%}#cv-result-sources th{text-align:left}#cv-result-sources tr:nth-child(2n){background-color:#e0e0e0}#cv-result-sources td:first-child{overflow:hidden;word-wrap:break-word}#cv-result-head-table{width:100%;text-align:center;table-layout:fixed;border-spacing:0}#cv-result-head-table col:nth-child(odd){width:42.5%}#cv-result-head-table col:nth-child(2){width:15%}#cv-result-head-table td:nth-child(odd){font-size:1.25em;font-weight:700;overflow:hidden;word-wrap:break-word}#cv-result-head-table td:nth-child(2) div:first-child{font-weight:700}#cv-result-head-table td:nth-child(2) div:nth-child(2){font-size:2.5em;font-weight:700;line-height:1}#cv-result-head-table td:nth-child(2) div:nth-child(3){font-size:.8em}#cv-chain-table{margin-bottom:10px}#cv-chain-table,#turnitin-table{width:100%;border-spacing:0;table-layout:fixed}#turnitin-table{word-wrap:break-word}#source-row-selected{background-color:#cfcfcf!important}#head-settings{text-align:right}#cv-col1{width:15%}#cv-col2{width:55%}#cv-col3{text-align:center}#cv-col3,#cv-col4{width:15%}#cv-inner-col1{width:4%}#cv-inner-col2{width:22%}#cv-inner-col3{width:76%}#cv-result-header{margin:0}#redirected-from{font-size:.75em;font-weight:400}#redirected-from,#result-head-no-sources{font-style:italic}#source-selected{font-weight:700}#cv-cached{position:relative}#cv-cached span{display:none;position:absolute;top:20px;left:-50px;width:500px;padding:5px;z-index:1;background:#f3f3f3;border:1px solid #aaa;color:#000;font-style:normal;text-align:left}.green-box{background-color:#efe;border:1px solid #7f7}.yellow-box{background-color:#ffd;border:1px solid #ee5}.red-box{background-color:#fee;border:1px solid #f77}.gray-box{background-color:#eee;border:1px solid #aaa}.indentable{white-space:pre-wrap}.cv-source-footer{padding-bottom:5px;font-style:italic}.cv-source-footer a{font-style:normal}.cv-chain-detail{padding:0 10px;background-color:#fff;border:1px solid #bbb}.cv-chain-cell{vertical-align:top;word-wrap:break-word}.cv-chain-cell:first-child{padding-right:5px}.cv-chain-cell:last-child{padding-left:5px}.turnitin-table-cell{padding:.5em 0 .3em}.turnitin-table-cell ul{margin:.2em 0 0;line-height:1.4}.cv-text{width:100%}.cv-search{margin-left:0;margin-right:5px}.cv-search~.cv-search{margin-left:20px}.cv-hl{background:#faa}.cv-hl-in{background:#fcc;background:linear-gradient(270deg,#faa,#fff)}.cv-hl-out{background:#fcc;background:linear-gradient(90deg,#faa,#fff)}.mono{font-family:monospace}.light{color:#ccc}.medium{color:#aaa}.source-similarity{font-weight:700}.source-suspect{color:#900}.source-possible{color:#990}.source-novio{color:#090}.source-excluded,.source-skipped{font-style:italic}a:link,a:visited{color:#002bb8;text-decoration:none}a:hover{color:#002bb8}a:active,a:hover{text-decoration:underline}a:active{color:#404}#a-home:link,#a-home:visited{color:#777}#a-home:hover{color:#555}#a-home:active{color:#333}#a-settings:link,#a-settings:visited{color:#aaa}#a-settings:hover{color:#888}#a-settings:active{color:#666}#cv-cached:active{color:#040}#cv-cached:active,#cv-cached:hover{text-decoration:none}#cv-cached:hover span{display:block}.source-url:link,.source-url:visited{color:#357}.source-url:hover{color:#035}.source-url:active{color:#404} \ No newline at end of file +body,html{height:100%;margin:0}body{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;color:#000;background-color:#eaecf0;background-attachment:fixed;background-position:50%;background-size:cover}#container{flex:auto;line-height:1.25;margin:0 auto}#container>div{background-color:#fff;border:1px solid #c8ccd1;filter:drop-shadow(0 0 10px rgba(0,0,0,.25));margin:1.5em 3em;padding:1em}header{background-color:#eaecf0;padding:.2em 1em}header>*{vertical-align:middle;display:inline-block}header h1{font-size:2em;margin:0 1em 0 0}#settings-link:before{content:" ";font-size:.85em;color:#000;opacity:.6;padding-left:1.67em;background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20'%3E%3Cg transform='translate(10 10)'%3E%3Cpath id='a' d='M1.5-10h-3l-1 6.5h5m0 7h-5l1 6.5h3'/%3E%3Cuse transform='rotate(45)' xlink:href='%23a'/%3E%3Cuse transform='rotate(90)' xlink:href='%23a'/%3E%3Cuse transform='rotate(135)' xlink:href='%23a'/%3E%3C/g%3E%3Cpath d='M10 2.5a7.5 7.5 0 000 15 7.5 7.5 0 000-15v4a3.5 3.5 0 010 7 3.5 3.5 0 010-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain}footer{padding:1em;font-size:.9em;text-align:center;line-height:1.5;border-top:1px solid #c8ccd1;background:#fff}footer ul{margin:0}footer li{display:inline}footer li:not(:last-child):after{content:" \00b7"}ol,ul{line-height:1.5}h2{margin-bottom:.2em}#notice-box{padding:10px;margin:10px 5px}#notice-box p{margin:.25em 0}#notice-box ul{padding-left:1.5em;margin:0}#info-box{padding:0 10px;margin:10px 5px}#cv-result{padding:5px;margin:10px 5px}#attribution-warning{padding:1em;margin:15px 5px 10px}#turnitin-container{padding:5px;margin:15px 5px 10px}#sources-container{padding:5px 10px;margin:15px 5px 10px;background-color:#eee;border:1px solid #bbb}#sources-title,#turnitin-title{margin-bottom:-5px;text-align:center;font-weight:700}#turnitin-summary{padding-bottom:5px;font-style:italic}#cv-additional{display:none}#generation-time{margin-right:5px;text-align:right;font-style:italic}#cv-chain-container{margin:0 4px}#heading{width:100%}#cv-form-outer{width:800px}#cv-form-inner{width:100%;border-spacing:0}#cv-result-sources{width:100%;border-spacing:0 4px;table-layout:fixed}#cv-result-sources col:first-child{width:80%}#cv-result-sources col:nth-child(2),#cv-result-sources col:nth-child(3){width:10%}#cv-result-sources th{text-align:left}#cv-result-sources tr:nth-child(2n){background-color:#e0e0e0}#cv-result-sources td:first-child{overflow:hidden;word-wrap:break-word}#cv-result-head-table{width:100%;text-align:center;table-layout:fixed;border-spacing:0}#cv-result-head-table col:nth-child(odd){width:42.5%}#cv-result-head-table col:nth-child(2){width:15%}#cv-result-head-table td:nth-child(odd){font-size:1.25em;font-weight:700;overflow:hidden;word-wrap:break-word}#cv-result-head-table td:nth-child(2) div:first-child{font-weight:700}#cv-result-head-table td:nth-child(2) div:nth-child(2){font-size:2.5em;font-weight:700;line-height:1}#cv-result-head-table td:nth-child(2) div:nth-child(3){font-size:.8em}#cv-chain-table{margin-bottom:10px}#cv-chain-table,#turnitin-table{width:100%;border-spacing:0;table-layout:fixed}#turnitin-table{word-wrap:break-word}#source-row-selected{background-color:#cfcfcf!important}#head-settings{text-align:right}#cv-col1{width:15%}#cv-col2{width:55%}#cv-col3{text-align:center}#cv-col3,#cv-col4{width:15%}#cv-inner-col1{width:4%}#cv-inner-col2{width:22%}#cv-inner-col3{width:76%}#cv-result-header{margin:0}#redirected-from{font-size:.75em;font-weight:400}#redirected-from,#result-head-no-sources{font-style:italic}#source-selected{font-weight:700}#cv-cached{position:relative}#cv-cached span{display:none;position:absolute;top:20px;left:-50px;width:500px;padding:5px;z-index:1;background:#f3f3f3;border:1px solid #aaa;color:#000;font-style:normal;text-align:left}.green-box{background-color:#efe;border:1px solid #7f7}.yellow-box{background-color:#ffd;border:1px solid #ee5}.red-box{background-color:#fee;border:1px solid #f77}.gray-box{background-color:#eee;border:1px solid #aaa}.indentable{white-space:pre-wrap}.cv-source-footer{padding-bottom:5px;font-style:italic}.cv-source-footer a{font-style:normal}.cv-chain-detail{padding:0 10px;background-color:#fff;border:1px solid #bbb}.cv-chain-cell{vertical-align:top;word-wrap:break-word}.cv-chain-cell:first-child{padding-right:5px}.cv-chain-cell:last-child{padding-left:5px}.turnitin-table-cell{padding:.5em 0 .3em}.turnitin-table-cell ul{margin:.2em 0 0;line-height:1.4}.cv-text{width:100%}.cv-search{margin-left:0;margin-right:5px}.cv-search~.cv-search{margin-left:20px}.cv-hl{background:#faa}.cv-hl-in{background:#fcc;background:linear-gradient(270deg,#faa,#fff)}.cv-hl-out{background:#fcc;background:linear-gradient(90deg,#faa,#fff)}.mono{font-family:monospace}.light{color:#ccc}.medium{color:#aaa}.source-similarity{font-weight:700}.source-suspect{color:#900}.source-possible{color:#990}.source-novio{color:#090}.source-excluded,.source-skipped{font-style:italic}a:link,a:visited{color:#002bb8;text-decoration:none}a:hover{color:#002bb8}a:active,a:hover{text-decoration:underline}a:active{color:#404}header a:hover,header a:link,header a:visited{color:#54595d}header a:active{color:#333}#cv-cached:active{color:#040}#cv-cached:active,#cv-cached:hover{text-decoration:none}#cv-cached:hover span{display:block}.source-url:link,.source-url:visited{color:#357}.source-url:hover{color:#035}.source-url:active{color:#404} \ No newline at end of file diff --git a/templates/api.mako b/templates/api.mako index 226e6e0..a507137 100644 --- a/templates/api.mako +++ b/templates/api.mako @@ -33,7 +33,7 @@ - API – Earwig's Copyvio Detector + API | Earwig's Copyvio Detector diff --git a/templates/error.mako b/templates/error.mako index 8dd8bc4..f26aea1 100644 --- a/templates/error.mako +++ b/templates/error.mako @@ -1,4 +1,4 @@ -<%include file="/support/header.mako" args="title='Error! – Earwig\'s Copyvio Detector'"/> +<%include file="/support/header.mako" args="title='Error! | Earwig\'s Copyvio Detector'"/>

Error!

An error occurred. If it hasn't been reported (try to check), please file an issue or email me. Include the following information:

diff --git a/templates/index.mako b/templates/index.mako index cbee23d..72699e7 100644 --- a/templates/index.mako +++ b/templates/index.mako @@ -4,7 +4,14 @@ from copyvios.checker import T_POSSIBLE, T_SUSPECT from copyvios.misc import cache %>\ -<%include file="/support/header.mako" args="title='Earwig\'s Copyvio Detector'"/> +<% + titleparts = [] + if query.page: + titleparts.append(query.page.title) + titleparts.append("Earwig's Copyvio Detector") + title = " | ".join(titleparts) +%>\ +<%include file="/support/header.mako" args="title=title"/> <%namespace module="copyvios.highlighter" import="highlight_delta"/>\ <%namespace module="copyvios.misc" import="httpsfix, urlstrip"/>\ % if notice: @@ -49,9 +56,9 @@
% endif %endif -

This tool attempts to detect copyright violations in articles. In search mode, it will check for similar content elsewhere on the web using Google, external links present in the text of the page, or Turnitin (provided by EranBot), depending on which options are selected. In comparison mode, the tool will compare the article to a specific webpage without making additional searches, like the Duplication Detector.

+

This tool attempts to detect copyright violations in articles. In search mode, it will check for similar content elsewhere on the web using Google, external links present in the text of the page, or Turnitin (via EranBot), depending on which options are selected. In comparison mode, the tool will compare the article to a specific webpage without making additional searches, like the Duplication Detector.

Running a full check can take up to a minute if other websites are slow or if the tool is under heavy use. Please be patient. If you get a timeout, wait a moment and refresh the page.

-

Be aware that other websites can copy from Wikipedia, so check the results carefully, especially for older or well-developed articles. Specific websites can be skipped by being added to the excluded URL list.

+

Be aware that other websites can copy from Wikipedia, so check the results carefully, especially for older or well-developed articles. Specific websites can be skipped by adding them to the excluded URL list.

diff --git a/templates/settings.mako b/templates/settings.mako index 8787812..55be5c2 100644 --- a/templates/settings.mako +++ b/templates/settings.mako @@ -3,7 +3,7 @@ from flask import g, request from copyvios.misc import cache %>\ -<%include file="/support/header.mako" args="title='Settings – Earwig\'s Copyvio Detector'"/> +<%include file="/support/header.mako" args="title='Settings | Earwig\'s Copyvio Detector'"/> % if status:

${status}

diff --git a/templates/support/footer.mako b/templates/support/footer.mako index dd8ea23..ae37f6b 100644 --- a/templates/support/footer.mako +++ b/templates/support/footer.mako @@ -2,16 +2,18 @@ from datetime import datetime from flask import g, request %>\ +
- - + + + diff --git a/templates/support/header.mako b/templates/support/header.mako index e92829f..5cc62eb 100644 --- a/templates/support/header.mako +++ b/templates/support/header.mako @@ -5,25 +5,23 @@ %>\ - - - ${title} - - - - - <% selected = g.cookies["CopyviosBackground"].value if "CopyviosBackground" in g.cookies else "list" %>\ - % if selected == "plain": - - % else: - - % endif -
- - - - -
Earwig's Copyvio DetectorSettings
- -
+ + + ${title | h} + + + + +<% selected = g.cookies["CopyviosBackground"].value if "CopyviosBackground" in g.cookies else "list" %>\ +% if selected == "plain": + +% else: + +% endif +