Hack Atom with Node.js

Preview:

Citation preview

Hack Atom w/ Node

Kenju Wagatsuma

/* * Introduce Myself * * @kenjuwagatsuma */

'me' = { name : 'Kenju Wagatsuma ( KJ )’,

}

'me' = { name : 'Kenju Wagatsuma ( KJ )’, company : 'Recruit Technologies Co.,LTD.',

}

'me' = { name : 'Kenju Wagatsuma ( KJ )’, company : 'Recruit Technologies Co.,LTD.', profession : 'Android Development',

}

'me' = { name : 'Kenju Wagatsuma ( KJ )’, company : 'Recruit Technologies Co.,LTD.', profession : 'Android Development', career : { 2011 : 'Graphic Designer ( PS, AI, ID )' 2013 : 'Web Designer ( HTML+CSS, jQuery)' 2014 : 'Web Engineer ( JavaScript )' 2015 : 'Programmer ( Java/Android )' } }

Me * Node =

Me * Node = Not Professional (Just for fun)

/* * What Atom? */

Atom is: ->❖ Project supported by GitHub

Atom is: ->❖ Project supported by GitHub ❖ Specialized variant of Chromium

designed to be a text editor

Atom is: ->❖ Project supported by GitHub ❖ Specialized variant of Chromium

designed to be a text editor ◎ asset pipelines

Atom is: ->❖ Project supported by GitHub ❖ Specialized variant of Chromium

designed to be a text editor ◎ asset pipelines ◎ access to local files

Atom is: ->❖ Project supported by GitHub ❖ Specialized variant of Chromium

designed to be a text editor ◎ asset pipelines ◎ access to local files ◎ asynchronous module definition

Atom is: ->❖ Project supported by GitHub ❖ Specialized variant of Chromium

designed to be a text editor ◎ asset pipelines ◎ access to local files ◎ asynchronous module definition ◎ script concatenation

https://speakerdeck.com/zcbenz/practice-on-embedding-node-dot-js-into-atom-editor

https://speakerdeck.com/zcbenz/practice-on-embedding-node-dot-js-into-atom-editor

(Before Electron)

/* * Why Atom? */

Why Atom: ->❖ Play with Node API ❖ FS, HTTP, Stream, Async methods…

Why Atom: ->❖ Play with Node API ❖ FS, HTTP, Stream, Async methods…

❖ Always running on the newest Chromium ❖ No more polyfill ❖ Can ignore browser compatibility

Why Atom: ->❖ Play with Node API ❖ FS, HTTP, Stream, Async methods…

❖ Always running on the newest Chromium ❖ No more polyfill ❖ Can ignore browser compatibility

❖ Support from GitHub teams ❖ Long-term development

/* * How Atom? */

❖ 1. Contribute to Atom Editor

❖ 2. Contribute to Atom Packages

❖ 3. Write Your Own Atom Package

You can: ->

❖ 1. Contribute to Atom Editor

❖ 2. Contribute to Atom Packages

❖ 3. Write Your Own Atom Package

You can: ->

* * @param x : ?(mental) * @param y : ?(skill) * @param z : ?(grammer) * @return ? */ contribute(x, y, z): -> while x.isExist doYourBest

* * @param x : Passion * @param y : Node * @param z : CoffeScript * @return ? */ contribute(x, y, z): -> while x.isExist doYourBest

❖ 1. Contribute to Atom Editor

❖ 2. Contribute to Atom Packages

❖ 3. Write Your Own Atom Package

You can: ->

/* * We Need Your Help! */

❖ 1. Contribute to Atom Editor

❖ 2. Contribute to Atom Packages

❖ 3. Write Your Own Atom Package

You can: ->

Atom API: ->Clipboard Color Cursor Directory File GitRepository KeymapManager TextBuffer ThemeManager …etc

Get Started: ->

‘cmd-shift-p’

then

‘Package Generator’

… That’s it!

Package: ->

This is the basic package layout.

`lib` file is the core of the packages:

***-view.coffee ***.coffee

Debug: ->

It’s based on Chromium, right?

Test: ->

Oh, my princess Jasmine♥

Publish: ->

`apm publish` is what you’re looking for.

Run `apm publish -h` for help

/* * Conclusion */

❖ 1. Contribute to Atom Editor

→ Please do if you can :)

❖ 2. Contribute to Atom Packages

→ A lot of rooms for improvement

❖ 3. Write Your Own Atom Package

→ Super Easy

You can: ->

Read this: ->

https://atom.io/docs/v1.1.0/

Atom Flight Manual

Ask Here: ->

https://discuss.atom.io/Atom Discuss

Join us: ->

https://atomio.slack.com/Atom Slack

Atom is really hackable

Atom is really hackable

powered by Node.js

Atom is really hackable

powered by Node.js

and you are Node Professional!

http://bit.ly/nodefest2015kj

Thanks;

/* * Appendix */

❖ Release Notes ➡ https://atom.io/releases

❖ API References ➡ https://atom.io/docs/api/v1.1.0/Atom

❖ Blog ➡ http://blog.atom.io/

References: ->

❖ “node-webkit” by Cheng Zhao ➡ https://speakerdeck.com/zcbenz/

node-webkit-app-runtime-based-on-chromium-and-node-dot-js

❖ “Atom” by John Nunemaker ➡ https://speakerdeck.com/

jnunemaker/atom

Best Slides: ->

Recommended