-
-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathcopier.yml
More file actions
132 lines (113 loc) · 3.31 KB
/
copier.yml
File metadata and controls
132 lines (113 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
_min_copier_version: "7.1.0"
_subdirectory: template
_jinja_extensions:
- jinja2_time.TimeExtension
kind:
type: str
help: What is your extension kind?
default: frontend
choices:
- frontend
- mimerenderer
- frontend-and-server
- theme
author_name:
type: str
help: Extension author name
placeholder: "My Name"
validator: >-
{% if not (author_name | regex_search('^[^\s].*$')) %}
author_name cannot be empty nor start with a blank character.
{% endif %}
author_email:
type: str
help: Extension author email
default: ""
placeholder: "me@test.com"
# Allow empty email or test it against regex
validator: >-
{% if author_email and not (author_email | regex_search('^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$')) %}
author_email must be a valid email address.
{% endif %}
labextension_name:
type: str
help: JavaScript package name
default: "{% if kind == 'theme' %}mytheme{% else %}myextension{% endif %}"
python_name:
type: str
help: Python package name
default: "{{ labextension_name | replace('-', '_') | replace('/', '_') | trim('@') }}"
project_short_description:
type: str
help: Extension short description
default: "A JupyterLab extension."
has_settings:
when: "{{ kind != 'mimerenderer' }}"
type: bool
help: Does the extension have user settings or schema-defined UI elements?
default: no
has_binder:
type: bool
help: Do you want to set up Binder example?
default: no
test:
type: bool
help: Do you want to set up tests for the extension?
default: yes
has_ai_rules:
type: bool
help: Include AI assistant rules (AGENTS.md) for coding standards?
default: no
create_claude_symlink:
when: "{{ has_ai_rules }}"
type: bool
help: Create CLAUDE.md symlink for Claude Code compatibility?
default: yes
create_gemini_symlink:
when: "{{ has_ai_rules }}"
type: bool
help: Create GEMINI.md symlink for Gemini Code Assist compatibility?
default: yes
repository:
type: str
help: Git remote repository URL
placeholder: https://github.com/github_username/my-extension
viewer_name:
when: "{{ kind == 'mimerenderer' }}"
type: str
help: What is the MIME type viewer name?
default: ""
placeholder: My Viewer
mimetype:
when: "{{ kind == 'mimerenderer' }}"
type: str
help: MIME type
default: ""
placeholder: "application/vnd.my_organization.my_type"
mimetype_name:
when: "{{ kind == 'mimerenderer' }}"
type: str
help: MIME type name
default: ""
placeholder: my_type
file_extension:
when: "{{ kind == 'mimerenderer' }}"
type: str
help: MIME type file extension
default: ""
placeholder: .my_type
data_format:
when: "{{ kind == 'mimerenderer' }}"
type: str
help: MIME type content format
choices:
- string
- json
default: string
_tasks:
# Create CLAUDE.md symlink if requested
- command: python -c "import os; os.symlink('AGENTS.md', 'CLAUDE.md') if not os.path.exists('CLAUDE.md') else None; print('✓ Created CLAUDE.md → AGENTS.md symlink')"
when: "{{ has_ai_rules and create_claude_symlink }}"
# Create GEMINI.md symlink if requested
- command: python -c "import os; os.symlink('AGENTS.md', 'GEMINI.md') if not os.path.exists('GEMINI.md') else None; print('✓ Created GEMINI.md → AGENTS.md symlink')"
when: "{{ has_ai_rules and create_gemini_symlink }}"