open-index/open-npm huggingface dataset:
npm package: @matixinc/gatsby-plugin-azure-external-image
Description: The first approch was to use the extract-image-paths plugin that parses an MDX node and add extra fields on the node itself that  are resolved at runtime. The problem with this approach comes when we try to synchronize images to azure using the newly add
Latest version: 1.0.1

The first approch was to use the extract-image-paths plugin that parses an MDX node and add extra fields on the node itself that 
are resolved at runtime. The problem with this approach comes when we try to synchronize images to azure using the newly added fields.
They are not available in createNodes since they have to be resolved first and to be resolved, we need to be able to query the node but this is not possible in createNode extension point.

Next approach.

Create a new type of Node - MatixNode and make a 1-1 relationship between Mdx and Matix

1. The new node will be created using a plugin that will parse mdx and output the content in the MatixNode
2. A source plugin will be created as well in order to synchronize the content to azure, it will create a MatixAzureNode which will create a reference to a FileNode
3. A relationship will be made between MatixNode, MatixAzureNode and Mdx
4. A resolver will be made to expose the resulting FileNode in the Mdx schema to facilita querying this data.
npm package: @matixinc/gatsby-plugin-mdx-ast
Description: This library was generated with [Nx](https://nx.dev).
Latest version: 1.0.1

# gatsby-plugin-mdx-ast

This library was generated with [Nx](https://nx.dev).

## Running unit tests

Run `nx test gatsby-plugin-mdx-ast` to execute the unit tests via [Jest](https://jestjs.io).
npm package: @matixinc/gatsby-theme-core
Description: A Matix theme has a set of predefined features that all Matix websites & applications have.
Latest version: 1.0.1

# gatsby-theme-matix-core

A Matix theme has a set of predefined features that all Matix websites & applications have.

1. Creates the graphQL MatixNode that can be extended
2. Registers matix plugins for MDX support & image extractions/synchronization to azure which creates MatixAzureImageNode
3. Defines a set of interfaces that all child UI theme must at a minimum respect. This will allow easy them switching when needed.
4. Defines the Netlify-CMS that works with a set of defined interfaces. For specific use cases, cms can be defined in the application itself.

With our own schema in place, we can easily query for all the data we need. Also, Matix nodes are children of Mdx node

``` graphql
query MyQuery {
  allMatixAzureImage {
    edges {
      node {
        blogImages {
          publicURL
        }
        parent {
          internal {
            type
          }
          id
        }
      }
    }
  }
  allMatix {
    edges {
      node {
        id
        frontmatter {
          eagerImages
          lazyImages
          blogImages
        }
      }
    }
  }
}
query MyQuery {
  allMatixAzureImage {
    edges {
      node {
        blogImages {
          publicURL
        }
        parent {
          internal {
            type
          }
          id
        }
      }
    }
  }
query allMatix {
    edges {
      node {
        id
        frontmatter {
          eagerImages
          lazyImages
          blogImages
        }
      }
    }
  }
}



```

You can then compose from your application with different theme. Typically a Matix application is configured this way:


``` javascript
// In gatsby-config.js
// Note, for internal projects, we resolve to the local path directly to facilite development and debugging but for external projetcts, we can use the npm published package since all of our themes and plugins are published
const tailwindConfig = require('./config.tailwind.config.js');
module.exports = {
    plugins:[

    {
      resolve: require.resolve(`./index.js`, {
        paths: ['../../../libs/gatsby/theme-matix-core'],
      }),
      options: {
        imageExtraction: {
          eagerImages: ['frontmatter.image.url', 'frontmatter.sections.slides.image.url'],
          lazyImages: ['frontmatter.sections.images.url'],
          blogImages: ['frontmatter.sections.bodyAst'],
        },
        parse: (value)=>[String] , // extensibility point
      },
    },
    {
     '@matixinc/theme-matix-tailwind', // for external projects or require.resolve for internal
      options: {
        config:JSON.parse(tailwindConfig)
      },
    },
    ]
}
```
npm package: @matixinc/gatsby-theme-core-netlify-cms
Description: This library was generated with [Nx](https://nx.dev).
Latest version: 1.0.1

# gatsby-theme-core-netlify-cms

This library was generated with [Nx](https://nx.dev).

## Running unit tests

Run `nx test gatsby-theme-core-netlify-cms` to execute the unit tests via [Jest](https://jestjs.io).
npm package: @matixinc/gatsby-theme-events
Description: This theme offers the data layer associated to managing events of all sorts through netlify CMS. It offers all the components needed to manage the presentation of any events. Event is in the meaning of an event like a party, a conference, etc. Something 
Latest version: 1.0.1

# gatsby-theme-events

This theme offers the data layer associated to managing events of all sorts through netlify CMS.
It offers all the components needed to manage the presentation of any events. Event is in the meaning of an event like a party, a conference, etc. Something that can be hosted at a different date and where people can buy tickets to attend, either free or paid.
npm package: @matixinc/gatsby-theme-events-netlify-cms
Description: This library was generated with [Nx](https://nx.dev).
Latest version: 1.0.1

# gatsby-theme-events-netlify-cms

This library was generated with [Nx](https://nx.dev).

## Running unit tests

Run `nx test gatsby-theme-events-netlify-cms` to execute the unit tests via [Jest](https://jestjs.io).
npm package: @matixinc/gatsby-theme-shopify
Description: This is a data theme, responsible of sourcing products from shopify and building product details pages, product category pages and expose the Shopify api as either react context or HOC with render props.
Latest version: 1.0.1

# gatsby-theme-shopify

This is a data theme, responsible of sourcing products from shopify and building product details pages, product category pages and
expose the Shopify api as either react context or HOC with render props.