Giter Site home page Giter Site logo

feather-packages's People

Contributors

aleksandra992 avatar atanas-georgiev avatar b-nikolov avatar barashaliosmanov avatar boyko-karadzhov avatar dependabot[bot] avatar dzhenko avatar ekazakova avatar elenaganeva avatar ferdinebi avatar gbdimitrov avatar georgieff avatar georgimateev avatar gg3orgiev avatar gsashev avatar jenpeleva avatar jmeleshko avatar manev avatar mirinka avatar mknijarova avatar nader-dab avatar nadezhdapetrova avatar nikistefanov avatar pepiivanova avatar petyarachina avatar sdimitrov89 avatar sitefinitysteve avatar tihomir-petrov avatar vassildinev avatar venetabogoeva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

feather-packages's Issues

Customizing the Layouts question

Hello,

Do you know if there is a possibility to define more edit zone on the Layouts view?
I would like to hard code mandatory Zones unfortunately I can have only one @Html.SfPlaceHolder("Contentplaceholder1")

Thanks for your help.

Alex.

Style profile error message in packages

In Edit.ProfileEdit.cshtml is added an error message:

    @if (!string.IsNullOrEmpty(ViewBag.ErrorMessage))
    {
        <div>
            @ViewBag.ErrorMessage
        </div>
    }

This error message needs to be styled for bootstrap and semanticUI.
Branch: team7-bug-fixing

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

After upgrades Feather MVC from 1.2.270.1 to 1.2.280.2, I can't edit/access custom page templates and pages (please see the following two error messages). I have no problems accessing custom page templates and pages in version 1.2.270.1.

  1. Here are the error messages when I tried to edit one of our custom page templates.
    Server Error in '/' Application.
    Object reference not set to an instance of an object.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromTemplate(PageTemplate template) +47
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromTemplateId(String templateId) +474
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromPageInfo() +213
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutVirtualPathBuilder.AddVariablesToPath(String layoutVirtualPath) +102
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutVirtualPathBuilder.BuildPathFromTitle(String templateTitle) +191
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutResolver.GetVirtualPath(IPageTemplate template) +166
Telerik.Sitefinity.Modules.Pages.PageHelperImplementation.ResolveDynamicMasterPage(IPageTemplate template) +122
Telerik.Sitefinity.Modules.Pages.TemplateDraftProxy..ctor(TemplateDraft pageData, PageDataProvider provider, Boolean isPreview, CultureInfo objectCulture, Boolean optimized) +859
Telerik.Sitefinity.Modules.Pages.TemplateEditorRouteHandler.GetPageData(SiteMapNode node) +1388
Telerik.Sitefinity.Web.RouteHandler.GetHttpHandler(RequestContext requestContext) +153
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +12411254
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +91
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +164


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34249

  1. Here are error messages when I tried to access one of the page (using custom page template).
    Server Error in '/' Application.

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromTemplate(PageTemplate template) +47
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromNodeId(String nodeId) +628
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromPageInfo() +814
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutVirtualPathBuilder.AddVariablesToPath(String layoutVirtualPath) +102
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutVirtualPathBuilder.BuildPathFromTitle(String templateTitle) +191
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutResolver.GetVirtualPath(IPageTemplate template) +166
Telerik.Sitefinity.Modules.Pages.PageHelperImplementation.ResolveDynamicMasterPage(IPageTemplate template) +122
Telerik.Sitefinity.Abstractions.VirtualPath.PageResolverBase.BuildPageTemplateRecursive(IPageTemplate pageTemplate, String theme, RequestContext context, StringBuilder output, CursorCollection placeHolders, DirectiveCollection directives, List`1 controlConatiners) +181
Telerik.Sitefinity.Mvc.Rendering.PureMvcPageResolver.RenderPage(StringBuilder sb, PageData pageData, RequestContext context, String virtualPath) +345
Telerik.Sitefinity.Mvc.Rendering.PureMvcPageResolver.Open(PathDefinition definition, String virtualPath) +275
Telerik.Sitefinity.Abstractions.VirtualPath.VirtualPathManager.OpenFile(String virtualPath) +232
System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) +255
System.Web.UI.TemplateParser.Parse() +12152422
System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() +135
System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) +189
System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +265
System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +44
System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +580
System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +571
System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +203
System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +249
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +56
Telerik.Sitefinity.Web.PageRouteHandler.InstantiateHandler(RequestContext requestContext, PageSiteNode pageDataNode, String& theme) +337
Telerik.Sitefinity.Web.PageRouteHandler.BuildHttpHandler(RequestContext requestContext) +703
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Routing.MvcPageRouteHandler.BuildHttpHandler(RequestContext requestContext) +11
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +12411255
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34249

Please advise, Thanks.

Richard

Frameworks' assets refactoring

We should make the package architecture in a way that allows easier upgrading of the frameworks we use.

We should use the framworks' native visibility and responsive classes whenever we can, instead of writing custom CSS classes that duplicate functionality already present in the frameworks.

  • Foundation
  • Bootstrap
  • SemanticUI

breadcrumb.cshtml mark-up in bootstrap-package should be ordered list

Current view of the breadcrumb widget is an un-ordered list, however bootstrap (and google) dictate an ordered list. Secondly I'm assuming there's a typo on the class name where sf-breadscrumb should be sf-breadcrumb

<ul class="sf-breadscrumb breadcrumb">

Current view:

<div class="@Model.CssClass">
    <ul class="sf-breadscrumb breadcrumb">
        @for (int i = 0; i < Model.SiteMapNodes.Count; i++)
        {
            var node = Model.SiteMapNodes[i];

            if (i == Model.SiteMapNodes.Count - 1 && Model.ShowCurrentPageInTheEnd)
            {
                <li class="active">@node.Title</li>
            }
            else
            {
                <li><a href="@node.Url">@node.Title </a></li>
            }
        }
    </ul>
</div>

Should be:

<div class="@Model.CssClass">
    <ol class="sf-breadcrumb breadcrumb">
        @for (int i = 0; i < Model.SiteMapNodes.Count; i++)
        {
            var node = Model.SiteMapNodes[i];

            if (i == Model.SiteMapNodes.Count - 1 && Model.ShowCurrentPageInTheEnd)
            {
                <li class="active">@node.Title</li>
            }
            else
            {
                <li><a href="@node.Url">@node.Title </a></li>
            }
        }
    </ol>
</div>

Given the importance of breadcrumbs for search results, ideally the view includes structured mark-up that allows Google to understand the breadcrumb and the view should be:

<div class="@Model.CssClass">
    <ol class="sf-breadcrumb breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">
        @for (int i = 0; i < Model.SiteMapNodes.Count; i++)
        {
            var node = Model.SiteMapNodes[i];

            if (i == Model.SiteMapNodes.Count - 1 && Model.ShowCurrentPageInTheEnd)
            {
                <li class="active">@node.Title</li>
            }
            else
            {
                <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                    <a href="@node.Url" itemprop="item"><span itemprop="name">@node.Title</span></a>
                    <meta itemprop="position" content="@(i+1)" />
                </li>
            }
        }
    </ol>
</div>

npm install fails when installing node-sass (windows 8, node v4.2.1, npm v3.3.9)

This appears to be a version issue with grunt-sass dependency on node-sass. I changed the grunt-sass dependency version in the package.json file to "grunt-sass": "^1.1.0" and this fixed the problem for me. I only tried the Foundation package, but I would assume this could be an issue with the other feather packages as well.

Update feather packages readme files

The following documentation should be updated (because "What we’ve decided is to remove the custom CSS and the classes for showing/hiding the menu. The reason for this is that all of the frameworks we use have similar classes by default."):

https://github.com/Sitefinity/feather-packages/tree/development/Bootstrap
https://github.com/Sitefinity/feather-packages/tree/development/Foundation
https://github.com/Sitefinity/feather-packages/tree/development/SemanticUI

Resource Typo

Just a simple typo in the view: LoginForm.LoginForm.cshtml

@Html.Resource("AlreadyLogedIn")

Foundation layouts not found

Not sure how this works, but I only see the Bootstrap Layout Widgets inside the Toolbar. I created a new package based on Foundation and when editing my templates I would have expected the Foundation Layout Widgets?

Recommended way to customize the Package

I'd like to be able to use the less/sass version of the package of my choice (Bootstrap in my current case). That way I can assign the package variables (sizes, colors, font family) to what my project requires, and not have to override a lot of base css to fit project requirements. What's the best way to do this?

Do I need to do a npm install in the package directory and then tweak the variables? If so, I'd assume I'd additionally need to manually run the grunt tasks to recompile everything, which seems a bit overkill and prone to conflicts while upgrading Feather. Or is there a less invasive way that allows for better future upgradability.

Thanks for your help and thoughts.

Sitefinity Routing - Object reference not set to an instance of an object.

Sitefinity Version: 8.2.5900
Feather Version: 1.4.360.0

Attempted to follow the example here: http://docs.sitefinity.com/for-developers-override-the-default-page-route-handling

Getting the following stack trace:

[NullReferenceException: Object reference not set to an instance of an object.]
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromNodeId(String nodeId) +385
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetPackageFromPageInfo() +730
Telerik.Sitefinity.Frontend.Resources.PackageManager.GetCurrentPackage() +100
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutVirtualPathBuilder.AddVariablesToPath(String layoutVirtualPath) +31
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutVirtualPathBuilder.BuildPathFromName(String templateName) +188
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Layouts.LayoutResolver.GetVirtualPath(IPageTemplate template) +191
Telerik.Sitefinity.Modules.Pages.PageHelperImplementation.ResolveDynamicMasterPage(IPageTemplate template) +96
Telerik.Sitefinity.Abstractions.VirtualPath.PageResolverBase.BuildPageTemplateRecursive(IPageTemplate pageTemplate, String theme, RequestContext context, StringBuilder output, CursorCollection placeHolders, DirectiveCollection directives, List`1 controlConatiners) +181
Telerik.Sitefinity.Mvc.Rendering.PureMvcPageResolver.RenderPage(StringBuilder sb, PageData pageData, RequestContext context, String virtualPath) +411
Telerik.Sitefinity.Mvc.Rendering.PureMvcPageResolver.Open(PathDefinition definition, String virtualPath) +1078
System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) +243
System.Web.UI.TemplateParser.ParseInternal() +108
System.Web.UI.TemplateParser.Parse() +196
System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() +179
System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) +135
System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +262
System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +35
System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +510
System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +350
System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +146
System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +11897646
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +48
Telerik.Sitefinity.Web.PageRouteHandler.InstantiateHandler(RequestContext requestContext, PageSiteNode pageDataNode, String& theme) +241
Telerik.Sitefinity.Web.PageRouteHandler.BuildHttpHandler(RequestContext requestContext) +672
Telerik.Sitefinity.Frontend.Mvc.Infrastructure.Routing.MvcPageRouteHandler.BuildHttpHandler(RequestContext requestContext) +10
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +11987059
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +142
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +92

Please advise.

how to add font-awesome font

i added the font files in "ResourcePackages//assets/dist/fonts"
there are also the fonts from SF and bootstrap, so i thought i can simply add the new font there and rebuild.
how do i include the font files correclty?
thank you

Bootstrap layout page - Incorrect link end tag

Bootstrap layout page is under /ResourcePackages/Bootstrap/MVC/Views/Layouts/default.cshtml.

@Html.StyleSheet(Url.WidgetContent("~/ResourcePackages/Bootstrap/assets/dist/css/styles.min.css"), "head")
The above codes render incorrect link end tag.
<link href="/ResourcePackages/Bootstrap/assets/dist/css/styles.min.css?package=Bootstrap" rel="stylesheet" type="text/css"></link>

The correct link tag should be in this format.
<link href="/ResourcePackages/Bootstrap/assets/dist/css/styles.min.css?package=Bootstrap" rel="stylesheet" type="text/css" /> (will work in HTML and XHTML)

scss bootstrap package not compiling due to extend within media-query

Grunt compilation can't run the sass task due to invalid markup and invalid sass.

>> Error: ".nav-sitemap > li" failed to @extend "sf-mt-xxs".
>>        The selector "sf-mt-xxs" was not found.
>>        Use "@extend sf-mt-xxs !optional" if the extend should be able to fail.
>>         on line 43 of assets/src/sass/sitefinity/navigation/_sitemap.scss
>> >>           @extend sf-mt-xxs; //0

File _navbar.scss, line 43-44 should be, which resolves above problem:

@extend .sf-mt-xxs; //0
@extend .sf-mb-xxs; //0

However @extend is not allowed inside media-queries (line:39-43):

@media only screen and (min-width: $screen-xs-min) and (max-width: $screen-sm-min) {
...
> li {
    @extend .sf-mt-xxs; //0
    @extend .sf-mb-xxs; //0
...
    }
}

Which leaves the following error unresolved:

>> Error: You may not @extend an outer selector from within @media.
>>        You may only @extend selectors within the same directive.
>>        From "@extend .sf-mt-xxs" on line 43 of assets/src/sass/sitefinity/navigation/_sitemap.scss

Foundation Sass invalid

Hi,

Currently the foundation package is broken and has invalid sass in a couple of the sitefinity files, I made a pull request which adds spaces between the colon and properties in places where it causes the build to break.

#328

MVC forms using wrong bootstrap class

Some of the form elements containers have the wrong bootstrap class:

Multiple choice, checkbox, dropdown and file upload use the class "from-group" instead of the bootstrap "form-group".

Also Paragraph form element uses class "forms-group" in Write.Default.cshtml file. Should be "form-group"

Looks like the other form elements use the correct class. I have fixed this in my project but thought you should be aware for future releases.

Feather-packages WCAG 2.0 Level A Issue: 3.1.1 Language of Page

Feather-packages WCAG 2.0 Level A Issue: 3.1.1 Language of Page
http://www.w3.org/TR/WCAG20/#meaning-doc-lang-id

To dynamically add a language attribute to the html tag of the page:

Here are the solution:
1.Please apply the following HTML code in \ResourcePackages
<FeatherPackage>\MVC\Views\Layouts\default.cshtml.

<html @Html.RenderHtmlLangAttribute()>

2.To create a custom HTML helper under \ResourcePackages\HtmlHelperExtensions.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace SitefinityWebApp.ResourcePackages
{
public static class HtmlHelperExtensions
{
public static IHtmlString RenderHtmlLangAttribute(this HtmlHelper helper)
{
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
string attributeString = string.Format(@"lang=""{0}""", culture.TwoLetterISOLanguageName);
return helper.Raw(attributeString);
}
}
}

Invalid CSS Warning when compiling sass files in Foundation package

I am getting 3 invalid css warnings when the sass files compile. While this is not a show-stopper, it would be nice to have it fixed in the source so I don't have to fix it with every new install of Feather.

Here are the details:
/Foundation/assets/src/sass/sitefinity/media/_sf-media.sass
line 20: "margin-top:-35px" change to "margin-top: -35px"

/Foundation/assets/src/sass/sitefinity/searchBox/_sf-search-box.sass
line 5: change "border:1px solid #ccc" to "border: 1px solid #ccc"
line 9: change "padding:3px" to "padding: 3px"

NPM error on "start" script in Bootstrap4 ResourcePackage

Getting an "ReferenceError: Unknown plugin "transform-runtime" specified in..." when "doing npm start".
I have ran "npm install" beforehand with not errors but babel-core's "option-manager.js" throws this exception because it claims it cannot find the transform-runtime plugin.

Foundation layout squished when MVC widget designer (Edit mode) is open

The Foundation package in Feather has a problem in the backend page editor. When I click on the Edit button to open the designer for a MVC widget, the page layout (undesirably) squishes and moves to the left of the screen behind the lightbox. This does not occur in Bootstrap, so we've determined it's a bug and is happening directly out-of-box with nothing (css, js, etc) added to the SF app.

The layout is full size (1000px wide) and centered. When I click on an MVC widget Edit button to open the designer, my layout is shrunk and mangled. Sometimes it restores back to normal after saving widget edits, sometimes it doesn't. Here is a screen cap example.
https://lh4.googleusercontent.com/-2nJ3ugZ5cIU/VcUMum7-MkI/AAAAAAAAAUE/DsDdt3whn_U/w659-h510-no/ExsqueezeMeFull.jpg

Please resolve this issue for future releases.
How can we resolve this in the meantime?

Thank you for your help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.