SlideShare a Scribd company logo
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
FunnelWeb
Easy Content Conversions
Dylan Jay
PretaWeb
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Content Conversions suck

Large existing sites

Static html or old CMS

Hard to quote on

Content audit

Use plone to fix content

Convert Docs to Pages (coming...)
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
History

2008 - Obrien Intranet

2009 – pretaweb.funnelweb (deprecated)

Plone UI > Actions > Import

2010 – transmogrify.* release on pypi

2010 – collective.developermanual

sphinx to plone

2010 – funnelweb Recipe + Script

Thanks – Dylan Jay, Vitaliy Podoba, Rok Garbas, Mikko Ohtamaa, Tim
Knap
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Demo
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
funnelweb.recipe

Add to buildout
[funnelweb]
recipe = funnelweb
crawler-url=http://www.whitehouse.gov
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
bin/funnelweb

Crawls

Caches locally

Filters

Removes template

Restructures

Determines title,hidden etc

Uploads to plone
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Common Options

crawler:site_url

crawler:ignore

ploneupload:target

template1:description

template1:text

*-disable
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Command Line

bin/funnelweb --crawler:max=50
--localupload:output=var/funnelwebdebug
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Viewing the Pipeline

bin/funnelweb --pipeline
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Custom pipeline

bin/funnelweb –pipeline > pipeline.cfg

{edit} pipeline.cfg

bin/funnelweb --pipeline=pipeline.cfg
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Making your own blueprint
class MyBlueprint(object):
classProvides(ISectionBlueprint)
implements(ISection)
def __init__(self, transmogrifier, name, options, previous):
self.previous = previous
def __iter__(self):
for item in self.previous:
dosomethingto(item)
yield item
<utility component=".myblueprint.MyBluePrintr"
name="transmogrify.myblueprint" />
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
transmogrify.webcrawler

transmogrify.webcrawler

Crawls site or cache for content

transmogrify.webcrawler.typerecognitor

Sets Plone content type based on mime-type

transmogrify.webcrawler.cache

Saves content to disk
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
transmogrify.htmlcontentextractor

transmogrify.htmlcontentextractor

Provide XPath for title, description, text etc.

transmogrify.htmlcontentextractor.auto

Guesses XPaths from content
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
transmogrify.siteanalyser

transmogrify.siteanalyser.relinker

Moves, renames, url tidying

transmogrify.siteanalyser.title

Guess page titles

transmogrify.siteanalyser.defaultpage

Move index pages into folders

transmogrify.siteanalyser.attach

Move attachments closer to pages
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
transmogrify.ploneremote

Remoteconstructor

Adds content to plone via xmlrpc

Remoteschemaupdater

Updates content of existing object

Remotenavigationexcluder

Hides content not in orginal sites navigation

Remoteworkflowupdater

Publish content

Remoteredirector

Creates aliases for items that have moved
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Other blueprints

transmogrify.pathsorter

Puts folders before content and content in
right order

collective.transmogrifier.sections.condition

Useful to drop certain content
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Where to get it

http://github.com:djay/funnelweb.git

http://github.com:djay/transmogrify.*

Pypi release TBA
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
#TODO
• Extract content styles into visual editor
dylan@pretaweb.comPlone Conf 2010 Dylan Jay
Thanks
• djay@pretaweb.com
• IRC: djjay
• Twitter: djay75

More Related Content

PPTX
Plone: The CMS that hits above it's weight
ODP
Plone pwns
ODP
TTW FTW: Plone as the new wordpress
PDF
The goodies of zope, pyramid, and plone (2)
ODP
Pyramid Lighter/Faster/Better web apps
PDF
The eggless Plone manifesto (or Plone the open source cms-as-a-service platf...
PDF
Pyramid Deployment and Maintenance
PDF
Contributing to WordPress Core - Peter Wilson
Plone: The CMS that hits above it's weight
Plone pwns
TTW FTW: Plone as the new wordpress
The goodies of zope, pyramid, and plone (2)
Pyramid Lighter/Faster/Better web apps
The eggless Plone manifesto (or Plone the open source cms-as-a-service platf...
Pyramid Deployment and Maintenance
Contributing to WordPress Core - Peter Wilson

What's hot (20)

KEY
Doing Things the WordPress Way
PPTX
WordPress Structure and Best Practices
PDF
Html5 intro
PDF
Scrip queue tree
PPT
Secure All The Things!
KEY
Higher Order WordPress Security
PPTX
Take Command of WordPress With WP-CLI at WordCamp Long Beach
PDF
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
PDF
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
PDF
Phing i Fabric - Budowanie i deployment aplikacji webowych
PDF
Manage WordPress with Awesome using wp cli
PDF
Mehr Performance für WordPress - WordCamp Köln
PDF
Write your first WordPress plugin
PDF
Drupal 8 Theme System: The Backend of Frontend
PDF
SocketStream
PPTX
Take Command of WordPress With WP-CLI
KEY
Advanced WordPress Development Environments
PDF
Mastering WordPress Vol.1
PDF
The wp config.php
PDF
Real-Time Django
Doing Things the WordPress Way
WordPress Structure and Best Practices
Html5 intro
Scrip queue tree
Secure All The Things!
Higher Order WordPress Security
Take Command of WordPress With WP-CLI at WordCamp Long Beach
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
Phing i Fabric - Budowanie i deployment aplikacji webowych
Manage WordPress with Awesome using wp cli
Mehr Performance für WordPress - WordCamp Köln
Write your first WordPress plugin
Drupal 8 Theme System: The Backend of Frontend
SocketStream
Take Command of WordPress With WP-CLI
Advanced WordPress Development Environments
Mastering WordPress Vol.1
The wp config.php
Real-Time Django
Ad

Similar to Funnelweb ploneconf2010 (20)

ODP
Getting All Your Web Apps To Wear The Company Brand
ODP
A winning combination: Plone as CMS and your favorite Python web framework as...
PDF
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
ODP
Introduction to Plone (PyCon Ireland 2010)
PPTX
World Plone Day 2012 Taipei
PPT
New in Plone 3.3. What to expect from Plone 4
PDF
Acceptance testing plone sites and add ons with robot framework and selenium
PPT
Pinax Long Tutorial Slides
ODP
Plone - A Comprehensive Content Management Solution
PDF
Prerendering: Revisit
ODP
Plone for python programmers
PPTX
Getting Started with Pelican
PPT
High Performance Web Pages - 20 new best practices
PDF
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011]
PDF
Browser-level testing
PDF
Plone Futures
PDF
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
PPTX
Diazo: Bridging Designers and Programmers
ODP
DrupalEasy: Intro to Theme Development
Getting All Your Web Apps To Wear The Company Brand
A winning combination: Plone as CMS and your favorite Python web framework as...
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
Introduction to Plone (PyCon Ireland 2010)
World Plone Day 2012 Taipei
New in Plone 3.3. What to expect from Plone 4
Acceptance testing plone sites and add ons with robot framework and selenium
Pinax Long Tutorial Slides
Plone - A Comprehensive Content Management Solution
Prerendering: Revisit
Plone for python programmers
Getting Started with Pelican
High Performance Web Pages - 20 new best practices
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011]
Browser-level testing
Plone Futures
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Diazo: Bridging Designers and Programmers
DrupalEasy: Intro to Theme Development
Ad

More from Dylan Jay (7)

PPTX
5 things STILL! TOO! HARD! in Plone 5
ODP
Surviving an earthquake's worth of traffic
ODP
Buildout: How to maintain big app stacks without losing your mind
ODP
Opps I deployed it again-ploneconf2010
ODP
Opps i deployed it again
ODP
TestBrowser Driven Development: How to get bulletproof code from lazy developers
PPT
How to host an app for $20 in 20min using buildout and hostout
5 things STILL! TOO! HARD! in Plone 5
Surviving an earthquake's worth of traffic
Buildout: How to maintain big app stacks without losing your mind
Opps I deployed it again-ploneconf2010
Opps i deployed it again
TestBrowser Driven Development: How to get bulletproof code from lazy developers
How to host an app for $20 in 20min using buildout and hostout

Funnelweb ploneconf2010

  • 1. dylan@pretaweb.comPlone Conf 2010 Dylan Jay FunnelWeb Easy Content Conversions Dylan Jay PretaWeb
  • 2. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Content Conversions suck  Large existing sites  Static html or old CMS  Hard to quote on  Content audit  Use plone to fix content  Convert Docs to Pages (coming...)
  • 3. dylan@pretaweb.comPlone Conf 2010 Dylan Jay History  2008 - Obrien Intranet  2009 – pretaweb.funnelweb (deprecated)  Plone UI > Actions > Import  2010 – transmogrify.* release on pypi  2010 – collective.developermanual  sphinx to plone  2010 – funnelweb Recipe + Script  Thanks – Dylan Jay, Vitaliy Podoba, Rok Garbas, Mikko Ohtamaa, Tim Knap
  • 5. dylan@pretaweb.comPlone Conf 2010 Dylan Jay funnelweb.recipe  Add to buildout [funnelweb] recipe = funnelweb crawler-url=http://www.whitehouse.gov
  • 6. dylan@pretaweb.comPlone Conf 2010 Dylan Jay bin/funnelweb  Crawls  Caches locally  Filters  Removes template  Restructures  Determines title,hidden etc  Uploads to plone
  • 7. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Common Options  crawler:site_url  crawler:ignore  ploneupload:target  template1:description  template1:text  *-disable
  • 8. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Command Line  bin/funnelweb --crawler:max=50 --localupload:output=var/funnelwebdebug
  • 9. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Viewing the Pipeline  bin/funnelweb --pipeline
  • 10. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Custom pipeline  bin/funnelweb –pipeline > pipeline.cfg  {edit} pipeline.cfg  bin/funnelweb --pipeline=pipeline.cfg
  • 11. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Making your own blueprint class MyBlueprint(object): classProvides(ISectionBlueprint) implements(ISection) def __init__(self, transmogrifier, name, options, previous): self.previous = previous def __iter__(self): for item in self.previous: dosomethingto(item) yield item <utility component=".myblueprint.MyBluePrintr" name="transmogrify.myblueprint" />
  • 12. dylan@pretaweb.comPlone Conf 2010 Dylan Jay transmogrify.webcrawler  transmogrify.webcrawler  Crawls site or cache for content  transmogrify.webcrawler.typerecognitor  Sets Plone content type based on mime-type  transmogrify.webcrawler.cache  Saves content to disk
  • 13. dylan@pretaweb.comPlone Conf 2010 Dylan Jay transmogrify.htmlcontentextractor  transmogrify.htmlcontentextractor  Provide XPath for title, description, text etc.  transmogrify.htmlcontentextractor.auto  Guesses XPaths from content
  • 14. dylan@pretaweb.comPlone Conf 2010 Dylan Jay transmogrify.siteanalyser  transmogrify.siteanalyser.relinker  Moves, renames, url tidying  transmogrify.siteanalyser.title  Guess page titles  transmogrify.siteanalyser.defaultpage  Move index pages into folders  transmogrify.siteanalyser.attach  Move attachments closer to pages
  • 15. dylan@pretaweb.comPlone Conf 2010 Dylan Jay transmogrify.ploneremote  Remoteconstructor  Adds content to plone via xmlrpc  Remoteschemaupdater  Updates content of existing object  Remotenavigationexcluder  Hides content not in orginal sites navigation  Remoteworkflowupdater  Publish content  Remoteredirector  Creates aliases for items that have moved
  • 16. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Other blueprints  transmogrify.pathsorter  Puts folders before content and content in right order  collective.transmogrifier.sections.condition  Useful to drop certain content
  • 17. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Where to get it  http://github.com:djay/funnelweb.git  http://github.com:djay/transmogrify.*  Pypi release TBA
  • 18. dylan@pretaweb.comPlone Conf 2010 Dylan Jay #TODO • Extract content styles into visual editor
  • 19. dylan@pretaweb.comPlone Conf 2010 Dylan Jay Thanks • djay@pretaweb.com • IRC: djjay • Twitter: djay75