Initial export of the repository

Signed-off-by: Ryan McCue <me@ryanmccue.info>
This commit is contained in:
Ryan McCue 2025-06-05 11:51:30 +02:00
commit 583d434505
76 changed files with 39023 additions and 0 deletions

7
.distignore Normal file
View file

@ -0,0 +1,7 @@
# Main
.git/
.github/
bin/
node_modules/
.gitignore
.distignore

21
.editorconfig Normal file
View file

@ -0,0 +1,21 @@
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = tab
[*.yml]
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false
[{*.txt,wp-config-sample.php}]
end_of_line = crlf

68
.github/workflows/generate-pot-pr.yml vendored Normal file
View file

@ -0,0 +1,68 @@
name: Generate POT PR
on:
workflow_dispatch:
push:
branches:
- main
jobs:
generate-pot:
name: Generate POT PR
if: github.repository == ${{ github.event.repository.full_name }}
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Check out source code
uses: actions/checkout@v4
- name: Set up PHP environment
uses: shivammathur/setup-php@v2
with:
php-version: "7.4"
- name: Setup WP-CLI
uses: godaddy-wordpress/setup-wp-cli@1
- name: Configure git user
run: |
git config user.name ${{ github.actor }}
git config user.email ${{ github.actor }}@users.noreply.github.com
- name: Check if remote branch exists
run: echo "REMOTE_BRANCH_EXISTS=$([[ -z $(git ls-remote --heads origin generate-pot) ]] && echo "0" || echo "1")" >> $GITHUB_ENV
- name: Create branch to base pull request on
if: env.REMOTE_BRANCH_EXISTS == 0
run: |
git checkout -b generate-pot
- name: Fetch existing branch to add commits to
if: env.REMOTE_BRANCH_EXISTS == 1
run: |
git fetch --all --prune
git checkout generate-pot
git pull --no-rebase
- name: Generate POT
run: |
wp i18n make-pot . "./languages/${{ github.event.repository.name }}.pot" --headers='{"Report-Msgid-Bugs-To":"https://github.com/${{ github.event.repository.full_name }}/issues"}'
- name: Check if there are changes
run: echo "CHANGES_DETECTED=$([[ -z $(git status --porcelain) ]] && echo "0" || echo "1")" >> $GITHUB_ENV
- name: Commit changes
if: env.CHANGES_DETECTED == 1
run: |
git add "./languages/${{ github.event.repository.name }}.pot"
git commit -s -m "Generate POT - $(date +'%Y-%m-%d')"
git push origin generate-pot
- name: Create pull request
if: env.CHANGES_DETECTED == 1 && env.REMOTE_BRANCH_EXISTS == 0
run: gh pr create --base ${BRANCH_NAME} --head generate-pot --title "Generate POT - $(date +'%Y-%m-%d')" --body "Automated PR"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}

43
.github/workflows/releases.yml vendored Normal file
View file

@ -0,0 +1,43 @@
on:
push:
tags:
- "**"
name: Upload Release Asset
jobs:
build:
name: Upload Release Asset
runs-on: ubuntu-latest
permissions:
attestations: write
id-token: write
contents: write
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Get tag
id: tag
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Build project
run: git archive -o /tmp/${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.zip --prefix=${{ github.event.repository.name }}/ ${{ steps.tag.outputs.tag }}
- name: Create WP distribution files
run: bin/bundle.sh
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
/tmp/${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.zip
/tmp/fair-dist/*
- name: Build provenance attestation
uses: actions/attest-build-provenance@v2
with:
subject-path: /tmp/${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.zip

View file

@ -0,0 +1,32 @@
name: Update browserslist regex
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1" # Every Monday at midnight
jobs:
update-browserslist-regex:
name: Update browserslist regex
if: github.repository == ${{ github.event.repository.full_name }}
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Check out source code
uses: actions/checkout@v4
- name: Update browserslist
run: ./bin/update-browsers.sh
- name: Create pull request
uses: peter-evans/create-pull-request@v7
with:
branch: update-browserslist
commit-message: "Update browser regex from browserslist"
title: "[browserslist] Update browser regex"
body: "Automated update of browser regex from browserslist."
base: main
signoff: true
delete-branch: true

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
/node_modules/
*.bak
/.vscode

10
.wp-env.json Normal file
View file

@ -0,0 +1,10 @@
{
"phpVersion": "7.4",
"plugins": [
"norcross/airplane-mode",
"johnbillion/query-monitor#3.17.2"
],
"mappings": {
"wp-content/plugins/plugin": "."
}
}

35
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,35 @@
# Contributing
FAIR is an open project, and we welcome contributions from all.
FAIR is administered directly by the [Technical Steering Committee](https://github.com/openwebff/tsc). The FAIR plugin is currently maintained by the Technical Independence Working Group, in conjunction with the FAIR Working Group; this maintenance will transition to the FAIR WG's responsibility once the independence work is complete.
All contributions must be made under the GNU General Public License v2, and are made available to users under the terms of the GPL v2 or later.
Contributors are required to sign-off their commits to agree to the terms of the [Developer Certificate of Origin (DCO)](https://developercertificate.org/). You can do this by adding the `-s` parameter to `git commit`:
```sh
$ git commit -s -m 'My commit message.'
```
**Please Note:** This is adding a _sign-off_ to the commit, which is not the same as *signing* your commits (which involves GPG keys).
## Development Environment
This plugin is ready to use with wp-env for local development, with a default configuration included in the repository. `npm run env` is an alias for `wp-env`:
```sh
# Install wp-env and other dependencies.
$ npm install
# Start the development server
$ npm run env start
# Get the logs
$ npm run env logs
# Stop the development server
$ npm run env stop
```
By default, wp-env is configured with PHP 7.4 (our minimum supported version), as well as Airplane Mode to avoid inadvertent requests.

339
LICENSE Normal file
View file

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

36
README.md Normal file
View file

@ -0,0 +1,36 @@
# FAIR
FAIR is a system for using **F**ederated **a**nd **I**ndependent **R**epositories in WordPress.
This repository contains the plugin for installation into WordPress.
## Description
This plugin prevents all calls to WordPress.org, WordPress.com, Gravatar.com, and any other connection to Automattic servers from the core WordPress code.
### Features
* Credits - Replace calls to the update API for version information. Prevent loading Gravatars for contributors.
* Default Repository - Changes the default repository for extensions to `api.aspirecloud.net`
* Importers - Replace the retrieval of popular import plugins.
* Openverse - Disable the media category in the block editor.
* Salts - Prevents calls to the WordPress.org API for salt generation.
* Version Check - Prevents calls to the WordPress.org API for version checks.
### Assets
Assets normally hosted on WordPress.org or the WordPress.com CDN will be hosted on `{{ LOCATION_TBD }}`.
* Language Packs
* Credit Page images
* Twemoji
## Contributing
See [CONTRIBUTING.md](./CONTRIBUTING.md) for information on contributing.
The FAIR plugin is currently maintained by the Technical Independence Working Group, in conjunction with the FAIR Working Group.
FAIR is licensed under the GNU General Public License, v2 or later. Copyright 2025 the contributors.
WordPress is a registered trademark of the WordPress Foundation. FAIR is not endorse by, or affiliated with, the WordPress Foundation.

32
assets/css/admin.css Normal file
View file

@ -0,0 +1,32 @@
.fair-settings .row {
align-items: flex-start;
display: flex;
gap: 1em;
margin-bottom: 1em;
}
.fair-settings .row > .label-wrapper {
flex: 0 0 auto;
font-weight: 600;
line-height: 1.3;
max-width: 30em;
min-width: 20em;
}
.fair-settings .row .description {
margin-top: 0.5em;
}
@media screen and (max-width: 782px) {
.fair-settings .row {
flex-direction: column;
gap: 0;
}
.fair-settings .row > .label-wrapper {
max-width: 100%;
padding-bottom: 0.5em;
}
.fair-settings .row .field select,
margin: 0;
}
}

View file

@ -0,0 +1,5 @@
.fair-notification {
display: block;
text-align: end;
font-style: italic;
}

62
assets/js/fair-avatars.js Normal file
View file

@ -0,0 +1,62 @@
const { __ } = wp.i18n;
/**
* Now let's get started.
*/
jQuery( document ).ready( function($) {
var mediaUploader;
// Handle adding a new avatar.
$( 'tr.user-profile-picture' ).on( 'click', '#fair-avatar-upload', function(e) {
e.preventDefault();
// If the media frame already exists, reopen it.
if ( mediaUploader ) {
mediaUploader.open();
return;
}
mediaUploader = wp.media({
title: __( 'Choose Profile Picture', 'fair' ),
button: {
text: __( 'Use as Profile Picture', 'fair' )
},
library: {
type: ['image']
},
multiple: false
});
mediaUploader.on( 'select', function() {
var attachment = mediaUploader.state().get( 'selection' ).first().toJSON();
if ( attachment.type !== 'image' ) {
return false;
}
var alttext = ! attachment.alt ? fairAvatars.defaultAlt : attachment.alt;
// Add the value, swap the image, and show the button.
$( '#fair-avatar-id' ).val( attachment.id );
$( '.user-profile-picture td img.avatar' ).attr( { src: attachment.url, alt: alttext } );
$( '#fair-avatar-remove' ).removeClass( 'button-hidden' );
wp.a11y.speak( __( 'Profile Picture Assigned', 'fair' ) );
});
mediaUploader.open();
});
// Handle removing an existing avatar.
$( 'tr.user-profile-picture' ).on( 'click', '#fair-avatar-remove', function(e) {
e.preventDefault();
// Remove the value, swap the image, hide the button, and set the focus.
$( '#fair-avatar-id' ).val('');
$( '.user-profile-picture td img.avatar' ).attr( { src: fairAvatars.defaultImg, alt: fairAvatars.defaultAlt } );
$( this ).addClass( 'button-hidden' );
$( '#fair-avatar-upload' ).trigger( 'focus' );
wp.a11y.speak( __( 'Profile Picture Removed', 'fair' ) );
});
});

69
bin/bundle.sh Executable file
View file

@ -0,0 +1,69 @@
#!/bin/bash -e
#
# Create our distribution zips.
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
# Prepare the distribution directory.
DIST_DIR="/tmp/fair-dist"
[ -d "$DIST_DIR" ] && rm -rf "$DIST_DIR"
mkdir "$DIST_DIR"
touch /tmp/fair-dist/MD5SUMS
touch /tmp/fair-dist/SHA1SUMS
touch /tmp/fair-dist/SHA256SUMS
touch /tmp/fair-dist/SHA384SUMS
# Bundle our plugin first.
[ -d /tmp/fair-temp ] && rm -rf /tmp/fair-temp
mkdir -p /tmp/fair-temp/wordpress/wp-content/plugins/fair
rsync -a --exclude-from="$SCRIPT_DIR/../.distignore" "$SCRIPT_DIR/.." /tmp/fair-temp/wordpress/wp-content/plugins/fair
echo "Fetching WordPress version data" >&2
VERSION_DATA=$(curl -s https://api.wordpress.org/core/version-check/1.7/)
AVAILABLE_VERSIONS=$(echo "$VERSION_DATA" | jq -r '.offers[] | .version')
# For each available version, download WP and add our plugin to the WP zip.
for VERSION in $AVAILABLE_VERSIONS; do
# Skip repeat versions via the API.
if [ -f "$DIST_DIR/wordpress-$VERSION-fair.zip" ]; then
echo "Skipping $VERSION (already bundled)" >&2
continue
fi
echo "Bundling $VERSION..." >&2
# Download the WP zip.
WP_ZIP_URL="https://wordpress.org/wordpress-$VERSION.zip"
WP_ZIP_FILE="/tmp/fair-temp/wordpress-$VERSION.zip"
echo " Downloading $WP_ZIP_URL..." >&2
curl -sSL "$WP_ZIP_URL" -o "$WP_ZIP_FILE"
EXPECTED_HASH=$(curl -sSL "$WP_ZIP_URL.sha1")
# Verify the checksum.
# (sha1 is suboptimal, but it's all we've got.)
echo " Verifying checksum" >&2
echo "$EXPECTED_HASH *$WP_ZIP_FILE" | sha1sum -c --status - || { echo "Checksum verification failed!" >&2; exit 1; }
# Add the plugin into the existing zip.
echo " Adding plugin" >&2
cd /tmp/fair-temp
zip -r /tmp/fair-temp/wordpress-$VERSION.zip wordpress/ >&2
cd - > /dev/null
# Rename altered zip.
mv /tmp/fair-temp/wordpress-$VERSION.zip "$DIST_DIR/wordpress-$VERSION-fair.zip"
# Recalculate hashes.
echo " Calculating hashes" >&2
cd "$DIST_DIR"
md5sum -b "wordpress-$VERSION-fair.zip" >> /tmp/fair-dist/MD5SUMS
sha1sum -b "wordpress-$VERSION-fair.zip" >> /tmp/fair-dist/SHA1SUMS
sha256sum -b "wordpress-$VERSION-fair.zip" >> /tmp/fair-dist/SHA256SUMS
sha384sum -b "wordpress-$VERSION-fair.zip" >> /tmp/fair-dist/SHA384SUMS
cd - > /dev/null
# Output filename.
echo $DIST_DIR/wordpress-$VERSION-fair.zip
done
# Clean up.
rm -rf /tmp/fair-temp

26
bin/update-browsers.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
#
# Update the browser regex in the version check script.
#
# Uses a browserslist query to generate this data.
set -eo pipefail
BROWSER_QUERY="defaults, unreleased versions"
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
VERSION_CHECK_FOO="$SCRIPT_DIR/../inc/version-check/foo.txt"
VERSION_CHECK_FILE="$SCRIPT_DIR/../inc/version-check/namespace.php"
LINE_START="const BROWSER_REGEX = ";
echo "Fetching regex for query: '$BROWSER_QUERY'" >&2
REGEX=$(npx browserslist-useragent-regexp "$BROWSER_QUERY")
echo " $REGEX" >&2
# Double-escape backslashes.
ESCAPED="$(printf '%s\n' "$REGEX" | sed 's/\\/\\\\/g')"
# Replace the line in the file.
echo "Updating $VERSION_CHECK_FILE" >&2
sed -i.bak "s#$LINE_START.*#$LINE_START'$ESCAPED';#g" "$VERSION_CHECK_FILE"
echo "Updated! (Backup saved to $VERSION_CHECK_FILE.bak)" >&2

22
docs/config.md Normal file
View file

@ -0,0 +1,22 @@
# Configuration
FAIR is designed to operate without user configuration, and with minimal changes to user workflows. Some configuration is provided for specific parts of FAIR for users and for hosts.
## Central repository mirror URL
By default, plugin and theme data for the central repository (`wordpress.org`) is provided from the AspirePress mirror at api.aspirecloud.net.
For hosts which prefer to use their own mirror for plugin and theme data, the `FAIR_DEFAULT_REPO_DOMAIN` constant can be set to a different domain. This domain must mirror the APIs available at `api.wordpress.org/plugins/` and `api.wordpress.org/themes/` (and sub-APIs thereof):
```php
define( 'FAIR_DEFAULT_REPO_DOMAIN', 'api.myhost.example.com' );
```
This can also be configured to use the original WordPress.org domain by setting the constant to api.wordpress.org:
```php
define( 'FAIR_DEFAULT_REPO_DOMAIN', 'api.wordpress.org' );
```
This constant only affects the default repository used for plugin and theme data. Using a different mirror (including WordPress.org) for code distribution does not affect any other APIs (such as the events API or Gravatar).

View file

@ -0,0 +1,27 @@
# Use Markdown Architectural Decision Records
## Context and Problem Statement
We want to record architectural decisions made in this project independent of whether decisions concern the architecture ("architectural decision record"), the code, or other fields.
Which format and structure should these records follow?
## Considered Options
* [MADR](https://adr.github.io/madr/) 4.0.0 The Markdown Architectural Decision Records
* [Michael Nygard's template](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions) The first incarnation of the term "ADR"
* [Sustainable Architectural Decisions](https://www.infoq.com/articles/sustainable-architectural-design-decisions) The Y-Statements
* Other templates listed at <https://github.com/joelparkerhenderson/architecture_decision_record>
* Formless No conventions for file format and structure
## Decision Outcome
Chosen option: "MADR 4.0.0", because
* Implicit assumptions should be made explicit.
Design documentation is important to enable people understanding the decisions later on.
See also ["A rational design process: How and why to fake it"](https://doi.org/10.1109/TSE.1986.6312940).
* MADR allows for structured capturing of any decision.
* The MADR format is lean and fits our development style.
* The MADR structure is comprehensible and facilitates usage & maintenance.
* The MADR project is vivid.

View file

@ -0,0 +1,164 @@
---
# These are optional metadata elements. Feel free to remove any of them.
status: proposed
date: 2025-04-19
---
# Coding Standards
## Context and Problem Statement
In order to work effectively as a team, we need to agree on coding standards for consistency.
## Considered Options
* WP Core standard ("WordPress" in wpcs)
* PSR-12
* A variant of either
* Other modernised WP standards from the ecosystem
## Rationale
We have two primary options to pick from, namely WP' standards or an industry standard like PSR-4.
Given the nature of this project as something that may become part of core itself, staying close to the patterns already used in core would assist with merging the project in the future. Additionally, with a large number of contributors who are familiar with WP core, there's a greater familiarity generally with this style than with rest-of-PHP standards like PSR-4.
However, the WP standards don't fully account for some modern coding techniques, like namespaces. The norms of core development can also be outdated in various aspects, such as long arrays (`array()` instead of `[]`) or the use of classes as pseudo-namespaces (since much of core predates real namespaces). Alternative WordPress-based standards such as the Human Made standard account for this while remaining "WordPress-y", but are by their nature less familiar.
## Decision Outcome
Proposed outcome is a standard derived from the WordPress coding standards, with customization as necessary inspired by the Human Made standard. This achieves a good balance of familiarity and modernity.
## Coding Standard Details
This project uses the WP coding standards, with various additions based on other standards (such as the Human Made coding standards).
The following represent the changes and additions compared to the standard WP coding standards.
### File Layout
PHP files should either declare symbols (classes, functions, etc) or run code (function calls, etc), but not both. The only place that code is run at the top-level outside of a function/class should be in the root `plugin.php`
(An exception is allowed for `require` statements only if there isn't a better way to include those files, but preferentially these should be included in the top-level `plugin.php`)
Classes must be in their own file, which should not declare any other functions or classes, or run any code.
Generally, the file should follow the following order (with each group separated by a blank line):
* `namespace` declaration
* `use` declarations
* `const` declarations for the namespace
* require when allowed
* Declarations or run code
For namespaced functions which are primarily action and filter callbacks, the `add_action`/`add_filter` calls should generally live in a `bootstrap()` function in the namespace. This allows the file to be loaded without adding hooks immediately, but still allows the hook declarations to live with the callbacks.
### Project Layout and File Naming
`inc/` contains the bulk of the code for the project, with only necessary files (like the `plugin.php` entrypoint) living outside of it.
Each directory within `inc/` directly represents a "module" of functionality within FAIR, and is designed so that each module may be maintained independently. Generally speaking, avoid adding any functionality directly outside of a module unless it is strictly necessary.
Namespaces (excluding the parent `FAIR` namespace) are mapped to filesystem directories (or files) by lower-casing them and replacing underscores with dashes. For example, `FAIR\Foo_Bar\Quux\Zorb` becomes `inc/foo-bar/quux/zorb`.
If a namespace consists entirely of functions and constants, contains no classes, and contains no sub-namespaces, it can live in a file directly. For example, `FAIR\Foo_Bar\Quux` could live at `inc/foo-bar/quux.php`.
Namespaces which have sub-namespaces or have classes must use a directory instead, with any namespace symbols (functions, constants, etc) in a `namespace.php` file inside this directory.
Generally, you should use the directory style when you expect more classes or subnamespaces, and you should use the file style when you expect this to be functions only. Both styles have their place, and you should carefully consider the future of this code when you decide.
For example, the file layout could look like:
```sh
inc/ # namespace FAIR
inc/foo/ # namespace FAIR\Foo
inc/foo/class-bar.php # namespace FAIR\Foo, class Bar
inc/foo/namespace.php # namespace FAIR\Foo, functions
inc/quux/ # namespace FAIR\Quux
inc/quux/namespace.php # namespace FAIR\Quux, functions
inc/quux/zorb/ # namespace FAIR\Quux\Zorb
inc/quux/zorb/class-waldo.php # namespace FAIR\Quux\Zorb, class Waldo
inc/quux/zorb/thud.php # namespace FAIR\Quux\Zorb\Thud, functions
inc/quux/zorb/xyzzy.php # namespace FAIR\Quux\Zorb\Xyzzy, functions
```
### Namespaces and Classes
FAIR is built for a modern era of PHP, and so is built namespace-first. Generally, non-stateful functions should live in namespaces, and classes should be used only for object-oriented, stateful needs.
Namespaces should be logical groupings of related functionality. Typically, this means along feature lines, not along technology lines; a WP-CLI command for example should live alongside the functionality it serves, rather than in a dedicated `FAIR\CLI` namespace.
Where functions or classes from other namespaces are used, the namespace should be explicitly `use`'d into the file. You should `use` classes directly, but avoid `use function`, as this gets confusing with the overlap of large number of un-prefixed functions in WP. `use` statements should not start with a redundant `\`, and there's no need to `use` global functions.
Avoid aliasing unless you need to, as it reduces the readability of the code.
```php
// Good:
use FAIR\Foo;
use FAIR\Foo\Bar;
Foo\some_function();
new Bar();
// Bad:
use \FAIR\Foo;
use function FAIR\Foo\some_function();
\get_option();
```
### Classes
Use classes for places where you need objects, and avoid using them only for pseudo-namespacing. (A class composed of all `static` functions should likely be a namespace instead.)
Class methods and properties should always be marked with a visibility keyword, one of `public`, `protected` or `private`.
Generally speaking, `private` should be avoided in favour of `protected`, as it doesn't allow subclasses to access the method. In most cases, this is an unnecessary hindrance, and leads to subclasses simply copy-and-pasting the code when they need to override it.
In some cases, for forward compatibility, `private` or `final` may be required. Use these sparingly.
### Statements
Avoid using Yoda-style backwards statements, as they hurt readability.
Anonymous functions should use nacin-spacin, with extra spaces between elements. This applies both for long (`function ()`) and short (`fn ()`) functions:
```php
// Good:
function () {}
function ( $x ) {}
function ( $x ) use ( $y ) {}
fn ( $x ) => $x + 1
// Bad:
function() {}
function( $x ) {}
function( $x ) use( $y ) {}
function( $x ) use ( $y ) {}
fn($x)=>$x+1
fn($x) => $x + 1
```
Arrays should be specified as short arrays (`[]`). Unless the array is a list of short items (such as a few integers or a couple of strings), each item should be on its own line.
### Documentation
Generally, follow the WP standard for inline documentation.
An exception is made for the description. Descriptions should be written in the imperative (as a command) rather than third-person indicative. This is the **opposite** of what WordPress coding standards recommend.
This is an intentional stylistic choice and deviation from the WordPress coding standards. The WordPress standards produce an incomplete sentence, missing a subject, which can be confusing. The imperative reads more clearly in many cases.
The short description should be able to replace the function name. Doing this for all your functions should produce a sentence that describes what you're doing (just like a flowchart!):
* Bad: "Queries the database. Formats the data for output."
* Good: "Query the database. Format the data."

5
docs/decisions/README.md Normal file
View file

@ -0,0 +1,5 @@
# Decisions
Decisions on the architecture of this plugin are made through Architecture Decision Records (ADRs), following the patterns documented at <https://adr.github.io/> (and using the <https://adr.github.io/madr/> templates).
Decisions are made on a consensus basis of the working group, as documented in [CONTRIBUTING.md](../../CONTRIBUTING.md).

View file

@ -0,0 +1,74 @@
---
# These are optional metadata elements. Feel free to remove any of them.
status: "{proposed | rejected | accepted | deprecated | … | superseded by ADR-0123"
date: {YYYY-MM-DD when the decision was last updated}
decision-makers: {list everyone involved in the decision}
consulted: {list everyone whose opinions are sought (typically subject-matter experts); and with whom there is a two-way communication}
informed: {list everyone who is kept up-to-date on progress; and with whom there is a one-way communication}
---
# {short title, representative of solved problem and found solution}
## Context and Problem Statement
{Describe the context and problem statement, e.g., in free form using two to three sentences or in the form of an illustrative story. You may want to articulate the problem in form of a question and add links to collaboration boards or issue management systems.}
<!-- This is an optional element. Feel free to remove. -->
## Decision Drivers
* {decision driver 1, e.g., a force, facing concern, …}
* {decision driver 2, e.g., a force, facing concern, …}
* … <!-- numbers of drivers can vary -->
## Considered Options
* {title of option 1}
* {title of option 2}
* {title of option 3}
* … <!-- numbers of options can vary -->
## Decision Outcome
Chosen option: "{title of option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.
<!-- This is an optional element. Feel free to remove. -->
### Consequences
* Good, because {positive consequence, e.g., improvement of one or more desired qualities, …}
* Bad, because {negative consequence, e.g., compromising one or more desired qualities, …}
* … <!-- numbers of consequences can vary -->
<!-- This is an optional element. Feel free to remove. -->
### Confirmation
{Describe how the implementation of/compliance with the ADR can/will be confirmed. Are the design that was decided for and its implementation in line with the decision made? E.g., a design/code review or a test with a library such as ArchUnit can help validate this. Not that although we classify this element as optional, it is included in many ADRs.}
<!-- This is an optional element. Feel free to remove. -->
## Pros and Cons of the Options
### {title of option 1}
<!-- This is an optional element. Feel free to remove. -->
{example | description | pointer to more information | …}
* Good, because {argument a}
* Good, because {argument b}
<!-- use "neutral" if the given argument weights neither for good nor bad -->
* Neutral, because {argument c}
* Bad, because {argument d}
* … <!-- numbers of pros and cons can vary -->
### {title of other option}
{example | description | pointer to more information | …}
* Good, because {argument a}
* Good, because {argument b}
* Neutral, because {argument c}
* Bad, because {argument d}
* …
<!-- This is an optional element. Feel free to remove. -->
## More Information
{You might want to provide additional evidence/confidence for the decision outcome here and/or document the team agreement on the decision and/or define when/how this decision the decision should be realized and if/when it should be re-visited. Links to other decisions and resources might appear here as well.}

51
inc/assets/namespace.php Normal file
View file

@ -0,0 +1,51 @@
<?php
/**
* Replaces assets normally hosted on WordPress.org or the WordPress.com CDN with FAIR hosted copies.
*
* @package FAIR
*/
namespace FAIR\Assets;
const DEFAULT_EMOJI_BASE = 'https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.1.0/assets/';
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'emoji_url', __NAMESPACE__ . '\\replace_emoji_url' );
add_filter( 'emoji_svg_url', __NAMESPACE__ . '\\replace_emoji_svg_url' );
}
/**
* Get the base URL for the emoji images.
*
* @return string The base URL for emoji images. Must be in Twemoji format.
*/
function get_emoji_base_url() : string {
if ( defined( 'FAIR_EMOJI_BASE_URL' ) ) {
return FAIR_EMOJI_BASE_URL;
}
return DEFAULT_EMOJI_BASE;
}
/**
* Replace the CDN domain for regular Twemoji images.
*
* @param string $url The emoji URLs from s.w.org.
* @return string Replaced URL.
*/
function replace_emoji_url() {
return get_emoji_base_url() . '72x72/';
}
/**
* Replace the CDN domain for regular Twemoji images.
*
* @param string $url The emoji URLs from s.w.org.
* @return string Replaced URL.
*/
function replace_emoji_svg_url() {
return get_emoji_base_url() . 'svg/';
}

318
inc/avatars/namespace.php Normal file
View file

@ -0,0 +1,318 @@
<?php
namespace FAIR\Avatars;
/**
* Bootstrap.
*/
function bootstrap() {
$options = get_option( 'fair_settings', [] );
$avatar_source = array_key_exists( 'avatar_source', $options ) ? $options['avatar_source'] : 'fair';
if ( 'fair' !== $avatar_source ) {
return;
}
// Add avatar upload field to user profile.
add_filter( 'user_profile_picture_description', __NAMESPACE__ . '\\add_avatar_upload_field', 10, 2 );
// Save avatar upload.
add_action( 'personal_options_update', __NAMESPACE__ . '\\save_avatar_upload' );
add_action( 'edit_user_profile_update', __NAMESPACE__ . '\\save_avatar_upload' );
// Filter avatar retrieval.
add_filter( 'get_avatar', __NAMESPACE__ . '\\filter_avatar', 10, 6 );
add_filter( 'get_avatar_url', __NAMESPACE__ . '\\filter_avatar_url', 10, 3 );
add_filter( 'avatar_defaults', '__return_empty_array' );
// Enqueue media scripts.
add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\\enqueue_media_scripts' );
}
/**
* Enqueue media scripts and some CSS.
*
* @param string $hook_suffix The current admin page.
*/
function enqueue_media_scripts( $hook_suffix ) {
if ( 'profile.php' !== $hook_suffix && 'user-edit.php' !== $hook_suffix ) {
return;
}
// Grab the user ID to pass along for alt text.
$user_id = 'profile.php' === $hook_suffix ? get_current_user_id() : absint( $_GET['user_id'] );
$display_name = get_user( $user_id )->display_name;
wp_enqueue_media();
wp_enqueue_script( 'fair-avatars', esc_url( plugin_dir_url( \FAIR\PLUGIN_FILE ) . 'assets/js/fair-avatars.js' ), ['jquery','wp-a11y','wp-i18n'], \FAIR\VERSION, true );
wp_localize_script( 'fair-avatars', 'fairAvatars',
[
'defaultImg' => generate_default_avatar( $display_name ),
'defaultAlt' => get_avatar_alt( $user_id ),
]
);
// Some inline CSS for our fields.
$setup_css = '
span.fair-avatar-desc {
display: block;
margin-top: 5px;
}
input#fair-avatar-remove {
margin-left: 5px;
}
input.button.button-hidden {
display: none;
}
';
// And add the CSS.
wp_add_inline_style( 'common', $setup_css );
}
/**
* Add avatar upload field to user profile.
*
* @param string $description Default description.
* @param WP_User $profile_user The user object being used on the profile.
*
* @return string Modified description with upload fields.
*/
function add_avatar_upload_field( $description, $profile_user ) {
if ( ! current_user_can( 'upload_files' ) ) {
return $description;
}
$avatar_id = get_user_meta( $profile_user->ID, 'fair_avatar_id', true );
// Set a class based on an avatar being there right now.
$remove_cls = $avatar_id ? 'button' : 'button button-hidden';
echo '<input type="hidden" name="fair_avatar_id" id="fair-avatar-id" value="' . absint( $avatar_id ) . '" />';
echo '<input type="button" class="button" id="fair-avatar-upload" value="' . esc_attr__( 'Choose Profile Image', 'fair' ) . '" />';
echo '<input type="button" class="' . esc_attr( $remove_cls ) . '" id="fair-avatar-remove" value="' . esc_attr__( 'Remove Profile Image', 'fair' ) . '" />';
// Using a span because this entire area is dropped into a `<p>` tag.
echo '<span class="fair-avatar-desc">' . esc_html__( 'Upload a custom profile picture for your account.', 'fair' ) . '</span>';
return;
}
/**
* Save or delete avatar ID.
*
* @param int $user_id User ID.
*/
function save_avatar_upload( $user_id ) {
if ( ! current_user_can( 'edit_user', $user_id ) ) {
return;
}
$fair_avatar_id = isset( $_POST['fair_avatar_id'] ) ? absint( $_POST['fair_avatar_id'] ) : 0;
if ( ! empty( $fair_avatar_id ) ) {
// Store the site ID to check on multisite.
// Stored on all sites in case site is converted to multisite.
update_user_meta( $user_id, 'fair_avatar_site_id', get_current_blog_id() );
update_user_meta( $user_id, 'fair_avatar_id', $fair_avatar_id );
} else {
delete_user_meta( $user_id, 'fair_avatar_site_id', get_current_blog_id() );
delete_user_meta( $user_id, 'fair_avatar_id' );
}
}
/**
* Filter avatar HTML.
*
* @param string $avatar Avatar HTML.
* @param mixed $id_or_email User ID, email, or comment object.
* @param int $size Avatar size.
* @param string $default Default avatar URL.
* @param string $alt Alt text.
* @param array $args Avatar arguments.
*
* @return string Filtered avatar HTML.
*/
function filter_avatar( $avatar, $id_or_email, $size, $default, $alt, $args ) {
$avatar_url = get_avatar_url( $id_or_email, $args );
$class = array( 'avatar', 'avatar-' . (int) $size, 'photo' );
if ( ! empty( $args['class'] ) ) {
$class = array_merge( $class, (array) $args['class'] );
}
$extra_args = ! empty( $args['extra_attr'] ) ? $args['extra_attr'] : '';
if ( ! empty( $args['loading'] ) ) {
$extra_args .= 'loading="' . sanitize_text_field( $args['loading'] ) . '" ';
}
if ( ! empty( $args['decoding'] ) ) {
$extra_args .= 'decoding="' . sanitize_text_field( $args['decoding'] ) . '" ';
}
if ( empty( $alt ) && is_int( $id_or_email ) ) {
$alt = get_avatar_alt( $id_or_email );
}
return sprintf(
"<img alt='%s' src='%s' class='%s' height='%d' width='%d' %s/>",
esc_attr( $alt ),
esc_url( $avatar_url, [ 'http', 'https', 'data' ] ),
esc_attr( implode( ' ', $class ) ),
(int) $size,
(int) $size,
esc_attr( $extra_args )
);
}
/**
* Filter avatar URL.
*
* @param string $url Avatar URL.
* @param mixed $id_or_email User ID, email, or comment object.
* @param array $args Avatar arguments.
*
* @return string Filtered avatar URL.
*/
function filter_avatar_url( $url, $id_or_email, $args ) {
return get_avatar_url( $id_or_email, $args );
}
/**
* Get avatar URL.
*
* @param mixed $id_or_email User ID, email, or comment object.
* @param array $args Avatar arguments.
*
* @return string Filtered avatar URL.
*/
function get_avatar_url( $id_or_email, $args ) {
$user = false;
if ( is_numeric( $id_or_email ) ) {
$user = get_user_by( 'id', absint( $id_or_email ) );
} elseif ( is_string( $id_or_email ) ) {
$user = get_user_by( 'email', $id_or_email );
} elseif ( $id_or_email instanceof \WP_User ) {
$user = $id_or_email;
} elseif ( $id_or_email instanceof \WP_Comment ) {
$user = get_user_by( 'id', $id_or_email->user_id );
// Special-case for comments.
if ( ! $user ) {
return generate_default_avatar( $id_or_email->comment_author );
}
}
if ( ! $user ) {
return generate_default_avatar( '?' );
}
$avatar_id = get_user_meta( $user->ID, 'fair_avatar_id', true );
if ( ! $avatar_id ) {
return generate_default_avatar( $user->display_name );
}
$size = isset( $args['size'] ) ? (int) $args['size'] : 150;
$switched = false;
if ( is_multisite() ) {
$switched = true;
$user_site = get_user_meta( $user->ID, 'fair_avatar_site_id', true );
switch_to_blog( $user_site );
}
$avatar_url = wp_get_attachment_image_url( $avatar_id, [ $size, $size ] );
if ( true === $switched ) {
restore_current_blog();
}
return $avatar_url ? $avatar_url : '';
}
/**
* Get the default avatar alt text.
*
* @param mixed $id_or_email User ID, email, or comment object.
* @param array $args Avatar arguments.
*
* @return string Filtered avatar URL.
*/
function get_avatar_alt( $id_or_email ) {
// Comments use the author name, rather than the user's display name.
if ( $id_or_email instanceof \WP_Comment ) {
return sprintf( __( 'profile picture for %s', 'fair' ), $id_or_email->comment_author );
}
if ( is_numeric( $id_or_email ) ) {
$user = get_user_by( 'id', absint( $id_or_email ) );
} elseif ( is_string( $id_or_email ) ) {
$user = get_user_by( 'email', $id_or_email );
} elseif ( $id_or_email instanceof \WP_User ) {
$user = $id_or_email;
}
if ( ! $user ) {
return _x( 'profile picture for user', 'alt for unknown avatar user', 'fair' );
}
return sprintf( __( 'profile picture for %s', 'fair' ), $user->display_name );
}
/**
* Get the default avatar URL.
*
* @param string|null $name Name to derive avatar from.
*
* @return string Default avatar URL.
*/
function generate_default_avatar( ?string $name = null ) : string {
$first = strtoupper( substr( $name ?? '', 0, 1 ) );
$tmpl = <<<"END"
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 50 50">
<rect width="100%%" height="100%%" fill="%s"/>
<text
fill="#fff"
font-family="sans-serif"
font-size="26"
font-weight="500"
dominant-baseline="middle"
text-anchor="middle"
x="50%%"
y="55%%"
>
%s
</text>
</svg>
END;
/**
* Filter the background color for the default avatar.
*
* Default is the placeholder color from .wp-color-picker (#646970).
*
* @param string $color Default color.
* @param string $name Name to derive avatar from.
*/
$color = add_filter( 'fair_avatars_default_color', '#646970', $name );
$data = sprintf(
$tmpl,
esc_attr( $color ),
esc_xml( $first )
);
/**
* Filter the default avatar.
*
* This is an SVG string, which is encoded into a data: URI.
*
* @param string $data Default avatar SVG.
* @param string $name Name to derive avatar from.
*/
$data = apply_filters( 'fair_avatars_default_svg', $data, $name );
$uri = 'data:image/svg+xml;base64,' . base64_encode( $data );
return $uri;
}

372
inc/credits/json/3.2.json Normal file
View file

@ -0,0 +1,372 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"jenmylo": [
"Jen Mylo",
"",
"jenmylo",
"User Experience Lead"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"extended-core-team": {
"name": "Extended Core Team",
"type": "titles",
"shuffle": true,
"data": {
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Core Committer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Guest Committer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Committer"
],
"josephscott": [
"Joseph Scott",
"",
"josephscott",
"XML-RPC"
],
"iammattthomas": [
"Matt Thomas",
"",
"iammattthomas",
"Designer"
],
"nbachiyski": [
"Nikolay Bachiyski",
"",
"nbachiyski",
"Internationalization"
]
}
},
"recent-rockstars": {
"name": "Recent Rockstars",
"type": "titles",
"shuffle": true,
"data": {
"duck_": [
"Jon Cave",
"",
"duck_",
"Developer"
],
"scribu": [
"Cristi Burc&#259;",
"",
"scribu",
"Developer"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Developer"
],
"iandstewart": [
"Ian Stewart",
"",
"iandstewart",
"Twenty Eleven"
],
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
"Twenty Eleven"
],
"matveb": [
"Mat&#237;as Ventura",
"",
"matveb",
"Twenty Eleven"
],
"aaroncampbell": [
"Aaron Campbell",
"",
"aaroncampbell",
"Developer"
],
"EmpireOfLight": [
"Ben Dunkle",
"",
"EmpireOfLight",
"Icon Design"
],
"xknown": [
"Alex Concha",
"",
"xknown",
"Developer"
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.2"
],
"type": "list",
"data": {
"technosailor": "Aaron Brazell",
"jorbin": "Aaron Jorbin",
"kawauso": "Adam Harley (Kawauso)",
"ampt": "ampt",
"andrewryno": "Andrew Ryno",
"andy": "Andy Skelton",
"filosofo": "Austin Matzko",
"benbalter": "Ben Balter",
"benchapman": "BenChapman",
"bluntelk": "bluntelk",
"boonebgorges": "Boone Gorges",
"cnorris23": "Brandon Allen",
"brandonburke": "Brandon Burke",
"caspie": "Caspie",
"charlesclarkson": "CharlesClarkson",
"chexee": "Chelsea Otakan",
"cfinke": "Christopher Finke",
"daniloercoli": "daniloercoli",
"mrroundhill": "Dan Roundhill",
"dllh": "Daryl L. L. Houston (dllh)",
"dcowgill": "David C",
"dvwallin": "David Satime Wallin",
"jdtrower": "David Trower",
"demetris": "demetris (Demetris Kikizas)",
"devinreams": "Devin Reams",
"dh-shredder": "DH-Shredder",
"dougwrites": "Doug Provencio",
"cyberhobo": "Dylan Kuhn",
"ericmann": "Eric Mann",
"fabifott": "Fabian",
"peaceablewhale": "Franklin Tse",
"frumph": "Frumph",
"mintindeed": "Gabriel Koen",
"garyc40": "Gary Cao",
"blepoxp": "Glenn Ansley",
"guyn": "guyn",
"hakre": "hakre",
"helen": "Helen Hou-Sandi",
"hew": "hew",
"holizz": "holizz",
"jacobwg": "Jacob Gillespie",
"jfarthing84": "Jeff Farthing",
"jayjdk": "Jesper Johansen (jayjdk)",
"joelhardi": "joelhardi",
"jkudish": "Joey Kudish",
"johnbillion": "John Blackbourn",
"aldenta": "John Ford",
"johnjamesjacoby": "John James Jacoby",
"johnonolan": "JohnONolan",
"joostdevalk": "Joost de Valk",
"koke": "Jorge Bernal",
"jtsternberg": "Justin Sternberg",
"greenshady": "Justin Tadlock",
"trepmal": "Kailey (trepmal)",
"kevinb": "Kevin Behrens",
"knutsp": "Knut Sparhell",
"kovshenin": "Konstantin Kovshenin",
"ldebrouwer": "ldebrouwer",
"linuxologos": "linuxologos",
"lloydbudd": "Lloyd Budd",
"marcis20": "marcis20",
"markmcwilliams": "Mark McWilliams",
"tfnab": "Martin Lormes",
"sivel": "Matt Martz",
"mattyrob": "Matt Robinson",
"mcepl": "mcepl",
"mdawaffe": "Michael Adams (mdawaffe)",
"mfields": "Michael Fields",
"michaelh": "MichaelH",
"michaeltyson": "michaeltyson",
"dimadin": "Milan Dinić",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"batmoo": "Mohammad Jangda",
"natecook": "natecook",
"nathanrice": "Nathan Rice",
"niallkennedy": "Niall Kennedy",
"nickbohle": "Nick Bohle",
"rahe": "Nicolas Juen",
"nuxwin": "nuxwin",
"hebbet": "Pascal Herbert",
"pavelevap": "pavelevap",
"petemall": "Pete Mall",
"nprasath002": "Prasath Nadarajah",
"ptahdunbar": "Ptah.ai",
"bi0xid": "Rafa Poveda",
"ramiy": "Rami Yushuvaev",
"rasheed": "Rasheed Bydousi",
"greuben": "Reuben",
"miqrogroove": "Robert Chapin",
"wpmuguru": "Ron Rennick",
"rosshanney": "Ross Hanney",
"ryanimel": "Ryan Imel",
"zeo": "Safirul Alredha",
"solarissmoke": "Samir Shah",
"otto42": "Samuel Wood (Otto)",
"saracannon": "sara cannon",
"sbressler": "Scott Bressler",
"coffee2code": "Scott Reilly",
"tenpura": "Seisuke Kuraishi",
"sergeybiryukov": "Sergey Biryukov",
"shakenstirred": "shakenstirred",
"sidharrell": "Sidney Harrell",
"pross": "Simon Prosser",
"szadok": "szadok",
"tetele": "tetele",
"tigertech": "tigertech",
"sorich87": "Ulrich Sossou",
"utkarsh": "Utkarsh Kukreti",
"valentinas": "valentinas",
"webduo": "webduo",
"xibe": "Xavier Borderie",
"yoavf": "Yoav Farhi",
"vanillalounge": "Z&#233; Fontainhas",
"ziofix": "ziofix"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"SWFObject",
"http://code.google.com/p/swfobject/"
],
[
"SWFUpload",
"http://www.swfupload.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.2"
}
}

396
inc/credits/json/3.3.json Normal file
View file

@ -0,0 +1,396 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"jenmylo": [
"Jen Mylo",
"",
"jenmylo",
"User Experience Lead"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Core Developers",
"type": "titles",
"shuffle": true,
"data": {
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Core Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Guest Committer"
]
}
},
"contributing-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": true,
"data": {
"scribu": [
"Cristi Burc&#259;",
"",
"scribu",
""
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
]
}
},
"recent-rockstars": {
"name": "Recent Rockstars",
"type": "titles",
"shuffle": true,
"data": {
"helen": [
"Helen Hou-Sandi",
"",
"helen",
""
],
"chexee": [
"Chelsea Otakan",
"",
"chexee",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.3"
],
"type": "list",
"data": {
"aaroncampbell": "Aaron D. Campbell",
"jorbin": "Aaron Jorbin",
"adambackstrom": "Adam Backstrom",
"kawauso": "Adam Harley (Kawauso)",
"xknown": "Alex Concha",
"alexkingorg": "Alex King",
"viper007bond": "Alex Mills",
"amereservant": "amereservant",
"ampt": "ampt",
"lordandrei": "Andrei Freeman",
"andrewfrazier": "andrewfrazier",
"andrewryno": "Andrew Ryno",
"andy": "Andy Skelton",
"lumination": "Anthony Atkinson",
"arena": "arena",
"filosofo": "Austin Matzko",
"simek": "Bartosz Kaszubowski",
"benbalter": "Ben Balter",
"empireoflight": "Ben Dunkle",
"brandondove": "Brandon Dove",
"carlospaulino": "carlospaulino",
"caspie": "Caspie",
"cebradesign": "cebradesign",
"chipbennett": "Chip Bennett",
"chrisbliss18": "Chris Jean",
"coenjacobs": "Coen Jacobs",
"cgrymala": "Curtiss Grymala",
"danielbachhuber": "Daniel Bachhuber",
"dllh": "Daryl L. L. Houston (dllh)",
"davecpage": "Dave Page",
"goto10": "Dave Romsey (goto10)",
"dcowgill": "David C",
"pagesimplify": "David Carroll",
"dgwyer": "David Gwyer",
"deltafactory": "deltafactory",
"demetris": "demetris (Demetris Kikizas)",
"valendesigns": "Derek Herman",
"designsimply": "designsimply",
"devinreams": "Devin Reams",
"dh-shredder": "DH-Shredder",
"adeptris": "Digital Raindrops",
"dougwrites": "Doug Provencio",
"dragoonis": "dragoonis",
"drewapicture": "Drew Jaynes",
"cyberhobo": "Dylan Kuhn",
"eduplessis": "Edouard Duplessis",
"elpie": "Elpie",
"elyobo": "elyobo",
"ethitter": "Erick Hitter",
"ericmann": "Eric Mann",
"ejdanderson": "Evan",
"evansolomon": "Evan Solomon",
"fonglh": "fonglh",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"logiclord": "Gaurav Aggarwal",
"georgestephanis": "George Stephanis",
"goldenapples": "goldenapples",
"hakre": "hakre",
"helenyhou": "helenyhou",
"iandstewart": "Ian Stewart",
"ipstenu": "Ipstenu (Mika Epstein)",
"madjax": "Jackson Whelan",
"jacobwg": "Jacob Gillespie",
"jakemgold": "Jake Goldman",
"jamescollins": "James Collins",
"johnpbloch": "J B",
"jeremyclarke": "Jer Clarke",
"jayjdk": "Jesper Johansen (jayjdk)",
"jgadbois": "jgadbois",
"jick": "Jick",
"joehoyle": "Joe Hoyle",
"vegasgeek": "John Hawkins",
"johnjamesjacoby": "John James Jacoby",
"johnonolan": "JohnONolan",
"koke": "Jorge Bernal",
"josephscott": "Joseph Scott",
"jtclarke": "jtclarke",
"yuraz": "Jurica Zuanovic",
"justindgivens": "Justin Givens",
"justinsainton": "Justin Sainton",
"trepmal": "Kailey (trepmal)",
"kevinb": "Kevin Behrens",
"kitchin": "kitchin",
"kovshenin": "Konstantin Kovshenin",
"kurtpayne": "Kurt Payne",
"lancewillett": "Lance Willett",
"latz": "latz",
"ldebrouwer": "ldebrouwer",
"linuxologos": "linuxologos",
"lloydbudd": "Lloyd Budd",
"lukeschlather": "lukeschlather",
"mako09": "Mako",
"settle": "Mantas Malcius",
"marcuspope": "MarcusPope",
"mark-k": "Mark-k",
"markmcwilliams": "Mark McWilliams",
"markoheijnen": "Marko Heijnen",
"tfnab": "Martin Lormes",
"masonjames": "masonjames",
"matveb": "Matias Ventura",
"iammattthomas": "Matt (Thomas) Miklic",
"damst": "Mattias Tengblad",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"merty": "Mert Yaz&#196;&#177;c&#196;&#177;o&#196;&#376;lu",
"mdawaffe": "Michael Adams (mdawaffe)",
"mfields": "Michael Fields",
"mrtorrent": "Michael Rodr&#237;guez Torrent",
"mau": "Michal Mau",
"mbijon": "Mike Bijon",
"dimadin": "Milan Dinić",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"batmoo": "Mohammad Jangda",
"mhauan": "Morten Hauan",
"usermrpapa": "Mr Papa",
"nao": "Naoko Takano",
"natebedortha": "natebedortha",
"nbachiyski": "Nikolay Bachiyski",
"olivm": "olivM",
"olleicua": "olleicua",
"paulhastings0": "paulhastings0",
"pavelevap": "pavelevap",
"petemall": "Pete Mall",
"peterwilsoncc": "Peter Wilson",
"ppaire": "ppaire",
"ptahdunbar": "Ptah.ai",
"r-a-y": "r-a-y",
"ramiy": "Rami Yushuvaev",
"rasheed": "Rasheed Bydousi",
"miqrogroove": "Robert Chapin",
"wpmuguru": "Ron Rennick",
"rosshanney": "Ross Hanney",
"ruslany": "ruslany",
"ryanhellyer": "Ryan Hellyer",
"ryanimel": "Ryan Imel",
"zeo": "Safirul Alredha",
"solarissmoke": "Samir Shah",
"gluten": "Sam Margulies",
"eightamrock": "Sam Napolitano",
"otto42": "Samuel Wood (Otto)",
"saracannon": "sara cannon",
"scottbasgaard": "Scott Basgaard",
"sbressler": "Scott Bressler",
"l3rady": "Scott Cariss",
"scottconnerly": "scottconnerly",
"coffee2code": "Scott Reilly",
"wonderboymusic": "Scott Taylor",
"tenpura": "Seisuke Kuraishi",
"sergeybiryukov": "Sergey Biryukov",
"simonwheatley": "Simon Wheatley",
"sirzooro": "sirzooro",
"sillybean": "Stephanie Leary",
"tech163": "Tech163",
"thedeadmedic": "TheDeadMedic",
"tmoorewp": "Tim Moore",
"tomauger": "Tom Auger",
"ansimation": "Travis Ballard",
"sorich87": "Ulrich Sossou",
"eko-fr": "Vincent COMPOSIEUX",
"vnsavage": "vnsavage",
"wpweaver": "wpweaver",
"wraithkenny": "WraithKenny",
"yoavf": "Yoav Farhi",
"vanillalounge": "Z&#233; Fontainhas"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.3"
}
}

430
inc/credits/json/3.4.json Normal file
View file

@ -0,0 +1,430 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"jenmylo": [
"Jen Mylo",
"",
"jenmylo",
"User Experience Lead"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Core Developers",
"type": "titles",
"shuffle": true,
"data": {
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Core Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Guest Committer"
]
}
},
"contributing-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": true,
"data": {
"scribu": [
"Cristi Burc&#259;",
"",
"scribu",
""
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
],
"helen": [
"Helen Hou-Sandi",
"",
"helen",
""
],
"aaroncampbell": [
"Aaron D. Campbell",
"",
"aaroncampbell",
""
]
}
},
"recent-rockstars": {
"name": "Recent Rockstars",
"type": "titles",
"shuffle": true,
"data": {
"maxcutler": [
"Max Cutler",
"",
"maxcutler",
""
],
"kurtpayne": [
"Kurt Payne",
"",
"kurtpayne",
""
],
"markoheijnen": [
"Marko Heijnen",
"",
"markoheijnen",
""
],
"sabreuse": [
"Amy Hendrix",
"",
"sabreuse",
""
],
"georgestephanis": [
"George Stephanis",
"",
"georgestephanis",
""
],
"sushkov": [
"Stas Su&#537;kov",
"",
"sushkov",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.4"
],
"type": "list",
"data": {
"kawauso": "Adam Harley (Kawauso)",
"ajacommerce": "AJ Acevedo",
"akshayagarwal": "akshayagarwal",
"xknown": "Alex Concha",
"alexkingorg": "Alex King",
"viper007bond": "Alex Mills",
"ampt": "ampt",
"andrea_r": "Andrea Rennick",
"andrewryno": "Andrew Ryno",
"rarst": "Andrey \"Rarst\" Savchenko",
"andy": "Andy Skelton",
"arena": "arena",
"arieputranto": "Arie Putranto",
"filosofo": "Austin Matzko",
"hearvox": "Barrett Golding",
"barry": "Barry",
"benbalter": "Ben Balter",
"casben79": "Ben Casey",
"benchapman": "BenChapman",
"empireoflight": "Ben Dunkle",
"husobj": "Ben Huson",
"billerickson": "Bill Erickson",
"bananastalktome": "Billy S",
"boonebgorges": "Boone Gorges",
"camiloclc": "camiloclc",
"caspie": "Caspie",
"cheald": "cheald",
"chexee": "Chelsea Otakan",
"082net": "Cheon, YoungMin",
"chipbennett": "Chip Bennett",
"c3mdigital": "Chris Olbekson",
"coenjacobs": "Coen Jacobs",
"cyapow": "Cyapow",
"djcp": "Dan Collis-Puro",
"danielbachhuber": "Daniel Bachhuber",
"convissor": "Daniel Convissor",
"redsweater": "Daniel Jalkut (Red Sweater)",
"daniloercoli": "daniloercoli",
"dllh": "Daryl L. L. Houston (dllh)",
"dgwyer": "David Gwyer",
"deltafactory": "deltafactory",
"demetris": "demetris (Demetris Kikizas)",
"dh-shredder": "DH-Shredder",
"dougwrites": "Doug Provencio",
"drewapicture": "Drew Jaynes",
"edward-mindreantre": "edward mindreantre",
"ericlewis": "Eric Andrew Lewis",
"ericmann": "Eric Mann",
"ejdanderson": "Evan",
"evansolomon": "Evan Solomon",
"fredwu": "Fred Wu",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"gautamgupta": "Gautam Gupta",
"emhr": "Gene Robinson",
"soulseekah": "Gennady Kovshenin",
"mamaduka": "George Mamadashvili",
"webord": "Gustavo Bordoni",
"helenyhou": "helenyhou",
"ceefour": "Hendy Irawan",
"hugobaeta": "Hugo Baeta",
"iandstewart": "Ian Stewart",
"insertvisionhere": "insertvisionhere",
"ipstenu": "Ipstenu (Mika Epstein)",
"master-jake": "Jacob Chappell",
"japh": "Japh",
"jaquers": "jaquers",
"jarretc": "Jarret",
"jeremyclarke": "Jer Clarke",
"jeremyfelt": "Jeremy Felt",
"jayjdk": "Jesper Johansen (jayjdk)",
"jiehanzheng": "Jiehan Zheng",
"intoxstudio": "Joachim Jensen",
"jkudish": "Joey Kudish",
"johnbillion": "John Blackbourn",
"aldenta": "John Ford",
"johnjamesjacoby": "John James Jacoby",
"joostdevalk": "Joost de Valk",
"koke": "Jorge Bernal",
"josephscott": "Joseph Scott",
"devesine": "Justin de Vesine",
"justindgivens": "Justin Givens",
"trepmal": "Kailey (trepmal)",
"kenan3008": "Kenan Dervi&#353;ević",
"kobenland": "KOB",
"kovshenin": "Konstantin Kovshenin",
"klagraff": "Kristopher Lagraff",
"lancewillett": "Lance Willett",
"lardjo": "Lardjo",
"latz": "latz",
"leewillis77": "Lee Willis",
"linuxologos": "linuxologos",
"settle": "Mantas Malcius",
"netweblogic": "Marcus (aka @msykes)",
"markauk": "Mark Rowatt Anderson",
"matveb": "Matias Ventura",
"sksmatt": "Matt",
"iammattthomas": "Matt (Thomas) Miklic",
"sivel": "Matt Martz",
"mattonomics": "mattonomics",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"merty": "Mert Yaz&#196;&#177;c&#196;&#177;o&#196;&#376;lu",
"mdawaffe": "Michael Adams (mdawaffe)",
"tw2113": "Michael Beckwith",
"mfields": "Michael Fields",
"mrtorrent": "Michael Rodr&#237;guez Torrent",
"chellycat": "Michelle Langston",
"mikeschinkel": "Mike Schinkel",
"toppa": "Mike Toppa",
"dimadin": "Milan Dinić",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"batmoo": "Mohammad Jangda",
"mgolawala": "Mustansir Golawala",
"namely": "Name.ly",
"nao": "Naoko Takano",
"alex-ye": "Nashwan D",
"niallkennedy": "Niall Kennedy",
"ebababi": "Nikolaos Anastopoulos",
"nikolayyordanov": "Nikolay Yordanov",
"norocketsurgeon": "norocketsurgeon",
"npetetin": "npetetin",
"nunomorgadinho": "nunomorgadinho",
"ocollet": "Olivier Collet",
"pbiron": "Paul Biron",
"pavelevap": "pavelevap",
"petemall": "Pete Mall",
"pishmishy": "pishmishy",
"nprasath002": "Prasath Nadarajah",
"prettyboymp": "prettyboymp",
"ptahdunbar": "Ptah.ai",
"pw201": "pw201",
"ramiy": "Rami Yushuvaev",
"greuben": "Reuben",
"roscius": "Roscius",
"rosshanney": "Ross Hanney",
"russellwwest": "russellwwest",
"ryanduff": "Ryan Duff",
"rmccue": "Ryan McCue",
"zeo": "Safirul Alredha",
"solarissmoke": "Samir Shah",
"otto42": "Samuel Wood (Otto)",
"tenpura": "Seisuke Kuraishi",
"sergeybiryukov": "Sergey Biryukov",
"simonwheatley": "Simon Wheatley",
"sirzooro": "sirzooro",
"stephdau": "Stephane Daury (stephdau)",
"tamlyn": "tamlyn",
"griffinjt": "Thomas Griffin",
"tott": "Thorsten Ott",
"tobiasbg": "Tobias B&#228;thge",
"tomauger": "Tom Auger",
"skithund": "Toni Viemer&#246;",
"transom": "transom",
"sorich87": "Ulrich Sossou",
"utkarsh": "Utkarsh Kukreti",
"wojtekszkutnik": "Wojtek Szkutnik",
"wonderslug": "wonderslug",
"xibe": "Xavier Borderie",
"yoavf": "Yoav Farhi",
"vanillalounge": "Z&#233; Fontainhas",
"thezman84": "Zach Abernathy",
"tollmanz": "Zack Tollman",
"zx2c4": "zx2c4",
"ounziw": "水野史土"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.4"
}
}

521
inc/credits/json/3.5.json Normal file
View file

@ -0,0 +1,521 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Core Developers",
"type": "titles",
"shuffle": true,
"data": {
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Guest Committer"
]
}
},
"contributing-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": true,
"data": {
"scribu": [
"Cristi Burc&#259;",
"",
"scribu",
""
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
],
"helen": [
"Helen Hou-Sandi",
"",
"helen",
""
],
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
""
]
}
},
"recent-rockstars": {
"name": "Recent Rockstars",
"type": "titles",
"shuffle": true,
"data": {
"lessbloat": [
"Dave Martin",
"",
"lessbloat",
""
],
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"DH-Shredder": [
"Kira Song",
"",
"DH-Shredder",
""
],
"drewstrojny": [
"Drew Strojny",
"",
"drewstrojny",
""
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
""
],
"mattwiebe": [
"Matt Wiebe",
"",
"mattwiebe",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.5"
],
"type": "list",
"data": {
"aaroncampbell": "Aaron D. Campbell",
"aaronholbrook": "Aaron Holbrook",
"jorbin": "Aaron Jorbin",
"kawauso": "Adam Harley (Kawauso)",
"alyssonweb": "akbortoli",
"alecrust": "Alec Rust",
"alexvorn2": "Alexandru Vornicescu",
"xknown": "Alex Concha",
"alexkingorg": "Alex King",
"viper007bond": "Alex Mills",
"ampt": "ampt",
"sabreuse": "Amy Hendrix (sabreuse)",
"andrear": "Andrea Riva",
"andrewryno": "Andrew Ryno",
"andrewspittle": "Andrew Spittle",
"andy": "Andy Skelton",
"apokalyptik": "apokalyptik",
"bainternet": "Bainternet",
"barry": "Barry",
"barrykooij": "Barry Kooij",
"bbrooks": "bbrooks",
"casben79": "Ben Casey",
"empireoflight": "Ben Dunkle",
"husobj": "Ben Huson",
"benkulbertis": "Ben Kulbertis",
"bergius": "bergius",
"neoxx": "Bernhard Riedl",
"bigdawggi": "bigdawggi",
"bananastalktome": "Billy S",
"bradparbs": "Brad Parbs",
"bradthomas127": "bradthomas127",
"bradyvercher": "Brady Vercher",
"brandondove": "Brandon Dove",
"brianlayman": "Brian Layman",
"rzen": "Brian Richards",
"bpetty": "Bryan Petty",
"cannona": "cannona",
"bolo1988": "CantonBolo",
"sixhours": "Caroline Moore",
"caspie": "Caspie",
"thee17": "Charles E. Frees-Melvin",
"chexee": "Chelsea Otakan",
"chouby": "Chouby",
"c3mdigital": "Chris Olbekson",
"cfinke": "Christopher Finke",
"chriswallace": "Chris Wallace",
"corvannoorloos": "corvannoorloos",
"cdog": "Cătălin Dogaru",
"dan-rivera": "Dan Rivera",
"mrroundhill": "Dan Roundhill",
"dllh": "Daryl L. L. Houston (dllh)",
"deltafactory": "deltafactory",
"dh-shredder": "DH-Shredder",
"djzone": "DjZoNe",
"doublesharp": "doublesharp",
"zamoose": "Doug Stewart",
"drewapicture": "Drew Jaynes",
"eddiemoya": "Eddie Moya",
"elyobo": "elyobo",
"emiluzelac": "Emil Uzelac",
"ericlewis": "Eric Andrew Lewis",
"ethitter": "Erick Hitter",
"ericmann": "Eric Mann",
"ericwahlforss": "ericwahlforss",
"evansolomon": "Evan Solomon",
"fadingdust": "fadingdust",
"foxinni": "foxinni",
"f-j-kaiser": "Franz Josef Kaiser",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"pento": "Gary Pendergast",
"geertdd": "Geert De Deckere",
"mamaduka": "George Mamadashvili",
"georgestephanis": "George Stephanis",
"gnarf": "gnarf",
"goldenapples": "goldenapples",
"greglone": "Gr&#233;gory Viguier",
"ghosttoast": "Gustave F. Gerhardt",
"webord": "Gustavo Bordoni",
"hakre": "hakre",
"hanni": "hanni",
"hardy101": "hardy101",
"helenyhou": "helenyhou",
"hugobaeta": "Hugo Baeta",
"iandstewart": "Ian Stewart",
"ikailo": "ikailo",
"ipstenu": "Ipstenu (Mika Epstein)",
"j-idris": "j-idris",
"jakemgold": "Jake Goldman",
"jakubtyrcha": "jakub.tyrcha",
"jamescollins": "James Collins",
"jammitch": "jammitch",
"japh": "Japh",
"jarretc": "Jarret",
"madtownlems": "Jason LeMahieu (MadtownLems)",
"javert03": "javert03",
"johnpbloch": "J B",
"jcakec": "jcakec",
"jblz": "Jeff Bowen",
"jeffsebring": "Jeff Sebring",
"jenmylo": "Jen",
"jeremyfelt": "Jeremy Felt",
"hd-j": "Jeremy Herve",
"jerrysarcastic": "jerrysarcastic",
"jayjdk": "Jesper Johansen (jayjdk)",
"jndetlefsen": "jndetlefsen",
"joehoyle": "Joe Hoyle",
"joelhardi": "joelhardi",
"jkudish": "Joey Kudish",
"johnbillion": "John Blackbourn",
"johnjamesjacoby": "John James Jacoby",
"jond3r": "Jonas Bolinder (jond3r)",
"jbrinley": "Jonathan Brinley",
"jondavidjohn": "Jonathan D. Johnson (jondavidjohn)",
"joostdekeijzer": "joost de keijzer",
"koke": "Jorge Bernal",
"josephscott": "Joseph Scott",
"betzster": "Josh Betz",
"picklewagon": "Josh Harrison",
"pottersys": "Juan C. (PotterSys)",
"kopepasah": "Justin Kopepasah",
"justinsainton": "Justin Sainton",
"jtsternberg": "Justin Sternberg",
"greenshady": "Justin Tadlock",
"trepmal": "Kailey (trepmal)",
"ryelle": "Kelly Choyce-Dwan",
"keruspe": "Keruspe",
"kitchin": "kitchin",
"knutsp": "Knut Sparhell",
"kovshenin": "Konstantin Kovshenin",
"klagraff": "Kristopher Lagraff",
"kurtpayne": "Kurt Payne",
"kyrylo": "Kyrylo",
"larysa": "Larysa Mykhas",
"latz": "latz",
"ldebrouwer": "ldebrouwer",
"leogermani": "leogermani",
"lesteph": "lesteph",
"linuxologos": "linuxologos",
"lgedeon": "Luke Gedeon",
"mailnew2ster": "mailnew2ster",
"targz-1": "Manuel Schmalstieg",
"maor": "Maor Chasen",
"mimecine": "Marco",
"marcuspope": "MarcusPope",
"markoheijnen": "Marko Heijnen",
"martythornley": "MartyThornley",
"iammattthomas": "Matt (Thomas) Miklic",
"mattdanner": "Matt Danner",
"sivel": "Matt Martz",
"mattyrob": "Matt Robinson",
"maxcutler": "Max Cutler",
"melchoyce": "Mel Choyce-Dwan",
"merty": "Mert Yaz&#196;&#177;c&#196;&#177;o&#196;&#376;lu",
"mdawaffe": "Michael Adams (mdawaffe)",
"mfields": "Michael Fields",
"chellycat": "Michelle Langston",
"mbijon": "Mike Bijon",
"mdgl": "Mike Glendinning",
"mikehansenme": "Mike Hansen",
"mikelittle": "Mike Little",
"mikeschinkel": "Mike Schinkel",
"toppa": "Mike Toppa",
"dimadin": "Milan Dinić",
"ssamture": "MinHyeong Lim",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"batmoo": "Mohammad Jangda",
"mohanjith": "mohanjith",
"mpvanwinkle77": "mpvanwinkle77",
"usermrpapa": "Mr Papa",
"mtdesign": "mtdesign",
"murky": "murky",
"nao": "Naoko Takano",
"alex-ye": "Nashwan D",
"niallkennedy": "Niall Kennedy",
"nbachiyski": "Nikolay Bachiyski",
"timbeks": "Not in use",
"ntm": "ntm",
"nvartolomei": "nvartolomei",
"op12no2": "op12no2",
"hebbet": "Pascal Herbert",
"pdclark": "Paul Clark",
"pavelevap": "pavelevap",
"petemall": "Pete Mall",
"pas5027": "Pete Schuster",
"philiparthurmoore": "Philip Arthur Moore",
"phill_brown": "Phill Brown",
"picklepete": "picklepete",
"nprasath002": "Prasath Nadarajah",
"r-a-y": "r-a-y",
"ramiy": "Rami Yushuvaev",
"moraleidame": "Ricardo Moraleida",
"iamfriendly": "Rich Tape",
"miqrogroove": "Robert Chapin",
"wet": "Robert Wetzlmayr",
"wpmuguru": "Ron Rennick",
"rstern": "rstern",
"ryanimel": "Ryan Imel",
"ryanjkoehler": "Ryan Koehler",
"markel": "Ryan Markel",
"rmccue": "Ryan McCue",
"sushkov": "S",
"zeo": "Safirul Alredha",
"solarissmoke": "Samir Shah",
"gluten": "Sam Margulies",
"otto42": "Samuel Wood (Otto)",
"saracannon": "sara cannon",
"gandham": "Satish Gandham",
"scottgonzalez": "scott.gonzalez",
"sc0ttkclark": "Scott Kingsley Clark",
"coffee2code": "Scott Reilly",
"sennza": "Sennza Pty Ltd",
"sergeysbetkenovgaroru": "Sergey.S.Betke",
"sergeybiryukov": "Sergey Biryukov",
"pross": "Simon Prosser",
"simonwheatley": "Simon Wheatley",
"sirzooro": "sirzooro",
"sterlo": "Sterling Hamilton",
"sumindmitriy": "sumindmitriy",
"swekitsune": "swekitsune",
"iamtakashi": "Takashi Irie",
"taylorde": "Taylor Dewey",
"tlovett1": "Taylor Lovett",
"saltcod": "Terry Sutton (saltcod)",
"griffinjt": "Thomas Griffin",
"tott": "Thorsten Ott",
"timfs": "timfs",
"tmoorewp": "Tim Moore",
"tobiasbg": "Tobias B&#228;thge",
"tomasm": "Tomas Mackevicius",
"tomauger": "Tom Auger",
"tommcfarlin": "tommcfarlin",
"willmot": "Tom Willmot",
"toscho": "toscho",
"wpsmith": "Travis Smith",
"itworx": "veuse",
"vhauri": "vhauri",
"lightningspirit": "Vitor Carvalho",
"waclawjacek": "Waclaw Jacek",
"waldojaquith": "Waldo Jaquith",
"wojtekszkutnik": "Wojtek Szkutnik",
"xibe": "Xavier Borderie",
"yoavf": "Yoav Farhi",
"yogi-t": "Yogi T",
"tollmanz": "Zack Tollman",
"viniciusmassuchetto": "_"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery Masonry",
"http://masonry.desandro.com/"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Underscore",
"http://underscorejs.org/"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.5"
}
}

495
inc/credits/json/3.6.json Normal file
View file

@ -0,0 +1,495 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": true,
"data": {
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Core Developer"
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
],
"helen": [
"Helen Hou-Sandi",
"",
"helen",
""
],
"aaroncampbell": [
"Aaron D. Campbell",
"",
"aaroncampbell",
""
],
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
""
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
""
]
}
},
"recent-rockstars": {
"name": "Recent Rockstars",
"type": "titles",
"shuffle": true,
"data": {
"lessbloat": [
"Dave Martin",
"",
"lessbloat",
""
],
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"kovshenin": [
"Konstantin Kovshenin",
"",
"kovshenin",
""
],
"Joen": [
"Joen Asmussen",
"",
"Joen",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.6"
],
"type": "list",
"data": {
"technosailor": "Aaron Brazell",
"aaronholbrook": "Aaron Holbrook",
"jorbin": "Aaron Jorbin",
"kawauso": "Adam Harley (Kawauso)",
"akted": "AK Ted",
"ahoereth": "Alex",
"xknown": "Alex Concha",
"alexkingorg": "Alex King",
"viper007bond": "Alex Mills",
"momo360modena": "Amaury Balmer",
"sabreuse": "Amy Hendrix (sabreuse)",
"anatolbroder": "Anatol Broder",
"norcross": "Andrew Norcross",
"andrewryno": "Andrew Ryno",
"andy": "Andy Skelton",
"gorgoglionemeister": "Antonio",
"apimlott": "apimlott",
"asannad": "asannad",
"awellis13": "awellis13",
"barry": "Barry",
"beaulebens": "Beau Lebens",
"belloswan": "Bello",
"empireoflight": "Ben Dunkle",
"retlehs": "Ben Word",
"bilalcoder": "bilalcoder",
"bananastalktome": "Billy S",
"bobbingwide": "bobbingwide",
"bobbravo2": "Bob Gregor",
"bradparbs": "Brad Parbs",
"bradyvercher": "Brady Vercher",
"kraftbj": "Brandon Kraft",
"brianlayman": "Brian Layman",
"beezeee": "Brian Zeligson",
"bpetty": "Bryan Petty",
"chmac": "Callum Macdonald",
"carldanley": "Carl Danley",
"caspie": "Caspie",
"cheeserolls": "cheeserolls",
"chipbennett": "Chip Bennett",
"c3mdigital": "Chris Olbekson",
"uuf6429": "Christian Sciberras",
"cochran": "Christopher Cochran",
"cfinke": "Christopher Finke",
"chriswallace": "Chris Wallace",
"corvannoorloos": "corvannoorloos",
"crazycoders": "crazycoders",
"csixty4": "Dana Ross",
"danielbachhuber": "Daniel Bachhuber",
"mzaweb": "Daniel Dvorkin",
"redsweater": "Daniel Jalkut (Red Sweater)",
"daniloercoli": "daniloercoli",
"dannydehaan": "Danny de Haan",
"dllh": "Daryl L. L. Houston (dllh)",
"dfavor": "David Favor",
"jdtrower": "David Trower",
"davidwilliamson": "David Williamson",
"dh-shredder": "DH-Shredder",
"drewapicture": "Drew Jaynes",
"dvarga": "dvarga",
"dovyp": "Dōvy Paukstys",
"hurtige": "Eddie Hurtig",
"cais": "Edward Caissie",
"ericlewis": "Eric Andrew Lewis",
"ethitter": "Erick Hitter",
"ericmann": "Eric Mann",
"evansolomon": "Evan Solomon",
"faishal": "faishal",
"feedmeastraycat": "feedmeastraycat",
"frank-klein": "Frank Klein",
"f-j-kaiser": "Franz Josef Kaiser",
"mintindeed": "Gabriel Koen",
"fstop": "Gabriel Luethje",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"geertdd": "Geert De Deckere",
"soulseekah": "Gennady Kovshenin",
"georgestephanis": "George Stephanis",
"gish": "gish",
"gcorne": "Gregory Cornelius",
"tivnet": "Gregory Karpinsky (@tivnet)",
"hakre": "hakre",
"hbanken": "hbanken",
"helgatheviking": "HelgaTheViking",
"hypertextranch": "hypertextranch",
"iandunn": "Ian Dunn",
"ipstenu": "Ipstenu (Mika Epstein)",
"jakub": "Jakub",
"h4ck3rm1k3": "James Michael DuPont",
"jeremyfelt": "Jeremy Felt",
"jerrysarcastic": "jerrysarcastic",
"jayjdk": "Jesper Johansen (jayjdk)",
"hirozed": "Jim Reevior",
"joehoyle": "Joe Hoyle",
"jkudish": "Joey Kudish",
"johnbillion": "John Blackbourn",
"johnjamesjacoby": "John James Jacoby",
"jond3r": "Jonas Bolinder (jond3r)",
"desrosj": "Jonathan Desrosiers",
"jonbishop": "Jon Bishop",
"jcastaneda": "Jose Castaneda",
"josephscott": "Joseph Scott",
"jvisick77": "Josh Visick",
"jrbeilke": "jrbeilke",
"jrf": "Juliette Reinders Folmer",
"jbutkus": "Justas Butkus",
"devesine": "Justin de Vesine",
"justinsainton": "Justin Sainton",
"kadamwhite": "K. Adam White",
"trepmal": "Kailey (trepmal)",
"ryelle": "Kelly Choyce-Dwan",
"keoshi": "keoshi",
"kwight": "Kirk Wight",
"ktdreyer": "ktdreyer",
"kurtpayne": "Kurt Payne",
"charlestonsw": "Lance Cleveland",
"leewillis77": "Lee Willis",
"settle": "Mantas Malcius",
"maor": "Maor Chasen",
"macbrink": "Marcel Brinkkemper",
"marcuspope": "MarcusPope",
"mark-k": "Mark-k",
"markmcwilliams": "Mark McWilliams",
"markoheijnen": "Marko Heijnen",
"mjbanks": "Matt Banks",
"mgibbs189": "Matt Gibbs",
"mboynes": "Matthew Boynes",
"matthewruddy": "MatthewRuddy",
"mattwiebe": "Matt Wiebe",
"maxcutler": "Max Cutler",
"melchoyce": "Mel Choyce-Dwan",
"mdawaffe": "Michael Adams (mdawaffe)",
"tw2113": "Michael Beckwith",
"mfields": "Michael Fields",
"mikehansenme": "Mike Hansen",
"dimadin": "Milan Dinić",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"batmoo": "Mohammad Jangda",
"najamelan": "najamelan",
"nao": "Naoko Takano",
"alex-ye": "Nashwan D",
"niallkennedy": "Niall Kennedy",
"nickdaugherty": "nickdaugherty",
"celloexpressions": "Nick Halsey",
"paradiseporridge": "ParadisePorridge",
"hebbet": "Pascal Herbert",
"pdclark": "Paul Clark",
"pauldewouters": "Paul de Wouters",
"pavelevap": "pavelevap",
"petemall": "Pete Mall",
"phill_brown": "Phill Brown",
"mordauk": "Pippin Williamson",
"pollett": "Pollett",
"nprasath002": "Prasath Nadarajah",
"programmin": "programmin",
"rachelbaker": "Rachel Baker",
"ramiy": "Rami Yushuvaev",
"redpixelstudios": "redpixelstudios",
"reidburke": "reidburke",
"greuben": "Reuben",
"rlerdorf": "rlerdorf",
"rdall": "Robert Dall",
"rodrigosprimo": "Rodrigo Primo",
"roulandf": "Roland Fischl",
"rovo89": "rovo89",
"ryanduff": "Ryan Duff",
"ryanhellyer": "Ryan Hellyer",
"rmccue": "Ryan McCue",
"zeo": "Safirul Alredha",
"solarissmoke": "Samir Shah",
"saracannon": "sara cannon",
"scholesmafia": "scholesmafia",
"sc0ttkclark": "Scott Kingsley Clark",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"tenpura": "Seisuke Kuraishi",
"sergejmueller": "Sergej M&#252;ller",
"sergeybiryukov": "Sergey Biryukov",
"sim": "Simon Hampel",
"simonwheatley": "Simon Wheatley",
"siobhan": "Siobhan",
"sirzooro": "sirzooro",
"slene": "slene",
"srinig": "Srini G",
"stephenh1988": "Stephen Harris",
"storkontheroof": "storkontheroof",
"sunnyratilal": "Sunny Ratilal",
"sweetie089": "sweetie089",
"karmatosed": "Tammie Lister",
"tar": "Tar",
"tlovett1": "Taylor Lovett",
"thomasvanderbeek": "Thomas",
"n7studios": "Tim Carr",
"tjsingleton": "tjsingleton",
"tobiasbg": "Tobias B&#228;thge",
"toscho": "toscho",
"taupecat": "Tracy Rotton",
"travishoffman": "TravisHoffman",
"ninnypants": "Tyrel Kelsey",
"lightningspirit": "Vitor Carvalho",
"wpewill": "wpewill",
"wraithkenny": "WraithKenny",
"wojtek": "WT",
"wycks": "wycks",
"xibe": "Xavier Borderie",
"yoavf": "Yoav Farhi",
"thelastcicada": "Zachary Brown",
"tollmanz": "Zack Tollman",
"zekeweeks": "zekeweeks",
"ziegenberg": "ziegenberg",
"viniciusmassuchetto": "_"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery Masonry",
"http://masonry.desandro.com/"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Underscore.js",
"http://underscorejs.org/"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.6"
}
}

466
inc/credits/json/3.7.json Normal file
View file

@ -0,0 +1,466 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": true,
"data": {
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Core Developer"
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
],
"helen": [
"Helen Hou-Sandi",
"",
"helen",
""
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
]
}
},
"recent-rockstars": {
"name": "Recent Rockstars",
"type": "titles",
"shuffle": true,
"data": {
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
""
],
"c3mdigital": [
"Chris Olbekson",
"",
"c3mdigital",
""
],
"kpdesign": [
"Kim Parsell",
"",
"kpdesign",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.7"
],
"type": "list",
"data": {
"technosailor": "Aaron Brazell",
"aaroncampbell": "Aaron D. Campbell",
"aeg0125": "Aaron Graham",
"aaronholbrook": "Aaron Holbrook",
"jorbin": "Aaron Jorbin",
"adamsilverstein": "Adam Silverstein",
"ahoereth": "Alex",
"viper007bond": "Alex Mills",
"sabreuse": "Amy Hendrix (sabreuse)",
"andg": "Andrea Gandino",
"andreasnrb": "Andreas",
"norcross": "Andrew Norcross",
"andrewspittle": "Andrew Spittle",
"atimmer": "Anton Timmermans",
"askapache": "askapache",
"barry": "Barry",
"beaulebens": "Beau Lebens",
"benmoody": "ben.moody",
"scruffian": "Ben Dwyer",
"bhengh": "Ben Miller",
"neoxx": "Bernhard Riedl",
"bananastalktome": "Billy S",
"bmb": "bmb",
"kraftbj": "Brandon Kraft",
"brianhogg": "Brian Hogg",
"rzen": "Brian Richards",
"bpetty": "Bryan Petty",
"calin": "Calin Don",
"carldanley": "Carl Danley",
"charlesclarkson": "CharlesClarkson",
"chipbennett": "Chip Bennett",
"chouby": "Chouby",
"chrisbliss18": "Chris Jean",
"chrisrudzki": "Chris Rudzki",
"coenjacobs": "Coen Jacobs",
"crrobi01": "Colin Robinson",
"daankortenbach": "Daan Kortenbach",
"csixty4": "Dana Ross",
"danielbachhuber": "Daniel Bachhuber",
"convissor": "Daniel Convissor",
"dllh": "Daryl L. L. Houston (dllh)",
"lessbloat": "Dave Martin (lessbloat)",
"dartiss": "David Artiss",
"davidjlaietta": "david wolfpaw",
"dh-shredder": "DH-Shredder",
"nullvariable": "Doug Cone",
"dpash": "dpash",
"drprotocols": "DrProtocols",
"dustyf": "Dustin Filippini",
"dzver": "dzver",
"plocha": "edik",
"cais": "Edward Caissie",
"enej": "Enej Bajgorić",
"ericlewis": "Eric Andrew Lewis",
"ericmann": "Eric Mann",
"evansolomon": "Evan Solomon",
"faishal": "faishal",
"faison": "Faison",
"foofy": "Foofy",
"fjarrett": "Frankie Jarrett",
"frank-klein": "Frank Klein",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"pento": "Gary Pendergast",
"georgestephanis": "George Stephanis",
"gizburdt": "Gijs Jorissen",
"goldenapples": "goldenapples",
"gradyetc": "gradyetc",
"gcorne": "Gregory Cornelius",
"tivnet": "Gregory Karpinsky (@tivnet)",
"webord": "Gustavo Bordoni",
"hakre": "hakre",
"iandunn": "Ian Dunn",
"ipstenu": "Ipstenu (Mika Epstein)",
"jdgrimes": "J.D. Grimes",
"jakubtyrcha": "jakub.tyrcha",
"jamescollins": "James Collins",
"strangerstudios": "Jason Coleman",
"johnpbloch": "J B",
"jenmylo": "Jen",
"buffler": "Jeremy Buller",
"jayjdk": "Jesper Johansen (jayjdk)",
"joehoyle": "Joe Hoyle",
"jkudish": "Joey Kudish",
"johnafish": "John Fish",
"johnjamesjacoby": "John James Jacoby",
"johnnyb": "johnnyb",
"jond3r": "Jonas Bolinder (jond3r)",
"desrosj": "Jonathan Desrosiers",
"jchristopher": "Jon Christopher",
"jonlynch": "Jon Lynch",
"joostdevalk": "Joost de Valk",
"josephscott": "Joseph Scott",
"betzster": "Josh Betz",
"nukaga": "Junko Nukaga",
"devesine": "Justin de Vesine",
"justinsainton": "Justin Sainton",
"kadamwhite": "K. Adam White",
"trepmal": "Kailey (trepmal)",
"ketwaroo": "Ketwaroo",
"kevinb": "Kevin Behrens",
"kitchin": "kitchin",
"kovshenin": "Konstantin Kovshenin",
"obenland": "Konstantin Obenland",
"kurtpayne": "Kurt Payne",
"lancewillett": "Lance Willett",
"leewillis77": "Lee Willis",
"layotte": "Lew Ayotte",
"lucp": "LucP",
"lgedeon": "Luke Gedeon",
"iworks": "Marcin Pietrzak",
"cimmo": "Marco Cimmino",
"marco_teethgrinder": "Marco Galasso",
"nofearinc": "Mario Peshev",
"markmcwilliams": "Mark McWilliams",
"markoheijnen": "Marko Heijnen",
"melchoyce": "Mel Choyce-Dwan",
"tw2113": "Michael Beckwith",
"mikehansenme": "Mike Hansen",
"mikeschinkel": "Mike Schinkel",
"dimadin": "Milan Dinić",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"usermrpapa": "Mr Papa",
"nao": "Naoko Takano",
"naomicbush": "Naomi C. Bush",
"alex-ye": "Nashwan D",
"natejacobs": "NateJacobs",
"nathanrice": "Nathan Rice",
"niallkennedy": "Niall Kennedy",
"nickdaugherty": "nickdaugherty",
"celloexpressions": "Nick Halsey",
"nickmomrik": "Nick Momrik",
"nikv": "Nikhil Vimal",
"nbachiyski": "Nikolay Bachiyski",
"noahsilverstein": "noahsilverstein",
"butuzov": "Oleg Butuzov",
"paolal": "Paolo Belcastro",
"xparham": "Parham Ghaffarian",
"swissspidy": "Pascal Birchler",
"bftrick": "Patrick Rauland",
"pbiron": "Paul Biron",
"pauldewouters": "Paul de Wouters",
"pavelevap": "pavelevap",
"peterjaap": "peterjaap",
"philiparthurmoore": "Philip Arthur Moore",
"mordauk": "Pippin Williamson",
"pollett": "Pollett",
"ptahdunbar": "Ptah.ai",
"ramiy": "Rami Yushuvaev",
"rasheed": "Rasheed Bydousi",
"raybernard": "RayBernard",
"rboren": "rboren",
"greuben": "Reuben",
"rfair404": "rfair404",
"iamfriendly": "Rich Tape",
"r3df": "Rick Radko",
"miqrogroove": "Robert Chapin",
"rdall": "Robert Dall",
"rodrigosprimo": "Rodrigo Primo",
"wpmuguru": "Ron Rennick",
"rpattillo": "rpattillo",
"rmccue": "Ryan McCue",
"solarissmoke": "Samir Shah",
"scottsweb": "Scott (@scottsweb)",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"tenpura": "Seisuke Kuraishi",
"shinichin": "ShinichiN",
"pross": "Simon Prosser",
"simonwheatley": "Simon Wheatley",
"siobhan": "Siobhan",
"siobhyb": "Siobhan",
"sirzooro": "sirzooro",
"sillybean": "Stephanie Leary",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"wikicms": "suspended",
"sweetie089": "sweetie089",
"miyauchi": "Takayuki Miyauchi",
"tmtoy": "Takuma Morikawa",
"tlovett1": "Taylor Lovett",
"creativeinfusion": "Tim Smith",
"tobiasbg": "Tobias B&#228;thge",
"tomauger": "Tom Auger",
"toscho": "toscho",
"wpsmith": "Travis Smith",
"sorich87": "Ulrich Sossou",
"vericgar": "vericgar",
"vinod-dalvi": "Vinod Dalvi",
"westonruter": "Weston Ruter",
"willnorris": "Will Norris",
"wojtekszkutnik": "Wojtek Szkutnik",
"wycks": "wycks",
"yoavf": "Yoav Farhi",
"yurivictor": "Yuri Victor"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery Masonry",
"http://masonry.desandro.com/"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/lowe/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.7"
}
}

563
inc/credits/json/3.8.json Normal file
View file

@ -0,0 +1,563 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": true,
"data": {
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Core Developer"
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
],
"helen": [
"Helen Hou-Sandi",
"",
"helen",
""
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
],
"iammattthomas": [
"Matt Thomas",
"",
"iammattthomas",
""
],
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
""
],
"Otto42": [
"Samuel Wood",
"",
"Otto42",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"apeatling": [
"Andy Peatling",
"",
"apeatling",
""
],
"dbernar1": [
"Dan Bernardic",
"",
"dbernar1",
""
],
"drw158": [
"Dave Whitley",
"",
"drw158",
""
],
"EmpireOfLight": [
"Ben Dunkle",
"",
"EmpireOfLight",
""
],
"isaackeyet": [
"Isaac Keyet",
"",
"isaackeyet",
""
],
"Joen": [
"Joen Asmussen",
"",
"Joen",
""
],
"kraftbj": [
"Brandon Kraft",
"",
"kraftbj",
""
],
"lessbloat": [
"Dave Martin",
"",
"lessbloat",
""
],
"littlethingsstudio": [
"Kate Whitley",
"",
"littlethingsstudio",
""
],
"matveb": [
"Matías Ventura",
"",
"matveb",
""
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
],
"mitchoyoshitaka": [
"Michael Erlewine",
"",
"mitchoyoshitaka",
""
],
"ryelle": [
"Kelly Dwan",
"",
"ryelle",
""
],
"shaunandrews": [
"Shaun Andrews",
"",
"shaunandrews",
""
],
"tillkruess": [
"Till Krüss",
"",
"tillkruess",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"kadamwhite": [
"K. Adam White",
"",
"kadamwhite",
""
],
"yoavf": [
"Yoav Farhi",
"",
"yoavf",
""
],
"celloexpressions": [
"Nick Halsey",
"",
"celloexpressions",
""
],
"iamtakashi": [
"Takashi Irie",
"",
"iamtakashi",
""
],
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.8"
],
"type": "list",
"data": {
"aaronholbrook": "Aaron Holbrook",
"adamsilverstein": "Adam Silverstein",
"admiralthrawn": "admiralthrawn",
"ahoereth": "Alex",
"collinsinternet": "Allan Collins",
"sabreuse": "Amy Hendrix (sabreuse)",
"aralbald": "Andrey Kabakchiev",
"andykeith": "Andy Keith",
"ankitgadertcampcom": "Ankit Gade",
"atimmer": "Anton Timmermans",
"fliespl": "Arkadiusz Rzadkowolski",
"aubreypwd": "Aubrey Portwood",
"avryl": "avryl",
"bananastalktome": "Billy S",
"binarymoon": "binarymoon",
"bradyvercher": "Brady Vercher",
"bramd": "Bram Duvigneau",
"rzen": "Brian Richards",
"bpetty": "Bryan Petty",
"calin": "Calin Don",
"carldanley": "Carl Danley",
"sixhours": "Caroline Moore",
"caspie": "Caspie",
"chrisbliss18": "Chris Jean",
"iblamefish": "Clinton Montague",
"cojennin": "Connor Jennings",
"danieldudzic": "danieldudzic",
"datafeedrcom": "datafeedr",
"designsimply": "designsimply",
"dh-shredder": "DH-Shredder",
"dougwollison": "Doug Wollison",
"plocha": "edik",
"ericlewis": "Eric Andrew Lewis",
"ethitter": "Erick Hitter",
"ericmann": "Eric Mann",
"evansolomon": "Evan Solomon",
"faison": "Faison",
"fboender": "fboender",
"frank-klein": "Frank Klein",
"garyj": "Gary Jones",
"pento": "Gary Pendergast",
"soulseekah": "Gennady Kovshenin",
"georgestephanis": "George Stephanis",
"gnarf37": "gnarf37",
"gradyetc": "gradyetc",
"tivnet": "Gregory Karpinsky (@tivnet)",
"hanni": "hanni",
"iandunn": "Ian Dunn",
"ipstenu": "Ipstenu (Mika Epstein)",
"jdgrimes": "J.D. Grimes",
"jacklenox": "Jack Lenox",
"janhenckens": "janhenckens",
"janrenn": "janrenn",
"jblz": "Jeff Bowen",
"jeffr0": "Jeffro",
"jenmylo": "Jen",
"buffler": "Jeremy Buller",
"jeremyfelt": "Jeremy Felt",
"jeherve": "Jeremy Herve",
"jpry": "Jeremy Pry",
"jayjdk": "Jesper Johansen (jayjdk)",
"jhned": "jhned",
"jim912": "jim912",
"jartes": "Joan Artes",
"joedolson": "Joe Dolson",
"johnafish": "John Fish",
"johnjamesjacoby": "John James Jacoby",
"joostdevalk": "Joost de Valk",
"joshuaabenazer": "Joshua Abenazer",
"nukaga": "Junko Nukaga",
"devesine": "Justin de Vesine",
"justinsainton": "Justin Sainton",
"trepmal": "Kailey (trepmal)",
"codebykat": "Kat Hagan",
"mt8biz": "Kazuto Takeshita",
"kpdesign": "Kim Parsell",
"kwight": "Kirk Wight",
"koki4a": "Konstantin Dankov",
"kovshenin": "Konstantin Kovshenin",
"drozdz": "Krzysiek Dr&#243;żdż",
"latz": "latz",
"leewillis77": "Lee Willis",
"lite3": "lite3",
"lucp": "LucP",
"mako09": "Mako",
"tomdxw": "mallorydxw-old",
"nofearinc": "Mario Peshev",
"markmcwilliams": "Mark McWilliams",
"markoheijnen": "Marko Heijnen",
"mdbitz": "Matthew Denton",
"mattheu": "Matthew Haines-Young",
"mattonomics": "mattonomics",
"mattwiebe": "Matt Wiebe",
"megane9988": "megane9988",
"micahwave": "micahwave",
"cainm": "Michael Cain",
"michelwppi": "Michel - xiligroup dev",
"chellycat": "Michelle Langston",
"mikehansenme": "Mike Hansen",
"mikelittle": "Mike Little",
"dimadin": "Milan Dinić",
"batmoo": "Mohammad Jangda",
"morganestes": "Morgan Estes",
"nao": "Naoko Takano",
"neil_pie": "Neil Pie",
"nickdaugherty": "nickdaugherty",
"nbachiyski": "Nikolay Bachiyski",
"ninio": "ninio",
"nivijah": "nivijah",
"nvwd": "Nowell VanHoesen",
"odysseygate": "odyssey",
"originalexe": "OriginalEXE",
"swissspidy": "Pascal Birchler",
"pauldewouters": "Paul de Wouters",
"bassgang": "Paul Vincent Beigang",
"pavelevap": "pavelevap",
"sirbrillig": "Payton Swick",
"corphi": "Philipp Cordes",
"senlin": "Pieter Bos",
"ptahdunbar": "Ptah.ai",
"raamdev": "Raam Dev",
"rachelbaker": "Rachel Baker",
"bamadesigner": "Rachel Cherry",
"radices": "Radices",
"mauryaratan": "Ram Ratan Maurya",
"defries": "Remkus de Vries",
"rickalee": "Ricky Lee Whittemore",
"rdall": "Robert Dall",
"sanchothefat": "Robert O'Rourke",
"wet": "Robert Wetzlmayr",
"rodrigosprimo": "Rodrigo Primo",
"solarissmoke": "Samir Shah",
"scottbasgaard": "Scott Basgaard",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"seanchayes": "Sean Hayes",
"shinichin": "ShinichiN",
"simonwheatley": "Simon Wheatley",
"siobhan": "Siobhan",
"siobhyb": "Siobhan",
"sboisvert": "St&#233;phane Boisvert",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"stevenkword": "Steven Word",
"miyauchi": "Takayuki Miyauchi",
"tmtoy": "Takuma Morikawa",
"tellyworth": "Tellyworth",
"thomasguillot": "Thomas Guillot",
"tierra": "tierra",
"tlamedia": "TLA Media",
"tobiasbg": "Tobias B&#228;thge",
"dziudek": "Tomasz Dziuda",
"tommcfarlin": "tommcfarlin",
"zodiac1978": "Torsten Landsiedel",
"taupecat": "Tracy Rotton",
"trishasalas": "Trisha Salas",
"mbmufffin": "Tyler Smith",
"ninnypants": "Tyrel Kelsey",
"grapplerulrich": "Ulrich",
"undergroundnetwork": "undergroundnetwork",
"l10n": "Vladimir Tufekchiev",
"westonruter": "Weston Ruter",
"yonasy": "yonasy",
"yurivictor": "Yuri Victor",
"tollmanz": "Zack Tollman",
"ounziw": "水野史土"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery Masonry",
"http://masonry.desandro.com/"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/lowe/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.8"
}
}

613
inc/credits/json/3.9.json Normal file
View file

@ -0,0 +1,613 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Core Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Core Developer"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
],
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
""
],
"gcorne": [
"Gregory Cornelius",
"",
"gcorne",
""
],
"DH-Shredder": [
"Kira Song",
"",
"DH-Shredder",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
],
"avryl": [
"Janneke Van Dorpe",
"",
"avryl",
""
],
"ehg": [
"Chris Blower",
"",
"ehg",
""
],
"EmpireOfLight": [
"Ben Dunkle",
"",
"EmpireOfLight",
""
],
"ethitter": [
"Erick Hitter",
"",
"ethitter",
""
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"kovshenin": [
"Konstantin Kovshenin",
"",
"kovshenin",
""
],
"kpdesign": [
"Kim Parsell",
"",
"kpdesign",
""
],
"matveb": [
"Matías Ventura",
"",
"matveb",
""
],
"mcsf": [
"Miguel Fonseca",
"",
"mcsf",
""
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
],
"michael-arestad": [
"Michael Arestad",
"",
"michael-arestad",
""
],
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"pento": [
"Gary Pendergast",
"",
"pento",
""
],
"shaunandrews": [
"Shaun Andrews",
"",
"shaunandrews",
""
],
"smashcut": [
"Michael Pick",
"",
"smashcut",
""
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"3.9"
],
"type": "list",
"data": {
"aaroncampbell": "Aaron D. Campbell",
"kawauso": "Adam Harley (Kawauso)",
"adelval": "adelval",
"ajay": "Ajay",
"akeda": "Akeda Bagus",
"xknown": "Alex Concha",
"aliso": "Alison Barrett",
"collinsinternet": "Allan Collins",
"sabreuse": "Amy Hendrix (sabreuse)",
"afercia": "Andrea Fercia",
"norcross": "Andrew Norcross",
"eatingrules": "Andrew Wilder",
"rarst": "Andrey \"Rarst\" Savchenko",
"andykeith": "Andy Keith",
"andy": "Andy Skelton",
"atimmer": "Anton Timmermans",
"aubreypwd": "Aubrey Portwood",
"barry": "Barry",
"toszcze": "Bartosz Romanowski",
"bcworkz": "bcworkz",
"neoxx": "Bernhard Riedl",
"bigdawggi": "bigdawggi",
"bobbingwide": "bobbingwide",
"bobbravo2": "Bob Gregor",
"bradparbs": "Brad Parbs",
"bradt": "Brad Touesnard",
"bramd": "Bram Duvigneau",
"kraftbj": "Brandon Kraft",
"brasofilo": "brasofilo",
"bravokeyl": "bravokeyl",
"bpetty": "Bryan Petty",
"cgaffga": "cgaffga",
"chiragswadia": "Chirag Swadia",
"chouby": "Chouby",
"chriseverson": "Chris Everson",
"chrisguitarguy": "chrisguitarguy",
"cmmarslender": "Chris Marslender",
"c3mdigital": "Chris Olbekson",
"chrisscott": "Chris Scott",
"cfinke": "Christopher Finke",
"ciantic": "ciantic",
"antorome": "Comparativa de Bancos",
"cojennin": "Connor Jennings",
"corvannoorloos": "corvannoorloos",
"cramdesign": "cramdesign",
"danielbachhuber": "Daniel Bachhuber",
"redsweater": "Daniel Jalkut (Red Sweater)",
"dannydehaan": "Danny de Haan",
"dpe415": "DaveE",
"eightface": "Dave Kellam",
"davidakennedy": "David A. Kennedy",
"davidanderson": "David Anderson / Team Updraft",
"davidmarichal": "David Marichal",
"denis-de-bernardy": "Denis de Bernardy",
"dougwollison": "Doug Wollison",
"drprotocols": "DrProtocols",
"dustyf": "Dustin Filippini",
"plocha": "edik",
"oso96_2000": "Eduardo Reveles",
"eliorivero": "Elio Rivero",
"enej": "Enej Bajgorić",
"ericlewis": "Eric Andrew Lewis",
"evarlese": "Erica Varlese",
"ericmann": "Eric Mann",
"ejdanderson": "Evan",
"fahmiadib": "Fahmi Adib",
"fboender": "fboender",
"frank-klein": "Frank Klein",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"genkisan": "genkisan",
"soulseekah": "Gennady Kovshenin",
"georgestephanis": "George Stephanis",
"greglone": "Gr&#233;gory Viguier",
"gradyetc": "gradyetc",
"grahamarmfield": "Graham Armfield",
"vancoder": "Grant Mangham",
"tivnet": "Gregory Karpinsky (@tivnet)",
"hakre": "hakre",
"hanni": "hanni",
"ippetkov": "ippetkov",
"ipstenu": "Ipstenu (Mika Epstein)",
"jdgrimes": "J.D. Grimes",
"jackreichert": "Jack Reichert",
"_jameslee": "jameslee",
"janrenn": "janrenn",
"jaycc": "JayCC",
"johnpbloch": "J B",
"jeffsebring": "Jeff Sebring",
"jenmylo": "Jen",
"jesin": "Jesin A",
"jayjdk": "Jesper Johansen (jayjdk)",
"jnielsendotnet": "jnielsendotnet",
"jartes": "Joan Artes",
"joedolson": "Joe Dolson",
"joehoyle": "Joe Hoyle",
"johnjamesjacoby": "John James Jacoby",
"johnregan3": "John Regan",
"jond3r": "Jonas Bolinder (jond3r)",
"joostdevalk": "Joost de Valk",
"shelob9": "Josh Pollock",
"joshuaabenazer": "Joshua Abenazer",
"jstraitiff": "jstraitiff",
"juliobox": "Julio Potier",
"kopepasah": "Justin Kopepasah",
"justinsainton": "Justin Sainton",
"kadamwhite": "K. Adam White",
"trepmal": "Kailey (trepmal)",
"kasparsd": "Kaspars",
"ryelle": "Kelly Choyce-Dwan",
"kerikae": "kerikae",
"kworthington": "Kevin Worthington",
"kwight": "Kirk Wight",
"kitchin": "kitchin",
"klihelp": "klihelp",
"knutsp": "Knut Sparhell",
"drozdz": "Krzysiek Dr&#243;żdż",
"ldebrouwer": "ldebrouwer",
"leewillis77": "Lee Willis",
"lpointet": "Lionel Pointet",
"spmlucas": "Lucas Karpiuk",
"lkwdwrd": "Luke Woodward",
"nofearinc": "Mario Peshev",
"mark8barnes": "Mark Barnes",
"markoheijnen": "Marko Heijnen",
"marventus": "Marventus",
"iammattthomas": "Matt (Thomas) Miklic",
"mjbanks": "Matt Banks",
"mboynes": "Matthew Boynes",
"mdbitz": "Matthew Denton",
"mattheu": "Matthew Haines-Young",
"mattonomics": "mattonomics",
"mattyrob": "Matt Robinson",
"maxcutler": "Max Cutler",
"mcadwell": "mcadwell",
"meloniq": "meloniq",
"michelwppi": "Michel - xiligroup dev",
"mikecorkum": "mikecorkum",
"mikehansenme": "Mike Hansen",
"mikemanger": "Mike Manger",
"mikeschinkel": "Mike Schinkel",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"batmoo": "Mohammad Jangda",
"morganestes": "Morgan Estes",
"mor10": "Morten Rand-Hendriksen",
"nao": "Naoko Takano",
"alex-ye": "Nashwan D",
"nendeb55": "nendeb",
"celloexpressions": "Nick Halsey",
"nikv": "Nikhil Vimal",
"nivijah": "nivijah",
"nunomorgadinho": "nunomorgadinho",
"nicolealleyinteractivecom": "Old Profile",
"olivm": "olivM",
"jbkkd": "Omer Korner",
"originalexe": "OriginalEXE",
"patricknami": "Patrick Bates",
"pbearne": "Paul Bearne",
"bassgang": "Paul Vincent Beigang",
"paulwilde": "Paul Wilde",
"djpaul": "Paul Wong-Gibbs",
"pavelevap": "pavelevap",
"philiparthurmoore": "Philip Arthur Moore",
"corphi": "Philipp Cordes",
"mordauk": "Pippin Williamson",
"nprasath002": "Prasath Nadarajah",
"prettyboymp": "prettyboymp",
"raamdev": "Raam Dev",
"rachelbaker": "Rachel Baker",
"ramonchiara": "ramonchiara",
"mauryaratan": "Ram Ratan Maurya",
"rhyswynne": "Rhys Wynne",
"ricardocorreia": "Ricardo Correia",
"richard2222": "Richard",
"theorboman": "Richard Sweeney",
"iamfriendly": "Rich Tape",
"rickalee": "Ricky Lee Whittemore",
"miqrogroove": "Robert Chapin",
"robmiller": "robmiller",
"rodrigosprimo": "Rodrigo Primo",
"romaimperator": "romaimperator",
"roothorick": "roothorick",
"ruudjoyo": "Ruud Laan",
"rmccue": "Ryan McCue",
"salcode": "Sal Ferrarello",
"solarissmoke": "Samir Shah",
"otto42": "Samuel Wood (Otto)",
"sandyr": "Sandeep Raman",
"scottlee": "Scott Lee",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"sdasse": "sdasse",
"bootsz": "Sean Butze",
"seanchayes": "Sean Hayes",
"nessworthy": "Sean Nessworthy",
"shahpranaf": "shahpranaf",
"shinichin": "ShinichiN",
"pross": "Simon Prosser",
"simonwheatley": "Simon Wheatley",
"siobhan": "Siobhan",
"siobhyb": "Siobhan",
"sirzooro": "sirzooro",
"sonjanyc": "sonjanyc",
"spencerfinnell": "Spencer Finnell",
"piontkowski": "Spencer Piontkowski",
"stephcook22": "stephcook22",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"sbruner": "Steve Bruner",
"stevenkword": "Steven Word",
"miyauchi": "Takayuki Miyauchi",
"tanner-m": "Tanner Moushey",
"tlovett1": "Taylor Lovett",
"tbrams": "tbrams",
"tellyworth": "Tellyworth",
"tobiasbg": "Tobias B&#228;thge",
"tomauger": "Tom Auger",
"willmot": "Tom Willmot",
"topher1kenobe": "Topher",
"topquarky": "topquarky",
"zodiac1978": "Torsten Landsiedel",
"toru": "Toru Miki",
"wpsmith": "Travis Smith",
"umeshsingla": "Umesh Kumar",
"undergroundnetwork": "undergroundnetwork",
"varunagw": "VarunAgw",
"wawco": "wawco",
"wokamoto": "wokamoto",
"xsonic": "xsonic",
"yoavf": "Yoav Farhi",
"yurivictor": "Yuri Victor",
"vanillalounge": "Z&#233; Fontainhas",
"zbtirrell": "Zach Tirrell",
"ounziw": "水野史土"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/lowe/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "3.9"
}
}

575
inc/credits/json/4.0.json Normal file
View file

@ -0,0 +1,575 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Release Lead"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Core Developer"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"avryl": [
"Janneke Van Dorpe",
"",
"avryl",
""
],
"ericlewis": [
"Eric Andrew Lewis",
"",
"ericlewis",
""
],
"shaunandrews": [
"Shaun Andrews",
"",
"shaunandrews",
""
],
"gcorne": [
"Gregory Cornelius",
"",
"gcorne",
""
],
"celloexpressions": [
"Nick Halsey",
"",
"celloexpressions",
""
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
""
],
"miqrogroove": [
"Robert Chapin",
"",
"miqrogroove",
""
],
"stephdau": [
"Stephane Daury",
"",
"stephdau",
""
],
"tellyworth": [
"Alex Shiels",
"",
"tellyworth",
""
],
"joedolson": [
"Joe Dolson",
"",
"joedolson",
""
],
"kovshenin": [
"Konstantin Kovshenin",
"",
"kovshenin",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.0"
],
"type": "list",
"data": {
"aaroncampbell": "Aaron D. Campbell",
"jorbin": "Aaron Jorbin",
"alexanderrohmann": "Alexander Rohmann",
"viper007bond": "Alex Mills",
"aliso": "Alison Barrett",
"collinsinternet": "Allan Collins",
"amit": "Amit Gupta",
"sabreuse": "Amy Hendrix (sabreuse)",
"andrezrv": "Andr&#233;s Villarreal",
"afercia": "Andrea Fercia",
"zamfeer": "Andrew Mowe",
"sumobi": "Andrew Munro",
"andy": "Andy Skelton",
"ankit-k-gupta": "Ankit K Gupta",
"atimmer": "Anton Timmermans",
"arnee": "Arne",
"aubreypwd": "Aubrey Portwood",
"filosofo": "Austin Matzko",
"empireoflight": "Ben Dunkle",
"kau-boy": "Bernhard Kau",
"boonebgorges": "Boone Gorges",
"bradyvercher": "Brady Vercher",
"bramd": "Bram Duvigneau",
"kraftbj": "Brandon Kraft",
"krogsgard": "Brian Krogsgard",
"brianlayman": "Brian Layman",
"rzen": "Brian Richards",
"camdensegal": "Camden Segal",
"sixhours": "Caroline Moore",
"mackensen": "Charles Fulton",
"chouby": "Chouby",
"chrico": "ChriCo",
"chrisl27": "Chris Lloyd",
"c3mdigital": "Chris Olbekson",
"caxelsson": "Christian Axelsson",
"cfinke": "Christopher Finke",
"boda1982": "Christopher Spires",
"clifgriffin": "Clifton Griffin",
"compute": "Compute",
"jupiterwise": "Corey McKrill",
"extendwings": "Daisuke Takahashi",
"ghost1227": "Dan Griffiths",
"danielbachhuber": "Daniel Bachhuber",
"danielhuesken": "Daniel H&#252;sken",
"redsweater": "Daniel Jalkut (Red Sweater)",
"dannydehaan": "Danny de Haan",
"dkotter": "Darin Kotter",
"dllh": "Daryl L. L. Houston (dllh)",
"lessbloat": "Dave Martin (lessbloat)",
"dnaber-de": "David",
"davidakennedy": "David A. Kennedy",
"dlh": "David Herrera",
"davidthemachine": "DavidTheMachine",
"debaat": "DeBAAT",
"dh-shredder": "DH-Shredder",
"donncha": "Donncha O Caoimh (a11n)",
"dustyn": "Dustyn Doyle",
"eddiemoya": "Eddie Moya",
"oso96_2000": "Eduardo Reveles",
"edwin-at-studiojoyocom": "Edwin Siebel",
"ehg": "ehg",
"erayalakese": "erayalakese",
"ebinnion": "Eric Binnion",
"ericmann": "Eric Mann",
"ejdanderson": "Evan",
"eherman24": "Evan Herman",
"fab1en": "Fabien Quatravaux",
"fahmiadib": "Fahmi Adib",
"feedmeastraycat": "feedmeastraycat",
"frank-klein": "Frank Klein",
"garhdez": "garhdez",
"voldemortensen": "Garth Mortensen",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"pento": "Gary Pendergast",
"garza": "garza",
"gauravmittal1995": "gauravmittal1995",
"gavra": "gavra",
"georgestephanis": "George Stephanis",
"greglone": "Gr&#233;gory Viguier",
"grahamarmfield": "Graham Armfield",
"vancoder": "Grant Mangham",
"bordoni": "Gustavo Bordoni",
"harrym": "harrym",
"hinnerk": "Hinnerk Altenburg",
"hlashbrooke": "Hugh Lashbrooke",
"iljoja": "iljoja",
"ipstenu": "Ipstenu (Mika Epstein)",
"issuu": "issuu",
"jdgrimes": "J.D. Grimes",
"jacklenox": "Jack Lenox",
"jackreichert": "Jack Reichert",
"jacobdubail": "Jacob Dubail",
"janhenkg": "JanHenkG",
"jwenerd": "Jared Wenerd",
"strangerstudios": "Jason Coleman",
"jaza613": "Jaza613",
"jeffstieler": "Jeff Stieler",
"jeremyfelt": "Jeremy Felt",
"jpry": "Jeremy Pry",
"slimndap": "Jeroen Schmit",
"jerrysarcastic": "jerrysarcastic",
"jesin": "Jesin A",
"jayjdk": "Jesper Johansen (jayjdk)",
"engelen": "Jesper van Engelen",
"jesper800": "Jesper van Engelen",
"jessepollak": "Jesse Pollak",
"jgadbois": "jgadbois",
"jartes": "Joan Artes",
"joehoyle": "Joe Hoyle",
"jkudish": "Joey Kudish",
"johnjamesjacoby": "John James Jacoby",
"johnzanussi": "John Zanussi",
"jonnyauk": "jonnyauk",
"joostdevalk": "Joost de Valk",
"softmodeling": "Jordi Cabot",
"jjeaton": "Josh Eaton",
"tai": "JOTAKI, Taisuke",
"juliobox": "Julio Potier",
"justinsainton": "Justin Sainton",
"jtsternberg": "Justin Sternberg",
"greenshady": "Justin Tadlock",
"kadamwhite": "K. Adam White",
"trepmal": "Kailey (trepmal)",
"kapeels": "kapeels",
"ryelle": "Kelly Choyce-Dwan",
"kevinlangleyjr": "Kevin Langley Jr.",
"kworthington": "Kevin Worthington",
"kpdesign": "Kim Parsell",
"kwight": "Kirk Wight",
"kitchin": "kitchin",
"ixkaito": "Kite",
"knutsp": "Knut Sparhell",
"obenland": "Konstantin Obenland",
"kurtpayne": "Kurt Payne",
"lancewillett": "Lance Willett",
"leewillis77": "Lee Willis",
"layotte": "Lew Ayotte",
"lritter": "lritter",
"lukecarbis": "Luke Carbis",
"lgedeon": "Luke Gedeon",
"funkatronic": "Manny Fleurmond",
"targz-1": "Manuel Schmalstieg",
"clorith": "Marius L. J.",
"markoheijnen": "Marko Heijnen",
"imath": "Mathieu Viet",
"mjbanks": "Matt Banks",
"mboynes": "Matthew Boynes",
"mdbitz": "Matthew Denton",
"mattheweppelsheimer": "Matthew Eppelsheimer",
"mattheu": "Matthew Haines-Young",
"sivel": "Matt Martz",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"meekyhwang": "meekyhwang",
"melchoyce": "Mel Choyce-Dwan",
"mdawaffe": "Michael Adams (mdawaffe)",
"mnelson4": "Michael Nelson",
"smashcut": "Michael Pick",
"michalzuber": "michalzuber",
"midxcat": "midxcat",
"mauteri": "Mike Auteri",
"mikehansenme": "Mike Hansen",
"mikejolley": "Mike Jolley",
"mikelittle": "Mike Little",
"mikemanger": "Mike Manger",
"mikeyarce": "Mikey Arce",
"dimadin": "Milan Dinić",
"morganestes": "Morgan Estes",
"mrmist": "mrmist",
"usermrpapa": "Mr Papa",
"m_uysl": "Mustafa Uysal",
"muvimotv": "MuViMoTV",
"m_i_n": "m_i_n",
"nabil_kadimi": "Nabil",
"namibia": "Namibia",
"alex-ye": "Nashwan D",
"nd987": "nd987",
"neil_pie": "Neil Pie",
"niallkennedy": "Niall Kennedy",
"nbachiyski": "Nikolay Bachiyski",
"schoenwaldnils": "Nils Sch&#246;nwald",
"ninos-ego": "Ninos",
"nvwd": "Nowell VanHoesen",
"hebbet": "Pascal Herbert",
"pbearne": "Paul Bearne",
"pdclark": "Paul Clark",
"paulschreiber": "Paul Schreiber",
"paulwilde": "Paul Wilde",
"pavelevap": "pavelevap",
"philiparthurmoore": "Philip Arthur Moore",
"philipjohn": "Philip John",
"corphi": "Philipp Cordes",
"senlin": "Pieter Bos",
"psoluch": "Piotr Soluch",
"mordauk": "Pippin Williamson",
"purzlbaum": "purzlbaum",
"rachelbaker": "Rachel Baker",
"rclations": "RC Lations",
"iamfriendly": "Rich Tape",
"rickalee": "Ricky Lee Whittemore",
"rob1n": "rob1n",
"rdall": "Robert Dall",
"harmr": "Robert Seyfriedsberger",
"rohan013": "Rohan Rawat",
"rhurling": "Rouven Hurling",
"ruudjoyo": "Ruud Laan",
"rmccue": "Ryan McCue",
"sammybeats": "Sam Brodie",
"solarissmoke": "Samir Shah",
"otto42": "Samuel Wood (Otto)",
"sathishn": "Sathish Nagarajan",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"seanchayes": "Sean Hayes",
"nessworthy": "Sean Nessworthy",
"sergejmueller": "Sergej M&#252;ller",
"shanebp": "shanebp",
"sharonaustin": "Sharon Austin",
"simonp303": "Simon Pollard",
"simonwheatley": "Simon Wheatley",
"slobodanmanic": "Slobodan Manic",
"sphoid": "sphoid",
"netweb": "Stephen Edgar",
"stompweb": "Steven Jones",
"5um17": "Sumit Singh",
"t4k1s": "t4k1s",
"iamtakashi": "Takashi Irie",
"taylorde": "Taylor Dewey",
"thomasvanderbeek": "Thomas",
"tillkruess": "Till Kr&#252;ss",
"codenameeli": "Tim &#039;Eli&#039; Dalbey",
"tmeister": "tmeister",
"tobiasbg": "Tobias B&#228;thge",
"tjnowell": "Tom J Nowell",
"willmot": "Tom Willmot",
"topher1kenobe": "Topher",
"torresga": "torresga",
"liljimmi": "Tracy Levesque",
"wpsmith": "Travis Smith",
"treyhunner": "treyhunner",
"umeshsingla": "Umesh Kumar",
"vinod-dalvi": "Vinod Dalvi",
"vlajos": "vlajos",
"winterdev": "winterDev",
"wojtekszkutnik": "Wojtek Szkutnik",
"yoavf": "Yoav Farhi",
"katzwebdesign": "Zack Katz",
"tollmanz": "Zack Tollman",
"zoerooney": "Zoe Rooney"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/project/color"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/project/query-object"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://jquery.com/demo/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/lowe/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.0"
}
}

612
inc/credits/json/4.1.json Normal file
View file

@ -0,0 +1,612 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"ryan": [
"Ryan Boren",
"",
"ryan",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"westi": [
"Peter Westwood",
"",
"westi",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Release Lead"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Core Developer"
],
"koop": [
"Daryl Koopersmith",
"",
"koop",
"Core Developer"
],
"duck_": [
"Jon Cave",
"",
"duck_",
"Core Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Core Developer"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
""
],
"pento": [
"Gary Pendergast",
"",
"pento",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"kovshenin": [
"Konstantin Kovshenin",
"",
"kovshenin",
""
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"iamtakashi": [
"Takashi Irie",
"",
"iamtakashi",
""
],
"iandstewart": [
"Ian Stewart",
"",
"iandstewart",
""
],
"avryl": [
"Janneke Van Dorpe",
"",
"avryl",
""
],
"celloexpressions": [
"Nick Halsey",
"",
"celloexpressions",
""
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
""
],
"stephdau": [
"Stephane Daury",
"",
"stephdau",
""
],
"tellyworth": [
"Alex Shiels",
"",
"tellyworth",
""
],
"joedolson": [
"Joe Dolson",
"",
"joedolson",
""
],
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.1"
],
"type": "list",
"data": {
"aaroncampbell": "Aaron D. Campbell",
"adamsilverstein": "Adam Silverstein",
"akumria": "akumria",
"xknown": "Alex Concha",
"viper007bond": "Alex Mills",
"collinsinternet": "Allan Collins",
"momo360modena": "Amaury Balmer",
"amruta123b": "Amruta Bhosale",
"afercia": "Andrea Fercia",
"andg": "Andrea Gandino",
"sumobi": "Andrew Munro",
"andrewryno": "Andrew Ryno",
"rarst": "Andrey \"Rarst\" Savchenko",
"ankitgadertcampcom": "Ankit Gade",
"ankit-k-gupta": "Ankit K Gupta",
"antpb": "Anthony Burchell",
"arippberger": "arippberger",
"ideag": "Arunas Liuiza",
"filosofo": "Austin Matzko",
"bainternet": "Bainternet",
"barrykooij": "Barry Kooij",
"empireoflight": "Ben Dunkle",
"benjmay": "Ben May",
"neoxx": "Bernhard Riedl",
"birgire": "Birgir Erlendsson (birgire)",
"bobbingwide": "bobbingwide",
"bradyvercher": "Brady Vercher",
"bramd": "Bram Duvigneau",
"kraftbj": "Brandon Kraft",
"socki03": "Brett Wysocki",
"briandichiara": "Brian DiChiara",
"rzen": "Brian Richards",
"bswatson": "Brian Watson",
"camdensegal": "Camden Segal",
"captaintheme": "Captain Theme",
"hiwhatsup": "Carlos Zuniga",
"caspie": "Caspie",
"ccprice": "ccprice",
"mackensen": "Charles Fulton",
"chrico": "ChriCo",
"aprea": "Chris A. a11n",
"chriscct7": "chriscct7",
"chrisbliss18": "Chris Jean",
"chrisl27": "Chris Lloyd",
"cmmarslender": "Chris Marslender",
"jazzs3quence": "Chris Reynolds",
"cfoellmann": "Christian Foellmann",
"cfinke": "Christopher Finke",
"cyclometh": "Corey Snow",
"curtjen": "curtjen",
"colorful-tones": "Damon Cook",
"dancameron": "Dan Cameron",
"danielbachhuber": "Daniel Bachhuber",
"convissor": "Daniel Convissor",
"nerrad": "Darren Ethier (nerrad)",
"dmchale": "Dave McHale",
"davidakennedy": "David A. Kennedy",
"dcavins": "David Cavins",
"dlh": "David Herrera",
"davidthemachine": "DavidTheMachine",
"davidjlaietta": "david wolfpaw",
"technical_mastermind": "David Wood",
"realloc": "Dennis Ploetner",
"valendesigns": "Derek Herman",
"dh-shredder": "DH-Shredder",
"wedi": "Dirk Weise",
"dominikschwind-1": "Dominik Schwind",
"dustinbolton": "Dustin Bolton",
"dustyf": "Dustin Filippini",
"dustinhartzler": "Dustin Hartzler",
"eliorivero": "Elio Rivero",
"ericlewis": "Eric Andrew Lewis",
"ebinnion": "Eric Binnion",
"ew_holmes": "Eric Holmes",
"fab1en": "Fabien Quatravaux",
"florianziegler": "Florian Ziegler",
"hereswhatidid": "Gabe Shackle",
"voldemortensen": "Garth Mortensen",
"garyc40": "Gary Cao",
"soulseekah": "Gennady Kovshenin",
"babbardel": "George Olaru",
"georgestephanis": "George Stephanis",
"gcorne": "Gregory Cornelius",
"tivnet": "Gregory Karpinsky (@tivnet)",
"gregrickaby": "Greg Rickaby",
"bordoni": "Gustavo Bordoni",
"hardy101": "hardy101",
"hauvong": "hauvong",
"heshiming": "heshiming",
"honeysilvas": "honeysilvas",
"hugodelgado": "hugodelgado",
"ianmjones": "ianmjones",
"igmoweb": "Ignacio Cruz Moreno",
"ipstenu": "Ipstenu (Mika Epstein)",
"iseulde": "iseulde",
"ivankristianto": "Ivan Kristianto",
"jdgrimes": "J.D. Grimes",
"jaimieolmstead": "jaimieolmstead",
"jakubtyrcha": "jakub.tyrcha",
"janhenckens": "janhenckens",
"japh": "Japh",
"jarednova": "jarednova",
"jwenerd": "Jared Wenerd",
"jeanyoungkim": "jeanyoungkim",
"jfarthing84": "Jeff Farthing",
"jeffstieler": "Jeff Stieler",
"jeherve": "Jeremy Herve",
"jesin": "Jesin A",
"jayjdk": "Jesper Johansen (jayjdk)",
"engelen": "Jesper van Engelen",
"jessepollak": "Jesse Pollak",
"jipmoors": "Jip Moors",
"joemcgill": "Joe McGill",
"johneckman": "John Eckman",
"johnjamesjacoby": "John James Jacoby",
"johnrom": "johnrom",
"jbrinley": "Jonathan Brinley",
"desrosj": "Jonathan Desrosiers",
"jb510": "Jon Brown",
"joostdevalk": "Joost de Valk",
"softmodeling": "Jordi Cabot",
"joshuaabenazer": "Joshua Abenazer",
"tai": "JOTAKI, Taisuke",
"julien731": "Julien Liabeuf",
"jrf": "Juliette Reinders Folmer",
"justinsainton": "Justin Sainton",
"jtsternberg": "Justin Sternberg",
"kadamwhite": "K. Adam White",
"trepmal": "Kailey (trepmal)",
"kamelkev": "kamelkev",
"keesiemeijer": "keesiemeijer",
"ryelle": "Kelly Choyce-Dwan",
"kevinlangleyjr": "Kevin Langley Jr.",
"kdoran": "Kiko Doran",
"kpdesign": "Kim Parsell",
"kwight": "Kirk Wight",
"kitchin": "kitchin",
"ixkaito": "Kite",
"knutsp": "Knut Sparhell",
"kosvrouvas": "Kostas Vrouvas",
"kristastevens": "kristastevens",
"kurtpayne": "Kurt Payne",
"latz": "latz",
"offereins": "Laurens Offereins",
"linuxologos": "linuxologos",
"loushou": "loushou",
"karpstrucking": "Lucas Karpiuk",
"manoz69": "Manoz69",
"mantismamita": "mantismamita",
"marcosf": "Marco Schmoecker",
"tyxla": "Marin Atanasov",
"nofearinc": "Mario Peshev",
"clorith": "Marius L. J.",
"landakram": "Mark Hudnall",
"markoheijnen": "Marko Heijnen",
"marsjaninzmarsa": "marsjaninzmarsa",
"imath": "Mathieu Viet",
"matveb": "Matias Ventura",
"mboynes": "Matthew Boynes",
"mattheu": "Matthew Haines-Young",
"mattkeys": "Matt Keys",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"mlteal": "Maura Teal",
"melchoyce": "Mel Choyce-Dwan",
"merty": "Mert Yaz&#196;&#177;c&#196;&#177;o&#196;&#376;lu",
"mdawaffe": "Michael Adams (mdawaffe)",
"michael-arestad": "Michael Arestad",
"tw2113": "Michael Beckwith",
"cainm": "Michael Cain",
"mnelson4": "Michael Nelson",
"smashcut": "Michael Pick",
"michalzuber": "michalzuber",
"chellycat": "Michelle Langston",
"mcsf": "Miguel Fonseca",
"mikehansenme": "Mike Hansen",
"mikejolley": "Mike Jolley",
"mikeyarce": "Mikey Arce",
"studionashvegas": "Mitch Canter",
"morganestes": "Morgan Estes",
"mor10": "Morten Rand-Hendriksen",
"mvd7793": "mvd7793",
"alex-ye": "Nashwan D",
"niallkennedy": "Niall Kennedy",
"nikv": "Nikhil Vimal",
"nikolovtmw": "Nikola Nikolov",
"nbachiyski": "Nikolay Bachiyski",
"nobleclem": "nobleclem",
"noplanman": "noplanman",
"nvwd": "Nowell VanHoesen",
"originalexe": "OriginalEXE",
"pauldewouters": "Paul de Wouters",
"paulschreiber": "Paul Schreiber",
"pushplaybang": "Paul van Zyl",
"paulwilde": "Paul Wilde",
"pavelevap": "pavelevap",
"peterchester": "Peter Chester",
"donutz": "Peter J. Herrel",
"peterwilsoncc": "Peter Wilson",
"philiparthurmoore": "Philip Arthur Moore",
"corphi": "Philipp Cordes",
"johnstonphilip": "Phil Johnston",
"phpmypython": "phpmypython",
"mordauk": "Pippin Williamson",
"nprasath002": "Prasath Nadarajah",
"psycleuk": "psycleuk",
"ptahdunbar": "Ptah.ai",
"p_enrique": "p_enrique",
"quietnic": "quietnic",
"rachelbaker": "Rachel Baker",
"ramiabraham": "ramiabraham",
"ramiy": "Rami Yushuvaev",
"greuben": "Reuben",
"rianrietveld": "Rian Rietveld",
"richardmtl": "Richard Archambault",
"rickalee": "Ricky Lee Whittemore",
"miqrogroove": "Robert Chapin",
"rodrigosprimo": "Rodrigo Primo",
"ryankienstra": "Ryan Kienstra",
"rmccue": "Ryan McCue",
"sakinshrestha": "Sakin Shrestha",
"samhotchkiss": "Sam Hotchkiss",
"solarissmoke": "Samir Shah",
"otto42": "Samuel Wood (Otto)",
"sc0ttkclark": "Scott Kingsley Clark",
"coffee2code": "Scott Reilly",
"senff": "Senff - a11n",
"shooper": "Shawn Hooper",
"simonp303": "Simon Pollard",
"simonwheatley": "Simon Wheatley",
"skaeser": "skaeser",
"slobodanmanic": "Slobodan Manic",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"stevegrunwell": "Steve Grunwell",
"5um17": "Sumit Singh",
"tacoverdo": "Taco Verdonschot",
"miyauchi": "Takayuki Miyauchi",
"hissy": "Takuro Hishikawa",
"karmatosed": "Tammie Lister",
"tareq1988": "Tareq Hasan",
"tlovett1": "Taylor Lovett",
"kraftner": "Thomas Kr&#228;ftner",
"ipm-frommen": "Thorsten Frommen",
"tillkruess": "Till Kr&#252;ss",
"sippis": "Timi Wahalahti",
"tmatsuur": "tmatsuur",
"tobiasbg": "Tobias B&#228;thge",
"tschutter": "Tobias Schutter",
"tmtrademark": "Toby McKes",
"tomasm": "Tomas Mackevicius",
"tomharrigan": "TomHarrigan",
"tjnowell": "Tom J Nowell",
"topher1kenobe": "Topher",
"zodiac1978": "Torsten Landsiedel",
"liljimmi": "Tracy Levesque",
"transom": "transom",
"wpsmith": "Travis Smith",
"tywayne": "Ty Carlson",
"desaiuditd": "Udit Desai",
"umeshsingla": "Umesh Kumar",
"vinod-dalvi": "Vinod Dalvi",
"vlajos": "vlajos",
"vortfu": "vortfu",
"willstedt": "willstedt",
"yoavf": "Yoav Farhi",
"nobinobi": "Yuta Sekine",
"zrothauser": "Zack Rothauser",
"tollmanz": "Zack Tollman"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/color/"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.1"
}
}

592
inc/credits/json/4.2.json Normal file
View file

@ -0,0 +1,592 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Lead Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
"Release Lead"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
"Core Developer"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Core Developer"
],
"ryan": [
"Ryan Boren",
"",
"ryan",
""
],
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"stephdau": [
"Stephane Daury",
"",
"stephdau",
""
],
"michael-arestad": [
"Michael Arestad",
"",
"michael-arestad",
""
],
"kraftbj": [
"Brandon Kraft",
"",
"kraftbj",
""
],
"celloexpressions": [
"Nick Halsey",
"",
"celloexpressions",
""
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
""
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
""
],
"valendesigns": [
"Derek Herman",
"",
"valendesigns",
""
],
"joedolson": [
"Joe Dolson",
"",
"joedolson",
""
],
"tyxla": [
"Marin Atanasov",
"",
"tyxla",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.2"
],
"type": "list",
"data": {
"mercime": "@mercime",
"a5hleyrich": "A5hleyRich",
"aaroncampbell": "Aaron D. Campbell",
"abhishekfdd": "Abhishek Kumar",
"adamsilverstein": "Adam Silverstein",
"mrahmadawais": "Ahmad Awais",
"alexkingorg": "Alex King",
"viper007bond": "Alex Mills",
"deconf": "Alin Marcu",
"collinsinternet": "Allan Collins",
"awbauer": "Andrew Bauer",
"norcross": "Andrew Norcross",
"ankitgadertcampcom": "Ankit Gade",
"ankit-k-gupta": "Ankit K Gupta",
"atimmer": "Anton Timmermans",
"aramzs": "Aram Zucker-Scharff",
"arminbraun": "ArminBraun",
"ashfame": "Ashish Kumar (Ashfame)",
"filosofo": "Austin Matzko",
"avryl": "avryl",
"barrykooij": "Barry Kooij",
"beaulebens": "Beau Lebens",
"bendoh": "Ben Doherty (Oomph, Inc)",
"bananastalktome": "Billy S",
"krogsgard": "Brian Krogsgard",
"bswatson": "Brian Watson",
"calevans": "CalEvans",
"carolinegeven": "carolinegeven",
"caseypatrickdriscoll": "Casey Driscoll",
"caspie": "Caspie",
"chipbennett": "Chip Bennett",
"chipx86": "chipx86",
"chrico": "ChriCo",
"cbaldelomar": "Chris Baldelomar",
"chriscct7": "chriscct7",
"c3mdigital": "Chris Olbekson",
"cfoellmann": "Christian Foellmann",
"cfinke": "Christopher Finke",
"clifgriffin": "Clifton Griffin",
"codix": "Code Master",
"couturefreak": "Courtney Ivey",
"craig-ralston": "Craig Ralston",
"cweiske": "cweiske",
"cdog": "Cătălin Dogaru",
"extendwings": "Daisuke Takahashi",
"timersys": "Damian",
"danielbachhuber": "Daniel Bachhuber",
"redsweater": "Daniel Jalkut (Red Sweater)",
"dkotter": "Darin Kotter",
"nerrad": "Darren Ethier (nerrad)",
"dllh": "Daryl L. L. Houston (dllh)",
"dmchale": "Dave McHale",
"davidakennedy": "David A. Kennedy",
"davidanderson": "David Anderson / Team Updraft",
"davideugenepratt": "davideugenepratt",
"davidhamiltron": "davidhamiltron",
"dlh": "David Herrera",
"denis-de-bernardy": "Denis de Bernardy",
"dsmart": "Derek Smart",
"designsimply": "designsimply",
"dipeshkakadiya": "Dipesh Kakadiya",
"doublesharp": "doublesharp",
"dzerycz": "DzeryCZ",
"kucrut": "Dzikri Aziz",
"emazovetskiy": "e.mazovetskiy",
"oso96_2000": "Eduardo Reveles",
"cais": "Edward Caissie",
"eliorivero": "Elio Rivero",
"elliottcarlson": "elliottcarlson",
"enej": "Enej Bajgorić",
"ericlewis": "Eric Andrew Lewis",
"ebinnion": "Eric Binnion",
"ethitter": "Erick Hitter",
"folletto": "Erin 'Folletto' Casali",
"evansolomon": "Evan Solomon",
"fab1en": "Fabien Quatravaux",
"fhwebcs": "fhwebcs",
"floriansimeth": "Florian Simeth",
"bueltge": "Frank Bueltge",
"frankpw": "Frank P. Walentynowicz",
"f-j-kaiser": "Franz Josef Kaiser",
"gabrielperezs": "gabrielperezs",
"voldemortensen": "Garth Mortensen",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"geertdd": "Geert De Deckere",
"genkisan": "genkisan",
"georgestephanis": "George Stephanis",
"greglone": "Gr&#233;gory Viguier",
"grahamarmfield": "Graham Armfield",
"webord": "Gustavo Bordoni",
"hakre": "hakre",
"harishchaudhari": "Harish Chaudhari",
"hauvong": "hauvong",
"herbmillerjr": "herbmillerjr",
"hew": "hew",
"hnle": "Hinaloe",
"horike": "horike",
"hlashbrooke": "Hugh Lashbrooke",
"hugobaeta": "Hugo Baeta",
"iandunn": "Ian Dunn",
"ianmjones": "ianmjones",
"ipstenu": "Ipstenu (Mika Epstein)",
"jdgrimes": "J.D. Grimes",
"jacklenox": "Jack Lenox",
"jamescollins": "James Collins",
"idealien": "Jamie O",
"janhenckens": "janhenckens",
"jfarthing84": "Jeff Farthing",
"cheffheid": "Jeffrey de Wit",
"jesin": "Jesin A",
"jipmoors": "Jip Moors",
"jartes": "Joan Artes",
"yo-l1982": "Joel Bernerman",
"joemcgill": "Joe McGill",
"joen": "Joen A.",
"johneckman": "John Eckman",
"johnjamesjacoby": "John James Jacoby",
"jlevandowski": "John Levandowski",
"desrosj": "Jonathan Desrosiers",
"joostdekeijzer": "joost de keijzer",
"joostdevalk": "Joost de Valk",
"jcastaneda": "Jose Castaneda",
"joshlevinson": "Josh Levinson",
"jphase": "jphase",
"juliobox": "Julio Potier",
"kopepasah": "Justin Kopepasah",
"jtsternberg": "Justin Sternberg",
"justincwatt": "Justin Watt",
"kadamwhite": "K. Adam White",
"trepmal": "Kailey (trepmal)",
"ryelle": "Kelly Choyce-Dwan",
"kevdotbadger": "Kevin Ruscoe",
"kpdesign": "Kim Parsell",
"ixkaito": "Kite",
"kovshenin": "Konstantin Kovshenin",
"obenland": "Konstantin Obenland",
"mindrun": "Leo",
"leopeo": "Leonardo Giacone",
"lgladdy": "Liam Gladdy",
"maimairel": "maimairel",
"mako09": "Mako",
"tomdxw": "mallorydxw-old",
"funkatronic": "Manny Fleurmond",
"marcelomazza": "marcelomazza",
"marcochiesi": "Marco Chiesi",
"mkaz": "Marcus Kazmierczak",
"nofearinc": "Mario Peshev",
"clorith": "Marius L. J.",
"markoheijnen": "Marko Heijnen",
"imath": "Mathieu Viet",
"mzak": "Matt",
"mgibbs189": "Matt Gibbs",
"mboynes": "Matthew Boynes",
"mattheweppelsheimer": "Matthew Eppelsheimer",
"mattheu": "Matthew Haines-Young",
"sivel": "Matt Martz",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"maxcutler": "Max Cutler",
"mehulkaklotar": "Mehul Kaklotar",
"melchoyce": "Mel Choyce-Dwan",
"meloniq": "meloniq",
"mdawaffe": "Michael Adams (mdawaffe)",
"tw2113": "Michael Beckwith",
"michalzuber": "michalzuber",
"mdgl": "Mike Glendinning",
"mikehansenme": "Mike Hansen",
"thaicloud": "Mike Jordan",
"mikengarrett": "MikeNGarrett",
"mikeschinkel": "Mike Schinkel",
"dimadin": "Milan Dinić",
"mmn-o": "MMN-o",
"batmoo": "Mohammad Jangda",
"momdad": "MomDad",
"morganestes": "Morgan Estes",
"morpheu5": "Morpheu5",
"nao": "Naoko Takano",
"nathan_dawson": "nathan_dawson",
"neil_pie": "Neil Pie",
"nicnicnicdevos": "nicnicnicdevos",
"nikv": "Nikhil Vimal",
"nbachiyski": "Nikolay Bachiyski",
"nitkr": "Nithin",
"nunomorgadinho": "nunomorgadinho",
"originalexe": "OriginalEXE",
"pareshradadiya-1": "Paresh Radadiya",
"pathawks": "Pat Hawks",
"pbearne": "Paul Bearne",
"paulschreiber": "Paul Schreiber",
"paulwilde": "Paul Wilde",
"pavelevap": "pavelevap",
"sirbrillig": "Payton Swick",
"petemall": "Pete Mall",
"gungeekatx": "Pete Nelson",
"peterwilsoncc": "Peter Wilson",
"corphi": "Philipp Cordes",
"mordauk": "Pippin Williamson",
"podpirate": "podpirate",
"postpostmodern": "postpostmodern",
"nprasath002": "Prasath Nadarajah",
"prasoon2211": "prasoon2211",
"cyman": "Primoz Cigler",
"r-a-y": "r-a-y",
"rachelbaker": "Rachel Baker",
"rahulbhangale": "rahulbhangale",
"ramiy": "Rami Yushuvaev",
"lamosty": "Rastislav Lamos",
"ravindra-pal-singh": "Ravindra Pal Singh",
"rianrietveld": "Rian Rietveld",
"ritteshpatel": "Ritesh Patel",
"miqrogroove": "Robert Chapin",
"rodrigosprimo": "Rodrigo Primo",
"magicroundabout": "Ross Wintle",
"rmarks": "Ryan Marks",
"welcher": "Ryan Welcher",
"sagarjadhav": "Sagar Jadhav",
"solarissmoke": "Samir Shah",
"samo9789": "samo9789",
"samuelsidler": "Samuel Sidler",
"scottgonzalez": "scott.gonzalez",
"sgrant": "Scott Grant",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"seanchayes": "Sean Hayes",
"senff": "Senff - a11n",
"sergejmueller": "Sergej M&#252;ller",
"sevenspark": "sevenspark",
"simonwheatley": "Simon Wheatley",
"siobhan": "Siobhan",
"slobodanmanic": "Slobodan Manic",
"sillybean": "Stephanie Leary",
"netweb": "Stephen Edgar",
"stevegrunwell": "Steve Grunwell",
"stevehickeydesign": "stevehickeydesign",
"stevenkword": "Steven Word",
"taka2": "taka2",
"iamtakashi": "Takashi Irie",
"hissy": "Takuro Hishikawa",
"themiked": "theMikeD",
"thomaswm": "thomaswm",
"ipm-frommen": "Thorsten Frommen",
"tillkruess": "Till Kr&#252;ss",
"sippis": "Timi Wahalahti",
"timothyblynjacobs": "Timothy Jacobs",
"tiqbiz": "tiqbiz",
"tmatsuur": "tmatsuur",
"tmeister": "tmeister",
"tobiasbg": "Tobias B&#228;thge",
"tschutter": "Tobias Schutter",
"travisnorthcutt": "Travis Northcutt",
"trishasalas": "Trisha Salas",
"tywayne": "Ty Carlson",
"ninnypants": "Tyrel Kelsey",
"uamv": "uamv",
"desaiuditd": "Udit Desai",
"sorich87": "Ulrich Sossou",
"veritaserum": "Veritaserum",
"volodymyrc": "VolodymyrC",
"vortfu": "vortfu",
"earnjam": "Will Earnhardt",
"willstedt": "willstedt",
"wordpressorru": "WordPressor"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/color/"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.2"
}
}

557
inc/credits/json/4.3.json Normal file
View file

@ -0,0 +1,557 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Lead Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"obenland": [
"Konstantin Obenland",
"",
"obenland",
"Release Lead"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
"Core Developer"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
"Docs Committer"
],
"lancewillett": [
"Lance Willett",
"",
"lancewillett",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
""
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
""
],
"ryan": [
"Ryan Boren",
"",
"ryan",
""
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"valendesigns": [
"Derek Herman",
"",
"valendesigns",
""
],
"celloexpressions": [
"Nick Halsey",
"",
"celloexpressions",
""
],
"voldemortensen": [
"Garth Mortensen",
"",
"voldemortensen",
""
],
"rianrietveld": [
"Rian Rietveld",
"",
"rianrietveld",
""
],
"designsimply": [
"Sheri Bigelow",
"",
"designsimply",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.3"
],
"type": "list",
"data": {
"mercime": "@mercime",
"aaroncampbell": "Aaron D. Campbell",
"adamkheckler": "Adam Heckler",
"akibjorklund": "Aki Bj&#246;rklund",
"akirk": "Alex Kirk",
"viper007bond": "Alex Mills",
"deconf": "Alin Marcu",
"andfinally": "andfinally",
"andg": "Andrea Gandino",
"afragen": "Andy Fragen",
"ankit-k-gupta": "Ankit K Gupta",
"antpb": "Anthony Burchell",
"anubisthejackle": "anubisthejackle",
"aramzs": "Aram Zucker-Scharff",
"arjunskumar": "Arjun S Kumar",
"avnarun": "avnarun",
"bcole808": "Ben Cole",
"empireoflight": "Ben Dunkle",
"scruffian": "Ben Dwyer",
"binarykitten": "BinaryKitten",
"birgire": "Birgir Erlendsson (birgire)",
"bjornjohansen": "Bj&#248;rn Johansen",
"brad2dabone": "brad2dabone",
"bradt": "Brad Touesnard",
"bramd": "Bram Duvigneau",
"kraftbj": "Brandon Kraft",
"krogsgard": "Brian Krogsgard",
"brianlayman": "Brian Layman",
"icaleb": "Caleb Burks",
"calevans": "CalEvans",
"bolo1988": "CantonBolo",
"chasewiseman": "Chase Wiseman",
"chipbennett": "Chip Bennett",
"chouby": "Chouby",
"chriscct7": "chriscct7",
"c3mdigital": "Chris Olbekson",
"posykrat": "Clement Biron",
"craig-ralston": "Craig Ralston",
"extendwings": "Daisuke Takahashi",
"danielbachhuber": "Daniel Bachhuber",
"mte90": "Daniele Scasciafratte",
"redsweater": "Daniel Jalkut (Red Sweater)",
"daniluk4000": "daniluk4000",
"daveal": "DaveAl",
"dmchale": "Dave McHale",
"davidakennedy": "David A. Kennedy",
"dlh": "David Herrera",
"daxelrod": "daxelrod",
"denis-de-bernardy": "Denis de Bernardy",
"realloc": "Dennis Ploetner",
"dmsnell": "Dennis Snell",
"dh-shredder": "DH-Shredder",
"dipeshkakadiya": "Dipesh Kakadiya",
"dustinbolton": "Dustin Bolton",
"veraxus": "Dutch van Andel",
"kucrut": "Dzikri Aziz",
"eclev91": "eclev91",
"eligijus": "eligijus",
"eliorivero": "Elio Rivero",
"ericlewis": "Eric Andrew Lewis",
"ebinnion": "Eric Binnion",
"ericmann": "Eric Mann",
"fab1en": "Fabien Quatravaux",
"flixos90": "Felix Arntz",
"francoeurdavid": "francoeurdavid",
"frank-klein": "Frank Klein",
"gabrielperezs": "gabrielperezs",
"garyj": "Gary Jones",
"georgestephanis": "George Stephanis",
"glennm": "Glenn Mulleners",
"gtuk": "gtuk",
"hailin": "hailin",
"hauvong": "hauvong",
"henrikakselsen": "Henrik Akselsen",
"hnle": "Hinaloe",
"hrishiv90": "Hrishikesh Vaipurkar",
"hugobaeta": "Hugo Baeta",
"polevaultweb": "Iain Poulson",
"ipstenu": "Ipstenu (Mika Epstein)",
"isaacchapman": "isaacchapman",
"izem": "izem",
"jdgrimes": "J.D. Grimes",
"jacklenox": "Jack Lenox",
"jadpm": "jadpm",
"jamesgol": "James Golovich",
"macmanx": "James Huff",
"jancbeck": "jancbeck",
"jfarthing84": "Jeff Farthing",
"jpry": "Jeremy Pry",
"jmichaelward": "Jeremy Ward",
"jesin": "Jesin A",
"jipmoors": "Jip Moors",
"eltobiano": "jjberry",
"jobst": "Jobst Schmalenbach",
"joedolson": "Joe Dolson",
"joehoyle": "Joe Hoyle",
"joemcgill": "Joe McGill",
"jkudish": "Joey Kudish",
"johnjamesjacoby": "John James Jacoby",
"picard102": "John Leschinski",
"joostdevalk": "Joost de Valk",
"maxxsnake": "Josh Davis",
"jpyper": "Jpyper",
"jrf": "Juliette Reinders Folmer",
"juliobox": "Julio Potier",
"jtsternberg": "Justin Sternberg",
"ungestaltbar": "Kai Jacobsen",
"karinchristen": "Karin Christen",
"ryelle": "Kelly Choyce-Dwan",
"kevkoeh": "Kevin Koehler",
"kitchin": "kitchin",
"ixkaito": "Kite",
"kovshenin": "Konstantin Kovshenin",
"leewillis77": "Lee Willis",
"leogopal": "Leo Gopal",
"loushou": "loushou",
"karpstrucking": "Lucas Karpiuk",
"lumaraf": "Lumaraf",
"tyxla": "Marin Atanasov",
"nofearinc": "Mario Peshev",
"clorith": "Marius L. J.",
"markoheijnen": "Marko Heijnen",
"marsjaninzmarsa": "marsjaninzmarsa",
"martinsachse": "martinsachse",
"imath": "Mathieu Viet",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"melchoyce": "Mel Choyce-Dwan",
"nikonratm": "Michael",
"mdawaffe": "Michael Adams (mdawaffe)",
"michael-arestad": "Michael Arestad",
"mnelson4": "Michael Nelson",
"michaelryanmcneill": "michaelryanmcneill",
"mcguive7": "Mickey Kay",
"mihai": "mihai",
"mikehansenme": "Mike Hansen",
"dimadin": "Milan Dinić",
"morganestes": "Morgan Estes",
"mrutz": "mrutz",
"nicholas_io": "N&#237;cholas Andr&#233;",
"nabil_kadimi": "Nabil",
"nao": "Naoko Takano",
"nazmulhossainnihal": "Nazmul Hossain Nihal",
"nickmomrik": "Nick Momrik",
"nbachiyski": "Nikolay Bachiyski",
"rabmalin": "Nilambar Sharma",
"onnimonni": "Onni Hakala",
"ozh": "Ozh",
"pareshradadiya-1": "Paresh Radadiya",
"swissspidy": "Pascal Birchler",
"figureone": "Paul Ryan",
"paulwilde": "Paul Wilde",
"djpaul": "Paul Wong-Gibbs",
"pavelevap": "pavelevap",
"gungeekatx": "Pete Nelson",
"peterrknight": "PeterRKnight",
"peterwilsoncc": "Peter Wilson",
"philiparthurmoore": "Philip Arthur Moore",
"mordauk": "Pippin Williamson",
"pragunbhutani": "pragunbhutani",
"nikeo": "presscustomizr",
"rachelbaker": "Rachel Baker",
"ramiy": "Rami Yushuvaev",
"rarylson": "rarylson",
"lamosty": "Rastislav Lamos",
"rauchg": "Rauchg",
"ravinderk": "Ravinder Kumar",
"rclations": "RC Lations",
"greuben": "Reuben",
"ritteshpatel": "Ritesh Patel",
"miqrogroove": "Robert Chapin",
"rdall": "Robert Dall",
"rodrigosprimo": "Rodrigo Primo",
"rommelxcastro": "Rommel Castro",
"magicroundabout": "Ross Wintle",
"rhurling": "Rouven Hurling",
"rmarks": "Ryan Marks",
"rmccue": "Ryan McCue",
"ohryan": "Ryan Neudorf",
"welcher": "Ryan Welcher",
"sagarjadhav": "Sagar Jadhav",
"salcode": "Sal Ferrarello",
"solarissmoke": "Samir Shah",
"santagada": "santagada",
"sc0ttkclark": "Scott Kingsley Clark",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"seanchayes": "Sean Hayes",
"sebastiantiede": "Sebastian Tiede",
"shooper": "Shawn Hooper",
"simonwheatley": "Simon Wheatley",
"siobhan": "Siobhan",
"metodiew": "Stanko Metodiev",
"stephdau": "Stephane Daury (stephdau)",
"netweb": "Stephen Edgar",
"stevegrunwell": "Steve Grunwell",
"stevenkword": "Steven Word",
"stuartshields": "stuartshields",
"sudar": "Sudar Muthu",
"sunnyratilal": "Sunny Ratilal",
"taka2": "taka2",
"tellyworth": "Tellyworth",
"tharsheblows": "tharsheblows",
"tlexcellent": "Thomas L&#8217;Excellent",
"thorbrink": "Thor Brink",
"creativeinfusion": "Tim Smith",
"tmatsuur": "tmatsuur",
"tobiasbg": "Tobias B&#228;thge",
"tomasm": "Tomas Mackevicius",
"tomharrigan": "TomHarrigan",
"toro_unit": "Toro_Unit (Hiroshi Urabe)",
"toru": "Toru Miki",
"liljimmi": "Tracy Levesque",
"tryon": "Tryon Eggleston",
"tywayne": "Ty Carlson",
"desaiuditd": "Udit Desai",
"umeshnevase": "Umesh Nevase",
"vivekbhusal": "vivekbhusal",
"vortfu": "vortfu",
"earnjam": "Will Earnhardt",
"willgladstone": "willgladstone",
"willnorris": "Will Norris",
"willstedt": "willstedt",
"yoavf": "Yoav Farhi",
"ysalame": "Yuri Salame",
"oxymoron": "Zach Wills",
"katzwebdesign": "Zack Katz",
"tollmanz": "Zack Tollman"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/color/"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.3"
}
}

831
inc/credits/json/4.4.json Normal file
View file

@ -0,0 +1,831 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Lead Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Release Lead"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
"Core Developer"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
"Core Developer"
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
"Core Developer"
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
"Core Developer"
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
""
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
""
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
""
],
"rmccue": [
"Ryan McCue",
"",
"rmccue",
""
],
"karmatosed": [
"Tammie Lister",
"",
"karmatosed",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"chriscct7": [
"Chris Christoff",
"",
"chriscct7",
""
],
"swissspidy": [
"Pascal Birchler",
"",
"swissspidy",
""
],
"danielbachhuber": [
"Daniel Bachhuber",
"",
"danielbachhuber",
""
],
"rachelbaker": [
"Rachel Baker",
"",
"rachelbaker",
""
],
"joehoyle": [
"Joe Hoyle",
"",
"joehoyle",
""
],
"ramiy": [
"Rami Yushuvaev",
"",
"ramiy",
""
],
"kirasong": [
"Kira Song",
"",
"kirasong",
""
],
"tevko": [
"Tim Evko",
"",
"tevko",
""
],
"jaspermdegroot": [
"Jasper de Groot",
"",
"jaspermdegroot",
""
],
"joemcgill": [
"Joe McGill",
"",
"joemcgill",
""
],
"wilto": [
"Mat Marquis",
"",
"wilto",
""
],
"iamtakashi": [
"Takashi Irie",
"",
"iamtakashi",
""
],
"peterwilsoncc": [
"Peter Wilson",
"",
"peterwilsoncc",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.4"
],
"type": "list",
"data": {
"michielhab": "....",
"mercime": "@mercime",
"a5hleyrich": "A5hleyRich",
"aaroncampbell": "Aaron D. Campbell",
"aaronrutley": "Aaron Rutley",
"kawauso": "Adam Harley (Kawauso)",
"adamholisky": "adamholisky",
"adamsilverstein": "Adam Silverstein",
"aduth": "aduth",
"mrahmadawais": "Ahmad Awais",
"apkoponen": "ak",
"akibjorklund": "Aki Bj&#246;rklund",
"albertoct": "AlbertoCT",
"stebbiv": "Alda Vigdis",
"gounder": "Alexander Gounder",
"akirk": "Alex Kirk",
"viper007bond": "Alex Mills",
"alireza1375": "Alireza",
"shedonist": "Amanda Giles",
"amereservant": "amereservant",
"sabreuse": "Amy Hendrix (sabreuse)",
"_smartik_": "Andrei Surdu",
"norcross": "Andrew Norcross",
"afragen": "Andy Fragen",
"amandato": "Angelo Mandato",
"rilwis": "Anh Tran",
"ankitgadertcampcom": "Ankit Gade",
"ankit-k-gupta": "Ankit K Gupta",
"antpb": "Anthony Burchell",
"apokalyptik": "apokalyptik",
"atomicjack": "atomicjack",
"next-season": "Atsushi Ando",
"austinginder": "Austin Ginder",
"filosofo": "Austin Matzko",
"barryceelen": "Barry Ceelen",
"barrykooij": "Barry Kooij",
"bcworkz": "bcworkz",
"bdn3504": "BdN3504",
"pixolin": "Bego Mario Garde",
"benjaminpick": "Benjamin Pick",
"benjmay": "Ben May",
"berengerzyla": "berengerzyla",
"neoxx": "Bernhard Riedl",
"bigdawggi": "bigdawggi",
"bilalcoder": "bilalcoder",
"binarykitten": "BinaryKitten",
"birgire": "Birgir Erlendsson (birgire)",
"bjornjohansen": "Bj&#248;rn Johansen",
"bobbingwide": "bobbingwide",
"gitlost": "bonger",
"bradparbs": "Brad Parbs",
"bradt": "Brad Touesnard",
"bradyvercher": "Brady Vercher",
"brainstormforce": "Brainstorm Force",
"kraftbj": "Brandon Kraft",
"bravokeyl": "bravokeyl",
"brentvr": "brentvr",
"brettz95": "brettz95",
"mckilem": "Bruno Kos",
"crazycoolcam": "Cam",
"camikaos": "Cami Kaos",
"carolinegeven": "carolinegeven",
"misterbisson": "Casey Bisson",
"ch1902": "ch1902",
"nhuja": "Chandra M",
"chandrapatel": "Chandra Patel",
"chasewiseman": "Chase Wiseman",
"chiara_09": "Chiara Dossena",
"chipbennett": "Chip Bennett",
"chiragswadia": "Chirag Swadia",
"chriscoyier": "Chris Coyier",
"chrisdc1": "Chrisdc1",
"chrismkindred": "Chris Kindred",
"cklosows": "Chris Klosowski",
"lovememore": "christianoliff",
"cfinke": "Christopher Finke",
"christophherr": "Christoph Herr",
"chrisvendiadvertisingcom": "cjhaas",
"codeelite": "codeelite",
"coenjacobs": "Coen Jacobs",
"compute": "Compute",
"couturefreak": "Courtney Ivey",
"craig-ralston": "Craig Ralston",
"cgrymala": "Curtiss Grymala",
"cdog": "Cătălin Dogaru",
"extendwings": "Daisuke Takahashi",
"mte90": "Daniele Scasciafratte",
"redsweater": "Daniel Jalkut (Red Sweater)",
"daniel-koskinen": "Daniel Koskinen",
"daniellandau": "daniellandau",
"daniloercoli": "daniloercoli",
"dannydehaan": "Danny de Haan",
"dvankooten": "Danny van Kooten",
"nerrad": "Darren Ethier (nerrad)",
"dllh": "Daryl L. L. Houston (dllh)",
"enshrined": "Daryll Doyle",
"dattaparad": "Datta Parad",
"lessbloat": "Dave Martin (lessbloat)",
"dmchale": "Dave McHale",
"davidakennedy": "David A. Kennedy",
"davidanderson": "David Anderson / Team Updraft",
"davidbinda": "David Biňovec",
"dlh": "David Herrera",
"dshanske": "David Shanske",
"dboulet": "dboulet",
"debaat": "DeBAAT",
"denis-de-bernardy": "Denis de Bernardy",
"realloc": "Dennis Ploetner",
"valendesigns": "Derek Herman",
"downstairsdev": "Devin Price",
"dezzy": "Dezzy",
"dipalidhole27gmailcom": "Dipali Dhole",
"dipeshkakadiya": "Dipesh Kakadiya",
"dmenard": "dmenard",
"dbru": "Dominik Bruderer",
"dossy": "Dossy Shiobara",
"drebbitsweb": "Dreb Bitanghol",
"dustinbolton": "Dustin Bolton",
"veraxus": "Dutch van Andel",
"kucrut": "Dzikri Aziz",
"edirect24": "edirect24",
"oso96_2000": "Eduardo Reveles",
"eduardozulian": "Eduardo Zulian",
"cais": "Edward Caissie",
"egill": "Egill R. Erlendsson",
"egower": "egower",
"iehsanir": "Ehsaan",
"ehtis": "Ehtisham Siddiqui",
"ellieroepken": "Ellie Strejlau",
"elliott-stocks": "Elliott Stocks",
"elusiveunit": "elusiveunit",
"ericlewis": "Eric Andrew Lewis",
"ebinnion": "Eric Binnion",
"ericdaams": "Eric Daams",
"ericjuden": "ericjuden",
"ericmann": "Eric Mann",
"eherman24": "Evan Herman",
"f4rkie": "F4rkie",
"flixos90": "Felix Arntz",
"fsylum": "Firdaus Zahari",
"firebird75": "firebird75",
"fonglh": "fonglh",
"francoisb": "francoisb",
"fjarrett": "Frankie Jarrett",
"frank-klein": "Frank Klein",
"frozzare": "Fredrik Forsmo",
"gaelan": "Gaelan Lloyd",
"gagan0123": "Gagan Deep Singh",
"voldemortensen": "Garth Mortensen",
"garyc40": "Gary Cao",
"garyj": "Gary Jones",
"garza": "garza",
"gautamgupta": "Gautam Gupta",
"gblsm": "gblsm",
"geminorum": "geminorum",
"kloon": "Gerhard Potgieter",
"gezamiklo": "geza.miklo",
"gizburdt": "Gijs Jorissen",
"garusky": "Giuseppe Mamone",
"jubstuff": "Giustino Borzacchiello",
"gnaka08": "gnaka08",
"greglone": "Gr&#233;gory Viguier",
"gradyetc": "gradyetc",
"tivnet": "Gregory Karpinsky (@tivnet)",
"gregrickaby": "Greg Rickaby",
"bordoni": "Gustavo Bordoni",
"webord": "Gustavo Bordoni",
"gwinhlopez": "gwinh.lopez",
"hakre": "hakre",
"hauvong": "hauvong",
"hnle": "Hinaloe",
"hrishiv90": "Hrishikesh Vaipurkar",
"hlashbrooke": "Hugh Lashbrooke",
"hugobaeta": "Hugo Baeta",
"polevaultweb": "Iain Poulson",
"iandunn": "Ian Dunn",
"iandstewart": "Ian Stewart",
"icetee": "icetee",
"igmoweb": "Ignacio Cruz Moreno",
"headonfire": "Ihor Vorotnov",
"ippetkov": "ippetkov",
"ivankristianto": "Ivan Kristianto",
"jdgrimes": "J.D. Grimes",
"athsear": "J.Sugiyama",
"jadpm": "jadpm",
"jakubtyrcha": "jakub.tyrcha",
"macmanx": "James Huff",
"jnylen0": "James Nylen",
"janhenckens": "janhenckens",
"japh": "Japh",
"jazbek": "jazbek",
"johnpbloch": "J B",
"jfarthing84": "Jeff Farthing",
"jeffmatson": "Jeff Matson",
"cheffheid": "Jeffrey de Wit",
"jeffpyebrookcom": "Jeffrey Schutzman",
"jeffstieler": "Jeff Stieler",
"jeichorn": "jeichorn",
"jmdodd": "Jennifer M. Dodd",
"jpry": "Jeremy Pry",
"slimndap": "Jeroen Schmit",
"jesin": "Jesin A",
"engelen": "Jesper van Engelen",
"jim912": "jim912",
"jliman": "jliman",
"jmayhak": "jmayhak",
"jobst": "Jobst Schmalenbach",
"joedolson": "Joe Dolson",
"joehills": "joehills",
"jcroucher": "John Croucher",
"johnjamesjacoby": "John James Jacoby",
"mindctrl": "John Parris",
"jonathanbardo": "Jonathan Bardo",
"desrosj": "Jonathan Desrosiers",
"duck_": "Jon Cave",
"spacedmonkey": "Jonny Harris",
"joostdevalk": "Joost de Valk",
"koke": "Jorge Bernal",
"betzster": "Josh Betz",
"jjeaton": "Josh Eaton",
"shelob9": "Josh Pollock",
"jpr": "jpr",
"juhise": "Juhi Saxena",
"jrf": "Juliette Reinders Folmer",
"juliobox": "Julio Potier",
"justdaiv": "justdaiv",
"justinsainton": "Justin Sainton",
"jshreve": "Justin Shreve",
"jtsternberg": "Justin Sternberg",
"greenshady": "Justin Tadlock",
"kadamwhite": "K. Adam White",
"trepmal": "Kailey (trepmal)",
"kalenjohnson": "KalenJohnson",
"karinedo": "Karine Do",
"mt8biz": "Kazuto Takeshita",
"ryelle": "Kelly Choyce-Dwan",
"kevinatelement": "kevinatelement",
"kevinb": "Kevin Behrens",
"kevinlangleyjr": "Kevin Langley Jr.",
"kitchin": "kitchin",
"ixkaito": "Kite",
"kovshenin": "Konstantin Kovshenin",
"krissiev": "KrissieV",
"drozdz": "Krzysiek Dr&#243;żdż",
"kurtpayne": "Kurt Payne",
"laceous": "laceous",
"charlestonsw": "Lance Cleveland",
"lancewillett": "Lance Willett",
"offereins": "Laurens Offereins",
"lcherpit": "lcherpit",
"ldinclaux": "ldinclaux",
"leemon": "leemon",
"leewillis77": "Lee Willis",
"linuxologos": "linuxologos",
"karpstrucking": "Lucas Karpiuk",
"spmlucas": "Lucas Karpiuk",
"lucatume": "lucatume",
"luciole135": "luciole135",
"lucymtc": "Lucy Tomas",
"lukecarbis": "Luke Carbis",
"madalinungureanu": "madalin.ungureanu",
"mako09": "Mako",
"manolis09": "manolis09",
"iworks": "Marcin Pietrzak",
"tyxla": "Marin Atanasov",
"nofearinc": "Mario Peshev",
"clorith": "Marius L. J.",
"markoheijnen": "Marko Heijnen",
"mechter": "Markus Echterhoff",
"matheusfd": "Matheus Martins",
"imath": "Mathieu Viet",
"mattbagwell": "Matt Bagwell",
"webdevmattcrom": "Matt Cromwell",
"mgibbs189": "Matt Gibbs",
"mboynes": "Matthew Boynes",
"mattheu": "Matthew Haines-Young",
"pfefferle": "Matthias Pfefferle",
"sivel": "Matt Martz",
"maweder": "maweder",
"mazurstas": "mazurstas",
"mbrandys": "mbrandys",
"mehulkaklotar": "Mehul Kaklotar",
"meitar": "Meitar",
"melchoyce": "Mel Choyce-Dwan",
"meloniq": "meloniq",
"micahmills": "micahmills",
"micahwave": "micahwave",
"mdawaffe": "Michael Adams (mdawaffe)",
"michael-arestad": "Michael Arestad",
"cainm": "Michael Cain",
"mdmcginn": "Michael McGinnis",
"mcguive7": "Mickey Kay",
"mdgl": "Mike Glendinning",
"mikehansenme": "Mike Hansen",
"mikejolley": "Mike Jolley",
"thaicloud": "Mike Jordan",
"mikeschinkel": "Mike Schinkel",
"dimadin": "Milan Dinić",
"mismith227": "mismith227",
"misterunknown": "misterunknown",
"mitchoyoshitaka": "mitcho (Michael Yoshitaka Erlewine)",
"monika": "Monika",
"morganestes": "Morgan Estes",
"mor10": "Morten Rand-Hendriksen",
"mrmist": "mrmist",
"usermrpapa": "Mr Papa",
"mulvane": "mulvane",
"nicholas_io": "N&#237;cholas Andr&#233;",
"neoscrib": "neoscrib",
"niallkennedy": "Niall Kennedy",
"nickciske": "Nick Ciske",
"nickduncan": "NickDuncan",
"celloexpressions": "Nick Halsey",
"rahe": "Nicolas Juen",
"nikschavan": "Nikhil Chavan",
"niklasbr": "Niklas",
"nikolovtmw": "Nikola Nikolov",
"nbachiyski": "Nikolay Bachiyski",
"rabmalin": "Nilambar Sharma",
"originalexe": "OriginalEXE",
"pareshradadiya-1": "Paresh Radadiya",
"obrienlabs": "Pat O'Brien",
"pbearne": "Paul Bearne",
"pauldewouters": "Paul de Wouters",
"figureone": "Paul Ryan",
"paulwilde": "Paul Wilde",
"pavelevap": "pavelevap",
"sirbrillig": "Payton Swick",
"walbo": "Petter Walb&#248; Johnsg&#229;rd",
"petya": "Petya Raykovska",
"philiparthurmoore": "Philip Arthur Moore",
"philiplakin": "PhilipLakin",
"corphi": "Philipp Cordes",
"delawski": "Piotr Delawski",
"psoluch": "Piotr Soluch",
"mordauk": "Pippin Williamson",
"prasad-nevase": "Prasad Nevase",
"nprasath002": "Prasath Nadarajah",
"pratikchaskar": "Pratik Chaskar",
"nikeo": "presscustomizr",
"grvrulz": "Prpl",
"rajnikmit": "rajnikmit",
"racase": "Rakesh Lawaju (Racase)",
"ramay": "ramay",
"raulillana": "Raul Illana",
"renoirb": "renoirb",
"rhubbardreverb": "rhubbardreverb",
"rhyswynne": "Rhys Wynne",
"rianrietveld": "Rian Rietveld",
"iamfriendly": "Rich Tape",
"miqrogroove": "Robert Chapin",
"rodrigosprimo": "Rodrigo Primo",
"rogerhub": "Roger Chen",
"rommelxcastro": "Rommel Castro",
"romsocial": "RomSocial",
"ronalfy": "Ronald Huereca",
"wpmuguru": "Ron Rennick",
"kingkool68": "Russell Heimlich",
"ruudjoyo": "Ruud Laan",
"ryankienstra": "Ryan Kienstra",
"markel": "Ryan Markel",
"welcher": "Ryan Welcher",
"side777": "s1de7",
"zeo": "Safirul Alredha",
"salcode": "Sal Ferrarello",
"salvoaranzulla": "salvoaranzulla",
"sam2kb": "sam2kb",
"sammybeats": "Sam Brodie",
"solarissmoke": "Samir Shah",
"samuelsidler": "Samuel Sidler",
"otto42": "Samuel Wood (Otto)",
"sanketparmar": "Sanket Parmar",
"rosso99": "Sara Rosso",
"sarciszewski": "Scott Arciszewski",
"scottbrownconsulting": "scottbrownconsulting",
"sgrant": "Scott Grant",
"sc0ttkclark": "Scott Kingsley Clark",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"sdavis2702": "Sean Davis",
"seanchayes": "Sean Hayes",
"sebastianpisula": "Sebastian Pisula",
"serpent7776": "serpent7776",
"several27": "several27",
"shimakyohsuke": "shimakyohsuke",
"shinichin": "ShinichiN",
"pross": "Simon Prosser",
"simonwheatley": "Simon Wheatley",
"siobhan": "Siobhan",
"sirzooro": "sirzooro",
"sjmur": "sjmur",
"smerriman": "smerriman",
"sboisvert": "St&#233;phane Boisvert",
"khromov": "Stanislav Khromov",
"metodiew": "Stanko Metodiev",
"miglosh": "Stefan Froehlich",
"sillybean": "Stephanie Leary",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"stevegrunwell": "Steve Grunwell",
"stevehenty": "Steve Henty",
"stevehoneynz": "SteveHoneyNZ",
"stevenkword": "Steven Word",
"sudar": "Sudar Muthu",
"5um17": "Sumit Singh",
"summerblue": "summerblue",
"sunnyratilal": "Sunny Ratilal",
"miyauchi": "Takayuki Miyauchi",
"tanner-m": "Tanner Moushey",
"tbcorr": "tbcorr",
"tellyworth": "Tellyworth",
"tychay": "Terry Chay",
"tharsheblows": "tharsheblows",
"themiked": "theMikeD",
"theode": "theode",
"kraftner": "Thomas Kr&#228;ftner",
"thomaswm": "thomaswm",
"tfrommen": "Thorsten Frommen",
"tott": "Thorsten Ott",
"tigertech": "tigertech",
"tillkruess": "Till Kr&#252;ss",
"tmatsuur": "tmatsuur",
"tmeister": "tmeister",
"tobiasbg": "Tobias B&#228;thge",
"tomharrigan": "TomHarrigan",
"tommarshall": "tommarshall",
"tomsommer": "tomsommer",
"willmot": "Tom Willmot",
"skithund": "Toni Viemer&#246;",
"toro_unit": "Toro_Unit (Hiroshi Urabe)",
"liljimmi": "Tracy Levesque",
"wpsmith": "Travis Smith",
"trenzterra": "trenzterra",
"tryon": "Tryon Eggleston",
"tszming": "tszming",
"tywayne": "Ty Carlson",
"chacha102": "Tyler Carter",
"junsuijin": "Tynan Beatty",
"grapplerulrich": "Ulrich",
"sorich87": "Ulrich Sossou",
"umeshsingla": "Umesh Kumar",
"umeshnevase": "Umesh Nevase",
"utkarshpatel": "Utkarsh",
"vilkatis": "vilkatis",
"walterbarcelos": "walterbarcelos",
"walterebert": "Walter Ebert",
"webaware": "webaware",
"wen-solutions": "WEN Solutions",
"wenthemes": "WEN Themes",
"wmertens": "wmertens",
"wojtekszkutnik": "Wojtek Szkutnik",
"wp-architect": "wp-architect",
"wpdev101": "wpdev101",
"alphawolf": "wpseek",
"wturrell": "wturrell",
"yamchhetri": "Yam B Chhetri",
"yoavf": "Yoav Farhi",
"oxymoron": "Zach Wills",
"zrothauser": "Zack Rothauser",
"tollmanz": "Zack Tollman"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/color/"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://plugins.jquery.com/project/hoverIntent"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"http://code.google.com/a/apache-extras.org/p/phpmailer/"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.4"
}
}

673
inc/credits/json/4.5.json Normal file
View file

@ -0,0 +1,673 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Lead Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"kirasong": [
"Kira Song",
"",
"kirasong",
"Release Lead"
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
"Release Deputy"
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
"Release Design Lead"
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
"Core Developer"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
"Core Developer"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Core Developer"
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
""
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
""
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
""
],
"rmccue": [
"Ryan McCue",
"",
"rmccue",
""
],
"karmatosed": [
"Tammie Lister",
"",
"karmatosed",
""
],
"swissspidy": [
"Pascal Birchler",
"",
"swissspidy",
""
],
"rachelbaker": [
"Rachel Baker",
"",
"rachelbaker",
""
],
"joehoyle": [
"Joe Hoyle",
"",
"joehoyle",
""
],
"ericlewis": [
"Eric Andrew Lewis",
"",
"ericlewis",
""
],
"joemcgill": [
"Joe McGill",
"",
"joemcgill",
""
],
"Ipstenu": [
"Mika Epstein",
"",
"Ipstenu",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"chriscct7": [
"Chris Christoff",
"",
"chriscct7",
""
],
"danielbachhuber": [
"Daniel Bachhuber",
"",
"danielbachhuber",
""
],
"celloexpressions": [
"Nick Halsey",
"",
"celloexpressions",
""
],
"dnewton": [
"David Newton",
"",
"dnewton",
""
],
"ebinnion": [
"Eric Binnion",
"",
"ebinnion",
""
],
"grantpalin": [
"Grant Palin",
"",
"grantpalin",
""
],
"rockwell15": [
"Andrew Rockwell",
"",
"rockwell15",
""
],
"gitlost": [
"Martin Burke",
"",
"gitlost",
""
],
"kwight": [
"Kirk Wight",
"",
"kwight",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.5"
],
"type": "list",
"data": {
"mercime": "@mercime",
"aaroncampbell": "Aaron D. Campbell",
"uglyrobot": "Aaron Edwards",
"ahockley": "Aaron Hockley",
"abiralneupane": "Abiral Neupane",
"mrahmadawais": "Ahmad Awais",
"aidanlane": "aidanlane",
"xavortm": "Alex Dimitrov",
"ambrosey": "Alice Brosey",
"arush": "Amanda Rush",
"andg": "Andrea Gandino",
"andizer": "Andy Meerwaldt",
"rilwis": "Anh Tran",
"ankit-k-gupta": "Ankit K Gupta",
"atimmer": "Anton Timmermans",
"apaliku": "apaliku",
"aramzs": "Aram Zucker-Scharff",
"ashmatadeen": "ash.matadeen",
"bappidgreat": "Ashok",
"bandonrandon": "B.",
"barryceelen": "Barry Ceelen",
"empireoflight": "Ben Dunkle",
"berengerzyla": "berengerzyla",
"neoxx": "Bernhard Riedl",
"thisisit": "Bhushan S. Jawle",
"birgire": "Birgir Erlendsson (birgire)",
"williamsba1": "Brad Williams",
"bradyvercher": "Brady Vercher",
"thebrandonallen": "Brandon Allen",
"bhubbard": "Brandon Hubbard",
"kraftbj": "Brandon Kraft",
"krogsgard": "Brian Krogsgard",
"borgesbruno": "Bruno Borges",
"chmac": "Callum Macdonald",
"camikaos": "Cami Kaos",
"chandrapatel": "Chandra Patel",
"mackensen": "Charles Fulton",
"chetanchauhan": "Chetan Chauhan",
"chouby": "Chouby",
"chrico": "ChriCo",
"chris_dev": "Chris Mok",
"christophherr": "Christoph Herr",
"ckoerner": "ckoerner",
"claudiosanches": "Claudio Sanches",
"compute": "Compute",
"coreymcollins": "coreymcollins",
"extendwings": "Daisuke Takahashi",
"danhgilmore": "danhgilmore",
"scarinessreported": "Daniel Bailey",
"mte90": "Daniele Scasciafratte",
"redsweater": "Daniel Jalkut (Red Sweater)",
"danielpataki": "danielpataki",
"diddledan": "Dani Llewellyn",
"dvankooten": "Danny van Kooten",
"thewanderingbrit": "Dave Clements",
"davidakennedy": "David A. Kennedy",
"dbrumbaugh10up": "David Brumbaugh",
"dlh": "David Herrera",
"dshanske": "David Shanske",
"denis-de-bernardy": "Denis de Bernardy",
"realloc": "Dennis Ploetner",
"dmsnell": "Dennis Snell",
"valendesigns": "Derek Herman",
"dossy": "Dossy Shiobara",
"dotancohen": "Dotan Cohen",
"drebbitsweb": "Dreb Bitanghol",
"duaneblake": "duaneblake",
"kucrut": "Dzikri Aziz",
"eliorivero": "Elio Rivero",
"codex-m": "Emerson Maningo",
"enej": "Enej Bajgorić",
"ericdaams": "Eric Daams",
"ethitter": "Erick Hitter",
"folletto": "Erin 'Folletto' Casali",
"eherman24": "Evan Herman",
"fab1en": "Fabien Quatravaux",
"faishal": "faishal",
"flixos90": "Felix Arntz",
"finnj": "finnj",
"firebird75": "firebird75",
"frozzare": "Fredrik Forsmo",
"fusillicode": "fusillicode",
"voldemortensen": "Garth Mortensen",
"garyj": "Gary Jones",
"gblsm": "gblsm",
"georgestephanis": "George Stephanis",
"garusky": "Giuseppe Mamone",
"jubstuff": "Giustino Borzacchiello",
"groovecoder": "groovecoder",
"wido": "Guido Scialfa",
"bordoni": "Gustavo Bordoni",
"hakre": "hakre",
"henrywright": "Henry Wright",
"hnle": "Hinaloe",
"hlashbrooke": "Hugh Lashbrooke",
"hugobaeta": "Hugo Baeta",
"polevaultweb": "Iain Poulson",
"igmoweb": "Ignacio Cruz Moreno",
"zinigor": "Igor Zinovyev (a11n)",
"iamntz": "Ionut Staicu",
"ivankristianto": "Ivan Kristianto",
"jdgrimes": "J.D. Grimes",
"jadpm": "jadpm",
"perezlabs": "Jairo P&#233;rez",
"jamesdigioia": "James DiGioia",
"jason_the_adams": "Jason Adams",
"jaspermdegroot": "Jasper de Groot",
"cheffheid": "Jeffrey de Wit",
"jeffpyebrookcom": "Jeffrey Schutzman",
"jmdodd": "Jennifer M. Dodd",
"jeherve": "Jeremy Herve",
"jpry": "Jeremy Pry",
"jesin": "Jesin A",
"ardathksheyna": "Jess",
"boluda": "Joan Boluda",
"joelerr": "joelerr",
"johnjamesjacoby": "John James Jacoby",
"johnnypea": "JohnnyPea",
"jbrinley": "Jonathan Brinley",
"jrchamp": "Jonathan Champ",
"spacedmonkey": "Jonny Harris",
"keraweb": "Jory Hogeveen",
"joefusco": "Joseph Fusco",
"joshlevinson": "Josh Levinson",
"shelob9": "Josh Pollock",
"juanfra": "Juan Aldasoro",
"juhise": "Juhi Saxena",
"jrf": "Juliette Reinders Folmer",
"juliobox": "Julio Potier",
"katieburch": "katieburch",
"mt8biz": "Kazuto Takeshita",
"ryelle": "Kelly Choyce-Dwan",
"khag7": "Kevin Hagerty",
"kiranpotphode": "Kiran Potphode",
"ixkaito": "Kite",
"kjbenk": "kjbenk",
"kovshenin": "Konstantin Kovshenin",
"kouratoras": "Konstantinos Kouratoras",
"krissiev": "KrissieV",
"charlestonsw": "Lance Cleveland",
"lancewillett": "Lance Willett",
"latz": "latz",
"leemon": "leemon",
"layotte": "Lew Ayotte",
"liamdempsey": "liamdempsey",
"luan-ramos": "Luan Ramos",
"luciole135": "luciole135",
"lpawlik": "Lukas Pawlik",
"madvic": "madvic",
"marcochiesi": "Marco Chiesi",
"tyxla": "Marin Atanasov",
"nofearinc": "Mario Peshev",
"mark8barnes": "Mark Barnes",
"markoheijnen": "Marko Heijnen",
"mapk": "Mark Uraine",
"imath": "Mathieu Viet",
"mattfelten": "Matt Felten",
"mattgeri": "MattGeri",
"mattwiebe": "Matt Wiebe",
"maweder": "maweder",
"mayukojpn": "Mayo Moriyama",
"mcapybara": "mcapybara",
"mehulkaklotar": "Mehul Kaklotar",
"meitar": "Meitar",
"mensmaximus": "mensmaximus",
"michael-arestad": "Michael Arestad",
"michalzuber": "michalzuber",
"micropat": "micropat",
"mdgl": "Mike Glendinning",
"mikehansenme": "Mike Hansen",
"mikejolley": "Mike Jolley",
"dimadin": "Milan Dinić",
"morganestes": "Morgan Estes",
"usermrpapa": "Mr Papa",
"mwidmann": "mwidmann",
"nexurium": "nexurium",
"niallkennedy": "Niall Kennedy",
"nicdford": "Nic Ford",
"rabmalin": "Nilambar Sharma",
"ninos-ego": "Ninos",
"oaron": "oaron",
"overclokk": "overclokk",
"obrienlabs": "Pat O'Brien",
"pbearne": "Paul Bearne",
"pauldewouters": "Paul de Wouters",
"sirbrillig": "Payton Swick",
"gungeekatx": "Pete Nelson",
"cadeyrn": "petermolnar",
"peterwilsoncc": "Peter Wilson",
"walbo": "Petter Walb&#248; Johnsg&#229;rd",
"wizzard_": "Pieter Daalder",
"mordauk": "Pippin Williamson",
"prettyboymp": "prettyboymp",
"profforg": "Profforg",
"programmin": "programmin",
"ptahdunbar": "Ptah.ai",
"rahalaboulfeth": "Rahal Aboulfeth",
"ramiy": "Rami Yushuvaev",
"lamosty": "Rastislav Lamos",
"fantasyworld": "Richer Yang",
"rickalee": "Ricky Lee Whittemore",
"ritteshpatel": "Ritesh Patel",
"rob": "rob",
"d4z_c0nf": "Rocco Aliberti",
"rogerhub": "Roger Chen",
"romsocial": "RomSocial",
"ruudjoyo": "Ruud Laan",
"ryan": "Ryan Boren",
"ryankienstra": "Ryan Kienstra",
"welcher": "Ryan Welcher",
"sagarjadhav": "Sagar Jadhav",
"salcode": "Sal Ferrarello",
"salvoaranzulla": "salvoaranzulla",
"samhotchkiss": "Sam Hotchkiss",
"rosso99": "Sara Rosso",
"sarciszewski": "Scott Arciszewski",
"scottbrownconsulting": "scottbrownconsulting",
"sc0ttkclark": "Scott Kingsley Clark",
"coffee2code": "Scott Reilly",
"scribu": "scribu",
"sebastianpisula": "Sebastian Pisula",
"sergejmueller": "Sergej M&#252;ller",
"shamess": "Shane",
"shinichin": "ShinichiN",
"sidati": "Sidati",
"siobhan": "Siobhan",
"aargh-a-knot": "sky",
"slushman": "slushman",
"smerriman": "smerriman",
"stephanethomas": "stephanethomas",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"stevegrunwell": "Steve Grunwell",
"stevenkword": "Steven Word",
"subharanjan": "Subharanjan",
"sudar": "Sudar Muthu",
"5um17": "Sumit Singh",
"tacoverdo": "Taco Verdonschot",
"tahteche": "tahteche",
"iamtakashi": "Takashi Irie",
"takayukister": "Takayuki Miyoshi",
"tharsheblows": "tharsheblows",
"themiked": "theMikeD",
"thomaswm": "thomaswm",
"timothyblynjacobs": "Timothy Jacobs",
"timplunkett": "timplunkett",
"tmuikku": "tmuikku",
"skithund": "Toni Viemer&#246;",
"toro_unit": "Toro_Unit (Hiroshi Urabe)",
"liljimmi": "Tracy Levesque",
"wpsmith": "Travis Smith",
"tywayne": "Ty Carlson",
"grapplerulrich": "Ulrich",
"utkarshpatel": "Utkarsh",
"vhomenko": "vhomenko",
"virgodesign": "virgodesign",
"vladolaru": "vlad.olaru",
"vtieu": "vtieu",
"webaware": "webaware",
"wesleye": "Wesley Elfring",
"wisdmlabs": "WisdmLabs",
"wp-architect": "wp-architect",
"wpdelighter": "WP Delighter",
"yetanotherdaniel": "yetAnotherDaniel"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"http://squirrelmail.org/"
],
[
"Color Animations",
"http://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"Horde Text Diff",
"http://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"http://jquery.com/"
],
[
"jQuery UI",
"http://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"http://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"http://plugins.jquery.com/project/suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"http://www.phpclasses.org/browse/package/1743.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"http://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.5"
}
}

668
inc/credits/json/4.6.json Normal file
View file

@ -0,0 +1,668 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Lead Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Release Lead"
],
"voldemortensen": [
"Garth Mortensen",
"",
"voldemortensen",
"Release Deputy"
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
"Core Developer"
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
"Core Developer"
],
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
"Core Developer"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Core Developer"
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
"Core Developer"
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"kirasong": [
"Kira Song",
"",
"kirasong",
""
],
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
""
],
"rmccue": [
"Ryan McCue",
"",
"rmccue",
""
],
"karmatosed": [
"Tammie Lister",
"",
"karmatosed",
""
],
"swissspidy": [
"Pascal Birchler",
"",
"swissspidy",
""
],
"rachelbaker": [
"Rachel Baker",
"",
"rachelbaker",
""
],
"joehoyle": [
"Joe Hoyle",
"",
"joehoyle",
""
],
"ericlewis": [
"Eric Andrew Lewis",
"",
"ericlewis",
""
],
"joemcgill": [
"Joe McGill",
"",
"joemcgill",
""
],
"peterwilsoncc": [
"Peter Wilson",
"",
"peterwilsoncc",
""
],
"kovshenin": [
"Konstantin Kovshenin",
"",
"kovshenin",
""
],
"michaelarestad": [
"Michael Arestad",
"",
"michaelarestad",
""
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"flixos90": [
"Felix Arntz",
"",
"flixos90",
""
],
"hugobaeta": [
"Hugo Baeta",
"",
"hugobaeta",
""
],
"afragen": [
"Andy Fragen",
"",
"afragen",
""
],
"ramiy": [
"Rami Yushuvaev",
"",
"ramiy",
""
],
"spacedmonkey": [
"Jonny Harris",
"",
"spacedmonkey",
""
],
"rianrietveld": [
"Rian Rietveld",
"",
"rianrietveld",
""
],
"mapk": [
"Mark Uraine",
"",
"mapk",
""
],
"mattmiklic": [
"Matt Miklic",
"",
"mattmiklic",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.6"
],
"type": "list",
"data": {
"a5hleyrich": "A5hleyRich",
"achbed": "achbed",
"adrianosilvaferreira": "Adriano Ferreira",
"afineman": "afineman",
"mrahmadawais": "Ahmad Awais",
"akibjorklund": "Aki Bj&#246;rklund",
"schlessera": "Alain Schlesser",
"xknown": "Alex Concha",
"xavortm": "Alex Dimitrov",
"adamsoucie": "Alexis Soucie",
"alexkingorg": "Alex King",
"viper007bond": "Alex Mills",
"alexvandervegt": "alexvandervegt",
"ambrosey": "Alice Brosey",
"aaires": "Ana Aires",
"andg": "Andrea Gandino",
"rockwell15": "Andrew Rockwell",
"aidvu": "Andrija Vučinić",
"andizer": "Andy Meerwaldt",
"andy": "Andy Skelton",
"anilbasnet": "Anil Basnet",
"ankit-k-gupta": "Ankit K Gupta",
"anneschmidt": "anneschmidt",
"ideag": "Arunas Liuiza",
"barry": "Barry",
"barryceelen": "Barry Ceelen",
"kau-boy": "Bernhard Kau",
"birgire": "Birgir Erlendsson (birgire)",
"bobbingwide": "bobbingwide",
"gitlost": "bonger",
"bradt": "Brad Touesnard",
"kraftbj": "Brandon Kraft",
"brianvan": "brianvan",
"borgesbruno": "Bruno Borges",
"bpetty": "Bryan Petty",
"purcebr": "Bryan Purcell",
"chandrapatel": "Chandra Patel",
"chaos-engine": "Chaos Engine",
"chouby": "Chouby",
"chriscct7": "chriscct7",
"chris_dev": "Chris Mok",
"c3mdigital": "Chris Olbekson",
"cfinke": "Christopher Finke",
"christophherr": "Christoph Herr",
"cliffseal": "Cliff Seal",
"clubduece": "clubduece",
"cmillerdev": "cmillerdev",
"craig-ralston": "Craig Ralston",
"crstauf": "crstauf",
"dabnpits": "dabnpits",
"geekysoft": "Dan",
"danielbachhuber": "Daniel Bachhuber",
"mte90": "Daniele Scasciafratte",
"danielhuesken": "Daniel H&#252;sken",
"danielkanchev": "Daniel Kanchev",
"dashaluna": "dashaluna",
"davewarfel": "Dave Warfel",
"davidakennedy": "David A. Kennedy",
"davidanderson": "David Anderson / Team Updraft",
"dbrumbaugh10up": "David Brumbaugh",
"dcavins": "David Cavins",
"dlh": "David Herrera",
"davidmosterd": "David Mosterd",
"dshanske": "David Shanske",
"realloc": "Dennis Ploetner",
"valendesigns": "Derek Herman",
"downstairsdev": "Devin Price",
"dougwollison": "Doug Wollison",
"elrae": "Earle Davies",
"efarem": "EFAREM",
"ethitter": "Erick Hitter",
"fab1en": "Fabien Quatravaux",
"faison": "Faison",
"flyingdr": "flyingdr",
"foliovision": "Foliovision: Making the web work for you",
"francescobagnoli": "francescobagnoli",
"bueltge": "Frank Bueltge",
"frank-klein": "Frank Klein",
"frozzare": "Fredrik Forsmo",
"mintindeed": "Gabriel Koen",
"gma992": "Gabriel Maldonado",
"gblsm": "gblsm",
"geminorum": "geminorum",
"georgestephanis": "George Stephanis",
"hardeepasrani": "Hardeep Asrani",
"henrywright": "Henry Wright",
"polevaultweb": "Iain Poulson",
"iandunn": "Ian Dunn",
"igmoweb": "Ignacio Cruz Moreno",
"inderpreet99": "Inderpreet Singh",
"ionutst": "Ionut Stanciu",
"ipstenu": "Ipstenu (Mika Epstein)",
"jdgrimes": "J.D. Grimes",
"macmanx": "James Huff",
"jnylen0": "James Nylen",
"underdude": "Janne Ala-Aijala",
"jaspermdegroot": "Jasper de Groot",
"javorszky": "javorszky",
"jpdavoutian": "Jean-Paul Davoutian",
"jfarthing84": "Jeff Farthing",
"cheffheid": "Jeffrey de Wit",
"endocreative": "Jeremy Green",
"jeherve": "Jeremy Herve",
"jmichaelward": "Jeremy Ward",
"jerrysarcastic": "jerrysarcastic",
"jesin": "Jesin A",
"jipmoors": "Jip Moors",
"joedolson": "Joe Dolson",
"joelwills": "Joel Williams",
"j-falk": "Johan Falk",
"coderste": "John",
"johnjamesjacoby": "John James Jacoby",
"johnpgreen": "John P. Green",
"john_schlick": "John_Schlick",
"kenshino": "Jon (Kenshino)",
"jbrinley": "Jonathan Brinley",
"sirjonathan": "Jonathan Wold",
"joostdevalk": "Joost de Valk",
"josephscott": "Joseph Scott",
"shelob9": "Josh Pollock",
"joshuagoodwin": "Joshua Goodwin",
"jsternberg": "jsternberg",
"juanfra": "Juan Aldasoro",
"juhise": "Juhi Saxena",
"julesaus": "julesaus",
"jrf": "Juliette Reinders Folmer",
"justinsainton": "Justin Sainton",
"mt8biz": "Kazuto Takeshita",
"ryelle": "Kelly Choyce-Dwan",
"khag7": "Kevin Hagerty",
"ixkaito": "Kite",
"kjbenk": "kjbenk",
"kurtpayne": "Kurt Payne",
"latz": "latz",
"offereins": "Laurens Offereins",
"lukecavanagh": "Luke Cavanagh",
"mpol": "Marcel Pol",
"clorith": "Marius L. J.",
"martinkrcho": "martin.krcho",
"imath": "Mathieu Viet",
"borkweb": "Matthew Batchelder",
"mattyrob": "Matt Robinson",
"wzislam": "Mayeenul Islam",
"mdwheele": "mdwheele",
"medariox": "medariox",
"mehulkaklotar": "Mehul Kaklotar",
"meitar": "Meitar",
"michael-arestad": "Michael Arestad",
"michaelbeil": "Michael Beil",
"stuporglue": "Michael Moore",
"roseapplemedia": "Michael Wiginton",
"stubgo": "Miina Sikk",
"mbijon": "Mike Bijon",
"mikehansenme": "Mike Hansen",
"dimadin": "Milan Dinić",
"morganestes": "Morgan Estes",
"m_uysl": "Mustafa Uysal",
"nicholas_io": "N&#237;cholas Andr&#233;",
"nextendweb": "Nextendweb",
"niallkennedy": "Niall Kennedy",
"celloexpressions": "Nick Halsey",
"nikschavan": "Nikhil Chavan",
"rabmalin": "Nilambar Sharma",
"ninos-ego": "Ninos",
"alleynoah": "Noah",
"noahsilverstein": "noahsilverstein",
"odysseygate": "odyssey",
"ojrask": "ojrask",
"olarmarius": "Olar Marius",
"ovann86": "ovann86",
"pansotdev": "pansotdev",
"pbearne": "Paul Bearne",
"bassgang": "Paul Vincent Beigang",
"paulwilde": "Paul Wilde",
"pavelevap": "pavelevap",
"pcarvalho": "pcarvalho",
"peterrknight": "PeterRKnight",
"westi": "Peter Westwood",
"walbo": "Petter Walb&#248; Johnsg&#229;rd",
"petya": "Petya Raykovska",
"wizzard_": "Pieter Daalder",
"pollett": "Pollett",
"postpostmodern": "postpostmodern",
"presskopp": "Presskopp",
"prettyboymp": "prettyboymp",
"r-a-y": "r-a-y",
"rafaelangeline": "Rafael Angeline",
"zetaraffix": "raffaella isidori",
"rahulsprajapati": "Rahul Prajapati",
"iamfriendly": "Rich Tape",
"rpayne7264": "Robert D Payne",
"littlerchicken": "Robin Cornett",
"rodrigosprimo": "Rodrigo Primo",
"ronalfy": "Ronald Huereca",
"ruudjoyo": "Ruud Laan",
"welcher": "Ryan Welcher",
"soean": "S&#246;ren W&#252;nsch",
"samantha-miller": "Samantha Miller",
"solarissmoke": "Samir Shah",
"rosso99": "Sara Rosso",
"scottbasgaard": "Scott Basgaard",
"sc0ttkclark": "Scott Kingsley Clark",
"coffee2code": "Scott Reilly",
"screamingdev": "screamingdev",
"sebastianpisula": "Sebastian Pisula",
"semil": "semil",
"shahpranaf": "shahpranaf",
"sidati": "Sidati",
"neverything": "Silvan Hagen",
"simonvik": "Simon",
"smerriman": "smerriman",
"southp": "southp",
"metodiew": "Stanko Metodiev",
"stephdau": "Stephane Daury (stephdau)",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"stevenkword": "Steven Word",
"sudar": "Sudar Muthu",
"patilswapnilv": "Swapnil V. Patil",
"tacoverdo": "Taco Verdonschot",
"iamtakashi": "Takashi Irie",
"tlovett1": "Taylor Lovett",
"themiked": "theMikeD",
"tloureiro": "Thiago Loureiro",
"thomaswm": "thomaswm",
"tfrommen": "Thorsten Frommen",
"nmt90": "Tim Nguyen",
"timothyblynjacobs": "Timothy Jacobs",
"travisnorthcutt": "Travis Northcutt",
"grapplerulrich": "Ulrich",
"unyson": "Unyson",
"szepeviktor": "Viktor Sz&#233;pe",
"zuige": "Viljami Kuosmanen",
"vishalkakadiya": "Vishal Kakadiya",
"vortfu": "vortfu",
"svovaf": "Vova Feldman",
"websupporter": "websupporter",
"wpfo": "wpfo",
"wp_smith": "wp_smith",
"xavivars": "Xavi Ivars",
"yoavf": "Yoav Farhi",
"tollmanz": "Zack Tollman",
"zakb8": "zakb8"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"https://squirrelmail.org/"
],
[
"Color Animations",
"https://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"Horde Text Diff",
"https://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"https://jquery.com/"
],
[
"jQuery UI",
"https://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"https://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"https://github.com/pvulgaris/jquery.suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"https://www.phpclasses.org/package/1743-PHP-FTP-client-in-pure-PHP.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"Requests",
"http://requests.ryanmccue.info/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"https://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.6"
}
}

916
inc/credits/json/4.7.json Normal file
View file

@ -0,0 +1,916 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Cofounder, Project Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Release Lead"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
"Release Deputy"
],
"jbpaul17": [
"Jeff Paul",
"",
"jbpaul17",
"Release Deputy"
],
"aaroncampbell": [
"Aaron D. Campbell",
"",
"aaroncampbell",
"Core Developer"
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
"Core Developer"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
"Core Developer"
],
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
"Core Developer"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Core Developer"
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
"Core Developer"
],
"joemcgill": [
"Joe McGill",
"",
"joemcgill",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"kirasong": [
"Kira Song",
"",
"kirasong",
"Core Developer"
],
"swissspidy": [
"Pascal Birchler",
"",
"swissspidy",
"Core Developer"
],
"rachelbaker": [
"Rachel Baker",
"",
"rachelbaker",
"Core Developer"
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
"Core Developer"
],
"davidakennedy": [
"David A. Kennedy",
"",
"davidakennedy",
""
],
"flixos90": [
"Felix Arntz",
"",
"flixos90",
""
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"rmccue": [
"Ryan McCue",
"",
"rmccue",
""
],
"karmatosed": [
"Tammie Lister",
"",
"karmatosed",
""
],
"joehoyle": [
"Joe Hoyle",
"",
"joehoyle",
""
],
"ericlewis": [
"Eric Andrew Lewis",
"",
"ericlewis",
""
],
"peterwilsoncc": [
"Peter Wilson",
"",
"peterwilsoncc",
""
],
"kovshenin": [
"Konstantin Kovshenin",
"",
"kovshenin",
""
],
"michaelarestad": [
"Michael Arestad",
"",
"michaelarestad",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
],
"jnylen0": [
"James Nylen",
"",
"jnylen0",
""
],
"laurelfulford": [
"Laurel Fulford",
"",
"laurelfulford",
""
],
"kadamwhite": [
"K.Adam White",
"",
"kadamwhite",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"danielbachhuber": [
"Daniel Bachhuber",
"",
"danielbachhuber",
""
],
"celloexpressions": [
"Nick Halsey",
"",
"celloexpressions",
""
],
"ramiy": [
"Rami Yushuvaev",
"",
"ramiy",
""
],
"johnregan3": [
"John Regan",
"",
"johnregan3",
""
],
"sirbrillig": [
"Payton Swick",
"",
"sirbrillig",
""
],
"bradyvercher": [
"Brady Vercher",
"",
"bradyvercher",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.7"
],
"type": "list",
"data": {
"imnok": "(Nok) Pantip Treerattanapitak",
"abrightclearweb": "abrightclearweb",
"ibachal": "Achal Jain",
"achbed": "achbed",
"acmethemes": "Acme Themes",
"adammacias": "adammacias",
"hiddenpearls": "Adnan",
"ahmadawais": "ahmadawais",
"mrahmadawais": "Ahmad Awais",
"airesvsg": "airesvsg",
"akeif": "Akeif",
"akibjorklund": "Aki Bj&#246;rklund",
"akshayvinchurkar": "akshayvinchurkar",
"schlessera": "Alain Schlesser",
"alex27": "alex27",
"xknown": "Alex Concha",
"xavortm": "Alex Dimitrov",
"ironpaperweight": "Alex Hon",
"allancole": "allancole",
"arush": "Amanda Rush",
"andrewp-2": "Andreas Panag",
"rarst": "Andrey \"Rarst\" Savchenko",
"andizer": "Andy Meerwaldt",
"kelderic": "Andy Mercer",
"andy": "Andy Skelton",
"aniketpant": "Aniket Pant",
"anilbasnet": "Anil Basnet",
"ankit-k-gupta": "Ankit K Gupta",
"ahortin": "Anthony Hortin",
"antisilent": "antisilent",
"atimmer": "Anton Timmermans",
"apokalyptik": "apokalyptik",
"artoliukkonen": "artoliukkonen",
"ideag": "Arunas Liuiza",
"asalce": "asalce",
"attitude": "Attitude",
"ajoah": "Aur&#233;lien Joahny",
"backermann": "backermann",
"bcole808": "Ben Cole",
"quasel": "Bernhard Gronau",
"kau-boy": "Bernhard Kau",
"binarymoon": "binarymoon",
"birgire": "Birgir Erlendsson (birgire)",
"bjornw": "BjornW",
"blobfolio": "Blobfolio",
"bobbingwide": "bobbingwide",
"boblinthorst": "Bob Linthorst",
"boboudreau": "boboudreau",
"boldwater": "boldwater",
"gitlost": "bonger",
"bor0": "Boro Sitnikovski",
"brainstormforce": "Brainstorm Force",
"kraftbj": "Brandon Kraft",
"drrobotnik": "Brandon Lavigne",
"brianhogg": "Brian Hogg",
"krogsgard": "Brian Krogsgard",
"bronsonquick": "Bronson Quick",
"bhargavbhandari90": "Bunty",
"sixhours": "Caroline Moore",
"caseypatrickdriscoll": "Casey Driscoll",
"caspie": "Caspie",
"ccprog": "ccprog",
"chandrapatel": "Chandra Patel",
"chaos-engine": "Chaos Engine",
"cheeserolls": "cheeserolls",
"ketuchetan": "Chetan Satasiya",
"choongsavvii": "choong",
"chouby": "Chouby",
"chredd": "chredd",
"chriscct7": "chriscct7",
"chriseverson": "Chris Everson",
"chrisjean": "Chris Jean",
"cmmarslender": "Chris Marslender",
"chris_d2d": "Chris Smith",
"christian1012": "Christian Chung",
"cwpnolen": "Christian Nolen",
"needle": "Christian Wach",
"christophherr": "Christoph Herr",
"chrisvanpatten": "Chris Van Patten",
"chriswiegman": "Chris Wiegman",
"clarionwpdeveloper": "Clarion Technologies",
"claudiosanches": "Claudio Sanches",
"claudiosmweb": "Claudio Sanches",
"codemovementpk": "codemovement.pk",
"coderkevin": "coderkevin",
"codfish": "Codfish",
"coreymcollins": "coreymcollins",
"littlebigthing": "Csaba (LittleBigThings)",
"curdin": "Curdin Krummenacher",
"cgrymala": "Curtiss Grymala",
"cdog": "Cătălin Dogaru",
"geekysoft": "Dan",
"danhgilmore": "danhgilmore",
"mte90": "Daniele Scasciafratte",
"danielkanchev": "Daniel Kanchev",
"danielpietrasik": "Daniel Pietrasik",
"nerrad": "Darren Ethier (nerrad)",
"dllh": "Daryl L. L. Houston (dllh)",
"enshrined": "Daryll Doyle",
"davepullig": "Dave Pullig",
"goto10": "Dave Romsey (goto10)",
"davidbenton": "davidbenton",
"davidbhayes": "davidbhayes",
"dlh": "David Herrera",
"dglingren": "David Lingren",
"davidmosterd": "David Mosterd",
"dshanske": "David Shanske",
"deeptiboddapati": "deeptiboddapati",
"delphinus": "delphinus",
"deltafactory": "deltafactory",
"denis-de-bernardy": "Denis de Bernardy",
"dmsnell": "Dennis Snell",
"valendesigns": "Derek Herman",
"pcfreak30": "Derrick Hammer",
"derrickkoo": "Derrick Koo",
"dhanendran": "Dhanendran Rajagopal",
"dineshc": "Dinesh Chouhan",
"dipeshkakadiya": "Dipesh Kakadiya",
"dimchik": "Dmitriy",
"dotancohen": "Dotan Cohen",
"nullvariable": "Doug Cone",
"doughamlin": "doughamlin",
"dougwollison": "Doug Wollison",
"dreamon11": "DreamOn11",
"drivingralle": "Drivingralle",
"duncanjbrown": "duncanjbrown",
"veraxus": "Dutch van Andel",
"dylanauty": "DylanAuty",
"eclev91": "eclev91",
"hurtige": "Eddie Hurtig",
"oso96_2000": "Eduardo Reveles",
"chopinbach": "Edwin Cromley",
"electricfeet": "ElectricFeet",
"eliorivero": "Elio Rivero",
"elyobo": "elyobo",
"enodekciw": "enodekciw",
"pushred": "Eric Lanehart",
"folletto": "Erin 'Folletto' Casali",
"eherman24": "Evan Herman",
"fencer04": "Fencer04",
"florianbrinkmann": "Florian Brinkmann",
"mista-flo": "Florian TIAR",
"foliovision": "Foliovision: Making the web work for you",
"fomenkoandrey": "fomenkoandrey",
"piewp": "fperdaan",
"frankiet": "Frankie",
"fjarrett": "Frankie Jarrett",
"frank-klein": "Frank Klein",
"frozzare": "Fredrik Forsmo",
"fuscata": "fuscata",
"gma992": "Gabriel Maldonado",
"voldemortensen": "Garth Mortensen",
"garyj": "Gary Jones",
"georgestephanis": "George Stephanis",
"goranseric": "Goran Seric",
"grahamarmfield": "Graham Armfield",
"grantderepas": "Grant Derepas",
"tivnet": "Gregory Karpinsky (@tivnet)",
"ghosttoast": "Gustave F. Gerhardt",
"hardeepasrani": "Hardeep Asrani",
"henrywright": "Henry Wright",
"hideokamoto": "hide",
"hnle": "Hinaloe",
"hristo-sg": "Hristo Pandjarov",
"hugobaeta": "Hugo Baeta",
"kuchenundkakao": "HU ist Sebastian",
"polevaultweb": "Iain Poulson",
"iandunn": "Ian Dunn",
"ianedington": "Ian Edington",
"igmoweb": "Ignacio Cruz Moreno",
"ig_communitysites": "ig_communitysites",
"implenton": "implenton",
"ionutst": "Ionut Stanciu",
"ipstenu": "Ipstenu (Mika Epstein)",
"ivdimova": "ivdimova",
"jdgrimes": "J.D. Grimes",
"jakept": "Jacob Peattie",
"whyisjake": "Jake Spurlock",
"jamesacero": "jamesacero",
"idealien": "Jamie O",
"japh": "Japh",
"jaredcobb": "Jared Cobb",
"jayarjo": "jayarjo",
"jazbek": "jazbek",
"johnpbloch": "J B",
"jdolan": "jdolan",
"jdoubleu": "jdoubleu",
"jblz": "Jeff Bowen",
"cheffheid": "Jeffrey de Wit",
"jpry": "Jeremy Pry",
"jimt": "jimt",
"jipmoors": "Jip Moors",
"jmusal": "jmusal",
"joedolson": "Joe Dolson",
"joelcj91": "Joel James",
"johanmynhardt": "johanmynhardt",
"zyphonic": "John Dittmar",
"johnjamesjacoby": "John James Jacoby",
"johnpgreen": "John P. Green",
"kenshino": "Jon (Kenshino)",
"jonathanbardo": "Jonathan Bardo",
"jbrinley": "Jonathan Brinley",
"daggerhart": "Jonathan Daggerhart",
"desrosj": "Jonathan Desrosiers",
"jonnyauk": "jonnyauk",
"spacedmonkey": "Jonny Harris",
"jordesign": "jordesign",
"jorritschippers": "JorritSchippers",
"joefusco": "Joseph Fusco",
"joshcummingsdesign": "joshcummingsdesign",
"jjeaton": "Josh Eaton",
"joshkadis": "joshkadis",
"shelob9": "Josh Pollock",
"joyously": "Joy",
"jrgould": "JRGould",
"juanfra": "Juan Aldasoro",
"juhise": "Juhi Saxena",
"jrf": "Juliette Reinders Folmer",
"nukaga": "Junko Nukaga",
"justinbusa": "Justin Busa",
"justinsainton": "Justin Sainton",
"jshreve": "Justin Shreve",
"jtsternberg": "Justin Sternberg",
"kacperszurek": "kacperszurek",
"trepmal": "Kailey (trepmal)",
"kalenjohnson": "KalenJohnson",
"karinedo": "Karine Do",
"codebykat": "Kat Hagan",
"mt8biz": "Kazuto Takeshita",
"kkoppenhaver": "Keanan Koppenhaver",
"keesiemeijer": "keesiemeijer",
"kellbot": "kellbot",
"ryelle": "Kelly Choyce-Dwan",
"khag7": "Kevin Hagerty",
"kwight": "Kirk Wight",
"kitchin": "kitchin",
"ixkaito": "Kite",
"kjbenk": "kjbenk",
"knutsp": "Knut Sparhell",
"koenschipper": "koenschipper",
"kokarn": "kokarn",
"kouratoras": "Konstantinos Kouratoras",
"kuldipem": "kuldipem",
"leewillis77": "Lee Willis",
"leobaiano": "Leo Baiano",
"lucasstark": "Lucas Stark",
"lukasbesch": "lukasbesch",
"lukecavanagh": "Luke Cavanagh",
"lgedeon": "Luke Gedeon",
"lukepettway": "Luke Pettway",
"lyubomir_popov": "lyubomir_popov",
"mariovalney": "M&#225;rio Valney",
"mageshp": "mageshp",
"mahesh901122": "Mahesh Waghmare",
"tomdxw": "mallorydxw-old",
"mangeshp": "Mangesh Parte",
"manishsongirkar36": "Manish Songirkar",
"mantismamita": "mantismamita",
"mbootsman": "Marcel Bootsman &#240;&#376;&#8225;&#170;&#240;&#376;&#8225;&#186;",
"tyxla": "Marin Atanasov",
"maguiar": "Mario Aguiar",
"clorith": "Marius L. J.",
"mbelchev": "Mariyan Belchev",
"markoheijnen": "Marko Heijnen",
"markshep": "markshep",
"mapk": "Mark Uraine",
"matheusgimenez": "MatheusGimenez",
"imath": "Mathieu Viet",
"matrixik": "matrixik",
"mjbanks": "Matt Banks",
"mboynes": "Matthew Boynes",
"mattheu": "Matthew Haines-Young",
"jaworskimatt": "Matt Jaworski",
"mattking5000": "Matt King",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"maxcutler": "Max Cutler",
"maximeculea": "Maxime Culea",
"mayukojpn": "Mayo Moriyama",
"mayurk": "Mayur Keshwani",
"mckernanin": "mckernanin",
"b-07": "Mehedi Hasan",
"mhowell": "mhowell",
"michael-arestad": "Michael Arestad",
"mnelson4": "Michael Nelson",
"michalzuber": "michalzuber",
"stubgo": "Miina Sikk",
"mauteri": "Mike Auteri",
"mihai2u": "Mike Crantea",
"mdgl": "Mike Glendinning",
"mikehansenme": "Mike Hansen",
"mikelittle": "Mike Little",
"mikeviele": "Mike Viele",
"dimadin": "Milan Dinić",
"modemlooper": "modemlooper",
"batmoo": "Mohammad Jangda",
"sayedwp": "Mohammad Taqui Sayed",
"deremohan": "Mohan Dere",
"monikarao": "Monika Rao",
"morettigeorgiev": "morettigeorgiev",
"morganestes": "Morgan Estes",
"mor10": "Morten Rand-Hendriksen",
"mrbobbybryant": "mrbobbybryant",
"mrwweb": "mrwweb",
"codegeass": "Muhammet Arslan",
"nnaimov": "Naim Naimov",
"natereist": "Nate Reist",
"natewr": "NateWr",
"nathanrice": "Nathan Rice",
"nazgul": "Nazgul",
"greatislander": "Ned Zimmerman",
"krstarica": "net",
"nikschavan": "Nikhil Chavan",
"nikv": "Nikhil Vimal",
"nbachiyski": "Nikolay Bachiyski",
"rabmalin": "Nilambar Sharma",
"noplanman": "noplanman",
"odie2": "odie2",
"odysseygate": "odyssey",
"orvils": "orvils",
"oskosk": "Osk",
"ottok": "Otto Kek&#228;l&#228;inen",
"ovann86": "ovann86",
"patilvikasj": "patilvikasj",
"pbearne": "Paul Bearne",
"paulwilde": "Paul Wilde",
"pavelevap": "pavelevap",
"pdufour": "pdufour",
"phh": "phh",
"php": "php",
"delawski": "Piotr Delawski",
"pippinsplugins": "pippinsplugins",
"pjgalbraith": "pjgalbraith",
"pkevan": "pkevan",
"pratikchaskar": "Pratik Chaskar",
"pratikshrestha": "Pratik Shrestha",
"nikeo": "presscustomizr",
"pressionate": "Pressionate",
"presskopp": "Presskopp",
"procodewp": "procodewp",
"programmin": "programmin",
"rahulsprajapati": "Rahul Prajapati",
"superpoincare": "Ramanan",
"ramiabraham": "ramiabraham",
"ranh": "ranh",
"redsand": "Red Sand Media Group",
"reldev": "reldev",
"youknowriad": "Riad Benguella",
"rianrietveld": "Rian Rietveld",
"iamfriendly": "Rich Tape",
"aussieguy123": "Robbie Cahill",
"rpayne7264": "Robert D Payne",
"iamjolly": "Robert Jolly",
"rnoakes3rd": "Robert Noakes",
"sanchothefat": "Robert O'Rourke",
"d4z_c0nf": "Rocco Aliberti",
"rodrigosprimo": "Rodrigo Primo",
"rommelxcastro": "Rommel Castro",
"fronaldaraujo": "Ronald Ara&#250;jo",
"magicroundabout": "Ross Wintle",
"guavaworks": "Roy Sivan",
"ryankienstra": "Ryan Kienstra",
"ryanplas": "Ryan Plas",
"welcher": "Ryan Welcher",
"soean": "S&#246;ren W&#252;nsch",
"sagarkbhatt": "Sagar Bhatt",
"sagarprajapati": "Sagar Prajapati",
"salcode": "Sal Ferrarello",
"samikeijonen": "Sami Keijonen",
"solarissmoke": "Samir Shah",
"samuelsidler": "Samuel Sidler",
"sandesh055": "Sandesh",
"smyoon315": "Sang-Min Yoon",
"sanketparmar": "Sanket Parmar",
"pollyplummer": "Sarah Gooding",
"coffee2code": "Scott Reilly",
"scrappyhuborg": "scrappy@hub.org",
"scribu": "scribu",
"seancjones": "seancjones",
"seanchayes": "Sean Hayes",
"sebastianpisula": "Sebastian Pisula",
"sgr33n": "Sergio De Falco",
"sfpt": "sfpt",
"shayanys": "shayanys",
"shprink": "shprink",
"simonlampen": "simonlampen",
"skippy": "skippy",
"smerriman": "smerriman",
"snacking": "snacking",
"solal": "solal",
"sboisvert": "St&#233;phane Boisvert",
"sstoqnov": "Stanimir Stoyanov",
"metodiew": "Stanko Metodiev",
"dungengronovius": "Stefan van den Dungen Gronovius",
"sharkomatic": "Steph",
"sillybean": "Stephanie Leary",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"sswells": "Steph Wells",
"shazahm1hotmailcom": "Steven",
"stevenlinx": "Steven Lin",
"stevenkword": "Steven Word",
"sudar": "Sudar Muthu",
"swapnild": "swapnild",
"patilswapnilv": "Swapnil V. Patil",
"cybr": "Sybre Waaijer",
"szaqal21": "szaqal21",
"takahashi_fumiki": "Takahashi Fumiki",
"miyauchi": "Takayuki Miyauchi",
"tapsboy": "tapsboy",
"tlovett1": "Taylor Lovett",
"team": "team",
"tg29359": "tg29359",
"tharsheblows": "tharsheblows",
"the": "the",
"claudiolabarbera": "thebatclaudio",
"themeshaper": "ThemeShaper",
"thenbrent": "thenbrent",
"thomaswm": "thomaswm",
"tfrommen": "Thorsten Frommen",
"tierra": "tierra",
"timmydcrawford": "Timmy Crawford",
"tnash": "Tim Nash",
"nmt90": "Tim Nguyen",
"timothyblynjacobs": "Timothy Jacobs",
"timph": "timph",
"tkama": "Timur Kamaev",
"tnegri": "tnegri",
"schrapel": "toby",
"tomauger": "Tom Auger",
"tjnowell": "Tom J Nowell",
"toro_unit": "Toro_Unit (Hiroshi Urabe)",
"zodiac1978": "Torsten Landsiedel",
"transl8or": "transl8or",
"traversal": "traversal",
"wpsmith": "Travis Smith",
"triplejumper12": "triplejumper12",
"trishasalas": "Trisha Salas",
"tristangemus": "tristangemus",
"truongwp": "truongwp",
"tsl143": "tsl143",
"turtlepod": "turtlepod",
"tywayne": "Ty Carlson",
"grapplerulrich": "Ulrich",
"utkarshpatel": "Utkarsh",
"valeriutihai": "Valeriu Tihai",
"zhildzik": "vikuser",
"zuige": "Viljami Kuosmanen",
"vishalkakadiya": "Vishal Kakadiya",
"vortfu": "vortfu",
"vrundakansara-1": "Vrunda",
"webbgaraget": "webbgaraget",
"webmandesign": "WebMan Design &#124; Oliver Juhas",
"websupporter": "websupporter",
"earnjam": "Will Earnhardt",
"williampatton": "williampatton",
"wolly": "Wolly aka Paolo Valenti",
"wpfo": "wpfo",
"wraithkenny": "WraithKenny",
"yale01": "yale01",
"yoavf": "Yoav Farhi",
"yogasukma": "Yoga Sukma",
"vanillalounge": "Z&#233; Fontainhas",
"oxymoron": "Zach Wills",
"tollmanz": "Zack Tollman",
"zsusag": "zsusag",
"chesio": "Česlav Przywara"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"https://squirrelmail.org/"
],
[
"Color Animations",
"https://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"Horde Text Diff",
"https://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"https://jquery.com/"
],
[
"jQuery UI",
"https://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"https://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"https://github.com/pvulgaris/jquery.suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"https://www.phpclasses.org/package/1743-PHP-FTP-client-in-pure-PHP.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"Requests",
"http://requests.ryanmccue.info/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"https://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.7"
}
}

734
inc/credits/json/4.8.json Normal file
View file

@ -0,0 +1,734 @@
{
"groups": {
"project-leaders": {
"name": "Project Leaders",
"type": "titles",
"shuffle": true,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Release Lead"
],
"nacin": [
"Andrew Nacin",
"",
"nacin",
"Lead Developer"
],
"markjaquith": [
"Mark Jaquith",
"",
"markjaquith",
"Lead Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Lead Developer"
],
"helen": [
"Helen Hou-Sandí",
"",
"helen",
"Lead Developer"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
]
}
},
"core-developers": {
"name": "Contributing Developers",
"type": "titles",
"shuffle": false,
"data": {
"jbpaul17": [
"Jeff Paul",
"",
"jbpaul17",
"Release Deputy"
],
"aaroncampbell": [
"Aaron D. Campbell",
"",
"aaroncampbell",
"Core Developer"
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
"Core Developer"
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
"Core Developer"
],
"boonebgorges": [
"Boone B. Gorges",
"",
"boonebgorges",
"Core Developer"
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
"Core Developer"
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
"Core Developer"
],
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
"Core Developer"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Core Developer"
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
"Core Developer"
],
"joemcgill": [
"Joe McGill",
"",
"joemcgill",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"kirasong": [
"Kira Song",
"",
"kirasong",
"Core Developer"
],
"swissspidy": [
"Pascal Birchler",
"",
"swissspidy",
"Core Developer"
],
"rachelbaker": [
"Rachel Baker",
"",
"rachelbaker",
"Core Developer"
],
"wonderboymusic": [
"Scott Taylor",
"",
"wonderboymusic",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"westonruter": [
"Weston Ruter",
"",
"westonruter",
"Core Developer"
],
"davidakennedy": [
"David A. Kennedy",
"",
"davidakennedy",
""
],
"flixos90": [
"Felix Arntz",
"",
"flixos90",
""
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"rmccue": [
"Ryan McCue",
"",
"rmccue",
""
],
"karmatosed": [
"Tammie Lister",
"",
"karmatosed",
""
],
"joehoyle": [
"Joe Hoyle",
"",
"joehoyle",
""
],
"ericlewis": [
"Eric Andrew Lewis",
"",
"ericlewis",
""
],
"peterwilsoncc": [
"Peter Wilson",
"",
"peterwilsoncc",
""
],
"kovshenin": [
"Konstantin Kovshenin",
"",
"kovshenin",
""
],
"michaelarestad": [
"Michael Arestad",
"",
"michaelarestad",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
],
"jnylen0": [
"James Nylen",
"",
"jnylen0",
""
],
"kadamwhite": [
"K.Adam White",
"",
"kadamwhite",
""
],
"Joen": [
"Joen Asmussen",
"",
"Joen",
""
],
"matveb": [
"Matias Ventura",
"",
"matveb",
""
]
}
},
"recent-rockstars": {
"name": false,
"type": "titles",
"shuffle": true,
"data": []
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"4.8"
],
"type": "list",
"data": {
"1naveengiri": "1naveengiri",
"4nickpick": "4nickpick",
"abhishek": "abhishek",
"abhishekfdd": "Abhishek Kumar",
"kawauso": "Adam Harley (Kawauso)",
"afzalmultani": "Afzal Multani",
"mrahmadawais": "Ahmad Awais",
"xknown": "Alex Concha",
"apmarshall": "Alex Floyd Marshall",
"adamsoucie": "Alexis Soucie",
"alexkingorg": "Alex King",
"andreamiddleton": "Andrea Middleton",
"abrain": "Andreas Brain",
"rockwell15": "Andrew Rockwell",
"kelderic": "Andy Mercer",
"ankit-k-gupta": "Ankit K Gupta",
"arena": "arena",
"arena94": "arena94",
"arshidkv12": "Arshid",
"aryamaaru": "Arun",
"asalce": "asalce",
"nosegraze": "Ashley",
"ashokkumar24": "Ashokkumar",
"atanasangelovdev": "Atanas Angelov",
"ajoah": "Aur&#233;lien Joahny",
"barryceelen": "Barry Ceelen",
"bcworkz": "bcworkz",
"bharatkambariya": "Bharat Kambariya",
"blobfolio": "Blobfolio",
"gitlost": "bonger",
"bor0": "Boro Sitnikovski",
"bradt": "Brad Touesnard",
"bradyvercher": "Brady Vercher",
"kraftbj": "Brandon Kraft",
"drrobotnik": "Brandon Lavigne",
"teinertb": "Brandon Teinert",
"bridgetwillard": "Bridget Willard",
"bhargavbhandari90": "Bunty",
"camikaos": "Cami Kaos",
"carl-alberto": "Carl Alberto",
"caseypatrickdriscoll": "Casey Driscoll",
"cazm": "cazm",
"ccprog": "ccprog",
"chandrapatel": "Chandra Patel",
"ketuchetan": "Chetan Satasiya",
"chiragpatel": "Chirag Patel",
"chouby": "Chouby",
"chriseverson": "Chris Everson",
"cklosows": "Chris Klosowski",
"chris_dev": "Chris Mok",
"christian1012": "Christian Chung",
"coreymckrill": "Corey McKrill",
"courtneypk": "Courtney P.K.",
"cristianozanca": "Cristiano Zanca",
"csloisel": "csloisel",
"curdin": "Curdin Krummenacher",
"clarinetlord": "Cyrus Collier",
"danielbachhuber": "Daniel Bachhuber",
"mte90": "Daniele Scasciafratte",
"diddledan": "Dani Llewellyn",
"nerrad": "Darren Ethier (nerrad)",
"darshan02": "Darshan joshi",
"darthaud": "darthaud",
"dllh": "Daryl L. L. Houston (dllh)",
"davidanderson": "David Anderson / Team Updraft",
"davidbenton": "davidbenton",
"davidbinda": "David Biňovec",
"dlh": "David Herrera",
"dshanske": "David Shanske",
"dingo_d": "Denis Žoljom",
"designsimply": "designsimply",
"dhanendran": "Dhanendran Rajagopal",
"dharm1025": "Dharmesh Patel",
"dhaval-parekh": "Dhaval Parekh",
"dotancohen": "Dotan Cohen",
"dots": "Dotstore",
"doublehhh": "DoubleH",
"nullvariable": "Doug Cone",
"dreamon11": "DreamOn11",
"drivingralle": "Drivingralle",
"dspilka": "dspilka",
"h3llas": "Dugonja",
"chopinbach": "Edwin Cromley",
"ejner69": "Ejner Galaz",
"raisonon": "Elliot Taylor",
"emirpprime": "emirpprime",
"ethitter": "Erick Hitter",
"endif-media": "Ethan Allen",
"fab1en": "Fabien Quatravaux",
"fibonaccina": "fibonaccina",
"mista-flo": "Florian TIAR",
"piewp": "fperdaan",
"francina": "Francesca Marano",
"fstaude": "Frank Neumann-Staude",
"f-j-kaiser": "Franz Josef Kaiser",
"tymvie": "fstf",
"gma992": "Gabriel Maldonado",
"voldemortensen": "Garth Mortensen",
"garyc40": "Gary Cao",
"soulseekah": "Gennady Kovshenin",
"georgestephanis": "George Stephanis",
"ghosttoast": "Gustave F. Gerhardt",
"hedgefield": "hedgefield",
"helgatheviking": "HelgaTheViking",
"hristo-sg": "Hristo Pandjarov",
"iandunn": "Ian Dunn",
"zinigor": "Igor Zinovyev (a11n)",
"ig_communitysites": "ig_communitysites",
"ipstenu": "Ipstenu (Mika Epstein)",
"ireneyoast": "Irene Strikkers",
"iv3rson76": "Ivan Stefanov",
"ivantedja": "ivantedja",
"jdgrimes": "J.D. Grimes",
"jackreichert": "Jack Reichert",
"whyisjake": "Jake Spurlock",
"jaydeep-rami": "Jaydeep Rami",
"jazbek": "jazbek",
"jblz": "Jeff Bowen",
"jfarthing84": "Jeff Farthing",
"cheffheid": "Jeffrey de Wit",
"jenblogs4u": "Jen Miller",
"jmdodd": "Jennifer M. Dodd",
"jpry": "Jeremy Pry",
"jesseenterprises": "jesseenterprises",
"jigneshnakrani": "Jignesh Nakrani",
"jjcomack": "Jimmy Comack",
"jipmoors": "Jip Moors",
"joedolson": "Joe Dolson",
"johnjamesjacoby": "John James Jacoby",
"desrosj": "Jonathan Desrosiers",
"spacedmonkey": "Jonny Harris",
"joostdevalk": "Joost de Valk",
"chanthaboune": "Josepha",
"shelob9": "Josh Pollock",
"juhise": "Juhi Saxena",
"kopepasah": "Justin Kopepasah",
"vijustin": "Justin McGuire",
"certainstrings": "Justin Tucker",
"kafleg": "KafleG",
"trepmal": "Kailey (trepmal)",
"karinedo": "Karine Do",
"zoonini": "Kathryn Presner",
"kaushik": "kaushik",
"mt8biz": "Kazuto Takeshita",
"kkoppenhaver": "Keanan Koppenhaver",
"keesiemeijer": "keesiemeijer",
"ryelle": "Kelly Choyce-Dwan",
"ixkaito": "Kite",
"kjellr": "Kjell Reigstad",
"kostasx": "kostasx",
"kubik-rubik": "kubik-rubik",
"kuck1u": "kuck1u",
"lancewillett": "Lance Willett",
"laurelfulford": "laurelfulford",
"leemon": "leemon",
"leewillis77": "Lee Willis",
"lewiscowles": "LewisCowles",
"liammcarthur": "LiamMcArthur",
"lucasstark": "Lucas Stark",
"lukasbesch": "lukasbesch",
"lukecavanagh": "Luke Cavanagh",
"maedahbatool": "Maedah Batool",
"mp518": "Mahesh Prajapati",
"tomdxw": "mallorydxw-old",
"mantismamita": "mantismamita",
"tyxla": "Marin Atanasov",
"maguiar": "Mario Aguiar",
"markoheijnen": "Marko Heijnen",
"mapk": "Mark Uraine",
"matheusgimenez": "MatheusGimenez",
"matheusfd": "Matheus Martins",
"mathieuhays": "mathieuhays",
"imath": "Mathieu Viet",
"matias": "Matias",
"mboynes": "Matthew Boynes",
"mattheu": "Matthew Haines-Young",
"mattyrob": "Matt Robinson",
"mattwiebe": "Matt Wiebe",
"maximeculea": "Maxime Culea",
"mayukojpn": "Mayo Moriyama",
"mayurk": "Mayur Keshwani",
"menakas": "Menaka S.",
"mnelson4": "Michael Nelson",
"michalzuber": "michalzuber",
"michelleweber": "michelleweber",
"stubgo": "Miina Sikk",
"mihai2u": "Mike Crantea",
"mikehansenme": "Mike Hansen",
"mikejolley": "Mike Jolley",
"mikelittle": "Mike Little",
"dimadin": "Milan Dinić",
"milindmore22": "Milind More",
"mitraval192": "Mithun Raval",
"mmdeveloper": "MMDeveloper",
"batmoo": "Mohammad Jangda",
"mohanjith": "mohanjith",
"monikarao": "Monika Rao",
"morganestes": "Morgan Estes",
"mrgregwaugh": "MrGregWaugh",
"mrwweb": "mrwweb",
"mschadegg": "mschadegg",
"codegeass": "Muhammet Arslan",
"nao": "Naoko Takano",
"naomicbush": "Naomi C. Bush",
"natereist": "Nate Reist",
"greatislander": "Ned Zimmerman",
"celloexpressions": "Nick Halsey",
"nsundberg": "Nicklas Sundberg",
"nikschavan": "Nikhil Chavan",
"nitin-kevadiya": "Nitin Kevadiya",
"kailanitish90": "Nitish Kaila",
"nobremarcos": "nobremarcos",
"odysseygate": "odyssey",
"iaaxpage": "page-carbajal",
"pbearne": "Paul Bearne",
"pbiron": "Paul Biron",
"pauldewouters": "Paul de Wouters",
"figureone": "Paul Ryan",
"pavelevap": "pavelevap",
"sirbrillig": "Payton Swick",
"pdufour": "pdufour",
"philipjohn": "Philip John",
"delawski": "Piotr Delawski",
"psoluch": "Piotr Soluch",
"postpostmodern": "postpostmodern",
"pranalipatel": "Pranali Patel",
"pratikshrestha": "Pratik Shrestha",
"presskopp": "Presskopp",
"priyankabehera155": "Priyanka Behera",
"prosti": "prosti",
"ptbello": "ptbello",
"r-a-y": "r-a-y",
"rafaehlers": "Rafael Ehlers",
"raggedrobins": "raggedrobins",
"ramiabraham": "ramiabraham",
"ramiy": "Rami Yushuvaev",
"ranh": "ranh",
"rclations": "RC Lations",
"redrambles": "redrambles",
"rellect": "Refael Iliaguyev",
"reldev": "reldev",
"rensw90": "rensw90",
"reportermike": "reportermike",
"greuben": "Reuben",
"rianrietveld": "Rian Rietveld",
"riddhiehta02": "Riddhi Mehta",
"rinkuyadav999": "Rinku Y",
"aussieguy123": "Robbie Cahill",
"sanchothefat": "Robert O'Rourke",
"littlerchicken": "Robin Cornett",
"runciters": "runciters",
"ryan": "Ryan Boren",
"welcher": "Ryan Welcher",
"soean": "S&#246;ren W&#252;nsch",
"sagarkbhatt": "Sagar Bhatt",
"sagarjadhav": "Sagar Jadhav",
"sagarprajapati": "Sagar Prajapati",
"sa3idho": "Said El Bakkali",
"salcode": "Sal Ferrarello",
"samantha-miller": "Samantha Miller",
"samikeijonen": "Sami Keijonen",
"samuelsidler": "Samuel Sidler",
"sanketparmar": "Sanket Parmar",
"sathyapulse": "Sathiya Venkatesan",
"coffee2code": "Scott Reilly",
"seanchayes": "Sean Hayes",
"sebastianpisula": "Sebastian Pisula",
"sfpt": "sfpt",
"sgolemon": "sgolemon",
"shadyvb": "Shady Sharaf",
"shanee": "shanee",
"shashwatmittal": "Shashwat Mittal",
"shulard": "shulard",
"nomnom99": "Siddharth Thevaril",
"printsachen1": "Silvio Endruhn",
"slbmeh": "slbmeh",
"sboisvert": "St&#233;phane Boisvert",
"sstoqnov": "Stanimir Stoyanov",
"stephdau": "Stephane Daury (stephdau)",
"netweb": "Stephen Edgar",
"stephenharris": "Stephen Harris",
"shazahm1hotmailcom": "Steven",
"stevenkword": "Steven Word",
"stormrockwell": "Storm Rockwell",
"sudar": "Sudar Muthu",
"supercoder": "Supercoder",
"cybr": "Sybre Waaijer",
"szaqal21": "szaqal21",
"gonom9": "Taegon Kim",
"miyauchi": "Takayuki Miyauchi",
"takayukister": "Takayuki Miyoshi",
"technopolitica": "technopolitica",
"tejas5989": "tejas5989",
"tellyworth": "Tellyworth",
"terwdan": "terwdan",
"tharsheblows": "tharsheblows",
"themiked": "theMikeD",
"thepelkus": "thepelkus",
"tfrommen": "Thorsten Frommen",
"timmydcrawford": "Timmy Crawford",
"timothyblynjacobs": "Timothy Jacobs",
"timph": "timph",
"tmatsuur": "tmatsuur",
"topher1kenobe": "Topher",
"wpsmith": "Travis Smith",
"triplejumper12": "triplejumper12",
"truongwp": "truongwp",
"grapplerulrich": "Ulrich",
"utkarshpatel": "Utkarsh",
"vaishuagola27": "vaishaliagola27",
"vortfu": "vortfu",
"reidbusi": "Wise Builds Software",
"wpfo": "wpfo",
"xrmx": "xrmx",
"ze3kr": "ze3kr",
"chesio": "Česlav Przywara"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"https://squirrelmail.org/"
],
[
"Color Animations",
"https://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"Horde Text Diff",
"https://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"https://jquery.com/"
],
[
"jQuery UI",
"https://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"https://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"https://github.com/pvulgaris/jquery.suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"https://www.phpclasses.org/package/1743-PHP-FTP-client-in-pure-PHP.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"Requests",
"http://requests.ryanmccue.info/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"https://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "4.8"
}
}

1003
inc/credits/json/4.9.json Normal file

File diff suppressed because it is too large Load diff

912
inc/credits/json/5.0.json Normal file
View file

@ -0,0 +1,912 @@
{
"groups": {
"core-developers": {
"name": "Noteworthy Contributors",
"type": "titles",
"shuffle": false,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Release Lead"
],
"allancole": [
"Allan Cole",
"",
"allancole",
"Release Lead"
],
"antpb": [
"Anthony Burchell",
"",
"antpb",
"Release Lead"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Release Lead"
],
"chanthaboune": [
"Josepha Haden Chomphosy",
"",
"chanthaboune",
"Release Lead"
],
"laurelfulford": [
"Laurel Fulford",
"",
"laurelfulford",
"Release Lead"
],
"omarreiss": [
"Omar Reiss",
"",
"omarreiss",
"Release Lead"
],
"danielbachhuber": [
"Daniel Bachhuber",
"",
"danielbachhuber",
"Release Lead"
],
"matveb": [
"Matías Ventura",
"",
"matveb",
"Release Lead"
],
"mcsf": [
"Miguel Fonseca",
"",
"mcsf",
"Release Lead"
],
"karmatosed": [
"Tammie Lister",
"",
"karmatosed",
"Release Lead"
],
"lonelyvegan": [
"Matthew Riley MacPherson",
"",
"lonelyvegan",
"Release Lead"
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
"Core Developer"
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
"Core Developer"
],
"aduth": [
"Andrew Duthie",
"",
"aduth",
"Core Developer"
],
"bpayton": [
"Brandon Payton",
"",
"bpayton",
"Core Developer"
],
"gziolo": [
"Grzegorz Ziółkowski",
"",
"gziolo",
"Core Developer"
],
"iseulde": [
"Ella Iseulde Van Dorpe",
"",
"iseulde",
"Core Developer"
],
"Joen": [
"Joen Asmussen",
"",
"Joen",
"Core Developer"
],
"jorgefilipecosta": [
"Jorge Costa",
"",
"jorgefilipecosta",
"Core Developer"
],
"talldanwp": [
"Daniel Richards",
"",
"talldanwp",
"Core Developer"
],
"youknowriad": [
"Riad Benguella",
"",
"youknowriad",
"Core Developer"
],
"noisysocks": [
"Robert Anderson",
"",
"noisysocks",
"Core Developer"
],
"desrosj": [
"Jonathan Desrosiers",
"",
"desrosj",
"Core Developer"
],
"netweb": [
"Stephen Edgar",
"",
"netweb",
""
],
"JoshuaWold": [
"Joshua Wold",
"",
"JoshuaWold",
""
],
"chrisvanpatten": [
"Chris Van Patten",
"",
"chrisvanpatten",
""
],
"notnownikki": [
"Nicola Heald",
"",
"notnownikki",
""
],
"mkaz": [
"Marcus Kazmierczak",
"",
"mkaz",
""
],
"dmsnell": [
"Dennis Snell",
"",
"dmsnell",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"davidakennedy": [
"David Kennedy",
"",
"davidakennedy",
""
],
"atimmer": [
"Anton Timmermans",
"",
"atimmer",
""
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
],
"herregroen": [
"Herre Groen",
"",
"herregroen",
""
],
"peterwilsoncc": [
"Peter Wilson",
"",
"peterwilsoncc",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"kadamwhite": [
"K.Adam White",
"",
"kadamwhite",
""
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
],
"flixos90": [
"Felix Arntz",
"",
"flixos90",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
],
"boonebgorges": [
"Boone Gorges",
"",
"boonebgorges",
""
],
"joemcgill": [
"Joe McGill",
"",
"joemcgill",
""
],
"kirasong": [
"Kira Song",
"",
"kirasong",
""
],
"kjellr": [
"Kjell Reigstad",
"",
"kjellr",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"5.0"
],
"type": "list",
"data": {
"abdullahramzan": "Abdullah Ramzan",
"abdulwahab610": "Abdul Wahab",
"abhijitrakas": "Abhijit Rakas",
"afraithe": "afraithe",
"ahmadawais": "ahmadawais",
"mrahmadawais": "Ahmad Awais",
"airathalitov": "AiratTop",
"ajitbohra": "Ajit Bohra",
"schlessera": "Alain Schlesser",
"albertomedina": "Alberto Medina",
"aldavigdis": "Alda Vigd&#237;s",
"babaevan": "Alexander Babaev",
"alexis": "Alexis",
"alexislloyd": "Alexis Lloyd",
"akirk": "Alex Kirk",
"alexsanford1": "Alex Sanford",
"arush": "Amanda Rush",
"amedina": "amedina",
"nosolosw": "Andr&#233;",
"kallehauge": "Andr&#233; Kallehauge",
"andreamiddleton": "Andrea Middleton",
"andreiglingeanu": "andreiglingeanu",
"euthelup": "Andrei Lupu",
"sumobi": "Andrew Munro",
"anevins": "Andrew Nevins",
"azaozz": "Andrew Ozz",
"androb": "Andrew Roberts",
"andrewserong": "Andrew Serong",
"andrewtaylor-1": "Andrew Taylor",
"apeatling": "Andy Peatling",
"ameeker": "Angie Meeker",
"annaharrison": "Anna Harrison",
"arnaudban": "ArnaudBan",
"arshidkv12": "Arshid",
"aprakasa": "Arya Prakasa",
"artisticasad": "Asad Shahbaz",
"mrasharirfan": "Ashar Irfan",
"asvinballoo": "Asvin Balloo",
"atanasangelovdev": "Atanas Angelov",
"bandonrandon": "B.",
"bcolumbia": "bcolumbia",
"caxco93": "Benjamin Eyzaguirre",
"benjamin_zekavica": "Benjamin Zekavica",
"benlk": "Ben Keith",
"blowery": "Ben Lowery",
"bernhard-reiter": "bernhard-reiter",
"kau-boy": "Bernhard Kau",
"betsela": "betsela",
"bhargavmehta": "Bhargav Mehta",
"birgire": "Birgir Erlendsson (birgire)",
"bph": "Birgit Pauli-Haack",
"bobbingwide": "bobbingwide",
"boblinthorst": "Bob Linthorst",
"bradyvercher": "Brady Vercher",
"kraftbj": "Brandon Kraft",
"brentswisher": "Brent Swisher",
"briannaorg": "briannaorg",
"technosiren": "Brianna Privett",
"bronsonquick": "Bronson Quick",
"burhandodhy": "Burhan Nasir",
"icaleb": "Caleb Burks",
"cantothemes": "CantoThemes",
"poena": "Carolina Nymark",
"cathibosco": "cathibosco",
"chetan200891": "Chetan Prajapati",
"chetansatasiya": "chetansatasiya",
"ketuchetan": "Chetan Satasiya",
"chouby": "Chouby",
"chriskmnds": "chriskmnds",
"chrisl27": "Chris Lloyd",
"crunnells": "Chris Runnells",
"pixelverbieger": "Christian Sabo",
"christophherr": "Christoph Herr",
"claudiosanches": "Claudio Sanches",
"coderkevin": "coderkevin",
"copons": "Copons",
"courtney0burton": "courtney0burton",
"mitogh": "Crisoforo Gaspar",
"littlebigthing": "Csaba (LittleBigThings)",
"csabotta": "csabotta",
"mrmadhat": "Daniel Gregory",
"danielhw": "danielhw",
"danieltj": "danieltj",
"daniloercoli": "daniloercoli",
"dannycooper": "DannyCooper",
"nerrad": "Darren Ethier (nerrad)",
"dsawardekar": "Darshan Sawardekar",
"davemoran118": "davemoran118",
"dryanpress": "Dave Ryan",
"davidbinda": "David Biňovec",
"dcavins": "David Cavins",
"davidherrera": "davidherrera",
"dlh": "David Herrera",
"davidsword": "David Sword",
"jdtrower": "David Trower",
"davisshaver": "Davis Shaver",
"dciso": "dciso",
"dingo_d": "Denis Žoljom",
"dsmart": "Derek Smart",
"designsimply": "designsimply",
"dlocc": "Devin Walker",
"dfangstrom": "dfangstrom",
"dhanendran": "Dhanendran Rajagopal",
"diegoliv": "Diego de Oliveira",
"diegoreymendez": "diegoreymendez",
"dd32": "Dion Hulse",
"dency": "Dixita Dusara",
"dixitadusara": "Dixita Dusara Gohil",
"donnapep": "Donna Peplinskie (a11n)",
"dsifford": "dsifford",
"duanestorey": "Duane Storey",
"elrae": "Earle Davies",
"edpittol": "Eduardo Pittol",
"chopinbach": "Edwin Cromley",
"ehg": "ehg",
"electricfeet": "ElectricFeet",
"eliorivero": "Elio Rivero",
"epointal": "Elisabeth Pointal",
"enodekciw": "enodekciw",
"ephoxjames": "ephoxjames",
"ephoxmogran": "ephoxmogran",
"sewmyheadon": "Eric Amundson",
"ericnmurphy": "ericnmurphy",
"folletto": "Erin 'Folletto' Casali",
"etoledom": "etoledom",
"circlecube": "Evan Mullins",
"fabiankaegy": "Fabian K&#228;gy",
"fabs_pim": "fabs_pim",
"faishal": "faishal",
"floriansimeth": "Florian Simeth",
"foobar4u": "foobar4u",
"foreverpinetree": "foreverpinetree",
"frank-klein": "Frank Klein",
"fuyuko": "fuyuko",
"gma992": "Gabriel Maldonado",
"garrett-eclipse": "Garrett Hyder",
"garyj": "Gary Jones",
"garyjones": "garyjones",
"doomwaxer": "Gary Thayer",
"soulseekah": "Gennady Kovshenin",
"georgeh": "georgeh",
"revgeorge": "George Hotelling",
"babbardel": "George Olaru",
"georgestephanis": "George Stephanis",
"kloon": "Gerhard Potgieter",
"gnif": "gnif",
"goldsounds": "goldsounds",
"grappler": "Grappler",
"greg-raven": "Greg Raven",
"milesdelliott": "Grow",
"bordoni": "Gustavo Bordoni",
"hardeepasrani": "Hardeep Asrani",
"hblackett": "hblackett",
"hedgefield": "hedgefield",
"helen": "Helen Hou-Sandi",
"luehrsen": "Hendrik Luehrsen",
"herbmiller": "herbmiller",
"hideokamoto": "hide",
"hugobaeta": "Hugo Baeta",
"ianbelanger": "Ian Belanger",
"iandunn": "Ian Dunn",
"ianstewart": "ianstewart",
"idpokute": "idpokute",
"igorsch": "Igor",
"imonly_ik": "Imran Khalid",
"intronic": "intronic",
"ipstenu": "Ipstenu (Mika Epstein)",
"ireneyoast": "Irene Strikkers",
"ismailelkorchi": "Ismail El Korchi",
"israelshmueli": "israelshmueli",
"jd55": "J.D. Grimes",
"jdgrimes": "J.D. Grimes",
"jakept": "Jacob Peattie",
"jagnew": "jagnew",
"jahvi": "jahvi",
"jnylen0": "James Nylen",
"jamestryon": "jamestryon",
"jamiehalvorson": "jamiehalvorson",
"janalwin": "janalwin",
"jdembowski": "Jan Dembowski",
"jsnajdr": "Jarda Snajdr",
"jaswrks": "Jason Caldwell",
"octalmage": "Jason Stallings",
"yingling017": "Jason Yingling",
"vengisss": "Javier Villanueva",
"jhoffm34": "Jay Hoffmann",
"audrasjb": "Jb Audras",
"khleomix": "JC Palmes",
"jblz": "Jeff Bowen",
"jeffpaul": "Jeffrey Paul",
"jeremyfelt": "Jeremy Felt",
"jipmoors": "Jip Moors",
"jobthomas": "Job a11n",
"sephsekla": "Joe Bailey-Roberts",
"joedolson": "Joe Dolson",
"joehoyle": "Joe Hoyle",
"joemaller": "Joe Maller",
"j-falk": "Johan Falk",
"johndyer": "johndyer",
"johnny5": "John Godley",
"johnjamesjacoby": "John James Jacoby",
"johnpixle": "JohnPixle",
"johnwatkins0": "John Watkins",
"jomurgel": "jomurgel",
"belcherj": "Jonathan Belcher",
"sirjonathan": "Jonathan Wold",
"spacedmonkey": "Jonny Harris",
"jonsurrell": "Jon Surrell",
"joostdevalk": "Joost de Valk",
"koke": "Jorge Bernal",
"ieatwebsites": "Jose Fremaint",
"shelob9": "Josh Pollock",
"jvisick77": "Josh Visick",
"joyously": "Joy",
"jryancard": "jryancard",
"julienmelissas": "JulienMelissas",
"jrf": "Juliette Reinders Folmer",
"kopepasah": "Justin Kopepasah",
"kalpshit": "KalpShit Akabari",
"codebykat": "Kat Hagan",
"ryelle": "Kelly Choyce-Dwan",
"gwwar": "Kerry Liu",
"kevinwhoffman": "Kevin Hoffman",
"ixkaito": "Kite",
"kluny": "kluny",
"obenland": "Konstantin Obenland",
"xkon": "Konstantinos Xenos",
"krutidugade": "krutidugade",
"charlestonsw": "Lance Cleveland",
"lancewillett": "Lance Willett",
"notlaura": "Lara Schenck",
"leahkoerper": "leahkoerper",
"0mirka00": "Lena Morita",
"lloyd": "Lloyd",
"loicblascos": "Lo&#239;c Blascos",
"lucasrolff": "LucasRolff",
"lucasstark": "Lucas Stark",
"luigipulcini": "luigipulcini",
"lukecavanagh": "Luke Cavanagh",
"lucaskowalski": "Luke Kowalski",
"lukepettway": "Luke Pettway",
"luminus": "Luminus Alabi",
"lynneux": "lynneux",
"macbookandrew": "macbookandrew",
"maedahbatool": "Maedah Batool",
"mahdiyazdani": "Mahdi Yazdani",
"mahmoudsaeed": "Mahmoud Saeed",
"travel_girl": "Maja Benke",
"tyxla": "Marin Atanasov",
"clorith": "Marius L. J.",
"mariusvw": "mariusvw",
"markjaquith": "Mark Jaquith",
"vindl": "Marko Andrijasevic",
"mapk": "Mark Uraine",
"martinlugton": "martinlugton",
"m-e-h": "Marty Helmick",
"imath": "Mathieu Viet",
"mathiu": "mathiu",
"webdevmattcrom": "Matt Cromwell",
"mattgeri": "MattGeri",
"mboynes": "Matthew Boynes",
"mattheu": "Matthew Haines-Young",
"maurobringolf": "maurobringolf",
"maximebj": "maximebj",
"mayukojpn": "Mayo Moriyama",
"meetjey": "meetjey",
"b-07": "Mehedi Hasan",
"mendezcode": "mendezcode",
"woodent": "Micah Wood",
"wpscholar": "Micah Wood",
"mdawaffe": "Michael Adams (mdawaffe)",
"michaelhull": "Michael Hull",
"mnelson4": "Michael Nelson",
"mizejewski": "Michele Mizejewski",
"jbpaul17": "Migrated to @jeffpaul",
"mmtr86": "Miguel Torres",
"mihaivalentin": "mihaivalentin",
"stubgo": "Miina Sikk",
"simison": "Mikael Korpela",
"mihai2u": "Mike Crantea",
"mike-haydon-swo": "Mike Haydon",
"mikehaydon": "mikehaydon",
"mikeselander": "Mike Selander",
"mikeyarce": "Mikey Arce",
"milana_cap": "Milana Cap",
"dimadin": "Milan Dinić",
"gonzomir": "Milen Petrinski - Gonzo",
"mimo84": "mimo84",
"boemedia": "Monique Dubbelman",
"mor10": "Morten Rand-Hendriksen",
"mostafas1990": "Mostafa Soufi",
"motleydev": "motleydev",
"mpheasant": "mpheasant",
"mrwweb": "mrwweb",
"msdesign21": "msdesign21",
"mtias": "mtias",
"desideveloper": "Muhammad Irfan",
"warmarks": "Muhammad Ismail",
"mukesh27": "Mukesh Panchal",
"munirkamal": "Munir Kamal",
"mmaumio": "Muntasir M. Aumio",
"mzorz": "mzorz",
"nagayama": "nagayama",
"nfmohit": "Nahid Ferdous Mohit",
"nao": "Naoko Takano",
"napy84": "napy84",
"nateconley": "nateconley",
"nativeinside": "Native Inside",
"greatislander": "Ned Zimmerman",
"buzztone": "Neil Murray",
"nicbertino": "nic.bertino",
"celloexpressions": "Nick Halsey",
"nielslange": "Niels Lange",
"nikschavan": "Nikhil Chavan",
"nbachiyski": "Nikolay Bachiyski",
"nitrajka": "nitrajka",
"njpanderson": "njpanderson",
"nshki": "nshki",
"oskosk": "Osk",
"panchen": "panchen",
"pareshradadiya-1": "Paresh Radadiya",
"swissspidy": "Pascal Birchler",
"pbearne": "Paul Bearne",
"pauldechov": "Paul Dechov",
"paulstonier": "Paul Stonier",
"paulwilde": "Paul Wilde",
"pedromendonca": "Pedro Mendon&#231;a",
"pglewis": "pglewis",
"tyrannous": "Philipp Bammes",
"strategio": "Pierre Sylvestre",
"piersb": "piersb",
"wizzard_": "Pieter Daalder",
"pilou69": "pilou69",
"delawski": "Piotr Delawski",
"postphotos": "postphotos",
"potbot": "potbot",
"prtksxna": "Prateek Saxena",
"pratikthink": "Pratik Kumar",
"presskopp": "Presskopp",
"psealock": "psealock",
"ptasker": "ptasker",
"rachelmcr": "Rachel",
"rachelbaker": "Rachel Baker",
"rahmon": "Rahmon",
"rahulsprajapati": "Rahul Prajapati",
"rakshans1": "rakshans1",
"superpoincare": "Ramanan",
"rahmohn": "Ramon Ahnert",
"ramonopoly": "ramonopoly",
"lamosty": "Rastislav Lamos",
"rianrietveld": "Rian Rietveld",
"richsalvucci": "richsalvucci",
"richtabor": "Rich Tabor",
"rickalee": "Ricky Lee Whittemore",
"riddhiehta02": "Riddhi Mehta",
"rileybrook": "rileybrook",
"deviodigital": "Robert DeVore",
"sanchothefat": "Robert O'Rourke",
"robertsky": "robertsky",
"_dorsvenabili": "Rocio Valdivia",
"rohittm": "Rohit Motwani",
"magicroundabout": "Ross Wintle",
"rmccue": "Ryan McCue",
"welcher": "Ryan Welcher",
"ryo511": "ryo511",
"soean": "S&#246;ren W&#252;nsch",
"sagarprajapati": "Sagar Prajapati",
"samikeijonen": "Sami Keijonen",
"otto42": "Samuel Wood (Otto)",
"smyoon315": "Sang-Min Yoon",
"tinkerbelly": "sarah semark",
"scottmweaver": "Scott Weaver",
"sergeybiryukov": "Sergey Biryukov",
"sergioestevao": "SergioEstevao",
"azchughtai": "Shahjehan Ali",
"shaileesheth": "Shailee Sheth",
"sharaz": "Sharaz Shahid",
"shaunandrews": "shaunandrews",
"giventofly76": "Shaun sc",
"shooper": "Shawn Hooper",
"shenkj": "shenkj",
"sikander": "sikander",
"pross": "Simon Prosser",
"siriokun": "siriokun",
"sirreal": "sirreal",
"sisanu": "Sisanu",
"butimnoexpert": "Slushman",
"ssousa": "Sofia Sousa",
"spocke": "spocke",
"stagger-lee": "Stagger Lee",
"sstoqnov": "Stanimir Stoyanov",
"hypest": "Stefanos Togoulidis",
"stevehenty": "Steve Henty",
"stuartfeldt": "stuartfeldt",
"subrataemfluence": "Subrata Sarkar",
"tacrapo": "tacrapo",
"talldan": "talldan",
"tammie_l": "Tammie Lister",
"tellyworth": "Tellyworth",
"themeroots": "ThemeRoots",
"tfrommen": "Thorsten Frommen",
"thrijith": "Thrijith Thankachan",
"timgardner": "timgardner",
"timmydcrawford": "Timmy Crawford",
"timothyblynjacobs": "Timothy Jacobs",
"tmatsuur": "tmatsuur",
"tobifjellner": "tobifjellner (Tor-Bjorn &#8220;Tobi&#8221; Fjellner)",
"tjnowell": "Tom J Nowell",
"skithund": "Toni Viemer&#246;",
"torontodigits": "TorontoDigits",
"toro_unit": "Toro_Unit (Hiroshi Urabe)",
"mirucon": "Toshihiro Kanai",
"itowhid06": "Towhidul I Chowdhury",
"travislopes": "Travis Lopes",
"truongwp": "truongwp",
"tjfunke001": "Tunji",
"twoelevenjay": "twoelevenjay",
"grapplerulrich": "Ulrich",
"vaishalipanchal": "Vaishali Panchal",
"vishalkakadiya": "Vishal Kakadiya",
"vtrpldn": "Vitor Paladini",
"volodymyrkolesnykov": "Volodymyr Kolesnykov",
"walterebert": "Walter Ebert",
"webmandesign": "WebMan Design &#124; Oliver Juhas",
"websupporter": "websupporter",
"westonruter": "Weston Ruter",
"earnjam": "Will Earnhardt",
"somtijds": "Willem Prins",
"williampatton": "williampatton",
"skorasaurus": "Will Skora",
"willybahuaud": "Willy Bahuaud",
"yahil": "Yahil Madakiya",
"yingles": "yingles",
"yoavf": "Yoav Farhi",
"fierevere": "Yui",
"youthkee": "Yusuke Takahashi",
"ze3kr": "ze3kr",
"zebulan": "Zebulan Stanphill",
"ziyaddin": "Ziyaddin Sadygly",
"marina_wp": "Марина Титова",
"mypacecreator": "けい (Kei Nomura)"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Babel Polyfill",
"https://babeljs.io/docs/en/babel-polyfill"
],
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"https://squirrelmail.org/"
],
[
"Closest",
"https://github.com/jonathantneal/closest"
],
[
"CodeMirror",
"https://codemirror.net/"
],
[
"Color Animations",
"https://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"FormData",
"https://github.com/jimmywarting/FormData"
],
[
"Horde Text Diff",
"https://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"https://jquery.com/"
],
[
"jQuery UI",
"https://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"https://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"https://github.com/pvulgaris/jquery.suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Lodash",
"https://lodash.com/"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"Moment",
"http://momentjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"https://www.phpclasses.org/package/1743-PHP-FTP-client-in-pure-PHP.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"React",
"https://reactjs.org/"
],
[
"Redux",
"https://redux.js.org/"
],
[
"Requests",
"http://requests.ryanmccue.info/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"https://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"whatwg-fetch",
"https://github.com/github/fetch"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "5.0"
}
}

962
inc/credits/json/5.1.json Normal file
View file

@ -0,0 +1,962 @@
{
"groups": {
"core-developers": {
"name": "Noteworthy Contributors",
"type": "titles",
"shuffle": false,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Release Lead"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Release Lead"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
"Core Developer"
],
"flixos90": [
"Felix Arntz",
"",
"flixos90",
"Core Developer"
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
"Core Developer"
],
"peterwilsoncc": [
"Peter Wilson",
"",
"peterwilsoncc",
"Core Developer"
],
"jrf": [
"Juliette Reinders Folmer",
"",
"jrf",
"Core Developer"
],
"desrosj": [
"Jonathan Desrosiers",
"",
"desrosj",
"Core Developer"
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
],
"schlessera": [
"Alain Schlesser",
"",
"schlessera",
""
],
"soulseekah": [
"Gennady Kovshenin",
"",
"soulseekah",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"ryelle": [
"Kelly Dwan",
"",
"ryelle",
""
],
"chetan200891": [
"Chetan Prajapati",
"",
"chetan200891",
""
],
"mukesh27": [
"Mukesh Panchal",
"",
"mukesh27",
""
],
"birgire": [
"Birgir Erlendsson",
"",
"birgire",
""
],
"netweb": [
"Stephen Edgar",
"",
"netweb",
""
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
""
],
"atimmer": [
"Anton Timmermans",
"",
"atimmer",
""
],
"herregroen": [
"Herre Groen",
"",
"herregroen",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"kadamwhite": [
"K.Adam White",
"",
"kadamwhite",
""
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"DrewAPicture": [
"Drew Jaynes",
"",
"DrewAPicture",
""
],
"boonebgorges": [
"Boone Gorges",
"",
"boonebgorges",
""
],
"joemcgill": [
"Joe McGill",
"",
"joemcgill",
""
],
"subrataemfluence": [
"Subrata Sarkar",
"",
"subrataemfluence",
""
],
"ireneyoast": [
"Irene Strikkers",
"",
"ireneyoast",
""
],
"audrasjb": [
"Jb Audras",
"",
"audrasjb",
""
],
"Rarst": [
"Andrey Savchenko",
"",
"Rarst",
""
],
"omarreiss": [
"Omar Reiss",
"",
"omarreiss",
""
],
"mcsf": [
"Miguel Fonseca",
"",
"mcsf",
""
],
"gziolo": [
"Grzegorz Ziółkowski",
"",
"gziolo",
""
],
"youknowriad": [
"Riad Benguella",
"",
"youknowriad",
""
],
"iseulde": [
"Ella Van Durpe",
"",
"iseulde",
""
],
"aduth": [
"Andrew Duthie",
"",
"aduth",
""
],
"jorgefilipecosta": [
"Jorge Costa",
"",
"jorgefilipecosta",
""
],
"mkaz": [
"Marcus Kazmierczak",
"",
"mkaz",
""
],
"kjellr": [
"Kjell Reigstad",
"",
"kjellr",
""
],
"nosolosw": [
"Andrés Maneiro",
"",
"nosolosw",
""
],
"TimothyBlynJacobs": [
"Timothy Jacobs",
"",
"TimothyBlynJacobs",
""
],
"nerrad": [
"Darren Ethier",
"",
"nerrad",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"5.1"
],
"type": "list",
"data": {
"0x6f0": "0x6f0",
"1naveengiri": "1naveengiri",
"1265578519-1": "1265578519",
"aardrian": "aardrian",
"abdullahramzan": "Abdullah Ramzan",
"abhayvishwakarma": "Abhay Vishwakarma",
"abhijitrakas": "Abhijit Rakas",
"ibachal": "Achal Jain",
"achbed": "achbed",
"adamsilverstein": "Adam Silverstein",
"ajitbohra": "Ajit Bohra",
"aldavigdis": "Alda Vigd&#237;s",
"alejandroxlopez": "alejandroxlopez",
"alexvorn2": "Alexandru Vornicescu",
"xknown": "Alex Concha",
"alexgso": "alexgso",
"alexstine": "Alex Stine",
"allancole": "allancole",
"allendav": "Allen Snook",
"alvarogois": "Alvaro Gois dos Santos",
"acirujano": "Ana Cirujano",
"anantajitjg": "Anantajit JG",
"andg": "Andrea Gandino",
"andreamiddleton": "Andrea Middleton",
"andrei0x309": "andrei0x309",
"andreiglingeanu": "andreiglingeanu",
"andrewza": "Andrew Lima",
"nacin": "Andrew Nacin",
"anevins": "Andrew Nevins",
"afragen": "Andy Fragen",
"andizer": "Andy Meerwaldt",
"la-geek": "Angelika Reisiger",
"antaltettinger": "Antal Tettinger",
"antipole": "Antipole",
"antonioeatgoat": "antonioeatgoat",
"avillegasn": "Antonio Villegas",
"vanyukov": "Anton Vanyukov",
"aranwer104": "Anwer AR",
"aryamaaru": "Arun",
"mrasharirfan": "Ashar Irfan",
"ashokrd2013": "ashokrd2013",
"ayeshrajans": "Ayesh Karunaratne",
"ayubadiputra": "Ayub Adiputra",
"bandonrandon": "B.",
"barryceelen": "Barry Ceelen",
"behzod": "Behzod Saidov",
"drywallbmb": "Ben Byrne",
"benhuberman": "benhuberman",
"benoitchantre": "Benoit Chantre",
"benvaassen": "benvaassen",
"bhargavmehta": "Bhargav Mehta",
"bikecrazyy": "bikecrazyy",
"bjornw": "BjornW",
"blair-jersyer": "Blair jersyer",
"blobfolio": "Blobfolio",
"bobbingwide": "bobbingwide",
"boblinthorst": "Bob Linthorst",
"bor0": "Boro Sitnikovski",
"bradleyt": "Bradley Taylor",
"bradparbs": "Brad Parbs",
"bramheijmink": "bramheijmink",
"kraftbj": "Brandon Kraft",
"bpayton": "Brandon Payton",
"brentswisher": "Brent Swisher",
"rzen": "Brian Richards",
"bridgetwillard": "Bridget Willard",
"bruceallen": "Bruce (a11n)",
"burhandodhy": "Burhan Nasir",
"burlingtonbytes": "Bytes.co",
"icaleb": "Caleb Burks",
"calin": "Calin Don",
"campusboy1987": "campusboy",
"poena": "Carolina Nymark",
"carolinegeven": "carolinegeven",
"ccismaru": "ccismaru",
"chasewg": "chasewg",
"chouby": "Chouby",
"chrico": "ChriCo",
"chriscct7": "chriscct7",
"boda1982": "Christopher Spires",
"claudiu": "claudiu",
"cliffpaulick": "Clifford Paulick",
"codegrau": "codegrau",
"coleh": "coleh",
"conner_bw": "conner_bw",
"coreymckrill": "Corey McKrill",
"croce": "croce",
"littlebigthing": "Csaba (LittleBigThings)",
"clarinetlord": "Cyrus Collier",
"danielbachhuber": "Daniel Bachhuber",
"mte90": "Daniele Scasciafratte",
"mrmadhat": "Daniel Gregory",
"daniel-koskinen": "Daniel Koskinen",
"talldanwp": "Daniel Richards",
"danieltj": "danieltj",
"danimalbrown": "danimalbrown",
"dannycooper": "DannyCooper",
"dannydehaan": "Danny de Haan",
"darko-a7": "Darko A7",
"davepullig": "Dave Pullig",
"davidakennedy": "David A. Kennedy",
"davidanderson": "David Anderson / Team Updraft",
"davidbinda": "David Biňovec",
"desertsnowman": "David Cramer",
"dlh": "David Herrera",
"dglingren": "David Lingren",
"dshanske": "David Shanske",
"superdav42": "David Stone",
"dekervit": "dekervit",
"denisco": "Denis Yanchevskiy",
"dingo_d": "Denis Žoljom",
"dmsnell": "Dennis Snell",
"designsimply": "designsimply",
"dfangstrom": "dfangstrom",
"dhanendran": "Dhanendran Rajagopal",
"dharm1025": "Dharmesh Patel",
"dhavalkasvala": "Dhaval Kasavala",
"dhruvin": "Dhruvin",
"diedeexterkate": "DiedeExterkate",
"dschalk": "Dieter",
"dilipbheda": "Dilip Bheda",
"dd32": "Dion Hulse",
"dipeshkakadiya": "Dipesh Kakadiya",
"donncha": "Donncha O Caoimh (a11n)",
"dontstealmyfish": "dontstealmyfish",
"drivingralle": "Drivingralle",
"dsifford": "dsifford",
"eamax": "eamax",
"metalandcoffee": "Ebonie Butler",
"edo888": "edo888",
"electricfeet": "ElectricFeet",
"edocev": "Emil Dotsev",
"ericlewis": "Eric Andrew Lewis",
"ericdaams": "Eric Daams",
"erich_k4wp": "Erich Munz",
"ethitter": "Erick Hitter",
"ericmeyer": "EricMeyer",
"etoledom": "etoledom",
"dyrer": "Evangelos Athanasiadis",
"evansolomon": "Evan Solomon",
"faisal03": "Faisal Alvi",
"felipeelia": "Felipe Elia",
"fclaussen": "Fernando Claussen",
"flipkeijzer": "flipkeijzer",
"mista-flo": "Florian TIAR",
"fpcsjames": "FPCSJames",
"piewp": "fperdaan",
"frank-klein": "Frank Klein",
"fuchsws": "fuchsws",
"fullyint": "fullyint",
"gma992": "Gabriel Maldonado",
"garetharnold": "Gareth",
"garrett-eclipse": "Garrett Hyder",
"garyj": "Gary Jones",
"kloon": "Gerhard Potgieter",
"girishpanchal": "Girish Panchal",
"gm_alex": "GM_Alex",
"gnif": "gnif",
"graymouser": "graymouser",
"greg": "greg",
"guido07111975": "Guido",
"gutendev": "GutenDev &#124; Ⓦ ✍㊙",
"hafiz": "Hafiz Rahman",
"hailite": "Hai Zheng&#226;&#353;&#161;",
"hansjovisyoast": "Hans-Christiaan Braun",
"hardeepasrani": "Hardeep Asrani",
"hardik-amipara": "Hardik",
"harsh175": "Harsh Patel",
"haruharuharuby": "haruharuharuby",
"idea15": "Heather Burns",
"hedgefield": "hedgefield",
"helen": "Helen Hou-Sandi",
"henrywright": "Henry Wright",
"hitendra-chopda": "Hitendra Chopda",
"ianbelanger": "Ian Belanger",
"iandunn": "Ian Dunn",
"ibantxillo": "Iban Vaquero",
"iceable": "Iceable",
"igmoweb": "Ignacio Cruz Moreno",
"igorsch": "Igor",
"ibenic": "Igor Benic",
"ionvv": "Ion Vrinceanu",
"isabel104": "isabel104",
"ishitaka": "ishitaka",
"meatman89fs": "Ivan Mudrik",
"jdgrimes": "J.D. Grimes",
"jackreichert": "Jack Reichert",
"jakept": "Jacob Peattie",
"whyisjake": "Jake Spurlock",
"jnylen0": "James Nylen",
"janak007": "janak Kaneriya",
"janalwin": "janalwin",
"jankimoradiya": "Janki Moradiya",
"janthiel": "janthiel",
"jaswrks": "Jason Caldwell",
"javorszky": "javorszky",
"jaydeep-rami": "Jaydeep Rami",
"jaymanpandya": "Jayman Pandya",
"jfarthing84": "Jeff Farthing",
"cheffheid": "Jeffrey de Wit",
"jeffpaul": "Jeffrey Paul",
"jmdodd": "Jennifer M. Dodd",
"miss_jwo": "Jenny Wong",
"jeremeylduvall": "Jeremey",
"jeremyfelt": "Jeremy Felt",
"jeherve": "Jeremy Herve",
"jpry": "Jeremy Pry",
"jeremyescott": "Jeremy Scott",
"jesperher": "Jesper V Nielsen",
"professor44": "Jesse Friedman",
"jjcomack": "Jimmy Comack",
"jipmoors": "Jip Moors",
"jirihon": "Jiri Hon",
"joanrho": "joanrho",
"jobthomas": "Job a11n",
"sephsekla": "Joe Bailey-Roberts",
"joedolson": "Joe Dolson",
"joehoyle": "Joe Hoyle",
"joelcj91": "Joel James",
"joen": "Joen A.",
"j-falk": "Johan Falk",
"johnalarcon": "johnalarcon",
"johnny5": "John Godley",
"johnjamesjacoby": "John James Jacoby",
"johnpgreen": "John P. Green",
"johnschulz": "johnschulz",
"jrchamp": "Jonathan Champ",
"joneiseman": "joneiseman",
"spacedmonkey": "Jonny Harris",
"joostdevalk": "Joost de Valk",
"josephscott": "Joseph Scott",
"joshuawold": "Joshua Wold",
"joyously": "Joy",
"jpurdy647": "jpurdy647",
"jrdelarosa": "jrdelarosa",
"jryancard": "jryancard",
"juiiee8487": "Juhi Patel",
"jamosova": "Julia Amosova",
"juliemoynat": "Julie Moynat",
"junaidkbr": "Junaid Ahmed",
"360zen": "justinmaurerdotdev",
"justinsainton": "Justin Sainton",
"jtsternberg": "Justin Sternberg",
"greenshady": "Justin Tadlock",
"kapteinbluf": "kapteinbluf",
"mt8biz": "Kazuto Takeshita",
"keesiemeijer": "keesiemeijer",
"kelvink": "kelvink",
"khaihong": "khaihong",
"kiranpotphode": "Kiran Potphode",
"kirasong": "Kira Schroder",
"ixkaito": "Kite",
"kkarpieszuk": "kkarpieszuk",
"kmeze": "kmeze",
"knutsp": "Knut Sparhell",
"konainm": "konainm",
"obenland": "Konstantin Obenland",
"xkon": "Konstantinos Xenos",
"kristastevens": "kristastevens",
"krutidugade": "krutidugade",
"laghee": "laghee",
"lakenh": "Laken Hafner",
"lancewillett": "Lance Willett",
"lanche86": "lanche86",
"laurelfulford": "laurelfulford",
"lbenicio": "lbenicio",
"leanderiversen": "Leander Iversen",
"leemon": "leemon",
"lenasterg": "lenasterg",
"lisannekluitmans": "Lisanne Kluitmans",
"lizkarkoski": "lizkarkoski",
"lucagrandicelli": "Luca Grandicelli",
"lucasrolff": "LucasRolff",
"luciano-croce": "luciano-croce",
"lukecarbis": "Luke Carbis",
"luminus": "Luminus Alabi",
"mariovalney": "M&#225;rio Valney",
"maartenleenders": "maartenleenders",
"macbookandrew": "macbookandrew",
"palmiak": "Maciek Palmowski",
"travel_girl": "Maja Benke",
"mako09": "Mako",
"tomdxw": "mallorydxw-old",
"manuelaugustin": "Manuel Augustin",
"manuel_84": "manuel_84",
"marcelo2605": "marcelo2605",
"zottto": "Marc Nilius",
"marcomarsala": "marco.marsala",
"marcomartins": "Marco Martins",
"marcwieland95": "marcwieland95",
"clorith": "Marius L. J.",
"mariusvw": "mariusvw",
"mbelchev": "Mariyan Belchev",
"markjaquith": "Mark Jaquith",
"mathieuhays": "mathieuhays",
"imath": "Mathieu Viet",
"webdevmattcrom": "Matt Cromwell",
"mgibbs189": "Matt Gibbs",
"mboynes": "Matthew Boynes",
"lonelyvegan": "Matthew Riley MacPherson",
"sivel": "Matt Martz",
"mattyrob": "Matt Robinson",
"mcmwebsol": "mcmwebsol",
"mensmaximus": "mensmaximus",
"mermel": "mermel",
"wpscholar": "Micah Wood",
"mnelson4": "Michael Nelson",
"michielatyoast": "Michiel Heijmans",
"sebastienthivinfocom": "Migrated to @sebastienserre",
"mmtr86": "Miguel Torres",
"mihaiiceyro": "mihaiiceyro",
"mihdan": "mihdan",
"mikegillihan": "Mike Gillihan",
"mikejolley": "Mike Jolley",
"milana_cap": "Milana Cap",
"dimadin": "Milan Dinić",
"milindmore22": "Milind More",
"mirkoschubert": "mirkoschubert",
"sayedwp": "Mohammad Taqui Sayed",
"monikarao": "Monika Rao",
"boemedia": "Monique Dubbelman",
"xpertone": "Muhammad Kashif",
"lorenzone92": "multiformeingegno",
"mmaumio": "Muntasir M. Aumio",
"munyagu": "munyagu",
"mythemeshop": "MyThemeShop",
"mzorz": "mzorz",
"nadim0988": "Nadim",
"nandorsky": "nandorsky",
"naoki0h": "Naoki Ohashi",
"nao": "Naoko Takano",
"nataliashitova": "nataliashitova",
"nateallen": "Nate Allen",
"nathanatmoz": "Nathan Johnson",
"ndavison": "ndavison",
"greatislander": "Ned Zimmerman",
"nextendweb": "Nextendweb",
"ndiego": "Nick Diego",
"celloexpressions": "Nick Halsey",
"nickmomrik": "Nick Momrik",
"nick_thegeek": "Nick the Geek",
"nahuelmahe": "Nicolas Figueira",
"nicollle": "Nicolle Helgers",
"jainnidhi": "Nidhi Jain",
"nielslange": "Niels Lange",
"nikschavan": "Nikhil Chavan",
"rabmalin": "Nilambar Sharma",
"mrtortai": "Noam Eppel",
"notnownikki": "notnownikki",
"odysseygate": "odyssey",
"bulletdigital": "Oliver Sadler",
"codestor": "Omkar Bhagat",
"othellobloke": "OthelloBloke",
"ov3rfly": "Ov3rfly",
"paaljoachim": "Paal Joachim Romdahl",
"panchen": "panchen",
"parbaugh": "parbaugh",
"xparham": "Parham Ghaffarian",
"swissspidy": "Pascal Birchler",
"casiepa": "Pascal Casier",
"eartboard": "Paul",
"pbearne": "Paul Bearne",
"pbiron": "Paul Biron",
"natacado": "Paul Paradise",
"paulschreiber": "Paul Schreiber",
"pputzer": "pepe",
"walbo": "Petter Walb&#248; Johnsg&#229;rd",
"munklefish": "Phill Healey",
"pskli": "Pierre Sa&#239;kali",
"strategio": "Pierre Sylvestre",
"wizzard_": "Pieter Daalder",
"piyush9100": "Piyush Patel",
"promz": "Pramod Jodhani",
"pmbaldha": "Prashant Baldha",
"pratikkry": "Pratik Kumar",
"pratikthink": "Pratik Kumar",
"precies": "precies",
"nikeo": "presscustomizr",
"presskopp": "Presskopp",
"presslabs": "Presslabs",
"presstigers": "PressTigers",
"programmin": "programmin",
"punit5658": "Punit Patel",
"purnendu": "Purnendu Dash",
"qcmiao": "Qucheng",
"rachelbaker": "Rachel Baker",
"bamadesigner": "Rachel Cherry",
"larrach": "Rachel Peter",
"rafsuntaskin": "Rafsun Chowdhury",
"rahulsprajapati": "Rahul Prajapati",
"cthreelabs": "Raja Mohammed",
"superpoincare": "Ramanan",
"ramiy": "Rami Yushuvaev",
"ramizmanked": "Ramiz Manked",
"ramonopoly": "ramonopoly",
"redcastor": "redcastor",
"remyvv": "remyvv",
"rensw90": "rensw90",
"rhetorical": "rhetorical",
"rianrietveld": "Rian Rietveld",
"iamfriendly": "Rich Tape",
"rickalee": "Ricky Lee Whittemore",
"rinkuyadav999": "Rinku Y",
"rishishah": "Rishi Shah",
"robbie505": "Robbie",
"robdxw": "robdxw",
"noisysocks": "Robert Anderson",
"littlerchicken": "Robin Cornett",
"robinvandervliet": "Robin van der Vliet",
"ravanh": "Rolf Allard van Hagen",
"rmccue": "Ryan McCue",
"welcher": "Ryan Welcher",
"ryotsun": "ryotsun",
"sebastienserre": "S&#233;bastien SERRE",
"soean": "S&#246;ren W&#252;nsch",
"stodorovic": "Sa&#353;a",
"sagarnasit": "Sagar Nasit",
"sasiddiqui": "Sami Ahmed Siddiqui",
"samikeijonen": "Sami Keijonen",
"otto42": "Samuel Wood (Otto)",
"tinkerbelly": "sarah semark",
"scottlee": "Scott Lee",
"coffee2code": "Scott Reilly",
"seanchayes": "Sean Hayes",
"sebakurzyn": "Sebastian Kurzynoswki",
"sebastianpisula": "Sebastian Pisula",
"shamim51": "Shamim Hasan",
"shaneeckert": "Shane Eckert",
"sharaz": "Sharaz Shahid",
"shashwatmittal": "Shashwat Mittal",
"shooper": "Shawn Hooper",
"sherwood": "sherwood",
"shital-patel": "Shital Marakana",
"shivapoudel": "Shiva Poudel",
"pross": "Simon Prosser",
"sjardo": "sjardo",
"skoldin": "skoldin",
"slilley": "slilley",
"slushman": "slushman",
"sonjaleix": "Sonja Leix",
"sonjanyc": "sonjanyc",
"spartank": "spartank",
"spyderbytes": "spyderbytes",
"sstoqnov": "Stanimir Stoyanov",
"metodiew": "Stanko Metodiev",
"stazdotio": "stazdotio",
"stephenharris": "Stephen Harris",
"stevenlinx": "Steven Lin",
"stormrockwell": "Storm Rockwell",
"skostadinov": "Stoyan Kostadinov",
"manikmist09": "Sultan Nasir Uddin",
"swift": "swift",
"takahashi_fumiki": "Takahashi Fumiki",
"miyauchi": "Takayuki Miyauchi",
"karmatosed": "Tammie Lister",
"tlovett1": "Taylor Lovett",
"teddytime": "Ted",
"tellyworth": "Tellyworth",
"terriann": "Terri Ann",
"terwdan": "terwdan",
"tharsheblows": "tharsheblows",
"themezee": "ThemeZee",
"thomasplevy": "Thomas Patrick Levy",
"thomas-vitale": "Thomas Vitale",
"thomaswm": "thomaswm",
"tfrommen": "Thorsten Frommen",
"thrijith": "Thrijith Thankachan",
"tiagohillebrandt": "Tiago Hillebrandt",
"tigertech": "tigertech",
"timhavinga": "Tim Havinga",
"timmydcrawford": "Timmy Crawford",
"tkama": "Timur Kamaev",
"titodevera": "titodevera",
"tz-media": "Tobias Zimpel",
"tobifjellner": "tobifjellner (Tor-Bjorn &#8220;Tobi&#8221; Fjellner)",
"tomharrigan": "TomHarrigan",
"tjnowell": "Tom J Nowell",
"tferry": "Tommy Ferry",
"tonybogdanov": "tonybogdanov",
"torontodigits": "TorontoDigits",
"mirucon": "Toshihiro Kanai",
"itowhid06": "Towhidul I Chowdhury",
"transl8or": "transl8or",
"grapplerulrich": "Ulrich",
"upadalavipul": "upadalavipul",
"usmankhalid": "Usman Khalid",
"utsav72640": "Utsav tilava",
"uttam007": "uttam007",
"vaishalipanchal": "Vaishali Panchal",
"valer1e": "Val&#233;rie Galassi",
"valchovski": "valchovski",
"vishaldodiya": "vishaldodiya",
"vnsavage": "vnsavage",
"voneff": "voneff",
"vortfu": "vortfu",
"warmlaundry": "warmlaundry",
"wbrubaker": "wbrubaker.a11n",
"westonruter": "Weston Ruter",
"earnjam": "Will Earnhardt",
"williampatton": "williampatton",
"kwonye": "Will Kwon",
"wpzinc": "wpzinc",
"xhezairi": "xhezairi",
"yahil": "Yahil Madakiya",
"yoavf": "Yoav Farhi",
"fierevere": "Yui",
"yuriv": "YuriV",
"zanematthew": "Zane Matthew",
"zebulan": "Zebulan Stanphill"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Babel Polyfill",
"https://babeljs.io/docs/en/babel-polyfill"
],
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"https://squirrelmail.org/"
],
[
"Closest",
"https://github.com/jonathantneal/closest"
],
[
"CodeMirror",
"https://codemirror.net/"
],
[
"Color Animations",
"https://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"FormData",
"https://github.com/jimmywarting/FormData"
],
[
"Horde Text Diff",
"https://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"https://jquery.com/"
],
[
"jQuery UI",
"https://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"https://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"https://github.com/pvulgaris/jquery.suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Lodash",
"https://lodash.com/"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"Moment",
"http://momentjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"https://www.phpclasses.org/package/1743-PHP-FTP-client-in-pure-PHP.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"React",
"https://reactjs.org/"
],
[
"Redux",
"https://redux.js.org/"
],
[
"Requests",
"http://requests.ryanmccue.info/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"https://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"whatwg-fetch",
"https://github.com/github/fetch"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "5.1"
}
}

908
inc/credits/json/5.2.json Normal file
View file

@ -0,0 +1,908 @@
{
"groups": {
"core-developers": {
"name": "Noteworthy Contributors",
"type": "titles",
"shuffle": false,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Release Lead"
],
"chanthaboune": [
"Josepha Haden",
"",
"chanthaboune",
"Release Lead"
],
"pento": [
"Gary Pendergast",
"",
"pento",
"Release Lead"
],
"dd32": [
"Dion Hulse",
"",
"dd32",
"Lead Developer"
],
"desrosj": [
"Jonathan Desrosiers",
"",
"desrosj",
"Core Developer"
],
"audrasjb": [
"Jean-Baptiste Audras",
"",
"audrasjb",
"Core Developer"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
"Core Developer"
],
"youknowriad": [
"Riad Benguella",
"",
"youknowriad",
"Core Developer"
],
"flixos90": [
"Felix Arntz",
"",
"flixos90",
"Core Developer"
],
"iseulde": [
"Ella Van Durpe",
"",
"iseulde",
"Core Developer"
],
"jorgefilipecosta": [
"Jorge Costa",
"",
"jorgefilipecosta",
"Core Developer"
],
"afercia": [
"Andrea Fercia",
"",
"afercia",
"Core Developer"
],
"Clorith": [
"Marius Jensen",
"",
"Clorith",
""
],
"hedgefield": [
"Tim Hedgefield",
"",
"hedgefield",
""
],
"mapk": [
"Mark Uraine",
"",
"mapk",
""
],
"JeffPaul": [
"Jeff Paul",
"",
"JeffPaul",
""
],
"earnjam": [
"William Earnhardt",
"",
"earnjam",
""
],
"Viper007Bond": [
"Alex Mills",
"",
"Viper007Bond",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"garrett-eclipse": [
"Garrett Hyder",
"",
"garrett-eclipse",
""
],
"mukesh27": [
"Mukesh Panchal",
"",
"mukesh27",
""
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
""
],
"birgire": [
"Birgir Erlendsson",
"",
"birgire",
""
],
"ianbelanger": [
"Ian Belanger",
"",
"ianbelanger",
""
],
"xkon": [
"Konstantinos Xenos",
"",
"xkon",
""
],
"spacedmonkey": [
"Jonny Harris",
"",
"spacedmonkey",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
],
"TimothyBlynJacobs": [
"Timothy Jacobs",
"",
"TimothyBlynJacobs",
""
],
"ocean90": [
"Dominik Schilling",
"",
"ocean90",
""
],
"afragen": [
"Andy Fragen",
"",
"afragen",
""
],
"melchoyce": [
"Mel Choyce",
"",
"melchoyce",
""
],
"pbiron": [
"Paul Biron",
"",
"pbiron",
""
],
"jorbin": [
"Aaron Jorbin",
"",
"jorbin",
""
],
"ramiy": [
"Rami Yushuvaev",
"",
"ramiy",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
],
"man4toman": [
"Morteza Geransayeh",
"",
"man4toman",
""
],
"swissspidy": [
"Pascal Birchler",
"",
"swissspidy",
""
],
"chetan200891": [
"Chetan Prajapati",
"",
"chetan200891",
""
],
"aduth": [
"Andrew Duthie",
"",
"aduth",
""
],
"kraftbj": [
"Brandon Kraft",
"",
"kraftbj",
""
],
"andizer": [
"Andy Meerwaldt",
"",
"andizer",
""
],
"karmatosed": [
"Tammie Lister",
"",
"karmatosed",
""
],
"david.binda": [
"David Binovec",
"",
"david.binda",
""
],
"tellyworth": [
"Alex Shiels",
"",
"tellyworth",
""
],
"dswebsme": [
"D.S. Webster",
"",
"dswebsme",
""
],
"dimadin": [
"Milan Dinić",
"",
"dimadin",
""
],
"subrataemfluence": [
"Subrata Sarkar",
"",
"subrataemfluence",
""
],
"davidbaumwald": [
"David Baumwald",
"",
"davidbaumwald",
""
],
"nerrad": [
"Darren Ethier",
"",
"nerrad",
""
],
"Joen": [
"Joen Asmussen",
"",
"Joen",
""
],
"kjellr": [
"Kjell Reigstad",
"",
"kjellr",
""
],
"jeremyfelt": [
"Jeremy Felt",
"",
"jeremyfelt",
""
],
"welcher": [
"Ryan Welcher",
"",
"welcher",
""
],
"kirasong": [
"Kira Song",
"",
"kirasong",
""
],
"schlessera": [
"Alain Schlesser",
"",
"schlessera",
""
],
"miss_jwo": [
"Jenny Wong",
"",
"miss_jwo",
""
],
"paragoninitiativeenterprises": [
"Scott Arciszewski",
"",
"paragoninitiativeenterprises",
""
],
"obenland": [
"Konstantin Obenland",
"",
"obenland",
""
],
"nosolosw": [
"Andrés Maneiro",
"",
"nosolosw",
""
],
"gziolo": [
"Grzegorz Ziółkowski",
"",
"gziolo",
""
],
"mkaz": [
"Marcus Kazmierczak",
"",
"mkaz",
""
],
"etoledom": [
"Eduardo Toledo",
"",
"etoledom",
""
],
"Soean": [
"Soren Wrede",
"",
"Soean",
""
],
"talldanwp": [
"Daniel Richards",
"",
"talldanwp",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"5.2"
],
"type": "list",
"data": {
"aaroncampbell": "Aaron D. Campbell",
"762e5e74": "abbe",
"oztaser": "Adil &#214;ztaşer",
"ajitbohra": "Ajit Bohra",
"aldavigdis": "Alda Vigd&#237;s",
"xknown": "Alex Concha",
"alexdenning": "Alex Denning",
"xavortm": "Alex Dimitrov",
"lexiqueen": "Alexis",
"alexislloyd": "Alexis Lloyd",
"adamsoucie": "Alexis Soucie",
"akirk": "Alex Kirk",
"allancole": "allancole",
"allendav": "Allen Snook",
"alpipego": "alpipego",
"andreamiddleton": "Andrea Middleton",
"andraganescu": "Andrei Draganescu",
"euthelup": "Andrei Lupu",
"aandrewdixon": "Andrew Dixon",
"nacin": "Andrew Nacin",
"rarst": "Andrey \"Rarst\" Savchenko",
"aniketpatel": "Aniket Patel",
"anischarolia": "Anis Charolia",
"avillegasn": "Antonio Villegas",
"atimmer": "Anton Timmermans",
"vanyukov": "Anton Vanyukov",
"antonypuckey": "antonypuckey",
"arena": "arena",
"aristath": "Ari Stathopoulos",
"wpboss": "Aslam Shekh",
"axaak": "axaak",
"backermann1978": "backermann1978",
"bahia0019": "bahia0019",
"pixolin": "Bego Mario Garde",
"empireoflight": "Ben Dunkle",
"bfintal": "Benjamin Intal",
"britner": "Ben Ritner - Kadence WP",
"billerickson": "Bill Erickson",
"bodohugobarwich": "Bodo (Hugo) Barwich",
"gitlost": "bonger",
"boonebgorges": "Boone Gorges",
"bradleyt": "Bradley Taylor",
"brentswisher": "Brent Swisher",
"ixium": "Brian Stal",
"burhandodhy": "Burhan Nasir",
"cathibosco1": "Cathi Bosco",
"chiaralovelaces": "Chiara Magnani",
"chouby": "Chouby",
"aprea": "Chris A. a11n",
"christophherr": "Christoph Herr",
"chrisvanpatten": "Chris Van Patten",
"cdog": "Cătălin Dogaru",
"colorful-tones": "Damon Cook",
"danmicamediacom": "Dan Foley",
"danielbachhuber": "Daniel Bachhuber",
"mte90": "Daniele Scasciafratte",
"danieltj": "danieltj",
"diddledan": "Dani Llewellyn",
"drw158": "Dave Whitley",
"davidbinda": "David Biňovec",
"dlh": "David Herrera",
"davefx": "David Mar&#237;n Carre&#241;o",
"darthhexx": "David Newman",
"dgroddick": "David Roddick",
"get_dave": "David Smith",
"daxelrod": "daxelrod",
"dkarfa": "Debabrata Karfa",
"dekervit": "dekervit",
"denis-de-bernardy": "Denis de Bernardy",
"dmsnell": "Dennis Snell",
"valendesigns": "Derek Herman",
"pcfreak30": "Derrick Hammer",
"designsimply": "designsimply",
"dhanukanuwan": "Dhanukanuwan",
"dharm1025": "Dharmesh Patel",
"dianeco": "Diane Co",
"diegoreymendez": "diegoreymendez",
"dilipbheda": "Dilip Bheda",
"dency": "Dixita Dusara",
"odminstudios": "Dmitrii",
"iamdmitrymayorov": "Dmitry Mayorov",
"drewapicture": "Drew Jaynes",
"dsifford": "dsifford",
"edocev": "Emil Dotsev",
"epiqueras": "epiqueras",
"folletto": "Erin 'Folletto' Casali",
"fabiankaegy": "Fabian K&#228;gy",
"faisal03": "Faisal Alvi",
"fencer04": "Fencer04",
"flaviozavan": "flaviozavan",
"peaceablewhale": "Franklin Tse",
"fuegas": "Fuegas",
"voldemortensen": "Garth Mortensen",
"garyj": "Gary Jones",
"soulseekah": "Gennady Kovshenin",
"girishpanchal": "Girish Panchal",
"gqevu6bsiz": "gqevu6bsiz",
"wido": "Guido Scialfa",
"gutendev": "GutenDev &#124; Ⓦ ✍㊙",
"hannahmalcolm": "Hannah Malcolm",
"hardik-amipara": "Hardik",
"thakkarhardik": "Hardik Thakkar",
"luehrsen": "Hendrik Luehrsen",
"henrywright-1": "Henry",
"henrywright": "Henry Wright",
"iandunn": "Ian Dunn",
"ice9js": "ice9js",
"zinigor": "Igor Zinovyev (a11n)",
"isabel_brison": "Isabel Brison",
"elhardoum": "Ismail",
"jdgrimes": "J.D. Grimes",
"jakeparis": "jakeparis",
"whyisjake": "Jake Spurlock",
"cc0a": "James",
"janak007": "janak Kaneriya",
"jankimoradiya": "Janki Moradiya",
"jarred-kennedy": "Jarred Kennedy",
"vengisss": "Javier Villanueva",
"jaydeep-rami": "Jaydeep Rami",
"parkcityj": "Jaye Williams",
"jaymanpandya": "Jayman Pandya",
"jayupadhyay01": "Jay Upadhyay",
"jdeeburke": "jdeeburke",
"cheffheid": "Jeffrey de Wit",
"endocreative": "Jeremy Green",
"jeherve": "Jeremy Herve",
"jikamens": "jikamens",
"jitendrabanjara1991": "Jitendra Banjara",
"joedolson": "Joe Dolson",
"joemcgill": "Joe McGill",
"j-falk": "Johan Falk",
"johannadevos": "Johanna de Vos",
"johnjamesjacoby": "John James Jacoby",
"jonathandejong": "Jonathandejong",
"joneiseman": "joneiseman",
"jonnybojangles": "jonnybojangles",
"joostdevalk": "Joost de Valk",
"jordesign": "jordesign",
"koke": "Jorge Bernal",
"keraweb": "Jory Hogeveen",
"jcastaneda": "Jose Castaneda",
"josephwa": "josephwa",
"builtbynorthby": "Josh Feck",
"joshuawold": "Joshua Wold",
"joyously": "Joy",
"jplojohn": "jplo",
"jrtashjian": "JR Tashjian",
"juiiee8487": "Juhi Patel",
"juliarrr": "juliarrr",
"jrf": "Juliette Reinders Folmer",
"justinahinon": "Justin Ahinon",
"kadamwhite": "K. Adam White",
"kamataryo": "KamataRyo",
"karinedo": "Karine Do",
"karlgroves": "karlgroves",
"katyatina": "Katyatina",
"kelin1003": "Kelin Chauhan",
"ryelle": "Kelly Choyce-Dwan",
"gwwar": "Kerry Liu",
"codemascot": "KHAN",
"itzmekhokan": "Khokan Sardar",
"killua99": "killua99",
"ixkaito": "Kite",
"knutsp": "Knut Sparhell",
"olein": "Koji Kuno",
"laurelfulford": "laurelfulford",
"0mirka00": "Lena Morita",
"lkraav": "lkraav",
"lovingboth": "lovingboth",
"lukecarbis": "Luke Carbis",
"lgedeon": "Luke Gedeon",
"lukepettway": "Luke Pettway",
"palmiak": "Maciek Palmowski",
"maedahbatool": "Maedah Batool",
"travel_girl": "Maja Benke",
"majemedia": "Maje Media LLC",
"malae": "Malae",
"manzoorwanijk": "Manzoor Wani (a11n)",
"robobot3000": "Marcin",
"iworks": "Marcin Pietrzak",
"marcofernandes": "Marco Fernandes",
"marco-peralta": "Marco Peralta",
"marekhrabe": "Marek Hrabe",
"mbelchev": "Mariyan Belchev",
"markcallen": "markcallen",
"mdwolinski": "Mark D Wolinski",
"mechter": "Markus Echterhoff",
"mspatovaliyski": "Martin Spatovaliyski",
"m-e-h": "Marty Helmick",
"marybaum": "marybaum",
"imath": "Mathieu Viet",
"mattnyeus": "mattcursor",
"immeet94": "Meet Makadia",
"mheikkila": "mheikkila",
"wpscholar": "Micah Wood",
"donmhico": "Michael",
"michelleweber": "michelleweber",
"mcsf": "Miguel Fonseca",
"mmtr86": "Miguel Torres",
"simison": "Mikael Korpela",
"mauteri": "Mike Auteri",
"mikengarrett": "MikeNGarrett",
"mikeschinkel": "Mike Schinkel",
"mikeselander": "Mike Selander",
"lord_viper": "Mobin Ghasempoor",
"mohadeseghasemi": "Mohadese Ghasemi",
"saimonh": "Mohammed Saimon",
"monikarao": "Monika Rao",
"mor10": "Morten Rand-Hendriksen",
"mmuhsin": "Muhammad Muhsin",
"m_uysl": "Mustafa Uysal",
"mzorz": "mzorz",
"nfmohit": "Nahid Ferdous Mohit",
"naoki0h": "Naoki Ohashi",
"nateallen": "Nate Allen",
"nayana123": "Nayana Maradia",
"greatislander": "Ned Zimmerman",
"neobabis": "Neokazis Charalampos",
"modernnerd": "Nick C",
"nickdaugherty": "nickdaugherty",
"ndiego": "Nick Diego",
"celloexpressions": "Nick Halsey",
"jainnidhi": "Nidhi Jain",
"nielsdeblaauw": "Niels de Blaauw",
"nielslange": "Niels Lange",
"nnikolov": "Nikolay Nikolov",
"rabmalin": "Nilambar Sharma",
"ninio": "ninio",
"nmenescardi": "nmenescardi",
"notnownikki": "notnownikki",
"bulletdigital": "Oliver Sadler",
"onlanka": "onlanka",
"pandelisz": "pandelisz",
"parsmizban": "ParsMizban",
"pbearne": "Paul Bearne",
"bassgang": "Paul Vincent Beigang",
"pedromendonca": "Pedro Mendon&#231;a",
"peterbooker": "Peter Booker",
"peterwilsoncc": "Peter Wilson",
"pfiled": "pfiled",
"pilou69": "pilou69",
"pranalipatel": "Pranali Patel",
"pratikkry": "Pratik Kumar",
"pratikthink": "Pratik Kumar",
"presskopp": "Presskopp",
"psealock": "psealock",
"punit5658": "Punit Patel",
"bamadesigner": "Rachel Cherry",
"rahmon": "Rahmon",
"superpoincare": "Ramanan",
"ramizmanked": "Ramiz Manked",
"ramonopoly": "ramonopoly",
"rinatkhaziev": "Rinat",
"noisysocks": "Robert Anderson",
"rsusanto": "Rudy Susanto",
"ryan": "Ryan Boren",
"ryanshoover": "ryanshoover",
"sgastard": "S&#233;bastien Gastard",
"sebastienserre": "S&#233;bastien SERRE",
"sachyya-sachet": "Sachyya",
"saeedfard": "Saeed Fard",
"salar6990": "Salar Gholizadeh",
"salcode": "Sal Ferrarello",
"samanehmirrajabi": "Samaneh Mirrajabi",
"samikeijonen": "Sami Keijonen",
"sgarza": "Santiago Garza",
"saracope": "Sara Cope",
"saracup": "saracup",
"tinkerbelly": "sarah semark",
"coffee2code": "Scott Reilly",
"sebastianpisula": "Sebastian Pisula",
"ebrahimzadeh": "Sekineh Ebrahimzadeh",
"vjik": "Sergei Predvoditelev",
"sergioestevao": "SergioEstevao",
"seedsca": "Sergio Scabuzzo",
"sharaz": "Sharaz Shahid",
"sharifkiberu": "sharifkiberu",
"shashank3105": "Shashank Panchal",
"shazdeh": "shazdeh",
"shital-patel": "Shital Marakana",
"sky_76": "sky_76",
"sstoqnov": "Stanimir Stoyanov",
"ryokuhi": "Stefano Minoia",
"netweb": "Stephen Edgar",
"stevenkword": "Steven Word",
"sudar": "Sudar Muthu",
"sudhiryadav": "Sudhir Yadav",
"miyauchi": "Takayuki Miyauchi",
"themonic": "Themonic",
"thomstark": "thomstark",
"tfrommen": "Thorsten Frommen",
"thrijith": "Thrijith Thankachan",
"timph": "timph",
"timwright12": "Tim Wright",
"tmatsuur": "tmatsuur",
"ohiosierra": "tmdesigned",
"tmdesigned": "tmdesigned",
"tobiasbg": "Tobias B&#228;thge",
"tz-media": "Tobias Zimpel",
"tobifjellner": "tobifjellner (Tor-Bjorn &#8220;Tobi&#8221; Fjellner)",
"tomharrigan": "TomHarrigan",
"tonybogdanov": "tonybogdanov",
"toro_unit": "Toro_Unit (Hiroshi Urabe)",
"torres126": "torres126",
"zodiac1978": "Torsten Landsiedel",
"itowhid06": "Towhidul I Chowdhury",
"liljimmi": "Tracy Levesque",
"umang7": "Umang Bhanvadia",
"vaishalipanchal": "Vaishali Panchal",
"szepeviktor": "Viktor Sz&#233;pe",
"vortfu": "vortfu",
"vrimill": "vrimill",
"webfactory": "WebFactory",
"westonruter": "Weston Ruter",
"wfmattr": "WFMattR",
"williampatton": "williampatton",
"willscrlt": "Willscrlt",
"tsewlliw": "Will West",
"wolly": "Wolly aka Paolo Valenti",
"wrwrwr0": "wrwrwr0",
"yarnboy": "yarnboy",
"yoavf": "Yoav Farhi",
"fierevere": "Yui",
"zebulan": "Zebulan Stanphill",
"chesio": "Česlav Przywara"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Babel Polyfill",
"https://babeljs.io/docs/en/babel-polyfill"
],
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"https://squirrelmail.org/"
],
[
"clipboard.js",
"https://clipboardjs.com/"
],
[
"Closest",
"https://github.com/jonathantneal/closest"
],
[
"CodeMirror",
"https://codemirror.net/"
],
[
"Color Animations",
"https://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"FormData",
"https://github.com/jimmywarting/FormData"
],
[
"Horde Text Diff",
"https://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"https://jquery.com/"
],
[
"jQuery UI",
"https://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"https://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"https://github.com/pvulgaris/jquery.suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Lodash",
"https://lodash.com/"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"Moment",
"http://momentjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"https://www.phpclasses.org/package/1743-PHP-FTP-client-in-pure-PHP.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"React",
"https://reactjs.org/"
],
[
"Redux",
"https://redux.js.org/"
],
[
"Requests",
"http://requests.ryanmccue.info/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"https://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"whatwg-fetch",
"https://github.com/github/fetch"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "5.2"
}
}

1319
inc/credits/json/5.3.json Normal file

File diff suppressed because it is too large Load diff

1145
inc/credits/json/5.4.json Normal file

File diff suppressed because it is too large Load diff

1371
inc/credits/json/5.5.json Normal file

File diff suppressed because it is too large Load diff

1154
inc/credits/json/5.6.json Normal file

File diff suppressed because it is too large Load diff

932
inc/credits/json/5.7.json Normal file
View file

@ -0,0 +1,932 @@
{
"groups": {
"core-developers": {
"name": "Noteworthy Contributors",
"type": "titles",
"shuffle": false,
"data": {
"matt": [
"Matt Mullenweg",
"",
"matt",
"Release Lead"
],
"metalandcoffee": [
"Ebonie Butler",
"",
"metalandcoffee",
"Release Lead"
],
"hellofromTonya": [
"Tonya Mork",
"",
"hellofromTonya",
"Release Lead"
],
"SergeyBiryukov": [
"Sergey Biryukov",
"",
"SergeyBiryukov",
""
],
"noisysocks": [
"Robert Anderson",
"",
"noisysocks",
""
],
"sarahricker": [
"Sarah Ricker",
"",
"sarahricker",
""
],
"hedgefield": [
"Tim Hengeveld",
"",
"hedgefield",
""
],
"audrasjb": [
"Jean-Baptiste Audras",
"",
"audrasjb",
""
],
"monikarao": [
"Monika Rao",
"",
"monikarao",
""
],
"flixos90": [
"Felix Arntz",
"",
"flixos90",
""
],
"ryelle": [
"Kelly Choyce-Dwan",
"",
"ryelle",
""
],
"Clorith": [
"Marius Jensen",
"",
"Clorith",
""
],
"lukecarbis": [
"Luke Carbis",
"",
"lukecarbis",
""
],
"chanthaboune": [
"Josepha Haden",
"",
"chanthaboune",
""
],
"gziolo": [
"Greg Ziółkowski",
"",
"gziolo",
""
],
"youknowriad": [
"Riad Benguella",
"",
"youknowriad",
""
],
"desrosj": [
"Jonathan Desrosiers",
"",
"desrosj",
""
],
"johnbillion": [
"John Blackbourn",
"",
"johnbillion",
""
],
"ellatrix": [
"Ella van Durpe",
"",
"ellatrix",
""
],
"peterwilsoncc": [
"Peter Wilson",
"",
"peterwilsoncc",
""
],
"ntsekouras": [
"Nik Tsekouras",
"",
"ntsekouras",
""
],
"TimothyBlynJacobs": [
"Timothy Jacobs",
"",
"TimothyBlynJacobs",
""
],
"Joen": [
"Joen Asmussen",
"",
"Joen",
""
],
"talldanwp": [
"Daniel Richards",
"",
"talldanwp",
""
],
"nosolosw": [
"André Maneiro",
"",
"nosolosw",
""
],
"jorgefilipecosta": [
"Jorge Costa",
"",
"jorgefilipecosta",
""
],
"poena": [
"Carolina Nymark",
"",
"poena",
""
]
}
},
"contributing-developers": {
"name": false,
"type": "titles",
"shuffle": true,
"data": {
"annezazu": [
"Anne McCarthy",
"",
"annezazu",
""
],
"JeffPaul": [
"Jeff Paul",
"",
"JeffPaul",
""
],
"cbringmann": [
"Chloé Bringmann",
"",
"cbringmann",
""
],
"francina": [
"Francesca Marano",
"",
"francina",
""
],
"davidbaumwald": [
"David Baumwald",
"",
"davidbaumwald",
""
],
"marybaum": [
"Mary Baum",
"",
"marybaum",
""
],
"aristath": [
"Ari Stathopoulos",
"",
"aristath",
""
],
"mukesh27": [
"Mukesh Panchal",
"",
"mukesh27",
""
],
"davidszabo": [
"Dávid Szabó",
"",
"davidszabo",
""
],
"Bernhard Reiter": [
"Bernhard Reiter",
"",
"Bernhard Reiter",
""
],
"happiryu": [
"Luke Walczak",
"",
"happiryu",
""
],
"sabernhardt": [
"Stephen Bernhardt",
"",
"sabernhardt",
""
],
"addiestavlo": [
"Addison Stavlo",
"",
"addiestavlo",
""
],
"jonsurrell": [
"Jon Surrell",
"",
"jonsurrell",
""
],
"adamsilverstein": [
"Adam Silverstein",
"",
"adamsilverstein",
""
],
"isabel_brison": [
"Isabel Brison",
"",
"isabel_brison",
""
],
"scruffian": [
"Ben Dwyer",
"",
"scruffian",
""
],
"azaozz": [
"Andrew Ozz",
"",
"azaozz",
""
]
}
},
"props": {
"name": "Core Contributors to WordPress %s",
"placeholders": [
"5.7"
],
"type": "list",
"data": {
"7studio": "7studio",
"ninetyninew": "99w",
"aaribaud": "aaribaud",
"technosailor": "Aaron Brazell",
"aaroncampbell": "Aaron D. Campbell",
"jorbin": "Aaron Jorbin",
"aaronrobertshaw": "Aaron Robertshaw",
"abagtcs": "abagtcs",
"webcommsat": "Abha Thakor",
"acerempel": "acerempel",
"activecoder": "activecoder",
"ad7six": "ad7six",
"bosconiandynamics": "Adam Bosco",
"adamboro": "Adam Cassis",
"zieladam": "Adam Zieliński",
"aduth": "aduth",
"mrahmadawais": "Ahmad Awais",
"chaion07": "Ahmed Kabir Chaion",
"engahmeds3ed": "Ahmed Saeed",
"aljullu": "Albert Juh&#233; Lluveras",
"albertomake": "albertomake",
"alex27": "alex27",
"chemiker": "Alexander Lueken",
"xknown": "Alex Concha",
"ajlende": "Alex Lende",
"alexstine": "Alex Stine",
"alexwoollam": "Alex Woollam",
"allancole": "allancole",
"allendav": "Allen Snook",
"almendron": "almendron",
"amandariu": "Amanda Riu",
"ambienthack": "ambienthack",
"amolv": "Amol Vhankalas",
"afercia": "Andrea Fercia",
"andraganescu": "Andrei Draganescu",
"nacin": "Andrew Nacin",
"anevins": "Andrew Nevins",
"andrewserong": "Andrew Serong",
"afragen": "Andy Fragen",
"apeatling": "Andy Peatling",
"ankitmaru": "Ankit Panchal",
"annalamprou": "annalamprou",
"anotherdave": "anotherdave",
"antpb": "Anthony Burchell",
"antonlukin": "Anton Lukin",
"atimmer": "Anton Timmermans",
"anyssa": "Anyssa Ferreira",
"arcangelini": "arcangelini",
"archon810": "archon810",
"passoniate": "Arslan Kalwar",
"artpi": "Artur Piszek",
"maigret": "Aur&#233;lien Denis",
"ayeshrajans": "Ayesh Karunaratne",
"bartosz777": "bartosz777",
"basscan": "basscan",
"bduclos": "bduclos",
"becdetat": "becdetat",
"pixolin": "Bego Mario Garde",
"utz119": "Benachi",
"bernhard-reiter": "bernhard-reiter",
"bhanusinghkre": "bhanusinghkre",
"birgire": "Birgir Erlendsson (birgire)",
"bph": "Birgit Pauli-Haack",
"bobbingwide": "bobbingwide",
"boonebgorges": "Boone Gorges",
"kraftbj": "Brandon Kraft",
"brechtvds": "Brecht",
"brentswisher": "Brent Swisher",
"brijeshb42": "brijeshb42",
"burnuser": "burnuser",
"icaleb": "Caleb Burks",
"cvoell": "Cameron Voell",
"carike": "Carike",
"carloscastilloadhoc": "carloscastilloadhoc",
"carlosgprim": "Carlos G. P.",
"bonniebeeman": "CastleRock",
"celendesign": "celendesign",
"cenay": "cenay",
"ceyhun0": "Ceyhun Ozugur",
"chexwarrior": "chexwarrior",
"chipsnyder": "Chip Snyder",
"chouby": "Chouby",
"pixelverbieger": "Christian Sabo",
"amethystanswers": "Christina Workman",
"cfinke": "Christopher Finke",
"chrisvanpatten": "Chris Van Patten",
"clayray": "clayray",
"claytoncollie": "Clayton Collie",
"codeamp": "Code Amp",
"collizo4sky": "Collins Agbonghama",
"copons": "Copons",
"coreyw": "Corey Worrell",
"cristinasoponar": "cristinasoponar",
"dam6pl": "Damian Nowak",
"danfarrow": "Dan Farrow",
"mte90": "Daniele Scasciafratte",
"dvankooten": "Danny van Kooten",
"dariak": "Daria",
"nerrad": "Darren Ethier (nerrad)",
"davecpage": "Dave Page",
"drw158": "Dave Whitley",
"davidanderson": "David Anderson / Team Updraft",
"davidbinda": "David Biňovec",
"dpcalhoun": "David Calhoun",
"dlh": "David Herrera",
"dbtedg": "dbtedg",
"dkarfa": "Debabrata Karfa",
"dekervit": "dekervit",
"denishua": "denishua",
"denisco": "Denis Yanchevskiy",
"dianeco": "Diane Co",
"dilipbheda": "Dilip Bheda",
"dd32": "Dion Hulse",
"dkoo": "dkoo",
"ocean90": "Dominik Schilling",
"dragongate": "dragongate",
"dratwas": "dratwas",
"drewapicture": "Drew Jaynes",
"eatsleepcode": "eatsleepcode",
"ediamin": "Edi Amin",
"erichmond": "Elliott Richmond",
"hsingyuc7": "Emma Flowers",
"enej": "Enej Bajgorić",
"enricocarraro": "Enrico Carraro",
"epicfaace": "epicfaace",
"epiqueras": "epiqueras",
"ericlewis": "Eric Andrew Lewis",
"ebinnion": "Eric Binnion",
"ericmann": "Eric Mann",
"kebbet": "Erik",
"folletto": "Erin 'Folletto' Casali",
"wponlinesupport": "Essential Plugins by WP OnlineSupport",
"estelaris": "Estela Rueda",
"etoledom": "etoledom",
"eventualo": "eventualo",
"e_baker": "e_baker",
"fabiankaegy": "Fabian K&#228;gy",
"fabianpimminger": "Fabian Pimminger",
"felipeelia": "Felipe Elia",
"mista-flo": "Florian TIAR",
"florianziegler": "Florian Ziegler",
"floriswt": "floriswt",
"frank-klein": "Frank Klein",
"gab81": "gab81",
"galbaras": "Gal Baras",
"ecgan": "Gan Eng Chin",
"garrett-eclipse": "Garrett Hyder",
"pento": "Gary Pendergast",
"geekpress": "GeekPress",
"geekzebre": "geekzebre",
"geoffguillain": "Geoff Guillain",
"geoffrey1963": "Geoffrey",
"mamaduka": "George Mamadashvili",
"georgestephanis": "George Stephanis",
"geriux": "Gerardo Pacheco",
"gkibria69": "gKibria",
"glendaviesnz": "Glen Davies",
"gmariani405": "gmariani405",
"alinod": "Gord",
"grzim": "grzim",
"gumacahin": "gumacahin",
"gunnard": "gunnard",
"bordoni": "Gustavo Bordoni",
"hansjovisyoast": "Hans-Christiaan Braun",
"hardeepasrani": "Hardeep Asrani",
"hareesh-pillai": "Hareesh S",
"hauvong": "hauvong",
"hazdiego": "Haz",
"helen": "Helen Hou-Sandi",
"helmutwalker": "helmutwalker",
"tejwanihemant": "Hemant Tejwani",
"herregroen": "Herre Groen",
"hmabpera": "hmabpera",
"howdy_mcgee": "Howdy_McGee",
"iandunn": "Ian Dunn",
"ianmjones": "ianmjones",
"ibiza69": "ibiza69",
"igorradovanov": "Igor Radovanov",
"ingereck": "Inge Reck",
"iprg": "iprg",
"ipstenu": "Ipstenu (Mika Epstein)",
"iseulde": "iseulde",
"ismailelkorchi": "Ismail El Korchi",
"iviweb": "iviweb",
"jdgrimes": "J.D. Grimes",
"jadeddragoon": "jadeddragoon",
"jakeparis": "jakeparis",
"whyisjake": "Jake Spurlock",
"jakubtyrcha": "jakub.tyrcha",
"jamesgol": "James Golovich",
"macmanx": "James Huff",
"jameskoster": "James Koster",
"jnylen0": "James Nylen",
"jamesros161": "James Rosado",
"janthiel": "janthiel",
"jsnajdr": "Jarda Snajdr",
"jason_the_adams": "Jason Adams",
"pbking": "Jason Crist",
"madtownlems": "Jason LeMahieu (MadtownLems)",
"viablethought": "Jason Ryan",
"jaymanpandya": "Jayman Pandya",
"jfarthing84": "Jeff Farthing",
"jeffr0": "Jeffro",
"jmdodd": "Jennifer M. Dodd",
"jdy68": "Jenny Dupuy",
"jeremyfelt": "Jeremy Felt",
"jeremyyip": "Jeremy Yip",
"jeroenrotty": "Jeroen Rotty",
"jessplease": "Jessica Duarte",
"luminuu": "Jessica Lyschik",
"joanrho": "joanrho",
"joedolson": "Joe Dolson",
"joelclimbsthings": "joelclimbsthings",
"joemcgill": "Joe McGill",
"jonkastonka": "Johan Jonk Stenstr&#246;m",
"goaroundagain": "Johannes Kinast",
"johnjamesjacoby": "John James Jacoby",
"johnwatkins0": "John Watkins",
"jrchamp": "Jonathan Champ",
"jonathanstegall": "Jonathan Stegall",
"spacedmonkey": "Jonny Harris",
"jonoaldersonwp": "Jono Alderson",
"joostdevalk": "Joost de Valk",
"jordesign": "jordesign",
"jomisica": "Jos&#233; Miguel",
"joseeyoast": "Josee Wouters",
"jose64": "Jose Luis",
"accessiblejoe": "Joseph Karr O'Connor",
"oakesjosh": "Josh",
"joshuatf": "joshuatf",
"joshuawold": "Joshua Wold",
"tai": "JOTAKI, Taisuke",
"joyously": "Joy",
"jsmoriss": "JS Morisset",
"jrf": "Juliette Reinders Folmer",
"juliobox": "Julio Potier",
"justinahinon": "Justin Ahinon",
"justinsainton": "Justin Sainton",
"jtsternberg": "Justin Sternberg",
"k3nsai": "k3nsai",
"kafleg": "KafleG",
"kevin940726": "Kai Hao",
"trepmal": "Kailey (trepmal)",
"akabarikalpesh": "Kalpesh Akabari",
"karamcnair": "kara.mcnair",
"vyskoczilova": "Karolina Vyskocilova",
"gwwar": "Kerry Liu",
"tmfespresso": "kimdcottrell",
"kirasong": "Kira Schroder",
"kirilzh": "Kiril Zhelyazkov",
"kburgoine": "Kirsty Burgoine",
"ixkaito": "Kite",
"kjellr": "Kjell Reigstad",
"knutsp": "Knut Sparhell",
"hwk-fr": "Konrad Chmielewski",
"obenland": "Konstantin Obenland",
"xkon": "Konstantinos Xenos",
"greatsaltlake": "Kris",
"kurtpayne": "Kurt Payne",
"kbjohnson90": "Kyle B. Johnson",
"notlaura": "Lara Schenck",
"laurelfulford": "laurelfulford",
"laxman-prajapati": "Laxman Prajapati",
"0mirka00": "Lena Morita",
"leogermani": "leogermani",
"levdbas": "Levdbas",
"litemotiv": "litemotiv",
"lovor": "Lovro Hrust",
"lucasbustamante": "lucasbustamante",
"_luigi": "Luigi Cavalieri",
"lpawlik": "Lukas Pawlik",
"lukecavanagh": "Luke Cavanagh",
"palmiak": "Maciek Palmowski",
"oellin": "Magali",
"patopaiar": "magicoders",
"magnuswebdesign": "magnuswebdesign",
"mahfuz01": "Mahafuz",
"akramipro": "Mahdi Akrami",
"malinajirka": "malinajirka",
"mallorydxw": "mallorydxw",
"tomdxw": "mallorydxw-old",
"manzoorwanijk": "Manzoor Wani (a11n)",
"manzurahammed": "Manzur Ahammed",
"marcelo2605": "marcelo2605",
"fullofcaffeine": "Marcelo de Moraes Serpa",
"marcio-zebedeu": "Marcio Zebedeu",
"netweblogic": "Marcus (aka @msykes)",
"mkaz": "Marcus Kazmierczak",
"chaton666": "Marie Comet",
"marijnkoopman": "Marijn Koopman",
"tyxla": "Marin Atanasov",
"mdwolinski": "Mark D Wolinski",
"markhowellsmead": "Mark Howells-Mead",
"vindl": "Marko Andrijasevic",
"markscottrobson": "Mark Robson",
"mapk": "Mark Uraine",
"flootr": "Markus",
"mberard": "Mathieu Berard Smartfire",
"imath": "Mathieu Viet",
"matveb": "Matias Ventura",
"mattchowning": "Matt Chowning",
"mattwiebe": "Matt Wiebe",
"maxpertici": "Maxime Pertici",
"mayankmajeji": "Mayank Majeji",
"megabyterose": "Megan",
"megphillips91": "Meg Phillips",
"meher": "Meher Bala",
"mehrshaddarzi": "Mehrshad Darzi",
"mehulkaklotar": "Mehul Kaklotar",
"melchoyce": "Mel Choyce-Dwan",
"mendezcode": "mendezcode",
"mgol": "mgol",
"donmhico": "Michael",
"michael-arestad": "Michael Arestad",
"mbabker": "Michael Babker",
"mcsf": "Miguel Fonseca",
"mihdan": "mihdan",
"miinasikk": "Miina Sikk",
"mdrockwell": "Mike R. (a11n)",
"milana_cap": "Milana Cap",
"dimadin": "Milan Dinić",
"presstoke": "Mitchell Austin",
"mmuyskens": "mmuyskens",
"daddou": "Mohamed El Amine DADDOU",
"monika": "Monika",
"morenaf": "morenaf",
"mrjoeldean": "mrjoeldean",
"munyagu": "munyagu",
"mzorz": "mzorz",
"naveen17797": "Naveen",
"krstarica": "net",
"nicegamer7": "nicegamer7",
"nre": "nicky",
"nico23": "Nico",
"nicolalaserra": "Nicola Laserra",
"rahe": "Nicolas Juen",
"nicolaskulka": "NicolasKulka",
"nico_martin": "Nico Martin",
"noahtallen": "Noah Allen",
"nwjames": "nwjames",
"oglekler": "Olga Gleckler",
"ovidiul": "ovidiul",
"oxyc": "oxyc",
"paaljoachim": "Paal Joachim Romdahl",
"swissspidy": "Pascal Birchler",
"pbearne": "Paul Bearne",
"pbiron": "Paul Biron",
"pabline": "Paul Bunkham",
"paulschreiber": "Paul Schreiber",
"pschrottky": "Paul Von Schrottky",
"pawki07": "pawki07",
"pedromendonca": "Pedro Mendon&#231;a",
"gungeekatx": "Pete Nelson",
"yscik": "Peter Kiss",
"psmits1567": "Peter Smits",
"pinkalbeladiya": "Pinkal Shihora",
"boniu91": "Piotrek Boniu",
"freewebmentor": "Prem Tiwari",
"prettyboymp": "prettyboymp",
"princeahmed": "Prince",
"pwallner": "pwallner",
"itsjonq": "Q",
"r-a-y": "r-a-y",
"rachelbaker": "Rachel Baker",
"rafaelgalani": "Rafael Gallani",
"rafhun": "rafhun",
"ramiy": "Rami Yushuvaev",
"rahmohn": "Ramon Ahnert",
"nonverbla": "Rasso Hilber",
"ratneshk": "ratneshk",
"ravipatel": "Ravikumar Patel",
"jontyravi": "Ravi Vaghela",
"retrofox": "retrofox",
"reardestani": "Reza Ardestani",
"rianrietveld": "Rian Rietveld",
"iamfriendly": "Rich Tape",
"rinatkhaziev": "Rinat",
"rodrigosprimo": "Rodrigo Primo",
"roger995": "roger995",
"rogertheriault": "Roger Theriault",
"rolfsiebers": "Rolf Siebers",
"romain-d": "Romain",
"burtrw": "Ronnie Burt",
"magicroundabout": "Ross Wintle",
"ryan": "Ryan Boren",
"sebastienserre": "S&#233;bastien SERRE",
"sergiomdgomes": "S&#233;rgio Gomes",
"soean": "S&#246;ren W&#252;nsch",
"stodorovic": "Sa&#353;a",
"sanketchodavadiya": "Sanket Chodavadiya",
"sarayourfriend": "Sara",
"wonderboymusic": "Scott Taylor",
"sebastianpisula": "Sebastian Pisula",
"sebsz": "SeBsZ",
"yakimun": "Sergey Yakimov",
"shahinsid07": "Shahin Sid",
"shaunandrews": "shaunandrews",
"shital-patel": "Shital Marakana",
"sirstuey": "SirStuey",
"slaffik": "Slava Abakumov",
"snapfractalpop": "snapfractalpop",
"souri_wpaustria": "souri_wpaustria",
"stefanjoebstl": "stefanjoebstl",
"ryokuhi": "Stefano Minoia",
"hypest": "Stefanos Togoulidis",
"pypwalters": "Stephanie Walters",
"netweb": "Stephen Edgar",
"stevenkword": "Steven Word",
"subrataemfluence": "Subrata Sarkar",
"sumitsingh": "Sumit Singh",
"quadthemes": "Sunny",
"cybr": "Sybre Waaijer",
"synchro": "Synchro",
"t-p": "t-p",
"inc2734": "Takashi Kitajima",
"karmatosed": "Tammie Lister",
"tanvirul": "Tanvirul Haque",
"voboghure": "Tapan Kumer Das",
"teamdnk": "TeamDNK",
"terriann": "Terri Ann",
"tweetythierry": "Thierry Muller",
"thorlentz": "thorlentz",
"tigertech": "tigertech",
"sippis": "Timi Wahalahti",
"tnolte": "Tim Nolte",
"tkama": "Timur Kamaev",
"tinodidriksen": "Tino Didriksen",
"tmatsuur": "tmatsuur",
"tobiasbg": "Tobias B&#228;thge",
"tz-media": "Tobias Zimpel",
"tobifjellner": "tobifjellner (Tor-Bjorn &#8220;Tobi&#8221; Fjellner)",
"skithund": "Toni Viemer&#246;",
"tonysandwich": "tonysandwich",
"zodiac1978": "Torsten Landsiedel",
"toru": "Toru Miki",
"transl8or": "transl8or",
"tylertork": "Tyler Tork",
"grapplerulrich": "Ulrich",
"umangvaghela123": "Umang Vaghela",
"vandestouwe": "vandestouwe",
"vcanales": "Vicente Canales",
"vipulc2": "Vipul Chandel",
"vladytimy": "Vlad T",
"otshelnik-fm": "Vova Druzhaev",
"webmandesign": "WebMan Design &#124; Oliver Juhas",
"wendyjchen": "Wendy Chen",
"wesselvandenberg": "wesselvandenberg",
"westonruter": "Weston Ruter",
"wallstead": "Willis Allstead",
"ibdz": "Witt Witsan",
"worldedu": "worldedu",
"tikifez": "Xristopher Anderton",
"yannkozon": "Yann Kozon",
"yoavf": "Yoav Farhi",
"fierevere": "Yui",
"yuliyan": "Yuliyan Slavchev",
"zebulan": "Zebulan Stanphill"
}
},
"libraries": {
"name": "External Libraries",
"type": "libraries",
"data": [
[
"Babel Polyfill",
"https://babeljs.io/docs/en/babel-polyfill"
],
[
"Backbone.js",
"http://backbonejs.org/"
],
[
"Class POP3",
"https://squirrelmail.org/"
],
[
"clipboard.js",
"https://clipboardjs.com/"
],
[
"Closest",
"https://github.com/jonathantneal/closest"
],
[
"CodeMirror",
"https://codemirror.net/"
],
[
"Color Animations",
"https://plugins.jquery.com/color/"
],
[
"getID3()",
"http://getid3.sourceforge.net/"
],
[
"FormData",
"https://github.com/jimmywarting/FormData"
],
[
"Horde Text Diff",
"https://pear.horde.org/"
],
[
"hoverIntent",
"http://cherne.net/brian/resources/jquery.hoverIntent.html"
],
[
"imgAreaSelect",
"http://odyniec.net/projects/imgareaselect/"
],
[
"Iris",
"https://github.com/Automattic/Iris"
],
[
"jQuery",
"https://jquery.com/"
],
[
"jQuery UI",
"https://jqueryui.com/"
],
[
"jQuery Hotkeys",
"https://github.com/tzuryby/jquery.hotkeys"
],
[
"jQuery serializeObject",
"http://benalman.com/projects/jquery-misc-plugins/"
],
[
"jQuery.query",
"https://plugins.jquery.com/query-object/"
],
[
"jQuery.suggest",
"https://github.com/pvulgaris/jquery.suggest"
],
[
"jQuery UI Touch Punch",
"http://touchpunch.furf.com/"
],
[
"json2",
"https://github.com/douglascrockford/JSON-js"
],
[
"Lodash",
"https://lodash.com/"
],
[
"Masonry",
"http://masonry.desandro.com/"
],
[
"MediaElement.js",
"http://mediaelementjs.com/"
],
[
"Moment",
"http://momentjs.com/"
],
[
"PclZip",
"http://www.phpconcept.net/pclzip/"
],
[
"PemFTP",
"https://www.phpclasses.org/package/1743-PHP-FTP-client-in-pure-PHP.html"
],
[
"phpass",
"http://www.openwall.com/phpass/"
],
[
"PHPMailer",
"https://github.com/PHPMailer/PHPMailer"
],
[
"Plupload",
"http://www.plupload.com/"
],
[
"random_compat",
"https://github.com/paragonie/random_compat"
],
[
"React",
"https://reactjs.org/"
],
[
"Redux",
"https://redux.js.org/"
],
[
"Requests",
"http://requests.ryanmccue.info/"
],
[
"SimplePie",
"http://simplepie.org/"
],
[
"The Incutio XML-RPC Library",
"https://code.google.com/archive/p/php-ixr/"
],
[
"Thickbox",
"http://codylindley.com/thickbox/"
],
[
"TinyMCE",
"https://www.tinymce.com/"
],
[
"Twemoji",
"https://github.com/twitter/twemoji"
],
[
"Underscore.js",
"http://underscorejs.org/"
],
[
"whatwg-fetch",
"https://github.com/github/fetch"
],
[
"zxcvbn",
"https://github.com/dropbox/zxcvbn"
]
]
}
},
"data": {
"profiles": "https://profiles.wordpress.org/%s",
"version": "5.7"
}
}

1062
inc/credits/json/5.8.json Normal file

File diff suppressed because it is too large Load diff

1122
inc/credits/json/5.9.json Normal file

File diff suppressed because it is too large Load diff

1018
inc/credits/json/6.0.json Normal file

File diff suppressed because it is too large Load diff

1381
inc/credits/json/6.1.json Normal file

File diff suppressed because it is too large Load diff

1118
inc/credits/json/6.2.json Normal file

File diff suppressed because it is too large Load diff

1229
inc/credits/json/6.3.json Normal file

File diff suppressed because it is too large Load diff

1277
inc/credits/json/6.4.json Normal file

File diff suppressed because it is too large Load diff

1296
inc/credits/json/6.5.json Normal file

File diff suppressed because it is too large Load diff

1283
inc/credits/json/6.6.json Normal file

File diff suppressed because it is too large Load diff

1408
inc/credits/json/6.7.json Normal file

File diff suppressed because it is too large Load diff

1369
inc/credits/json/6.8.json Normal file

File diff suppressed because it is too large Load diff

134
inc/credits/namespace.php Normal file
View file

@ -0,0 +1,134 @@
<?php
/**
* Prevents calls to the Credits API.
* Prevents calls to Gravatar.com.
*
* @package FAIR
*/
namespace FAIR\Credits;
use WP_Error;
const WP_CORE_LATEST_MAJOR_RELEASE = '6.8';
const JSON_BASE = __DIR__ . '/json/';
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'pre_http_request', __NAMESPACE__ . '\\replace_credits_api', 10, 3 );
}
/**
* Replace versions 1.0 and 1.1 of the Credits API with local file copies.
*
* @param bool|array $value Filtered value, or false to proceed.
* @param array $parsed_args The request's arguments.
* @param string $url The request's URL.
* @return bool|array|WP_Error Replaced value, false to proceed, or WP_Error on failure.
*/
function replace_credits_api( $response, array $parsed_args, string $url ) {
if ( strpos( $url, 'api.wordpress.org/core/credits/' ) === false ) {
return $response;
}
$major_version = get_major_version( $url );
if ( is_wp_error( $major_version ) ) {
return $major_version;
}
$credits = get_credits( $major_version );
if ( is_wp_error( $credits ) ) {
return $credits;
}
// Credits API 1.0 returns a serialized value rather than JSON.
if ( strpos( $url, 'credits/1.0' ) !== false ) {
$credits = serialize( json_decode( $credits, true ) );
}
return get_response( $credits );
}
/**
* Get the major version from the URL.
*
* Falls back to the currently installed major version if the version is not found in the URL.
*
* @param string $url The request's URL.
* @return string|WP_Error The major version string, or WP_Error on failure.
*/
function get_major_version( string $url ) {
// wp_get_wp_version() was introduced in 6.7.
$wp_version = function_exists( 'wp_get_wp_version' ) ? wp_get_wp_version() : $GLOBALS['wp_version'];
$version_parts = explode( '.', $wp_version );
$installed_major = $version_parts[0] . '.' . $version_parts[1];
$query = parse_url( $url, PHP_URL_QUERY );
if ( ! is_string( $query ) ) {
return $installed_major;
}
parse_str( $query, $params );
if ( ! isset( $params['version'] ) ) {
return $installed_major;
}
// Only the X.X major version is used by the Credits API.
if ( ! preg_match( '/^([0-9]+\.[0-9])/', $params['version'], $matches ) ) {
return new WP_Error(
'invalid_version',
sprintf(
/* translators: %s: The version string. */
__( '%s is not a valid version string.', 'fair' ),
$params['version']
)
);
}
return $matches[1];
}
/**
* Get the credits for a WordPress major version.
*
* @param string $major_version The WordPress major version string.
* @return string|WP_Error The credits in JSON format, or WP_Error on failure.
*/
function get_credits( string $major_version ) {
$file = JSON_BASE . $major_version . '.json';
if ( file_exists( $file ) ) {
return trim( file_get_contents( $file ) );
}
// The Credits API always falls back to the latest major version.
$fallback_file = JSON_BASE . WP_CORE_LATEST_MAJOR_RELEASE . '.json';
if ( file_exists( $fallback_file ) ) {
return trim( file_get_contents( $fallback_file ) );
}
return new WP_Error(
'no_credits_found',
__( 'No credits could be found.', 'fair' )
);
}
/**
* Get a fake response.
*
* @param string $body The response's body.
* @return array The response.
*/
function get_response( string $body ) : array {
return [
'response' => [
'code' => 200,
'message' => 'OK',
],
'body' => $body,
'headers' => [],
'cookies' => [],
'http_response_code' => 200,
];
}

View file

@ -0,0 +1,254 @@
<?php
namespace FAIR\Dashboard_Widgets;
use WP_Error;
const EVENTS_API = 'https://api.fair.pm/fair/v1/events';
/**
* Bootstrap.
*/
function bootstrap() {
add_action( 'wp_ajax_get-community-events', __NAMESPACE__ . '\\get_community_events_ajax', 0 );
remove_action( 'wp_ajax_get-community-events', 'wp_ajax_get_community_events', 1 );
add_action( 'wp_dashboard_setup', __NAMESPACE__ . '\\on_dashboard_setup' );
// Inject necessary styles.
add_action( 'admin_head-index.php', __NAMESPACE__ . '\\add_admin_head' );
add_action( 'admin_head-index.php', __NAMESPACE__ . '\\set_help_content_fair_planet_urls' );
// Replace the Planet URL in the legacy WordPress Planet Feed Widget.
add_filter( 'dashboard_secondary_link', __NAMESPACE__ . '\\get_fair_planet_url' );
// Replace the Planet feed in the legacy WordPress Planet Feed Widget.
add_filter( 'dashboard_secondary_feed', __NAMESPACE__ . '\\get_fair_planet_feed' );
}
/**
* Fires after core widgets for the admin dashboard have been registered.
*
*/
function on_dashboard_setup() : void {
// Swap the "Primary" dashboard widget's callback.
if ( ! empty( $GLOBALS['wp_meta_boxes']['dashboard']['side']['core']['dashboard_primary'] ) ) {
$GLOBALS['wp_meta_boxes']['dashboard']['side']['core']['dashboard_primary']['callback'] = __NAMESPACE__ . '\\render_news_widget';
}
}
/**
* Add custom scripts/styles to admin head.
*
* @return void
*/
function add_admin_head() {
?>
<style>
/* Hide the location selector. */
.community-events .activity-block:first-child {
display: none;
}
/* Add our default icon */
.community-events .event-event .event-icon:before {
content: "\f307";
}
</style>
<?php
}
/**
* Get community events.
*
* @return void Outputs JSON directly for the API.
*/
function get_community_events_ajax() : void {
$data = get_community_events();
if ( is_wp_error( $data ) ) {
wp_send_json_error( [ 'error' => $data->get_error_message() ] );
return;
}
wp_send_json_success( $data );
}
/**
* Get community events.
*
* @return array|WP_Error List of events or WP_Error on failure.
*/
function get_community_events() {
$response = wp_remote_get( EVENTS_API );
if ( is_wp_error( $response ) ) {
return $response;
}
$data = json_decode( wp_remote_retrieve_body( $response ), true );
if ( ! is_array( $data ) ) {
return new WP_Error(
'parse_error',
__( 'Unable to fetch events (parse error).', 'fair' )
);
}
// Map data into the expected format.
$events = [];
foreach ( $data as $event ) {
$loc_name = _x( 'Online', 'default event location', 'fair' );
if ( ! empty( $event['camp_map_location'] ) ) {
$parts = [
$event['camp_map_location']['city'] ?? null,
$event['camp_map_location']['state'] ?? null,
$event['camp_map_location']['country'] ?? null,
];
$loc_name = implode( ', ', array_slice( array_filter( $parts ), 0, 2 ) );
}
$start = strtotime( $event['camp_start_date'] );
$end = strtotime( $event['camp_end_date'] );
$url = add_query_arg( 'ref', 'fair-dashboard', $event['camp_website_url'] ?? $event['link'] );
$events[] = array(
'type' => 'event',
'title' => $event['title']['rendered'],
'url' => $url,
'meetup' => null,
'meetup_url' => null,
'date' => date( 'Y-m-d', $start ),
'end_date' => date( 'Y-m-d', $end ),
'start_unix_timestamp' => $start,
'end_unix_timestamp' => $end,
'location' => [
'location' => $loc_name,
'country' => $event['camp_map_location'] ? $event['camp_map_location']['country_short'] : '',
'latitude' => $event['camp_lat'] ?? 0,
'longitude' => $event['camp_lng'] ?? 0,
],
);
}
// Resort events by start date.
usort( $events, fn ( $a, $b ) => ( $a['start_unix_timestamp'] <=> $b['start_unix_timestamp'] ) );
// Filter to upcoming.
$events = array_filter( $events, fn ( $ev ) => $ev['start_unix_timestamp'] > time() );
return [
'events' => array_slice( $events, 0, 3 ),
'location' => [
// Force into showing all events.
'description' => 'everywhere',
'location' => '',
'country' => 'ZZ',
'latitude' => 0,
'longitude' => 0,
],
];
}
/**
* Render the news ("Primary") widget.
*
* @internal Overrides the default to insert our own footer links, which are
* otherwise not filterable.
*/
function render_news_widget() : void {
wp_print_community_events_markup();
?>
<div class="wordpress-news hide-if-no-js">
<?php wp_dashboard_primary(); ?>
</div>
<p class="community-events-footer">
<?php
printf(
'<a href="%1$s" target="_blank">%2$s <span class="screen-reader-text"> %3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>',
/* translators: If a Rosetta site exists (e.g. https://es.fair.pm/news/), then use that. Otherwise, leave untranslated. */
esc_url( _x( 'https://fair.pm/', 'Events and News dashboard widget', 'fair' ) ),
__( 'News' ),
/* translators: Hidden accessibility text. */
__( '(opens in a new tab)' )
);
?>
|
<?php
printf(
'<a href="%1$s" target="_blank">%2$s <span class="screen-reader-text"> %3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>',
'https://thewp.world/events/',
__( 'Events (by The WP World)', 'fair' ),
/* translators: Hidden accessibility text. */
__( '(opens in a new tab)' )
);
?>
</p>
<?php
}
/**
* Get the FAIR Planet URL,
*
* @return string
*/
function get_fair_planet_url() : string {
if ( defined( 'FAIR_PLANET_URL' ) ) {
return FAIR_PLANET_URL;
}
return 'https://planet.fair.pm/';
}
/**
* Get the FAIR Planet feed.
*
* @return string
*/
function get_fair_planet_feed() : string {
if ( defined( 'FAIR_PLANET_FEED' ) ) {
return FAIR_PLANET_FEED;
}
return 'https://planet.fair.pm/atom.xml';
}
/**
* Replace the WordPress Planet URL with the Fair Planet URL.
* No available filter for this.
*
* @return void
*/
function set_help_content_fair_planet_urls() : void {
$screen = get_current_screen();
if ( ! $screen || 'dashboard' !== $screen->id ) {
return;
}
$tab = $screen->get_help_tab( 'help-content' );
if ( ! $tab ) {
return;
}
$tab_title = $tab['title'];
$planet_fair_url = get_fair_planet_url();
$planet_fair_url = rtrim( $planet_fair_url, '/' );
$new_tab_content = preg_replace(
'/https?:\/\/planet\.wordpress\.org/',
$planet_fair_url,
$tab['content'],
);
$screen->remove_help_tab( 'help-content' );
$screen->add_help_tab(
[
'id' => 'help-content',
'title' => $tab_title,
'content' => $new_tab_content,
]
);
}

View file

@ -0,0 +1,84 @@
<?php
/**
* Prevents calls to the WordPress.org API for the default repository.
*
* @package FAIR
*/
namespace FAIR\Default_Repo;
use WP_Error;
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'pre_http_request', __NAMESPACE__ . '\\replace_repo_api_urls', 100, 3 );
add_filter( 'install_plugins_tabs', __NAMESPACE__ . '\\remove_favorites_tab' );
}
/**
* Get the default repository domain.
*
* This allows for hosts or users to override the default to a local mirror.
*
* @return string The default repository domain.
*/
function get_default_repo_domain() : string {
if ( defined( 'FAIR_DEFAULT_REPO_DOMAIN' ) ) {
return FAIR_DEFAULT_REPO_DOMAIN;
}
return 'api.aspirecloud.net';
}
/**
* Replace the repository API URLs.
*
* Replaces api.wordpress.org with the repository we're using, for the plugins
* and themes APIs. Only these get passed to AspirePress, as the others are
* handled in other modules.
*
* @param array $args
* @param string $url
* @return bool|array Replaced value, or false to proceed.
*/
function replace_repo_api_urls( $status, $args, $url ) {
static $is_replacing = false;
if ( $is_replacing ) {
return $status;
}
if (
strpos( $url, 'api.wordpress.org/plugins/' ) === false
&& strpos( $url, 'api.wordpress.org/themes/' ) === false
&& strpos( $url, 'api.wordpress.org/core/version-check/' ) === false
) {
return $status;
}
// Shortcircuit if the user has explicitly chosen to use api.wordpress.org.
if ( get_default_repo_domain() === 'api.wordpress.org' ) {
return $status;
}
// Alter the URL, then reissue the request (with a lock to prevent loops).
$url = str_replace( '//api.wordpress.org/', '//' . get_default_repo_domain() . '/', $url );
$is_replacing = true;
$response = wp_remote_request( $url, $args );
$is_replacing = false;
return $response;
}
/**
* Remove the Favorites tab from the plugin browser.
*
* This tab only makes sense for WordPress.org, so is not supported by
* other repositories.
*
* @param array $tabs
*/
function remove_favorites_tab( array $tabs ) : array {
unset( $tabs['favorites'] );
return $tabs;
}

View file

@ -0,0 +1,26 @@
<?php
/**
* Disable the Openverse media category in the block editor.
*
* @package FAIR
*/
namespace FAIR\Disable_Openverse;
/**
* Bootstrap the module functionality.
*/
function bootstrap() {
add_filter( 'block_editor_settings_all', __NAMESPACE__ . '\\disable_openverse_block_editor_settings' );
}
/**
* Disable the Openverse media category in the block editor.
*
* @param array $settings The block editor settings.
* @return array The modified block editor settings.
*/
function disable_openverse_block_editor_settings( array $settings ) : array {
$settings['enableOpenverseMediaCategory'] = false;
return $settings;
}

196
inc/importers/namespace.php Normal file
View file

@ -0,0 +1,196 @@
<?php
/**
* Prevents calls to the WordPress.org API for popular importers.
*
* @package FAIR
*/
namespace FAIR\Importers;
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'pre_http_request', __NAMESPACE__ . '\\replace_popular_importers_api', 10, 3 );
}
/**
* Replace the retrieval of popular import plugins.
*
* @param false|array|WP_Error $response A preemptive return value of an HTTP request. Default false.
* @param array $parsed_args HTTP request arguments.
* @param string $url The request URL.
* @return bool Replaced value, or false to proceed.
*/
function replace_popular_importers_api( $response, $parsed_args, $url ) {
if ( strpos( $url, 'api.wordpress.org/core/importers' ) !== false ) {
$query = parse_url( $url, PHP_URL_QUERY );
parse_str( $query, $params );
return get_popular_importers_response( $params['version'] );
}
// Continue as we were.
return $response;
}
/**
* Determine the version-specific list to request, and return a fake response.
*
* @param string $version The WordPress version string.
* @return array HTTP API response-like data.
*/
function get_popular_importers_response( $version ) {
$version = str_replace( '-src', '', $version );
if ( version_compare( $version, '5.4-beta', '>=' ) ) {
$popular_importers = get_popular_importers_gte_46();
// Don't advertise the Blogroll importer.
// See https://meta.trac.wordpress.org/ticket/4706.
unset( $popular_importers['opml'] );
} elseif ( version_compare( $version, '4.6-beta', '>=' ) ) {
$popular_importers = get_popular_importers_gte_46();
} else {
$popular_importers = get_popular_importers_lt_46();
}
return [
'response' => [
'code' => 200,
'message' => 'OK',
],
'body' => wp_json_encode( [
'importers' => $popular_importers,
'translated' => false,
] ),
'headers' => [],
'cookies' => [],
'http_response_code' => 200,
];
}
/**
* Get the list of popular import plugins for 4.6-beta and later.
*
* This function is synced in wp-admin/includes/import.php of >= 4.6.
*
* Strings are translated by core.
*
* @return array The list of popular import plugins.
*/
function get_popular_importers_gte_46() {
return [
// slug => name, description, plugin slug, and register_importer() slug.
'blogger' => [
'name' => 'Blogger' ,
'description' => 'Import posts, comments, and users from a Blogger blog.' ,
'plugin-slug' => 'blogger-importer',
'importer-id' => 'blogger',
],
'wpcat2tag' => [
'name' => 'Categories and Tags Converter' ,
'description' => 'Convert existing categories to tags or tags to categories, selectively.' ,
'plugin-slug' => 'wpcat2tag-importer',
'importer-id' => 'wp-cat2tag',
],
'livejournal' => [
'name' => 'LiveJournal' ,
'description' => 'Import posts from LiveJournal using their API.' ,
'plugin-slug' => 'livejournal-importer',
'importer-id' => 'livejournal',
],
'movabletype' => [
'name' => 'Movable Type and TypePad' ,
'description' => 'Import posts and comments from a Movable Type or TypePad blog.' ,
'plugin-slug' => 'movabletype-importer',
'importer-id' => 'mt',
],
'opml' => [
'name' => 'Blogroll' ,
'description' => 'Import links in OPML format.' ,
'plugin-slug' => 'opml-importer',
'importer-id' => 'opml',
],
'rss' => [
'name' => 'RSS' ,
'description' => 'Import posts from an RSS feed.' ,
'plugin-slug' => 'rss-importer',
'importer-id' => 'rss',
],
'tumblr' => [
'name' => 'Tumblr' ,
'description' => 'Import posts &amp; media from Tumblr using their API.' ,
'plugin-slug' => 'tumblr-importer',
'importer-id' => 'tumblr',
],
'wordpress' => [
'name' => 'WordPress',
'description' => 'Import posts, pages, comments, custom fields, categories, and tags from a WordPress export file.' ,
'plugin-slug' => 'wordpress-importer',
'importer-id' => 'wordpress',
],
];
}
/**
* Get the list of popular import plugins for earlier than 4.5.
*
* This function is synced in wp-admin/includes/import.php of <= 4.5.
*
* Strings are translated by core.
*
* @return array The list of popular import plugins.
*/
function get_popular_importers_lt_46() {
return [
// slug => name, description, plugin slug, and register_importer() slug.
'blogger' => [
'name' => 'Blogger' ,
'description' => 'Install the Blogger importer to import posts, comments, and users from a Blogger blog.' ,
'plugin-slug' => 'blogger-importer',
'importer-id' => 'blogger',
],
'wpcat2tag' => [
'name' => 'Categories and Tags Converter' ,
'description' => 'Install the category/tag converter to convert existing categories to tags or tags to categories, selectively.' ,
'plugin-slug' => 'wpcat2tag-importer',
'importer-id' => 'wpcat2tag',
],
'livejournal' => [
'name' => 'LiveJournal' ,
'description' => 'Install the LiveJournal importer to import posts from LiveJournal using their API.' ,
'plugin-slug' => 'livejournal-importer',
'importer-id' => 'livejournal',
],
'movabletype' => [
'name' => 'Movable Type and TypePad' ,
'description' => 'Install the Movable Type importer to import posts and comments from a Movable Type or TypePad blog.' ,
'plugin-slug' => 'movabletype-importer',
'importer-id' => 'mt',
],
'opml' => [
'name' => 'Blogroll' ,
'description' => 'Install the blogroll importer to import links in OPML format.' ,
'plugin-slug' => 'opml-importer',
'importer-id' => 'opml',
],
'rss' => [
'name' => 'RSS' ,
'description' => 'Install the RSS importer to import posts from an RSS feed.' ,
'plugin-slug' => 'rss-importer',
'importer-id' => 'rss',
],
'tumblr' => [
'name' => 'Tumblr' ,
'description' => 'Install the Tumblr importer to import posts &amp; media from Tumblr using their API.' ,
'plugin-slug' => 'tumblr-importer',
'importer-id' => 'tumblr',
],
'wordpress' => [
'name' => 'WordPress',
'description' => 'Install the WordPress importer to import posts, pages, comments, custom fields, categories, and tags from a WordPress export file.' ,
'plugin-slug' => 'wordpress-importer',
'importer-id' => 'wordpress',
],
];
}

78
inc/namespace.php Normal file
View file

@ -0,0 +1,78 @@
<?php
/**
* Namespace for the plugin.
*
* @package FAIR
*/
namespace FAIR;
use Fragen\Git_Updater;
const NS_SEPARATOR = '\\';
function bootstrap() {
// Prevent accidental re-initialization of the plugin.
static $did_init = false;
if ( $did_init ) {
return;
}
$did_init = true;
register_class_path( __NAMESPACE__, __DIR__ . '/inc' );
// Modules:
Avatars\bootstrap();
Credits\bootstrap();
Dashboard_Widgets\bootstrap();
Default_Repo\bootstrap();
Disable_Openverse\bootstrap();
Importers\bootstrap();
Pings\bootstrap();
Salts\bootstrap();
Settings\bootstrap();
User_Notification\bootstrap();
Version_Check\bootstrap();
// Self-update check.
( new Git_Updater\Lite( PLUGIN_FILE ) )->run();
}
/**
* Register a path for autoloading.
*
* @param string $prefix The namespace prefix.
* @param string $path The path to the class files.
* @return void
*/
function register_class_path( string $prefix, string $path ) : void {
$prefix_length = strlen( $prefix );
spl_autoload_register( function ( $class ) use ( $prefix, $prefix_length, $path ) {
if ( strpos( $class, $prefix . NS_SEPARATOR ) !== 0 ) {
return;
}
// Strip prefix from the start (ala PSR-4).
$class = substr( $class, $prefix_length + 1 );
$class = strtolower( $class );
$class = str_replace( '_', '-', $class );
$file = '';
// Split on namespace separator.
$last_ns_pos = strripos( $class, NS_SEPARATOR );
if ( $last_ns_pos !== false ) {
$namespace = substr( $class, 0, $last_ns_pos );
$class = substr( $class, $last_ns_pos + 1 );
$file = str_replace( NS_SEPARATOR, DIRECTORY_SEPARATOR, $namespace ) . DIRECTORY_SEPARATOR;
}
$file .= 'class-' . $class . '.php';
$path = $path . $file;
if ( file_exists( $path ) ) {
require_once $path;
}
} );
Version_Check\bootstrap();
}

168
inc/pings/namespace.php Normal file
View file

@ -0,0 +1,168 @@
<?php
namespace FAIR\Pings;
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'pre_option_ping_sites', __NAMESPACE__ . '\\remove_pingomatic_from_ping_sites' );
add_filter( 'query_vars', __NAMESPACE__ . '\\register_query_vars' );
add_action( 'init', __NAMESPACE__ . '\\get_indexnow_key' );
add_action( 'init', __NAMESPACE__ . '\\add_key_rewrite_rule' );
add_action( 'template_redirect', __NAMESPACE__ . '\\handle_key_file_request' );
add_action( 'transition_post_status', __NAMESPACE__ . '\\ping_indexnow', 10, 3 );
}
/**
* Register query vars.
*
* @param array $vars Array of query vars.
* @return array Modified array of query vars.
*/
function register_query_vars( $vars ) {
$vars[] = 'fair_indexnow_key';
return $vars;
}
/**
* Remove pingomatic.com from the ping_sites option.
*
* @param string $value The ping_sites option value.
*/
function remove_pingomatic_from_ping_sites( $value ) {
$value = str_replace( 'http://rpc.pingomatic.com/', '', $value );
$value = str_replace( "\n\n", "\n", trim( $value, "\n" ) );
return $value;
}
/**
* Generate and store the IndexNow key if it doesn't exist.
*
* @return string Unique site key.
*/
function get_indexnow_key() : string {
$key = get_option( 'fair_indexnow_key' );
if ( ! $key ) {
// Generate a random key that meets IndexNow requirements.
// Must be 8-128 hexadecimal characters (a-f, 0-9).
$key = strtolower( wp_generate_password( 40, false, false ) );
update_option( 'fair_indexnow_key', $key );
// Flush the rewrite rules.
flush_rewrite_rules();
}
return $key;
}
/**
* Add rewrite rule for the IndexNow key file.
*/
function add_key_rewrite_rule() {
$key = get_indexnow_key();
add_rewrite_rule(
'fair-indexnow-' . $key . '$',
'index.php?fair_indexnow_key=' . $key,
'top'
);
}
/**
* Handle the IndexNow key file request.
*/
function handle_key_file_request() {
if ( ! get_query_var( 'fair_indexnow_key' ) ) {
return;
}
$key = get_indexnow_key();
if ( ! $key || $key !== get_query_var( 'fair_indexnow_key' ) ) {
wp_die( 'Invalid key: ' . get_query_var( 'fair_indexnow_key' ), 'IndexNow Key Error', [ 'response' => 403 ] );
return;
}
// Set the content type to text/plain
header( 'Content-Type: text/plain' );
header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time() + YEAR_IN_SECONDS ) . ' GMT' );
header( 'Cache-Control: public, max-age=' . YEAR_IN_SECONDS );
// Output the key
echo $key;
exit;
}
/**
* Ping IndexNow when a post status changes.
*
* @param string $new_status New post status.
* @param string $old_status Old post status.
* @param WP_Post $post Post object.
*/
function ping_indexnow( $new_status, $old_status, $post ) : void {
// Only ping for published posts.
if ( 'publish' !== $new_status ) {
return;
}
// Skip revisions and autosaves.
if ( wp_is_post_revision( $post ) || wp_is_post_autosave( $post ) ) {
return;
}
// Skip non-public post types.
if ( ! is_post_type_viewable( $post->post_type ) ) {
return;
}
$key = get_option( 'fair_indexnow_key' );
if ( ! $key ) {
return;
}
$url = get_permalink( $post );
if ( ! $url ) {
return;
}
// Allow for filtering the URL list.
$url_list = apply_filters( 'fair_indexnow_url_list', [ $url ] );
// Allow for filtering the key location.
$key_location = apply_filters( 'fair_indexnow_key_location', trailingslashit( home_url( 'fair-indexnow-' . $key ) ) );
// The "false" on the end of the x-source-info header determines whether this is a manual submission or not.
$data = [
'host' => wp_parse_url( home_url(), PHP_URL_HOST ),
'key' => $key,
'keyLocation' => $key_location,
'urlList' => $url_list,
];
$request = [
'body' => wp_json_encode( $data, JSON_UNESCAPED_SLASHES ),
'headers' => [
'Content-Type' => 'application/json; charset=utf-8',
'x-source-info' => 'https://example.com/fair-wp/indexnow/false', // TODO: replace example.com with the domain we end up using.
],
];
// Ping IndexNow.
$response = wp_remote_post(
'https://api.indexnow.org/indexnow',
$request
);
// Log the response for debugging. As per https://www.indexnow.org/documentation#response, either 200 or 202 is acceptable.
if ( is_wp_error( $response ) ) {
error_log( 'IndexNow ping failed: ' . $response->get_error_message() . print_r( $request, true ) );
return;
}
$status = wp_remote_retrieve_response_code( $response );
if ( ! in_array( $status, [ 200, 202 ], true ) ) {
error_log( 'IndexNow ping failed: ' . $status . print_r( $request, true ) );
}
}

View file

@ -0,0 +1,11 @@
<?php
/**
* Prevents calls to the WordPress.org API for the default repository.
*
* @package FAIR
*/
namespace FAIR\Repositories;
function bootstrap() {
}

225
inc/salts/namespace.php Normal file
View file

@ -0,0 +1,225 @@
<?php
/**
* Prevents calls to the WordPress.org API for salt generation.
*
* @package FAIR
*/
namespace FAIR\Salts;
/**
* This is the character set used for various functions.
*/
const CHARACTER_SET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'pre_http_request', __NAMESPACE__ . '\\replace_salt_generation_via_api', 10, 3 );
}
/**
* Replace the call to retrieve generated salt values.
*
* @param bool|array $value Filtered value, or false to proceed.
* @param array $args
* @param string $url
* @return bool|array Replaced value, or false to proceed.
*/
function replace_salt_generation_via_api( $value, $args, $url ) {
if ( strpos( $url, 'api.wordpress.org/secret-key/1.1/salt' ) !== false ) {
return get_salt_generation_response();
}
// Continue as we were.
return $value;
}
/**
* Generate the salts we need.
*
* @return array HTTP API response-like data.
*/
function get_salt_generation_response() {
// Send back an API worthy response.
return [
'body' => generate_salt_response_body(),
'cookies' => [],
'headers' => [],
'filename' => '',
'http_response_code' => 200,
'response' => [
'code' => 200,
'message' => 'OK',
],
];
}
/**
* Generate the body for the API response.
*
* @return string
*/
function generate_salt_response_body() {
// Grab my key names.
$get_key_names = define_salt_keynames();
$salt_defines = '';
// Now loop my key names and add a salt to each one.
foreach ( $get_key_names as $keyname ) {
$salt_defines .= 'define( \'' . $keyname . '\', \'' . generate_salt_string() . '\' );' . "\n";
}
// Send back the string.
return $salt_defines;
}
/**
* Define and return the array of names.
*
* @return array
*/
function define_salt_keynames() {
return [
'AUTH_KEY',
'SECURE_AUTH_KEY',
'LOGGED_IN_KEY',
'NONCE_KEY',
'AUTH_SALT',
'SECURE_AUTH_SALT',
'LOGGED_IN_SALT',
'NONCE_SALT',
];
}
/**
* Generate a unique string for the salt, using multiple crypto methods.
*
* @return array
*/
function generate_salt_string() {
// Try the same secure CSPRNG method core uses first.
if ( function_exists( 'random_int' ) ) {
return generate_string_via_random_int();
}
// Leverage OpenSSL's pseudo.
if ( function_exists( 'openssl_random_pseudo_bytes' ) ) {
return generate_string_via_openssl_random();
}
// Use mt_rand which is OK but not ideal.
if ( function_exists( 'mt_rand' ) ) {
return generate_string_via_mt_rand();
}
// Shuffle is random, but this is not ideal.
if ( function_exists( 'str_shuffle' ) ) {
return generate_string_via_str_shuffle();
}
// Ok. Lowest level attempt, same as core.
return generate_string_via_substr();
}
/**
* Use the `random_int` function to create a random string.
*
* @return string A 64 character string.
*/
function generate_string_via_random_int() {
// Set a max amount.
$define_max = mb_strlen( CHARACTER_SET, '8bit' ) - 1;
$saltgrain = '';
// Loop through to generate each character of the string.
for ( $i = 0; $i < 64; ++$i ) {
$saltgrain .= CHARACTER_SET[ random_int( 0, $define_max ) ];
}
return esc_attr( $saltgrain );
}
/**
* Use the `openssl_random_pseudo_bytes` function to create a random string.
*
* @return string A 64 character string.
*/
function generate_string_via_openssl_random() {
// Generate some bytes to begin.
$set_bytes = openssl_random_pseudo_bytes( 138 );
// Now encode it to make sure it's a usable string.
$saltshaker = base64_encode( $set_bytes );
// Establish the first 64 characters.
$saltgrain = substr( $saltshaker, 0, 64 );
return esc_attr( $saltgrain );
}
/**
* Use the `mt_rand` function to create a random string.
*
* @return string A 64 character string.
*/
function generate_string_via_mt_rand() {
$saltgrain = '';
// Loop through to generate each character of the string.
for ( $i = 0; $i < 64; $i++ ) {
// Randomly select an index from the character set using mt_rand().
$set_index = mt_rand( 0, strlen( CHARACTER_SET ) - 1 );
// Append the character to the string.
$saltgrain .= CHARACTER_SET[ $set_index ];
}
return esc_attr( $saltgrain );
}
/**
* Use the `str_shuffle` function to create a random string.
*
* @return string A 64 character string.
*/
function generate_string_via_str_shuffle() {
// Shuffle the string to randomize the order of characters.
$shuffle_characters = str_shuffle( CHARACTER_SET );
// Establish a substring of the shuffled string with our length.
$shuffled_saltgrain = substr( $shuffle_characters, 0, 64 );
return esc_attr( $shuffled_saltgrain );
}
/**
* Use the `substr` function to create a random string, which
* is basically what `wp_generate_password` does.
*
* @return string A 64 character string.
*/
function generate_string_via_substr() {
$saltgrain = '';
// Loop through to generate each character of the string.
for ( $i = 0; $i < 64; $i++ ) {
// Append the character to the string.
$saltgrain .= substr( CHARACTER_SET, mt_rand( 0, strlen( CHARACTER_SET ) - 1 ), 1 );
}
return esc_attr( $saltgrain );
}

174
inc/settings/namespace.php Normal file
View file

@ -0,0 +1,174 @@
<?php
/**
* Implements the plugin settings page.
*
* @package FAIR
*/
namespace FAIR\Settings;
/**
* Bootstrap.
*/
function bootstrap() {
add_action( 'admin_menu', __NAMESPACE__ . '\\create_settings_menu' );
add_action( 'admin_notices', __NAMESPACE__ . '\\display_settings_saved_notice' );
add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\\enqueue_scripts_and_styles' );
}
/**
* Enqueue assets.
*
* @param string $hook_suffix Hook suffix for the current admin page.
* @return void
*/
function enqueue_scripts_and_styles( string $hook_suffix ) {
if ( 'toplevel_page_fair-settings' !== $hook_suffix ) {
return;
}
wp_enqueue_style(
'fair-admin',
esc_url( plugin_dir_url( \FAIR\PLUGIN_FILE ) . 'assets/css/admin.css' ),
[],
\FAIR\VERSION
);
}
/**
* Create the settings menu.
*
* @return void
*/
function create_settings_menu() {
add_menu_page(
__( 'FAIR Settings', 'fair' ),
__( 'FAIR Settings', 'fair' ),
'manage_options',
'fair-settings',
__NAMESPACE__ . '\\render_settings_page',
);
}
/**
* Render the settings page.
*/
function render_settings_page() {
// Check user permissions.
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'fair' ) );
}
if ( save_settings() ) {
set_transient( 'fair_settings_saved', true, 30 );
}
$settings = get_option( 'fair_settings', [] );
?>
<div class="wrap fair-settings">
<h1><?php esc_html_e( 'FAIR Settings', 'fair' ); ?></h1>
<form method="post">
<?php wp_nonce_field( 'fair_save_settings' ); ?>
<?php render_avatar_setting( $settings ); ?>
<?php submit_button( __( 'Save Settings', 'fair' ), 'primary', 'fair_settings_submit' ); ?>
</form>
</div>
<?php
}
/**
* Render the avatar source setting.
*
* @param array $settings The current settings options.
* @return void
*/
function render_avatar_setting( array $settings = [] ) {
$available_sources = get_avatar_sources();
$source = array_key_exists( 'avatar_source', $settings ) && array_key_exists( $settings['avatar_source'], $available_sources )
? $settings['avatar_source']
: array_key_first( $available_sources );
?>
<h2 class="title">
<?php esc_html_e( 'Avatar Settings', 'fair' ); ?>
</h2>
<div class="row">
<div class="label-wrapper">
<label for="fair-avatar-source">
<?php esc_html_e( 'Avatar Source', 'fair' ); ?>
</label>
</div>
<div class="field">
<select id="fair-avatar-source" name="fair_settings[avatar_source]" aria-describedby="fair-avatar-source-description">
<?php foreach ( $available_sources as $key => $label ) : ?>
<option value="<?php echo esc_attr( $key ); ?>" <?php selected( $source, $key ); ?>>
<?php echo esc_html( $label ); ?>
</option>
<?php endforeach; ?>
</select>
<p class="description" id="fair-avatar-source-description">
<?php esc_html_e( 'Avatars will be loaded from the selected source.', 'fair' ); ?>
</p>
</div>
</div>
<?php
}
/**
* Save settings.
*
* @return bool
*/
function save_settings() : bool {
if ( ! isset( $_POST['fair_settings'] ) || ! check_admin_referer( 'fair_save_settings' ) ) {
return false;
}
$raw = is_array( $_POST['fair_settings'] ) ? $_POST['fair_settings'] : [];
$settings = get_option( 'fair_settings', [] );
// Avatar source.
$avatar_sources = get_avatar_sources();
// Ensure the 'avatar_source' key exists and is a valid option.
$avatar_source = $raw['avatar_source'] ?? array_key_first( $avatar_sources );
if ( array_key_exists( $avatar_source, $avatar_sources ) ) {
$settings['avatar_source'] = $avatar_source;
}
// Update the settings option.
update_option( 'fair_settings', $settings, false );
return true;
}
/**
* Get the available avatar sources.
*
* @return array
*/
function get_avatar_sources() : array {
return [
'fair' => __( 'FAIR Avatars', 'fair' ),
'gravatar' => __( 'Gravatar', 'fair' ),
];
}
/**
* Display settings saved notice.
*
* @return void
*/
function display_settings_saved_notice() {
if ( get_transient( 'fair_settings_saved' ) ) {
delete_transient( 'fair_settings_saved' );
echo '<div class="notice notice-success is-dismissible"><p>'
. esc_html__( 'Settings saved successfully.', 'fair' )
. '</p></div>';
}
}

431
inc/updater/class-lite.php Normal file
View file

@ -0,0 +1,431 @@
<?php
/*
* @author Andy Fragen
* @license MIT
* @link https://github.com/afragen/git-updater-lite
* @package git-updater-lite
*/
namespace Fragen\Git_Updater;
/**
* Exit if called directly.
*/
if ( ! defined( 'WPINC' ) ) {
die;
}
if ( ! class_exists( 'Fragen\\Git_Updater\\Lite' ) ) {
/**
* Class Lite
*/
final class Lite {
// phpcs:disable Generic.Commenting.DocComment.MissingShort
/** @var string */
protected $file;
/** @var string */
protected $slug;
/** @var string */
protected $local_version;
/** @var \stdClass */
protected $api_data;
/** @var string */
protected $update_server;
// phpcs:enable
/**
* Constructor.
*
* @param string $file_path File path of plugin/theme.
*/
public function __construct( string $file_path ) {
$this->slug = basename( dirname( $file_path ) );
if ( str_ends_with( $file_path, 'functions.php' ) ) {
$this->file = $this->slug . '/style.css';
$file_path = dirname( $file_path ) . '/style.css';
} else {
$this->file = $this->slug . '/' . basename( $file_path );
}
$file_data = get_file_data(
$file_path,
array(
'Version' => 'Version',
'UpdateURI' => 'Update URI',
)
);
$this->local_version = $file_data['Version'];
$this->update_server = $this->check_update_uri( $file_data['UpdateURI'] );
}
/**
* Ensure properly formatted Update URI.
*
* @param string $updateUri Data from Update URI header.
*
* @return string|\WP_Error
*/
private function check_update_uri( $updateUri ) {
if ( filter_var( $updateUri, FILTER_VALIDATE_URL )
&& null === parse_url( $updateUri, PHP_URL_PATH ) // null means no path is present.
) {
$updateUri = untrailingslashit( trim( $updateUri ) );
} else {
return new \WP_Error( 'invalid_header_data', 'Invalid data from Update URI header', $updateUri );
}
return $updateUri;
}
/**
* Get API data.
*
* @global string $pagenow Current page.
* @return void|\WP_Error
*/
public function run() {
global $pagenow;
// Needed for mu-plugin.
if ( ! isset( $pagenow ) ) {
$php_self = isset( $_SERVER['PHP_SELF'] ) ? sanitize_url( wp_unslash( $_SERVER['PHP_SELF'] ) ) : null;
if ( null !== $php_self ) {
// phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
$pagenow = basename( $php_self );
}
}
// Only run on the following pages.
$pages = array( 'update-core.php', 'update.php', 'plugins.php', 'themes.php' );
$view_details = array( 'plugin-install.php', 'theme-install.php' );
$autoupdate_pages = array( 'admin-ajax.php', 'index.php', 'wp-cron.php' );
if ( ! in_array( $pagenow, array_merge( $pages, $view_details, $autoupdate_pages ), true ) ) {
return;
}
if ( empty( $this->update_server ) || is_wp_error( $this->update_server ) ) {
return new \WP_Error( 'invalid_domain', 'Invalid update server domain', $this->update_server );
}
$url = "$this->update_server/wp-json/git-updater/v1/update-api/?slug=$this->slug";
$response = get_site_transient( "git-updater-lite_{$this->file}" );
if ( ! $response ) {
$response = wp_remote_post( $url );
if ( is_wp_error( $response ) ) {
return $response;
}
$this->api_data = (object) json_decode( wp_remote_retrieve_body( $response ), true );
if ( null === $this->api_data || empty( (array) $this->api_data ) || property_exists( $this->api_data, 'error' ) ) {
return new \WP_Error( 'non_json_api_response', 'Poorly formed JSON', $response );
}
$this->api_data->file = $this->file;
/*
* Set transient for 5 minutes as AWS sets 5 minute timeout
* for release asset redirect.
*
* Set limited timeout so wp_remote_post() not hit as frequently.
* wp_remote_post() for plugin/theme check can run on every pageload
* for certain pages.
*/
set_site_transient( "git-updater-lite_{$this->file}", $this->api_data, 5 * \MINUTE_IN_SECONDS );
} else {
if ( property_exists( $response, 'error' ) ) {
return new \WP_Error( 'repo-no-exist', 'Specified repo does not exist' );
}
$this->api_data = $response;
}
$this->load_hooks();
}
/**
* Load hooks.
*
* @return void
*/
public function load_hooks() {
$type = $this->api_data->type;
add_filter( 'upgrader_source_selection', array( $this, 'upgrader_source_selection' ), 10, 4 );
add_filter( "{$type}s_api", array( $this, 'repo_api_details' ), 99, 3 );
add_filter( "site_transient_update_{$type}s", array( $this, 'update_site_transient' ), 15, 1 );
if ( ! is_multisite() ) {
add_filter( 'wp_prepare_themes_for_js', array( $this, 'customize_theme_update_html' ) );
}
// Load hook for adding authentication headers for download packages.
add_filter(
'upgrader_pre_download',
function () {
add_filter( 'http_request_args', array( $this, 'add_auth_header' ), 15, 2 );
return false; // upgrader_pre_download filter default return value.
}
);
}
/**
* Correctly rename dependency for activation.
*
* @param string $source Path fo $source.
* @param string $remote_source Path of $remote_source.
* @param \Plugin_Upgrader|\Theme_Upgrader $upgrader An Upgrader object.
* @param array $hook_extra Array of hook data.
*
* @throws \TypeError If the type of $upgrader is not correct.
*
* @return string|\WP_Error
*/
public function upgrader_source_selection( string $source, string $remote_source, $upgrader, $hook_extra = null ) {
global $wp_filesystem;
$new_source = $source;
// Exit if installing.
if ( isset( $hook_extra['action'] ) && 'install' === $hook_extra['action'] ) {
return $source;
}
// TODO: add type hint for $upgrader, PHP 8 minimum due to `|`.
if ( ! $upgrader instanceof \Plugin_Upgrader && ! $upgrader instanceof \Theme_Upgrader ) {
throw new \TypeError( __METHOD__ . '(): Argument #3 ($upgrader) must be of type Plugin_Upgrader|Theme_Upgrader, ' . esc_attr( gettype( $upgrader ) ) . ' given.' );
}
// Rename plugins.
if ( $upgrader instanceof \Plugin_Upgrader ) {
if ( isset( $hook_extra['plugin'] ) ) {
$slug = dirname( $hook_extra['plugin'] );
$new_source = trailingslashit( $remote_source ) . $slug;
}
}
// Rename themes.
if ( $upgrader instanceof \Theme_Upgrader ) {
if ( isset( $hook_extra['theme'] ) ) {
$slug = $hook_extra['theme'];
$new_source = trailingslashit( $remote_source ) . $slug;
}
}
if ( basename( $source ) === $slug ) {
return $source;
}
if ( trailingslashit( strtolower( $source ) ) !== trailingslashit( strtolower( $new_source ) ) ) {
$wp_filesystem->move( $source, $new_source, true );
}
return trailingslashit( $new_source );
}
/**
* Put changelog in plugins_api, return WP.org data as appropriate
*
* @param bool $result Default false.
* @param string $action The type of information being requested from the Plugin Installation API.
* @param \stdClass $response Repo API arguments.
*
* @return \stdClass|bool
*/
public function repo_api_details( $result, string $action, \stdClass $response ) {
if ( "{$this->api_data->type}_information" !== $action ) {
return $result;
}
// Exit if not our repo.
if ( $response->slug !== $this->api_data->slug ) {
return $result;
}
return $this->api_data;
}
/**
* Hook into site_transient_update_{plugins|themes} to update from GitHub.
*
* @param \stdClass $transient Plugin|Theme update transient.
*
* @return \stdClass
*/
public function update_site_transient( $transient ) {
// needed to fix PHP 7.4 warning.
if ( ! is_object( $transient ) ) {
$transient = new \stdClass();
}
$response = array(
'slug' => $this->api_data->slug,
$this->api_data->type => 'theme' === $this->api_data->type ? $this->api_data->slug : $this->api_data->file,
'url' => isset( $this->api_data->url ) ? $this->api_data->url : $this->api_data->slug,
'icons' => (array) $this->api_data->icons,
'banners' => $this->api_data->banners,
'branch' => $this->api_data->branch,
'type' => "{$this->api_data->git}-{$this->api_data->type}",
'update-supported' => true,
'requires' => $this->api_data->requires,
'requires_php' => $this->api_data->requires_php,
'new_version' => $this->api_data->version,
'package' => $this->api_data->download_link,
'tested' => $this->api_data->tested,
);
if ( 'theme' === $this->api_data->type ) {
$response['theme_uri'] = $response['url'];
}
if ( version_compare( $this->api_data->version, $this->local_version, '>' ) ) {
$response = 'plugin' === $this->api_data->type ? (object) $response : $response;
$key = 'plugin' === $this->api_data->type ? $this->api_data->file : $this->api_data->slug;
$transient->response[ $key ] = $response;
} else {
$response = 'plugin' === $this->api_data->type ? (object) $response : $response;
// Add repo without update to $transient->no_update for 'View details' link.
$transient->no_update[ $this->api_data->file ] = $response;
}
return $transient;
}
/**
* Add auth header for download package.
*
* @param array $args Array of http args.
* @param string $url Download URL.
*
* @return array
*/
public function add_auth_header( $args, $url ) {
if ( property_exists( $this->api_data, 'auth_header' )
&& str_contains( $url, $this->api_data->slug )
) {
$args = array_merge( $args, $this->api_data->auth_header );
}
return $args;
}
/**
* Call theme messaging for single site installation.
*
* @author Seth Carstens
*
* @param array $prepared_themes Array of prepared themes.
*
* @return array
*/
public function customize_theme_update_html( $prepared_themes ) {
$theme = $this->api_data;
if ( 'theme' !== $theme->type ) {
return $prepared_themes;
}
if ( ! empty( $prepared_themes[ $theme->slug ]['hasUpdate'] ) ) {
$prepared_themes[ $theme->slug ]['update'] = $this->append_theme_actions_content( $theme );
} else {
$prepared_themes[ $theme->slug ]['description'] .= $this->append_theme_actions_content( $theme );
}
return $prepared_themes;
}
/**
* Create theme update messaging for single site installation.
*
* @author Seth Carstens
*
* @access protected
* @codeCoverageIgnore
*
* @param \stdClass $theme Theme object.
*
* @return string (content buffer)
*/
protected function append_theme_actions_content( $theme ) {
$details_url = esc_attr(
add_query_arg(
array(
'tab' => 'theme-information',
'theme' => $theme->slug,
'TB_iframe' => 'true',
'width' => 270,
'height' => 400,
),
self_admin_url( 'theme-install.php' )
)
);
$nonced_update_url = wp_nonce_url(
esc_attr(
add_query_arg(
array(
'action' => 'upgrade-theme',
'theme' => rawurlencode( $theme->slug ),
),
self_admin_url( 'update.php' )
)
),
'upgrade-theme_' . $theme->slug
);
$current = get_site_transient( 'update_themes' );
/**
* Display theme update links.
*/
ob_start();
if ( isset( $current->response[ $theme->slug ] ) ) {
?>
<p>
<strong>
<?php
printf(
/* translators: %s: theme name */
esc_html__( 'There is a new version of %s available.', 'git-updater-lite' ),
esc_attr( $theme->name )
);
printf(
' <a href="%s" class="thickbox open-plugin-details-modal" title="%s">',
esc_url( $details_url ),
esc_attr( $theme->name )
);
if ( ! empty( $current->response[ $theme->slug ]['package'] ) ) {
printf(
/* translators: 1: version number, 2: closing anchor tag, 3: update URL */
esc_html__( 'View version %1$s details%2$s or %3$supdate now%2$s.', 'git-updater-lite' ),
$theme->remote_version = isset( $theme->remote_version ) ? esc_attr( $theme->remote_version ) : null,
'</a>',
sprintf(
/* translators: %s: theme name */
'<a aria-label="' . esc_html__( 'Update %s now', 'git-updater-lite' ) . '" id="update-theme" data-slug="' . esc_attr( $theme->slug ) . '" href="' . esc_url( $nonced_update_url ) . '">',
esc_attr( $theme->name )
)
);
} else {
printf(
/* translators: 1: version number, 2: closing anchor tag, 3: update URL */
esc_html__( 'View version %1$s details%2$s.', 'git-updater-lite' ),
$theme->remote_version = isset( $theme->remote_version ) ? esc_attr( $theme->remote_version ) : null,
'</a>'
);
printf(
/* translators: %s: opening/closing paragraph and italic tags */
esc_html__( '%1$sAutomatic update is unavailable for this theme.%2$s', 'git-updater-lite' ),
'<p><i>',
'</i></p>'
);
}
?>
</strong>
</p>
<?php
}
return trim( ob_get_clean(), '1' );
}
}
}

View file

@ -0,0 +1,49 @@
<?php
/**
* Notify users that updates are served from FAIR/AspirePress.
*
* @package FAIR
*/
namespace FAIR\User_Notification;
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'update_footer', __NAMESPACE__ . '\\notify_users', 11, 1 );
add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\\enqueue_global_styles' );
}
/**
* Add a notification to the site footer about FAIR/AspirePress.
*
* @param string $content The current version or update notification.
* @return string
*/
function notify_users( string $content = '' ) : string {
$message = sprintf(
// translators: 1) Fair PM URL, 2) AspirePress URL.
__( 'Updates served from the <a href="%1$s">FAIR Package Manager</a> and <a href="%2$s">AspirePress</a>', 'fair' ),
'https://fair.pm',
'https://aspirepress.org'
);
$notification = '<span class="fair-notification">' . $message . '</span>';
return $content . $notification;
}
/**
* Enqueue global style assets.
*
* @param string $hook_suffix Hook suffix for the current admin page.
* @return void
*/
function enqueue_global_styles( string $hook_suffix ) {
wp_enqueue_style(
'fair-global-admin',
esc_url( plugin_dir_url( \FAIR\PLUGIN_FILE ) . 'assets/css/global-admin.css' ),
[],
\FAIR\VERSION
);
}

View file

@ -0,0 +1,267 @@
<?php
/**
* Prevents calls to the WordPress.org API for version checks.
*
* @package FAIR
*/
namespace FAIR\Version_Check;
/**
* This constant is replaced by bin/update-browsers.sh.
*
* DO NOT EDIT THIS CONSTANT MANUALLY.
*/
const BROWSER_REGEX = '/Edge?\/13[4-6]\.0(\.\d+|)|Firefox\/(128\.0|1(3[7-9]|4[0-2])\.0)(\.\d+|)|Chrom(ium|e)\/(109\.0|1(3[1-9]|40)\.0)(\.\d+|)|(Maci|X1{2}).+ Version\/18\.[3-5]([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/1{2}[67]\.0\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(16[._][67]|17[._][67]|18[._]1|18[._][3-5])([._]\d+|)|Opera Mini|Android:?[ /-]136(\.0|)(\.\d+|)|Mobile Safari.+OPR\/8(0\.){2}\d+|Android.+Firefox\/137\.0(\.\d+|)|Android.+Chrom(ium|e)\/136\.0(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?1(5\.){2}\d+|SamsungBrowser\/2[67]\.0|Android.+MQ{2}Browser\/14(\.9|)(\.\d+|)|K[Aa][Ii]OS\/(2\.5|3\.[01])(\.\d+|)/';
/**
* The latest branch of PHP which WordPress.org recommends.
*/
const RECOMMENDED_PHP = '7.4';
/**
* The oldest branch of PHP which WordPress core still works with.
*/
const MINIMUM_PHP = '7.2.24';
/**
* The lowest branch of PHP which is actively supported.
*
* (Fallback if we can't load PHP.net.)
*/
const SUPPORTED_PHP = '7.4';
/**
* The lowest branch of PHP which is receiving security updates.
*
* (Fallback if we can't load PHP.net.)
*/
const SECURE_PHP = '7.4';
/**
* The lowest branch of PHP which is still considered acceptable in WordPress.
*
* (Fallback if we can't load PHP.net.)
*/
const ACCEPTABLE_PHP = '7.4';
/**
* Lifetime of the php.net cache.
*/
const CACHE_LIFETIME = 12 * HOUR_IN_SECONDS;
/**
* Bootstrap.
*/
function bootstrap() {
add_filter( 'pre_http_request', __NAMESPACE__ . '\\replace_browser_version_check', 10, 3 );
}
/**
* Replace the browser version check.
*
* @param bool|array $value Filtered value, or false to proceed.
* @param array $args
* @param string $url
* @return bool|array Replaced value, or false to proceed.
*/
function replace_browser_version_check( $value, $args, $url ) {
if ( strpos( $url, 'api.wordpress.org/core/browse-happy' ) !== false ) {
$agent = $args['body']['useragent'];
return get_browser_check_response( $agent );
}
if ( strpos( $url, 'api.wordpress.org/core/serve-happy' ) !== false ) {
$query = parse_url( $url, PHP_URL_QUERY );
$url_args = wp_parse_args( $query );
return get_server_check_response( $url_args['php_version'] ?? PHP_VERSION );
}
// Continue as we were.
return $value;
}
/**
* Check whether the agent matches, and return a fake response.
*
* @param string $agent User-agent to check.
* @return array HTTP API response-like data.
*/
function get_browser_check_response( string $agent ) {
// Switch delimiter to avoid conflicts.
$regex = '#' . trim( BROWSER_REGEX, '/' ) . '#';
$supported = preg_match( $regex, $agent, $matches );
return [
'response' => [
'code' => 200,
'message' => 'OK',
],
'body' => json_encode( [
'platform' => _x( 'your platform', 'browser version check', 'fair' ),
'name' => __( 'your browser', 'browser version check', 'fair' ),
'version' => '',
'current_version' => '',
'upgrade' => ! $supported,
'insecure' => ! $supported,
'update_url' => 'https://browsehappy.com/',
'img_src' => '',
'img_src_ssl' => '',
] ),
'headers' => [],
'cookies' => [],
'http_response_code' => 200,
];
}
/**
* Get PHP branch data from php.net
*
* @return array|null Branch-indexed data from PHP.net, or null on failure.
*/
function get_php_branches() {
$releases = get_transient( 'php_releases' );
if ( $releases ) {
return $releases;
}
$response = wp_remote_get( 'https://www.php.net/releases/branches' );
if ( is_wp_error( $response ) ) {
// Failed - we'll fall back to hardcoded data.
return null;
}
$data = json_decode( wp_remote_retrieve_body( $response ), true );
if ( ! is_array( $data ) ) {
// Likely a server-level error - fall back to hardcoded data.
return null;
}
// Index data by branch.
$indexed = [];
foreach ( $data as $ver ) {
if ( empty( $ver['branch' ] ) ) {
continue;
}
$indexed[ $ver['branch'] ] = $ver;
}
set_transient( 'php_releases', $indexed, CACHE_LIFETIME );
return $indexed;
}
/**
* Check the PHP version against current versions.
*
* (WP sets is_lower_than_future_minimum manually based on >=7.4)
*
* The logic for the dashboard widget is:
* - If is_acceptable, show nothing.
* - Else if is_lower_than_future_minimum, show "PHP Update Required"
* - Else, show "PHP Update Recommended"
*
* The logic for the Site Health check is:
* - If the version is greater than recommended_version, show "running a recommended version"
* - Else if is_supported, show "running on an older version"
* - Else if is_secure and is_lower_than_future_minimum, show "outdated version which will soon not be supported"
* - Else if is_secure, show "running on an older version which should be updated"
* - Else if is_lower_than_future_minimum, show "outdated version which does not receive security updates and will soon not be supported"
* - Else, show "outdated version which does not receive security updates"
*
* @param string $agent User-agent to check.
* @return array HTTP API response-like data.
*/
function check_php_version( string $version ) {
$branches = get_php_branches();
if ( empty( $branches ) ) {
// Hardcoded fallback if we can't contact PHP.net.
return [
'recommended_version' => RECOMMENDED_PHP,
'minimum_version' => MINIMUM_PHP,
'is_supported' => version_compare( $version, SUPPORTED_PHP, '>=' ),
'is_secure' => version_compare( $version, SECURE_PHP, '>=' ),
'is_acceptable' => version_compare( $version, ACCEPTABLE_PHP, '>=' ),
];
}
$min_stable = null;
$min_secure = null;
foreach ( $branches as $ver ) {
// 'branch' is the major version.
// 'latest' is the latest minor version on the branch.
switch ( $ver['state'] ) {
case 'stable':
if ( $min_stable === null || version_compare( $ver['branch'], $min_stable, '<' ) ) {
$min_stable = $ver['branch'];
$min_secure = $ver['branch'];
}
break;
case 'security':
if ( $min_secure === null || version_compare( $ver['branch'], $min_secure, '<' ) ) {
$min_secure = $ver['branch'];
}
break;
case 'eol':
// Ignore EOL versions.
break;
}
}
$ver_parts = explode( '.', $version );
$cur_branch = sprintf( '%d.%d', $ver_parts[0], $ver_parts[1] );
if ( empty( $branches[ $cur_branch ] ) ) {
// Unknown version, likely future.
return [
'recommended_version' => $min_stable,
'minimum_version' => MINIMUM_PHP,
'is_supported' => version_compare( $version, $min_stable, '>=' ),
'is_secure' => version_compare( $version, $min_secure, '>=' ),
'is_acceptable' => version_compare( $version, $min_secure, '>=' ),
];
}
$cur_branch_data = $branches[ $cur_branch ];
if ( $cur_branch_data['state'] === 'stable' || $cur_branch_data['state'] === 'security' ) {
return [
// If we're on the stable or secure branches, the recommended version
// should be the latest version of this branch.
'recommended_version' => $cur_branch_data['latest'],
'minimum_version' => MINIMUM_PHP,
'is_supported' => $cur_branch_data['state'] === 'stable',
'is_secure' => version_compare( $version, $cur_branch_data['latest'], '>=' ),
'is_acceptable' => version_compare( $version, $cur_branch_data['latest'], '>=' ),
];
}
// Must be eol or future version.
return [
// Show the latest version of this branch or the minimum stable, whichever is greater.
'recommended_version' => version_compare( $version, $min_stable, '>' ) ? $cur_branch_data['latest'] : $min_stable,
'minimum_version' => MINIMUM_PHP,
'is_supported' => version_compare( $version, $min_stable, '>=' ),
'is_secure' => version_compare( $version, $min_secure, '>=' ),
'is_acceptable' => version_compare( $version, $min_secure, '>=' ),
];
}
/**
* Get the server check shim response.
*
* @param string $version Version to check.
* @return array HTTP API response-like data.
*/
function get_server_check_response( string $version ) {
return [
'response' => [
'code' => 200,
'message' => 'OK',
],
'body' => json_encode( check_php_version( $version ) ),
'headers' => [],
'cookies' => [],
'http_response_code' => 200,
];
}

97
languages/plugin.pot Normal file
View file

@ -0,0 +1,97 @@
# Copyright (C) 2025 FAIR Contributors
# This file is distributed under the GPLv2.
msgid ""
msgstr ""
"Project-Id-Version: FAIR - Federated and Independent Repositories 0.1\n"
"Report-Msgid-Bugs-To: https://github.com/fairpm/plugin/issues\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2025-05-20T21:46:04+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: fair\n"
#. Plugin Name of the plugin
#: plugin.php
msgid "FAIR - Federated and Independent Repositories"
msgstr ""
#. Description of the plugin
#: plugin.php
msgid "Make your site more FAIR."
msgstr ""
#. Author of the plugin
#: plugin.php
msgid "FAIR Contributors"
msgstr ""
#: inc/avatars/namespace.php:87
msgid "Choose Profile Image"
msgstr ""
#: inc/avatars/namespace.php:88
msgid "Remove Profile Image"
msgstr ""
#: inc/avatars/namespace.php:91
msgid "Upload a custom profile picture for your account."
msgstr ""
#: inc/avatars/namespace.php:238
#: inc/avatars/namespace.php:253
#, php-format
msgid "profile picture for %s"
msgstr ""
#: inc/avatars/namespace.php:250
msgctxt "alt for unknown avatar user"
msgid "profile picture for user"
msgstr ""
#. translators: %s: The version string.
#: inc/credits/namespace.php:84
#, php-format
msgid "%s is not a valid version string."
msgstr ""
#: inc/credits/namespace.php:113
msgid "No credits could be found."
msgstr ""
#: inc/dashboard-widgets/namespace.php:84
msgid "Unable to fetch events (parse error)."
msgstr ""
#: inc/dashboard-widgets/namespace.php:91
msgctxt "default event location"
msgid "Online"
msgstr ""
#: inc/dashboard-widgets/namespace.php:176
msgid "Events (by The WP World)"
msgstr ""
#: inc/version-check/namespace.php:100
msgctxt "browser version check"
msgid "your platform"
msgstr ""
#: assets/js/fair-avatars.js:20
msgid "Choose Profile Picture"
msgstr ""
#: assets/js/fair-avatars.js:22
msgid "Use as Profile Picture"
msgstr ""
#: assets/js/fair-avatars.js:44
msgid "Profile Picture Assigned"
msgstr ""
#: assets/js/fair-avatars.js:60
msgid "Profile Picture Removed"
msgstr ""

2053
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

8
package.json Normal file
View file

@ -0,0 +1,8 @@
{
"devDependencies": {
"@wordpress/env": "^10.22.0"
},
"scripts": {
"env": "wp-env"
}
}

36
plugin.php Normal file
View file

@ -0,0 +1,36 @@
<?php
/**
* Plugin Name: FAIR - Federated and Independent Repositories
* Description: Make your site more FAIR.
* Version: 0.1
* Author: FAIR Contributors
* License: GPLv2
* Requires at least: 4.1
* Requires PHP: 7.2.24
* Text Domain: fair
* Update URI: https://api.fair.pm
*/
namespace FAIR;
const VERSION = '0.1';
const PLUGIN_DIR = __DIR__;
const PLUGIN_FILE = __FILE__;
require_once __DIR__ . '/inc/namespace.php';
require_once __DIR__ . '/inc/avatars/namespace.php';
require_once __DIR__ . '/inc/credits/namespace.php';
require_once __DIR__ . '/inc/dashboard-widgets/namespace.php';
require_once __DIR__ . '/inc/default-repo/namespace.php';
require_once __DIR__ . '/inc/disable-openverse/namespace.php';
require_once __DIR__ . '/inc/importers/namespace.php';
require_once __DIR__ . '/inc/pings/namespace.php';
require_once __DIR__ . '/inc/salts/namespace.php';
require_once __DIR__ . '/inc/settings/namespace.php';
require_once __DIR__ . '/inc/user-notification/namespace.php';
require_once __DIR__ . '/inc/version-check/namespace.php';
// External dependencies.
require_once __DIR__ . '/inc/updater/class-lite.php';
bootstrap();