concentrate=true a [label="Text source\nGithub, Gitlab, ..."] [shape=box] b -> sync [dir="both"] b [label="HackMD Editor"] [shape=box] c [label="Hackmd-it \ncore"] [shape=box] label="An edit session" sync -> a [dir="both"] sync [label="sync" shape=plaintext ] - It doesn't break things c -> sync [ltail=session lhead=session] color: #337AB7 !important; color: #F7A004 !important; compound=true edge [ fontname="Source Sans Pro", fontsize=12 ]; graph [ fontname="Source Sans Pro", fontsize=20 ]; node [ fontname="Source Sans Pro", fontsize=18]; rankdir=RL return await fakeLogin() subgraph cluster1 { subgraph core { } } ![](https://i.imgur.com/ij69tPh.png) # :100: :muscle: :tada: # :bulb: # :fork_and_knife: # 傳揚系統說明會 ## Content script ## 流程 ## 系統管理員 ## 總經理 ### Architecture of extension ### Thank you! :sheep: ### Usage flow ### Wrap up - <code class="blue">sendMessage('event')</code>: Trigger event - <code class="orange">onMessage('event')</code>: Register event listener - A small library to solve messaging pain - Add event listeners - Bind with each page - Cross envornment commnication - Dead simple API - GitHub - Isolated JavaScript environment - Manipulate DOM - Only cares about application logic - Twitter - TypeScript Rocks :tada: - or email me - ph --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- // in background script // in inject script // setup channel in different page environment, once <!-- Put the link to this slide here so people can follow --> </style> <br> <style> You can find me on ``` ``` ``` ``` ```graphviz ```typescript ```typescript ```typescript channel.answer('isLogin', async () => { code.blue { code.orange { console.log(isLogin) //-> true const channel = Channeru.create() const fakeLogin = async () => true const isLogin = await channel.callBackground('isLogin') description: 測試說明會簡報 digraph { import * as Channeru from 'channeru' title: Trendyoung 測試說明會 } } } }) 接下來會以 **財務、業務、專案執行** 的角度進行演
{"metaMigratedAt":"2023-06-16T21:18:05.146Z","metaMigratedFrom":"Content","title":":100: :muscle: :tada:","breaks":true,"contributors":"[{\"id\":\"fa901801-f0ab-474b-876f-82f73ae27e14\",\"add\":4916,\"del\":2816}]"}
    221 views