mirror of
https://github.com/bigskysoftware/hypermedia-systems.git
synced 2025-11-30 00:03:48 -05:00
reorg book
This commit is contained in:
parent
49c8af2942
commit
f36e4099dd
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
/.idea
|
/.idea
|
||||||
/_site/
|
/_site/
|
||||||
|
www/_site/
|
||||||
|
|||||||
@ -1,36 +0,0 @@
|
|||||||
|
|
||||||
= Building Hypermedia Systems
|
|
||||||
Adam Stepinski, Carson Gross, Deniz Akşimşek
|
|
||||||
:doctype: book
|
|
||||||
:toc: macro
|
|
||||||
:toclevels: 3
|
|
||||||
:toc-title:
|
|
||||||
:imagesdir: /images
|
|
||||||
:sectnums:
|
|
||||||
:sectnumlevels: 2
|
|
||||||
:showtitle:
|
|
||||||
:url: ./hypermedia-systems/
|
|
||||||
|
|
||||||
.Contents
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
toc::[]
|
|
||||||
====
|
|
||||||
|
|
||||||
[introduction]
|
|
||||||
include::book/INTRO_HypermediaSystems.adoc[leveloffset=1]
|
|
||||||
include::book/CH01_ReintroducingHypermedia.adoc[leveloffset=1]
|
|
||||||
include::book/CH02_RestHATEOASAndAllThat.adoc[leveloffset=1]
|
|
||||||
include::book/CH03_BuildingASimpleWebApplication.adoc[leveloffset=1]
|
|
||||||
include::book/CH04_ExtendingHTMLAsHypermedia.adoc[leveloffset=1]
|
|
||||||
include::book/CH05_htmxInAction.adoc[leveloffset=1]
|
|
||||||
include::book/CH06_MorehtmxPatterns.adoc[leveloffset=1]
|
|
||||||
include::book/CH07_ADynamicArchiveUIWithhtmx.adoc[leveloffset=1]
|
|
||||||
include::book/CH08_Deephtmx.adoc[leveloffset=1]
|
|
||||||
include::book/CH09_HyperviewAMobileHypermedia.adoc[leveloffset=1]
|
|
||||||
include::book/CH10_BuildingAContactsAppWithHyperview.adoc[leveloffset=1]
|
|
||||||
include::book/CH11_ExtendingTheHyperviewClient.adoc[leveloffset=1]
|
|
||||||
include::book/CH12_ScriptingInAHypermediaApplication.adoc[leveloffset=1]
|
|
||||||
include::book/CH13_JSONDataAPIs.adoc[leveloffset=1]
|
|
||||||
include::book/CH14_OtherHypermediaOrientedLibraries.adoc[leveloffset=1]
|
|
||||||
include::book/CH15_Conclusion.adoc[leveloffset=1]
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
= Reintroducing Hypermedia
|
= Hypermedia: A Reintroduction
|
||||||
:chapter: 01
|
:chapter: 01
|
||||||
:url: ./reintroducing-hypermedia/
|
:url: ./hypermedia-reintroduction/
|
||||||
|
|
||||||
Hypermedia is a universal technology today, nearly as common as electricity. Billions of people use a hypermedia-based
|
Hypermedia is a universal technology today, nearly as common as electricity. Billions of people use a hypermedia-based
|
||||||
systems every day, mainly by interacting with the _HyperText Markup Language (HTML)_ being exchanged via the _HyperText Transfer
|
systems every day, mainly by interacting with the _HyperText Markup Language (HTML)_ being exchanged via the _HyperText Transfer
|
||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
= Hypermedia Systems: An Overview
|
= Components Of A Hypermedia System
|
||||||
:chapter: 02
|
:chapter: 02
|
||||||
:url: ./hypermedia-systems-an-overview/
|
:url: ./hypermedia-components/
|
||||||
|
|
||||||
A _hypermedia system_ consists of a number of facets that come together to make the entire distributed system work,
|
A _hypermedia system_ consists of a number of facets that come together to make the entire distributed system work,
|
||||||
including:
|
including:
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
= Effective HTML
|
= Effective HTML
|
||||||
:chapter: 04
|
:chapter: 03
|
||||||
:url: ./effective-html/
|
:url: ./effective-html/
|
||||||
|
|
||||||
[partintro]
|
[partintro]
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
= Building A Simple Web 1.0 Application
|
= Building A Simple Web 1.0 Application With Flask
|
||||||
:chapter: 04
|
:chapter: 04
|
||||||
:url: ./building-a-simple-web-1-0-application/
|
:url: ./building-a-simple-web-1-0-application/
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
= A Dynamic Archive UI With htmx
|
= A Dynamic Archive UI
|
||||||
:chapter: 08
|
:chapter: 08
|
||||||
:url: ./a-dynamic-archive-ui-with-htmx/
|
:url: ./a-dynamic-archive-ui/
|
||||||
|
|
||||||
This chapter covers
|
This chapter covers
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
= Client Side Scripting
|
= Client Side Scripting
|
||||||
:chapter: 13
|
:chapter: 10
|
||||||
:url: ./client-side-scripting/
|
:url: ./client-side-scripting/
|
||||||
|
|
||||||
This chapter covers
|
This chapter covers
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
= JSON Data APIs & Hypermedia Driven Applications
|
= JSON Data APIs & Hypermedia Driven Applications
|
||||||
:chapter: 14
|
:chapter: 11
|
||||||
:url: ./json-data-apis/
|
:url: ./json-data-apis/
|
||||||
|
|
||||||
This chapter covers
|
This chapter covers
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
= Hyperview: A Mobile Hypermedia
|
= Hyperview: A Mobile Hypermedia
|
||||||
:chapter: 10
|
:chapter: 12
|
||||||
:url: ./hyperview-a-mobile-hypermedia/
|
:url: ./hyperview-a-mobile-hypermedia/
|
||||||
|
|
||||||
This chapter covers
|
This chapter covers
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
= Building a Contacts App With Hyperview
|
= Building a Contacts App With Hyperview
|
||||||
:chapter: 11
|
:chapter: 13
|
||||||
:url: ./building-a-contacts-app-with-hyperview/
|
:url: ./building-a-contacts-app-with-hyperview/
|
||||||
|
|
||||||
This chapter covers:
|
This chapter covers:
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
= Extending the Hyperview Client
|
= Extending the Hyperview Client
|
||||||
:chapter: 12
|
:chapter: 14
|
||||||
:url: ./extending-the-hypermedia-client/
|
:url: ./extending-the-hypermedia-client/
|
||||||
|
|
||||||
This chapter covers:
|
This chapter covers:
|
||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
= Conclusion
|
= Conclusion
|
||||||
:chapter: 16
|
:chapter: 15
|
||||||
:url: ./conclusion/
|
:url: ./conclusion/
|
||||||
|
|
||||||
[partintro]
|
[partintro]
|
||||||
47
book/HypermediaSystems.adoc
Normal file
47
book/HypermediaSystems.adoc
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
= Hypermedia Systems
|
||||||
|
Adam Stepinski, Carson Gross, Deniz Akşimşek
|
||||||
|
:doctype: book
|
||||||
|
:toc: macro
|
||||||
|
:toclevels: 3
|
||||||
|
:toc-title:
|
||||||
|
:imagesdir: /images
|
||||||
|
:sectnums:
|
||||||
|
:sectnumlevels: 2
|
||||||
|
:showtitle:
|
||||||
|
:url: ./hypermedia-systems/
|
||||||
|
|
||||||
|
.Contents
|
||||||
|
[%collapsible]
|
||||||
|
====
|
||||||
|
toc::[]
|
||||||
|
====
|
||||||
|
|
||||||
|
= Hypermedia
|
||||||
|
|
||||||
|
[introduction]
|
||||||
|
include::CH00_Introduction.adoc[leveloffset=1]
|
||||||
|
include::CH01_HypermediaAReintroduction.adoc[leveloffset=1]
|
||||||
|
include::CH02_ComponentsOfAHypermediaSystem.adoc[leveloffset=1]
|
||||||
|
include::CH03_EffectiveHtml.adoc[leveloffset=1]
|
||||||
|
include::CH04_BuildingASimpleWebApplication.adoc[leveloffset=1]
|
||||||
|
|
||||||
|
= htmx
|
||||||
|
|
||||||
|
include::CH05_ExtendingHTMLAsHypermedia.adoc[leveloffset=1]
|
||||||
|
include::CH06_htmxInAction.adoc[leveloffset=1]
|
||||||
|
include::CH07_MorehtmxPatterns.adoc[leveloffset=1]
|
||||||
|
include::CH08_ADynamicArchiveUIWithhtmx.adoc[leveloffset=1]
|
||||||
|
include::CH09_Deephtmx.adoc[leveloffset=1]
|
||||||
|
include::CH10_ScriptingInAHypermediaApplication.adoc[leveloffset=1]
|
||||||
|
include::CH11_JSONDataAPIs.adoc[leveloffset=1]
|
||||||
|
|
||||||
|
= Hyperview
|
||||||
|
|
||||||
|
include::CH12_HyperviewAMobileHypermedia.adoc[leveloffset=1]
|
||||||
|
include::CH13_BuildingAContactsAppWithHyperview.adoc[leveloffset=1]
|
||||||
|
include::CH14_ExtendingTheHyperviewClient.adoc[leveloffset=1]
|
||||||
|
|
||||||
|
= Conclusion
|
||||||
|
|
||||||
|
include::CH15_Conclusion.adoc[leveloffset=1]
|
||||||
@ -1,103 +0,0 @@
|
|||||||
== Outline
|
|
||||||
|
|
||||||
|
|
||||||
. Section 1: A Reintroduction To Hypermedia
|
|
||||||
[arabic]
|
|
||||||
.. What Is Hypermedia
|
|
||||||
... So, What Is Hypermedia?
|
|
||||||
... Why Use Hypermedia?
|
|
||||||
... REST
|
|
||||||
... When Should You Use Hypermedia?
|
|
||||||
... When Shouldn't You Use Hypermedia?
|
|
||||||
... Summary
|
|
||||||
.. A Review of Chapter of Roy Fielding's Dissertation On The Web
|
|
||||||
.. A Brief, Mostly Wrong History Of The Web
|
|
||||||
.. A Simple Web 1.0-style Application
|
|
||||||
... A Simple Contact Management Web Application
|
|
||||||
... A Brief Introduction to Flask & Our First Route
|
|
||||||
... Contact.App Functionality
|
|
||||||
... Summary
|
|
||||||
. Section 2: Building A Hypermedia-Driven Application With htmx
|
|
||||||
[arabic,start=5]
|
|
||||||
.. Extending HTML As Hypermedia
|
|
||||||
... The Shortcomings of "Plain" HTML
|
|
||||||
... Extending HTML as a Hypermedia with htmx
|
|
||||||
... Triggering HTTP Requests
|
|
||||||
... Targeting Other Elements
|
|
||||||
... Swap Styles
|
|
||||||
... Using Other Events
|
|
||||||
... Passing Request Parameters
|
|
||||||
... History Support
|
|
||||||
... Summary
|
|
||||||
.. Putting htmx Into Action
|
|
||||||
... Installing htmx
|
|
||||||
... Adding AJAX Navigation
|
|
||||||
... Deleting Contacts
|
|
||||||
... Next Steps: Validating Emails
|
|
||||||
... Another Improvement: Paging
|
|
||||||
... Summary
|
|
||||||
.. Advanced htmx Patterns
|
|
||||||
... Active Search
|
|
||||||
... Lazy Loading
|
|
||||||
... Inline Delete
|
|
||||||
... Bulk Delete
|
|
||||||
... Summary
|
|
||||||
.. Creating A Dynamic Download UI
|
|
||||||
... A Dynamic Archive UI
|
|
||||||
... Polling
|
|
||||||
... Smoothing Things Out: More On The htmx Swap Model
|
|
||||||
... Dismissing The Download UI
|
|
||||||
... Auto-Download
|
|
||||||
... Summary
|
|
||||||
.. Developing With htmx
|
|
||||||
... Getting Deeper Into htmx
|
|
||||||
... htmx Attributes
|
|
||||||
... Events
|
|
||||||
... HTTP Requests & Responses
|
|
||||||
... Updating Other Content
|
|
||||||
... Debugging
|
|
||||||
... Security Considerations
|
|
||||||
... Configuring
|
|
||||||
... Summary
|
|
||||||
.. Client Side Scripting
|
|
||||||
... Scripting in Hypermedia-Driven Applications
|
|
||||||
... Scripting languages for the Web
|
|
||||||
... Using off-the-shelf components
|
|
||||||
... Events and the DOM
|
|
||||||
... Adding a Keyboard Shortcut for Focusing the Search Input With VanillaJS
|
|
||||||
... Adding Support for Re-Ordering Contacts (No Scripting Needed!)
|
|
||||||
... Adding Support for a Drop-Down with AlpineJS
|
|
||||||
... Adding a Nicer Confirmation for Deleting Contacts With _hyperscript
|
|
||||||
... Being Pragmatic
|
|
||||||
... Summary
|
|
||||||
.. Data APIs & Hypermedia Driven Applications
|
|
||||||
... Data APIs
|
|
||||||
... Hypermedia APIs & Data APIs
|
|
||||||
... Adding a JSON Data API To Contact.app
|
|
||||||
... Summary
|
|
||||||
. Section 3: Building A Mobile Hypermedia-Driven Application With HyperView
|
|
||||||
[arabic,start=12]
|
|
||||||
.. Hyperview: A Mobile Hypermedia
|
|
||||||
... State of Mobile App Development
|
|
||||||
... Hypermedia for Mobile Apps
|
|
||||||
... Introduction to HXML
|
|
||||||
... Summary
|
|
||||||
.. Building a Contacts App with Hyperview
|
|
||||||
... Creating a mobile app
|
|
||||||
... A Searchable List of Contacts
|
|
||||||
... Editing a Contact
|
|
||||||
... Deleting a Contact
|
|
||||||
... Adding a New Contact
|
|
||||||
... One Backend, Multiple Hypermedia formats
|
|
||||||
... Summary
|
|
||||||
.. Extending The Hyperview Client
|
|
||||||
... Adding Phone Calls and Email
|
|
||||||
... Adding Toast Messages
|
|
||||||
... Swipe gesture on Contacts
|
|
||||||
... Conclusion
|
|
||||||
. Section 4: Conclusion
|
|
||||||
[arabic, start=15]
|
|
||||||
.. Hypermedia: The New/Old Way
|
|
||||||
... Hypermedia Reconsidered
|
|
||||||
... Pausing, And Reflecting
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user