rabbit-slide-Piro-presentation-vanilla-js-library-topics 2024.5.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/LICENSE +11 -0
- data/README.md +23 -0
- data/Rakefile +28 -0
- data/config.yaml +24 -0
- data/images/lifetime.png +0 -0
- data/images/systemadmingirl.jpg +0 -0
- data/images/tst.png +0 -0
- data/pdf/presentation-vanilla-js-library-topics-scenario.pdf +0 -0
- data/scenario.rab +131 -0
- metadata +82 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9982f56f316f7a4998e095b4951f057dadfe17162265c8d06b098e188dc31ab3
|
4
|
+
data.tar.gz: c781139d3b1e60add64654ae1ca2f9ee5ede7ab33ecf7f1c840f5a3f72650d76
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 341f40a3e3df2f4591aee60d32783275bac06d16f885a4991b00e7c40b15e1daf683185c335cb948b97b48e81e9f62419c0587a30881a8f6eef6c0de5ee7cc98
|
7
|
+
data.tar.gz: 7c92a6f0df619dfeb6857b65a48ce6dabe14c122f190a8b463a65b38ff5acd2f5a654e887ebc929d18e06d8c50e31450c02b4af63f1ac9f6d4475f69734618ec
|
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
scenario.rab
|
data/LICENSE
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
CC BY-SA 4.0 International
|
2
|
+
|
3
|
+
Copyright 2015-2016 (C) 株式会社クリアコード
|
4
|
+
Copyright 2016-2017 (C) Kouhei Sutou <kou@clear-code.com>
|
5
|
+
Copyright 2016 (C) Yasunori Goto <ygotopersonal@gmail.com>
|
6
|
+
Copyright 2016 (C) TADA, Tadashi <t@tdtds.jp>
|
7
|
+
Copyright 2017 (C) Kimiaki Kuno <knokmki612@gmail.com>
|
8
|
+
Copyright 2017 (C) Yoichi Nakayama <yoichi.nakayama@gmail.com>
|
9
|
+
Copyright 2017 (C) Toshihiko Osawa <tshkh8@gmail.com>
|
10
|
+
|
11
|
+
http://creativecommons.org/licenses/by-sa/4.0/
|
data/README.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# バニラJS開発ライブラリー事情
|
2
|
+
|
3
|
+
[Nextbeat Tech Bar:第一回ライブラリ開発について考える会](https://nextbeat.connpass.com/event/312789/)での発表資料です。
|
4
|
+
|
5
|
+
## ライセンス
|
6
|
+
|
7
|
+
CC BY-SA 4.0
|
8
|
+
|
9
|
+
詳細は[LICENSE](./LICENSE)を確認してください。
|
10
|
+
|
11
|
+
## スライド
|
12
|
+
|
13
|
+
### 表示
|
14
|
+
|
15
|
+
```console
|
16
|
+
% rake
|
17
|
+
```
|
18
|
+
|
19
|
+
### 公開
|
20
|
+
|
21
|
+
```console
|
22
|
+
% rake publish
|
23
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require "rabbit/task/slide"
|
2
|
+
|
3
|
+
# Edit ./config.yaml to customize meta data
|
4
|
+
|
5
|
+
Dir.glob("../{LICENSE,images/**/*.*}") do |shared_file|
|
6
|
+
relative_path = shared_file.gsub(/\A\.\.\//, "")
|
7
|
+
file relative_path => shared_file do
|
8
|
+
mkdir_p(File.dirname(relative_path))
|
9
|
+
cp(shared_file, relative_path)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
spec = nil
|
14
|
+
Rabbit::Task::Slide.new do |task|
|
15
|
+
spec = task.spec
|
16
|
+
task.spec.files += ["LICENSE"]
|
17
|
+
task.spec.files += Dir.glob("../images/**/*.*").collect do |path|
|
18
|
+
path.gsub(/\A\.\.\//, "")
|
19
|
+
end
|
20
|
+
# task.spec.files -= Dir.glob("private/**/*.*")
|
21
|
+
task.spec.add_runtime_dependency("rabbit-theme-clear-code")
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "Tag #{spec.version}"
|
25
|
+
task :tag do
|
26
|
+
sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
|
27
|
+
sh("git", "push", "--tags")
|
28
|
+
end
|
data/config.yaml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
id: presentation-vanilla-js-library-topics
|
3
|
+
base_name: scenario
|
4
|
+
tags:
|
5
|
+
- rabbit
|
6
|
+
- oss_gate
|
7
|
+
- workshop
|
8
|
+
presentation_date: 2024-05-24
|
9
|
+
version: 2024.5.24.0
|
10
|
+
licenses:
|
11
|
+
- CC-BY-SA-4.0
|
12
|
+
slideshare_id:
|
13
|
+
speaker_deck_id:
|
14
|
+
ustream_id:
|
15
|
+
vimeo_id:
|
16
|
+
youtube_id:
|
17
|
+
source_code_uri: https://gitlab.com/clear-code/presentation-vanilla-js-library-topics
|
18
|
+
author:
|
19
|
+
markup_language: :rd
|
20
|
+
name: YUKI Hiroshi
|
21
|
+
email: yuki@clear-code.com
|
22
|
+
rubygems_user: Piro
|
23
|
+
slideshare_user:
|
24
|
+
speaker_deck_user:
|
data/images/lifetime.png
ADDED
Binary file
|
Binary file
|
data/images/tst.png
ADDED
Binary file
|
Binary file
|
data/scenario.rab
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
= バニラJS開発\nライブラリー事情
|
2
|
+
|
3
|
+
: theme
|
4
|
+
clear-code
|
5
|
+
|
6
|
+
: author
|
7
|
+
結城洋志 aka Piro
|
8
|
+
|
9
|
+
: institution
|
10
|
+
株式会社クリアコード
|
11
|
+
|
12
|
+
: allotted_time
|
13
|
+
5m
|
14
|
+
|
15
|
+
= 活動1:シェルコマンド解説漫画
|
16
|
+
|
17
|
+
# image
|
18
|
+
# src = ./images/systemadmingirl.jpg
|
19
|
+
# relative_width = 40
|
20
|
+
|
21
|
+
== プロパティー
|
22
|
+
|
23
|
+
: enable-title-on-image
|
24
|
+
false
|
25
|
+
|
26
|
+
= 活動2:Firefoxアドオン\nTree Style Tabなど
|
27
|
+
|
28
|
+
# image
|
29
|
+
# src = ./images/tst.png
|
30
|
+
# relative_width = 70
|
31
|
+
|
32
|
+
== プロパティー
|
33
|
+
|
34
|
+
: enable-title-on-image
|
35
|
+
false
|
36
|
+
|
37
|
+
= Firefox\nアドオンを\nバニラJSで
|
38
|
+
|
39
|
+
= なんでバニラJS?
|
40
|
+
|
41
|
+
(('wait'))昔のFirefoxアドオンは\n
|
42
|
+
「動的なパッチ」だった
|
43
|
+
|
44
|
+
* (('wait'))Firefox本体のスクリプトの\n
|
45
|
+
名前空間に変数や関数を注入
|
46
|
+
* (('wait'))静的解析しにくい
|
47
|
+
* (('wait'))下手にライブラリーを使うと\n
|
48
|
+
名前空間汚染でFirefoxが壊れる
|
49
|
+
|
50
|
+
= なぜライブラリー自作?
|
51
|
+
|
52
|
+
* (('wait'))ニッチすぎて既存の物が無い
|
53
|
+
* Firefoxの内部実装に強く依存
|
54
|
+
* 設定読み書き, UIの多言語対応, etc.
|
55
|
+
* (('wait'))既製UIライブラリーは\n
|
56
|
+
自我が強すぎる
|
57
|
+
* メニューUIなど
|
58
|
+
* FirefoxのUI=ネイティブUIに\n
|
59
|
+
馴染むUIウィジェットが欲しい
|
60
|
+
|
61
|
+
= ライブラリーができるまでの流れ
|
62
|
+
|
63
|
+
* (('wait'))複数アドオンで共通して\n
|
64
|
+
実現したい機能が出てくる
|
65
|
+
* (('wait'))→関数やクラスを\n
|
66
|
+
単体のファイルに切り出す
|
67
|
+
* (('wait'))→README, LICENSEを付けて\n
|
68
|
+
GitHubで公開
|
69
|
+
|
70
|
+
= できるもの
|
71
|
+
|
72
|
+
* (('wait'))数十~数百行程度
|
73
|
+
* (('wait'))他のライブラリーに非依存
|
74
|
+
* Firefox専用だからpolyfillも不要
|
75
|
+
* (('wait'))パッケージマネージャーの\n
|
76
|
+
必要性が薄い
|
77
|
+
|
78
|
+
= ていうか……
|
79
|
+
|
80
|
+
# image
|
81
|
+
# src = ./images/lifetime.png
|
82
|
+
# relative_width = 90
|
83
|
+
|
84
|
+
早死にされそうで不安
|
85
|
+
|
86
|
+
== プロパティー
|
87
|
+
|
88
|
+
: enable-title-on-image
|
89
|
+
false
|
90
|
+
|
91
|
+
= そんなライブラリーの使い方
|
92
|
+
|
93
|
+
* (('wait'))Gitのサブモジュール
|
94
|
+
git submodule add <URL> submodules/<name>
|
95
|
+
|
96
|
+
= ビルド・パッケージング時
|
97
|
+
|
98
|
+
* (('wait'))Makefileのmale rule中で\n
|
99
|
+
ファイルをコピーするだけ
|
100
|
+
xpi:
|
101
|
+
cp submodules/webextensions-lib-configs/Configs.js extlib/
|
102
|
+
zip -r -9 treestyletab.xpi manifest.json ... extlib
|
103
|
+
* (('wait'))コピー後のファイルは\n
|
104
|
+
.gitignore、.eslintignoreで\n
|
105
|
+
除外
|
106
|
+
|
107
|
+
= ライブラリーのロード
|
108
|
+
|
109
|
+
* (('wait'))<script src="..."> で\n
|
110
|
+
同じ名前空間にロード
|
111
|
+
* (('wait'))ES Modulesのimport
|
112
|
+
* (('wait'))コピー後に小加工して
|
113
|
+
両対応
|
114
|
+
xpi:
|
115
|
+
cp submodules/webextensions-lib-configs/Configs.js extlib/
|
116
|
+
echo 'export default Configs;' >> extlib/Configs.js
|
117
|
+
...
|
118
|
+
|
119
|
+
= 何が正解なんだろう?
|
120
|
+
|
121
|
+
|
122
|
+
= ちなみに、今の\nFirefoxアドオン開発
|
123
|
+
|
124
|
+
* Chromiumと同様のモデル\n
|
125
|
+
(WebExtensions)
|
126
|
+
* 名前空間が完全に分離された
|
127
|
+
* ライブラリも安全に読み込める
|
128
|
+
* みんなTypeScriptで書いてる
|
129
|
+
|
130
|
+
今さらバニラJSの必要性は皆無\n
|
131
|
+
(オチ)
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbit-slide-Piro-presentation-vanilla-js-library-topics
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2024.5.24.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- YUKI Hiroshi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-05-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rabbit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rabbit-theme-clear-code
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: "[Nextbeat Tech Bar:第一回ライブラリ開発について考える会](https://nextbeat.connpass.com/event/312789/)での発表資料です。"
|
42
|
+
email:
|
43
|
+
- yuki@clear-code.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".rabbit"
|
49
|
+
- LICENSE
|
50
|
+
- README.md
|
51
|
+
- Rakefile
|
52
|
+
- config.yaml
|
53
|
+
- images/lifetime.png
|
54
|
+
- images/systemadmingirl.jpg
|
55
|
+
- images/tst.png
|
56
|
+
- pdf/presentation-vanilla-js-library-topics-scenario.pdf
|
57
|
+
- scenario.rab
|
58
|
+
homepage: https://slide.rabbit-shocker.org/authors/Piro/presentation-vanilla-js-library-topics/
|
59
|
+
licenses:
|
60
|
+
- CC-BY-SA-4.0
|
61
|
+
metadata:
|
62
|
+
source_code_uri: https://gitlab.com/clear-code/presentation-vanilla-js-library-topics
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options: []
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
requirements: []
|
78
|
+
rubygems_version: 3.3.5
|
79
|
+
signing_key:
|
80
|
+
specification_version: 4
|
81
|
+
summary: バニラJS開発ライブラリー事情
|
82
|
+
test_files: []
|