SlideShare ist ein Scribd-Unternehmen logo
1 von 79
Confluence 4 and Beyond



  Sherif Mansour
  Confluence Product Manager, Atlassian


  Charles Miller
  Confluence Architect, Atlassian
                                          2
Agenda
• Confluence 4 for
 • Users
 • Plugin Developers
• Beyond the 4.0 editing experience
 • Releases
 • Other 4.0 developer improvements
                                      3
Confluence 4.0




                 4
Confluence 4.0




                 4
5
Fir! class   experiences


                           5
Fir! class   experiences


                           5
First class for content




                          6
First class for content
 • Value increases with content




                                  6
First class for content
 • Value increases with content


 • Start of collaboration cycle




                                  6
7
You




      7
You




      7
You




      7
8
9
Brilliantly Simple




                     9
10
Packed with Power




            visual macros   advanced tables


                                              10
11
Intelligent and Fast




   h1. Hi -> Hi
   *bold * -> bold
       :) ->



autoformat wiki markup       autocomplete +   paste images
                               shortcut luv
                                                             11
12
Familiarly Social




                    12
First Class Content Creation
Experience




                               13
First Class Content Creation
Experience

       Brilliantly Simple    Packed with Power



      Intelligent and Fast    Familiarly Social




                                                  13
14
14
15
Confluence 2.x
                 15
Confluence 2.x   Confluence 3.x
                                  15
Confluence 2.x   Confluence 3.x   Confluence 4.x
                                                   15
Confluence 4.x




                 16
Confluence 4.x




                 16
Confluence 4.x




                 17
Confluence 4.x




                 17
Confluence 4.x




                 17
Confluence 4.x




                 17
Confluence 4.x




                 You control this experience




                                               17
Confluence 4.x




                 17
Confluence 4.x




                 17
Confluence 4.x




                 17
Confluence 4.x




     • No macro parameter knowledge required


     • No need for the user to know about the macro


     • Create a more WYSIWYG experience


     • You control the experience, seamless integration
                                                          18
Confluence 4.x

1. Insert menu

2. Formatting menu

3. Custom property
   panel buttons

4. Rendered images as
   macro placeholders

5. Footer actions

6. Default parameter in
  placeholder
                          19
Confluence 4.x

1. Insert menu

2. Formatting menu

3. Custom property
   panel buttons

4. Rendered images as
   macro placeholders          2:15 pm
                               Thursday
5. Footer actions

6. Default parameter in   Ryan Thomas
  placeholder
                                          19
20
Fir! class




             20
Beyond 4.0
• 4.1 - Page Layouts



• 4.2 - Template Improvements




                                21
Confluence 4 and Beyond



  Sherif Mansour
  Confluence Product Manager, Atlassian

   Charles Miller
   Confluence Architect, Atlassian
                                          22
Confluence 4 and Beyond



  Sherif Mansour
  Confluence Product Manager, Atlassian

   Charles Miller
   Confluence Architect, Atlassian
                                          22
Two cool things for 4.0
…that aren’t the rich text editor




     Charles Miller
     Confluence Architect, Atlassian
                                       23
Closure Templates



                    24
Closure Templates
• Language-neutral
• Compiled to Javascript for the client
• Component-based




               http://code.google.com/closure/templates/index.html
                                                                     25
Defining a template
example.soy

     {namespace Confluence.Templates.Example}
     /**
      * Renders a Hello message.
      * @param name the name of the user
      */
     {template .helloWorld}
         <div>Hello {$name}!</div>
     {/template}


      https://developer.atlassian.com/display/CONFDEV/Templating+in+JavaScript+with+Soy   26
Looping and Branching
{foreach $child in $children}
     {call .pageInfo data="$child"}
        {param oddRow: index($child) % 2 /}
     {/call}
{ifEmpty}
     {getText(‘page.has.no.children’)}
{/foreach}



                                              27
Invoking a template
example.js

      var data = {name: “John Smith”}

      Confluence.Templates.Example.helloWorld(data);




       https://developer.atlassian.com/display/CONFDEV/Templating+in+JavaScript+with+Soy   28
Compiling a template
   atlassian-plugin.xml
          <web-resource key="example-resources">
              <transformation extension="soy">
                 <transformer key="soyTransformer"/>
              </transformation>

              <resource type="download" name="example-soy.js"
                        location="/soy/example.soy"/>
          </web-resource>




https://developer.atlassian.com/display/PLUGINFRAMEWORK/Web+Resource+Transformer+Plugin+Module   29
Closure (Soy) Templates
• Bundled plugin in Confluence 4.0
• Server-side templates supported in 4.1




                                           30
JSON-RPC



           31
RPC
 • SOAP

    • Complicated XML protocol

    • Made easy with tool support

 • XML-RPC

    • Simpler XML protocol

    • Widely available libraries

https://developer.atlassian.com/display/CONFDEV/Confluence+XML-RPC+and+SOAP+APIs   32
REST
• Data transport agnostic (usually XML/JSON)
• Pure HTTP, no need for library support
• Limited Confluence API




                                               33
JSON-RPC
• Simple JSON protocol
• RPC, not REST
• Easy to use from the browser




                                 34
Standard JSON-RPC
• Too much protocol overhead
• Still requires a client-side library




                     http://groups.google.com/group/json-rpc   35
JSON-RPC plugin
• Exposes all XML-RPC/SOAP services as JSON-RPC
• Authentication via web login session
• Supports both standard JSON-RPC and a web-friendly
  “light” protocol




             https://plugins.atlassian.com/plugin/details/40277   36
JSON-RPC Light Request
   POST /rpc/json-rpc/confluenceservice-v2/getSpace

        [ "DOC" ]




                                                      37
JSON-RPC Light Response
   POST /rpc/json-rpc/confluenceservice-v2/getSpace
        { key : "DOC",
          name : "Documentation Space",
          url : "http://wiki.example.com/display/DOC",
          homePage : "Home",
          description : "Product Documentation" }




                                                         38
Calling from jQuery
jQuery.ajax({
    url: Confluence.getContextPath() +
          “/rpc/json-rpc/confluenceservice-v2/getSpace”,
    type: “POST”,
    dataType: “json”,
    contentType: "application/json",
    data: JSON.stringify([ AJS.Meta.get(“space-id”) ]),
    success: function(data) { show_space(data) },
    error: function(data) { show_error(data) }
});




                                                           39
Confluence JSON-RPC Plugin
• Available from plugins.atlassian.com
• Compatible with Confluence 3.5 or later
• Will be bundled with Confluence 4.1




                                            40
Putting them together…



                         41
42
43
Retrieve with JSON-RPC
jQuery.ajax({
        url: Confluence.getContextPath() +
              "/rpc/json-rpc/confluenceservice-v2/getPageHistory",
        type: "POST",
        dataType: "json",
        contentType: "application/json",
        data: JSON.stringify([ AJS.Meta.get("page-id") ]),
        success: function(data) { show_history_popup(data) },
        error: function(data) { show_error_popup(data) }
    });




                                                                     44
Display with Closure
    function show_history_popup(historyData) {
       popup = AJS.ConfluenceDialog({
                   width : 865,
                   height: 530,
                   id: "page-history-dialog",
                   onCancel: cancel
               });
       ...
       popup.addPanel(
          Confluence.Templates.Plugins.Pagehistory.popup(
             { histories: historyData })
       popup.show();
}


                                                            45
Display with Closure
pagehistory-template.soy
      /**
       * Displays the page history popup
       *
       * @param histories array of the history objects to list
       */
      {template .popup}
              <form name="diff" method="GET" action="{contextPath}/pages/diffpagesbyversion.action">

                  <input type="submit" value="{getText('compare.selected')}">
                  <input type="hidden" name="pageId" value="{$histories[0].id}">
                      <table id="page-history-container" width="100%" cellspacing="0" class="tableview">
                           <tr>
                              <th>&nbsp;</th>
                              <th>{getText('heading.version.number')}</th>
                              <th>{getText('heading.version.date')}</th>
                              <th>{getText('heading.comment')}</th>
                            </tr>

                             {foreach $history in $histories}
                                 {call .historyRow data="$history"}
                                     {param current: isFirst($history)/}
                                 {/call}
                             {/foreach}
                        </table>
              </form>
      {/template}                                                                                          46
Cheat it into the menu…
$("#action-view-history-link").click(function(e) {
     show_history();
     e.preventDefault();
});




                                                     47
48
Download the code


https://bitbucket.org/cmiller_atlassian/atlascamp-pagehistory-demo




                                                                     49
Thank you
• Learn more about Confluence 4:
   1.http://atlss.in/confluence4
   2.Hands-on Developer Sessions
   3.“Pimp my Confluence Plugin” - Thursday, 2:15pm


• Questions?
  charles@atlassian.com, sherif@atlassian.com         50
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsOpening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsBastian Hofmann
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsAlfresco Software
 
Vaadin7
Vaadin7Vaadin7
Vaadin7jojule
 
Chrome Extensions for Hackers
Chrome Extensions for HackersChrome Extensions for Hackers
Chrome Extensions for HackersCristiano Betta
 
Easy rest service using PHP reflection api
Easy rest service using PHP reflection apiEasy rest service using PHP reflection api
Easy rest service using PHP reflection apiMatthieu Aubry
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkBo-Yi Wu
 
Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Alberto Perdomo
 

Was ist angesagt? (9)

Web services tutorial
Web services tutorialWeb services tutorial
Web services tutorial
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsOpening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension Points
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
 
Vaadin7
Vaadin7Vaadin7
Vaadin7
 
Chrome Extensions for Hackers
Chrome Extensions for HackersChrome Extensions for Hackers
Chrome Extensions for Hackers
 
Easy rest service using PHP reflection api
Easy rest service using PHP reflection apiEasy rest service using PHP reflection api
Easy rest service using PHP reflection api
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP Framework
 
Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011Rails for Mobile Devices @ Conferencia Rails 2011
Rails for Mobile Devices @ Conferencia Rails 2011
 

Ähnlich wie AtlasCamp 2011: Confluence 4 and Beyond

Remixing Confluence With Speakeasy
Remixing Confluence With SpeakeasyRemixing Confluence With Speakeasy
Remixing Confluence With Speakeasynabeelahali
 
Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Atlassian
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Arun Gupta
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Docker, Inc.
 
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...NETWAYS
 
How to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share featureHow to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share featureAngel Borroy López
 
ITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesOrtus Solutions, Corp
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Atlassian
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to TornadoGavin Roy
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)Doris Chen
 
Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Hugo Hamon
 
The Ring programming language version 1.5.4 book - Part 43 of 185
The Ring programming language version 1.5.4 book - Part 43 of 185The Ring programming language version 1.5.4 book - Part 43 of 185
The Ring programming language version 1.5.4 book - Part 43 of 185Mahmoud Samir Fayed
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersRob Windsor
 
RichFaces: rich:* component library
RichFaces: rich:* component libraryRichFaces: rich:* component library
RichFaces: rich:* component libraryMax Katz
 
Integrazione PHP e Silverlight 4
Integrazione PHP e Silverlight 4Integrazione PHP e Silverlight 4
Integrazione PHP e Silverlight 4pietrobr
 
Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016Aad Versteden
 
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...Codemotion
 

Ähnlich wie AtlasCamp 2011: Confluence 4 and Beyond (20)

Remixing Confluence With Speakeasy
Remixing Confluence With SpeakeasyRemixing Confluence With Speakeasy
Remixing Confluence With Speakeasy
 
Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
 
ITB2017 - Keynote
ITB2017 - KeynoteITB2017 - Keynote
ITB2017 - Keynote
 
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
 
How to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share featureHow to extend (properly) and old Alfresco Share feature
How to extend (properly) and old Alfresco Share feature
 
ITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul ServicesITB2016 - Building ColdFusion RESTFul Services
ITB2016 - Building ColdFusion RESTFul Services
 
Symfony2 revealed
Symfony2 revealedSymfony2 revealed
Symfony2 revealed
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to Tornado
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2
 
The Ring programming language version 1.5.4 book - Part 43 of 185
The Ring programming language version 1.5.4 book - Part 43 of 185The Ring programming language version 1.5.4 book - Part 43 of 185
The Ring programming language version 1.5.4 book - Part 43 of 185
 
TIAD : Automating the modern datacenter
TIAD : Automating the modern datacenterTIAD : Automating the modern datacenter
TIAD : Automating the modern datacenter
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
 
RichFaces: rich:* component library
RichFaces: rich:* component libraryRichFaces: rich:* component library
RichFaces: rich:* component library
 
Integrazione PHP e Silverlight 4
Integrazione PHP e Silverlight 4Integrazione PHP e Silverlight 4
Integrazione PHP e Silverlight 4
 
Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016Semantic technologies in practice - KULeuven 2016
Semantic technologies in practice - KULeuven 2016
 
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
Sviluppare applicazioni cross-platform con Xamarin Forms e il framework Prism...
 

Kürzlich hochgeladen

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Kürzlich hochgeladen (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

AtlasCamp 2011: Confluence 4 and Beyond

  • 1.
  • 2. Confluence 4 and Beyond Sherif Mansour Confluence Product Manager, Atlassian Charles Miller Confluence Architect, Atlassian 2
  • 3. Agenda • Confluence 4 for • Users • Plugin Developers • Beyond the 4.0 editing experience • Releases • Other 4.0 developer improvements 3
  • 6. 5
  • 7. Fir! class experiences 5
  • 8. Fir! class experiences 5
  • 9. First class for content 6
  • 10. First class for content • Value increases with content 6
  • 11. First class for content • Value increases with content • Start of collaboration cycle 6
  • 12. 7
  • 13. You 7
  • 14. You 7
  • 15. You 7
  • 16. 8
  • 17. 9
  • 19. 10
  • 20. Packed with Power visual macros advanced tables 10
  • 21. 11
  • 22. Intelligent and Fast h1. Hi -> Hi *bold * -> bold :) -> autoformat wiki markup autocomplete + paste images shortcut luv 11
  • 23. 12
  • 25. First Class Content Creation Experience 13
  • 26. First Class Content Creation Experience Brilliantly Simple Packed with Power Intelligent and Fast Familiarly Social 13
  • 27. 14
  • 28. 14
  • 29. 15
  • 31. Confluence 2.x Confluence 3.x 15
  • 32. Confluence 2.x Confluence 3.x Confluence 4.x 15
  • 39. Confluence 4.x You control this experience 17
  • 43. Confluence 4.x • No macro parameter knowledge required • No need for the user to know about the macro • Create a more WYSIWYG experience • You control the experience, seamless integration 18
  • 44. Confluence 4.x 1. Insert menu 2. Formatting menu 3. Custom property panel buttons 4. Rendered images as macro placeholders 5. Footer actions 6. Default parameter in placeholder 19
  • 45. Confluence 4.x 1. Insert menu 2. Formatting menu 3. Custom property panel buttons 4. Rendered images as macro placeholders 2:15 pm Thursday 5. Footer actions 6. Default parameter in Ryan Thomas placeholder 19
  • 46. 20
  • 48. Beyond 4.0 • 4.1 - Page Layouts • 4.2 - Template Improvements 21
  • 49. Confluence 4 and Beyond Sherif Mansour Confluence Product Manager, Atlassian Charles Miller Confluence Architect, Atlassian 22
  • 50. Confluence 4 and Beyond Sherif Mansour Confluence Product Manager, Atlassian Charles Miller Confluence Architect, Atlassian 22
  • 51. Two cool things for 4.0 …that aren’t the rich text editor Charles Miller Confluence Architect, Atlassian 23
  • 53. Closure Templates • Language-neutral • Compiled to Javascript for the client • Component-based http://code.google.com/closure/templates/index.html 25
  • 54. Defining a template example.soy {namespace Confluence.Templates.Example} /** * Renders a Hello message. * @param name the name of the user */ {template .helloWorld} <div>Hello {$name}!</div> {/template} https://developer.atlassian.com/display/CONFDEV/Templating+in+JavaScript+with+Soy 26
  • 55. Looping and Branching {foreach $child in $children} {call .pageInfo data="$child"} {param oddRow: index($child) % 2 /} {/call} {ifEmpty} {getText(‘page.has.no.children’)} {/foreach} 27
  • 56. Invoking a template example.js var data = {name: “John Smith”} Confluence.Templates.Example.helloWorld(data); https://developer.atlassian.com/display/CONFDEV/Templating+in+JavaScript+with+Soy 28
  • 57. Compiling a template atlassian-plugin.xml <web-resource key="example-resources"> <transformation extension="soy"> <transformer key="soyTransformer"/> </transformation> <resource type="download" name="example-soy.js" location="/soy/example.soy"/> </web-resource> https://developer.atlassian.com/display/PLUGINFRAMEWORK/Web+Resource+Transformer+Plugin+Module 29
  • 58. Closure (Soy) Templates • Bundled plugin in Confluence 4.0 • Server-side templates supported in 4.1 30
  • 59. JSON-RPC 31
  • 60. RPC • SOAP • Complicated XML protocol • Made easy with tool support • XML-RPC • Simpler XML protocol • Widely available libraries https://developer.atlassian.com/display/CONFDEV/Confluence+XML-RPC+and+SOAP+APIs 32
  • 61. REST • Data transport agnostic (usually XML/JSON) • Pure HTTP, no need for library support • Limited Confluence API 33
  • 62. JSON-RPC • Simple JSON protocol • RPC, not REST • Easy to use from the browser 34
  • 63. Standard JSON-RPC • Too much protocol overhead • Still requires a client-side library http://groups.google.com/group/json-rpc 35
  • 64. JSON-RPC plugin • Exposes all XML-RPC/SOAP services as JSON-RPC • Authentication via web login session • Supports both standard JSON-RPC and a web-friendly “light” protocol https://plugins.atlassian.com/plugin/details/40277 36
  • 65. JSON-RPC Light Request POST /rpc/json-rpc/confluenceservice-v2/getSpace [ "DOC" ] 37
  • 66. JSON-RPC Light Response POST /rpc/json-rpc/confluenceservice-v2/getSpace { key : "DOC", name : "Documentation Space", url : "http://wiki.example.com/display/DOC", homePage : "Home", description : "Product Documentation" } 38
  • 67. Calling from jQuery jQuery.ajax({ url: Confluence.getContextPath() + “/rpc/json-rpc/confluenceservice-v2/getSpace”, type: “POST”, dataType: “json”, contentType: "application/json", data: JSON.stringify([ AJS.Meta.get(“space-id”) ]), success: function(data) { show_space(data) }, error: function(data) { show_error(data) } }); 39
  • 68. Confluence JSON-RPC Plugin • Available from plugins.atlassian.com • Compatible with Confluence 3.5 or later • Will be bundled with Confluence 4.1 40
  • 70. 42
  • 71. 43
  • 72. Retrieve with JSON-RPC jQuery.ajax({ url: Confluence.getContextPath() + "/rpc/json-rpc/confluenceservice-v2/getPageHistory", type: "POST", dataType: "json", contentType: "application/json", data: JSON.stringify([ AJS.Meta.get("page-id") ]), success: function(data) { show_history_popup(data) }, error: function(data) { show_error_popup(data) } }); 44
  • 73. Display with Closure function show_history_popup(historyData) { popup = AJS.ConfluenceDialog({ width : 865, height: 530, id: "page-history-dialog", onCancel: cancel }); ... popup.addPanel( Confluence.Templates.Plugins.Pagehistory.popup( { histories: historyData }) popup.show(); } 45
  • 74. Display with Closure pagehistory-template.soy /** * Displays the page history popup * * @param histories array of the history objects to list */ {template .popup} <form name="diff" method="GET" action="{contextPath}/pages/diffpagesbyversion.action"> <input type="submit" value="{getText('compare.selected')}"> <input type="hidden" name="pageId" value="{$histories[0].id}"> <table id="page-history-container" width="100%" cellspacing="0" class="tableview"> <tr> <th>&nbsp;</th> <th>{getText('heading.version.number')}</th> <th>{getText('heading.version.date')}</th> <th>{getText('heading.comment')}</th> </tr> {foreach $history in $histories} {call .historyRow data="$history"} {param current: isFirst($history)/} {/call} {/foreach} </table> </form> {/template} 46
  • 75. Cheat it into the menu… $("#action-view-history-link").click(function(e) { show_history(); e.preventDefault(); }); 47
  • 76. 48
  • 78. Thank you • Learn more about Confluence 4: 1.http://atlss.in/confluence4 2.Hands-on Developer Sessions 3.“Pimp my Confluence Plugin” - Thursday, 2:15pm • Questions? charles@atlassian.com, sherif@atlassian.com 50

Hinweis der Redaktion

  1. \n
  2. Hello Everyone,\nIt&amp;#x2019;s really exciting to be here at AtlasCamp this year. I see some familiar faces which is great to see people returning and also see quite a few new faces, so I&amp;#x2019;m looking forward to meeting some of you over the next couple of days.\n\nFor those of you who don&amp;#x2019;t know me, I&amp;#x2019;m Sherif Mansour, a Product Manager on Confluence...\n
  3. ....and for the first half of this presentation, you&amp;#x2019;ll be hearing from me mostly about Confluence 4.0 and how we&amp;#x2019;ve created new and, I think awesome, experiences for your end users and for you as as plugin developers. \n\nFollowing that I&amp;#x2019;ll give you a sneak peak into what we have planned for beyond 4.0 and then I&amp;#x2019;ll had it over to Charles Miller, our product Architect, who will share with you what other plugin developer improvements we&amp;#x2019;ve made beyond the Confluence 4 editing experience. \n \n\n
  4. So first things first, the exciting news! Confluence finally 4.0 shipped last week! The team is really excited about this as we&amp;#x2019;ve been working on the release for more than a year now, and couldn&amp;#x2019;t wait to get the release into your hands.\n\n\n\n
  5. So first things first, the exciting news! Confluence finally 4.0 shipped last week! The team is really excited about this as we&amp;#x2019;ve been working on the release for more than a year now, and couldn&amp;#x2019;t wait to get the release into your hands.\n\n\n\n
  6. But before diving into the detail of the release and what it means for you, I wanted to take a step back, pause for a moment and talk about experiences... \n\nin particular first class experiences...\n\nNow, I don&amp;#x2019;t know about you guys, but I certainly didn&apos;t really first class experience flight here. I few with United airlines... I don&amp;#x2019;t think you could call a cracky old lady serving you some over-cooked chicken first-class, but...\n\nBut when you think about amazing first class experiences....what do you think? (pause) \n\nI was reading my feeds the other day and an article came up about Singapore Airlines and some of the awards they&amp;#x2019;ve won for their first class experience. \n\nThey&amp;#x2019;ve created these first class &amp;#x201C;suites&amp;#x201D; on some of their A380&amp;#x2019;s. These are individual private cabins with leather seats, mood lighting, a 23-inch wide LCD, your choice of different pillow types as well as a full-sized single bed. Talk about the first class experience, I was pretty impressed about what they&amp;#x2019;ve done. \n\nA first class experience is often memorable, its a pleasure to be in its something everyone wants... Now for airlines, we judge the airline mostly through the value for money and the flight experience because that is where you spend most of your time... \n\n....but what about for Confluence. If we were to create a first-class experience, where would it begin? \n
  7. But before diving into the detail of the release and what it means for you, I wanted to take a step back, pause for a moment and talk about experiences... \n\nin particular first class experiences...\n\nNow, I don&amp;#x2019;t know about you guys, but I certainly didn&apos;t really first class experience flight here. I few with United airlines... I don&amp;#x2019;t think you could call a cracky old lady serving you some over-cooked chicken first-class, but...\n\nBut when you think about amazing first class experiences....what do you think? (pause) \n\nI was reading my feeds the other day and an article came up about Singapore Airlines and some of the awards they&amp;#x2019;ve won for their first class experience. \n\nThey&amp;#x2019;ve created these first class &amp;#x201C;suites&amp;#x201D; on some of their A380&amp;#x2019;s. These are individual private cabins with leather seats, mood lighting, a 23-inch wide LCD, your choice of different pillow types as well as a full-sized single bed. Talk about the first class experience, I was pretty impressed about what they&amp;#x2019;ve done. \n\nA first class experience is often memorable, its a pleasure to be in its something everyone wants... Now for airlines, we judge the airline mostly through the value for money and the flight experience because that is where you spend most of your time... \n\n....but what about for Confluence. If we were to create a first-class experience, where would it begin? \n
  8. But before diving into the detail of the release and what it means for you, I wanted to take a step back, pause for a moment and talk about experiences... \n\nin particular first class experiences...\n\nNow, I don&amp;#x2019;t know about you guys, but I certainly didn&apos;t really first class experience flight here. I few with United airlines... I don&amp;#x2019;t think you could call a cracky old lady serving you some over-cooked chicken first-class, but...\n\nBut when you think about amazing first class experiences....what do you think? (pause) \n\nI was reading my feeds the other day and an article came up about Singapore Airlines and some of the awards they&amp;#x2019;ve won for their first class experience. \n\nThey&amp;#x2019;ve created these first class &amp;#x201C;suites&amp;#x201D; on some of their A380&amp;#x2019;s. These are individual private cabins with leather seats, mood lighting, a 23-inch wide LCD, your choice of different pillow types as well as a full-sized single bed. Talk about the first class experience, I was pretty impressed about what they&amp;#x2019;ve done. \n\nA first class experience is often memorable, its a pleasure to be in its something everyone wants... Now for airlines, we judge the airline mostly through the value for money and the flight experience because that is where you spend most of your time... \n\n....but what about for Confluence. If we were to create a first-class experience, where would it begin? \n
  9. But before diving into the detail of the release and what it means for you, I wanted to take a step back, pause for a moment and talk about experiences... \n\nin particular first class experiences...\n\nNow, I don&amp;#x2019;t know about you guys, but I certainly didn&apos;t really first class experience flight here. I few with United airlines... I don&amp;#x2019;t think you could call a cracky old lady serving you some over-cooked chicken first-class, but...\n\nBut when you think about amazing first class experiences....what do you think? (pause) \n\nI was reading my feeds the other day and an article came up about Singapore Airlines and some of the awards they&amp;#x2019;ve won for their first class experience. \n\nThey&amp;#x2019;ve created these first class &amp;#x201C;suites&amp;#x201D; on some of their A380&amp;#x2019;s. These are individual private cabins with leather seats, mood lighting, a 23-inch wide LCD, your choice of different pillow types as well as a full-sized single bed. Talk about the first class experience, I was pretty impressed about what they&amp;#x2019;ve done. \n\nA first class experience is often memorable, its a pleasure to be in its something everyone wants... Now for airlines, we judge the airline mostly through the value for money and the flight experience because that is where you spend most of your time... \n\n....but what about for Confluence. If we were to create a first-class experience, where would it begin? \n
  10. But before diving into the detail of the release and what it means for you, I wanted to take a step back, pause for a moment and talk about experiences... \n\nin particular first class experiences...\n\nNow, I don&amp;#x2019;t know about you guys, but I certainly didn&apos;t really first class experience flight here. I few with United airlines... I don&amp;#x2019;t think you could call a cracky old lady serving you some over-cooked chicken first-class, but...\n\nBut when you think about amazing first class experiences....what do you think? (pause) \n\nI was reading my feeds the other day and an article came up about Singapore Airlines and some of the awards they&amp;#x2019;ve won for their first class experience. \n\nThey&amp;#x2019;ve created these first class &amp;#x201C;suites&amp;#x201D; on some of their A380&amp;#x2019;s. These are individual private cabins with leather seats, mood lighting, a 23-inch wide LCD, your choice of different pillow types as well as a full-sized single bed. Talk about the first class experience, I was pretty impressed about what they&amp;#x2019;ve done. \n\nA first class experience is often memorable, its a pleasure to be in its something everyone wants... Now for airlines, we judge the airline mostly through the value for money and the flight experience because that is where you spend most of your time... \n\n....but what about for Confluence. If we were to create a first-class experience, where would it begin? \n
  11. We&amp;#x2019;ve been doing quite a bit of thinking with this and we strongly believe it has to start with the content creation process. \n\nYou see, when you when you take a step back and reflect on the single, most important asset in your wiki - it&amp;#x2019;s your content. Why? well, two reasons.\n\nThe first reason is fairly obvious: As more content is created in the wiki, the more valuable it is to you and the rest of your team or orgainsation. \n\nSecondly, the act of creating content in your wiki is really the instigator of what we call the &amp;#x201C;collaboration cycle&amp;#x201D;, it is what sparks other users who discover the content, then they jump in and contribute and the collaboration loop starts again.. The faster teams get through this loop the more productive they are.\n\nSo it&amp;#x2019;s very important to have a first-class content creation experience.\n\nSo how have we been doing to achieve this?\n
  12. We&amp;#x2019;ve been doing quite a bit of thinking with this and we strongly believe it has to start with the content creation process. \n\nYou see, when you when you take a step back and reflect on the single, most important asset in your wiki - it&amp;#x2019;s your content. Why? well, two reasons.\n\nThe first reason is fairly obvious: As more content is created in the wiki, the more valuable it is to you and the rest of your team or orgainsation. \n\nSecondly, the act of creating content in your wiki is really the instigator of what we call the &amp;#x201C;collaboration cycle&amp;#x201D;, it is what sparks other users who discover the content, then they jump in and contribute and the collaboration loop starts again.. The faster teams get through this loop the more productive they are.\n\nSo it&amp;#x2019;s very important to have a first-class content creation experience.\n\nSo how have we been doing to achieve this?\n
  13. We&amp;#x2019;ve been doing quite a bit of thinking with this and we strongly believe it has to start with the content creation process. \n\nYou see, when you when you take a step back and reflect on the single, most important asset in your wiki - it&amp;#x2019;s your content. Why? well, two reasons.\n\nThe first reason is fairly obvious: As more content is created in the wiki, the more valuable it is to you and the rest of your team or orgainsation. \n\nSecondly, the act of creating content in your wiki is really the instigator of what we call the &amp;#x201C;collaboration cycle&amp;#x201D;, it is what sparks other users who discover the content, then they jump in and contribute and the collaboration loop starts again.. The faster teams get through this loop the more productive they are.\n\nSo it&amp;#x2019;s very important to have a first-class content creation experience.\n\nSo how have we been doing to achieve this?\n
  14. We&amp;#x2019;ve been doing quite a bit of thinking with this and we strongly believe it has to start with the content creation process. \n\nYou see, when you when you take a step back and reflect on the single, most important asset in your wiki - it&amp;#x2019;s your content. Why? well, two reasons.\n\nThe first reason is fairly obvious: As more content is created in the wiki, the more valuable it is to you and the rest of your team or orgainsation. \n\nSecondly, the act of creating content in your wiki is really the instigator of what we call the &amp;#x201C;collaboration cycle&amp;#x201D;, it is what sparks other users who discover the content, then they jump in and contribute and the collaboration loop starts again.. The faster teams get through this loop the more productive they are.\n\nSo it&amp;#x2019;s very important to have a first-class content creation experience.\n\nSo how have we been doing to achieve this?\n
  15. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  16. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  17. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  18. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  19. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  20. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  21. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  22. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  23. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  24. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  25. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  26. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  27. A lot of what we&amp;#x2019;ve done in this area has started from YOUR FEEDBACK.\n\nCan I just get a show of hands for everyone in this room that is involved with Confluence? \n\nOkay, now keep your hand up if you are a wiki champion or administrator of some sort to internal users, your team or customers. \nNow how many of you also do plugin development for Confluence. \nSo, just what I thought, from just asking around in this room a lot of you play two roles.\n\nMany of you here are Confluence administrators and or wiki champions within your teams, organisations or for your customers. This involves more than just administering the system. Many of you are also the point of contact for your end users, everything from answering &amp;#x201C;how to questions&amp;#x201D; to helping people create content. \n \n A lot of the end-user feedback you&amp;#x2019;ve given us related to the user interface, the intuitiveness of the editor and macros. The more we can make your end users lives easier, the more we reduce the hand-holding you do today and the more productive you can they can be.\n\nThe second role a lot of you play in this room as that you build and extend confluence: for internal, external open source and commercial plugins. You take a look at our Atlassian Plugin exchange and a lot of the Confluence plugins out there are macros that interact or embed content into pages.\n\n A lot of the feedback you gave us in this area relates to providing a more natural experience in inserting and interacting with macros and about how we can make those macros more of a first-class citizen in the editor. \n\nSo over the next few minutes, I&amp;#x2019;m going to quickly cover what we&amp;#x2019;ve done in both these areas for you; How I think we&amp;#x2019;ve created a much better experience for your end users and a first class experience for your content macros. \n\n
  28. Let&amp;#x2019;s start off with how we&amp;#x2019;ve made your life easier for your end-users.\n\nNow to go through this section, I&amp;#x2019;m going to quickly run through the four main focus areas we had when building Confluence 4. Because most of this is covered in our release material, I&amp;#x2019;ll move pretty quickly through this and at the end of the presentation Charles will flash a link with more detail. \n
  29. Our first focus area has been simplicity. \n\nIn terms of simplicity, we&amp;#x2019;ve focused on helping you increase adoption with the teams that you work with and making your life easier as a wiki champion - less hand-holding. \n\n* We&amp;#x2019;ve simplified the editing experience to a single editor and new editor UI\n* Made a lot of the UI more intuitive, like inserting tables\n* We&amp;#x2019;ve made it easier to interact with content, moving some of the things you had to do with macros before (like aligning text) as part of the core editing experience. \n\n\n
  30. Our first focus area has been simplicity. \n\nIn terms of simplicity, we&amp;#x2019;ve focused on helping you increase adoption with the teams that you work with and making your life easier as a wiki champion - less hand-holding. \n\n* We&amp;#x2019;ve simplified the editing experience to a single editor and new editor UI\n* Made a lot of the UI more intuitive, like inserting tables\n* We&amp;#x2019;ve made it easier to interact with content, moving some of the things you had to do with macros before (like aligning text) as part of the core editing experience. \n\n\n
  31. The second focus area has been power. One of Confluence biggest differentiators is macros. And a lot of the feedback we get from you is that your end users find it difficult to interact with macros, change properties and visualise them on the page. We&amp;#x2019;ve made it easier for your average user to interact with macros and create dynamic pages with the introduction of visual macros: placeholder representations of macros on a page.\n\nWe&amp;#x2019;ve also enabled users to create advanced tables (merge/split table cells) as made it really easy for any user to turn an image into a link - something which really could only be done in the past by advanced users and required a lot of hand-holding for the average user.\n
  32. The second focus area has been power. One of Confluence biggest differentiators is macros. And a lot of the feedback we get from you is that your end users find it difficult to interact with macros, change properties and visualise them on the page. We&amp;#x2019;ve made it easier for your average user to interact with macros and create dynamic pages with the introduction of visual macros: placeholder representations of macros on a page.\n\nWe&amp;#x2019;ve also enabled users to create advanced tables (merge/split table cells) as made it really easy for any user to turn an image into a link - something which really could only be done in the past by advanced users and required a lot of hand-holding for the average user.\n
  33. Thirdly, we know many of you are power users and love wiki markup for the speed it lets you create content.\n\nWe wanted to make the content creation experience even faster:\n\n* We&amp;#x2019;ve introduced autoformatting for wiki markup\n* Autocomplete new content / linking to undefined pages, more keyboard shortcuts\n* Pasting images straight from your clipboard \n\nSo we&amp;#x2019;ve continued to make improvements in allowing you to have a super fast content creation experience. \n
  34. Thirdly, we know many of you are power users and love wiki markup for the speed it lets you create content.\n\nWe wanted to make the content creation experience even faster:\n\n* We&amp;#x2019;ve introduced autoformatting for wiki markup\n* Autocomplete new content / linking to undefined pages, more keyboard shortcuts\n* Pasting images straight from your clipboard \n\nSo we&amp;#x2019;ve continued to make improvements in allowing you to have a super fast content creation experience. \n
  35. Our last focus area has been allowing you to engage others whilst creating content. \n\nWe&amp;#x2019;ve introduce introduced @mentions into Confluence, providing a much more natural way to collaborate with your collogues. \n\n\n
  36. Our last focus area has been allowing you to engage others whilst creating content. \n\nWe&amp;#x2019;ve introduce introduced @mentions into Confluence, providing a much more natural way to collaborate with your collogues. \n\n\n
  37. So that&amp;#x2019;s Confluence 4 for your end users and how we&amp;#x2019;ve to create an awesome content creation experience that will make your life easier. \n\nHopefully a lot of that makes your life&apos;s easier as wiki champions and reduces the amount of hand-holding you have to do.\n
  38. So that&amp;#x2019;s Confluence 4 for your end users and how we&amp;#x2019;ve to create an awesome content creation experience that will make your life easier. \n\nHopefully a lot of that makes your life&apos;s easier as wiki champions and reduces the amount of hand-holding you have to do.\n
  39. So that&amp;#x2019;s Confluence 4 for your end users and how we&amp;#x2019;ve to create an awesome content creation experience that will make your life easier. \n\nHopefully a lot of that makes your life&apos;s easier as wiki champions and reduces the amount of hand-holding you have to do.\n
  40. So that&amp;#x2019;s Confluence 4 for your end users and how we&amp;#x2019;ve to create an awesome content creation experience that will make your life easier. \n\nHopefully a lot of that makes your life&apos;s easier as wiki champions and reduces the amount of hand-holding you have to do.\n
  41. So that&amp;#x2019;s trying to make the content creation experience first class for your end users. \n\nBut what have we done about creating a first class content creation experience for your macros? \n
  42. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  43. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  44. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  45. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  46. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  47. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  48. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  49. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  50. Before we jump into that detail, I just wanted to look back at the experience you&amp;#x2019;ve had as a plugin developer for creating content macros over our last few major releases and see how it has progressed. \n\nIn Confluence 2.x, you only had a wiki markup-only way of inserting macros. We gave users this big notation guide, a big bible that you had to memorise or check every second minute to know what you could do to create the macro: something that was a big hinderance to adoption, and really didn&amp;#x2019;t allow you to provide a good experience for you macro.\n\nIn Confluence 3.x we introduced the macro browser - simplified away to insert macros, mostly removing the need for the notation guide. The browser came with smart fields - allowing you to autocomplete some content to help you guide your users to create macros.\n\nWe also introduced macro autocomplete for power users to quickly insert these macros \n\nA much nicer experience than Confluence 2.x\n\nWhat about 4.0. What have we done in this area? \n\n
  51. Now, first off, you&amp;#x2019;ve still got the Macro browser in 4.0 - and it&amp;#x2019;s still very useful. It&amp;#x2019;s great for simple macros. The macro browser acts as a real really nice abstract way for you to quickly expose content macros to end-users and to guide them as to what parameters can be used.\n\nBut what if you want to build something more. What if you wanted to create a your own macro creation experience, not limited by the macro browser. What if we can enable you to create rich , intuitive interfaces so you can create higher value, first-class macros for your customers. \n\nThis is what we&amp;#x2019;ve tried to do in Confluence 4...\n
  52. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  53. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  54. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  55. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  56. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  57. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  58. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  59. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  60. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  61. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  62. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  63. To show you how we&amp;#x2019;ve done this, I&amp;#x2019;m going to show you one example of the JIRA plugin in Confluence. This plugin enables users to search, create and embed JIRA issues onto pages. \n\nLet&amp;#x2019;s talk a look at this experience in 4.0.\n\n1. It starts with the macro insertion process. The first thing you can do here is have your content macro appear in the insert menu. A much more intuitive way than through the macro browser.\n\n2. Once the user selects this, Confluence hands over control to you. From here you can do what you like. In this example, we load a custom AUI dialog. In this dialog we can implement all the business logic we want. \n\n* Notice here how we aren&amp;#x2019;t restricted by the macro browser UI. We can do many things like search for JIRA issues, view recent issues or even create a new issue. \n* Now in this step of the process you can do anything you like here. Gliffy, for example load their flash-based diagram editor.\n\n3. Once the user has performed the action, a visual macro is inserted into the page. In this case, the user does a JQL search for an issue and embeds that onto a page. These placeholders that appear... \n\nare visual representations of what is going to render on the page. Here, we have a pretty straight-forward placeholder. But once again, you can customize this placeholder to render an image enabling you to provide a more WYSIWYG experience if desired. Another example: , the Gliffy guys render the image on the page.\n\nThe second thing to note here is that each placeholder gets its own property panel. You can extend this panel to expose in-line functionality to your end users. \nIn this example, we allow the user to quickly view the issue in JIRA from the edit screen. \n\n4. Lastly, what about editing the macro once it&amp;#x2019;s on the page? you too can control this experience by loading the custom dialog you had. \n\nYou&amp;#x2019;ll notice here that the user can actually go through this whole process without:\n- knowing what they are inserting is a macro\n- and without the need to memorise all the params\n\nThis really enables you to create your content macro as a first-class citizen on the page. \n
  64. \n
  65. Who is this done? Well, we&amp;#x2019;ve introduced many new plugin points for plugin developers in Confluence 4. Using just a small combination of these plugin points, you can easily create a content macro that really feels like a first-class citizen of the editor.\n\nRyan Thomas, one of the Confluence 4 developers, will be diving into the detail of each of these plugin points tomorrow afternoon, so be sure to attend that talk for more detail.\n
  66. \n
  67. \n
  68. \n
  69. So beyond 4.0 - what can you expect? \n
  70. I&amp;#x2019;ll now hand it over to Charles Miller to talk about plugin developer improvements beyond 4.0\n
  71. I&amp;#x2019;ll now hand it over to Charles Miller to talk about plugin developer improvements beyond 4.0\n
  72. - RTE is focus of discussion of 4.0 and rightly so\n- Spotlight two developer-focused features in 4.0 that have nothing to do with the RTE\n- Intro self\n
  73. HTML generation in Javascript: string concatenation or dom manipulation\nOn server-side we&amp;#x2019;d not think of generating HTML in Java\nWe tried a few things - GWT too heavy - picked something more lightweight&amp;#x2026; also from Google.\n
  74. Used in GMail and Google Docs\nI&amp;#x2019;m going to call them Soy by accident\n
  75. \n
  76. Could spend all day going through features and you wouldn&amp;#x2019;t remember them anyway, so here&amp;#x2019;s a sample, the rest are on the website:\n - loop\n - branch (if/then/else also supported)\n - calling another template\n - built in functions (getText)\n
  77. \n
  78. Transformers for: i18n, minification, batching...\n
  79. \n
  80. RPC access to Confluence since 1.0\n140 methods - content creation/editing to administration\nGreat for scripting or external tools to talk to Connie\n
  81. Tendency: SOAP - used by rich clients, RPC - scripts.\n
  82. Can&amp;#x2019;t just reuse existing RPC endpoints - starting again from scratch\nMeans we have to redo all those 140 methods of functionality\nProtocol that is easy to use from the web.\n
  83. \n
  84. marshalling/unmarshalling requests\nstill some cool stuff like request batching so we support it\n
  85. - including those provided by plugins\n
  86. \n
  87. \n
  88. \n
  89. Very likely compatible pre-3.5 (back to 2.9?) but not tested\n
  90. Example plugin showing how to use JSON-RPC and Closure Templates together.\n\n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n