]> git.r.bdr.sh - rbdr/blog/commitdiff
Docs update
authorRuben Beltran del Rio <redacted>
Sat, 10 Dec 2022 15:22:08 +0000 (16:22 +0100)
committerRuben Beltran del Rio <redacted>
Sat, 10 Dec 2022 15:22:08 +0000 (16:22 +0100)
README.md
bin/blog.js
example/test-blog-post/assets/example_image.png [deleted file]
example/test-blog-post/assets/ok/ok.txt [deleted file]
example/test-blog-post/test-blog-post.md [deleted file]
lib/blog.js

index 41de942a8eff1d8757a347dc90960ff30f553b2d..a598cb068d40535e103a19f080e11dc2cce937c3 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # blog
 
-Blog at unlimited.pizza -> Only 3 at a time.*
+Blog at unlimited.pizza -> Only 3 at a time.
 
 The blog is no longer 100% ephemeral. Instead it now keeps an archive
 in a separate folder. The archive is intended to be used as a gemlog.
@@ -11,36 +11,62 @@ in a separate folder. The archive is intended to be used as a gemlog.
 
 ## How to add a new entry
 
-Create a directory with a `.gmi` gemini file, and an `/assets`
-directory with anything you want in there. This can be in any directory.
-
-```
-.
-└── this-is-an-example-post
-    ├── assets
-    │   └── example.wav
-    └── this-is-an-example-post.md
-```
+Create a `.gmi` gemini file.
 
 You can add this to the blog using the following command, it will shift
 all entries and remove the oldest one if limit of posts is reached
 (defualts to 3):
 
-`blog --add path/to/blog_post`
+```
+blog --add path/to/blog_post.gmi
+```
 
 These commands will regenerate the static files. At that point you can
 preview your blog by serving the files on the `static` directory.
 
 If you need to make corrections use:
 
-`blog --update path/to/blog_post`
+```
+blog --update path/to/blog_post.gmi
+```
 
 This will replace the latest with the contents of the `path` without
 shifting the existing entries.
 
-`blog --publish <bucket>`
+You can always regenerate the static files by using
 
-Will publish the blog to the mentioned s3 bucket.
+```
+blog --generate
+```
+
+To publish the blog, you can select an s3 bucket and run it with:
+
+```
+blog --publish <bucket>
+```
+
+You can also publish the archive of posts as a gemlog, by passing a valid
+rsync target
+
+```
+blog --publish-archive <rsync_target>
+```
+
+Blog supports saving snapshots of the blog in git, and you can add and remove
+remotes with the following commands:
+
+```
+blog --add-remote <git_url>
+blog --remove-remote
+```
+
+If a remote is present, it will be pulled before adding or updating, and pushed
+after it finishes. You can manually trigger this by calling
+
+```
+blog --sync-up
+blog --sync-down
+```
 
 ## Configuring
 
index dc256ee7d05021ae2c4266ed322f6dc1e51c3b6f..a9e2d1eb380d860aa55272d93f84f8351d9b677c 100755 (executable)
@@ -121,8 +121,8 @@ const internals = {
   _printUsage() {
 
     console.error('\nUsage:\n');
-    console.error('blog --add path/to/blog_post\t\t(creates new blog post)');
-    console.error('blog --update path/to/blog_post\t\t(updates latest blog post)');
+    console.error('blog --add <path_to_post>\t\t(creates new blog post)');
+    console.error('blog --update <path_to_post>\t\t(updates latest blog post)');
     console.error('blog --generate \t\t\t(generates the blog assets)');
     console.error('blog --publish <bucket> \t\t(publishes the blog to an S3 bucket)');
     console.error('blog --publish-archive <destination> \t(publishes the archive to a remote host)');
diff --git a/example/test-blog-post/assets/example_image.png b/example/test-blog-post/assets/example_image.png
deleted file mode 100644 (file)
index 672e3a1..0000000
Binary files a/example/test-blog-post/assets/example_image.png and /dev/null differ
diff --git a/example/test-blog-post/assets/ok/ok.txt b/example/test-blog-post/assets/ok/ok.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/example/test-blog-post/test-blog-post.md b/example/test-blog-post/test-blog-post.md
deleted file mode 100644 (file)
index 88209ea..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# This is the title of another entry
-
-An entry will have paragraphs, these paragraphs will contain text. The
-text should be formatted correctly: visitors will want to read whatever
-is in the blog, so it should be readable. It should account for several
-types of tags, like **strong**, or *emphasised*. It should even support
-[links](/)
-
-An entry will have paragraphs, these paragraphs will contain text. The
-text should be formatted correctly: visitors will want to read whatever
-is in the blog, so it should be readable. It should account for several
-types of tags, like **strong**, or *emphasised*. It
-should even support [links](/)
-
-An entry will have paragraphs, these paragraphs will contain text. The
-text should be formatted correctly: visitors will want to read whatever
-is in the blog, so it should be readable. It should account for several
-types of tags, like **strong**, or *emphasised*. It
-should even support [links](/)
-
-## Subheading 1 (h2)
-
-An entry will have paragraphs, these paragraphs will contain text. The
-text should be formatted correctly: visitors will want to read whatever
-is in the blog, so it should be readable. It should account for several
-types of tags, like **strong**, or *emphasised*. It
-should even support [links](/)
-
-* There will be **lists**
-* Lists will have *tags*
-* And everything else [in the world](/)
-
-An entry will have paragraphs, these paragraphs will contain text. The
-text should be formatted correctly: visitors will want to read whatever
-is in the blog, so it should be readable. It should account for several
-types of tags, like **strong**, or *emphasised*. It
-should even support [links](/)
-
-![Picture: two persons in a ceremony][example-image]
-
-### Other types of subheadings, other types of lists (h3)
-
-1. There will be **lists**
-2. Lists will have *tags*
-3. And everything else [in the world](/)
-
-An entry will have paragraphs, these paragraphs will contain text. The
-text should be formatted correctly: visitors will want to read whatever
-is in the blog, so it should be readable. It should account for several
-types of tags, like **strong**, or *emphasised*. It
-should even support [links](/)
-
-#### Finally there are hfours (h4)
-
-And that's about it!
-
-[example-image]: /assets/example_image.png
index fd5adaf96a1dc367ab9008aa215831fad260fc05..6923a10b3b649c845e0ae8386fa690fff498f57b 100644 (file)
@@ -59,13 +59,12 @@ module.exports = class Blog {
   }
 
   /**
-   * Shifts the blog posts, adds the passed path to slot 0, and
+   * Shifts the blog posts, adds the passed file to slot 0, and
    * generates files.
    *
    * @function add
    * @memberof Blog
-   * @param {string} postLocation the path to the directory containing
-   * the post structure
+   * @param {string} postLocation the path to the blog post file
    * @return {Promise<undefined>} empty promise, returns no value
    * @instance
    */
@@ -84,12 +83,11 @@ module.exports = class Blog {
   }
 
   /**
-   * Adds the passed path to slot 0, and generates files.
+   * Update slot 0 with the passed gmi file, and generates files.
    *
    * @function update
    * @memberof Blog
-   * @param {string} postLocation the path to the directory containing
-   * the post structure
+   * @param {string} postLocation the path to the blog post file
    * @return {Promise<undefined>} empty promise, returns no value
    * @instance
    */
@@ -380,18 +378,17 @@ module.exports = class Blog {
     await writeFile(metadataTarget, JSON.stringify(metadata, null, 2));
   }
 
-  // Copies a post directory to the latest slot.
+  // Copies a post file to the latest slot.
 
   async _copyPost(postLocation) {
 
+    internals.debuglog(`Copying ${postLocation}`);
     const targetPath = join(this.postsDirectory, '0');
     const postName = basename(postLocation);
     const targetPost = join(targetPath, postName);
 
-    internals.debuglog(`Removing ${targetPath}`);
     await rmIfExists(targetPath);
     await ensureDirectoryExists(targetPath);
-    internals.debuglog(`Adding ${postLocation} to ${targetPost}`);
     await cp(postLocation, targetPost, { recursive: true });
     internals.debuglog(`Added ${postLocation} to ${targetPath}`);
   }