imranhsayed / aquila Goto Github PK
View Code? Open in Web Editor NEW🎨 An Advanced WordPress theme
🎨 An Advanced WordPress theme
I'm trying to adapt the menu code using Tailwind css and Alpine js but it overflows and I don't know how to fix it, maybe someone has an idea to solve it
Here I leave the pastebin
This theme is awesome and I am watching this from the starting. Can this theme get more than 90 score in google page insight ?
Please make the theme to get a good score.
Thank you
Please add advance javascript API customization which is least documented by WordPress. and please include the topics like how to use a partial refresh,postMessage
I encountered an error in my WordPress Gutenberg block development, which is causing the following issue:
VM505 blocks.js:703 Uncaught TypeError: Cannot read properties of undefined (reading 'components')
at VM505 blocks.js:703:44
at @wordpress/components (VM505 blocks.js:703:61)
at __webpack_require__ (VM505 blocks.js:20:30)
at ./src/js/gutenberg/blocks/heading-with-icon/edit.js (VM505 blocks.js:357:79)
at __webpack_require__ (VM505 blocks.js:20:30)
at ./src/js/gutenberg/blocks/heading-with-icon/index.js (VM505 blocks.js:473:63)
at __webpack_require__ (VM505 blocks.js:20:30)
at ./src/js/blocks.js (VM505 blocks.js:100:93)
at __webpack_require__ (VM505 blocks.js:20:30)
at VM505 blocks.js:84:18
Hi Imran,
Please add a feature like, unlimited levels of drop down menu in top navbar just like how other themes are providing this feature.
Thank you.
Add Block Style Variations for Button block and Quote Block
Current behavior: The title is not hidden on a single page even if we select to hide it from the meta box.
In the template-parts/components/blog/entry-header.php
change class name from hide
to bootstrap classd-none
$heading_class = ! empty( $hide_title ) && 'yes' === $hide_title ? 'd-none' : '';
Hey bro howdy...
I'm trying to achieve in Wooccomerce Sidebar ... to get parent's sub categories as drop-down menu and parent cat as main menu ... This is what I want to achieve, whenever the user hovers on the listed Parent Category, it will display its 1st level child category as show in the image below see
Hi Inran,
I am following your excellent tutorial on YT and the code present in:
aquila-master\assets\src\js\gutenberg\blocks\heading-with-icon\edit.js
didn't work for me. When I clicked in radio buttons the option didn't change.
I apply this change in edit.js and it worked for me:
<RadioControl
label={ __( 'Select the icon', 'aquila' ) }
help={ __( 'Controls icon selection', 'aquila' ) }
selected={ option }
options={ [
{ label: 'Dos', value: 'dos' },
{ label: "Dont's", value: 'donts' },
] }
onChange={ ( optionVal ) => {
setAttributes( { option: optionVal } );
} }
/>
Instead of using setAttributes( { optionVal } )
I changed to setAttributes( { option: optionVal } )
Same for change the content on typing (setAttributes( { content: contentVal }
):
<RichText
tagName="h4" // The tag here is the element output and editable in the admin
className={ className }
value={ content } // Any existing content, either from the database or an attribute default
onChange={ ( contentVal ) => setAttributes( { content: contentVal } ) } // Store updated content as a block attribute
placeholder={ __( 'Heading…', 'aquila' ) } // Display this text before any content has been added by the user
/>
Thanks for your great work
Hi Imran,
I'm trying to add woocommerce support for custom woocommerce pages.
As long as I add the woocommerce.php it works fine, but the folder of /woocommerce won't work.
With that issue, i'm only able to add the default woocommerce styles in woocommerce.php instead of the custom woocommerce/archive-product.php and others.
Hi, I'm trying to use your method to build OOP theme from scratch, everything was good till I got this error:
https://i.imgur.com/Kk1fIV4.png when I tried to use block_categories like this https://i.imgur.com/Yohaw00.png :
public function my_block_category( $categories , $post ) {
return array_merge(
$categories,
array(
array(
'slug' => 'trc-blocks',
'title' => __( 'Site Blocks', 'trc-blocks' ),
),
)
);
}
Can you help me please?
hey bro howdy ,,
converting an html eCommerce template into dynamic WordPress eCommerce website ,
my question is i want to use Ajax to fetch products filtered by categories when clicking on categories in the sidebar i want to fetch products without refreshing the whole page with Ajax ?
Hi sir, this is sowmya.
problem is unable to find style.css and main.js files
i am getting filemtime address but css file not showing in view page source page.
`function adding_stylesheet_link()
{
wp_enqueue_style('style-css', get_stylesheet_uri(), [], filemtime(get_template_directory(). '/style.css'), 'all' );
wp_enqueue_script('main-css', get_template_directory_uri() . '/asset/main.js', [], filemtime(get_template_directory(). '/asset/main.js'), true);
}
add_action('wp_enqueue_scipts', 'adding_stylesheet_link');
?>`
Set up Gutenberg for Custom Block Development
Add Slick Carousel for Posts
ERROR in ./src/sass/main.scss (./src/sass/main.scss.webpack[javascript/auto]!=!./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/sass/main.scss)
Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Invalid CSS after " @if math": expected expression (e.g. 1px, bold), was ".is-unitless($px) {"
on line 55 of node_modules/sass-mq/_mq.scss
from line 4 of src/sass/_essentials.scss
from line 2 of src/sass/main.scss
@if math.is-unitless($px) {
----------^
@ ./src/sass/main.scss
@ ./src/js/main.js 3:0-27
ERROR in ./src/sass/single.scss (./src/sass/single.scss.webpack[javascript/auto]!=!./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/sass/single.scss)
Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Invalid CSS after " @if math": expected expression (e.g. 1px, bold), was ".is-unitless($px) {"
on line 55 of node_modules/sass-mq/_mq.scss
from line 4 of src/sass/_essentials.scss
from line 1 of src/sass/single.scss
@if math.is-unitless($px) {
----------^
Setup ESLINT
I am using this function to highlight active menu but it is not working. Can tell me what I am going wrong? I added the function to the class-menus,php file
public function abdpeds_nav_class( $classes, $item ) {
if ( in_array( 'current-menu-item', $classes ) ) {
$classes[] = 'current-menu-item active-link';
}
return $classes;
}
this is the filter
add_filter( 'nav_menu_css_class', [ $this, 'abdpeds_nav_class', 10 , 2 ] );
I love your nav menu code because it make it really simple to setup drop-down menu. However, "Open link in a new tab doesn't work" and I have spent hours trying to figure it out. If I disabled your menu code and revert to standard menu setup the "Open link in a new tab" works. I haven't card anything with the code except for the CSS. Do you have any suggestions?
I try this code $target= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : ' target=”_blank" '; and then this to the anchor link but it is opening all the links into a new tab. I just need to open links that I set in the menu open to option to open in new tab.
class cannot work properly
Code is here ...
Function.php
traits-singleton.php
set_hooks(); } protected function set_hooks(){ //actions and filters } }is it possible users can update there profile credentials like ( name email picture from the frontend ) . without visiting dashboard of Wordpress ? if possible than let us know in this series
the namespace doesn't seem to work.
Fatal error: Trait 'AQUILA_THEME\Inc\Traits\Singleton' not found in A:\xampp\htdocs<User>\wp-content\themes\aquila\inc\classes\class-aquila-theme.php on line 12
Please make a video on how to add infinite scroll for posts, as you said at beginning of course, that is a key feature, and if you can also option for 'load more'
Hi Imran,
Thanx for your great tutorials, they're really helpful and I learned a lot of new things. Especially those patterns are awesome. Is it possible to make a pattern for a slick slider, with controls in the customizer?
So we can add pictures true customizer, and change the settings. It would be really great if we can adjust the sizes for the images as well.
Cheers.
In header.php you have used <html lang="<?php language_attributes(); ?>">
which prints like
<html lang="lang=" en-us""="">
that is an unexpected behavior.
Just use <html <?php language_attributes(); ?>>
By the way thanks for all beautiful tutorials 👍
Would it be possible to adapt this loadmore
method to show ALL remaining posts when a button is clicked?
For example, if there were 24 posts total in the database, could you show 6 to start, and then reveal all 24 posts the first time the button is clicked, instead if six more at a time?
Command log:
$ npm run dev
[email protected] dev C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets
cross-env NODE_ENV=development webpack --watch --mode development --progress
[webpack.Progress] 0% compiling
[webpack.Progress] 10% building 0/0 modules 0 active
[webpack.Progress] 10% building 0/0 modules 0 active
webpack is watching the files…
[webpack.Progress] 10% building 0/1 modules 1 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\babel-loader\lib\index.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\js\main.js
[webpack.Progress] 10% building 0/2 modules 2 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\babel-loader\lib\index.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\js\single.js
[webpack.Progress] 10% building 1/2 modules 1 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\babel-loader\lib\index.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\js\single.js
[webpack.Progress] 10% building 2/2 modules 0 active
[webpack.Progress] 10% building 2/3 modules 1 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\mini-css-extract-plugin\dist\loader.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\css-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\sass-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\sass\main.scss
[webpack.Progress] 10% building 2/4 modules 2 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\mini-css-extract-plugin\dist\loader.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\css-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\sass-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\sass\single.scss
[webpack.Progress] 10% building 2/5 modules 3 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\file-loader\dist\cjs.js??ref--6-0!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\img\seal.jpg
[webpack.Progress] 10% building 2/6 modules 4 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\babel-loader\lib\index.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\js\clock\index.js
[webpack.Progress] 10% building 3/6 modules 3 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\babel-loader\lib\index.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\js\clock\index.js
[webpack.Progress] 10% building 4/6 modules 2 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\mini-css-extract-plugin\dist\loader.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\css-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\sass-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\sass\single.scss
[webpack.Progress] 10% building 5/6 modules 1 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\mini-css-extract-plugin\dist\loader.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\css-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\sass-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\sass\main.scss
[webpack.Progress] 40% building 5/6 modules 1 active C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\mini-css-extract-plugin\dist\loader.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\css-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\sass-loader\dist\cjs.js!C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\src\sass\main.scss
[webpack.Progress] 40% building 6/6 modules 0 active
[webpack.Progress] 70% building 6/6 modules 0 active
[webpack.Progress] 70% finish module graph
[webpack.Progress] 70% finish module graph FlagDependencyExportsPlugin
[webpack.Progress] 70% sealing
[webpack.Progress] 70% sealing WarnCaseSensitiveModulesPlugin
[webpack.Progress] 72% basic dependencies optimization
[webpack.Progress] 72% dependencies optimization
[webpack.Progress] 73% advanced dependencies optimization
[webpack.Progress] 73% after dependencies optimization
[webpack.Progress] 71% chunk graph
[webpack.Progress] 71% after chunk graph
[webpack.Progress] 71% after chunk graph WebAssemblyModulesPlugin
[webpack.Progress] 74% optimizing
[webpack.Progress] 74% basic module optimization
[webpack.Progress] 75% module optimization
[webpack.Progress] 75% advanced module optimization
[webpack.Progress] 76% after module optimization
[webpack.Progress] 76% basic chunk optimization
[webpack.Progress] 76% basic chunk optimization EnsureChunkConditionsPlugin
[webpack.Progress] 76% basic chunk optimization RemoveEmptyChunksPlugin
[webpack.Progress] 76% basic chunk optimization MergeDuplicateChunksPlugin
[webpack.Progress] 77% chunk optimization
[webpack.Progress] 77% advanced chunk optimization
[webpack.Progress] 77% advanced chunk optimization SplitChunksPlugin
[webpack.Progress] 77% advanced chunk optimization RemoveEmptyChunksPlugin
[webpack.Progress] 77% after chunk optimization
[webpack.Progress] 78% module and chunk tree optimization
[webpack.Progress] 78% after module and chunk tree optimization
[webpack.Progress] 79% basic chunk modules optimization
[webpack.Progress] 80% chunk modules optimization
[webpack.Progress] 80% advanced chunk modules optimization
[webpack.Progress] 81% after chunk modules optimization
[webpack.Progress] 81% module reviving
[webpack.Progress] 81% module reviving RecordIdsPlugin
[webpack.Progress] 82% module order optimization
[webpack.Progress] 82% advanced module order optimization
[webpack.Progress] 83% before module ids
[webpack.Progress] 83% before module ids NamedModulesPlugin
[webpack.Progress] 83% module ids
[webpack.Progress] 84% module id optimization
[webpack.Progress] 84% module id optimization
[webpack.Progress] 85% chunk reviving
[webpack.Progress] 85% chunk reviving RecordIdsPlugin
[webpack.Progress] 85% chunk order optimization
[webpack.Progress] 85% chunk order optimization OccurrenceOrderChunkIdsPlugin
[webpack.Progress] 86% before chunk ids
[webpack.Progress] 86% before chunk ids NamedChunksPlugin
[webpack.Progress] 86% chunk id optimization
[webpack.Progress] 87% after chunk id optimization
[webpack.Progress] 87% record modules
[webpack.Progress] 87% record modules RecordIdsPlugin
[webpack.Progress] 87% record chunks
[webpack.Progress] 87% record chunks RecordIdsPlugin
[webpack.Progress] 88% hashing
[webpack.Progress] 88% after hashing
[webpack.Progress] 89% record hash
[webpack.Progress] 89% module assets processing
[webpack.Progress] 90% chunk assets processing
[webpack.Progress] 90% additional chunk assets processing
[webpack.Progress] 91% recording
[webpack.Progress] 92% additional asset processing
[webpack.Progress] 92% chunk asset optimization
[webpack.Progress] 93% after chunk asset optimization
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin js/main.js generate SourceMap
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin js/single.js generate SourceMap
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin resolve sources
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin js/main.js attach SourceMap
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin js/single.js attach SourceMap
[webpack.Progress] 93% after chunk asset optimization SourceMapDevToolPlugin
[webpack.Progress] 93% asset optimization
[webpack.Progress] 94% after asset optimization
[webpack.Progress] 94% after seal
[webpack.Progress] 95% emitting
[webpack.Progress] 95% emitting clean-webpack-plugin
[webpack.Progress] 98% after emitting
[webpack.Progress] 100%
Hash: f0efb0b4625d5726b991
Version: webpack 4.46.0
Time: 1665ms
Built at: 02/09/2021 1:42:01 PM
Asset Size Chunks Chunk Names
js/main.js 9.03 KiB main [emitted] main
js/main.js.map 6.82 KiB main [emitted] [dev] main
js/single.js 6.12 KiB single [emitted] single
js/single.js.map 3.63 KiB single [emitted] [dev] single
src/img/seal.jpg 32.5 KiB [emitted]
src/library/fonts/jetbrains-mono-v3-latin/jetbrains-mono-v3-latin-800.svg 48.8 KiB [emitted]
src/library/fonts/jetbrains-mono-v3-latin/jetbrains-mono-v3-latin-800italic.svg 52.2 KiB [emitted]
src/library/fonts/jetbrains-mono-v3-latin/jetbrains-mono-v3-latin-italic.svg 52 KiB [emitted]
src/library/fonts/jetbrains-mono-v3-latin/jetbrains-mono-v3-latin-regular.svg 48.7 KiB [emitted]
src/library/fonts/vt323-v12-latin/vt323-v12-latin-regular.svg 139 KiB [emitted]
Entrypoint main = js/main.js js/main.js.map
Entrypoint single = js/single.js js/single.js.map
[./src/img/seal.jpg] 40 bytes {main} [built]
[./src/js/clock/index.js] 2.26 KiB {main} [built]
[./src/js/main.js] 94 bytes {main} [built]
[./src/js/single.js] 34 bytes {single} [built]
[./src/sass/main.scss] 1.41 KiB {main} [built] [failed] [1 error]
[./src/sass/single.scss] 1.74 KiB {single} [built] [failed] [1 error]
ERROR in ./src/sass/single.scss
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleParseError: Module parse failed: Expecting Unicode escape sequence \uXXXX (1:2)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)
at handleParseError (C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\webpack\lib\NormalModule.js:469:19)
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\webpack\lib\NormalModule.js:503:5
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\webpack\lib\NormalModule.js:358:12
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at Array. (C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
at Storage.finished (C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\graceful-fs\graceful-fs.js:123:16
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)
@ ./src/js/single.js 2:0-29
ERROR in ./src/sass/main.scss
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleParseError: Module parse failed: Expecting Unicode escape sequence \uXXXX (1:2)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)
at handleParseError (C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\webpack\lib\NormalModule.js:469:19)
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\webpack\lib\NormalModule.js:503:5
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\webpack\lib\NormalModule.js:358:12
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\loader-runner\lib\LoaderRunner.js:205:4
at C:\xampp\htdocs\zommtaonaan\wp-content\themes\zommzeed\assets\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:85:15
at processTicksAndRejections (internal/process/task_queues.js:75:11)
@ ./src/js/main.js 3:0-27
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!src/sass/main.scss:
Entrypoint mini-css-extract-plugin = *
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.