From 6aeb124f1150f6431bd5a41374bbc3eb89168c2c Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Tue, 17 Dec 2013 22:41:08 +0100 Subject: [PATCH] initial --- .editorconfig | 15 +++ .gitignore | 165 +++++++++++++++++++++++++++ Assets/github-header.png | Bin 0 -> 9853 bytes Assets/readsharp.png | Bin 0 -> 6298 bytes CHANGELOG.md | 3 + LICENSE-MIT | 22 ++++ README.md | 37 ++++++ ReadSharp.sln | 20 ++++ ReadSharp/Properties/AssemblyInfo.cs | 30 +++++ ReadSharp/ReadSharp.csproj | 49 ++++++++ 10 files changed, 341 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 Assets/github-header.png create mode 100644 Assets/readsharp.png create mode 100644 CHANGELOG.md create mode 100644 LICENSE-MIT create mode 100644 README.md create mode 100644 ReadSharp.sln create mode 100644 ReadSharp/Properties/AssemblyInfo.cs create mode 100644 ReadSharp/ReadSharp.csproj diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1c9dd1a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +; This file is for unifying the coding style for different editors and IDEs +; editorconfig.org + +root = true + +[*] +end_of_line = crlf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1f2121f --- /dev/null +++ b/.gitignore @@ -0,0 +1,165 @@ +## Ignore Visual Studio temporary files, build results, and files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# configuration +Web.Release.config +Web.Debug.config + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +packages/ +*.nupkg + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings +.sass-cache +node_modules +*.[L|l]og +tmp +_old +_tmp +Gemfile.lock +WebWorkbench.mswwsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +# ========================= +# Project +# ========================= diff --git a/Assets/github-header.png b/Assets/github-header.png new file mode 100644 index 0000000000000000000000000000000000000000..60ab6b6130636924fc728c91b6cb01b61d858fda GIT binary patch literal 9853 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 literal 0 HcmV?d00001 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c38ac0f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +### 1.0.0 (coming soon) + +- migrate PocketSharp.Reader to ReadSharp diff --git a/LICENSE-MIT b/LICENSE-MIT new file mode 100644 index 0000000..1bf9623 --- /dev/null +++ b/LICENSE-MIT @@ -0,0 +1,22 @@ +Copyright (c) 2014 cee, Tobias Klika + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..41dcc41 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +![ReadSharp](https://raw.github.com/ceee/ReadSharp/master/Assets/github-header.png) + +ReadSharp was previously **PocketSharp.Reader** and is now hosted without the [PocketSharp](https://github.com/ceee/PocketSharp) dependency. + +## What's it all about? + +The library extracts the main content of a website and returns the extracted content as HTML and it's associated title, as well as other useful content (images, icons, ...). + +This content can be encapsulated in a -Tag and displayed as a readable website with a custom CSS (it's up to you!). + +--- + + +## Supported platforms + +ReadSharp is a **Portable Class Library**, therefore it's compatible with multiple platforms: + +- **.NET** >= 4.0.3 (including WPF) +- **Silverlight** >= 4 +- **Windows Phone** >= 7.5 +- **Windows Store** + +## Forked Dependencies + +_forks are included in the primary source code_ + +- [NReadability](https://github.com/marek-stoj/NReadability) +- [SgmlReader](https://github.com/MindTouch/SGMLReader) + +## Contributors +| [![ceee](http://gravatar.com/avatar/9c61b1f4307425f12f05d3adb930ba66?s=70)](https://github.com/ceee "Tobias Klika") | +|---| +| [ceee](https://github.com/ceee) | + +## License + +[MIT License](https://github.com/ceee/ReadSharp/blob/master/LICENSE-MIT) diff --git a/ReadSharp.sln b/ReadSharp.sln new file mode 100644 index 0000000..1158b26 --- /dev/null +++ b/ReadSharp.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReadSharp", "ReadSharp\ReadSharp.csproj", "{06219CAD-E85E-48E2-A216-2539805A9EE8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {06219CAD-E85E-48E2-A216-2539805A9EE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06219CAD-E85E-48E2-A216-2539805A9EE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06219CAD-E85E-48E2-A216-2539805A9EE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06219CAD-E85E-48E2-A216-2539805A9EE8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ReadSharp/Properties/AssemblyInfo.cs b/ReadSharp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..103b89d --- /dev/null +++ b/ReadSharp/Properties/AssemblyInfo.cs @@ -0,0 +1,30 @@ +using System.Resources; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ReadSharp")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ReadSharp")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ReadSharp/ReadSharp.csproj b/ReadSharp/ReadSharp.csproj new file mode 100644 index 0000000..7c0e29a --- /dev/null +++ b/ReadSharp/ReadSharp.csproj @@ -0,0 +1,49 @@ + + + + + 10.0 + Debug + AnyCPU + {06219CAD-E85E-48E2-A216-2539805A9EE8} + Library + Properties + ReadSharp + ReadSharp + v4.0 + Profile96 + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + \ No newline at end of file