Skip to content

Package diagram for Eleventy #1464

@Ryuno-Ki

Description

@Ryuno-Ki

Looking towards a v1.0 release I was wondering, how the codebase might look like.

So I wrote a script, that walks through the whole codebase (starting at cmd.js and following require()s):
878425b...Ryuno-Ki:chore/trace-imports-with-mermaid

The output is a mermaid file:

classDiagram
	class CMD
	CMD <|-- ELEVENTYERRORHANDLER
	CMD <|-- ELEVENTY
	CMD <|-- ELEVENTYCOMMANDCHECK
	class ELEVENTYERRORHANDLER
	ELEVENTYERRORHANDLER <|-- ELEVENTYERRORUTIL
	class ELEVENTY
	ELEVENTY <|-- TEMPLATEPATH
	ELEVENTY <|-- TEMPLATEDATA
	ELEVENTY <|-- TEMPLATECONTENT
	ELEVENTY <|-- TEMPLATEWRITER
	ELEVENTY <|-- ELEVENTYEXTENSIONMAP
	ELEVENTY <|-- ELEVENTYERRORHANDLER
	ELEVENTY <|-- ELEVENTYSERVE
	ELEVENTY <|-- ELEVENTYWATCH
	ELEVENTY <|-- ELEVENTYWATCHTARGETS
	ELEVENTY <|-- ELEVENTYFILES
	ELEVENTY <|-- TEMPLATECACHE
	ELEVENTY <|-- PLURALIZE
	ELEVENTY <|-- DELETEREQUIRECACHE
	ELEVENTY <|-- CONFIG
	ELEVENTY <|-- BENCHMARKMANAGER
	class ELEVENTYCOMMANDCHECK
	ELEVENTYCOMMANDCHECK <|-- ELEVENTYBASEERROR
	class ELEVENTYERRORUTIL
	ELEVENTYERRORUTIL <|-- TEMPLATECONTENTPREMATUREUSEERROR
	class TEMPLATEPATH
	class TEMPLATEDATA
	TEMPLATEDATA <|-- MERGE
	TEMPLATEDATA <|-- TEMPLATERENDER
	TEMPLATEDATA <|-- TEMPLATEPATH
	TEMPLATEDATA <|-- TEMPLATEGLOB
	TEMPLATEDATA <|-- ELEVENTYEXTENSIONMAP
	TEMPLATEDATA <|-- ELEVENTYBASEERROR
	TEMPLATEDATA <|-- CONFIG
	TEMPLATEDATA <|-- DELETEREQUIRECACHE
	TEMPLATEDATA <|-- BENCHMARKMANAGER
	TEMPLATEDATA <|-- BENCHMARKMANAGER
	class TEMPLATECONTENT
	TEMPLATECONTENT <|-- ELEVENTYEXTENSIONMAP
	TEMPLATECONTENT <|-- TEMPLATEDATA
	TEMPLATECONTENT <|-- TEMPLATERENDER
	TEMPLATECONTENT <|-- TEMPLATEPATH
	TEMPLATECONTENT <|-- ELEVENTYBASEERROR
	TEMPLATECONTENT <|-- ELEVENTYERRORUTIL
	TEMPLATECONTENT <|-- CONFIG
	TEMPLATECONTENT <|-- BENCHMARKMANAGER
	class TEMPLATEWRITER
	TEMPLATEWRITER <|-- TEMPLATE
	TEMPLATEWRITER <|-- TEMPLATEPATH
	TEMPLATEWRITER <|-- TEMPLATEMAP
	TEMPLATEWRITER <|-- ELEVENTYFILES
	TEMPLATEWRITER <|-- ELEVENTYEXTENSIONMAP
	TEMPLATEWRITER <|-- ELEVENTYBASEERROR
	TEMPLATEWRITER <|-- ELEVENTYERRORHANDLER
	TEMPLATEWRITER <|-- ELEVENTYERRORUTIL
	TEMPLATEWRITER <|-- CONFIG
	class ELEVENTYEXTENSIONMAP
	ELEVENTYEXTENSIONMAP <|-- TEMPLATEENGINEMANAGER
	ELEVENTYEXTENSIONMAP <|-- TEMPLATEPATH
	ELEVENTYEXTENSIONMAP <|-- CONFIG
	class ELEVENTYSERVE
	ELEVENTYSERVE <|-- TEMPLATEPATH
	ELEVENTYSERVE <|-- CONFIG
	class ELEVENTYWATCH
	ELEVENTYWATCH <|-- TEMPLATEPATH
	class ELEVENTYWATCHTARGETS
	ELEVENTYWATCHTARGETS <|-- TEMPLATEPATH
	ELEVENTYWATCHTARGETS <|-- DELETEREQUIRECACHE
	class ELEVENTYFILES
	ELEVENTYFILES <|-- ELEVENTYEXTENSIONMAP
	ELEVENTYFILES <|-- TEMPLATEDATA
	ELEVENTYFILES <|-- TEMPLATEGLOB
	ELEVENTYFILES <|-- TEMPLATEPATH
	ELEVENTYFILES <|-- TEMPLATEPASSTHROUGHMANAGER
	ELEVENTYFILES <|-- CONFIG
	ELEVENTYFILES <|-- BENCHMARKMANAGER
	class TEMPLATECACHE
	class PLURALIZE
	class DELETEREQUIRECACHE
	class CONFIG
	CONFIG <|-- TEMPLATECONFIG
	class BENCHMARKMANAGER
	BENCHMARKMANAGER <|-- BENCHMARKGROUP
	class ELEVENTYBASEERROR
	class TEMPLATECONTENTPREMATUREUSEERROR
	TEMPLATECONTENTPREMATUREUSEERROR <|-- ELEVENTYBASEERROR
	class MERGE
	class TEMPLATERENDER
	TEMPLATERENDER <|-- TEMPLATEPATH
	TEMPLATERENDER <|-- ELEVENTYBASEERROR
	TEMPLATERENDER <|-- ELEVENTYEXTENSIONMAP
	TEMPLATERENDER <|-- CONFIG
	class TEMPLATEGLOB
	TEMPLATEGLOB <|-- TEMPLATEPATH
	class TEMPLATE
	TEMPLATE <|-- TEMPLATEDATA
	TEMPLATE <|-- TEMPLATECONTENT
	TEMPLATE <|-- TEMPLATEPATH
	TEMPLATE <|-- TEMPLATEPERMALINK
	TEMPLATE <|-- TEMPLATEPERMALINKNOWRITE
	TEMPLATE <|-- TEMPLATELAYOUT
	TEMPLATE <|-- TEMPLATEFILESLUG
	TEMPLATE <|-- COMPUTEDDATA
	TEMPLATE <|-- PAGINATION
	TEMPLATE <|-- TEMPLATECONTENTPREMATUREUSEERROR
	TEMPLATE <|-- BENCHMARKMANAGER
	class TEMPLATEMAP
	TEMPLATEMAP <|-- TEMPLATECOLLECTION
	TEMPLATEMAP <|-- ELEVENTYERRORUTIL
	TEMPLATEMAP <|-- USINGCIRCULARTEMPLATECONTENTREFERENCEERROR
	TEMPLATEMAP <|-- ELEVENTYCONFIG
	TEMPLATEMAP <|-- ELEVENTYBASEERROR
	class TEMPLATEENGINEMANAGER
	TEMPLATEENGINEMANAGER <|-- CONFIG
	class TEMPLATEPASSTHROUGHMANAGER
	TEMPLATEPASSTHROUGHMANAGER <|-- CONFIG
	TEMPLATEPASSTHROUGHMANAGER <|-- ELEVENTYEXTENSIONMAP
	TEMPLATEPASSTHROUGHMANAGER <|-- ELEVENTYBASEERROR
	TEMPLATEPASSTHROUGHMANAGER <|-- TEMPLATEPASSTHROUGH
	TEMPLATEPASSTHROUGHMANAGER <|-- TEMPLATEPATH
	class TEMPLATECONFIG
	TEMPLATECONFIG <|-- TEMPLATEPATH
	TEMPLATECONFIG <|-- ELEVENTYBASEERROR
	TEMPLATECONFIG <|-- ELEVENTYCONFIG
	TEMPLATECONFIG <|-- DELETEREQUIRECACHE
	TEMPLATECONFIG <|-- DEFAULTCONFIG
	class BENCHMARKGROUP
	BENCHMARKGROUP <|-- BENCHMARK
	class TEMPLATEPERMALINK
	TEMPLATEPERMALINK <|-- TEMPLATEPATH
	class TEMPLATEPERMALINKNOWRITE
	class TEMPLATELAYOUT
	TEMPLATELAYOUT <|-- TEMPLATELAYOUTPATHRESOLVER
	TEMPLATELAYOUT <|-- TEMPLATECONTENT
	TEMPLATELAYOUT <|-- TEMPLATEDATA
	TEMPLATELAYOUT <|-- TEMPLATEPATH
	TEMPLATELAYOUT <|-- TEMPLATECACHE
	TEMPLATELAYOUT <|-- CONFIG
	class TEMPLATEFILESLUG
	TEMPLATEFILESLUG <|-- TEMPLATEPATH
	class COMPUTEDDATA
	COMPUTEDDATA <|-- COMPUTEDDATAQUEUE
	COMPUTEDDATA <|-- COMPUTEDDATATEMPLATESTRING
	COMPUTEDDATA <|-- COMPUTEDDATAPROXY
	class PAGINATION
	PAGINATION <|-- ELEVENTYBASEERROR
	PAGINATION <|-- CONFIG
	class TEMPLATECOLLECTION
	TEMPLATECOLLECTION <|-- SORTABLE
	TEMPLATECOLLECTION <|-- TEMPLATEPATH
	class USINGCIRCULARTEMPLATECONTENTREFERENCEERROR
	USINGCIRCULARTEMPLATECONTENTREFERENCEERROR <|-- ELEVENTYBASEERROR
	class ELEVENTYCONFIG
	ELEVENTYCONFIG <|-- USERCONFIG
	class TEMPLATEPASSTHROUGH
	TEMPLATEPASSTHROUGH <|-- TEMPLATEPATH
	TEMPLATEPASSTHROUGH <|-- ELEVENTYBASEERROR
	TEMPLATEPASSTHROUGH <|-- BENCHMARKMANAGER
	class BENCHMARK
	class TEMPLATELAYOUTPATHRESOLVER
	TEMPLATELAYOUTPATHRESOLVER <|-- CONFIG
	TEMPLATELAYOUTPATHRESOLVER <|-- TEMPLATEPATH
	class COMPUTEDDATAQUEUE
	class COMPUTEDDATATEMPLATESTRING
	class COMPUTEDDATAPROXY
	class SORTABLE
	SORTABLE <|-- CAPITALIZE
	class USERCONFIG
	USERCONFIG <|-- ELEVENTYBASEERROR
	USERCONFIG <|-- BENCHMARKMANAGER
	USERCONFIG <|-- BENCHMARKMANAGER
	class CAPITALIZE
Loading

You can past that into the Live editor: https://mermaid-js.github.io/mermaid-live-editor/

The result looks like this: eleventy-dep-graph.svg.zip (GitHub does not allow SVG directly - and you can barely read a PNG).

I'd like to have this issue discuss about how to better structure the project.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions