SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
.
.
Building Bridges
Integrative publishing solutions with Plone.
From storages to converters.
Andreas Jung
@MacYET

info@zopyx.com

Plone Conference 2015 Bucharest
/about
20 years in publishing
business since 1995
Integrator
Building generic and
unified solutions
Always interested in
alternative high-quality
components besides
the mainstram
Agenda
• Storages and services
• Integration and
federation of external
storages and web
services into Plone
• Documents and formats
• converters (A➝B)
Plone as 

Publishing Platform
• Pros
• Secure
• Workflows
• Extensible
• Cons
• self-contained universe (ZODB)
• lack of decent integration with external data sources, cloud storages
and cloud services besides relational databases
• focused on HTML as content format (in addition to binary data and
assets)
A typical publishing workflow
Our Publishing Universe
Our Publishing Universe
(Cloud) storages 

and web services
External/cloud storages 

in Plone
• Current state:
• Reflecto
• RDBMS (SQLAlchemy)
• Dexterity content only stored in ZODB (no dedicated storage layer)
• Archetypes external storages
• poor integration story
• different integration approaches, different APIs
• most add-ons unmaintained
• Plone 4.3/(5.0 compatible) add-on for the
integration of other storage systems 

(other than ZODB) into Plone
• Part of our XML publishing toolbox
• Can be used without the "XML" stuff
• Unified access and API to external storages
and services
• Available modes
• Mounting
• Dexterity support
• 100 tests, Plone 4.3/5.0 against 6 different
storage backends
XML Director - Mounting
• Plone "Connector" content-type
• parameters: connection URL, username, password
• acts as a mountpoint
• URL traversal support
• ZIP import/export, multi-file upload
• basic UI for creating/renaming/deleting collections/
folders and resources
• simple view registry
• ACEditor integration for common formats
• minimal, small and extensible
• no indexing support
• no proxy object magic as in Reflecto
• intended for applications that need to access
external data sources and storages
root
de
en
my-onkopedia
onkopedia-p
knowledge-database
mammakarzinom-des-mannes
mammakarzinom-der-frau
…
…
onkopedia
current
archive
draft
Version 01.04.2013
Version 07.08.2014
Version 25.03.2012
pdf
xml
html
media
source
1.jpg
2.jpg
…
incoming.docx
index.html
index.xml
index.pdf
my-onkopedia
source incoming.docx
xml index.xml
html index.html
media
1.jpg
2.jpg
…
pdf index.pdf
source incoming.docx
xml index.xml
html index.html
media
1.jpg
2.jpg
…
pdf index.pdf
Connector
http://host/de/my-onkopedia/mammakarzinom-der-frau/archive/version-25.03.2014/@@view/xml/index.xml
Connector
Connector
XML Director - Dexterity
• three new Dexterity fields
• XMLText (stores, validates XML) 

with ACEditor widget
• XMLImage, XMLFile
• XPath
• content stored on the configured storage
• flat storage hierarchy based on UID
• dedicated set() and get() methods (due to lack
of a DX storage API) as data managers
• DX behaviors not applicable here
• (we need a Dexterity storage API or some
wrapper in plone.api)
xml_text = XMLText()
xml_image = XMLImage()
obj.set_xml('xml_text', xml)
obj.set_xml('xml_img', img_bin)
xml = obj.get_xml('xml_text')
img_bin = obj.get_xml('xml_img')
pyfilesystem
• abstraction layer on top of storages,
access through a uniform API
• Python 2/3 compatible
• various filesystem/webservices drivers
• Goal: your code must not know about
the underlaying storage system. The
backend is just aconfiguration option.
• extensible (writing a new driver is
straight forward
• sandboxed filesystem operations
• OOTB support for: WebDAV, S(FTP),
RPCFS, OSFS, S3, ZIP, Memory,
MultiFS, WrapFS
handle = fs.opener(some_url)
with handle.open('foo', 'w') as fp:
fp.write(data)
handle.listdir(dirname)
handle.makedir('foo/bar/test')
handle.removedir('foo/bar/test)
handle.exists(some_filename)
handle.isfile(some_name)
handle.move(src, dst)
handle.copy(src, dst)
….
WebDAV (S)FTP
pyfilesystem
Plone
xmldirector.plonecore
Dropbox
GDriveAWS S3
Local FS
Architecture
OwnCloud

Alfresco

eXistDB

BaseX
Dropbox
Sharepoint Evernote
Facebook Flickr
Yandex
OneDrive
many others
Driver Driver Driver
SMEOtixo DropDav
WebDAV
native

protocols native

protocols
Your setup SaaS setup
Storage/

Web Service
self-hosted
(Privacy)
via external
SaaS Bridge
(limited privacy?)
WebDAV 

(Owncloud, BaseX,

eXist-DB, Alfresco, etc.)
YES YES
Amazon S3 YES YES
Local filesystem YES NO
Dropbox (YES, auth token issues) YES
FTP/SFTP (YES, V1.4) YES
4Shared ADrive Alfresco Amazon Cloud
Amazon S3 Box CloudMe Copy Cubby
Digital Bucket DriveOnWeb Dropbox Dump
Truck Evernote FTP Fabasoft Facebook
FilesAnywhere Flickr GMX.DE Google Drive
HiDrive Huddle LiveDrive Mediencenter
MyDrive OneDrive Online FileFolder
OwnCloud Picasa SugarSync TrendMicro
SafeSync Web.de WebDAV Yandex
NO YES
pyfilesystem driver options
Supported services through 

3rd party services (example)
https://pypi.python.org/pypi/xmldirector.plonecore/1.3.0b1
Document formats 

and conversion options
Professional

Publishing
Structured data
Metadata
Structured content
Document
relations
• Industry standard in publishing
• structured data
• structured content
• not many alternatives besides Indesign stuff…
Advantages of XML
• XML structure definition
• Document Type Definition 

(DTD)
• XML Schema (XSD)
• RelaxNG 

• XML business rules
• Schematron
XML transformations
• Transformations
• XSLT (version 1-3)
• rule based language
• Transformation between 

XML dialects
• or Python
• or ……

XML 

transformation pipelines
XML 1 XML 2XSLT XSLT XSLT
XML 1 XML 2Python XSLT Python
Format: DOCX
• DOCX is XML but the same crap as .DOC on a
different level
• all DOCX converters suck in their own special ways
• dedicated Word templates require dedicated
converters and special treatment
• usually converted to some XML dialect 

(e.g. Docbook 4/5)
• Tools
• past: LibreOffice/OpenOffice (HTML)
• currently: c-rex.net (dedicated XML schema)
• others: Transpect (Le-TeX)
Format: DITA
• DITA = Darwin Information Typing Architecture
• XML model for authoring
• defacto industry standard for technical documentation
• focus on content reuse
• Information typing: Task, Concept, and Reference
• key concepts: topics and maps
• extensive metadata and specialization
• Tools
• DITA toolkit for publishing (HTML, PDF, ODT, Docbook)
• XMLMind Ditac
Format: HTML5
• HTML5 as primary source for quality publishing 

(vs. XML)? ……questionable
• semantic elements <article>, <section>, <header>,
<figure>, <nav>…
• freedom of structure (HTML5) vs. 

enforced structure and semantics (XML)
• not really suitable for professional high-quality publishing

(seen differently by others)
• often used as intermediate format for CSS Paged Media with
XML as primary format
Format: PDF (1/2)
• traditional: XML ➝ XSL-FO ➝ PDF
• CSS Paged Media: HTML + CSS ➝ PDF
• Tools (you get what you pay for, better quality=higher price)
• WKHMLTOPDF (free), Weasyprint
• PDFReactor (RealObjects)
• PrinceXML (Prince)
• PDFChip (Callas Software)
• Antennahouse V6.2 CSS Formatter
• Plone integration via Produce & Publish Plone Client Connector,
collective.sendaspdf, abstract.wkhtmltopdf, eea.pdf
free
$$$$
• new project: Vivliostyle (open-source + commercial)
• "One Source Multi-Use for making eBooks, Web, and Print books"
• based on EPUB Adaptive Layout implementation

http://www.idpf.org/epub/pgt/
• fixes many limitations of the CSS Paged Media approach and EPUB limitations
Format: PDF (2/2)
Format: ODF
• ODF is completely irrelevant in the publishing
world (DOCX is (still) king)
• Tools:
• Pandoc
• OpenOffice
• LibreOffice
Format: TeX/LaTeX
• Perfect for text-oriented layouts
• unusable for complex layouts
• Tools:
• ftw.book
• Pandoc
• Transpect
Format: E-Books (1/2)
• different ebook formats: 

EPUB, EPUB3, Mobi, KF8, Apple's EPUB3
• different hardware and software readers:

Kindle, iOS & Android devices, Kobo, Toliono, Sony, Nook
• fixed format ebooks vs. reflowable ebooks vs. adaptive
layouts
• many limitations regarding typography, handling of
images and tables
HUGE MESS
• Tools:
• Calibre (Python)
• eea.epub
• Produce & Publish server (via Calibre)
• web services like "Bookalope"
Format: E-Books (2/2)
Plone as platform for 

publishing solutions
www.xml-director.info
demo.xml-director.info

xmldirector.plonecore
Questions?

Contenu connexe

Tendances

Facebook Technology Stack
Facebook Technology StackFacebook Technology Stack
Facebook Technology Stack
Husain Ali
 
Introduction to Web Standards
Introduction to Web StandardsIntroduction to Web Standards
Introduction to Web Standards
Jussi Pohjolainen
 

Tendances (16)

Tech 802: Data, Databases & XML
Tech 802: Data, Databases & XMLTech 802: Data, Databases & XML
Tech 802: Data, Databases & XML
 
Approaches to document/report generation
Approaches to document/report generation Approaches to document/report generation
Approaches to document/report generation
 
Neo4j + MongoDB - SF Graph Database Meetup Group Presentation
Neo4j + MongoDB - SF Graph Database Meetup Group PresentationNeo4j + MongoDB - SF Graph Database Meetup Group Presentation
Neo4j + MongoDB - SF Graph Database Meetup Group Presentation
 
Plone migrations using plone.restapi
Plone migrations using plone.restapiPlone migrations using plone.restapi
Plone migrations using plone.restapi
 
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioAncient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
 
Plone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, BelgiumPlone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, Belgium
 
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
 
Facebook Technology Stack
Facebook Technology StackFacebook Technology Stack
Facebook Technology Stack
 
Daten und Verzeichnisse Vergleichen/Synchronisieren mit Beyond Compare (Windo...
Daten und Verzeichnisse Vergleichen/Synchronisieren mit Beyond Compare (Windo...Daten und Verzeichnisse Vergleichen/Synchronisieren mit Beyond Compare (Windo...
Daten und Verzeichnisse Vergleichen/Synchronisieren mit Beyond Compare (Windo...
 
Where do you want to go today
Where do you want to go todayWhere do you want to go today
Where do you want to go today
 
Where do you want to go today 2007
Where do you want to go today   2007Where do you want to go today   2007
Where do you want to go today 2007
 
Introduction to Web Standards
Introduction to Web StandardsIntroduction to Web Standards
Introduction to Web Standards
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
 
POX to HATEOAS: Our Company's Journey Building a Hypermedia API
POX to HATEOAS: Our Company's Journey Building a Hypermedia APIPOX to HATEOAS: Our Company's Journey Building a Hypermedia API
POX to HATEOAS: Our Company's Journey Building a Hypermedia API
 
Spdy
SpdySpdy
Spdy
 
Html and visual fox pro
Html and visual fox proHtml and visual fox pro
Html and visual fox pro
 

En vedette

Making Py Pi Sux Less Key
Making Py Pi Sux Less KeyMaking Py Pi Sux Less Key
Making Py Pi Sux Less Key
Andreas Jung
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last time
Andreas Jung
 
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinProduce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
Andreas Jung
 
Dzug Zope Optimized
Dzug Zope OptimizedDzug Zope Optimized
Dzug Zope Optimized
Andreas Jung
 

En vedette (20)

Easyforms (GSOC'16)
Easyforms (GSOC'16)Easyforms (GSOC'16)
Easyforms (GSOC'16)
 
Pragmatische Plone Projekte
Pragmatische Plone ProjektePragmatische Plone Projekte
Pragmatische Plone Projekte
 
XML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.comXML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.com
 
Pragmatic plone projects
Pragmatic plone projectsPragmatic plone projects
Pragmatic plone projects
 
State Of Zope Linuxtag 2008
State Of Zope Linuxtag 2008State Of Zope Linuxtag 2008
State Of Zope Linuxtag 2008
 
Making Py Pi Sux Less Key
Making Py Pi Sux Less KeyMaking Py Pi Sux Less Key
Making Py Pi Sux Less Key
 
Producing high-quality documents with Plone
Producing high-quality documents with PloneProducing high-quality documents with Plone
Producing high-quality documents with Plone
 
Pragmatic plone projects
Pragmatic plone projectsPragmatic plone projects
Pragmatic plone projects
 
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
 
Plone4Universities
Plone4UniversitiesPlone4Universities
Plone4Universities
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last time
 
PyFilesystem
PyFilesystemPyFilesystem
PyFilesystem
 
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinProduce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
 
CSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesCSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniques
 
Python mongo db-training-europython-2011
Python mongo db-training-europython-2011Python mongo db-training-europython-2011
Python mongo db-training-europython-2011
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will Die
 
Produce & Publish Cloud Edition
Produce & Publish Cloud EditionProduce & Publish Cloud Edition
Produce & Publish Cloud Edition
 
Dzug Zope Optimized
Dzug Zope OptimizedDzug Zope Optimized
Dzug Zope Optimized
 
Onkopedia - ein medizinisches Fachportal auf Basis von Plone
Onkopedia  - ein medizinisches Fachportal auf Basis von PloneOnkopedia  - ein medizinisches Fachportal auf Basis von Plone
Onkopedia - ein medizinisches Fachportal auf Basis von Plone
 
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
 

Similaire à Building bridges - Plone Conference 2015 Bucharest

Linked Data Publishing with Drupal (SWIB13 workshop)
Linked Data Publishing with Drupal (SWIB13 workshop)Linked Data Publishing with Drupal (SWIB13 workshop)
Linked Data Publishing with Drupal (SWIB13 workshop)
Joachim Neubert
 
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
Flink Forward
 
Linked data enhanced publishing for special collections (with Drupal)
Linked data enhanced publishing for special collections (with Drupal)Linked data enhanced publishing for special collections (with Drupal)
Linked data enhanced publishing for special collections (with Drupal)
Joachim Neubert
 

Similaire à Building bridges - Plone Conference 2015 Bucharest (20)

The XML Forms Architecture
The XML Forms ArchitectureThe XML Forms Architecture
The XML Forms Architecture
 
WCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and AlfrescoWCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and Alfresco
 
Linked Data Publishing with Drupal (SWIB13 workshop)
Linked Data Publishing with Drupal (SWIB13 workshop)Linked Data Publishing with Drupal (SWIB13 workshop)
Linked Data Publishing with Drupal (SWIB13 workshop)
 
dmBridge & dmMonocle
dmBridge & dmMonocledmBridge & dmMonocle
dmBridge & dmMonocle
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
 
IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)
 
10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world
 
LFC DjangoCon EU
LFC DjangoCon EULFC DjangoCon EU
LFC DjangoCon EU
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introduction
 
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
 
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed ContentHigh Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
 
Webinar: Le novità di Alfresco 5.1
Webinar: Le novità di Alfresco 5.1 Webinar: Le novità di Alfresco 5.1
Webinar: Le novità di Alfresco 5.1
 
QueryPath, Mash-ups, and Web Services
QueryPath, Mash-ups, and Web ServicesQueryPath, Mash-ups, and Web Services
QueryPath, Mash-ups, and Web Services
 
Drupal and Apache Stanbol
Drupal and Apache StanbolDrupal and Apache Stanbol
Drupal and Apache Stanbol
 
Linked data enhanced publishing for special collections (with Drupal)
Linked data enhanced publishing for special collections (with Drupal)Linked data enhanced publishing for special collections (with Drupal)
Linked data enhanced publishing for special collections (with Drupal)
 
Multimedia system(OPEN DOCUMENT ARCHITECTURE AND INTERCHANGING FORMAT)
Multimedia system(OPEN DOCUMENT ARCHITECTURE AND INTERCHANGING FORMAT)Multimedia system(OPEN DOCUMENT ARCHITECTURE AND INTERCHANGING FORMAT)
Multimedia system(OPEN DOCUMENT ARCHITECTURE AND INTERCHANGING FORMAT)
 
Multimedia system
Multimedia systemMultimedia system
Multimedia system
 
Free Libre Open Source Software at FFZG library
Free Libre Open Source Software at FFZG libraryFree Libre Open Source Software at FFZG library
Free Libre Open Source Software at FFZG library
 

Plus de Andreas Jung

Plus de Andreas Jung (15)

State of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdfState of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdf
 
Typesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 NamurTypesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 Namur
 
Onkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 DresdenOnkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 Dresden
 
PrintCSS W3C workshop at XMLPrague 2020
PrintCSS W3C workshop at XMLPrague 2020PrintCSS W3C workshop at XMLPrague 2020
PrintCSS W3C workshop at XMLPrague 2020
 
PrintCSS workshop XMLPrague 2020
PrintCSS workshop XMLPrague 2020PrintCSS workshop XMLPrague 2020
PrintCSS workshop XMLPrague 2020
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
 
Plone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST APIPlone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST API
 
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
 
Generierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSSGenerierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSS
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCs
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCs
 
The Plone and The Blockchain
The Plone and The BlockchainThe Plone and The Blockchain
The Plone and The Blockchain
 
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCsContent Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
 
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
 
zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013
 

Dernier

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 

Building bridges - Plone Conference 2015 Bucharest

  • 1. . . Building Bridges Integrative publishing solutions with Plone. From storages to converters. Andreas Jung @MacYET
 info@zopyx.com
 Plone Conference 2015 Bucharest
  • 2. /about 20 years in publishing business since 1995 Integrator Building generic and unified solutions Always interested in alternative high-quality components besides the mainstram
  • 3. Agenda • Storages and services • Integration and federation of external storages and web services into Plone • Documents and formats • converters (A➝B)
  • 4. Plone as 
 Publishing Platform • Pros • Secure • Workflows • Extensible • Cons • self-contained universe (ZODB) • lack of decent integration with external data sources, cloud storages and cloud services besides relational databases • focused on HTML as content format (in addition to binary data and assets)
  • 8.
  • 10. External/cloud storages 
 in Plone • Current state: • Reflecto • RDBMS (SQLAlchemy) • Dexterity content only stored in ZODB (no dedicated storage layer) • Archetypes external storages • poor integration story • different integration approaches, different APIs • most add-ons unmaintained
  • 11. • Plone 4.3/(5.0 compatible) add-on for the integration of other storage systems 
 (other than ZODB) into Plone • Part of our XML publishing toolbox • Can be used without the "XML" stuff • Unified access and API to external storages and services • Available modes • Mounting • Dexterity support • 100 tests, Plone 4.3/5.0 against 6 different storage backends
  • 12. XML Director - Mounting • Plone "Connector" content-type • parameters: connection URL, username, password • acts as a mountpoint • URL traversal support • ZIP import/export, multi-file upload • basic UI for creating/renaming/deleting collections/ folders and resources • simple view registry • ACEditor integration for common formats • minimal, small and extensible • no indexing support • no proxy object magic as in Reflecto • intended for applications that need to access external data sources and storages
  • 13. root de en my-onkopedia onkopedia-p knowledge-database mammakarzinom-des-mannes mammakarzinom-der-frau … … onkopedia current archive draft Version 01.04.2013 Version 07.08.2014 Version 25.03.2012 pdf xml html media source 1.jpg 2.jpg … incoming.docx index.html index.xml index.pdf my-onkopedia source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Connector http://host/de/my-onkopedia/mammakarzinom-der-frau/archive/version-25.03.2014/@@view/xml/index.xml Connector Connector
  • 14. XML Director - Dexterity • three new Dexterity fields • XMLText (stores, validates XML) 
 with ACEditor widget • XMLImage, XMLFile • XPath • content stored on the configured storage • flat storage hierarchy based on UID • dedicated set() and get() methods (due to lack of a DX storage API) as data managers • DX behaviors not applicable here • (we need a Dexterity storage API or some wrapper in plone.api) xml_text = XMLText() xml_image = XMLImage() obj.set_xml('xml_text', xml) obj.set_xml('xml_img', img_bin) xml = obj.get_xml('xml_text') img_bin = obj.get_xml('xml_img')
  • 15. pyfilesystem • abstraction layer on top of storages, access through a uniform API • Python 2/3 compatible • various filesystem/webservices drivers • Goal: your code must not know about the underlaying storage system. The backend is just aconfiguration option. • extensible (writing a new driver is straight forward • sandboxed filesystem operations • OOTB support for: WebDAV, S(FTP), RPCFS, OSFS, S3, ZIP, Memory, MultiFS, WrapFS handle = fs.opener(some_url) with handle.open('foo', 'w') as fp: fp.write(data) handle.listdir(dirname) handle.makedir('foo/bar/test') handle.removedir('foo/bar/test) handle.exists(some_filename) handle.isfile(some_name) handle.move(src, dst) handle.copy(src, dst) ….
  • 16. WebDAV (S)FTP pyfilesystem Plone xmldirector.plonecore Dropbox GDriveAWS S3 Local FS Architecture OwnCloud
 Alfresco
 eXistDB
 BaseX Dropbox Sharepoint Evernote Facebook Flickr Yandex OneDrive many others Driver Driver Driver SMEOtixo DropDav WebDAV native
 protocols native
 protocols Your setup SaaS setup
  • 17. Storage/
 Web Service self-hosted (Privacy) via external SaaS Bridge (limited privacy?) WebDAV 
 (Owncloud, BaseX,
 eXist-DB, Alfresco, etc.) YES YES Amazon S3 YES YES Local filesystem YES NO Dropbox (YES, auth token issues) YES FTP/SFTP (YES, V1.4) YES 4Shared ADrive Alfresco Amazon Cloud Amazon S3 Box CloudMe Copy Cubby Digital Bucket DriveOnWeb Dropbox Dump Truck Evernote FTP Fabasoft Facebook FilesAnywhere Flickr GMX.DE Google Drive HiDrive Huddle LiveDrive Mediencenter MyDrive OneDrive Online FileFolder OwnCloud Picasa SugarSync TrendMicro SafeSync Web.de WebDAV Yandex NO YES pyfilesystem driver options
  • 18. Supported services through 
 3rd party services (example)
  • 20.
  • 21. Document formats 
 and conversion options
  • 23. • Industry standard in publishing • structured data • structured content • not many alternatives besides Indesign stuff…
  • 24. Advantages of XML • XML structure definition • Document Type Definition 
 (DTD) • XML Schema (XSD) • RelaxNG 
 • XML business rules • Schematron
  • 25. XML transformations • Transformations • XSLT (version 1-3) • rule based language • Transformation between 
 XML dialects • or Python • or ……

  • 26. XML 
 transformation pipelines XML 1 XML 2XSLT XSLT XSLT XML 1 XML 2Python XSLT Python
  • 27. Format: DOCX • DOCX is XML but the same crap as .DOC on a different level • all DOCX converters suck in their own special ways • dedicated Word templates require dedicated converters and special treatment • usually converted to some XML dialect 
 (e.g. Docbook 4/5) • Tools • past: LibreOffice/OpenOffice (HTML) • currently: c-rex.net (dedicated XML schema) • others: Transpect (Le-TeX)
  • 28. Format: DITA • DITA = Darwin Information Typing Architecture • XML model for authoring • defacto industry standard for technical documentation • focus on content reuse • Information typing: Task, Concept, and Reference • key concepts: topics and maps • extensive metadata and specialization • Tools • DITA toolkit for publishing (HTML, PDF, ODT, Docbook) • XMLMind Ditac
  • 29. Format: HTML5 • HTML5 as primary source for quality publishing 
 (vs. XML)? ……questionable • semantic elements <article>, <section>, <header>, <figure>, <nav>… • freedom of structure (HTML5) vs. 
 enforced structure and semantics (XML) • not really suitable for professional high-quality publishing
 (seen differently by others) • often used as intermediate format for CSS Paged Media with XML as primary format
  • 30. Format: PDF (1/2) • traditional: XML ➝ XSL-FO ➝ PDF • CSS Paged Media: HTML + CSS ➝ PDF • Tools (you get what you pay for, better quality=higher price) • WKHMLTOPDF (free), Weasyprint • PDFReactor (RealObjects) • PrinceXML (Prince) • PDFChip (Callas Software) • Antennahouse V6.2 CSS Formatter • Plone integration via Produce & Publish Plone Client Connector, collective.sendaspdf, abstract.wkhtmltopdf, eea.pdf free $$$$
  • 31. • new project: Vivliostyle (open-source + commercial) • "One Source Multi-Use for making eBooks, Web, and Print books" • based on EPUB Adaptive Layout implementation
 http://www.idpf.org/epub/pgt/ • fixes many limitations of the CSS Paged Media approach and EPUB limitations Format: PDF (2/2)
  • 32. Format: ODF • ODF is completely irrelevant in the publishing world (DOCX is (still) king) • Tools: • Pandoc • OpenOffice • LibreOffice
  • 33. Format: TeX/LaTeX • Perfect for text-oriented layouts • unusable for complex layouts • Tools: • ftw.book • Pandoc • Transpect
  • 34. Format: E-Books (1/2) • different ebook formats: 
 EPUB, EPUB3, Mobi, KF8, Apple's EPUB3 • different hardware and software readers:
 Kindle, iOS & Android devices, Kobo, Toliono, Sony, Nook • fixed format ebooks vs. reflowable ebooks vs. adaptive layouts • many limitations regarding typography, handling of images and tables HUGE MESS
  • 35. • Tools: • Calibre (Python) • eea.epub • Produce & Publish server (via Calibre) • web services like "Bookalope" Format: E-Books (2/2)
  • 36. Plone as platform for 
 publishing solutions