diff --git a/.gitignore b/.gitignore index 2f32ff4..9215559 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /.idea /_site/ +www/_site/ diff --git a/book/BuildingHypermediaSystems.adoc b/book/BuildingHypermediaSystems.adoc deleted file mode 100644 index 4d352ed..0000000 --- a/book/BuildingHypermediaSystems.adoc +++ /dev/null @@ -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] diff --git a/book/INTRO_HypermediaSystems.adoc b/book/CH00_Introduction.adoc similarity index 100% rename from book/INTRO_HypermediaSystems.adoc rename to book/CH00_Introduction.adoc diff --git a/book/CH01_ReintroducingHypermedia.adoc b/book/CH01_HypermediaAReintroduction.adoc similarity index 99% rename from book/CH01_ReintroducingHypermedia.adoc rename to book/CH01_HypermediaAReintroduction.adoc index a323792..345e979 100644 --- a/book/CH01_ReintroducingHypermedia.adoc +++ b/book/CH01_HypermediaAReintroduction.adoc @@ -1,7 +1,7 @@ -= Reintroducing Hypermedia += Hypermedia: A Reintroduction :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 systems every day, mainly by interacting with the _HyperText Markup Language (HTML)_ being exchanged via the _HyperText Transfer diff --git a/book/CH02_RestHATEOASAndAllThat.adoc b/book/CH02_ComponentsOfAHypermediaSystem.adoc similarity index 99% rename from book/CH02_RestHATEOASAndAllThat.adoc rename to book/CH02_ComponentsOfAHypermediaSystem.adoc index c46138c..8aec615 100644 --- a/book/CH02_RestHATEOASAndAllThat.adoc +++ b/book/CH02_ComponentsOfAHypermediaSystem.adoc @@ -1,7 +1,7 @@ -= Hypermedia Systems: An Overview += Components Of A Hypermedia System :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, including: diff --git a/book/CH03_EffectiveHtml.adoc b/book/CH03_EffectiveHtml.adoc index 8527bfe..f67f15f 100644 --- a/book/CH03_EffectiveHtml.adoc +++ b/book/CH03_EffectiveHtml.adoc @@ -1,6 +1,6 @@ = Effective HTML -:chapter: 04 +:chapter: 03 :url: ./effective-html/ [partintro] diff --git a/book/CH04_BuildingASimpleWebApplication.adoc b/book/CH04_BuildingASimpleWebApplication.adoc index 84c5c42..1848512 100644 --- a/book/CH04_BuildingASimpleWebApplication.adoc +++ b/book/CH04_BuildingASimpleWebApplication.adoc @@ -1,5 +1,5 @@ -= Building A Simple Web 1.0 Application += Building A Simple Web 1.0 Application With Flask :chapter: 04 :url: ./building-a-simple-web-1-0-application/ diff --git a/book/CH08_ADynamicArchiveUIWithhtmx.adoc b/book/CH08_ADynamicArchiveUIWithhtmx.adoc index 719fddc..9326a69 100644 --- a/book/CH08_ADynamicArchiveUIWithhtmx.adoc +++ b/book/CH08_ADynamicArchiveUIWithhtmx.adoc @@ -1,7 +1,7 @@ -= A Dynamic Archive UI With htmx += A Dynamic Archive UI :chapter: 08 -:url: ./a-dynamic-archive-ui-with-htmx/ +:url: ./a-dynamic-archive-ui/ This chapter covers diff --git a/book/CH13_ScriptingInAHypermediaApplication.adoc b/book/CH10_ScriptingInAHypermediaApplication.adoc similarity index 99% rename from book/CH13_ScriptingInAHypermediaApplication.adoc rename to book/CH10_ScriptingInAHypermediaApplication.adoc index 3190ee5..b5143ac 100644 --- a/book/CH13_ScriptingInAHypermediaApplication.adoc +++ b/book/CH10_ScriptingInAHypermediaApplication.adoc @@ -1,6 +1,6 @@ = Client Side Scripting -:chapter: 13 +:chapter: 10 :url: ./client-side-scripting/ This chapter covers diff --git a/book/CH14_JSONDataAPIs.adoc b/book/CH11_JSONDataAPIs.adoc similarity index 99% rename from book/CH14_JSONDataAPIs.adoc rename to book/CH11_JSONDataAPIs.adoc index acade5c..5564c05 100644 --- a/book/CH14_JSONDataAPIs.adoc +++ b/book/CH11_JSONDataAPIs.adoc @@ -1,6 +1,6 @@ = JSON Data APIs & Hypermedia Driven Applications -:chapter: 14 +:chapter: 11 :url: ./json-data-apis/ This chapter covers diff --git a/book/CH10_HyperviewAMobileHypermedia.adoc b/book/CH12_HyperviewAMobileHypermedia.adoc similarity index 99% rename from book/CH10_HyperviewAMobileHypermedia.adoc rename to book/CH12_HyperviewAMobileHypermedia.adoc index e35c00b..ee2b0c0 100644 --- a/book/CH10_HyperviewAMobileHypermedia.adoc +++ b/book/CH12_HyperviewAMobileHypermedia.adoc @@ -1,6 +1,6 @@ = Hyperview: A Mobile Hypermedia -:chapter: 10 +:chapter: 12 :url: ./hyperview-a-mobile-hypermedia/ This chapter covers diff --git a/book/CH11_BuildingAContactsAppWithHyperview.adoc b/book/CH13_BuildingAContactsAppWithHyperview.adoc similarity index 99% rename from book/CH11_BuildingAContactsAppWithHyperview.adoc rename to book/CH13_BuildingAContactsAppWithHyperview.adoc index a3917d9..de007d5 100644 --- a/book/CH11_BuildingAContactsAppWithHyperview.adoc +++ b/book/CH13_BuildingAContactsAppWithHyperview.adoc @@ -1,6 +1,6 @@ = Building a Contacts App With Hyperview -:chapter: 11 +:chapter: 13 :url: ./building-a-contacts-app-with-hyperview/ This chapter covers: diff --git a/book/CH12_ExtendingTheHyperviewClient.adoc b/book/CH14_ExtendingTheHyperviewClient.adoc similarity index 99% rename from book/CH12_ExtendingTheHyperviewClient.adoc rename to book/CH14_ExtendingTheHyperviewClient.adoc index 51b848a..7460642 100644 --- a/book/CH12_ExtendingTheHyperviewClient.adoc +++ b/book/CH14_ExtendingTheHyperviewClient.adoc @@ -1,6 +1,6 @@ = Extending the Hyperview Client -:chapter: 12 +:chapter: 14 :url: ./extending-the-hypermedia-client/ This chapter covers: diff --git a/book/CH16_Conclusion.adoc b/book/CH15_Conclusion.adoc similarity index 99% rename from book/CH16_Conclusion.adoc rename to book/CH15_Conclusion.adoc index 8a07acc..9e8d21f 100644 --- a/book/CH16_Conclusion.adoc +++ b/book/CH15_Conclusion.adoc @@ -1,6 +1,6 @@ = Conclusion -:chapter: 16 +:chapter: 15 :url: ./conclusion/ [partintro] diff --git a/book/HypermediaSystems.adoc b/book/HypermediaSystems.adoc new file mode 100644 index 0000000..218838f --- /dev/null +++ b/book/HypermediaSystems.adoc @@ -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] diff --git a/book/TableOfContents.adoc b/book/TableOfContents.adoc deleted file mode 100644 index d1b1c12..0000000 --- a/book/TableOfContents.adoc +++ /dev/null @@ -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 - diff --git a/book/CH15_OtherHypermediaOrientedLibraries.adoc b/book/old/ARCHIVED_OtherHypermediaOrientedLibraries.adoc similarity index 100% rename from book/CH15_OtherHypermediaOrientedLibraries.adoc rename to book/old/ARCHIVED_OtherHypermediaOrientedLibraries.adoc diff --git a/book/APP03_aksimsek_scripting_thoughts.adoc b/book/old/ARCHIVED_aksimsek_scripting_thoughts.adoc similarity index 100% rename from book/APP03_aksimsek_scripting_thoughts.adoc rename to book/old/ARCHIVED_aksimsek_scripting_thoughts.adoc diff --git a/book/APP02_gross_history_of_web.adoc b/book/old/ARCHIVED_gross_history_of_web.adoc similarity index 100% rename from book/APP02_gross_history_of_web.adoc rename to book/old/ARCHIVED_gross_history_of_web.adoc diff --git a/book/pdfs/comments/CH01_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/comments/CH01_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/comments/CH01_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/comments/CH01_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/comments/CH02_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/comments/CH02_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/comments/CH02_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/comments/CH02_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/comments/CH03_gross_Hypermedia_In_Action__2___1_.pdf b/book/old/pdfs/comments/CH03_gross_Hypermedia_In_Action__2___1_.pdf similarity index 100% rename from book/pdfs/comments/CH03_gross_Hypermedia_In_Action__2___1_.pdf rename to book/old/pdfs/comments/CH03_gross_Hypermedia_In_Action__2___1_.pdf diff --git a/book/pdfs/comments/CH04_gross_Hypermedia_In_Action__1___3_.pdf b/book/old/pdfs/comments/CH04_gross_Hypermedia_In_Action__1___3_.pdf similarity index 100% rename from book/pdfs/comments/CH04_gross_Hypermedia_In_Action__1___3_.pdf rename to book/old/pdfs/comments/CH04_gross_Hypermedia_In_Action__1___3_.pdf diff --git a/book/pdfs/comments/CH05_gross_Hypermedia_In_Action__1_.pdf b/book/old/pdfs/comments/CH05_gross_Hypermedia_In_Action__1_.pdf similarity index 100% rename from book/pdfs/comments/CH05_gross_Hypermedia_In_Action__1_.pdf rename to book/old/pdfs/comments/CH05_gross_Hypermedia_In_Action__1_.pdf diff --git a/book/pdfs/comments/CH06_Gross_HypermediaInAction.pdf b/book/old/pdfs/comments/CH06_Gross_HypermediaInAction.pdf similarity index 100% rename from book/pdfs/comments/CH06_Gross_HypermediaInAction.pdf rename to book/old/pdfs/comments/CH06_Gross_HypermediaInAction.pdf diff --git a/book/pdfs/comments/CH10_Gross_Hypermedia_In_Action.pdf b/book/old/pdfs/comments/CH10_Gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/comments/CH10_Gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/comments/CH10_Gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/comments/CH11_Gross_Hypermedia_In_Action.pdf b/book/old/pdfs/comments/CH11_Gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/comments/CH11_Gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/comments/CH11_Gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/comments/TOC.pdf b/book/old/pdfs/comments/TOC.pdf similarity index 100% rename from book/pdfs/comments/TOC.pdf rename to book/old/pdfs/comments/TOC.pdf diff --git a/book/pdfs/generated/CH01_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH01_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH01_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH01_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH02_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH02_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH02_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH02_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH03_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH03_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH03_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH03_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH04_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH04_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH04_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH04_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH05_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH05_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH05_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH05_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH06_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH06_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH06_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH06_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH07_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH07_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH07_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH07_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH08_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH08_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH08_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH08_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH09_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH09_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH09_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH09_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH10_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH10_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH10_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH10_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH11_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH11_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH11_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH11_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH12_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH12_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH12_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH12_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/CH13_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/CH13_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/CH13_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/CH13_gross_Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/Hypermedia_In_Action.pdf b/book/old/pdfs/generated/Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/Hypermedia_In_Action.pdf diff --git a/book/pdfs/generated/TOC_gross_Hypermedia_In_Action.pdf b/book/old/pdfs/generated/TOC_gross_Hypermedia_In_Action.pdf similarity index 100% rename from book/pdfs/generated/TOC_gross_Hypermedia_In_Action.pdf rename to book/old/pdfs/generated/TOC_gross_Hypermedia_In_Action.pdf