diff --git a/readme.html b/README.md similarity index 100% rename from readme.html rename to README.md diff --git a/build.sh b/build.sh index 26c607e..5703878 100755 --- a/build.sh +++ b/build.sh @@ -5,13 +5,13 @@ for i in `seq 1 4`; do h application/zip c$i.zip c$i done -zip t1.zip readme.html build.sh -zip t2.zip main.svg clean.sh - -h text/html readme.html i1 +zip t1.zip README.md +zip t2.zip main.svg build.sh +zip t3.zip clean.sh instructions.svg h application/zip t1.zip t1 h application/zip t2.zip t2 +h application/zip t3.zip t3 chromium --headless --disable-gpu --no-pdf-header-footer --print-to-pdf=output.pdf main.svg diff --git a/c1.svg b/c1.svg index 6e5c147..a55075a 100644 --- a/c1.svg +++ b/c1.svg @@ -1,10 +1,9 @@ - - + - +
-

This zine was made with QRnZine, a collection of SVG templates and scripts for building zines which contain the means of their own reproduction.

+ This zine was made with QRnZine, a collection of SVG templates and scripts for building zines which contain the means of their own reproduction.

By unfolding this zine and turning the page over, you should find a set of QR codes containing instructions and source code that can be used both to replicate this zine, as well as to create your own zines with their own self-replicating abilities.

@@ -14,13 +13,11 @@ QRnZine v0.2 - - -
-

QRnZine

-

A Toolkit for Creating Zines That Contain the Means of their Own Reproduction

- An "artistic" exercise in abusing QR codes as a method for memetic self-replication -
-
-
+ +
+

QRnZine

+

A Toolkit for Creating Zines That Contain the Means of their Own Reproduction

+ An "artistic" exercise in abusing QR codes as a method for memetic self-replication +
+
diff --git a/c2.svg b/c2.svg index 52ae38b..38c679b 100644 --- a/c2.svg +++ b/c2.svg @@ -1,8 +1,10 @@ - - Page 1 + - + Page 1 + Page 2 + +
Preface/Disclaimer

This zine and QRnZine itself are pretty technical in nature and assume that the user is fairly technically advanced going in, with at least basic familiarity with command-line tools and editing of programming, scripting, and markup languages.

@@ -10,18 +12,13 @@
- - - Page 2 - - -
- Introduction -

Link rot is very real and photocopiers don't come with an easy edit button.

-

That's basically the problem QRnZine is intended to fix.

-

If you could put the source code of a zine within the zine itself, other people could hopefully more easily replicate, modify, and create zines built using that one as a template.

-

But how do you fit the source code for a zine inside itself?

-
-
-
+ +
+ Introduction +

Link rot is very real and photocopiers don't come with an easy edit button.

+

That's basically the problem QRnZine is intended to fix.

+

If you could put the source code of a zine within the zine itself, other people could hopefully more easily replicate, modify, and create zines built using that one as a template.

+

But how do you fit the source code for a zine inside itself?

+
+
diff --git a/c3.svg b/c3.svg index 411a7a5..4d3ca74 100644 --- a/c3.svg +++ b/c3.svg @@ -1,7 +1,10 @@ - - Page 3 - + + + Page 3 + Page 4 + +
SVGs

First we'll need to have a template to start with...

@@ -11,16 +14,12 @@
- - - Page 4 - -
- QR Codes -

Getting code onto and off of paper easily is a pain if you're relying on manually copying between the two.

-

Fortunately, this problem is largely avoided using barcodes and 2d barcodes like QR Codes, the ubiquitous 2d barcode solution that pretty much everyone has a scanner for in their pocket.

-

The biggest QR codes can store about 3kB of text, which is decent, but not quite enough for us.

-
-
-
+ +
+ QR Codes +

Getting code onto and off of paper easily is a pain if you're relying on manually copying between the two.

+

Fortunately, this problem is largely avoided using barcodes and 2d barcodes like QR Codes, the ubiquitous 2d barcode solution that pretty much everyone has a scanner for in their pocket.

+

The biggest QR codes can store about 3kB of text, which is decent, but not quite enough for us.

+
+
diff --git a/c4.svg b/c4.svg index 9be3cc0..b4ccfa5 100644 --- a/c4.svg +++ b/c4.svg @@ -1,7 +1,10 @@ - - Page 5 - + + + Page 5 + Page 6 + +
Data URIs

Data URIs are a special URL format that allows for data to be stored directly in the URL itself, without any backing server.

@@ -12,15 +15,11 @@
- - - Page 6 - -
- Putting It All Together -

By putting SVG source into zip files, placing zip files into data URIs, putting data URIs into QR codes, and referencing the QR codes in the SVG source, we can magically store the source code of our zine in the zine itself more-or-less losslessly.

-

Some caveats apply, like needing software to process SVGs, QR codes, and the automation scripts, but those are hopefully less fragile than a difficult-to-edit PDF with a broken link.

-
-
-
+ +
+ Putting It All Together +

By putting SVG source into zip files, placing zip files into data URIs, putting data URIs into QR codes, and referencing the QR codes in the SVG source, we can magically store the source code of our zine in the zine itself more-or-less losslessly.

+

Some caveats apply, like needing software to process SVGs, QR codes, and the automation scripts, but those are hopefully less fragile than a difficult-to-edit PDF with a broken link.

+
+
diff --git a/guidelines.svg b/guidelines.svg new file mode 100644 index 0000000..a6c69e3 --- /dev/null +++ b/guidelines.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/instructions.svg b/instructions.svg new file mode 100644 index 0000000..35ec7d2 --- /dev/null +++ b/instructions.svg @@ -0,0 +1,11 @@ + + +
+ The QR code immediately to the right has a data URI to a zip file containing a README.md with more info. (Nesting doll approach results in huge space savings) +

Instructions: Scan each of the QR codes on this page, pasting the data URI contained within each into a browser URL bar in order to download a set of zip files containing the individual files listed next to each QR code.

+

When all of the files are combined together into a single directory on a Linux computer, they can be used as-is to recreate the entirety of this zine, or modified to create a new zine that also has "self-replicating" abilities.

+ This Zine was made using QRnZine v0.2
+ Upstream Source Code: https://github.com/mlaga97/QRnZine
+
+
+
diff --git a/main.svg b/main.svg index 8f28eee..3885fdb 100644 --- a/main.svg +++ b/main.svg @@ -25,40 +25,30 @@ - - - - - + + + + - -
- Instructions
- Scan the QR code above and paste the contents into the address bar of a web browser like Firefox, Chrome, or Edge to get started
-
-
- - ./readme.html + ./main.svg ./build.sh - ./main.svg + ./instructions.svg ./clean.sh ./c1.svg
- - - - + + + + ./c2.svg ./c3.svg ./c4.svg - - Using QRnZine v0.2 For Self-replication - https://github.com/mlaga97/QRnZine - + + diff --git a/output.pdf b/output.pdf index 38e32ed..0d4a29e 100644 Binary files a/output.pdf and b/output.pdf differ