This plugin provides a service to create NodeType YAML configuration based on schema.org type. You can found the full schema.org types list here: http://schema.org/docs/full.html
-
install this package with composer
-
use the command line tools to create the YAML configuration
-
you can import only a subset of the types available, type type attribute can contain a list separated by comma of valid Schema.org type. The following command will create a file named
NodeTypes.SchemaOrg.APIReference.yaml
in yourData/NodeTypes/Configuration
directory.
# flow schema:extract --package-key Flowpack.SchemaOrg.NodeTypes --name APIReference --type APIReference
- you can also import the complete list of types (around ~540 types currently). The following command will
create a file named
NodeTypes.SchemaOrg.All.yaml
in yourData/NodeTypes/Configuration
directory.
# flow schema:extract --package-key Flowpack.SchemaOrg.NodeTypes --name All
-
all create type are abstract, you need to use them is your own NodeType.
-
copy this file to your own package and use your newly created schemas
This package can be used for initial content modeling, based on common standard. The current implementation is flexible enought for the initial Node Type configuration. But now that you use standard schema configuration, it's maybe time to work on:
- JSON-LD (JSON Linked Data)
- RDFa
- MicroData
You can check the Examples
section in the schema.org website: http://schema.org/Person. Maybe some of those template,
especialy for JSON-LD and RDFa, can also be kickstarted by this package. So if you found this package useful, just open
issue if you see missing feature, or if you can help (code, documenation, ...) your are welcome.
- TypoScript2 object to render JSON-LD / RDFa, based on the current document/structure content
- get the specific schema.org type
- import all
supertypes
- analysis of relation between schema,
reference
&references
- build a dependency tree, and import all related types
So during a single import you can ask for a given type, but that system will import all dependecies required
by the main type. This is a sample command output when trying to import UserComments
:
# flow schema:extract --type UserComments
# Extracting schema.org ...
+ Flowpack.SchemaOrg.NodeTypes:AdministrativeArea
+ Flowpack.SchemaOrg.NodeTypes:AlignmentObject
+ Flowpack.SchemaOrg.NodeTypes:Article
+ Flowpack.SchemaOrg.NodeTypes:Audience
+ Flowpack.SchemaOrg.NodeTypes:AudioObject
+ Flowpack.SchemaOrg.NodeTypes:BroadcastService
+ Flowpack.SchemaOrg.NodeTypes:BusinessEntityType
+ Flowpack.SchemaOrg.NodeTypes:BusinessFunction
+ Flowpack.SchemaOrg.NodeTypes:ContactPoint
+ Flowpack.SchemaOrg.NodeTypes:ContactPointOption
+ Flowpack.SchemaOrg.NodeTypes:Country
+ Flowpack.SchemaOrg.NodeTypes:CreativeWork
+ Flowpack.SchemaOrg.NodeTypes:DayOfWeek
+ Flowpack.SchemaOrg.NodeTypes:DeliveryMethod
+ Flowpack.SchemaOrg.NodeTypes:Demand
+ Flowpack.SchemaOrg.NodeTypes:Distance
+ Flowpack.SchemaOrg.NodeTypes:Duration
+ Flowpack.SchemaOrg.NodeTypes:EducationalOrganization
+ Flowpack.SchemaOrg.NodeTypes:Enumeration
+ Flowpack.SchemaOrg.NodeTypes:Event
+ Flowpack.SchemaOrg.NodeTypes:EventStatusType
+ Flowpack.SchemaOrg.NodeTypes:GeoCoordinates
+ Flowpack.SchemaOrg.NodeTypes:Intangible
+ Flowpack.SchemaOrg.NodeTypes:ItemAvailability
+ Flowpack.SchemaOrg.NodeTypes:Language
+ Flowpack.SchemaOrg.NodeTypes:MediaObject
+ Flowpack.SchemaOrg.NodeTypes:NewsArticle
+ Flowpack.SchemaOrg.NodeTypes:Offer
+ Flowpack.SchemaOrg.NodeTypes:OfferItemCondition
+ Flowpack.SchemaOrg.NodeTypes:OpeningHoursSpecification
+ Flowpack.SchemaOrg.NodeTypes:Organization
+ Flowpack.SchemaOrg.NodeTypes:OwnershipInfo
+ Flowpack.SchemaOrg.NodeTypes:PaymentMethod
+ Flowpack.SchemaOrg.NodeTypes:Person
+ Flowpack.SchemaOrg.NodeTypes:Place
+ Flowpack.SchemaOrg.NodeTypes:PostalAddress
+ Flowpack.SchemaOrg.NodeTypes:PriceSpecification
+ Flowpack.SchemaOrg.NodeTypes:Product
+ Flowpack.SchemaOrg.NodeTypes:ProductModel
+ Flowpack.SchemaOrg.NodeTypes:PublicationEvent
+ Flowpack.SchemaOrg.NodeTypes:QuantitativeValue
+ Flowpack.SchemaOrg.NodeTypes:Quantity
+ Flowpack.SchemaOrg.NodeTypes:Rating
+ Flowpack.SchemaOrg.NodeTypes:Review
+ Flowpack.SchemaOrg.NodeTypes:StructuredValue
+ Flowpack.SchemaOrg.NodeTypes:Thing
+ Flowpack.SchemaOrg.NodeTypes:TypeAndQuantityNode
+ Flowpack.SchemaOrg.NodeTypes:UserComments
+ Flowpack.SchemaOrg.NodeTypes:UserInteraction
+ Flowpack.SchemaOrg.NodeTypes:VideoObject
+ Flowpack.SchemaOrg.NodeTypes:WarrantyPromise
+ Flowpack.SchemaOrg.NodeTypes:WarrantyScope
The following file contain your new NodeType:
Data/NodeTypes/Configuration/NodeTypes.SchemaOrg.Default.yaml
If one of the required type exist on your system, it will be skipped during the import process. Updating Node Type configuration is not supported by this package and it will be not supported in futur release.
This package provide some basic mixins, check NodeTypes.Mixins.yaml
.
Feel free to change the default NodeType configuration:
Flowpack:
SchemaOrg:
NodeTypes:
typeDefaultConfiguration:
'*':
abstract: TRUE
nodeLabelGenerator: 'Flowpack\SchemaOrg\NodeTypes\Domain\Model\DefaultNodeLabelGenerator'
ui:
icon: 'icon-gear'
You can also change the default configuration for a specific NodeType:
Flowpack:
SchemaOrg:
NodeTypes:
typeDefaultConfiguration:
'Review':
abstract: FALSE
superTypes:
- 'TYPO3.Neos.NodeTypes:Page'
'PostalAddress':
ui:
icon: 'icon-building'
If you have existing NodeType that can replace some schema.org types, check the configuration:
Flowpack:
SchemaOrg:
NodeTypes:
nodeTypeMapping:
ImageObject: 'TYPO3.Neos.NodeTypes:Image'
If you have existing NodeType that can replace some schema.org types, check the configuration:
Flowpack:
SchemaOrg:
NodeTypes:
propertyBlackList:
'url': TRUE
Sometimes it's useful to replace a property by a existing mixins, per example to use a property as a child nodes:
Flowpack:
SchemaOrg:
NodeTypes:
propertyMixinsMapping:
'image':
- 'TYPO3.Neos.NodeTypes:ImageMixin'
- 'TYPO3.Neos.NodeTypes:ImageCaptionMixin'
Sometimes it's useful to override the default property configuration. This package try to be smart, but you are smarter so feel free to change configuration for a give property.
Flowpack:
SchemaOrg:
NodeTypes:
propertyDefaultConfiguration:
'email':
type: 'string'
validation:
validation:
'TYPO3.Neos/Validation/EmailAddressValidator': []