diff --git a/PocketSharp.Tests/ReadTests.cs b/PocketSharp.Tests/ReadTests.cs
index 25090b4..a67da09 100644
--- a/PocketSharp.Tests/ReadTests.cs
+++ b/PocketSharp.Tests/ReadTests.cs
@@ -16,7 +16,7 @@ namespace PocketSharp.Tests
{
PocketReader reader = new PocketReader();
- string result = await reader.Read(new Uri("https://github.com/ceee/PocketSharp"));
+ string result = await reader.Read(new Uri("http://frontendplay.com/story/4/http-caching-demystified-part-2-implementation"));
Assert.True(result.Length > 0);
}
diff --git a/PocketSharp/PocketReader.cs b/PocketSharp/PocketReader.cs
index 13a6d38..f846ee7 100644
--- a/PocketSharp/PocketReader.cs
+++ b/PocketSharp/PocketReader.cs
@@ -72,6 +72,7 @@ namespace PocketSharp
Url = uri.ToString(),
DomSerializationParams = new DomSerializationParams()
{
+ BodyOnly = true,
PrettyPrint = true,
DontIncludeContentTypeMetaElement = true,
DontIncludeMobileSpecificMetaElements = true,
@@ -82,7 +83,7 @@ namespace PocketSharp
// process/transcode HTML
TranscodingResult transcodingResult = transcoder.Transcode(transcodingInput);
-
+
return transcodingResult.ExtractedContent;
}
diff --git a/PortablePorts/NReadability/DomSerializationParams.cs b/PortablePorts/NReadability/DomSerializationParams.cs
index f1acd1c..87d8a26 100644
--- a/PortablePorts/NReadability/DomSerializationParams.cs
+++ b/PortablePorts/NReadability/DomSerializationParams.cs
@@ -43,6 +43,11 @@ namespace NReadability
///
public bool DontIncludeGeneratorMetaElement { get; set; }
+ ///
+ /// Render complete Website or only the Body
+ ///
+ public bool BodyOnly { get; set; }
+
#endregion
}
}
diff --git a/PortablePorts/NReadability/SgmlDomSerializer.cs b/PortablePorts/NReadability/SgmlDomSerializer.cs
index eff512c..10308e7 100644
--- a/PortablePorts/NReadability/SgmlDomSerializer.cs
+++ b/PortablePorts/NReadability/SgmlDomSerializer.cs
@@ -36,7 +36,15 @@ namespace NReadability
///
/// System.Xml.Linq.XDocument instance containing the DOM to be serialized.
/// Contains parameters that modify the behaviour of the output serialization.
- /// Serialized representation of the DOM.
+ /// if set to true [returns body only].
+ ///
+ /// Serialized representation of the DOM.
+ ///
+ ///
+ /// The document must have a root.
+ /// or
+ /// The document's root must be an html element.
+ ///
public string SerializeDocument(XDocument document, DomSerializationParams domSerializationParams)
{
if (!domSerializationParams.DontIncludeContentTypeMetaElement
@@ -74,6 +82,16 @@ namespace NReadability
result = "\r\n" + result;
}
+ if (domSerializationParams.BodyOnly && document.Root != null)
+ {
+ var body = document.Root.GetChildrenByTagName("body").FirstOrDefault();
+
+ if (body != null)
+ {
+ result = body.GetInnerHtml();
+ }
+ }
+
return result;
}
diff --git a/PortablePorts/NReadability/TranscodingResult.cs b/PortablePorts/NReadability/TranscodingResult.cs
index 5182c2c..15d06bd 100644
--- a/PortablePorts/NReadability/TranscodingResult.cs
+++ b/PortablePorts/NReadability/TranscodingResult.cs
@@ -1,3 +1,4 @@
+using System.Xml.Linq;
namespace NReadability
{
public class TranscodingResult
@@ -17,5 +18,7 @@ namespace NReadability
public string ExtractedTitle { get; set; }
public string NextPageUrl { get; set; }
+
+ public XDocument RawDocument { get; set; }
}
}