#!/usr/bin/env retro This is used to assemble the Markdown copy of the RETRO Handbook. The individual chapters are in the `book/` directory. This is set using the `BOOK-BASE` constant. ~~~ 'book/ 'BOOK-BASE s:const ~~~ The chapters are specified it the `TOC`, a named array. These are the file names, they will be included in order. I am structuring it using separate file to make the actual editing process easier for me. ~~~ { 'Overview 'Obtaining-Retro 'Building-BSD 'Building-Linux 'Building-macOS 'Building-Windows 'Starting 'Basic-Interactions 'Syntax 'Quick-Tutorial 'Using-the-Glossary 'Programming-Techniques 'Programming-Techniques-Unu 'Programming-Techniques-Naming-Conventions 'Programming-Techniques-Stack-Diagrams 'Programming-Techniques-Word-Classes 'Programming-Techniques-Using-Combinators 'Programming-Techniques-Working-With 'The-Stacks 'Programming-Techniques-Working-With-Arrays 'Programming-Techniques-Working-With-Buffer 'Programming-Techniques-Working-With-Characters 'Programming-Techniques-Working-With-Dictionary 'Programming-Techniques-Working-With-Floating-Point 'Programming-Techniques-Working-With-Numbers 'Programming-Techniques-Working-With-Pointers 'Programming-Techniques-Working-With-Strings 'Programming-Techniques-Writing-Combinators 'Programming-Techniques-Working-With-Assembly 'Internals 'Internals-Nga 'Internals-Interface-Layers 'Internals-Retro-Image 'Additional-Tools 'Advanced-Builds 'Retro-Compiler 'Errors 'Tech-Notes 'Historical-Papers } 'TOC const ~~~ ~~~ 'Out var :import here swap BOOK-BASE s:prepend file:slurp ; :\n ASCII:LF @Out file:write ; :add-to-book here [ @Out file:write ] s:for-each \n ; :process-files [ import add-to-book ] array:for-each ; :open 'RETRO-Book.md file:open !Out ; :close @Out file:close ; :assemble open process-files close ; :open 'gophermap file:open !Out ; :close @Out file:close ; :ENTRY '0%s\t/book/%s\tforth.works\t70\n ; :process-files [ dup ENTRY s:format [ @Out file:write ] s:for-each ] array:for-each ; :gophermap open process-files close ; :process dup assemble gophermap ; TOC process ~~~