From: Evgenii Akentev Date: Sat, 2 Mar 2024 19:16:56 +0000 (+0400) Subject: Add table of contents X-Git-Url: https://git.xn--bdkaa.com/?a=commitdiff_plain;h=5557700d80a38a12d8968b639ca94c7da0c0a52c;p=xn--bdkaa.com.git Add table of contents --- diff --git a/config.toml b/config.toml index 5e23f81..c6aa350 100644 --- a/config.toml +++ b/config.toml @@ -31,3 +31,9 @@ copyright = 'This work is licensed under a Creative Commons Attribution-ShareAli [markup.goldmark] [markup.goldmark.renderer] unsafe = true + + [markup.tableOfContents] + endLevel = 5 + ordered = false + startLevel = 2 + diff --git a/content/pages/books.md b/content/pages/books.md index d824a13..7ad7411 100644 --- a/content/pages/books.md +++ b/content/pages/books.md @@ -4,7 +4,7 @@ title: Books Books I read. Bold titles that I enjoyed and recommend. -#### 2024 +### 2024 - **Zombies in Western Culture, by John Vervaeke, Christopher Mastropietro, Filip Miscevic** - **Котлован, Андрей Платонов** @@ -12,7 +12,7 @@ Books I read. Bold titles that I enjoyed and recommend. - A Supposedly Fun Thing I'll Never Do Again, by David Foster Wallace - A Russian Journal, by John Steinbeck, Robert Capa -#### 2023 +### 2023 - **Дар, Владимир Набоков** - **Blood Meridian, by Cormac McCarthy** @@ -27,7 +27,7 @@ Books I read. Bold titles that I enjoyed and recommend. - The Education of a Value Investor, by Guy Spier - **Political Order and Political Decay, by Francis Fukuyama** -#### 2022 +### 2022 - **The Broom of the System, by David Foster Wallace** - Philosophy, Pussycats, and Porn, by Stoya @@ -38,7 +38,7 @@ Books I read. Bold titles that I enjoyed and recommend. - **The Culture Code: The Secrets of Highly Successful Groups, by Daniel Coyle** - **Clearing the Air: The Beginning and the End of Air Pollution, by Tim Smedley** -#### 2021 +### 2021 - The Art of War, by Sun Tzu - A Portrait of the Artist as a Young Man, by James Joyce diff --git a/content/pages/projects.md b/content/pages/projects.md index 83d2b21..40ddf2c 100644 --- a/content/pages/projects.md +++ b/content/pages/projects.md @@ -2,7 +2,7 @@ title: Projects --- -#### Hackage packages +### Hackage packages
@@ -22,7 +22,7 @@ title: Projects

-#### Hosted web projects +### Hosted web projects
@@ -48,7 +48,7 @@ title: Projects -#### Educational +### Educational
diff --git a/content/posts/implementations-of-the-handle-pattern.md b/content/posts/implementations-of-the-handle-pattern.md index 6a8e02f..496e0f4 100644 --- a/content/posts/implementations-of-the-handle-pattern.md +++ b/content/posts/implementations-of-the-handle-pattern.md @@ -3,6 +3,7 @@ title: Implementations of the Handle pattern date: 2021-01-31 draft: false tags: [haskell, backpack] +toc: true --- In ["Monad Transformers and Effects with Backpack"](https://blog.ocharles.org.uk/posts/2020-12-23-monad-transformers-and-effects-with-backpack.html) [@acid2](https://twitter.com/acid2) presented how to apply Backpack to monad transformers. There is a less-popular approach to deal with effects — [Handle](https://jaspervdj.be/posts/2018-03-08-handle-pattern.html) ([Service](https://www.schoolofhaskell.com/user/meiersi/the-service-pattern)) pattern. I recommend reading both posts at first since they answer many questions regarding the design decisions behind the Handle pattern (why `IO`, why not type classes, etc). In this post, I want to show different implementations of the Handle pattern and compare them. All examples described below are available [in this repository](https://git.ak3n.com/?p=handle-examples.git). diff --git a/content/posts/thoughts-on-backpack-modules-and-records.md b/content/posts/thoughts-on-backpack-modules-and-records.md index 645b05e..7a4f8a6 100644 --- a/content/posts/thoughts-on-backpack-modules-and-records.md +++ b/content/posts/thoughts-on-backpack-modules-and-records.md @@ -3,6 +3,7 @@ title: Thoughts on Backpack, modules, and records date: 2021-01-31 draft: false tags: [haskell, backpack, modules, records] +toc: true --- In ["Implementations of the Handle pattern"](/posts/implementations-of-the-handle-pattern) I have explored how Backpack might be used for the Handle pattern. It helped me to take a better look at Backpack and reflect a bit on modules and records in Haskell. @@ -26,9 +27,9 @@ What's the point of having an unused feature which is unmaintained and unfinishe I looked at [the GHC proposals](https://github.com/ghc-proposals/ghc-proposals/) to see if there are any improvements of modularity in the future and, in my opinion, most proposals are focused on concrete problems instead of reflecting on the whole language. It may work well but also it may create inconsistency in the language. -#### [QualifiedDo](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qualified-do.rst) +#### QualifiedDo -`QualifiedDo` brings syntax sugar for overloading `do` notation: +[`QualifiedDo`](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qualified-do.rst) brings syntax sugar for overloading `do` notation: ```haskell {-# LANGUAGE LinearTypes #-} @@ -98,17 +99,17 @@ f <*> x = do It's just like opening the records! It might be tedious to write these imports instead of `Linear.do`, but we wouldn't need to bring new functionality to the language if we had local imports. Maybe it means that "do notation" is really important to the Haskell community but to me, it feels like a temporary hack at the moment, not a fundamental part of the language. -#### [Local modules](https://github.com/goldfirere/ghc-proposals/blob/local-modules/proposals/0000-local-modules.rst) +#### Local modules -`LocalModules` sounds like a good step in the right direction. It will be possible to create modules in modules and to open them locally! Just like in the example above with `Linear` module. Another good thing is that each `data` declaration implicitly creates a new local module, [like in Agda](https://agda.readthedocs.io/en/v2.6.1/language/record-types.html#record-modules). I'm not sure if it's possible to open them, I haven't found it in the proposal, but that would unify the opening of records and modules. Unfortunately, the proposal doesn't explore the interaction with Backpack: +[`LocalModules`](https://github.com/goldfirere/ghc-proposals/blob/local-modules/proposals/0000-local-modules.rst) sounds like a good step in the right direction. It will be possible to create modules in modules and to open them locally! Just like in the example above with `Linear` module. Another good thing is that each `data` declaration implicitly creates a new local module, [like in Agda](https://agda.readthedocs.io/en/v2.6.1/language/record-types.html#record-modules). I'm not sure if it's possible to open them, I haven't found it in the proposal, but that would unify the opening of records and modules. Unfortunately, the proposal doesn't explore the interaction with Backpack: >This proposal does not appear to interact with Backpack. It does not address signatures, the key feature in Backpack. Perhaps the ideas here could be extended to work with signatures. Does it mean that there will be `LocalSignatures` in the future? Why not design the whole mechanism at once? Is there a risk of missing something important that would be hard to fix later? -#### [First class modules](https://github.com/michaelpj/ghc-proposals/blob/imp/first-class-modules/proposals/0000-first-class-modules.rst) +#### First class modules -This proposal is about making a module a first-class entity in the language. Its status is *dormant* because it's too much to change while the benefits seem to be the same as in `LocalModules`. While `LocalModules` is a technical proposal that goes into details, `First class modules` is more about language design proposal. `LocalModules` does not replace `First class modules`, but *a part of it*. This is exactly what I was looking for, the proposal that tries to build a vision for the language, what it might look in the future. The proposal mentions Backpack only once: +[This proposal](https://github.com/michaelpj/ghc-proposals/blob/imp/first-class-modules/proposals/0000-first-class-modules.rst) is about making a module a first-class entity in the language. Its status is *dormant* because it's too much to change while the benefits seem to be the same as in `LocalModules`. While `LocalModules` is a technical proposal that goes into details, `First class modules` is more about language design proposal. `LocalModules` does not replace `First class modules`, but *a part of it*. This is exactly what I was looking for, the proposal that tries to build a vision for the language, what it might look in the future. The proposal mentions Backpack only once: > Interface files must be able to handle the possibility that an exported name refers to a module. This may have some interaction with Backpack. diff --git a/content/posts/why-i-am-not-a-scientist.md b/content/posts/why-i-am-not-a-scientist.md index d2db426..8bf341d 100644 --- a/content/posts/why-i-am-not-a-scientist.md +++ b/content/posts/why-i-am-not-a-scientist.md @@ -19,4 +19,4 @@ That's a perfect way to figure out what's worth learning. What's the real intere I talked to great researchers (who are amazing persons) about their experience and everyday work. I learned that scientists depend on their funding, on grants and writing grant proposals, and they can't just start researching what they find interesting. They deal with a lot of bureaucracy (which I can't stand, I'm extremely allergic to it) and exist in the rigid social structure (a university or a research institution), while I value freedom too much. -That's how removing the Ego from the equation was a major factor that helped me to resolve my long-standing self-identification crises — to be an engineer or a scientist. \ No newline at end of file +That's how removing the Ego from the equation was a major factor that helped me to resolve my long-standing self-identification crises — to be an engineer or a scientist. diff --git a/content/posts/wisdom-and-software-engineering.md b/content/posts/wisdom-and-software-engineering.md index d1a3880..a7a0321 100644 --- a/content/posts/wisdom-and-software-engineering.md +++ b/content/posts/wisdom-and-software-engineering.md @@ -3,6 +3,7 @@ title: Wisdom and software engineering date: 2024-01-15 draft: false tags: [wisdom, software] +toc: true --- It's been a while since I read ["The Intelligence Trap"](https://www.goodreads.com/book/show/41817546-the-intelligence-trap) — a nice book on intelligence and wisdom with many facts about knowledge, four stages of competence, how to teach children, how to learn, &c. More importantly it encourages humility and explains how big ego / expertise might be harmful. It certainly bootstraped some thought processes in my mind, getting me curious in different topics — especially wisdom. diff --git a/themes/theme/layouts/_default/list.html b/themes/theme/layouts/_default/list.html index 50c48e7..86d2960 100644 --- a/themes/theme/layouts/_default/list.html +++ b/themes/theme/layouts/_default/list.html @@ -2,21 +2,26 @@ {{ partial "subheader.html" . }} -

{{ .Title }}

+
+
-
-
    - {{ range .Data.Pages.ByPublishDate.Reverse }} -
    -
    - -
    -
    - {{ .Title }} -
    -
    - {{ end }} -
-
+
+

{{ .Title }}

+
+
    + {{ range .Data.Pages.ByPublishDate.Reverse }} +
    +
    + +
    +
    + {{ .Title }} +
    +
    + {{ end }} +
+
+
+
{{ partial "footer.html" . }} diff --git a/themes/theme/layouts/_default/single.html b/themes/theme/layouts/_default/single.html index c6a3071..4666a20 100644 --- a/themes/theme/layouts/_default/single.html +++ b/themes/theme/layouts/_default/single.html @@ -2,22 +2,34 @@ {{ partial "subheader.html" . }} -
-

{{ .Title }}

-
-
- {{ .Date.Format (.Site.Params.dateform | default "January 02, 2006") }} -
-
- {{ partial "tags.html" (.GetTerms "tags") }} -
+
+
+ {{ partial "toc.html" . }}
-
- {{ partial "headline.html" .Content }} -
-
- If you have a comment or feedback you may say hi. + +
+
+ +
+

{{ .Title }}

+
+
+ {{ .Date.Format (.Site.Params.dateform | default "January 02, 2006") }} +
+
+ {{ partial "tags.html" (.GetTerms "tags") }} +
+
+
+ {{ partial "headline.html" .Content }} +
+ +
+ If you have a comment or feedback you may say hi. +
+
+
-
+ {{ partial "footer.html" . }} diff --git a/themes/theme/layouts/index.html b/themes/theme/layouts/index.html index e029d9e..48fd85d 100644 --- a/themes/theme/layouts/index.html +++ b/themes/theme/layouts/index.html @@ -1,21 +1,26 @@ {{ partial "header.html" . }} -
-
- Me, Myself, and I, თბილისი 2023 -

თბილისი, July, 2023

-
-
- -
-
+
+
+ +
+
+ Me, Myself, and I, თბილისი 2023 +

თბილისი, July, 2023

+
+ +
+ +
+
+
{{ partial "footer.html" . }} diff --git a/themes/theme/layouts/pages/single.html b/themes/theme/layouts/pages/single.html index 0c5ce02..4bcdf0d 100644 --- a/themes/theme/layouts/pages/single.html +++ b/themes/theme/layouts/pages/single.html @@ -2,13 +2,21 @@ {{ partial "subheader.html" . }} -
-

{{ .Title }}

-
+
+
+ {{ partial "toc.html" . }}
-
- {{ partial "headline.html" .Content }} + +
+
+

{{ .Title }}

+
+
+
+ {{ partial "headline.html" .Content }} +
+
-
+ {{ partial "footer.html" . }} diff --git a/themes/theme/layouts/partials/header.html b/themes/theme/layouts/partials/header.html index d3c2a38..3fea3de 100644 --- a/themes/theme/layouts/partials/header.html +++ b/themes/theme/layouts/partials/header.html @@ -5,6 +5,7 @@ {{.Title}} + +
+ + Contents + + {{ .TableOfContents }} +
+ +{{ end }} \ No newline at end of file diff --git a/themes/theme/static/css/pure-min.css b/themes/theme/static/css/pure-min.css new file mode 100644 index 0000000..acdc431 --- /dev/null +++ b/themes/theme/static/css/pure-min.css @@ -0,0 +1,11 @@ +/*! +Pure v3.0.0 +Copyright 2013 Yahoo! +Licensed under the BSD License. +https://github.com/pure-css/pure/blob/master/LICENSE +*/ +/*! +normalize.css v | MIT License | https://necolas.github.io/normalize.css/ +Copyright (c) Nicolas Gallagher and Jonathan Neal +*/ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:sans-serif}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}.pure-g{display:flex;flex-flow:row wrap;align-content:flex-start}.pure-u{display:inline-block;vertical-align:top}.pure-u-1,.pure-u-1-1,.pure-u-1-12,.pure-u-1-2,.pure-u-1-24,.pure-u-1-3,.pure-u-1-4,.pure-u-1-5,.pure-u-1-6,.pure-u-1-8,.pure-u-10-24,.pure-u-11-12,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-2-24,.pure-u-2-3,.pure-u-2-5,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24,.pure-u-3-24,.pure-u-3-4,.pure-u-3-5,.pure-u-3-8,.pure-u-4-24,.pure-u-4-5,.pure-u-5-12,.pure-u-5-24,.pure-u-5-5,.pure-u-5-6,.pure-u-5-8,.pure-u-6-24,.pure-u-7-12,.pure-u-7-24,.pure-u-7-8,.pure-u-8-24,.pure-u-9-24{display:inline-block;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%}.pure-u-1-12,.pure-u-2-24{width:8.3333%}.pure-u-1-8,.pure-u-3-24{width:12.5%}.pure-u-1-6,.pure-u-4-24{width:16.6667%}.pure-u-1-5{width:20%}.pure-u-5-24{width:20.8333%}.pure-u-1-4,.pure-u-6-24{width:25%}.pure-u-7-24{width:29.1667%}.pure-u-1-3,.pure-u-8-24{width:33.3333%}.pure-u-3-8,.pure-u-9-24{width:37.5%}.pure-u-2-5{width:40%}.pure-u-10-24,.pure-u-5-12{width:41.6667%}.pure-u-11-24{width:45.8333%}.pure-u-1-2,.pure-u-12-24{width:50%}.pure-u-13-24{width:54.1667%}.pure-u-14-24,.pure-u-7-12{width:58.3333%}.pure-u-3-5{width:60%}.pure-u-15-24,.pure-u-5-8{width:62.5%}.pure-u-16-24,.pure-u-2-3{width:66.6667%}.pure-u-17-24{width:70.8333%}.pure-u-18-24,.pure-u-3-4{width:75%}.pure-u-19-24{width:79.1667%}.pure-u-4-5{width:80%}.pure-u-20-24,.pure-u-5-6{width:83.3333%}.pure-u-21-24,.pure-u-7-8{width:87.5%}.pure-u-11-12,.pure-u-22-24{width:91.6667%}.pure-u-23-24{width:95.8333%}.pure-u-1,.pure-u-1-1,.pure-u-24-24,.pure-u-5-5{width:100%}.pure-button{display:inline-block;line-height:normal;white-space:nowrap;vertical-align:middle;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;box-sizing:border-box}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-group{letter-spacing:-.31em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-button-group{word-spacing:-0.43em}.pure-button-group .pure-button{letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-button{font-family:inherit;font-size:100%;padding:.5em 1em;color:rgba(0,0,0,.8);border:none transparent;background-color:#e6e6e6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:focus,.pure-button:hover{background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset;border-color:#000}.pure-button-disabled,.pure-button-disabled:active,.pure-button-disabled:focus,.pure-button-disabled:hover,.pure-button[disabled]{border:none;background-image:none;opacity:.4;cursor:not-allowed;box-shadow:none;pointer-events:none}.pure-button-hidden{display:none}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-button-group .pure-button{margin:0;border-radius:0;border-right:1px solid rgba(0,0,0,.2)}.pure-button-group .pure-button:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.pure-button-group .pure-button:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px;border-right:none}.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;vertical-align:middle;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=color]:focus,.pure-form input[type=date]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=email]:focus,.pure-form input[type=month]:focus,.pure-form input[type=number]:focus,.pure-form input[type=password]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=text]:focus,.pure-form input[type=time]:focus,.pure-form input[type=url]:focus,.pure-form input[type=week]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;border-color:#129fea}.pure-form input:not([type]):focus{outline:0;border-color:#129fea}.pure-form input[type=checkbox]:focus,.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus{outline:thin solid #129FEA;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=color][disabled],.pure-form input[type=date][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=email][disabled],.pure-form input[type=month][disabled],.pure-form input[type=number][disabled],.pure-form input[type=password][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=text][disabled],.pure-form input[type=time][disabled],.pure-form input[type=url][disabled],.pure-form input[type=week][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background-color:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form select:focus:invalid,.pure-form textarea:focus:invalid{color:#b94a48;border-color:#e9322d}.pure-form input[type=checkbox]:focus:invalid:focus,.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{height:2.25em;border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=color],.pure-form-stacked input[type=date],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=email],.pure-form-stacked input[type=file],.pure-form-stacked input[type=month],.pure-form-stacked input[type=number],.pure-form-stacked input[type=password],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=text],.pure-form-stacked input[type=time],.pure-form-stacked input[type=url],.pure-form-stacked input[type=week],.pure-form-stacked label,.pure-form-stacked select,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned select,.pure-form-aligned textarea,.pure-form-message-inline{display:inline-block;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 11em}.pure-form .pure-input-rounded,.pure-form input.pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input,.pure-form .pure-group textarea{display:block;padding:10px;margin:0 0 -1px;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus,.pure-form .pure-group textarea:focus{z-index:3}.pure-form .pure-group input:first-child,.pure-form .pure-group textarea:first-child{top:1px;border-radius:4px 4px 0 0;margin:0}.pure-form .pure-group input:first-child:last-child,.pure-form .pure-group textarea:first-child:last-child{top:1px;border-radius:4px;margin:0}.pure-form .pure-group input:last-child,.pure-form .pure-group textarea:last-child{top:-2px;border-radius:0 0 4px 4px;margin:0}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-3-4{width:75%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=color],.pure-group input[type=date],.pure-group input[type=datetime-local],.pure-group input[type=datetime],.pure-group input[type=email],.pure-group input[type=month],.pure-group input[type=number],.pure-group input[type=password],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=text],.pure-group input[type=time],.pure-group input[type=url],.pure-group input[type=week]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0 0}.pure-form-message,.pure-form-message-inline{display:block;font-size:.75em;padding:.2em 0 .8em}}.pure-menu{box-sizing:border-box}.pure-menu-fixed{position:fixed;left:0;top:0;z-index:3}.pure-menu-item,.pure-menu-list{position:relative}.pure-menu-list{list-style:none;margin:0;padding:0}.pure-menu-item{padding:0;margin:0;height:100%}.pure-menu-heading,.pure-menu-link{display:block;text-decoration:none;white-space:nowrap}.pure-menu-horizontal{width:100%;white-space:nowrap}.pure-menu-horizontal .pure-menu-list{display:inline-block}.pure-menu-horizontal .pure-menu-heading,.pure-menu-horizontal .pure-menu-item,.pure-menu-horizontal .pure-menu-separator{display:inline-block;vertical-align:middle}.pure-menu-item .pure-menu-item{display:block}.pure-menu-children{display:none;position:absolute;left:100%;top:0;margin:0;padding:0;z-index:3}.pure-menu-horizontal .pure-menu-children{left:0;top:auto;width:inherit}.pure-menu-active>.pure-menu-children,.pure-menu-allow-hover:hover>.pure-menu-children{display:block;position:absolute}.pure-menu-has-children>.pure-menu-link:after{padding-left:.5em;content:"\25B8";font-size:small}.pure-menu-horizontal .pure-menu-has-children>.pure-menu-link:after{content:"\25BE"}.pure-menu-scrollable{overflow-y:scroll;overflow-x:hidden}.pure-menu-scrollable .pure-menu-list{display:block}.pure-menu-horizontal.pure-menu-scrollable .pure-menu-list{display:inline-block}.pure-menu-horizontal.pure-menu-scrollable{white-space:nowrap;overflow-y:hidden;overflow-x:auto;padding:.5em 0}.pure-menu-horizontal .pure-menu-children .pure-menu-separator,.pure-menu-separator{background-color:#ccc;height:1px;margin:.3em 0}.pure-menu-horizontal .pure-menu-separator{width:1px;height:1.3em;margin:0 .3em}.pure-menu-horizontal .pure-menu-children .pure-menu-separator{display:block;width:auto}.pure-menu-heading{text-transform:uppercase;color:#565d64}.pure-menu-link{color:#777}.pure-menu-children{background-color:#fff}.pure-menu-heading,.pure-menu-link{padding:.5em 1em}.pure-menu-disabled{opacity:.5}.pure-menu-disabled .pure-menu-link:hover{background-color:transparent;cursor:default}.pure-menu-active>.pure-menu-link,.pure-menu-link:focus,.pure-menu-link:hover{background-color:#eee}.pure-menu-selected>.pure-menu-link,.pure-menu-selected>.pure-menu-link:visited{color:#000}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table thead{background-color:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child>td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child>td{border-bottom-width:0} \ No newline at end of file diff --git a/themes/theme/static/css/stylesheet.css b/themes/theme/static/css/stylesheet.css index ee2a782..9d35d63 100644 --- a/themes/theme/static/css/stylesheet.css +++ b/themes/theme/static/css/stylesheet.css @@ -1,15 +1,15 @@ body { font-family: sans-serif; color: black; - margin: auto; +/* margin: auto; max-width: 50em; -} +*/} .center { text-align: center; } -#page-title h1 a, .post a { +#page-title h1 a, .post a, .toc a { color: black; } @@ -17,12 +17,6 @@ a { text-decoration: none; } -#whoami { - margin-left: auto; - margin-right: auto; - width: 60%; -} - #info ul { margin-top: 1em; padding: 0; @@ -39,7 +33,7 @@ ul li h4 { margin-bottom: 0.5em; } -.post a:hover { +.post a:hover, .toc a:hover { text-decoration: underline; } @@ -51,12 +45,49 @@ ul li h4 { padding-left: 2em; } -.post, .subcategory { +.toc { + position: fixed; + width: inherit; +} + +.toc summary::marker { + content: none; +/* display: flex;*/ +/* justify-content: space-between;*/ +} + +.toc summary::after { + content: ' show'; +} +.toc details[open] summary:after { + content: " hide"; +} + +.toc a { + color: #696969; + +} + +.toc li, +.toc ul, +.toc ul li { + list-style: outside none none; +} + +.contents, +.toc li, +.toc ul, +.toc ul li { + padding-left: 5px; +} + +.post { padding-left: 1em; } .blog-post { - padding-left: 1em; + padding-left: 2em; + padding-right: 2em; } .blog-post img {