blazed-past-us 0.6.7 → 0.7.3

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.
package/README.md CHANGED
@@ -6,7 +6,9 @@
6
6
 
7
7
  # Blazed Past Us..
8
8
 
9
- A static blog framework that lets you write content in Markdown directly from your IDE.
9
+ A static blog framework made for developers that allows content to be written in Markdown directly from the IDE. Plus it's fast.
10
+
11
+ ## Commit 0
10
12
 
11
13
  **Silver Surfer asked:**
12
14
  _"How fast can a dev blog go?"_
@@ -32,10 +34,14 @@ _"Very well… let the cosmos bear witness."_
32
34
  - There is no need to add the title within the .md file, this will be set by the meta data.
33
35
  - Post tags are written in every post on the very top as `tag1, tag2,...`
34
36
  - The descriptions of the posts will be a brief showcase of the first paragraph (below the tags).
37
+ - Add svg images by dropping the svg file within the directory `src/assets/svgs/` and using the following Markdown native syntax `![whatever](filename.svg)`
35
38
 
36
39
  ## Useful notes
37
40
 
38
41
  - Append `/#/?tags=` to the base URL to filter home page posts by tag.
42
+ - Posts creation dates are persisted.
43
+ - The creation date is not updated when editing a post.
44
+ - The posts titles are used as the identifiers (slugs).
39
45
 
40
46
  ## Installation
41
47
 
@@ -56,3 +62,53 @@ npm i
56
62
  ```
57
63
  npm run dev
58
64
  ```
65
+
66
+ ### For final build:
67
+
68
+ ```
69
+ npm run build
70
+ ```
71
+
72
+ ## Action that works for deploying to Github pages
73
+
74
+ ```
75
+ name: deploy to Github pages
76
+
77
+ on:
78
+ push:
79
+ branches:
80
+ - main
81
+
82
+ permissions:
83
+ contents: read
84
+ pages: write
85
+ id-token: write
86
+ deployments: write
87
+
88
+ jobs:
89
+ build-deploy:
90
+ runs-on: ubuntu-latest
91
+ steps:
92
+ - uses: actions/checkout@v4
93
+
94
+ - uses: actions/setup-node@v4
95
+ with:
96
+ node-version: 24
97
+
98
+ - run: npm install
99
+ - run: npm run build
100
+
101
+ - uses: actions/upload-pages-artifact@v3
102
+ with:
103
+ path: ./dist
104
+
105
+ - uses: actions/deploy-pages@v4
106
+
107
+ - name: Create Deployment Record
108
+ uses: chrnorm/deployment-action@v2
109
+ with:
110
+ token: ${{ secrets.GITHUB_TOKEN }}
111
+ environment: github-pages
112
+ environment-url: https://{you-username-here}.github.io/
113
+ ref: main
114
+ ```
Binary file
@@ -1,13 +1,20 @@
1
+ import { appendPageLoader, removePageLoader } from './utils';
1
2
  async function fetchResources(config) {
3
+ appendPageLoader();
4
+ let resources;
2
5
  try {
3
6
  const postsMetadata = await fetchPostsMetaData(config);
4
7
  const postsHTML = await fetchAllPostsHTML(config.base_url, postsMetadata);
5
- return { postsMetadata, postsHTML };
8
+ resources = { postsMetadata, postsHTML };
6
9
  }
7
10
  catch (error) {
8
11
  console.log(`Failed to fetch resources.`);
9
12
  console.error(error);
10
13
  }
14
+ finally {
15
+ removePageLoader();
16
+ return resources;
17
+ }
11
18
  }
12
19
  async function fetchAllPostsHTML(baseURL, postsMetadata) {
13
20
  const allPostsFilename = postsMetadata.map((el) => ({
@@ -5,4 +5,6 @@ declare function inject(root: HTMLElement, html: string): void;
5
5
  declare function activateBoltRotator(): void;
6
6
  declare function setTitleAndSubtitle(packageName: string, config: Config): void;
7
7
  declare function filterByUrlQueryIfPresent(postsMetadata: PostMetadata[], tags: string[]): PostMetadata[];
8
- export { postExists, beautifyDate, inject, activateBoltRotator, setTitleAndSubtitle, filterByUrlQueryIfPresent, };
8
+ declare function appendPageLoader(): void;
9
+ declare function removePageLoader(): void;
10
+ export { postExists, beautifyDate, inject, activateBoltRotator, setTitleAndSubtitle, filterByUrlQueryIfPresent, appendPageLoader, removePageLoader, };
@@ -36,4 +36,13 @@ function setTitleAndSubtitle(packageName, config) {
36
36
  function filterByUrlQueryIfPresent(postsMetadata, tags) {
37
37
  return postsMetadata.filter((post) => tags ? tags.some((tag) => post.tags.includes(tag)) : true);
38
38
  }
39
- export { postExists, beautifyDate, inject, activateBoltRotator, setTitleAndSubtitle, filterByUrlQueryIfPresent, };
39
+ function appendPageLoader() {
40
+ const htmlElement = document.createElement('div');
41
+ htmlElement.id = 'loader';
42
+ htmlElement.innerHTML = '<div class="spinner"></div>';
43
+ document.body.appendChild(htmlElement);
44
+ }
45
+ function removePageLoader() {
46
+ document.getElementById('loader')?.remove();
47
+ }
48
+ export { postExists, beautifyDate, inject, activateBoltRotator, setTitleAndSubtitle, filterByUrlQueryIfPresent, appendPageLoader, removePageLoader, };
@@ -7,6 +7,8 @@ import rehypePrettyCode from 'rehype-pretty-code';
7
7
  import rehypeStringify from 'rehype-stringify';
8
8
  import path from 'node:path';
9
9
  import { getColoredTagsHTML } from '../runtime/getters.js';
10
+ import { remarkInlineSvg } from './server-utils.js';
11
+ import rehypeRaw from 'rehype-raw';
10
12
  /**
11
13
  * Converts a Markdown file to HTML with syntax highlighting.
12
14
  *
@@ -18,11 +20,13 @@ async function parseMarkdown(_path) {
18
20
  const markdown = await readFile(_path, { encoding: 'utf8' });
19
21
  const remarkResult = await remark()
20
22
  .use(remarkParse)
21
- .use(remarkRehype)
23
+ .use(remarkInlineSvg)
24
+ .use(remarkRehype, { allowDangerousHtml: true })
22
25
  .use(rehypePrettyCode, {
23
26
  theme: JSON.parse(readFileSync(path.join(root, 'src/code-block-theme.json'), 'utf-8')),
24
27
  keepBackground: false,
25
28
  })
29
+ .use(rehypeRaw)
26
30
  .use(rehypeStringify)
27
31
  .process(markdown);
28
32
  const result = await customizeHTML(root, remarkResult.value);
@@ -1,7 +1,10 @@
1
1
  import { MsgColor, PostsPaths, PostsRegistry } from '../types';
2
+ import type { Plugin } from 'unified';
3
+ import type { Root } from 'mdast';
2
4
  declare function postNotInRegistry(registry: PostsRegistry | [] | void, slug: string): boolean;
3
5
  declare function handlePostsRegistryUpdate(postsRegistry: PostsRegistry | void, paths: PostsPaths): void;
4
6
  declare function getPostsRegistry(postsDirectoryPath: string): Promise<void | PostsRegistry>;
5
7
  declare function copyRecursive(src: string, destination: string): void;
6
8
  declare function log(msg: string, color: MsgColor): void;
7
- export { postNotInRegistry, handlePostsRegistryUpdate, getPostsRegistry, copyRecursive, log, };
9
+ declare const remarkInlineSvg: Plugin<[], Root, Root>;
10
+ export { postNotInRegistry, handlePostsRegistryUpdate, getPostsRegistry, copyRecursive, log, remarkInlineSvg, };
@@ -3,6 +3,7 @@ import fsPromises from 'node:fs/promises';
3
3
  import fs from 'node:fs';
4
4
  import chalk from 'chalk';
5
5
  import pkg from '../../package.json' with { type: 'json' };
6
+ import { visit } from 'unist-util-visit';
6
7
  function postNotInRegistry(registry, slug) {
7
8
  return !registry?.some((p) => p.slug === slug);
8
9
  }
@@ -70,4 +71,26 @@ function log(msg, color) {
70
71
  }
71
72
  console.log(`${chalk.blue(pkg.name + ' v' + pkg.version)} ${coloredMsg}`);
72
73
  }
73
- export { postNotInRegistry, handlePostsRegistryUpdate, getPostsRegistry, copyRecursive, log, };
74
+ const remarkInlineSvg = function () {
75
+ const baseDirectory = process.cwd();
76
+ return function transformer(tree) {
77
+ visit(tree, 'image', (node, index, parent) => {
78
+ if (!node.url?.endsWith('.svg'))
79
+ return;
80
+ if (index === undefined || !parent)
81
+ return;
82
+ try {
83
+ const svgPath = path.resolve(baseDirectory, `./src/assets/svgs/${node.url}`);
84
+ const svgContent = fs.readFileSync(svgPath, 'utf8');
85
+ parent.children[index] = {
86
+ type: 'html',
87
+ value: `<div align="center">${svgContent}</div>`,
88
+ };
89
+ }
90
+ catch (error) {
91
+ console.warn(error);
92
+ }
93
+ });
94
+ };
95
+ };
96
+ export { postNotInRegistry, handlePostsRegistryUpdate, getPostsRegistry, copyRecursive, log, remarkInlineSvg, };
@@ -7,21 +7,31 @@
7
7
  <link rel="icon" type="image/svg+xml" href="./src/assets/favicon.svg" />
8
8
  </head>
9
9
  <body>
10
- <header>
11
- <div class="logo">
12
- <div class="bolt-wrapper" id="bolt">
13
- <div class="top"></div>
14
- <div class="bottom"></div>
15
- </div>
16
- </div>
17
- <div>
18
- <div class="top">
19
- <a class="title" href="#/"></a>
20
- <div class="subtitle"></div>
21
- </div>
22
- </div>
23
- </header>
24
- <div id="root"></div>
10
+ <div class="col-flexbox">
11
+ <section>
12
+ <header>
13
+ <div class="logo">
14
+ <div class="bolt-wrapper" id="bolt">
15
+ <div class="top"></div>
16
+ <div class="bottom"></div>
17
+ </div>
18
+ </div>
19
+ <div>
20
+ <div class="top">
21
+ <a class="title" href="#/"></a>
22
+ <div class="subtitle"></div>
23
+ </div>
24
+ </div>
25
+ </header>
26
+ <main>
27
+ <div id="root"></div>
28
+ </main>
29
+ </section>
30
+ <footer>
31
+ <span>Powered by </span><span>⚡</span>
32
+ <a href="https://github.com/gass-git/blazed-past-us"> blazed-past-us </a>
33
+ </footer>
34
+ </div>
25
35
  <script type="module" src="./src/main.js"></script>
26
36
  <script type="module" src="./src/stars.js"></script>
27
37
  </body>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 357.95009768213015 246.00023368232814" width="357.95009768213015" height="246.00023368232814"><!-- svg-source:excalidraw --><metadata></metadata><defs><style class="style-fonts">
4
+ @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,d09GMgABAAAAAANYAA4AAAAABjQAAAMFAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbgQAcNAZgADQRCAqDGIJVCwgAATYCJAMMBCAFgxgHIBv4BFFUMALIfh7YDc6GCLMXWvVbhkDAcCoccfxOnijj4fu113Pvvg2QigRUwJ5YxjGouPhMjIUKVeM7vroVvrJ/N9Y28JB9mGt/U8RDoUaOkGmR4feXZ+zdn+lEJxlJjiDb1iw5O1j+/iY/+yCt8ynaVhsbpEsgHUsswTTQR9YAD2wBdQFZnLoNFl6daYiYHsY5FpubC/QAQkghBLrMq9Nvbk+3YLl+O8tguX9lJLC8XF5VsNDD3yg8355VMDM4RcpDhzSwg1leWhWmIWGvdje1KK3myIB+gJd0jlK1jszPgQONiTNpf7SGmTYPB3P4ukRWCa18dZUQCSPgE+IjB0aYkajQTyck1xsBCoR/dUVy2QD/EoBoGomFoA0F75R/Dgog5VIwmyjk0rkvWV1dX12fDbUczFcDzRMLXKq6qthAF6hyqdoDQwBUVrJ1qlZXV9ezWPWuu7uuBWLbest82S2szl3hzp1BemX6AlZc9133+dwaDoRqamqgGmIBT+Mu+67LgNo6scBiao+7brRXfNf1QKhhSbSbkG9dWQkqq7Kq8HfA6hLmxoBdtCjy0M4FSMIlTeakgwXLzKl2WHpEvfqOt1cxZAsJerEXUexQf2qpwF7TZWHlPpaBmFG0s6EP/QCeFmKOTMIqW6KUKtwnolARnDACMdhMwlIW7w13Ssc4c4F3Mog8pdcQuD9rag43tRBpnyX8yGtezydrL6gelVdjrazg4UpbT9lYd6ab/T43I2yHnzc9d9mme2oCCARPv9Zy/aja/zqIyEf48za5Cfj74yW1eW+lluci0CFB8OKkZiTk//+AgLWrKlAv9flTSo4Gld/aQCIEVgGg3RGdKHgYL36bD/0+fOrzk69MevPFBJKvLfPO0WYC2PJEIcgErAPVVcwag3MjI5ztMc4uhCyPUuKS840rBmQvR7wLlBGXhoIy0tIKQuUK2C6b3rUxMFex2tGfuh099ejlTMDhXaEgSghKS0rLQqQXdI+knREe4lCLTIa+fzlcRsDc6o5Bi9MBTUuNAA==); }</style></defs><g stroke-linecap="round" transform="translate(10 18.000233682328144) rotate(0 109 109)"><path d="M129 2.46 C141.49 2.86, 155.12 9.37, 166.31 15.99 C177.5 22.61, 188.14 31.78, 196.14 42.18 C204.14 52.57, 210.8 65.57, 214.3 78.35 C217.8 91.13, 218.37 105.64, 217.15 118.88 C215.93 132.12, 212.65 146.03, 206.98 157.77 C201.32 169.51, 192.83 180.49, 183.17 189.33 C173.5 198.17, 161.14 205.88, 149 210.81 C136.87 215.75, 123.51 219.03, 110.37 218.92 C97.22 218.81, 82.44 214.83, 70.13 210.16 C57.82 205.49, 46.29 199.73, 36.52 190.9 C26.74 182.07, 17.38 168.95, 11.46 157.18 C5.54 145.4, 2.26 133.12, 1.01 120.26 C-0.23 107.39, 0.69 92.69, 3.99 79.99 C7.29 67.29, 13.04 54.53, 20.82 44.06 C28.6 33.58, 39.33 24.11, 50.66 17.15 C61.99 10.19, 74.64 4.51, 88.81 2.29 C102.98 0.08, 126.81 3.12, 135.7 3.87 C144.59 4.61, 142.45 5.1, 142.15 6.76 M95.04 -0.63 C107.19 -3.89, 121.64 0.4, 134.72 3.71 C147.79 7.02, 162.76 11.44, 173.5 19.23 C184.23 27.02, 191.89 39.36, 199.14 50.46 C206.39 61.55, 213.95 73.1, 216.97 85.81 C220 98.52, 219.7 113.86, 217.31 126.71 C214.91 139.55, 209.08 151.39, 202.6 162.87 C196.12 174.35, 188.68 187.23, 178.42 195.61 C168.17 203.98, 153.97 209.61, 141.08 213.12 C128.18 216.63, 113.86 217.6, 101.07 216.65 C88.27 215.7, 75.93 212.64, 64.33 207.4 C52.72 202.16, 40.69 194.78, 31.42 185.23 C22.16 175.67, 14.18 162.25, 8.74 150.06 C3.3 137.87, -0.71 125.14, -1.2 112.06 C-1.7 98.99, 1.2 83.93, 5.76 71.62 C10.32 59.31, 17.47 47.93, 26.18 38.2 C34.88 28.48, 46.55 19.61, 58 13.28 C69.46 6.95, 88.57 2.09, 94.89 0.22 C101.21 -1.64, 95.44 0.39, 95.93 2.08" stroke="#f08c00" stroke-width="2" fill="none"></path></g><g stroke-linecap="round" transform="translate(134.95000094516172 9.999907601022073) rotate(0.24911051515289181 106.5 111.50010869411113)"><path d="M122.38 1.52 C134.72 1.65, 147.78 8.56, 158.81 14.99 C169.84 21.42, 180.31 29.8, 188.58 40.09 C196.85 50.37, 204.43 63.94, 208.44 76.72 C212.44 89.51, 213.31 103.45, 212.61 116.78 C211.9 130.11, 209.57 144.47, 204.19 156.69 C198.81 168.92, 189.5 180.47, 180.31 190.13 C171.12 199.79, 160.75 209.3, 149.03 214.66 C137.31 220.03, 122.68 221.77, 109.98 222.32 C97.28 222.86, 84.89 222.1, 72.85 217.91 C60.81 213.72, 47.63 206.07, 37.74 197.19 C27.85 188.31, 19.77 176.32, 13.53 164.62 C7.29 152.92, 1.9 140.3, 0.31 126.99 C-1.28 113.67, 0.86 98.03, 4 84.74 C7.15 71.44, 12.15 58.03, 19.18 47.21 C26.22 36.4, 35.65 27.14, 46.21 19.84 C56.77 12.53, 69.38 6.38, 82.55 3.37 C95.72 0.37, 117.91 1.79, 125.24 1.83 C132.58 1.87, 126.91 1.85, 126.54 3.59 M76.86 4.95 C87.96 -0.45, 101.8 -1.08, 114.48 -0.16 C127.17 0.75, 141.19 4.66, 152.99 10.44 C164.78 16.23, 176.59 24.6, 185.24 34.55 C193.89 44.49, 200.3 57.32, 204.89 70.11 C209.49 82.91, 212.73 97.87, 212.81 111.33 C212.9 124.78, 209.76 138.55, 205.4 150.83 C201.04 163.12, 194.9 175.1, 186.65 185.04 C178.39 194.98, 167.59 204.15, 155.86 210.48 C144.14 216.81, 129.37 221.44, 116.27 223.01 C103.18 224.58, 89.71 223.47, 77.31 219.9 C64.9 216.32, 51.83 209.86, 41.85 201.58 C31.87 193.3, 24.33 181.49, 17.43 170.23 C10.54 158.96, 2.93 146.86, 0.49 134 C-1.96 121.14, 0.35 106.65, 2.78 93.09 C5.2 79.53, 8.35 64.22, 15.03 52.62 C21.71 41.03, 32.54 31.39, 42.85 23.5 C53.16 15.62, 71.39 8.3, 76.88 5.31 C82.38 2.32, 75.46 4.16, 75.82 5.56" stroke="#f08c00" stroke-width="2" fill="none"></path></g><g transform="translate(59 103.00023368232814) rotate(0 10.367996215820312 22.5)"><text x="0" y="31.716" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="36px" fill="#f08c00" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">a</text></g><g transform="translate(267.99998534996735 105.00697272916437) rotate(0.24911051515289181 9.989997863769531 22.49999999999997)"><text x="0" y="31.716" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="36px" fill="#f08c00" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">b</text></g><g transform="translate(171 201.00023368232814) rotate(0 20 -6.5)" stroke="none"><path fill="#f08c00" d="M -1.26,-4.42 Q -1.26,-4.42 2.82,-5.34 6.91,-6.26 11.33,-7.15 15.74,-8.04 19.11,-9.26 22.48,-10.48 25.53,-11.46 28.58,-12.45 31.07,-13.46 33.56,-14.48 36.02,-16.00 38.49,-17.53 39.25,-17.65 40.02,-17.77 40.78,-17.64 41.54,-17.51 42.22,-17.15 42.90,-16.78 43.43,-16.22 43.96,-15.66 44.28,-14.95 44.60,-14.25 44.68,-13.48 44.76,-12.72 44.59,-11.96 44.42,-11.21 44.02,-10.55 43.62,-9.89 43.03,-9.39 42.44,-8.89 41.72,-8.61 41.00,-8.33 40.23,-8.29 39.46,-8.25 38.71,-8.46 37.97,-8.67 37.33,-9.11 36.70,-9.54 36.23,-10.16 35.77,-10.78 35.52,-11.51 35.28,-12.24 35.28,-13.02 35.29,-13.79 35.54,-14.52 35.79,-15.25 36.26,-15.86 36.73,-16.48 37.37,-16.91 38.01,-17.34 38.76,-17.54 39.50,-17.74 40.27,-17.70 41.04,-17.65 41.76,-17.36 42.48,-17.07 43.06,-16.57 43.65,-16.07 44.04,-15.40 44.44,-14.74 44.60,-13.99 44.76,-13.23 44.68,-12.46 44.59,-11.70 44.26,-11.00 43.93,-10.30 43.40,-9.74 42.87,-9.18 42.18,-8.82 41.50,-8.46 41.50,-8.46 41.50,-8.46 39.15,-7.34 36.80,-6.21 33.75,-5.62 30.70,-5.04 27.86,-4.33 25.01,-3.62 21.28,-2.22 17.54,-0.81 13.36,0.42 9.18,1.66 5.22,3.04 1.26,4.42 0.71,4.51 0.16,4.59 -0.38,4.55 -0.93,4.50 -1.46,4.32 -1.98,4.15 -2.45,3.85 -2.92,3.55 -3.30,3.15 -3.68,2.75 -3.96,2.26 -4.24,1.78 -4.39,1.25 -4.54,0.72 -4.56,0.16 -4.58,-0.38 -4.47,-0.93 -4.35,-1.47 -4.11,-1.97 -3.88,-2.47 -3.52,-2.90 -3.17,-3.33 -2.73,-3.66 -2.28,-3.99 -1.77,-4.20 -1.26,-4.42 -1.26,-4.42 L -1.26,-4.42 Z"></path></g><g transform="translate(154 179.00023368232814) rotate(0 33 -7)" stroke="none"><path fill="#f08c00" d="M -0.88,-4.42 Q -0.88,-4.42 1.98,-5.02 4.85,-5.63 7.84,-6.19 10.83,-6.74 15.84,-6.74 20.85,-6.74 25.37,-6.93 29.90,-7.11 33.24,-8.04 36.59,-8.97 39.46,-9.58 42.34,-10.20 45.19,-11.76 48.04,-13.32 50.90,-14.43 53.75,-15.55 56.48,-16.10 59.20,-16.65 61.36,-17.75 63.52,-18.85 64.36,-19.12 65.20,-19.39 66.08,-19.37 66.97,-19.36 67.80,-19.06 68.63,-18.77 69.32,-18.22 70.01,-17.68 70.50,-16.94 70.98,-16.20 71.20,-15.35 71.42,-14.49 71.36,-13.61 71.30,-12.73 70.96,-11.92 70.62,-11.11 70.04,-10.44 69.45,-9.78 68.69,-9.34 67.93,-8.90 67.06,-8.72 66.20,-8.55 65.32,-8.66 64.45,-8.77 63.65,-9.15 62.86,-9.53 62.23,-10.15 61.60,-10.77 61.20,-11.55 60.80,-12.34 60.67,-13.21 60.54,-14.09 60.70,-14.95 60.86,-15.82 61.28,-16.59 61.71,-17.37 62.36,-17.96 63.01,-18.56 63.82,-18.91 64.62,-19.27 65.50,-19.35 66.38,-19.43 67.24,-19.23 68.10,-19.02 68.85,-18.56 69.59,-18.09 70.15,-17.41 70.71,-16.73 71.03,-15.90 71.34,-15.08 71.37,-14.20 71.40,-13.31 71.15,-12.47 70.90,-11.62 70.40,-10.90 69.89,-10.18 69.18,-9.66 68.47,-9.14 68.47,-9.14 68.47,-9.14 66.38,-8.21 64.30,-7.27 61.02,-6.85 57.75,-6.42 55.65,-5.67 53.55,-4.92 50.85,-4.46 48.15,-4.00 45.89,-3.25 43.64,-2.51 41.09,-2.25 38.54,-1.99 34.54,-0.87 30.54,0.25 25.89,0.83 21.24,1.41 16.85,1.86 12.45,2.32 9.55,2.82 6.64,3.33 3.76,3.87 0.88,4.42 0.34,4.46 -0.19,4.50 -0.73,4.41 -1.27,4.32 -1.77,4.11 -2.26,3.89 -2.70,3.56 -3.13,3.23 -3.47,2.81 -3.82,2.39 -4.05,1.90 -4.28,1.41 -4.38,0.87 -4.49,0.34 -4.47,-0.19 -4.44,-0.74 -4.29,-1.26 -4.14,-1.78 -3.86,-2.25 -3.59,-2.72 -3.21,-3.11 -2.83,-3.50 -2.37,-3.79 -1.91,-4.08 -1.39,-4.25 -0.88,-4.42 -0.88,-4.42 L -0.88,-4.42 Z"></path></g><g transform="translate(145 154.00023368232814) rotate(0 41 -16.5)" stroke="none"><path fill="#f08c00" d="M 0,-4.32 Q 0,-4.32 1.70,-4.46 3.41,-4.59 8.78,-6.08 14.15,-7.58 18.04,-8.69 21.92,-9.80 25.81,-11.29 29.70,-12.78 33.07,-14.34 36.44,-15.90 38.58,-17.23 40.72,-18.57 42.64,-20.00 44.56,-21.42 46.50,-22.93 48.43,-24.43 51.36,-25.87 54.28,-27.32 57.06,-28.27 59.84,-29.23 61.76,-30.70 63.68,-32.18 65.92,-33.44 68.16,-34.70 70.74,-36.15 73.32,-37.60 77.26,-38.35 81.20,-39.10 82.20,-39.07 83.19,-39.03 84.13,-38.68 85.06,-38.34 85.83,-37.71 86.60,-37.08 87.13,-36.23 87.67,-35.39 87.90,-34.42 88.13,-33.46 88.05,-32.46 87.96,-31.47 87.56,-30.56 87.16,-29.65 86.49,-28.91 85.82,-28.17 84.95,-27.69 84.08,-27.20 83.10,-27.02 82.12,-26.84 81.14,-26.98 80.15,-27.12 79.26,-27.57 78.37,-28.02 77.67,-28.73 76.97,-29.44 76.53,-30.33 76.10,-31.23 75.97,-32.21 75.84,-33.20 76.04,-34.18 76.23,-35.16 76.73,-36.02 77.22,-36.88 77.97,-37.54 78.71,-38.20 79.63,-38.59 80.55,-38.98 81.54,-39.05 82.53,-39.13 83.50,-38.88 84.46,-38.63 85.30,-38.09 86.14,-37.55 86.76,-36.77 87.37,-35.99 87.71,-35.05 88.05,-34.12 88.07,-33.12 88.09,-32.12 87.79,-31.17 87.49,-30.22 86.91,-29.42 86.32,-28.61 85.51,-28.04 84.69,-27.46 83.74,-27.18 82.79,-26.89 82.79,-26.89 82.79,-26.89 81.64,-26.83 80.50,-26.78 78.11,-26.87 75.73,-26.97 73.43,-25.78 71.12,-24.60 69.01,-23.50 66.89,-22.40 64.76,-21.40 62.64,-20.41 60.33,-19.78 58.02,-19.14 55.75,-18.20 53.48,-17.26 51.30,-15.85 49.12,-14.45 46.78,-13.08 44.44,-11.72 41.96,-10.55 39.47,-9.39 36.03,-7.76 32.58,-6.13 28.54,-4.19 24.50,-2.25 20.55,-0.70 16.61,0.85 12.81,2.16 9.01,3.48 6.25,4.04 3.48,4.59 1.74,4.46 0,4.32 -0.51,4.26 -1.03,4.20 -1.52,4.01 -2.01,3.83 -2.44,3.53 -2.87,3.23 -3.21,2.84 -3.56,2.45 -3.80,1.99 -4.04,1.53 -4.17,1.02 -4.29,0.52 -4.29,-0.00 -4.29,-0.52 -4.17,-1.02 -4.04,-1.53 -3.80,-1.99 -3.56,-2.45 -3.21,-2.84 -2.86,-3.23 -2.44,-3.53 -2.01,-3.83 -1.52,-4.01 -1.03,-4.20 -0.51,-4.26 0.00,-4.32 0.00,-4.32 L 0,-4.32 Z"></path></g><g transform="translate(138 125.00023368232814) rotate(0 44.5 -15.5)" stroke="none"><path fill="#f08c00" d="M -0.82,-4.11 Q -0.82,-4.11 3.53,-4.76 7.88,-5.42 13.14,-6.49 18.40,-7.55 24.11,-8.83 29.81,-10.10 35.32,-11.73 40.83,-13.36 45.02,-14.36 49.22,-15.35 51.38,-16.27 53.55,-17.18 56.03,-18.58 58.51,-19.98 60.45,-21.13 62.39,-22.28 64.39,-23.64 66.40,-25.00 68.96,-26.87 71.51,-28.75 73.90,-30.25 76.29,-31.74 78.58,-32.41 80.87,-33.07 84.10,-34.77 87.34,-36.48 88.28,-36.76 89.23,-37.04 90.21,-37.00 91.20,-36.97 92.12,-36.62 93.04,-36.27 93.80,-35.65 94.57,-35.02 95.09,-34.19 95.61,-33.35 95.84,-32.39 96.07,-31.44 95.98,-30.45 95.89,-29.47 95.50,-28.57 95.10,-27.67 94.43,-26.94 93.77,-26.21 92.91,-25.74 92.05,-25.26 91.08,-25.08 90.11,-24.90 89.13,-25.04 88.16,-25.19 87.28,-25.63 86.40,-26.08 85.71,-26.78 85.02,-27.48 84.59,-28.37 84.15,-29.26 84.03,-30.24 83.91,-31.21 84.10,-32.18 84.29,-33.15 84.79,-34.00 85.28,-34.85 86.02,-35.51 86.76,-36.16 87.67,-36.54 88.58,-36.92 89.56,-36.99 90.54,-37.06 91.50,-36.82 92.45,-36.57 93.28,-36.03 94.10,-35.49 94.71,-34.72 95.33,-33.95 95.66,-33.02 95.99,-32.09 96.01,-31.10 96.02,-30.12 95.73,-29.18 95.43,-28.24 94.85,-27.44 94.26,-26.65 93.46,-26.08 92.65,-25.51 92.65,-25.51 92.65,-25.51 90.41,-24.48 88.16,-23.44 84.69,-22.27 81.23,-21.09 79.21,-20.18 77.19,-19.27 75.00,-18.05 72.81,-16.82 69.91,-15.51 67.01,-14.21 64.41,-13.31 61.82,-12.41 58.70,-11.54 55.59,-10.67 53.12,-10.14 50.66,-9.60 46.66,-8.55 42.66,-7.49 37.00,-5.65 31.34,-3.80 25.66,-2.30 19.97,-0.80 14.67,0.58 9.36,1.97 5.09,3.04 0.82,4.11 0.31,4.14 -0.18,4.18 -0.68,4.10 -1.18,4.02 -1.64,3.82 -2.11,3.62 -2.51,3.31 -2.91,3.01 -3.23,2.61 -3.55,2.22 -3.76,1.76 -3.98,1.31 -4.08,0.81 -4.18,0.32 -4.15,-0.18 -4.13,-0.68 -3.99,-1.17 -3.85,-1.65 -3.59,-2.09 -3.34,-2.53 -2.98,-2.89 -2.63,-3.25 -2.20,-3.52 -1.78,-3.79 -1.30,-3.95 -0.82,-4.11 -0.82,-4.11 L -0.82,-4.11 Z"></path></g><g transform="translate(142 99.00023368232814) rotate(0 38.5 -13)" stroke="none"><path fill="#f08c00" d="M -0.76,-4.19 Q -0.76,-4.19 2.39,-4.78 5.55,-5.36 9.98,-6.23 14.41,-7.09 19.33,-8.78 24.25,-10.47 30.01,-12.07 35.77,-13.66 40.11,-15.13 44.45,-16.59 47.13,-17.72 49.82,-18.84 53.01,-20.46 56.20,-22.07 59.25,-23.61 62.31,-25.16 66.30,-26.99 70.29,-28.81 72.70,-29.85 75.11,-30.88 75.94,-31.05 76.77,-31.23 77.61,-31.12 78.45,-31.02 79.22,-30.66 79.98,-30.29 80.59,-29.71 81.20,-29.12 81.59,-28.36 81.98,-27.61 82.10,-26.77 82.23,-25.93 82.08,-25.10 81.94,-24.27 81.53,-23.52 81.13,-22.78 80.50,-22.20 79.88,-21.63 79.11,-21.28 78.34,-20.93 77.49,-20.85 76.65,-20.77 75.83,-20.96 75.00,-21.15 74.28,-21.60 73.56,-22.04 73.02,-22.70 72.48,-23.35 72.17,-24.14 71.87,-24.93 71.83,-25.78 71.80,-26.62 72.03,-27.44 72.27,-28.25 72.75,-28.94 73.24,-29.64 73.92,-30.14 74.60,-30.65 75.40,-30.91 76.21,-31.17 77.06,-31.16 77.90,-31.15 78.70,-30.87 79.50,-30.59 80.17,-30.07 80.84,-29.55 81.31,-28.84 81.77,-28.14 81.99,-27.32 82.21,-26.50 82.15,-25.65 82.09,-24.81 81.77,-24.03 81.45,-23.24 80.89,-22.60 80.34,-21.96 79.61,-21.54 78.88,-21.11 78.88,-21.11 78.88,-21.11 74.34,-19.71 69.80,-18.31 67.83,-17.39 65.86,-16.46 62.46,-15.33 59.06,-14.20 55.58,-13.26 52.10,-12.32 49.32,-11.53 46.54,-10.75 42.09,-9.06 37.64,-7.38 32.18,-5.63 26.73,-3.88 21.49,-1.75 16.25,0.37 11.67,1.72 7.09,3.06 3.92,3.63 0.76,4.19 0.24,4.22 -0.26,4.25 -0.76,4.15 -1.27,4.06 -1.74,3.85 -2.20,3.64 -2.61,3.32 -3.01,3.00 -3.33,2.60 -3.64,2.19 -3.85,1.72 -4.06,1.26 -4.16,0.75 -4.25,0.25 -4.22,-0.26 -4.18,-0.77 -4.03,-1.26 -3.88,-1.75 -3.61,-2.19 -3.34,-2.63 -2.98,-2.99 -2.62,-3.35 -2.18,-3.62 -1.74,-3.88 -1.25,-4.03 -0.76,-4.19 -0.76,-4.19 L -0.76,-4.19 Z"></path></g><g transform="translate(152 70.00023368232814) rotate(0 21 -6)" stroke="none"><path fill="#f08c00" d="M -1.34,-4.92 Q -1.34,-4.92 1.83,-5.71 5.02,-6.49 7.66,-7.38 10.31,-8.27 13.08,-9.03 15.86,-9.78 18.09,-10.21 20.32,-10.64 22.51,-11.09 24.70,-11.53 28.63,-12.56 32.56,-13.59 34.97,-14.53 37.39,-15.47 38.07,-16.11 38.74,-16.76 39.59,-17.15 40.43,-17.55 41.36,-17.65 42.29,-17.76 43.20,-17.56 44.11,-17.36 44.91,-16.88 45.71,-16.40 46.32,-15.70 46.93,-14.99 47.27,-14.12 47.62,-13.26 47.68,-12.32 47.73,-11.39 47.48,-10.49 47.24,-9.59 46.72,-8.82 46.20,-8.04 45.46,-7.48 44.71,-6.91 43.83,-6.61 42.95,-6.31 42.02,-6.30 41.08,-6.30 40.20,-6.59 39.31,-6.89 38.57,-7.45 37.82,-8.01 37.30,-8.78 36.77,-9.55 36.52,-10.45 36.26,-11.35 36.31,-12.28 36.36,-13.22 36.70,-14.08 37.04,-14.95 37.64,-15.66 38.25,-16.38 39.04,-16.86 39.84,-17.35 40.75,-17.55 41.66,-17.75 42.59,-17.66 43.52,-17.56 44.37,-17.17 45.22,-16.78 45.90,-16.14 46.57,-15.50 47.01,-14.68 47.45,-13.86 47.61,-12.94 47.76,-12.01 47.61,-11.09 47.47,-10.17 47.03,-9.35 46.60,-8.52 46.60,-8.52 46.60,-8.52 43.94,-6.87 41.29,-5.21 38.09,-4.09 34.88,-2.97 30.72,-2.10 26.56,-1.24 22.47,-0.71 18.38,-0.17 15.92,0.43 13.46,1.05 10.54,2.04 7.62,3.04 4.48,3.98 1.34,4.92 0.73,5.01 0.12,5.10 -0.48,5.04 -1.10,4.98 -1.68,4.78 -2.26,4.58 -2.77,4.24 -3.29,3.90 -3.71,3.45 -4.13,3.00 -4.43,2.46 -4.73,1.92 -4.89,1.33 -5.05,0.74 -5.07,0.12 -5.08,-0.49 -4.95,-1.09 -4.82,-1.69 -4.54,-2.24 -4.27,-2.79 -3.87,-3.26 -3.48,-3.74 -2.98,-4.10 -2.48,-4.46 -1.91,-4.69 -1.34,-4.92 -1.34,-4.92 L -1.34,-4.92 Z"></path></g></svg>
@@ -15,3 +15,5 @@ someCode(); // This is an expression.
15
15
  ```
16
16
 
17
17
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
18
+
19
+ ![whatever](intersection.svg)
@@ -0,0 +1,25 @@
1
+ footer {
2
+ margin-top: 5rem;
3
+ width: 100%;
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ color: white;
8
+ font-family: "Merriweather Sans Light";
9
+ font-size: 0.8rem;
10
+ background-color: black;
11
+ height: 2rem;
12
+ }
13
+
14
+ footer > * {
15
+ opacity: 0.8;
16
+ }
17
+
18
+ footer a {
19
+ color: var(--light-yellow);
20
+ text-decoration: none;
21
+ }
22
+
23
+ footer a:hover {
24
+ opacity: 1;
25
+ }
@@ -1,37 +1,45 @@
1
1
  header {
2
+ z-index: 2;
2
3
  display: flex;
4
+ align-self: flex-start;
3
5
  flex-direction: row;
4
6
  align-items: center;
5
- margin: 4.5rem 0 3.5rem 1rem;
7
+ padding: 5rem 0 3rem 1rem;
8
+ width: clamp(55rem, 55rem, 55rem);
6
9
  }
7
10
 
8
11
  header .top {
9
12
  display: flex;
10
13
  flex-direction: column;
11
- letter-spacing: 0.15rem;
12
14
  }
13
15
 
14
16
  header .top .title {
15
- font-family: 'Bangers Regular';
17
+ font-family: "Bangers Regular";
16
18
  font-size: 3.1rem;
17
19
  color: var(--light-blue-09);
20
+ letter-spacing: 0.15rem;
18
21
  }
19
22
 
20
23
  header .top .subtitle {
21
- padding-left: 0.3rem;
22
24
  font-size: 0.85rem;
23
- font-family: 'Inter Extra Bold';
24
- text-transform: uppercase;
25
+ padding-left: 0.3rem;
26
+ font-family: "Inter Extra Bold";
25
27
  color: var(--light-yellow);
28
+ text-transform: uppercase;
29
+ letter-spacing: 0.15rem;
30
+ opacity: 1;
26
31
  animation: flicker 4s infinite;
27
32
  }
28
33
 
29
34
  header .logo {
30
- height: 3.75rem;
31
- width: 3.75rem;
32
- margin-right: 1.25rem;
35
+ border: 1px solid white;
36
+ height: 6.25rem;
33
37
  border: 0.25rem solid var(--light-blue-09);
34
38
  border-radius: 50%;
39
+ width: 6.25rem;
40
+ max-width: 3.75rem;
41
+ max-height: 3.75rem;
42
+ margin-right: 1.25rem;
35
43
  }
36
44
 
37
45
  .logo.rotate {
@@ -40,31 +48,34 @@ header .logo {
40
48
  }
41
49
 
42
50
  .logo #bolt {
43
- animation: flicker 4s infinite;
51
+ animation: flicker 5s infinite;
44
52
  }
45
53
 
46
54
  .logo .bolt-wrapper {
47
- width: 3.75rem;
48
- height: 3.75rem;
49
- filter: drop-shadow(0 0 0.5rem #00edfa41) drop-shadow(0 0 0.4rem #00edfa6b)
50
- drop-shadow(0 0 0.4em #00edfa69) drop-shadow(0 0 0.6rem #00edfa70);
55
+ min-width: 3.75rem;
56
+ min-height: 3.75rem;
57
+ filter: drop-shadow(0 0 0.2rem #00edfa6e) drop-shadow(0 0 0.345rem #00edfa6b)
58
+ drop-shadow(0 0 0.4275rem #00edfa69) drop-shadow(0 0 0.55rem #00edfa70);
51
59
  }
52
60
 
53
- .logo .bolt-wrapper > * {
61
+ .logo .bolt-wrapper .top {
54
62
  position: absolute;
55
63
  transform-origin: center;
56
- }
57
-
58
- .logo .bolt-wrapper .top {
59
64
  top: 19%;
60
65
  left: 33%;
66
+ width: 0;
67
+ height: 0;
61
68
  border-left: 0.9375rem solid transparent;
62
69
  border-bottom: 1.384375rem solid #ffff90;
63
70
  }
64
71
 
65
72
  .logo .bolt-wrapper .bottom {
66
- top: 45%;
73
+ position: absolute;
74
+ transform-origin: center;
75
+ top: 46%;
67
76
  right: 30%;
77
+ width: 0;
78
+ height: 0;
68
79
  border-right: 0.9375rem solid transparent;
69
80
  border-top: 1.40625rem solid #ffffb4;
70
81
  }
@@ -1,13 +1,15 @@
1
1
  .post-card {
2
- padding: 1.5625rem 2.1875rem 1.5625rem 1.25rem;
2
+ padding: 1.6rem 2.2rem 1.6rem 1.25rem;
3
3
  margin-top: 1.2rem;
4
4
  border-radius: var(--border-radius);
5
5
  opacity: 0.9;
6
6
  }
7
7
 
8
- .post-card:hover {
9
- opacity: 1;
10
- box-shadow: var(--primary-box-shadow);
8
+ @media (hover: hover) and (pointer: fine) {
9
+ .post-card:hover {
10
+ opacity: 1;
11
+ box-shadow: var(--primary-box-shadow);
12
+ }
11
13
  }
12
14
 
13
15
  .post-card .title {
@@ -0,0 +1,29 @@
1
+ #loader {
2
+ position: fixed;
3
+ inset: 0;
4
+ background: var(--background);
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ z-index: 10;
9
+ }
10
+
11
+ #loader .spinner {
12
+ width: 5rem;
13
+ height: 5rem;
14
+ border-radius: 50%;
15
+ display: inline-block;
16
+ border-top: 0.3rem solid var(--light-blue-05);
17
+ border-right: 0.3rem solid transparent;
18
+ box-sizing: border-box;
19
+ animation: rotation 800ms linear infinite;
20
+ }
21
+
22
+ @keyframes rotation {
23
+ 0% {
24
+ transform: rotate(0deg);
25
+ }
26
+ 100% {
27
+ transform: rotate(360deg);
28
+ }
29
+ }
@@ -1,46 +1,66 @@
1
1
  @import 'fonts.css';
2
+ @import 'media.css';
2
3
  @import 'animations.css';
4
+ @import 'loader.css';
3
5
  @import 'post.css';
6
+ @import 'footer.css';
4
7
  @import 'header.css';
5
8
  @import 'home.css';
6
9
 
7
10
  :root {
8
- --background: linear-gradient(#0f0f23, #1d1d43);
11
+ --background: #0f0f23;
9
12
  --max-width: 55rem;
10
13
  --neon: #82f9ff;
11
- --post-title-color: rgb(241, 241, 241);
12
- --body-text-color: #ececec;
13
14
  --light-blue-09: rgba(129, 213, 255, 0.9);
14
15
  --light-blue-05: rgba(129, 213, 255, 0.5);
15
- --light-grey-06: rgba(255, 255, 255, 0.6);
16
16
  --light-yellow: #ffffb4;
17
17
  --body-font-family: 'Merriweather Sans Light';
18
18
  --body-font-size: 1.1rem;
19
19
  --border-radius: 0.5rem;
20
20
  --primary-box-shadow: inset 0 0 0 0.1rem var(--light-blue-05);
21
+ --h1-color: rgb(241, 241, 241);
22
+ --date-color: rgba(255, 255, 255, 0.6);
21
23
  }
22
24
 
23
25
  a,
24
26
  a:link,
25
27
  a:visited {
26
28
  text-decoration: none;
29
+ -webkit-tap-highlight-color: transparent;
27
30
  }
28
31
 
29
- html {
32
+ html,
33
+ body {
34
+ height: 100%;
30
35
  margin: 0;
31
36
  padding: 0;
37
+ }
38
+
39
+ html {
32
40
  background: var(--background);
33
- min-height: 100vh;
34
41
  }
35
42
 
36
- body {
37
- max-width: var(--max-width);
43
+ h1 {
44
+ color: var(--h1-color);
45
+ }
46
+
47
+ section {
38
48
  margin: 0 auto 0 auto;
39
- padding: 0;
40
49
  }
41
50
 
42
- h1 {
43
- color: rgb(241, 241, 241);
51
+ main {
52
+ align-items: stretch;
53
+ flex-grow: 1;
54
+ max-width: 55rem;
55
+ display: flex;
56
+ flex-direction: column;
57
+ }
58
+
59
+ .col-flexbox {
60
+ display: flex;
61
+ flex-direction: column;
62
+ justify-content: space-between;
63
+ min-height: 100%;
44
64
  }
45
65
 
46
66
  canvas {
@@ -58,8 +78,8 @@ canvas {
58
78
 
59
79
  .date {
60
80
  font-family: 'Inter Regular';
61
- font-size: 0.85rem;
62
- color: var(--light-grey-06);
81
+ color: var(--date-color);
63
82
  margin-top: 0.1rem;
83
+ font-size: 0.85rem;
64
84
  text-transform: uppercase;
65
85
  }
@@ -0,0 +1,5 @@
1
+ @media (max-width: 60rem) {
2
+ header {
3
+ width: clamp(100%, 100%, 100%);
4
+ }
5
+ }
@@ -1,5 +1,5 @@
1
1
  .post {
2
- padding: 1.56rem 2.2rem 1.55rem 1.25rem;
2
+ padding: 1.6rem 2.2rem 1.6rem 1.25rem;
3
3
  margin-top: 1.25rem;
4
4
  }
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blazed-past-us",
3
- "version": "0.6.7",
3
+ "version": "0.7.3",
4
4
  "description": "A static blog framework made for developers that allows content to be written in Markdown directly from the IDE.",
5
5
  "license": "MIT",
6
6
  "author": "gass-git",
@@ -30,12 +30,15 @@
30
30
  "typescript": "^5.9.3"
31
31
  },
32
32
  "dependencies": {
33
+ "@types/mdast": "^4.0.4",
33
34
  "chalk": "^5.6.2",
34
35
  "rehype-pretty-code": "^0.14.1",
36
+ "rehype-raw": "^7.0.0",
35
37
  "rehype-stringify": "^10.0.1",
36
38
  "remark": "^15.0.1",
37
39
  "remark-parse": "^11.0.0",
38
- "remark-rehype": "^11.1.2"
40
+ "remark-rehype": "^11.1.2",
41
+ "unist-util-visit": "^5.1.0"
39
42
  },
40
43
  "keywords": [
41
44
  "static-site",
Binary file