@@ -31,6 +31,7 @@ namespace DotNetMashup.Web.Controllers
|
|||||||
this.setting = setting;
|
this.setting = setting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[ResponseCache(Duration = 3600, NoStore = true, Location = ResponseCacheLocation.Any)]
|
||||||
public async Task<IActionResult> Index(int page = 1)
|
public async Task<IActionResult> Index(int page = 1)
|
||||||
{
|
{
|
||||||
var factoryData = (await factory.GetData());
|
var factoryData = (await factory.GetData());
|
||||||
|
|||||||
@@ -169,18 +169,11 @@ namespace DotNetMashup.Web.Extensions
|
|||||||
@"\s+[^\s]+$", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Compiled) + trailingText;
|
@"\s+[^\s]+$", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Compiled) + trailingText;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
|
public static string TrimAll(this string input)
|
||||||
{
|
{
|
||||||
foreach(T item in enumeration)
|
return new string(input.ToCharArray()
|
||||||
{
|
.Where(c => !char.IsWhiteSpace(c))
|
||||||
action?.Invoke(item);
|
.ToArray());
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
|
|
||||||
{
|
|
||||||
var i = 0;
|
|
||||||
return list.GroupBy(a => i++ % parts).AsEnumerable();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
26
src/DotNetMashup.Web/Extensions/LinqExtensions.cs
Normal file
26
src/DotNetMashup.Web/Extensions/LinqExtensions.cs
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace DotNetMashup.Web.Extensions
|
||||||
|
{
|
||||||
|
public static class LinqExtensions
|
||||||
|
{
|
||||||
|
public static void ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
|
||||||
|
{
|
||||||
|
foreach(T item in enumeration)
|
||||||
|
{
|
||||||
|
action?.Invoke(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
|
||||||
|
{
|
||||||
|
var i = 0;
|
||||||
|
return list.GroupBy(a => i++ % parts).AsEnumerable();
|
||||||
|
}
|
||||||
|
|
||||||
|
//public static IEnumerable<>
|
||||||
|
}
|
||||||
|
}
|
||||||
29
src/DotNetMashup.Web/Extensions/TwitterExtensions.cs
Normal file
29
src/DotNetMashup.Web/Extensions/TwitterExtensions.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using DotNetMashup.Web.Model;
|
||||||
|
using Tweetinvi;
|
||||||
|
using Tweetinvi.Core.Interfaces;
|
||||||
|
using Tweetinvi.Core.Interfaces.Models;
|
||||||
|
|
||||||
|
namespace DotNetMashup.Web.Extensions
|
||||||
|
{
|
||||||
|
public static class TwitterExtensions
|
||||||
|
{
|
||||||
|
public static TwitterData ToTwitterData(this ITweet tweet)
|
||||||
|
{
|
||||||
|
return new TwitterData
|
||||||
|
{
|
||||||
|
PublishedDate = tweet.CreatedAt,
|
||||||
|
Content = tweet.Text,
|
||||||
|
tweet = new Lazy<Task<IOEmbedTweet>>(() => tweet.GenerateOEmbedTweetAsync()),
|
||||||
|
Author = new Author
|
||||||
|
{
|
||||||
|
Name = tweet.CreatedBy.Name,
|
||||||
|
AuthorUrl = tweet.CreatedBy.Url,
|
||||||
|
Email = string.Empty,
|
||||||
|
ImageUrl = tweet.CreatedBy.ProfileImageUrl400x400
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,7 +33,8 @@ namespace DotNetMashup.Web.Factory
|
|||||||
Repos = new List<IRepository>()
|
Repos = new List<IRepository>()
|
||||||
{
|
{
|
||||||
new GitHubRepository(config),
|
new GitHubRepository(config),
|
||||||
new BlogPostRepository(data, setting)
|
new BlogPostRepository(data, setting),
|
||||||
|
new TwitterRepository(setting, config)
|
||||||
};
|
};
|
||||||
this.cache = cache;
|
this.cache = cache;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,5 +8,6 @@ namespace DotNetMashup.Web.Global
|
|||||||
short AmountPerPage { get; }
|
short AmountPerPage { get; }
|
||||||
string Title { get; }
|
string Title { get; }
|
||||||
string Descriptions { get; }
|
string Descriptions { get; }
|
||||||
|
int TwitterMaxSearch { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,8 +6,9 @@ namespace DotNetMashup.Web.Global
|
|||||||
{
|
{
|
||||||
public short AmountPerPage { get { return 12; } }
|
public short AmountPerPage { get { return 12; } }
|
||||||
|
|
||||||
public List<string> Categories { get; } = new List<string> { "c#", "csharp", "cs", "asp.net", "NancyFx", "Nancy", "vNext", "asp.net 5" };
|
public List<string> Categories { get; } = new List<string> { "c#", "csharp", "cs", "asp.net", "NancyFx", "vNext", "asp.net 5", "aspnet5" };
|
||||||
public string Title { get { return "DotNet Mashups"; } }
|
public string Title { get { return "DotNet Mashups"; } }
|
||||||
public string Descriptions { get { return "Mashup of DotNet News"; } }
|
public string Descriptions { get { return "Mashup of DotNet News"; } }
|
||||||
|
public int TwitterMaxSearch { get { return 10; } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
13
src/DotNetMashup.Web/Model/TwitterData.cs
Normal file
13
src/DotNetMashup.Web/Model/TwitterData.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Tweetinvi.Core.Interfaces.Models;
|
||||||
|
|
||||||
|
namespace DotNetMashup.Web.Model
|
||||||
|
{
|
||||||
|
public class TwitterData : BaseExternalData
|
||||||
|
{
|
||||||
|
public Lazy<Task<IOEmbedTweet>> tweet { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,26 +1,63 @@
|
|||||||
//using System;
|
using System;
|
||||||
//using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
//using System.Linq;
|
using System.Linq;
|
||||||
//using System.Threading.Tasks;
|
using System.Text.RegularExpressions;
|
||||||
//using DotNetMashup.Web.Model;
|
using System.Threading.Tasks;
|
||||||
//using Tweetinvi;
|
using DotNetMashup.Web.Extensions;
|
||||||
|
using DotNetMashup.Web.Global;
|
||||||
|
using DotNetMashup.Web.Model;
|
||||||
|
using Microsoft.Framework.Configuration;
|
||||||
|
using Tweetinvi;
|
||||||
|
using Tweetinvi.Core.Credentials;
|
||||||
|
using Tweetinvi.Core.Enum;
|
||||||
|
using Tweetinvi.Core.Interfaces;
|
||||||
|
using Tweetinvi.Core.Parameters;
|
||||||
|
|
||||||
//namespace DotNetMashup.Web.Repositories
|
namespace DotNetMashup.Web.Repositories
|
||||||
//{
|
{
|
||||||
// public class TwitterRepository : IRepository
|
public class TwitterRepository : IRepository
|
||||||
// {
|
{
|
||||||
// public string FactoryName
|
private readonly IConfiguration config;
|
||||||
// {
|
private readonly ISiteSetting SiteSetting;
|
||||||
// get
|
private Regex filter = new Regex("(job|Job|JOB|looking for|help|apply|Apply)", RegexOptions.Compiled);
|
||||||
// {
|
|
||||||
// return "Twitter";
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public Task<IEnumerable<IExternalData>> GetData()
|
public TwitterRepository(ISiteSetting siteSetting, IConfiguration config)
|
||||||
// {
|
{
|
||||||
// throw new NotImplementedException();
|
this.SiteSetting = siteSetting;
|
||||||
// var matchingTweets = Search.SearchTweets();
|
this.config = config;
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
//}
|
public string FactoryName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Twitter";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<IEnumerable<IExternalData>> GetData()
|
||||||
|
{
|
||||||
|
ExceptionHandler.SwallowWebExceptions = true;
|
||||||
|
var creds = new TwitterCredentials(config["twitterkey"], config["twittersecret"], config["twittertokenKey"], config["twittertokenSecret"]);
|
||||||
|
Auth.SetCredentials(creds);
|
||||||
|
|
||||||
|
var tweets = SiteSetting
|
||||||
|
.Categories
|
||||||
|
.Select(a => a.TrimAll())
|
||||||
|
.Where(a => !a.Equals("c#"))
|
||||||
|
.AsParallel()
|
||||||
|
.Select(a => Search.SearchTweets(new TweetSearchParameters("#" + a) { Lang = Language.English, MaximumNumberOfResults = 100, TweetSearchType = Tweetinvi.Core.Interfaces.Parameters.TweetSearchType.OriginalTweetsOnly }))
|
||||||
|
.SelectMany(a => a)
|
||||||
|
.Where(a => !a.IsRetweet && !filter.IsMatch(a.Text) && !a.Hashtags.Any(b => filter.IsMatch(b.Text)))
|
||||||
|
.GroupBy(a => a.CreatedAt.Day + a.CreatedAt.Year)
|
||||||
|
.SelectMany(a => a.Distinct().Take(3))
|
||||||
|
.Select(a => a.ToTwitterData())
|
||||||
|
.OrderByDescending(a => a.PublishedDate)
|
||||||
|
.Cast<IExternalData>()
|
||||||
|
.ToList()
|
||||||
|
.AsEnumerable();
|
||||||
|
|
||||||
|
return Task.FromResult(tweets);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41,6 +41,7 @@ namespace DotNetMashup.Web
|
|||||||
{
|
{
|
||||||
return new MemoryCache(new MemoryCacheOptions());
|
return new MemoryCache(new MemoryCacheOptions());
|
||||||
});
|
});
|
||||||
|
services.AddCaching();
|
||||||
services.AddInstance(_feedData);
|
services.AddInstance(_feedData);
|
||||||
services.AddSingleton<RepositoryFactory>();
|
services.AddSingleton<RepositoryFactory>();
|
||||||
// Add MVC services to the services container.
|
// Add MVC services to the services container.
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
@model DotNetMashup.Web.Model.TwitterData
|
||||||
|
|
||||||
|
<cache vary-by="@Model.GetHashCode()">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-offset-3">
|
||||||
|
@Html.Raw((await Model.tweet.Value)?.HTML)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</cache>
|
||||||
@@ -7,7 +7,9 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/css/bootstrap.min.css" />
|
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/css/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
|
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/css/bootstrap.min.css"
|
||||||
|
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
|
||||||
|
asp-fallback-test-class="hidden" asp-fallback-test-property="visibility" asp-fallback-test-value="hidden" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="headerwrap">
|
<div class="headerwrap">
|
||||||
@@ -20,13 +22,30 @@
|
|||||||
<p>© 2015 - DotNetMashup.Web</p>
|
<p>© 2015 - DotNetMashup.Web</p>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js">
|
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js"
|
||||||
|
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
|
||||||
|
asp-fallback-test="window.jQuery">
|
||||||
</script>
|
</script>
|
||||||
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/bootstrap.min.js">
|
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/bootstrap.min.js"
|
||||||
|
asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
|
||||||
|
asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal">
|
||||||
</script>
|
</script>
|
||||||
<script src="https://ajax.aspnetcdn.com/ajax/hammer.js/2.0.4/hammer.min.js">
|
<script src="https://ajax.aspnetcdn.com/ajax/hammer.js/2.0.4/hammer.min.js"
|
||||||
|
asp-fallback-src="~/lib/hammer.js/hammer.js"
|
||||||
|
asp-fallback-test="window.Hammer">
|
||||||
|
</script>
|
||||||
|
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js"
|
||||||
|
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
|
||||||
|
asp-fallback-test="window.jQuery">
|
||||||
|
</script>
|
||||||
|
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/bootstrap.min.js"
|
||||||
|
asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
|
||||||
|
asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal">
|
||||||
|
</script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"
|
||||||
|
asp-fallback-src="~/lib/underscore/undercore-min.js"
|
||||||
|
asp-fallback-test="_">
|
||||||
</script>
|
</script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
|
|
||||||
<script src="~/js/site.js" asp-append-version="true"></script>
|
<script src="~/js/site.js" asp-append-version="true"></script>
|
||||||
|
|
||||||
@RenderSection("scripts", required: false)
|
@RenderSection("scripts", required: false)
|
||||||
|
|||||||
@@ -2,5 +2,9 @@
|
|||||||
"name": "ASP.NET",
|
"name": "ASP.NET",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"jquery": "~2.1.4",
|
||||||
|
"bootstrap": "~3.3.5",
|
||||||
|
"font-awesome": "~4.4.0",
|
||||||
|
"underscore": "~1.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"Microsoft.Framework.Logging.Debug": "1.0.0-beta7",
|
"Microsoft.Framework.Logging.Debug": "1.0.0-beta7",
|
||||||
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta7",
|
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta7",
|
||||||
"Newtonsoft.Json": "7.0.1",
|
"Newtonsoft.Json": "7.0.1",
|
||||||
"TweetinviAPI": "0.9.9.7",
|
"TweetinviAPI": "0.9.9.8",
|
||||||
"Octokit": "0.16.0",
|
"Octokit": "0.16.0",
|
||||||
"CommonMark.NET": "0.9.1"
|
"CommonMark.NET": "0.9.1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,245 +1,3 @@
|
|||||||
/// <autosync enabled="true" />
|
/// <autosync enabled="true" />
|
||||||
/// <reference path="../gulpfile.js" />
|
/// <reference path="../gulpfile.js" />
|
||||||
/// <reference path="js/site.js" />
|
/// <reference path="js/site.js" />
|
||||||
/// <reference path="lib/bootstrap/assets/js/application.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/customizer.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/filesaver.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/holder.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/html5shiv.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/jquery.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/jszip.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/less.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/raw-files.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/respond.min.js" />
|
|
||||||
/// <reference path="lib/bootstrap/assets/js/uglify.js" />
|
|
||||||
/// <reference path="lib/bootstrap/dist/js/bootstrap.js" />
|
|
||||||
/// <reference path="lib/bootstrap/examples/offcanvas/offcanvas.js" />
|
|
||||||
/// <reference path="lib/bootstrap/Gruntfile.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/affix.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/alert.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/button.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/carousel.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/collapse.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/dropdown.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/modal.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/popover.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/scrollspy.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tab.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/phantom.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/server.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/affix.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/alert.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/button.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/carousel.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/collapse.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/dropdown.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/modal.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/phantom.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/popover.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/scrollspy.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/tab.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/tooltip.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/unit/transition.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/vendor/jquery.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tests/vendor/qunit.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/tooltip.js" />
|
|
||||||
/// <reference path="lib/bootstrap/js/transition.js" />
|
|
||||||
/// <reference path="lib/bootstrap-touch-carousel/dist/js/bootstrap-touch-carousel.js" />
|
|
||||||
/// <reference path="lib/bootstrap-touch-carousel/Gruntfile.js" />
|
|
||||||
/// <reference path="lib/bootstrap-touch-carousel/src/js/touch-carousel.js" />
|
|
||||||
/// <reference path="lib/bootstrap-touch-carousel/src/js/transition.js" />
|
|
||||||
/// <reference path="lib/hammer.js/hammer.js" />
|
|
||||||
/// <reference path="lib/jquery/dist/jquery.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/jsonp.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/load.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/parseJSON.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/parseXML.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/script.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/var/nonce.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/var/rquery.js" />
|
|
||||||
/// <reference path="lib/jquery/src/ajax/xhr.js" />
|
|
||||||
/// <reference path="lib/jquery/src/attributes.js" />
|
|
||||||
/// <reference path="lib/jquery/src/attributes/attr.js" />
|
|
||||||
/// <reference path="lib/jquery/src/attributes/classes.js" />
|
|
||||||
/// <reference path="lib/jquery/src/attributes/prop.js" />
|
|
||||||
/// <reference path="lib/jquery/src/attributes/support.js" />
|
|
||||||
/// <reference path="lib/jquery/src/attributes/val.js" />
|
|
||||||
/// <reference path="lib/jquery/src/callbacks.js" />
|
|
||||||
/// <reference path="lib/jquery/src/core.js" />
|
|
||||||
/// <reference path="lib/jquery/src/core/access.js" />
|
|
||||||
/// <reference path="lib/jquery/src/core/init.js" />
|
|
||||||
/// <reference path="lib/jquery/src/core/parseHTML.js" />
|
|
||||||
/// <reference path="lib/jquery/src/core/ready.js" />
|
|
||||||
/// <reference path="lib/jquery/src/core/var/rsingleTag.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/addGetHookIf.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/curCSS.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/defaultDisplay.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/hiddenVisibleSelectors.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/support.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/swap.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/var/cssExpand.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/var/getStyles.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/var/isHidden.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/var/rmargin.js" />
|
|
||||||
/// <reference path="lib/jquery/src/css/var/rnumnonpx.js" />
|
|
||||||
/// <reference path="lib/jquery/src/data.js" />
|
|
||||||
/// <reference path="lib/jquery/src/data/accepts.js" />
|
|
||||||
/// <reference path="lib/jquery/src/data/Data.js" />
|
|
||||||
/// <reference path="lib/jquery/src/data/var/data_priv.js" />
|
|
||||||
/// <reference path="lib/jquery/src/data/var/data_user.js" />
|
|
||||||
/// <reference path="lib/jquery/src/deferred.js" />
|
|
||||||
/// <reference path="lib/jquery/src/deprecated.js" />
|
|
||||||
/// <reference path="lib/jquery/src/dimensions.js" />
|
|
||||||
/// <reference path="lib/jquery/src/effects.js" />
|
|
||||||
/// <reference path="lib/jquery/src/effects/animatedSelector.js" />
|
|
||||||
/// <reference path="lib/jquery/src/effects/Tween.js" />
|
|
||||||
/// <reference path="lib/jquery/src/event.js" />
|
|
||||||
/// <reference path="lib/jquery/src/event/ajax.js" />
|
|
||||||
/// <reference path="lib/jquery/src/event/alias.js" />
|
|
||||||
/// <reference path="lib/jquery/src/event/support.js" />
|
|
||||||
/// <reference path="lib/jquery/src/exports/amd.js" />
|
|
||||||
/// <reference path="lib/jquery/src/exports/global.js" />
|
|
||||||
/// <reference path="lib/jquery/src/intro.js" />
|
|
||||||
/// <reference path="lib/jquery/src/jquery.js" />
|
|
||||||
/// <reference path="lib/jquery/src/manipulation.js" />
|
|
||||||
/// <reference path="lib/jquery/src/manipulation/_evalUrl.js" />
|
|
||||||
/// <reference path="lib/jquery/src/manipulation/support.js" />
|
|
||||||
/// <reference path="lib/jquery/src/manipulation/var/rcheckableType.js" />
|
|
||||||
/// <reference path="lib/jquery/src/offset.js" />
|
|
||||||
/// <reference path="lib/jquery/src/outro.js" />
|
|
||||||
/// <reference path="lib/jquery/src/queue.js" />
|
|
||||||
/// <reference path="lib/jquery/src/queue/delay.js" />
|
|
||||||
/// <reference path="lib/jquery/src/selector.js" />
|
|
||||||
/// <reference path="lib/jquery/src/selector-native.js" />
|
|
||||||
/// <reference path="lib/jquery/src/selector-sizzle.js" />
|
|
||||||
/// <reference path="lib/jquery/src/serialize.js" />
|
|
||||||
/// <reference path="lib/jquery/src/sizzle/dist/sizzle.js" />
|
|
||||||
/// <reference path="lib/jquery/src/traversing.js" />
|
|
||||||
/// <reference path="lib/jquery/src/traversing/findFilter.js" />
|
|
||||||
/// <reference path="lib/jquery/src/traversing/var/rneedsContext.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/arr.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/class2type.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/concat.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/hasOwn.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/indexOf.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/pnum.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/push.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/rnotwhite.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/slice.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/strundefined.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/support.js" />
|
|
||||||
/// <reference path="lib/jquery/src/var/toString.js" />
|
|
||||||
/// <reference path="lib/jquery/src/wrap.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/build/release.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/dist/additional-methods.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/dist/jquery.validate.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/Gruntfile.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/accept.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/additional.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/alphanumeric.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/bankaccountNL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/bankorgiroaccountNL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/bic.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/cifES.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/cpfBR.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/creditcardtypes.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/currency.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/dateFA.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/dateITA.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/dateNL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/extension.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/giroaccountNL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/iban.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/integer.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/ipv4.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/ipv6.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/lettersonly.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/letterswithbasicpunc.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/mobileNL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/mobileUK.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/nieES.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/nifES.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/notEqualTo.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/nowhitespace.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/pattern.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/phoneNL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/phonesUK.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/phoneUK.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/phoneUS.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/postalcodeBR.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/postalCodeCA.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/postalcodeIT.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/postalcodeNL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/postcodeUK.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/require_from_group.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/skip_or_fill_minimum.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/statesUS.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/strippedminlength.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/time.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/time12h.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/url2.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/vinUS.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/zipcodeUS.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/additional/ziprange.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/ajax.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/core.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ar.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_bg.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_bn_BD.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ca.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_cs.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_da.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_de.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_el.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_es.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_es_AR.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_es_PE.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_et.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_eu.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_fa.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_fi.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_fr.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ge.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_gl.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_he.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_hr.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_hu.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_hy_AM.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_id.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_is.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_it.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ja.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ka.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_kk.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ko.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_lt.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_lv.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_my.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_nl.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_no.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_pl.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_pt_BR.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_pt_PT.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ro.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_ru.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_si.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_sk.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_sl.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_sr.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_sr_lat.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_sv.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_th.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_tj.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_tr.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_uk.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_vi.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_zh.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/messages_zh_TW.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/methods_de.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/methods_es_CL.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/methods_fi.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/methods_nl.js" />
|
|
||||||
/// <reference path="lib/jquery-validation/src/localization/methods_pt.js" />
|
|
||||||
/// <reference path="lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js" />
|
|
||||||
|
|||||||
@@ -77,3 +77,37 @@ code, pre {
|
|||||||
a.headlink, a.headlink:hover, a.headlink:visited{
|
a.headlink, a.headlink:hover, a.headlink:visited{
|
||||||
color: #FFFFFF; text-align:center;
|
color: #FFFFFF; text-align:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blockquote.twitter-tweet {
|
||||||
|
display: inline-block;
|
||||||
|
font-family: "Helvetica Neue", Roboto, "Segoe UI", Calibri, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 16px;
|
||||||
|
border-color: #eee #ddd #bbb;
|
||||||
|
border-radius: 5px;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
|
||||||
|
margin: 10px 5px;
|
||||||
|
padding: 0 16px 16px 16px;
|
||||||
|
max-width: 468px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.twitter-tweet p {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.twitter-tweet a {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: normal;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: 0 none;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.twitter-tweet a:hover,
|
||||||
|
blockquote.twitter-tweet a:focus {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user