summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJJfutbol <JJfutbol@d4e419ec-0920-11de-bbfd-a7c1bc4c261e>2009-07-09 01:51:25 +0000
committerJJfutbol <JJfutbol@d4e419ec-0920-11de-bbfd-a7c1bc4c261e>2009-07-09 01:51:25 +0000
commit39c3d23a79705caa7441a3cce47ed26ff9d7599b (patch)
treee91d172a992c7af0f38d70b8c4e6c4877f90f9de
parent9b1ba47d51651884f2125eed64f553a23bb103ea (diff)
downloadreadability-simple-39c3d23a79705caa7441a3cce47ed26ff9d7599b.tar.bz2
readability-simple-39c3d23a79705caa7441a3cce47ed26ff9d7599b.zip
- updated css, deployed readability on lab.arc90.com had some changes not included
- added user font size and family styles to print css - added twitter link to index page and styles to css - updated readability-start.js to now use a dynamic lookup of the baseHref - added check for console object, creates blank object if not defined - this way we can hold onto the current debugging for now safely git-svn-id: http://arc90labs-readability.googlecode.com/svn/trunk@60 d4e419ec-0920-11de-bbfd-a7c1bc4c261e
-rwxr-xr-xcss/readability-home.css364
-rwxr-xr-xcss/readability-print.css49
-rwxr-xr-xcss/readability.css395
-rwxr-xr-xindex.htm204
-rwxr-xr-xjs/readability-start.js21
-rwxr-xr-xjs/readability.js65
6 files changed, 559 insertions, 539 deletions
diff --git a/css/readability-home.css b/css/readability-home.css
index ac6fe5c..935d750 100755
--- a/css/readability-home.css
+++ b/css/readability-home.css
@@ -1,186 +1,178 @@
-@charset "utf-8";
-/* CSS Document */
-
-body {
- background: #1E4E74;
- color: #ddd;
-}
-
-img {
-border: none;
-}
-
-#container {
- margin-top: 10px;
- margin-right:auto;
- margin-left:auto;
- width: 980px;
- height: 1125px;
- padding: 10px;
- background: url(../images/readability.png) no-repeat;
- overflow: hidden;
-}
-#footer {
- margin-top: 46px;
- text-align: right;
-}
-#footer * {
- float: right;
-}
-#arcLinks {
- margin-left: 140px;
-}
-#kindlingAd {
- width: 250px;
-}
-#kindlingAd a {
- color: #fff;
- font-size: 12px;
- text-decoration: none;
- display: block;
-}
-#kindlingAd p {
- margin: 4px 40px 0 0;
-}
-
-a.www-link {
- margin: 0 8px 0 30px;
-}
-
-#arc90 {
- display: block;
- text-align: right;
- margin-top: 60px;
-}
-
-#settings {
- margin-top: 193px;
- padding: 0 1.5em;
- display: block;
- width: 900px;
- height: 160px;
-}
-
-div.settings-box, div#bookmarklet {
- float: left;
-}
-div#bookmarklet {
- width: 200px;
- margin-top: 24px;
- margin-left: 140px;
- text-align: center;
-}
-
-div#style {
- width: 175px;
- margin-left: 20px;
-}
-div#size {
- width: 165px;
-}
-div#margin {
- width: 160px;
-}
-
-.settings-box label {
- margin-left: .5em;
- cursor: pointer;
-}
-.settings-box p {
- margin: .1em 0;
-}
-#readHiddenContent {
- display: none;
-}
-#example {
- display: block;
- margin-left: 30px;
- margin-top: 24px;
- width: 888px;
- height: 454px;
- left: 30px;
- padding: 1em 2em;
- overflow: auto;
-}
-#articleContent {
- text-align: left;
- line-height: 1.4em;
- margin: 1em auto;
-}
-/* ---------------- USER-CONFIGURABLE STYLING --------------------- */
-/* ---------------- USER-CONFIGURABLE STYLING --------------------- */
-/* Size options */
-.size-small {
- font-size: 12px;
-}
-.size-medium {
- font-size: 18px;
-}
-.size-large {
- font-size: 26px;
-}
-.size-x-large {
- font-size: 34px;
-}
-
-/* Style options */
-.style-novel {
- font-family:"Palatino Linotype", "Book Antiqua", Palatino, serif;
- background: #F4F3DB;
- color: #222;
-}
-
-.style-ebook {
- font-family:Arial, Helvetica, sans-serif;
- background: #eee;
- color: #333;
-}
-.style-ebook h1 {
- font-family: "Arial Black", Gadget, sans-serif;
- font-weight: normal;
-}
-
-.style-newspaper {
- font-family:"Times New Roman", Times, serif;
- background: #F7F7F7;
- color: #222;
-}
-.style-newspaper h1 {
- text-transform:capitalize;
- font-family: Georgia, "Times New Roman", Times, serif;
-}
-
-.style-terminal {
- font-family: "Lucida Console", Monaco, monospace;
- background: #1D4E2C;
- color: #C6FFC6;
-}
-
-/* Margin Options */
-.margin-x-wide {
- width: 35%;
-}
-.margin-wide {
- width: 55%;
-}
-.margin-medium {
- width: 75%;
-}
-.margin-narrow {
- width: 95%;
-}
-/* ---------------- USER-CONFIGURABLE STYLING --------------------- */
-/* ---------------- USER-CONFIGURABLE STYLING --------------------- */
-
-
-
-/* LOCK IN H1 SIZING */
-#articleContent h1 {
- font-size: 1.2em !important;
- display: block;
- text-transform:capitalize;
-}
-#articleContent {
- line-height: 1.4em;
-}
-
+@charset "utf-8";
+
+body {
+ background: #1E4E74;
+ color: #ddd;
+}
+img {
+ border: none;
+}
+#container {
+ background: url(../images/readability.png) no-repeat;
+ height: 1125px;
+ margin: 10px auto 0 auto;
+ overflow: hidden;
+ padding: 10px;
+ width: 980px;
+}
+#footer {
+ margin-top: 46px;
+ text-align: right;
+}
+#footer * {
+ float: right;
+}
+#arcLinks {
+ margin-left: 140px;
+}
+#kindlingAd {
+ width: 250px;
+}
+#kindlingAd a {
+ color: #fff;
+ display: block;
+ font-size: 12px;
+ text-decoration: none;
+}
+#kindlingAd p {
+ margin: 4px 40px 0 0;
+}
+a.www-link {
+ margin: 0 8px 0 30px;
+}
+#arc90 {
+ display: block;
+ margin-top: 60px;
+ text-align: right;
+}
+#arc90 img {
+ margin-right: 10px;
+}
+#arc90 a.twitter {
+ border-bottom: 1px solid #fff;
+ color: #ddd;
+ font-size: .8em;
+ font-weight: bolder;
+ margin-top: 10px;
+ text-decoration: none;
+}
+#settings {
+ display: block;
+ height: 160px;
+ margin-top: 162px;
+ padding: 0 1.5em;
+ width: 900px;
+}
+div.settings-box, div#bookmarklet {
+ float: left;
+}
+div#bookmarklet {
+ margin-left: 140px;
+ margin-top: 24px;
+ text-align: center;
+ width: 200px;
+}
+div#style {
+ margin-left: 20px;
+ width: 175px;
+}
+div#size {
+ width: 165px;
+}
+div#margin {
+ width: 160px;
+}
+.settings-box label {
+ cursor: pointer;
+ margin-left: .5em;
+}
+.settings-box p {
+ margin: .1em 0;
+}
+#readHiddenContent {
+ display: none;
+}
+#example {
+ display: block;
+ height: 455px;
+ left: 30px;
+ margin-left: 30px;
+ margin-top: 28px;
+ overflow: auto;
+ padding: 1em 2em;
+ width: 888px;
+}
+#articleContent {
+ line-height: 1.4em;
+ margin: 1em auto;
+}
+/* LOCK IN H1 SIZING */
+#articleContent h1 {
+ display: block;
+ font-size: 1.2em !important;
+ text-transform: capitalize;
+}
+
+
+/* ---------------- USER-CONFIGURABLE STYLING --------------------- */
+
+/* ------ Size Options ------- */
+
+.size-small {
+ font-size: 12px;
+}
+.size-medium {
+ font-size: 18px;
+}
+.size-large {
+ font-size: 26px;
+}
+.size-x-large {
+ font-size: 34px;
+}
+
+/* ------ Style Options ------- */
+
+.style-novel {
+ background: #F4F3DB;
+ color: #222;
+ font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
+}
+.style-ebook {
+ background: #EEE;
+ color: #333;
+ font-family: Arial, Helvetica, sans-serif;
+}
+.style-ebook h1 {
+ font-family: "Arial Black", Gadget, sans-serif;
+ font-weight: normal;
+}
+.style-newspaper {
+ background: #F7F7F7;
+ color: #222;
+ font-family: "Times New Roman", Times, serif;
+}
+.style-newspaper h1 {
+ font-family: Georgia, "Times New Roman", Times, serif;
+ text-transform: capitalize;
+}
+.style-terminal {
+ background: #1D4E2C;
+ color: #C6FFC6;
+ font-family: "Lucida Console", Monaco, monospace;
+}
+
+/* ------ Margin Options ------- */
+
+.margin-x-wide {
+ width: 35%;
+}
+.margin-wide {
+ width: 55%;
+}
+.margin-medium {
+ width: 75%;
+}
+.margin-narrow {
+ width: 95%;
+} \ No newline at end of file
diff --git a/css/readability-print.css b/css/readability-print.css
index a4c8cb3..855e827 100755
--- a/css/readability-print.css
+++ b/css/readability-print.css
@@ -1,7 +1,44 @@
-#readInner {
- width: 100% !important;
- font-size: 12pt;
-}
-#readTools {
- display: none;
+#readInner {
+ width: 100% !important;
+}
+#readTools {
+ display: none;
+}
+
+/* ------ Size Options ------- */
+
+.size-small {
+ font-size: 12px;
+}
+.size-medium {
+ font-size: 18px;
+}
+.size-large {
+ font-size: 26px;
+}
+.size-x-large {
+ font-size: 34px;
+}
+
+/* ------ Style Options ------- */
+
+.style-novel {
+ font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
+}
+.style-ebook {
+ font-family: Arial, Helvetica, sans-serif;
+}
+.style-ebook h1 {
+ font-family: "Arial Black", Gadget, sans-serif;
+ font-weight: normal;
+}
+.style-newspaper {
+ font-family: "Times New Roman", Times, serif;
+}
+.style-newspaper h1 {
+ font-family: Georgia, "Times New Roman", Times, serif;
+ text-transform: capitalize;
+}
+.style-terminal {
+ font-family: "Lucida Console", Monaco, monospace;
} \ No newline at end of file
diff --git a/css/readability.css b/css/readability.css
index 0d3367e..d990766 100755
--- a/css/readability.css
+++ b/css/readability.css
@@ -1,206 +1,191 @@
-@charset "utf-8";
-/* CSS Document */
-#readOverlay {
- display: block;
- left: 0;
- position: absolute;
- top: 0;
- width: 100%;
-}
-#readInner {
- line-height: 1.4em;
- margin: 1em auto;
- max-width: 800px;
- text-align: left;
- width: 800px;
-}
-#readInner a {
- color: blue;
- text-decoration: underline;
-}
-#readInner pre {
- white-space: pre-wrap;
-}
-#readOverlay #readInner pre.normalPre {
- font-size: 14px;
- line-height: 1.4em;
- overflow: auto;
- white-space: pre-wrap;
-}
-/* custom - PRE content (will revisit)
-#readInner code, #readInner pre {
- font-family: "Courier New", Courier, monospace;
-}
-#readInner pre {
- background-color: #FFF;
- border: #000 1px inset;
- font-size: 110%;
- max-height: 250px;
- overflow: auto;
- margin: 0;
- padding: 6px 0;
- overflow-x: auto;
- width: 100%;
-}
-*/
-#readInner * {
- background: none;
- border: none;
- margin-bottom: 16px;
- text-align: left;
-}
-#readInner h1 {
- border-bottom: 1px solid #333;
- display: block;
- font-size: 1.2em;
- width: 100%;
-}
-#readInner blockquote {
- margin-left: 3em;
- margin-right: 3em;
-}
-#readFooter {
- border-top: 1px solid #333;
-}
-#readFooter, #readFooter div, #readFooter a {
- margin: 0;
- padding: 0;
- text-align: center;
-}
-#readability-version {
- font-size: 12px;
- font-weight: bold;
-}
-
-/* Article Tools */
-#readTools {
- height: 150px;
- left: 10px;
- position: fixed;
- top: 10px;
- width: 34px;
- z-index: 100;
-}
-#readTools a {
- display: block;
- filter: alpha(opacity=40);
- height: 34px;
- margin-bottom: 8px;
- opacity: .4;
- overflow: hidden;
- text-indent: -99999px;
-}
-
-#email-page {
- background: url(http://lab.arc90.com/experiments/readability/images/read-email.png) no-repeat left top;
-}
-#reload-page {
- background: url(http://lab.arc90.com/experiments/readability/images/read-refresh.png) no-repeat left top;
-}
-#print-page {
- background: url(http://lab.arc90.com/experiments/readability/images/read-print.png) no-repeat left top;
-}
-#readTools a:hover {
- filter: alpha(opacity=100);
- opacity: 1;
-}
-
-
-/* ---------------- USER-CONFIGURABLE STYLING --------------------- */
-
-/* ------ Size Options ------- */
-
-.size-small {
- font-size: 12px;
-}
-.size-medium {
- font-size: 18px;
-}
-.size-large {
- font-size: 26px;
-}
-.size-x-large {
- font-size: 34px;
-}
-
-/* ------ Style Options ------- */
-
-.style-novel {
- background: #F4F3DB;
- color: #222;
- font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
-}
-.style-ebook {
- background: #EEE;
- color: #333;
- font-family: Arial, Helvetica, sans-serif;
-}
-.style-ebook h1 {
- font-family: "Arial Black", Gadget, sans-serif;
- font-weight: normal;
-}
-.style-newspaper {
- background: #FFF;
- color: #222;
- font-family: "Times New Roman", Times, serif;
-}
-.style-newspaper h1 {
- font-family: Georgia, "Times New Roman", Times, serif;
- text-transform: capitalize;
-}
-.style-terminal {
- background: #1D4E2C;
- color: #C6FFC6;
- font-family: "Lucida Console", Monaco, monospace;
-}
-
-/* ------ Margin Options ------- */
-
-.margin-x-wide {
- width: 35%;
-}
-.margin-wide {
- width: 55%;
-}
-.margin-medium {
- width: 75%;
-}
-.margin-narrow {
- width: 95%;
-}
-
-/* ---------------- END USER-CONFIGURABLE STYLING --------------------- */
-
-
-/* ---------------- DEBUG --------------------- */
-
-.bug-green {
- background: #BBF9B0;
- border: 4px solid green;
-}
-.bug-red {
- background: red;
-}
-.bug-yellow {
- background: #FFFF8E;
-}
-.bug-blue {
- background: #BFDFFF;
-}
-
-
-/* ---------------- EMAIL POP UP --------------------- */
-
-#email-container {
- background-color: #fff;
- border: solid 3px #666;
- height: 490px;
- left: 50%;
- margin: 0 0 0 -240px;
- overflow: hidden;
- padding: 0;
- position: fixed;
- top: 60px;
- width: 500px;
- z-index: 100 !important;
+@charset "utf-8";
+
+#readOverlay {
+ display: block;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+#readInner {
+ line-height: 1.4em;
+ margin: 1em auto;
+ max-width: 800px;
+ text-align: left;
+ width: 800px;
+}
+#readInner a {
+ color: blue;
+ text-decoration: underline;
+}
+/* custom - PRE content (will revisit) */
+/*
+#readInner pre {
+ white-space: pre-wrap;
+}
+#readOverlay #readInner pre.normalPre {
+ font-size: 14px;
+ line-height: 1.4em;
+ overflow: auto;
+ white-space: pre-wrap;
+}
+#readInner code, #readInner pre {
+ font-family: "Courier New", Courier, monospace;
+}
+#readInner pre {
+ background-color: #FFF;
+ border: #000 1px inset;
+ font-size: 110%;
+ max-height: 250px;
+ overflow: auto;
+ margin: 0;
+ padding: 6px 0;
+ overflow-x: auto;
+ width: 100%;
+}
+*/
+#readInner * {
+ background: none;
+ border: none;
+ margin-bottom: 16px;
+ text-align: left;
+}
+#readInner h1 {
+ border-bottom: 1px solid #333;
+ display: block;
+ font-size: 1.2em;
+ width: 100%;
+}
+#readInner p img {
+ float: left;
+ margin-right: 12px;
+ margin-bottom: 12px;
+}
+#readInner blockquote {
+ margin-left: 3em;
+ margin-right: 3em;
+}
+/* ToolBar */
+#readTools {
+ height: 150px;
+ left: 10px;
+ position: fixed;
+ top: 10px;
+ width: 34px;
+ z-index: 100;
+}
+#readTools a {
+ display: block;
+ filter: alpha(opacity=40);
+ height: 34px;
+ margin-bottom: 8px;
+ opacity: .4;
+ overflow: hidden;
+ text-indent: -99999px;
+}
+#email-page {
+ background: url(http://lab.arc90.com/experiments/readability/images/read-email.png) no-repeat left top;
+}
+#reload-page {
+ background: url(http://lab.arc90.com/experiments/readability/images/read-refresh.png) no-repeat left top;
+}
+#print-page {
+ background: url(http://lab.arc90.com/experiments/readability/images/read-print.png) no-repeat left top;
+}
+#readTools a:hover {
+ filter: alpha(opacity=100);
+ opacity: 1;
+}
+/* Footer */
+#readFooter {
+ border-top: 1px solid #333;
+}
+#readFooter, #readFooter div, #readFooter a {
+ margin: 0;
+ padding: 0;
+ text-align: center;
+}
+#readability-version {
+ font-size: 12px;
+ font-weight: bold;
+}
+
+
+/* ---------------- USER-CONFIGURABLE STYLING --------------------- */
+
+/* ------ Size Options ------- */
+
+.size-small {
+ font-size: 12px;
+}
+.size-medium {
+ font-size: 18px;
+}
+.size-large {
+ font-size: 26px;
+}
+.size-x-large {
+ font-size: 34px;
+}
+
+/* ------ Style Options ------- */
+
+.style-novel {
+ background: #F4F3DB;
+ color: #222;
+ font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
+}
+.style-ebook {
+ background: #EEE;
+ color: #333;
+ font-family: Arial, Helvetica, sans-serif;
+}
+.style-ebook h1 {
+ font-family: "Arial Black", Gadget, sans-serif;
+ font-weight: normal;
+}
+.style-newspaper {
+ background: #FFF;
+ color: #222;
+ font-family: "Times New Roman", Times, serif;
+}
+.style-newspaper h1 {
+ font-family: Georgia, "Times New Roman", Times, serif;
+ text-transform: capitalize;
+}
+.style-terminal {
+ background: #1D4E2C;
+ color: #C6FFC6;
+ font-family: "Lucida Console", Monaco, monospace;
+}
+
+/* ------ Margin Options ------- */
+
+.margin-x-wide {
+ width: 35%;
+}
+.margin-wide {
+ width: 55%;
+}
+.margin-medium {
+ width: 75%;
+}
+.margin-narrow {
+ width: 95%;
+}
+
+/* ---------------- EMAIL POP UP --------------------- */
+
+#email-container {
+ background-color: #fff;
+ border: solid 3px #666;
+ height: 490px;
+ left: 50%;
+ margin: 0 0 0 -240px;
+ overflow: hidden;
+ padding: 0;
+ position: fixed;
+ top: 60px;
+ width: 500px;
+ z-index: 100 !important;
} \ No newline at end of file
diff --git a/index.htm b/index.htm
index ae258f1..95aed0b 100755
--- a/index.htm
+++ b/index.htm
@@ -1,91 +1,113 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Readability - An Arc90 Lab Experiment</title>
- <link rel="stylesheet" href="css/readability-home.css" type="text/css" media="screen" />
- <script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
- <script type="text/javascript" src="js/readability-start.js"></script>
- <script type="text/javascript">
- languagesAvailable = ['es'];
- language = (navigator.language || navigator.userLanguage);
- languageCode = language.replace(/-.*/,'').toLowerCase();
- if(languageCode != 'en')
- {
- languageIsAvailable = false;
- for(l in languagesAvailable)
- {
- if(languagesAvailable[l] == languageCode)
- {
- languageIsAvailable = true;
- break;
- }
- }
- if(languageIsAvailable)
- {
- window.location = "http://lab.arc90.com/experiments/readability/" + languageCode;
- }
- }
- </script>
-</head>
-
-<body>
- <div id="readHiddenContent">
- <h1>Readability</h1>
- <p>READABILITY is a simple tool that makes reading on the Web more enjoyable by removing the clutter around what you’re reading. Follow the steps below to install READABILITY in your Web browser.</p>
- </div>
- <div id="container">
- <div id="arc90">
- <a href="http://www.arc90.com"><img src="images/arc90-logo-large.png" alt="Arc90" /></a>
- </div>
- <form name="applySettings">
- <div id="settings">
- <div class="settings-box" id="style">
- <p><input type="radio" name="style" value="style-newspaper" id="newspaper" checked="checked" /><label for="newspaper">Newspaper</label></p>
- <p><input type="radio" name="style" value="style-novel" id="novel"/><label for="novel">Novel</label></p>
- <p><input type="radio" name="style" value="style-ebook" id="ebook" /><label for="ebook">eBook</label></p>
- <p><input type="radio" name="style" value="style-terminal" id="terminal" /><label for="terminal">Terminal</label></p>
- </div>
- <div class="settings-box" id="size">
- <p><input type="radio" name="size" value="size-small" id="small" /><label for="small">Small</label></p>
- <p><input type="radio" name="size" value="size-medium" id="medium" /><label for="medium">Medium</label></p>
- <p><input type="radio" name="size" value="size-large" id="large" checked="checked"/><label for="large">Large</label></p>
- <p><input type="radio" name="size" value="size-x-large" id="x-large" /><label for="x-large">Extra Large</label></p>
- </div>
- <div class="settings-box" id="margin">
- <p><input type="radio" name="margin" value="margin-narrow" id="narrow" /><label for="narrow">Narrow</label></p>
- <p><input type="radio" name="margin" value="margin-medium" id="med" /><label for="med">Medium</label></p>
- <p><input type="radio" name="margin" value="margin-wide" id="wide" checked="checked" /><label for="wide">Wide</label></p>
- <p><input type="radio" name="margin" value="margin-x-wide" id="x-wide" /><label for="x-wide">Extra Wide</label></p>
- </div>
- <div id="bookmarklet">
- <a id="bookmarkletLink"><img src="images/readability-drag.png" alt="Readability" /></a>
- </div>
- </div>
- </form>
- <div id="example" class="style-newspaper">
- <div id="articleContent" class="margin-wide size-large">
- <h1>Compelling Content Worth Reading</h1>
- <hr/>
- <p>One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.</p>
- <p> The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me? " he thought. It wasn't a dream.</p>
- <p> His room, a proper human room although a little too small, lay peacefully between its four familiar walls. A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in a nice, gilded frame.</p>
- <p> It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the dull weather. Drops of rain could be heard hitting the pane, which made him feel quite sad.</p>
- <p> "How about if I sleep a little bit longer and forget all this nonsense", he thought, but that was something he was unable to do because he was used to sleeping on his right, and in his present state couldn't get into that position. However hard he threw himself onto his right, he always rolled back to where he was.</p>
- <p> He must have tried it a hundred times, shut his eyes so that he wouldn't have to look at the floundering legs, and only stopped when he began to feel a mild, dull pain there that he had never felt before. "Oh, God", he thought, "what a strenuous career it is that I've chosen! Travelling day in and day out. Doing business like this takes much more effort than doing your own business at home, and on top of that there's the curse of travelling, worries about making train connections, bad and irregular food, contact with different people all the time so that you can never get to know anyone or become friendly with them. It can all go to Hell! " He felt a slight itch </p> </div>
- </div>
- <div id="footer">
- <div id="arcLinks">
- <a href="http://www.arc90.com" class="www-link"><img src="images/arc90-logo-small.png" alt="Arc90" /></a>
- <a href="http://lab.arc90.com" class="lab-link"><img src="images/arc90lab-logo-small.png" alt="Arc90 Lab" /></a>
- </div>
- <div id="kindlingAd">
- <a href="http://www.kindlingapp.com">
- <img src="images/kindling-logo-small.gif" alt="Kindling - Idea Management &amp; Collaboration" />
- <p>Idea Management &amp; Collaboration</p>
- </a>
- </div>
- </div>
- </div>
-</body>
-
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Readability - An Arc90 Lab Experiment</title>
+<link rel="stylesheet" href="css/readability-home.css" type="text/css" media="screen" />
+<script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
+<script type="text/javascript" src="js/readability-start.js"></script>
+<script type="text/javascript">
+ var languagesAvailable = ['es'];
+ var language = (navigator.language || navigator.userLanguage);
+ var languageCode = language.replace(/-.*/, '').toLowerCase();
+
+ // since the default language is English, only other cases are handled
+ if (languageCode != 'en')
+ {
+ var languageIsAvailable = false;
+
+ // find language to determine if its available
+ for (l in languagesAvailable)
+ {
+ // available language found!
+ if (languagesAvailable[l] == languageCode)
+ {
+ languageIsAvailable = true;
+ break;
+ }
+ }
+
+ // redirect user to language specific page
+ if (languageIsAvailable)
+ {
+ window.location = window.location.toString().match(/.*\//) + languageCode;
+ }
+ }
+</script>
+</head>
+
+<body>
+
+ <div id="readHiddenContent">
+
+ <h1>Readability</h1>
+
+ <p>READABILITY is a simple tool that makes reading on the Web more enjoyable by removing the clutter around what you’re reading. Follow the steps below to install READABILITY in your Web browser.</p>
+
+ </div>
+
+ <div id="container">
+
+ <div id="arc90">
+ <a href="http://www.arc90.com"><img src="images/arc90-logo-large.png" alt="Arc90" /></a>
+ <p><a href="http://twitter.com/arc90" class="twitter">Follow us on Twitter &raquo;</a></p>
+ </div>
+
+ <form name="applySettings">
+ <div id="settings">
+ <div class="settings-box" id="style">
+ <p><input type="radio" name="style" value="style-newspaper" id="newspaper" checked="checked" /><label for="newspaper">Newspaper</label></p>
+ <p><input type="radio" name="style" value="style-novel" id="novel"/><label for="novel">Novel</label></p>
+ <p><input type="radio" name="style" value="style-ebook" id="ebook" /><label for="ebook">eBook</label></p>
+ <p><input type="radio" name="style" value="style-terminal" id="terminal" /><label for="terminal">Terminal</label></p>
+ </div>
+ <div class="settings-box" id="size">
+ <p><input type="radio" name="size" value="size-small" id="small" /><label for="small">Small</label></p>
+ <p><input type="radio" name="size" value="size-medium" id="medium" /><label for="medium">Medium</label></p>
+ <p><input type="radio" name="size" value="size-large" id="large" checked="checked"/><label for="large">Large</label></p>
+ <p><input type="radio" name="size" value="size-x-large" id="x-large" /><label for="x-large">Extra Large</label></p>
+ </div>
+ <div class="settings-box" id="margin">
+ <p><input type="radio" name="margin" value="margin-narrow" id="narrow" /><label for="narrow">Narrow</label></p>
+ <p><input type="radio" name="margin" value="margin-medium" id="med" /><label for="med">Medium</label></p>
+ <p><input type="radio" name="margin" value="margin-wide" id="wide" checked="checked" /><label for="wide">Wide</label></p>
+ <p><input type="radio" name="margin" value="margin-x-wide" id="x-wide" /><label for="x-wide">Extra Wide</label></p>
+ </div>
+ <div id="bookmarklet">
+ <a id="bookmarkletLink"><img src="images/readability-drag.png" alt="Readability Beta" /></a>
+ </div>
+ </div>
+ </form>
+
+ <div id="example" class="style-newspaper">
+ <div id="articleContent" class="margin-wide size-large">
+ <h1>Compelling Content Worth Reading</h1>
+ <hr/>
+ <p>One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.</p>
+ <p> The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me? " he thought. It wasn't a dream.</p>
+ <p> His room, a proper human room although a little too small, lay peacefully between its four familiar walls. A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in a nice, gilded frame.</p>
+ <p> It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the dull weather. Drops of rain could be heard hitting the pane, which made him feel quite sad.</p>
+ <p> "How about if I sleep a little bit longer and forget all this nonsense", he thought, but that was something he was unable to do because he was used to sleeping on his right, and in his present state couldn't get into that position. However hard he threw himself onto his right, he always rolled back to where he was.</p>
+ <p> He must have tried it a hundred times, shut his eyes so that he wouldn't have to look at the floundering legs, and only stopped when he began to feel a mild, dull pain there that he had never felt before. "Oh, God", he thought, "what a strenuous career it is that I've chosen! Travelling day in and day out. Doing business like this takes much more effort than doing your own business at home, and on top of that there's the curse of travelling, worries about making train connections, bad and irregular food, contact with different people all the time so that you can never get to know anyone or become friendly with them. It can all go to Hell! " He felt a slight itch </p>
+ </div>
+ </div>
+
+ <div id="footer">
+
+ <div id="arcLinks">
+ <a href="http://www.arc90.com" class="www-link"><img src="images/arc90-logo-small.png" alt="Arc90" /></a>
+ <a href="http://lab.arc90.com" class="lab-link"><img src="images/arc90lab-logo-small.png" alt="Arc90 Lab" /></a>
+ </div>
+
+ <div id="kindlingAd">
+ <a href="http://www.kindlingapp.com">
+ <img src="images/kindling-logo-small.gif" alt="Kindling - Idea Management &amp; Collaboration" />
+ <p>Idea Management &amp; Collaboration</p>
+ </a>
+ </div>
+
+ </div>
+
+ </div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/js/readability-start.js b/js/readability-start.js
index 4263ab2..3d6d654 100755
--- a/js/readability-start.js
+++ b/js/readability-start.js
@@ -1,25 +1,24 @@
-var defaultMargin = "margin-wide";
-var defaultSize = "size-large";
-var defaultStyle = "style-newspaper";
+var margin = "margin-wide";
+var size = "size-large";
+var style = "style-newspaper";
var baseHref = window.location.toString().match(/.*\//);
var linkStart = "javascript:(function(){";
-var linkEnd = "var elements=document.getElementsByTagName('HEAD');var headElement;if(elements.length>=1){headElement=elements[0];}else{headElement=document.createElement('HEAD');document.documentElement.appendChild(headElement);}_readability_script=document.createElement('SCRIPT');_readability_script.type='text/javascript';_readability_script.src='" + basehref + "js/readability.js?x='+(Math.random());headElement.insertBefore(_readability_script,headElement.firstChild);_readability_css=document.createElement('LINK');_readability_css.rel='stylesheet';_readability_css.href='" + basehref + "css/readability.css';_readability_css.type='text/css';headElement.insertBefore(_readability_css,headElement.firstChild);_readability_print_css=document.createElement('LINK');_readability_print_css.rel='stylesheet';_readability_print_css.href='" + basehref + "css/readability-print.css';_readability_print_css.media='print';_readability_print_css.type='text/css';headElement.insertBefore(_readability_print_css,headElement.firstChild);})();";
+var linkEnd = "var elements=document.getElementsByTagName('HEAD');var headElement;if(elements.length>=1){headElement=elements[0];}else{headElement=document.createElement('HEAD');document.documentElement.appendChild(headElement);}_readability_script=document.createElement('SCRIPT');_readability_script.type='text/javascript';_readability_script.src='" + baseHref + "js/readability.js?x='+Math.random();headElement.insertBefore(_readability_script,headElement.firstChild);_readability_css=document.createElement('LINK');_readability_css.rel='stylesheet';_readability_css.href='" + baseHref + "css/readability.css';_readability_css.type='text/css';headElement.insertBefore(_readability_css,headElement.firstChild);_readability_print_css=document.createElement('LINK');_readability_print_css.rel='stylesheet';_readability_print_css.href='" + baseHref + "css/readability-print.css';_readability_print_css.media='print';_readability_print_css.type='text/css';headElement.insertBefore(_readability_print_css,headElement.firstChild);})();";
$(document).ready(function()
{
- // load example with defaults
- applyChange("margin", defaultMargin);
- applyChange("size", defaultSize);
- applyChange("style", defaultStyle);
+ // load example with defaults at first
+ applyChange("margin", margin);
+ applyChange("size", size);
+ applyChange("style", style);
// helper that takes the user input and customizes the bookmarklet source
function applyChange(property, value)
{
var example = document.getElementById("example");
var article = document.getElementById("articleContent");
- var size, style, margin;
// determine the property that is being changed
switch (property)
@@ -49,10 +48,6 @@ $(document).ready(function()
applyChange(this.name, this.value);
});
- $("#settings input").bind("click", function(){
- applyChange(this.name, this.value);
- });
-
// the user needs to drag the bookmarklet link to their bookmarks bar, but
// if they don't notify them what to do (unique case for IE)
$("#bookmarkletLink").bind("click", function(){
diff --git a/js/readability.js b/js/readability.js
index 5619c38..ce8fb52 100755
--- a/js/readability.js
+++ b/js/readability.js
@@ -1,8 +1,19 @@
-var readabilityVersion = "v1.0.0.1";
+var readabilityVersion = "1.0.0.1";
var emailSrc = "http://proto1.arc90.com/readability/email.php";
var highestScore = -1;
var malformedContent = false;
+// for now we want to hold on to our debugging, but if a browser doesn't
+// support it, we'll create a console.log() method that does nothing
+if (typeof console == 'undefined')
+{
+ var console = {};
+
+ console.log = function(msg) {
+ return;
+ };
+}
+
(function(){
// some sites use plugins (jCarousel) that when Readability removes scripts
// or does something funky it causes an alert to appear every few seconds,
@@ -141,36 +152,8 @@ function determineContentScore(score, parent, element)
function parseContent() {
- // replace all doubled-up <BR> tags with <P> tags, and remove fonts
- //var pattern = new RegExp("<br/?>[ \r\n\s]*<br/?>", "gi");
- //document.body.innerHTML = document.body.innerHTML.replace(pattern, "</p><p>").replace(/<\/?font[^>]*>/gi, "");
- document.body.innerHTML = document.body.innerHTML.replace(/<br\/?>\s*<br\/?>/gi, "<p />").replace(/<\/?font[^>]*>/gi, "");
-
- /*
-
- // was part of the PRE based content parsing but tweaking below
- // could resolve the bad regex above replacing double br tags
- // with an empty paragraph
-
- var html = document.body.innerHTML;
- var firstTime = true;
-
- while (html.indexOf('\n\n') >= 0)
- {
- if (firstTime)
- {
- html = html.replace('\n\n', '<p>'); // first item
- firstTime = false;
- }
-
- if (html.indexOf('\n\n') == html.lastIndexOf('\n\n'))
- html = html.replace('\n\n', '</p>'); // last item
- else
- html = html.replace('\n\n', '</p><p>'); // every item in between
- }
-
- document.body.innerHTML = html;
- */
+ // replace all doubled-up <BR> tags with <P> tags, and remove inline fonts
+ document.body.innerHTML = document.body.innerHTML.replace(/<br[^>]*>\s*<br[^>]*>/gi, "<p />").replace(/<\/?font[^>]*>/gi, "");
var articleContent = document.createElement("DIV");
var paragraphs = document.getElementsByTagName("P");
@@ -615,7 +598,8 @@ function normalize(text)
*/
function removeBreaks(element)
{
- element.innerHTML = element.innerHTML.replace(/(<br[^>]*\/?>(\s|&nbsp;?)*){1,}/gi, "<br />");
+ // FIXME: the regex doesn't seem to pick up consecutive br tags, need to revisit
+ element.innerHTML = element.innerHTML.replace(/((<br[^>]*>)[\s]*(<br[^>]*>)){1,}/gi, "<br />");
}
/**
@@ -681,15 +665,16 @@ function removeStyles()
{
var style = styleTags[j];
- // TODO: need to verify that clearing out innerText works in IE
- // might want to consider removing from parent
if (style.textContent)
{
style.textContent = "";
}
else
{
- style.innerText = "";
+ // most browsers support textContent but IE has its own way but it
+ // seems that Firefox supports both, check link for last example
+ // http://www.phpied.com/the-star-hack-in-ie8-and-dynamic-stylesheets/
+ style.styleSheet.cssText = "";
}
}
}
@@ -701,12 +686,16 @@ function removeStylesheets()
{
// TODO: need to do more research, not sure if disabling is enough
// for cross browser compatibility, might consider removal via parent
- // just as done in the removeScripts method
+ // just as done in the removeScripts method, but will need to retrieve
+ // all LINK tags and make sure rel attr is "stylesheet" or that its
+ // type attr is "text/css"
for (var k = 0; k < document.styleSheets.length; k++)
{
- if (document.styleSheets[k].href != null && document.styleSheets[k].href.lastIndexOf("readability") == -1)
+ var styleSheet = document.styleSheets[k];
+
+ if (styleSheet.href != null && styleSheet.href.lastIndexOf("readability") == -1)
{
- document.styleSheets[k].disabled = true;
+ styleSheet.disabled = true;
}
}
}