tailwind_dsl 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.builders/boot.rb +1 -0
- data/.builders/generators/utilities.rb +37 -16
- data/CHANGELOG.md +7 -0
- data/lib/tailwind_dsl/etl/component_models/extractor.rb +43 -0
- data/lib/tailwind_dsl/etl/raw_components/director.rb +2 -0
- data/lib/tailwind_dsl/version.rb +1 -1
- data/lib/tailwind_dsl.rb +2 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c311546f3112011590192afd6386ca3e097366b4e32a7d4bdaf90eb2e50bb888
|
4
|
+
data.tar.gz: c0720bf9fc432e6931772d819afebfb4e2fa2aa583bcfb36adf8fc18294f1538
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28c7d5f434fb96350a3bac05180d9e1efc58e3172efc5a9b36c6e14e93359e88c5c3f87ecb14177c7e5a02000f1001871e1b7d388f465572b743ed5b21f7f39c
|
7
|
+
data.tar.gz: 96b446cb33fbb4a976d5187f205357df2439e2699cf37c9d3b886f1734efe3661823ba255923070197155d1eff68ba0335c0af577cccad2c212e27c36bb94ccf
|
data/.builders/boot.rb
CHANGED
@@ -31,6 +31,7 @@ KConfig.configure(CONFIG_KEY) do |config|
|
|
31
31
|
config.target_folders.add(:builder , builder_folder)
|
32
32
|
config.target_folders.add(:data , base_folder, '.data')
|
33
33
|
config.target_folders.add(:components , base_folder, '.components')
|
34
|
+
config.target_folders.add(:component_models , base_folder, '.component_models')
|
34
35
|
|
35
36
|
config.target_folders.add(:template_merakiui , global_template, 'tailwind', 'merakiui')
|
36
37
|
config.target_folders.add(:template_devdojo , global_template, 'tailwind', 'devdojo')
|
@@ -11,21 +11,31 @@ KManager.action :utilities do
|
|
11
11
|
cd(:data)
|
12
12
|
|
13
13
|
# Raw components are source HTML/Tailwind files that have embedded information such as tailwind.config.js and usage instructions
|
14
|
-
|
14
|
+
source_component_path = File.expand_path('~/dev/kgems/k_templates/templates/tailwind')
|
15
15
|
|
16
16
|
# Target components are the processed components that are ready to be consumed by the TailwindDSL
|
17
|
-
|
17
|
+
target_component_path = k_builder.target_folders.get(:components)
|
18
|
+
|
19
|
+
# The component data shapes are reflected model based on the data inside of a HTML templates
|
20
|
+
target_component_model_path = k_builder.target_folders.get(:component_models)
|
18
21
|
|
19
|
-
|
20
|
-
|
22
|
+
# Builds the design_system.json by reading all the HTML templates for every UIKit found the source_component_path
|
23
|
+
uikit = helpers.build_design_systems(source_component_path)
|
21
24
|
|
22
|
-
add('design_system.json', content:
|
25
|
+
add('design_system.json', content: JSON.pretty_generate(uikit.to_h))
|
23
26
|
|
24
|
-
|
27
|
+
# Separate clean and raw components, tailwind configuration, settings into their own folders
|
28
|
+
component_generator = helpers.generate_components(uikit, source_component_path, target_component_path, reset_root_path: false)
|
29
|
+
components = component_generator.components
|
30
|
+
|
31
|
+
# Use GPT3 to extract component models in supervised fashion
|
32
|
+
helpers.extract_next_component_model(components, target_component_model_path, batch_size: 1, use_prompt: true, filter_design_system: 'tui')
|
33
|
+
# puts target_component_path
|
34
|
+
# /Users/davidcruwys/dev/kgems/tailwind_dsl/.components
|
25
35
|
|
26
36
|
# Goals
|
27
37
|
# - Generate a Tailwind component complete design system so that I can see both the component plus the original source code
|
28
|
-
# There should be a deep hierarchy of folders and files in a menu structure
|
38
|
+
# [✔️] There should be a deep hierarchy of folders and files in a menu structure
|
29
39
|
# When you click on a menu item, there should be a preview of the component
|
30
40
|
# The menus should be collapsible
|
31
41
|
# The menus should be searchable
|
@@ -39,21 +49,32 @@ KManager.action :utilities do
|
|
39
49
|
|
40
50
|
end
|
41
51
|
|
42
|
-
def build_design_systems(
|
52
|
+
def build_design_systems(source_component_path)
|
43
53
|
director = TailwindDsl::Etl::RawComponents::Director.new
|
44
54
|
|
45
|
-
director.add_design_system(File.join(
|
46
|
-
# director.add_design_system(File.join(
|
47
|
-
# director.add_design_system(File.join(
|
48
|
-
# director.add_design_system(File.join(
|
49
|
-
# director.add_design_system(File.join(
|
50
|
-
# director.add_design_system(File.join(
|
55
|
+
director.add_design_system(File.join(source_component_path, 'tui'))
|
56
|
+
# director.add_design_system(File.join(source_component_path, 'codepen'))
|
57
|
+
# director.add_design_system(File.join(source_component_path, 'devdojo'))
|
58
|
+
# director.add_design_system(File.join(source_component_path, 'merakiui'))
|
59
|
+
# director.add_design_system(File.join(source_component_path, 'noq'))
|
60
|
+
# director.add_design_system(File.join(source_component_path, 'starter-kit'))
|
51
61
|
director.uikit
|
52
62
|
end
|
53
63
|
|
54
|
-
def generate_components(uikit,
|
55
|
-
generator = TailwindDsl::Etl::ComponentStructures::Generator.new(uikit,
|
64
|
+
def generate_components(uikit, source_component_path, target_folder, reset_root_path: false)
|
65
|
+
generator = TailwindDsl::Etl::ComponentStructures::Generator.new(uikit, source_component_path, target_folder, reset_root_path: reset_root_path)
|
56
66
|
generator.generate
|
67
|
+
generator
|
68
|
+
end
|
69
|
+
|
70
|
+
# Extracts the next component model using GPT3
|
71
|
+
#
|
72
|
+
# This needs to be supervised and verified, so it will only do a few models at a time
|
73
|
+
def extract_next_component_model(components, target_folder, batch_size: 1, use_prompt: false, filter_design_system: nil)
|
74
|
+
puts target_folder
|
75
|
+
extractor = TailwindDsl::Etl::ComponentModels::Extractor.new(components, target_folder, batch_size: batch_size, use_prompt: use_prompt, filter_design_system: filter_design_system)
|
76
|
+
extractor.extract
|
57
77
|
end
|
58
78
|
end
|
79
|
+
|
59
80
|
KManager.opts.sleep = 2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.0.13](https://github.com/klueless-io/tailwind_dsl/compare/v0.0.12...v0.0.13) (2022-10-18)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* refactor tests ([91b730d](https://github.com/klueless-io/tailwind_dsl/commit/91b730d91f99cf06810581d2d1684bb836eae860))
|
7
|
+
|
1
8
|
## [0.0.12](https://github.com/klueless-io/tailwind_dsl/compare/v0.0.11...v0.0.12) (2022-10-14)
|
2
9
|
|
3
10
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TailwindDsl
|
4
|
+
module Etl
|
5
|
+
module ComponentModels
|
6
|
+
# Extract component models by reading the cleansed component HTML and then using GPT3 to infer both the data/model structure.
|
7
|
+
class Extractor
|
8
|
+
attr_reader :uikit
|
9
|
+
attr_reader :target_root_path
|
10
|
+
attr_reader :batch_size
|
11
|
+
attr_reader :use_prompt
|
12
|
+
|
13
|
+
def initialize(uikit, target_root_path, batch_size: 1, use_prompt: false, filter_design_system: nil)
|
14
|
+
@uikit = uikit
|
15
|
+
@target_root_path = target_root_path
|
16
|
+
@batch_size = batch_size
|
17
|
+
@batch_left = batch_size
|
18
|
+
@use_prompt = use_prompt
|
19
|
+
end
|
20
|
+
|
21
|
+
# Goal: Extract the next (batch_size) component models using GPT3 and save them to target_root_path
|
22
|
+
# Create a data file at: design_system.name -> group-hierarchy -> component-name.data.json
|
23
|
+
# Create a model file at: design_system.name -> group-hierarchy -> component-name.model.rb
|
24
|
+
|
25
|
+
# Process: Collect all components and optionally filter them by design system name.
|
26
|
+
# Look for the next component to be processed, if it does not exist in the target folder then process it.
|
27
|
+
# decrement the batch_left counter and continue until batch_left is 0.
|
28
|
+
# if :use_prompt is true then display the input/output files and ask if you wish to process the component or skip.
|
29
|
+
# process the component by calling the GPT3 API and save the results to the target folder.
|
30
|
+
|
31
|
+
def extract; end
|
32
|
+
|
33
|
+
# def components
|
34
|
+
# @components ||= uikit.design_systems.map do |design_system|
|
35
|
+
# design_system.components.map do |component|
|
36
|
+
# Component.new(design_system, component, source_root_path, target_root_path)
|
37
|
+
# end
|
38
|
+
# end.flatten
|
39
|
+
# end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/tailwind_dsl/version.rb
CHANGED
data/lib/tailwind_dsl.rb
CHANGED
@@ -17,6 +17,8 @@ require_relative 'tailwind_dsl/etl/raw_components/schema/uikit'
|
|
17
17
|
|
18
18
|
require_relative 'tailwind_dsl/etl/component_structures/raw_component_query'
|
19
19
|
require_relative 'tailwind_dsl/etl/component_structures/generator'
|
20
|
+
|
21
|
+
require_relative 'tailwind_dsl/etl/component_models/extractor'
|
20
22
|
# require_relative 'tailwind_dsl/astro_demo/generate_astro_page_data'
|
21
23
|
|
22
24
|
module TailwindDsl
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "tailwind_dsl",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.14",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "tailwind_dsl",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.14",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tailwind_dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -2151,6 +2151,7 @@ files:
|
|
2151
2151
|
- lib/_.rb
|
2152
2152
|
- lib/tailwind_dsl.rb
|
2153
2153
|
- lib/tailwind_dsl/astro_demo/generate_astro_page_data.rb
|
2154
|
+
- lib/tailwind_dsl/etl/component_models/extractor.rb
|
2154
2155
|
- lib/tailwind_dsl/etl/component_structures/generator.rb
|
2155
2156
|
- lib/tailwind_dsl/etl/component_structures/raw_component_query.rb
|
2156
2157
|
- lib/tailwind_dsl/etl/element.rb
|