Coder Social home page Coder Social logo

ucf / ucf-wordpress-theme Goto Github PK

View Code? Open in Web Editor NEW
3.0 9.0 6.0 8.6 MB

A generic, responsive WordPress theme for UCF websites, built off of the Athena Framework.

PHP 74.79% JavaScript 7.46% CSS 0.24% SCSS 17.51%
wordpress wordpress-theme ucf-cm athena-framework hacktoberfest hacktoberfest-ucf

ucf-wordpress-theme's Introduction

UCF WordPress Theme

A generic, responsive WordPress theme for UCF websites, built off of the Athena Framework. Suitable as a standalone theme or as a parent theme.

Quick links


Documentation

Head over to the UCF WordPress Theme wiki for detailed information about this theme, installation instructions, and more.


Development

Note that compiled, minified css and js files are included within the repo. Changes to these files should be tracked via git (so that users installing the theme using traditional installation methods will have a working theme out-of-the-box.)

Enabling debug mode in your wp-config.php file is recommended during development to help catch warnings and bugs.

Requirements

  • node v16+
  • gulp-cli

Instructions

  1. Clone the UCF-WordPress-Theme repo into your local development environment, within your WordPress installation's themes/ directory: git clone https://github.com/UCF/UCF-WordPress-Theme.git

  2. cd into the new UCF-WordPress-Theme directory, and run npm install to install required packages for development into node_modules/ within the repo

  3. Optional: If you'd like to enable BrowserSync for local development, or make other changes to this project's default gulp configuration, copy gulp-config.template.json, make any desired changes, and save as gulp-config.json.

    To enable BrowserSync, set sync to true and assign syncTarget the base URL of a site on your local WordPress instance that will use this theme, such as http://localhost/wordpress/my-site/. Your syncTarget value will vary depending on your local host setup.

    The full list of modifiable config values can be viewed in gulpfile.js (see config variable).

  4. Run gulp default to process front-end assets.

  5. If you haven't already done so, create a new WordPress site on your development environment, and install and activate theme dependencies.

  6. Set the UCF WordPress Theme as the active theme.

  7. Make sure you've completed all theme configuration steps.

  8. Run gulp watch to continuously watch changes to scss and js files. If you enabled BrowserSync in gulp-config.json, it will also reload your browser when scss or js files change.

Contributing

Want to submit a bug report or feature request? Check out our contributing guidelines for more information. We'd love to hear from you!

ucf-wordpress-theme's People

Contributors

cadie avatar cjg89 avatar jmbarne3 avatar mcatech avatar rjucf avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ucf-wordpress-theme's Issues

Add option to use gtag.js instead of analytics.js

Description

Provide an option that allows users to either use Google's analytics.js script or their newer gtag.js script for incorporating Google Analytics (for users not using Google Tag Manager).

Why it's Important

gtag.js seems to be what Google is recommending now vs analytics.js. Providing the option to use one versus the other would preserve backward compatibility for any child theme that expects analytics.js to be loaded.

More info: https://developers.google.com/analytics/devguides/collection/gtagjs/migration

Alternatives

n/a

Possible Implementation

Add a new customizer option that lets users select either script. Default to analytics.js to preserve backward compatibility.

Additional context

n/a

Updated Athena-Framework

Describe the bug
As part of an ongoing effort to remove premium fonts from our projects, the Athena Framework version needs to be updated to v1.3.0+ which reconfigures the font stack to use the alternative fonts as the primary font.

Person post lists - remove text clipping on email addresses

Describe the bug

.person-email {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

overflow: hidden;, text-overflow: ellipsis;, and white-space: nowrap; should be removed/adjusted from the snippet linked above to ensure that users zoomed up to 200% will not have email contents clipped that users at a standard zoom level would be able to see.

Steps to Reproduce

n/a

Expected Behavior

Text should never be clipped/truncated more when users zoom their browser up to 200%.

Possible Fix

Remove the rules noted above; look into overflow-wrap: break-word to ensure long email addresses are able to break mid-string and not cause layout problems: https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap

Alternatively, consider replacing email addresses with generic "Email" text with envelope icon to better suit the limited horizontal space. (Use .sr-only text within each link with the person's name or email address to ensure they're unique)

Your environment:

n/a

Additional context

https://www.w3.org/WAI/WCAG21/Understanding/resize-text

UCF News shortcode 'modern' and 'card' layouts are not compatible with .bg-inverse parent element

See attached; examples are against a .jumbotron.bg-inverse wrapper.

screen shot 2018-10-15 at 2 58 41 pm

screen shot 2018-10-15 at 2 58 50 pm

Fixing the modern layout text is likely a matter of removing hard-coded text colors and replacing the hover bg color with a semi-transparent value instead.

Fixing the card layout will likely involve adding more specific color selectors for the inner card text, OR eliminating the forced #fff bg color on those cards and using a semi-transparent white border instead.

Ideally, both layouts should be able to function against either a light or dark background without having to introduce any new layout variants.

Error is displayed if ACF Pro is not activated

Fatal error: Call to undefined function get_field() in /var/www/demo/wordpress/wp-content/themes/UCF-WordPress-Theme/includes/header-functions.php on line 62

It would be nice if the theme displayed a message saying ACF was required instead of displaying an error message.

Deprecate usage of ucfwp_get_object_field_id()

ucfwp_get_object_field_id() was added to the theme assuming that ACF's get_field() only accepted a string field ID as its second argument; however, get_field() is actually written to accept an object ID as well, so pretty much all instances where ucfwp_get_object_field_id() is used can be removed/updated.

Would also recommend replacing the logic within ucfwp_get_object_field_id() to just return acf_get_valid_post_id(), which ACF uses internally to determine the string field ID, until we remove it from the theme entirely.

Look into Fontawesome v6 support

Description

Look into ways we could support Fontawesome 6. They have their own plugin and composer package these days for managing icons: https://fontawesome.com/docs/web/use-with/wordpress/

Why it's Important

To take advantage of new icons.

Alternatives

n /a

Possible Implementation

See link above. We might want to consider dropping the baked-in support for icons in this theme in favor of strictly using the plugin/composer package.

Additional context

n/a

Upgrade Athena Framework to latest version

Description

See title.

Why it's Important

To incorporate accessibility improvements introduced in v1.1.1, and to ensure we're including the latest+greatest updates.

Alternatives

n/a

Possible Implementation

Update package.json and re-run gulp tasks.

Additional context

n/a

Remove `setup_postdata()` call in `ucfwp_get_excerpt()`

Description

function ucfwp_get_excerpt( $post, $length=0 ) {
if ( ! ( $post instanceof WP_Post ) ) return '';
if ( $length === 0 ) {
$length = apply_filters( 'excerpt_length', $length );
}
// Allow custom excerpt modification short-circuit
$excerpt = apply_filters( 'ucfwp_get_excerpt_before', '', $post, $length );
if ( $excerpt ) {
return $excerpt;
}
setup_postdata( $post );
$custom_filter = function( $l ) use ( $length ) {
return $length;
};
add_filter( 'excerpt_length', $custom_filter, 999 );
$excerpt = wp_strip_all_tags( get_the_excerpt( $post ) );
remove_filter( 'excerpt_length', $custom_filter, 999 );
return apply_filters( 'ucfwp_get_excerpt', $excerpt, $post, $length );
}

This setup_postdata() call in this function should not be necessary and should be removed (assuming that doing so doesn't result in breakage).

Why it's Important

This line was originally added after reading this in the documentation for get_the_excerpt(): https://developer.wordpress.org/reference/functions/get_the_excerpt/#comment-content-2457 However, this comment is out of date--as of WP 5.2, get_the_excerpt() and wp_trim_excerpt() pass along the $post variable to get_the_content() when no excerpt is defined, eliminating the need for handling global post data manually. Additionally, it doesn't look like setup_postdata() sets up a global $post object to begin with, so calling setup_postdata() is not accomplishing its intended goal anyway.

Alternatives

n/a

Possible Implementation

Remove it and test.

Additional context

n/a

Add customizer option for Feeds

Add customizer option for to turn on Feeds for this theme. Default should be disabled.

Description
Add customizer option for to turn on Feeds for this theme. Default should be disabled.

Why it's Important
Easier for our users who use the theme to be able to turn on / off feeds with customizer than to add it code to a child-theme.

Possible Implementation
Same as the Colleges-Theme.

Additional context
This conversation:
https://teams.microsoft.com/l/message/19:[email protected]/1576009369918?tenantId=bb932f15-ef38-42ba-91fc-f3c59d5dd1f1&groupId=5e3e72e2-3599-47b3-bcfc-bb3d5b579f12&parentMessageId=1576009369918&teamName=UCFTeam-CAMPUS-Wordpress&channelName=help-themes&createdTime=1576009369918

Move registered jQuery to the document footer

Description

See title. We currently register it in the document head, but since we've made updates to our plugins that register custom JS to load them late + in the footer, and now that Gravity Forms 2.5+ supports jQuery in the footer, we should no longer need to do this.

If we do experience breakage with plugin JS after moving jQuery down, we need to just update said plugin(s) to ensure they properly register jquery as a dependency when they're enqueued.

Why it's Important

jQuery is a big file; moving it to the footer is one less (significant) blocking request when loading frontend content.

Alternatives

n/a

Possible Implementation

Update false to true here, and update function description + comments:

wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js', null, null, false );

Additional context

n/a

Upgrade to support Gulp 4 and Node 10

This theme is not usable on newer versions of Node 10, which breaks [email protected], graceful-fs@3 (broken because it and natives rely on node internals that were changed), and by extension gulp@3
see gulpjs/gulp#2162 gulpjs/gulp#2146 and nodejs/node#19786 for more details.

Gulp 4 currently doesn't work with this theme, because the signature of the function task has changed. See the error output of gulp default:

assert.js:337
    throw err;
    ^

AssertionError [ERR_ASSERTION]: Task function must be specified
    at Gulp.set [as _setTask] (site/wp-content/themes/UCF-WordPress-Theme/node_modules/undertaker/lib/set-task.js:10:3)
    at Gulp.task (site/wp-content/themes/UCF-WordPress-Theme/node_modules/undertaker/lib/task.js:13:8)
    at Object.<anonymous> (site/wp-content/themes/UCF-WordPress-Theme/gulpfile.js:53:6)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Liftoff.handleArguments (/usr/lib/node_modules/gulp/bin/gulp.js:116:3)
    at Liftoff.execute (/usr/lib/node_modules/gulp/node_modules/liftoff/index.js:203:12)
    at module.exports (/usr/lib/node_modules/gulp/node_modules/flagged-respawn/index.js:51:3)
    at Liftoff.<anonymous> (/usr/lib/node_modules/gulp/node_modules/liftoff/index.js:195:5)
    at /usr/lib/node_modules/gulp/node_modules/liftoff/index.js:165:9
    at /usr/lib/node_modules/gulp/node_modules/v8flags/index.js:110:14

`news`/"Vertical Feature" post list layout `show_excerpt` and `excerpt_length` support

Description

The UCF Post List SC plugin v2.1.0 will add support for new show_excerpt and excerpt_length shortcode attributes (see UCF/UCF-Post-List-Shortcode#38). The news layout built for this theme already utilizes its own show_excerpt attribute, and will be compatible with this update, but could be updated to support excerpt length adjustments.

Why it's Important

To reduce confusion and ensure we're supporting available shortcode attributes where appropriate.

Alternatives

n/a

Possible Implementation

  1. Update comment here: https://github.com/UCF/UCF-WordPress-Theme/blob/master/includes/post-list-functions.php#L37-L39 (note that we still need the actual attribute value override here, as the UCF Post List plugin's default for this attribute is false)
  2. Update ucfwp_post_list_display_news() to support excerpt_length attribute. https://github.com/UCF/UCF-WordPress-Theme/blob/master/includes/post-list-functions.php#L232-L237 Logic in this snippet may need to be tweaked a bit to support these existing layout-specific filters as well as UCF_Post_List_Common::get_excerpt()

Additional context

n/a

Look into supporting site icon customizer option with default icon value

Description

Look into ways we can support the site icon customizer setting while still providing a fallback favicon.ico.

WP 5.4 introduced do_favicon() and the do_faviconico hook, which should make this doable:
https://developer.wordpress.org/reference/functions/do_favicon/
https://make.wordpress.org/core/2020/02/19/enhancements-to-favicon-handling-in-wordpress-5-4/

Why it's Important

To make it easier to adjust a site icon without having to modify code.

Alternatives

Possible Implementation

Additional context

Remove custom News plugin styles

Description

See title. This file should be deleted and its import in _base.scss removed.

Why it's Important

With the release of the UCF News Plugin v3.0.0, these styles are no longer in use.

Alternatives

n/a

Possible Implementation

Remove them and update wiki documentation.

Additional context

n/a

Tidy up styling on custom link components post-Athena upgrade

Description

See title

Why it's Important

Some custom components will likely look a bit messy after upgrading to Athena v1.1.1 due to underlines being added to all links by default. Review these components and make adjustments as needed, while ensuring those links still provide adequate contrast to surrounding text and provide link affordance.

Alternatives

n/a

Possible Implementation

Review components and make adjustments in the theme.

Additional context

n/a

Make TinyMCE Formatting Optional

Description
Currently, the TinyMCE setting for the Athena-Shortcodes-Plugin is forced to true within this theme. Please, update the logic so that this setting it turned on by default on theme activation, but is not subsequently forced to true, effectively allowing the setting to be set to false.

Why it's Important
There may be instances where users want the TinyMCE to be disabled, so that their child theme or other plugins can handle that initialization and logic. We should allow for this customization.

Possible Implementation
Insert logic on activation to set this setting to true and remove the block of code linked to above.

Research
We need to evaluate the consequences of this setting being turned off for the theme. There may be unintended consequences to the TinyMCE formats not being applied.

Add option to display breadcrumbs below post content

Description

Add an option to display a basic Athena breadcrumb bar underneath the page content (above the site footer).

We've implemented this already in the FinAid Child Theme as a feature dependent on Yoast SEO, but we'll want to add more granular control over how breadcrumbs are activated, and ensure compatibility with our other CPT/taxonomy plugins (FAQs comes to mind, since it requires special overrides).

Why it's Important

  • We've started using breadcrumbs on a handful of sites, and it'd be nice to incorporate it here vs in child themes.
  • Breadcrumbs offer extra context and navigation for users.

Alternatives

Possible Implementation

Example from Coronavirus Child Theme: https://github.com/UCF/Coronavirus-Child-Theme/pull/17/files

Additional context

Move the "featured" Pegasus list shortcode layout to UCF-Pegasus-List-Shortcode plugin

Description

Move the custom "featured" layout for the [ucf-pegasus-list] shortcode out of this theme and into the UCF-Pegasus-List-Shortcode plugin (https://github.com/UCF/UCF-Pegasus-List-Shortcode).

Why it's Important

It'll be easier to manage from the plugin vs remembering the custom layout exists within this theme.

Alternatives

n/a

Possible Implementation

Copy the layout over to the plugin, remove it from this theme, and update documentation for both projects.

Additional context

n/a

Remove wp-a11y script enqueue

Description

See title.

Why it's Important

It's not actively in use by any JS provided by the theme. It's inclusion is likely a holdover from the Main Site Theme, before wp-a11y was moved to the Degree Search Plugin as a script dependency.

Alternatives

n/a

Possible Implementation

Just remove it, and update the wiki's supported plugins list to note that the Degree Search Plugin v0.7.7+ is supported.

Additional context

n/a

Initial Documentation

Need to add a wiki and document all the things.

Getting Started

  • Home
  • Installation

What's Included

  • Templates
  • Components and Utilities
  • Plugin Extensions and Overrides
    • UCF Post List "News" layout; Resource Link/Source Taxonomy support

For Developers

  • Template Parts

    • Headers
    • Header contents
    • Navs
    • Footers
  • Actions and Filters

    • Theme activation
    • Theme configuration
    • Theme assets and meta tags
    • Galleries
    • Plugin overrides
  • Action and Filter Hooks

    • Header and footer
    • Media backgrounds
    • Template parts
    • Galleries
    • Plugin overrides (hooks for custom News post list layout)
  • Pluggable Functions

    • Header and footer
    • Media backgrounds
    • Plugin overrides
  • Utility functions

Display UCF Footer contents within theme's <footer> tag

Description

See title.

Why it's Important

See UCF/UCF-Footer-Plugin#35

Alternatives

n/a

Possible Implementation

The rnd-footer branch contains functional code that accomplishes this when the UCF WP Theme is used on its own (not as a parent theme) with the updates in the UCF Footer plugin's footer-location branch: https://github.com/UCF/UCF-Footer-Plugin/tree/footer-location. However, I have not found a way to make this feature work and cascade into child themes without implementing breaking changes. I'm putting this in the backlog for now; hopefully this can be addressed further in the next major theme release.

Additional context

n/a

Images stretched vertically after WordPress update

Describe the bug
After upgrading WordPress from the 5.4 branch to the 5.6 branch, images on several of our sites were stretched vertically.

Steps to Reproduce
It happened by default.

Expected Behavior
This is reportedly a known issue since the 5.5 update.

Possible Fix
Adding the following CSS through the customizer fixed the issue for our sites:
img {max-width:100%; height:auto}

Your environment:

  • Device: Desktop
  • OS: Windows 10
  • Browser & Version: Chrome
  • WordPress Version: 5.6
  • Theme Version: 0.7.0

Additional context
This screen recording shows the before-and-after of the CSS fix.
https://d.pr/v/DrcoGj

Add aria-label to site/header navigation

This came up as an issue for a page on the Admissions site in SiteImprove:

Description of this issue:
The page contains two or more HTML5 or WAI-ARIA landmarks of the same type that has not been named. Users might not know the difference if it's not somehow explained.
How to fix it:
Use the WAI-ARIA attributes 'aria-label' or 'aria-labelledby' to create unique names that describe the purpose of each landmark.

It's an issue on pages that have a section menu navigation included. To solve this we could add an aria-label to the header nav element that echos out the site name plus "Site Navigation" or "Header Navigation" to differentiate.

<nav class="navbar navbar-toggleable-md navbar-mainsite py-2<?php echo $image ? ' py-sm-4 navbar-inverse header-gradient' : ' navbar-inverse bg-inverse-t-3 py-lg-4'; ?>" role="navigation">

Add gallery styles

Consider porting over an upgraded version of the backend gallery option adjustments, layout system, and thumbnail grid layout that are being added to the Downtown theme.

Customize > Analytics options don't support G Analytics 4 GTags

Describe the bug

Theme's customize > analytics options don't seem to support Google Analytics 4 new measurement IDs. UA-IDs work properly, but Analytics 4 uses measurement IDs with a G- prefix. Neither the GTM Container ID or the Google Analytics Account fields support this.

Steps to Reproduce

  1. Go to WP Admin > Theme > Customize > Analytics
  2. Place G-********** code in either Google Analytics Account or Google Tag Manager Container ID field
  3. Neither change worked to send traffic data to Google Analytics 4 Properties, but works with UA Account IDs

Expected Behavior

Possible Fix

Your environment:

  • Device: Windows Desktop
  • OS: Windows 10 21h2
  • Browser & Version Chrome 103
  • WordPress Version: 5.9.3
  • Theme Version: 0.7.4

Additional context

Footer needs unique ARIA label

Describe the bug

When combined with the UCF Footer, or when any other <footer> element is in use on any page using this theme, non-distinguishable landmark warnings get triggered by accessibility scanners.

Steps to Reproduce

Inspect a page in SiteImprove with the UCF Footer and a site-specific footer.

Expected Behavior

The <footer> defined in the footer.php template part should have a unique ARIA label.
https://github.com/UCF/UCF-WordPress-Theme/blob/master/template-parts/footer.php#L9

Possible Fix

Add an aria-label attribute.

Your environment:

n/a

Additional context

See also: UCF/UCF-Footer-Plugin#18

Make update_option() calls conditional

Update all explicit update_option() calls to check the existing option value before forcing an update to prevent excessive db calls. (We do this in a few places to force some default plugin options for this theme.)

Separate font awesome from the main theme stylesheet

Description

Remove font awesome from the main theme stylesheet, and include it as a separate asset so that child themes can de-register it as necessary.

We could also look into adding an option for toggling between FA v4 and v5.

Doing this will require updating some Sass and theme template files that depend on v4 icons being present.

Why it's Important

It would be really nice if newer sites could utilize FA v5.

Alternatives

Possible Implementation

Consider replacing usage of FA v4 icons in the theme with SVGs.

Additional context

Replace usage of custom `after_body_open` action hook with `wp_body_open`

Description

See title. Apparently this hook became a thing in WP 5.2.

Why it's Important

So that plugins expecting the wp_body_open action to be in place in themes can utilize it.

Alternatives

n/a

Possible Implementation

For backward compatibility, we would replace all instances of after_body_open usage with wp_body_open, and then add something like:

function ucfwp_after_body_open() {
	do_action( 'after_body_open' );
}

add_action( 'wp_body_open', 'ucfwp_after_body_open' );

to our includes/deprecated.php to ensure backward compatibility with child themes that expect the old custom hook to exist.

Additional context

https://developer.wordpress.org/reference/functions/wp_body_open/

Modify attachment permalinks to link directly to the attachment when single attachment views are disabled

Description

Assuming that a child theme hasn't re-enabled single attachment views by un-registering the ucfwp_kill_unused_templates hook (https://github.com/UCF/UCF-WordPress-Theme/blob/master/includes/config.php#L364-L378), it would be nice if attachment permalinks displayed in the WordPress admin didn't reference these unused views. Ideally, if single attachment views are disabled, a single attachment's permalink should direct straight to the file, and/or not be displayed in the WordPress admin at all.

Screen Shot 2019-03-22 at 11 49 33 AM

Why it's Important

Would help reduce confusion, since most users expect this view to work out of the box.

Alternatives

n/a

Possible Implementation

attachment_link hook?

Additional context

n/a

Support for "posts_per_row" parameter for People layout

Description

For better integration with the UCF Post List Shortcode, add support for the "posts_per_row" parameter with the People layout.

Why it's Important

Making this request for the Burnett Honors College website, this page in particular. We use the People layout on three other pages as well, which would benefit as well.

Additional context

How the page looks currently (rows are unbalanced):
image
How the page looks after resizing (we would like it to look this this initially, i.e. "posts_per_row=4"):
image

No matter how much room the shortcode has to display the space, it always shows 6 people initially:
image

Add filter to conditionally insert the UCF Header placeholder div in header.php

Description

https://github.com/UCF/UCF-WordPress-Theme/blob/master/header.php#L8

Add a filter to allow child themes to conditionally enable/disable the placeholder div for the UCF Header from being displayed in the header template.

Why it's Important

Child themes may need to have the option of disabling the UCF Header in certain templates entirely. Currently the only way to accomplish this is to completely override the header.php template in the child theme due to this placeholder div being inserted here.

Alternatives

n/a

Possible Implementation

See above

Additional context

n/a

Remove semantic <section>s from footer columns

Describe the bug

<section> elements in our footer template part cause non-distinguishable landmark warnings to be thrown due to a lack of a label on each section.

Steps to Reproduce

n/a; just look at the template part file

Expected Behavior

All non-unique landmarks defined in the theme should have labels assigned to them. Because we can't define a specific enough label for these footer columns, we should remove the landmark association with them.

Possible Fix

Replace these sections with divs or an alternate semantically-appropriate element without the landmark association.

Your environment:

(all)

Additional context

n/a

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.