Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ghost - Just JavaScript?
Search
Sebastian Gierlinger
December 11, 2013
Technology
1.8k
5
Share
Ghost - Just JavaScript?
Sebastian Gierlinger
December 11, 2013
Other Decks in Technology
See All in Technology
AIを活用したアクセシビリティ改善フロー
degudegu2510
1
170
終盤で崩壊させないAI駆動開発
j5ik2o
0
510
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.1k
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
6
7.6k
プロジェクトマネジメントは AIでどう変わるか?
mkg5383
0
220
Data Hubグループ 紹介資料
sansan33
PRO
0
2.9k
チームで育てるAI自走環境_20260409
fuktig
0
1k
AIエージェントを構築して感じた、AI時代のCDKとの向き合い方
smt7174
1
180
【Findy FDE登壇_2026_04_14】— 現場課題を本気で解いてたら、FDEになってた話
miyatakoji
0
990
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
580
New CBs New Challenges
ysuzuki
1
170
AI環境整備はどのくらい開発生産性を変えうるか? #AI駆動開発 #AI自走環境
ucchi0909
0
120
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Tell your own story through comics
letsgokoyo
1
890
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
290
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
310
Transcript
Ghost Just JavaScript?
Ghost Architecture Admin DB API Frontend Apps Helpers Config
Database / Config Bookshelf promise based ORM Knex Sqlite3 /
mySQL / pgSQL JSON Configuration config = { ... } http://bookshelfjs.org http://knexjs.org
API Restful API /ghost/api/v0.1/users/1/ { id: 1, name: "John Doe",
..., email: "
[email protected]
", website: null, created_at: "2013-10-05T09:11:21.000Z", updated_at: "2013-10-05T09:11:21.000Z" }
Admin BackboneJS - structuring framework API - dogfooding writing -
markup editor content - manage your posts settings - general / user http://backbonejs.com
Frontend express web application framework connect middleware themes index.hbs /
post.hbs / page.hbs http://www.senchalabs.org/connect/ http://expressjs.com/
Helpers Handlebars templating language + custom helpers http://handlebarsjs.com/ http://docs.ghost.org/themes/ {{date
published_at format="MMMM DD, YYYY"}} <ul> {{#tags}} <li>{{name}}</li> {{/tags}} </ul>
Apps Data API - store data Filters API - hook
into Ghost Theme API - handlebars helpers Routes API - add custom routes Files API - add custom storage UI Tools - add UI to Ghost admin https://github.com/TryGhost/Ghost/wiki/Imagining-the-Ghost-Developer-Tools
Let it happen? 88.882 downloads 1.133 Forks on GitHub 72
Contributors 4 Fulltime 173 open issues / 1483 closed issues Stats from 11.12.2013 12:00
Just JavaScript? ... Vagrant GitHub Travis Grunt Tests Init
GitHub
Zenhub http://zenhub.io
Vagrant unified environment OS / node / code setup get
Ghost-Vagrant vagrant up http://www.vagrantup.com/
Travis http://travis-ci.org
Travis
Grunt automate builds tests releases changelogs http://gruntjs.com/
$ grunt init bourbon - sass mixins sass - css
scripting handlebars - templates language concat - combine and uglify JS https://github.com/TryGhost/Ghost/wiki/Grunt-Toolkit
$ grunt validate jslint - first line of defense test-unit
- unit tests test-integration - integration tests test-api - functional API test test-functional - casperJS UI tests test-coverage - generate cov report https://github.com/TryGhost/Ghost/wiki/Grunt-Toolkit
$ grunt validate grunt.registerTask('validate', 'Run tests and lint code', ['jslint',
'test-unit', 'test-api', 'test-integration', 'test-functional'] );
$ grunt test-api grunt.registerTask( 'test-api', 'Run functional api tests (mocha)',
['clean:test', 'setTestEnv', 'loadConfig', 'express:test', 'mochacli:api', 'express:test:stop'] );
Roadmap bit.ly/ghost-roadmap Features bit.ly/ghost-features @sebgie
[email protected]
sebgie.ghost.io