fossbook 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +246 -0
  2. package/bin/fossbook.js +119 -0
  3. package/lib/all_posts.js +32 -0
  4. package/lib/assets/placeholder.svg +4 -0
  5. package/lib/deploy.js +202 -0
  6. package/lib/home.js +59 -0
  7. package/lib/index.js +79 -0
  8. package/lib/init.js +253 -0
  9. package/lib/mod/config.js +98 -0
  10. package/lib/mod/marked.js +95 -0
  11. package/lib/mod/page.js +115 -0
  12. package/lib/mod/page_base.js +97 -0
  13. package/lib/new.js +48 -0
  14. package/lib/posts.js +42 -0
  15. package/lib/server.js +14 -0
  16. package/lib/tag/index.js +69 -0
  17. package/lib/tag/tag.js +29 -0
  18. package/package.json +45 -0
  19. package/themes/archie/assets/fonts/ComicNeue-Bold.ttf +0 -0
  20. package/themes/archie/assets/fonts/ComicNeue-BoldItalic.ttf +0 -0
  21. package/themes/archie/assets/fonts/ComicNeue-Italic.ttf +0 -0
  22. package/themes/archie/assets/fonts/ComicNeue-Light.ttf +0 -0
  23. package/themes/archie/assets/fonts/ComicNeue-LightItalic.ttf +0 -0
  24. package/themes/archie/assets/fonts/ComicNeue-Regular.ttf +0 -0
  25. package/themes/archie/assets/fonts/LyonDisplay-Bold.otf +0 -0
  26. package/themes/archie/assets/fonts/OFL.txt +93 -0
  27. package/themes/archie/assets/fonts/fira-sans-v10-latin-regular.eot +0 -0
  28. package/themes/archie/assets/fonts/fira-sans-v10-latin-regular.svg +330 -0
  29. package/themes/archie/assets/fonts/fira-sans-v10-latin-regular.ttf +0 -0
  30. package/themes/archie/assets/fonts/fira-sans-v10-latin-regular.woff +0 -0
  31. package/themes/archie/assets/fonts/fira-sans-v10-latin-regular.woff2 +0 -0
  32. package/themes/archie/assets/fonts/ibm-plex-mono-v6-latin-500italic.eot +0 -0
  33. package/themes/archie/assets/fonts/ibm-plex-mono-v6-latin-500italic.svg +365 -0
  34. package/themes/archie/assets/fonts/ibm-plex-mono-v6-latin-500italic.ttf +0 -0
  35. package/themes/archie/assets/fonts/ibm-plex-mono-v6-latin-500italic.woff +0 -0
  36. package/themes/archie/assets/fonts/ibm-plex-mono-v6-latin-500italic.woff2 +0 -0
  37. package/themes/archie/assets/fonts/roboto-mono-v12-latin-regular.eot +0 -0
  38. package/themes/archie/assets/fonts/roboto-mono-v12-latin-regular.svg +405 -0
  39. package/themes/archie/assets/fonts/roboto-mono-v12-latin-regular.ttf +0 -0
  40. package/themes/archie/assets/fonts/roboto-mono-v12-latin-regular.woff +0 -0
  41. package/themes/archie/assets/fonts/roboto-mono-v12-latin-regular.woff2 +0 -0
  42. package/themes/archie/assets/images/node-ssg-1.png +0 -0
  43. package/themes/archie/assets/images/node-ssg-2.png +0 -0
  44. package/themes/archie/assets/styles/fonts.css +51 -0
  45. package/themes/archie/assets/styles/highlights.css +75 -0
  46. package/themes/archie/assets/styles/main.css +402 -0
  47. package/themes/archie/layouts/all_posts.html +42 -0
  48. package/themes/archie/layouts/home.html +62 -0
  49. package/themes/archie/layouts/page.html +50 -0
  50. package/themes/archie/layouts/partials/footer.html +10 -0
  51. package/themes/archie/layouts/post.html +82 -0
  52. package/themes/archie/layouts/tag.html +43 -0
  53. package/themes/archie/layouts/tag_list.html +44 -0
@@ -0,0 +1,82 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <link rel="preconnect" href="https://fonts.googleapis.com">
7
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
8
+ <link href="https://fonts.googleapis.com/css2?family=Comic+Neue:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&family=Nanum+Pen+Script&family=Playpen+Sans:wght@100..800&display=swap" rel="stylesheet">
9
+ <link rel="stylesheet" href="../styles/fonts.css">
10
+ <link rel="stylesheet" href="../styles/main.css">
11
+ <link rel="icon" type="image/png" href="../images/favicon.png">
12
+ <!-- Google tag (gtag.js) -->
13
+ ${page.config.googleAnalyticsID ? page.googleAnalytics(page.config.googleAnalyticsID) : ""}
14
+ <title>${page.title}</title>
15
+ <meta name="description" content="${page.description}" />
16
+
17
+ ${page.openGraph(
18
+ "article",
19
+ {
20
+ authorName: page.config.authorName,
21
+ publishedDate: page.date,
22
+ tags: page.tags,
23
+ },
24
+ )}
25
+
26
+ ${page.twitterCard("summary")}
27
+ </head>
28
+ <body>
29
+ <div class="content">
30
+ <header>
31
+ <div class="main">
32
+ ${page.config.blogName}
33
+ </div>
34
+ <nav class="site-navigation">
35
+ <a href="/">Home</a>
36
+ <a href="/all_posts">All posts</a>
37
+ <a href="/about">About</a>
38
+ <a href="/tags">Tags</a>
39
+ </nav>
40
+ </header>
41
+ <main>
42
+ <article class="content">
43
+ <div class="title">
44
+ <h1 class="title">${page.title}</h1>
45
+ <div class="meta">Posted on ${page.formatDate(new Date(page.date))}</div>
46
+ </div>
47
+ <section class="body">
48
+ ${page.body}
49
+ </section>
50
+ <div class="post-tags">
51
+ <nav class="nav tags">
52
+ <ul class="tags">
53
+ ${page.tags.map((tag) => `<li><a href="/tags/${tag.replace(/\s+/g, "_")}">${tag}</a></li>`).join("")}
54
+ </ul>
55
+ </nav>
56
+ </div>
57
+ </article>
58
+ <ul class="pagination-post" role="navigation">
59
+ <span class="page-item page-prev">
60
+ ${page.previous ? `<a href="../${page.previous.path}" class="page-link" aria-label="Previous">← ${page.previous.title}</a>` : ""}
61
+ </span>
62
+ <span class="page-item page-next">
63
+ ${page.next ? `<a href="../${page.next.path}" class="page-link" aria-label="Next">${page.next.title} →</a>` : ""}
64
+ </span>
65
+ </ul>
66
+ ${page.config.comments && page.config.comments.provider === 'utterances' ? `<div class="comments border">
67
+ <script src="https://utteranc.es/client.js"
68
+ repo="${page.config.comments.repo}"
69
+ issue-term="${page.config.comments.issueTerm || 'pathname'}"
70
+ theme="${page.config.comments.theme || 'github-light'}"
71
+ crossorigin="anonymous"
72
+ async>
73
+ </script>
74
+ </div>` : ''}
75
+ </main>
76
+
77
+ <footer>
78
+ ${page.footer()}
79
+ </footer>
80
+ </div>
81
+ </body>
82
+ </html>
@@ -0,0 +1,43 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <meta name="description" content="${page.config.blogDescription}" />
7
+ <link rel="stylesheet" href="../../styles/fonts.css">
8
+ <link rel="stylesheet" href="../../styles/main.css">
9
+ <link rel="icon" type="image/png" href="../images/favicon.png">
10
+ <!-- Google tag (gtag.js) -->
11
+ ${page.config.googleAnalyticsID ? page.googleAnalytics(page.config.googleAnalyticsID) : ""}
12
+ <title>${page.config.blogName}: Entries tagged - ${data.tag}</title>
13
+ ${page.openGraph("website")}
14
+ </head>
15
+ <body>
16
+ <div class="content">
17
+ <header>
18
+ <div class="main">${page.config.blogName}</div>
19
+ <nav>
20
+ <a href="/">Home</a>
21
+ <a href="/all_posts">All posts</a>
22
+ <a href="/about">About</a>
23
+ <a href="/tags">Tags</a>
24
+ </nav>
25
+ </header>
26
+ <h1 class="page-title">Entries tagged - "${data.tag}"</h1>
27
+ <ul class="posts">
28
+
29
+ ${data.posts
30
+ .map(
31
+ (post) => `<li class="post">
32
+ <a href="/${post.path}">${post.title}</a><span class="meta">
33
+ ${new Date(post.date).toDateString()}</span>
34
+ </li>`,
35
+ )
36
+ .join("")}
37
+ </ul>
38
+ <footer>
39
+ ${page.footer()}
40
+ </footer>
41
+ </div>
42
+ </body>
43
+ </html>
@@ -0,0 +1,44 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <meta name="description" content="${page.config.blogDescription}" />
7
+ <link rel="stylesheet" href="../styles/fonts.css">
8
+ <link rel="stylesheet" href="../styles/main.css">
9
+ <link rel="icon" type="image/png" href="../images/favicon.png">
10
+
11
+ <!-- Google tag (gtag.js) -->
12
+ ${page.config.googleAnalyticsID ? page.googleAnalytics(page.config.googleAnalyticsID) : ""}
13
+ <title>${page.config.blogName}: ${data.pageTitle}</title>
14
+ ${page.openGraph("website")}
15
+ </head>
16
+ <body>
17
+ <div class="content">
18
+ <header>
19
+ <div class="main">${page.config.blogName}</div>
20
+ <nav>
21
+ <a href="/">Home</a>
22
+ <a href="/all_posts">All posts</a>
23
+ <a href="/about">About</a>
24
+ Tags
25
+ </nav>
26
+ </header>
27
+ <h1 class="page-title">${data.pageTitle}</h1>
28
+ <div class="tag-cloud">
29
+ <ul class="tags">
30
+ ${data.tags
31
+ .map(
32
+ (tag) => `<li class="post">
33
+ <a href="${tag.path}">${tag.name}(${tag.count})</a>
34
+ </li>`,
35
+ )
36
+ .join("")}
37
+ </ul>
38
+ </div>
39
+ <footer>
40
+ ${page.footer()}
41
+ </footer>
42
+ </div>
43
+ </body>
44
+ </html>