diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d163863..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build/ \ No newline at end of file diff --git a/.woodpecker.yaml b/.woodpecker.yaml new file mode 100644 index 0000000..3d66fb1 --- /dev/null +++ b/.woodpecker.yaml @@ -0,0 +1,9 @@ +steps: + - name: build-pages + image: registry.pinkhaj.world/liliesh/franky-blag:latest + pull: true + environment: + TARGET_DIRECTORY: $CI_WORKSPACE + when: + - path: + include: ['*.md', '*.css', '*.html', '*.ini'] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f9d719d --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +ENGINE=podman + +clean: + rm -rf build/ + +build: + echo "Building webpage" + $(ENGINE) run --rm -v "./:/source" liliesh/franky-blag:latest + +publish: clean build + git add . + git status + git commit -m "Page Update $(date +'%F %r')" + git push \ No newline at end of file diff --git a/build/about.html b/build/about.html new file mode 100644 index 0000000..7970884 --- /dev/null +++ b/build/about.html @@ -0,0 +1,49 @@ + + + + + + + + + + + + About Me | + + + +
+

Liliesh's Blog

+ +
+ +
+ + +

About Me(ow)!

+ + +
+ + + + + \ No newline at end of file diff --git a/build/archive.html b/build/archive.html new file mode 100644 index 0000000..eb897c4 --- /dev/null +++ b/build/archive.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + Archive | + + + +
+

Liliesh's Blog

+ +
+ +
+ + + + +
+
+ +
+

Second Post

+ +

— This is the second blog post, so you can see how it looks like on the front page.

+ +
+
+
+ + + +
+
+ +
+

Hello World!

+ +

— Hello there, this is the first blog post. You should read me first.

+ +
+
+
+ + + + +
+ + + + + \ No newline at end of file diff --git a/build/atom.xml b/build/atom.xml new file mode 100644 index 0000000..95cc330 --- /dev/null +++ b/build/atom.xml @@ -0,0 +1,37 @@ + +Liliesh's Bloghttps://liliesh.pinkhaj.world/blog/2023-01-02T12:00:00+00:00Second Post2023-01-02T12:00:00+00:002023-01-02T12:00:00+00:00Lilieshtag:liliesh.pinkhaj.world,2023-01-02:/blog/second-post.htmlThis is the second blog post, so you can see how it looks like on the front page.<h2>Second Post</h2> +<p>This page serves no purpose :)</p> +<p><img alt="Blag Screenshot" src="blag.png"></p>Hello World!2023-01-01T12:00:00+00:002023-01-01T12:00:00+00:00Lilieshtag:liliesh.pinkhaj.world,2023-01-01:/blog/hello-world.htmlHello there, this is the first blog post. You should read me first.<h2>Hello World</h2> +<p>This is an example blog post. Internally, blag differentiates between <strong>pages</strong> +and <strong>articles</strong>. Intuitively, pages are simple pages and articles are blog +posts. The decision whether a document is a page or an article is made +depending on the presence of the <code>date</code> metadata element: Any document that +contains the <code>date</code> metadata element is an article, everything else a page.</p> +<p>This differentiation has consequences:</p> +<ul> +<li>blag uses different templates: <code>page.html</code> and <code>article.html</code></li> +<li>only articles are collected in the Atom feed</li> +<li>only articles are aggregated in the tag pages</li> +</ul> +<p>For more detailed information, please refer to the <a href="https://blag.readthedocs.io">documentation</a></p> +<h3>Syntax Highlighting</h3> +<div class="codehilite"><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">foo</span><span class="p">(</span><span class="n">bar</span><span class="p">):</span> +<span class="w"> </span><span class="sd">&quot;&quot;&quot;This is a docstring.</span> + +<span class="sd"> &quot;&quot;&quot;</span> + <span class="c1"># comment</span> + <span class="k">return</span> <span class="n">bar</span> +</code></pre></div> + +<p>Syntax highlighting is done via <a href="https://pygments.org">Pygments</a>. For code blocks, blag +generates the necessary CSS classes by default, which you can use to style your +code using CSS. It provides you with a default light- and dark theme, for more +information on how to generate a different theme, please refer to <a href="https://pygments.org">Pygments&rsquo; +documentation</a>.</p> +<h3>Next Steps</h3> +<ul> +<li>Adapt the files in <code>templates</code> to your needs</li> +<li>Check out the files in <code>static</code> and modify as needed</li> +<li>Add some content</li> +<li>Change the <a href="favicon.ico">favicon.ico</a></li> +</ul> \ No newline at end of file diff --git a/build/blag.png b/build/blag.png new file mode 100644 index 0000000..06445a2 Binary files /dev/null and b/build/blag.png differ diff --git a/build/code-dark.css b/build/code-dark.css new file mode 100644 index 0000000..dc75c9e --- /dev/null +++ b/build/code-dark.css @@ -0,0 +1,84 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.hll { background-color: #49483e } +.c { color: #959077 } /* Comment */ +.err { color: #ed007e; background-color: #1e0010 } /* Error */ +.esc { color: #f8f8f2 } /* Escape */ +.g { color: #f8f8f2 } /* Generic */ +.k { color: #66d9ef } /* Keyword */ +.l { color: #ae81ff } /* Literal */ +.n { color: #f8f8f2 } /* Name */ +.o { color: #ff4689 } /* Operator */ +.x { color: #f8f8f2 } /* Other */ +.p { color: #f8f8f2 } /* Punctuation */ +.ch { color: #959077 } /* Comment.Hashbang */ +.cm { color: #959077 } /* Comment.Multiline */ +.cp { color: #959077 } /* Comment.Preproc */ +.cpf { color: #959077 } /* Comment.PreprocFile */ +.c1 { color: #959077 } /* Comment.Single */ +.cs { color: #959077 } /* Comment.Special */ +.gd { color: #ff4689 } /* Generic.Deleted */ +.ge { color: #f8f8f2; font-style: italic } /* Generic.Emph */ +.ges { color: #f8f8f2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.gr { color: #f8f8f2 } /* Generic.Error */ +.gh { color: #f8f8f2 } /* Generic.Heading */ +.gi { color: #a6e22e } /* Generic.Inserted */ +.go { color: #66d9ef } /* Generic.Output */ +.gp { color: #ff4689; font-weight: bold } /* Generic.Prompt */ +.gs { color: #f8f8f2; font-weight: bold } /* Generic.Strong */ +.gu { color: #959077 } /* Generic.Subheading */ +.gt { color: #f8f8f2 } /* Generic.Traceback */ +.kc { color: #66d9ef } /* Keyword.Constant */ +.kd { color: #66d9ef } /* Keyword.Declaration */ +.kn { color: #ff4689 } /* Keyword.Namespace */ +.kp { color: #66d9ef } /* Keyword.Pseudo */ +.kr { color: #66d9ef } /* Keyword.Reserved */ +.kt { color: #66d9ef } /* Keyword.Type */ +.ld { color: #e6db74 } /* Literal.Date */ +.m { color: #ae81ff } /* Literal.Number */ +.s { color: #e6db74 } /* Literal.String */ +.na { color: #a6e22e } /* Name.Attribute */ +.nb { color: #f8f8f2 } /* Name.Builtin */ +.nc { color: #a6e22e } /* Name.Class */ +.no { color: #66d9ef } /* Name.Constant */ +.nd { color: #a6e22e } /* Name.Decorator */ +.ni { color: #f8f8f2 } /* Name.Entity */ +.ne { color: #a6e22e } /* Name.Exception */ +.nf { color: #a6e22e } /* Name.Function */ +.nl { color: #f8f8f2 } /* Name.Label */ +.nn { color: #f8f8f2 } /* Name.Namespace */ +.nx { color: #a6e22e } /* Name.Other */ +.py { color: #f8f8f2 } /* Name.Property */ +.nt { color: #ff4689 } /* Name.Tag */ +.nv { color: #f8f8f2 } /* Name.Variable */ +.ow { color: #ff4689 } /* Operator.Word */ +.pm { color: #f8f8f2 } /* Punctuation.Marker */ +.w { color: #f8f8f2 } /* Text.Whitespace */ +.mb { color: #ae81ff } /* Literal.Number.Bin */ +.mf { color: #ae81ff } /* Literal.Number.Float */ +.mh { color: #ae81ff } /* Literal.Number.Hex */ +.mi { color: #ae81ff } /* Literal.Number.Integer */ +.mo { color: #ae81ff } /* Literal.Number.Oct */ +.sa { color: #e6db74 } /* Literal.String.Affix */ +.sb { color: #e6db74 } /* Literal.String.Backtick */ +.sc { color: #e6db74 } /* Literal.String.Char */ +.dl { color: #e6db74 } /* Literal.String.Delimiter */ +.sd { color: #e6db74 } /* Literal.String.Doc */ +.s2 { color: #e6db74 } /* Literal.String.Double */ +.se { color: #ae81ff } /* Literal.String.Escape */ +.sh { color: #e6db74 } /* Literal.String.Heredoc */ +.si { color: #e6db74 } /* Literal.String.Interpol */ +.sx { color: #e6db74 } /* Literal.String.Other */ +.sr { color: #e6db74 } /* Literal.String.Regex */ +.s1 { color: #e6db74 } /* Literal.String.Single */ +.ss { color: #e6db74 } /* Literal.String.Symbol */ +.bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ +.fm { color: #a6e22e } /* Name.Function.Magic */ +.vc { color: #f8f8f2 } /* Name.Variable.Class */ +.vg { color: #f8f8f2 } /* Name.Variable.Global */ +.vi { color: #f8f8f2 } /* Name.Variable.Instance */ +.vm { color: #f8f8f2 } /* Name.Variable.Magic */ +.il { color: #ae81ff } /* Literal.Number.Integer.Long */ diff --git a/build/code-light.css b/build/code-light.css new file mode 100644 index 0000000..2b68908 --- /dev/null +++ b/build/code-light.css @@ -0,0 +1,74 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.hll { background-color: #ffffcc } +.c { color: #3D7B7B; font-style: italic } /* Comment */ +.err { border: 1px solid #FF0000 } /* Error */ +.k { color: #008000; font-weight: bold } /* Keyword */ +.o { color: #666666 } /* Operator */ +.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.cp { color: #9C6500 } /* Comment.Preproc */ +.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.gd { color: #A00000 } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.gr { color: #E40000 } /* Generic.Error */ +.gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.gi { color: #008400 } /* Generic.Inserted */ +.go { color: #717171 } /* Generic.Output */ +.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.gt { color: #0044DD } /* Generic.Traceback */ +.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #008000 } /* Keyword.Pseudo */ +.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #B00040 } /* Keyword.Type */ +.m { color: #666666 } /* Literal.Number */ +.s { color: #BA2121 } /* Literal.String */ +.na { color: #687822 } /* Name.Attribute */ +.nb { color: #008000 } /* Name.Builtin */ +.nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.no { color: #880000 } /* Name.Constant */ +.nd { color: #AA22FF } /* Name.Decorator */ +.ni { color: #717171; font-weight: bold } /* Name.Entity */ +.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.nf { color: #0000FF } /* Name.Function */ +.nl { color: #767600 } /* Name.Label */ +.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.nt { color: #008000; font-weight: bold } /* Name.Tag */ +.nv { color: #19177C } /* Name.Variable */ +.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mb { color: #666666 } /* Literal.Number.Bin */ +.mf { color: #666666 } /* Literal.Number.Float */ +.mh { color: #666666 } /* Literal.Number.Hex */ +.mi { color: #666666 } /* Literal.Number.Integer */ +.mo { color: #666666 } /* Literal.Number.Oct */ +.sa { color: #BA2121 } /* Literal.String.Affix */ +.sb { color: #BA2121 } /* Literal.String.Backtick */ +.sc { color: #BA2121 } /* Literal.String.Char */ +.dl { color: #BA2121 } /* Literal.String.Delimiter */ +.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.s2 { color: #BA2121 } /* Literal.String.Double */ +.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.sh { color: #BA2121 } /* Literal.String.Heredoc */ +.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.sx { color: #008000 } /* Literal.String.Other */ +.sr { color: #A45A77 } /* Literal.String.Regex */ +.s1 { color: #BA2121 } /* Literal.String.Single */ +.ss { color: #19177C } /* Literal.String.Symbol */ +.bp { color: #008000 } /* Name.Builtin.Pseudo */ +.fm { color: #0000FF } /* Name.Function.Magic */ +.vc { color: #19177C } /* Name.Variable.Class */ +.vg { color: #19177C } /* Name.Variable.Global */ +.vi { color: #19177C } /* Name.Variable.Instance */ +.vm { color: #19177C } /* Name.Variable.Magic */ +.il { color: #666666 } /* Literal.Number.Integer.Long */ diff --git a/build/favicon.ico b/build/favicon.ico new file mode 100644 index 0000000..6175ffc Binary files /dev/null and b/build/favicon.ico differ diff --git a/build/hello-world.html b/build/hello-world.html new file mode 100644 index 0000000..81bad45 --- /dev/null +++ b/build/hello-world.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + Hello World! | + + + +
+

Liliesh's Blog

+ +
+ +
+ + + +

Hello World!

+ + + + +

Hello World

+

This is an example blog post. Internally, blag differentiates between pages +and articles. Intuitively, pages are simple pages and articles are blog +posts. The decision whether a document is a page or an article is made +depending on the presence of the date metadata element: Any document that +contains the date metadata element is an article, everything else a page.

+

This differentiation has consequences:

+ +

For more detailed information, please refer to the documentation

+

Syntax Highlighting

+
def foo(bar):
+    """This is a docstring.
+
+    """
+    # comment
+    return bar
+
+ +

Syntax highlighting is done via Pygments. For code blocks, blag +generates the necessary CSS classes by default, which you can use to style your +code using CSS. It provides you with a default light- and dark theme, for more +information on how to generate a different theme, please refer to Pygments’ +documentation.

+

Next Steps

+ + + +
+ + + + + \ No newline at end of file diff --git a/build/index.html b/build/index.html new file mode 100644 index 0000000..fca1a14 --- /dev/null +++ b/build/index.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + Liliesh's Blog | + + + +
+

Liliesh's Blog

+ +
+ +
+ + + + +
+
+ +
+

Second Post

+ +

— This is the second blog post, so you can see how it looks like on the front page.

+ +
+
+
+ + + +
+
+ +
+

Hello World!

+ +

— Hello there, this is the first blog post. You should read me first.

+ +
+
+
+ + + +

all articles...

+ + +
+ + + + + \ No newline at end of file diff --git a/build/second-post.html b/build/second-post.html new file mode 100644 index 0000000..667576b --- /dev/null +++ b/build/second-post.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + Second Post | + + + +
+

Liliesh's Blog

+ +
+ +
+ + + +

Second Post

+ + + + +

Second Post

+

This page serves no purpose :)

+

Blag Screenshot

+ + +
+ + + + + \ No newline at end of file diff --git a/build/style.css b/build/style.css new file mode 100644 index 0000000..8e5c332 --- /dev/null +++ b/build/style.css @@ -0,0 +1,153 @@ +@import "code-light.css" (prefers-color-scheme: light); +@import "code-dark.css" (prefers-color-scheme: dark); + +:root { + color-scheme: light dark; + --background: light-dark(#FFFFFF, #2B363B); + --background-dim: light-dark(#f5f7f9, #2F3C42); + --foreground: light-dark(#2B303A, #f0f2f3); + --foreground-dim: light-dark(#576379, #d5d5d5); + --foreground-heavy: light-dark(#191C22, #f2f4f5); + --primary-color: light-dark(#375287, #A1C5FF); +} + +html { + font-size: 18px; + font-family: serif; +} + +body { + margin: 0 auto; + max-width: 50rem; + background: var(--background); + color: var(--foreground); + line-height: 1.5; + padding: 0rem 0.5rem; +} + +aside { + font-size: smaller; + font-style: italic; + color: var(--foreground-dim); +} + +img { + max-width: 100%; +} + +h1, +h2, +h3, +h4, +h5, +h6, +strong { + color: var(--foreground-heavy); +} + +a { + color: var(--primary-color); +} + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + text-decoration: none; +} + +h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover { + text-decoration: underline; +} + +nav ul { + list-style: none; +} + +nav li { + display: inline; +} + +nav li + li:before { + content: " · "; + margin: 0 0.5ex; +} + +article header { + display: flex; + flex-direction: row; + margin: 1rem 0; +} + +article header time { + white-space: nowrap; + color: var(--foreground-dim); + font-style: italic; + flex: 0 0 12ex; +} + +article header h2, +article header p { + font-size: 1rem; + display: inline; +} + +code, +pre { + background: var(--background-dim); + border-radius: 0.3rem; + font-family: monospace; +} + +pre { + padding: 1rem; + border-left: 2px solid var(--primary-color); + overflow: auto; +} + +code { + padding: 0.1rem 0.2rem; +} + +/* reset the padding for code inside pre */ +pre code { + padding: 0; +} + +blockquote { + background: var(--background-dim); + border-radius: 0 0.3rem 0.3rem 0; + font-style: italic; + border-left: 2px solid var(--primary-color); + margin: 0; + padding: 1rem; +} + +/* reset the margin for p inside blockquotes */ +blockquote p { + margin: 0; +} + +body > header { + padding: 2rem 0; +} + +body footer { + margin: 3rem 0; + color: var(--foreground-dim); + font-size: smaller; + text-align: center; +} + +header nav { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +header h1 { + margin: 0 auto; + color: var(--primary-color); +} + +header h2 { + display: inline; + font-size: 1.2rem; +} diff --git a/build/tags/blag.html b/build/tags/blag.html new file mode 100644 index 0000000..cb37104 --- /dev/null +++ b/build/tags/blag.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + #blag | + + + +
+

Liliesh's Blog

+ +
+ +
+ + +

Articles tagged "blag"

+ + + +
+
+ +
+

Second Post

+ +

— This is the second blog post, so you can see how it looks like on the front page.

+ +
+
+
+ + + +
+
+ +
+

Hello World!

+ +

— Hello there, this is the first blog post. You should read me first.

+ +
+
+
+ + + + +
+ + + + + \ No newline at end of file diff --git a/build/tags/index.html b/build/tags/index.html new file mode 100644 index 0000000..a8e634e --- /dev/null +++ b/build/tags/index.html @@ -0,0 +1,58 @@ + + + + + + + + + + + + Tags | + + + +
+

Liliesh's Blog

+ +
+ +
+ +

Tags

+ + +
+ + + + + \ No newline at end of file diff --git a/build/tags/pygments.html b/build/tags/pygments.html new file mode 100644 index 0000000..2569669 --- /dev/null +++ b/build/tags/pygments.html @@ -0,0 +1,65 @@ + + + + + + + + + + + + #pygments | + + + +
+

Liliesh's Blog

+ +
+ +
+ + +

Articles tagged "pygments"

+ + + +
+
+ +
+

Hello World!

+ +

— Hello there, this is the first blog post. You should read me first.

+ +
+
+
+ + + + +
+ + + + + \ No newline at end of file diff --git a/build/testpage.html b/build/testpage.html new file mode 100644 index 0000000..b137dac --- /dev/null +++ b/build/testpage.html @@ -0,0 +1,85 @@ + + + + + + + + + + + + | + + + +
+

Liliesh's Blog

+ +
+ +
+ + +

This Is A Headline

+

This is some bold text with some code inside. This is some_underlined +text with some code inside. This is some text with some code inside. This +is some text with some code inside. This is some text with some code +inside. This is some text with some code inside. This is some text with some +code inside. This is some text with some code inside.

+

This is some link inside the text – it does not really +lead anywhere! This is some link inside the text – it +does not really lead anywhere! This is some link inside +the text – it does not really lead anywhere!

+ +
# this is some python code
+
+class Foo:
+
+    def __init__(self, foo, bar):
+        self.foo = foo
+        self.bar = bar
+
+    def do_something():
+        """This is the docstring of this method.
+
+        """
+        return foo
+
+ +

Some other headline

+

This is some other text

+
# some comment
+foo:
+    ls -lh
+
+ + +
+ + + + + \ No newline at end of file