1. Moin, moin!
• Thomas von Deyen (@tvdeyen)
• 1976 geb. in Hamburg
• verheiratet, 1 Sohn
• HAW Hamburg Medientechnik
• 2007: PHP2Ruby
• macabi
• 2007..2009
• ThinkWorkDone
• 2009..2010
• magic labs*
• 2010..Time.now
Donnerstag, 15. September 11
2. OMFGPNAOSCMSWAHX*
*Oh my f*#&ing god, please not another opensource CMS, we already have X!
Donnerstag, 15. September 11
3. History
• Motivation: flexibel wie Typo 3, trotzdem bedienbar
• Von 2007 bis 2010 als proprietäre Software:
• Softwarepflege / Weiterentwicklung
• Gewährleistung
• Verwertungsrechte
• Seit 2010 OpenSource
Donnerstag, 15. September 11
5. Was macht Alchemy?nicht?
Alchemy
• Alchemy speichert Inhalte einer Web-Seite in kleinsten Einheiten:
• Atome
@page.body = <<BODY
<h1>Welcome</h1>
• Moleküle
<p>
• Lorem ipsum dolor
Zellen
<img style="float: right" src="image.jpg">
</p>
BODY
@page.meta_description = "fancy rails cms"
@page.save
Donnerstag, 15. September 11
6. Was macht Alchemy?
• Alchemy speichert Inhalte einer
Web-Seite in kleinsten Einheiten:
• Atome
• Moleküle
• Zellen
Donnerstag, 15. September 11
7. What you need is what you get
• 100% Trennung zwischen Inhalt und Styling
• Extrem flexible Anpassungsmöglichkeiten
• Wie in einem Chemiebaukasten liefert Alchemy nur die grundlegenden
Essenzen
• Welche Elemente daraus zusammengestellt werden ist komplett dem
Entwickler überlassen
Donnerstag, 15. September 11
8. Rendering Tree
• Layout
➡ app/views/layout/pages.html.erb
• PageLayout
➡ app/views/page_layouts/_standard.html.erb
ActionCaching
• Cell
➡ app/views/cells/_right_column.html.erb
• Element
➡ app/views/elements/_article_view.html.erb
• Essence
➡ app/views/layout/_essence_text_view.html.erb
Donnerstag, 15. September 11
15. Example elements editor partial:
# app/views/elements/_article_editor.html.erb
<%= render_essence_editor_by_name(element, 'headline') %>
<%= render_essence_editor_by_name(element, 'text') %>
<%= render_picture_editor(element,
:image_size => "80x120",
:crop => true
) %>
Donnerstag, 15. September 11
16. There is a task* for that!
• Create new project
➡ alchemy new fancypage
• Or prepare existing rails app for Alchemy
➡ rake alchemy:prepare
• Scaffold necessary folders and files
➡ rails g alchemy:scaffold:all
• Install standard set (default layout)
➡ rake alchemy:standard_set:install
* and or generator
Donnerstag, 15. September 11