diff options
| author | Miguel <m.i@gmx.at> | 2019-03-09 22:30:25 +0100 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2019-03-09 22:30:25 +0100 |
| commit | 3b32429a0064159842a4147eb4accc7bdba63553 (patch) | |
| tree | 1a829bcc27bc25f08876b32d9a7df0702b5e4c0c | |
| parent | e012c15ed0fdf4bfee4ff26301ab386e9f9978ae (diff) | |
added various css from pandoc for syntax highlighting
| -rw-r--r-- | 080_blog/00040_Haskell/00010_Links-and-Notes-and-Literature/index.md | 57 | ||||
| -rw-r--r-- | 080_blog/00040_Haskell/00065_Base64-Encoder/base64.cast | 314 | ||||
| -rw-r--r-- | 080_blog/00040_Haskell/00065_Base64-Encoder/index.md | 16 | ||||
| -rw-r--r-- | 080_blog/00040_Haskell/00200_Estatico-Page-Maker/index.md | 14 | ||||
| -rw-r--r-- | 080_blog/00110_Fool-Operating-System/index.md | 76 | ||||
| -rw-r--r-- | pandoc.css | 65 | ||||
| -rw-r--r-- | pandoc_breezedark.css | 64 | ||||
| -rw-r--r-- | pandoc_espresso.css | 60 | ||||
| -rw-r--r-- | pandoc_haddock.css | 56 | ||||
| -rw-r--r-- | pandoc_kate.css | 64 | ||||
| -rw-r--r-- | pandoc_monochrome.css | 43 | ||||
| -rw-r--r-- | pandoc_pygments.css | 61 | ||||
| -rw-r--r-- | pandoc_tango.css | 60 | ||||
| -rw-r--r-- | pandoc_zenburn.css | 60 |
14 files changed, 711 insertions, 299 deletions
diff --git a/080_blog/00040_Haskell/00010_Links-and-Notes-and-Literature/index.md b/080_blog/00040_Haskell/00010_Links-and-Notes-and-Literature/index.md index 6e82b3b..2eb1215 100644 --- a/080_blog/00040_Haskell/00010_Links-and-Notes-and-Literature/index.md +++ b/080_blog/00040_Haskell/00010_Links-and-Notes-and-Literature/index.md @@ -6,29 +6,62 @@ * **Real World Haskell** by Bryan O'Sullivan, Don Stewart, and John Goerzen * **Parallel and Concurrent Programming in Haskell** by Simon Marlow -* **Haskell Wiki** https://wiki.haskell.org -* **UPENN CIS 194** https://www.seas.upenn.edu/~cis194/spring13/ -* **What I Wish I Knew When Learning Haskell** by Stephen Diehl -* **Data61 Course** https://github.com/data61/fp-course +* **Haskell Wiki** <https://wiki.haskell.org> +* **UPENN CIS 194** <https://www.seas.upenn.edu/~cis194/spring13/> +* **What I Wish I Knew When Learning Haskell** by Stephen Diehl <http://dev.stephendiehl.com/hask/> +* **Data61 Course** <https://github.com/data61/fp-course> * **Monads for functional programming (paper)** by Philip Wadler * **Functional Pearl (paper)** * **Why Functional Programming Matters (paper)** -* **Mailing Lists** https://www.haskell.org/mailing-lists/ +* **Mailing Lists** <https://www.haskell.org/mailing-lists/> * **IRC** #haskell at chat.freenode.at -* **Monadic Warsaw** +* **Monadic Warsaw** -## Xmonad +## xmonad-contrib contribution -My little contribution to xmonad-contrib: +Added a pretty printer for empty visible workspaces\ +<https://github.com/xmonad/xmonad-contrib/pull/241> -* Added pretty printer for empty visible workspaces (wrapped in Maybe) - https://github.com/xmonad/xmonad-contrib/pull/241 +## Some GHC Flags -## GHC Flags (TODO: put here all the other flags I have documentend in this Makefile somweher :P ) - -gq ? + -v verbose mode + -O2 level 2 optimizations + -rtsopts allow +RTS flags + -prof enable basic time and allocation profiling + -auto-all cost centers on all top level functions + (you can also add them via the SCC pragma) + -caf-all generate data for CAFs (constant applicative forms) + -fforce-recomp force recompilation + -threaded Use threaed runtime + -eventlog enables +RTS -l flag + + -Wall + -Werror + + Notes: you will obtain the profiling versions of dependancies via: + stack install --profile [libraryname] + + -fprof-auto replaced -auto-all + -fprof-cafs replaced -caf-all + +## Some +RTS flags + + -K set stack limit + -s statistic reporting + -p profiling + -hc extract heap profile + -hy allocation by type + -hd allocation by constructor + -ix x is sampling frequency in seconds. e.g. 0.01) + -Nx x is number of cores to utilize + -l emit log file (can be used threadscope) + -ddump-simpl generate core + + Note: render the heap profile as graph with: hp2ps -e8in -c file.hp + show eventlog with: threadscope file.eventlog ## monad transformers in action diff --git a/080_blog/00040_Haskell/00065_Base64-Encoder/base64.cast b/080_blog/00040_Haskell/00065_Base64-Encoder/base64.cast index 63fece1..54f3ab5 100644 --- a/080_blog/00040_Haskell/00065_Base64-Encoder/base64.cast +++ b/080_blog/00040_Haskell/00065_Base64-Encoder/base64.cast @@ -1,322 +1,226 @@ { - "duration": 14.820928, + "command": null, + "width": 101, "title": null, + "height": 6, "env": { "SHELL": "/bin/bash", "TERM": "screen-256color" }, - "width": 106, "stdout": [ [ - 0.019966, - "miguel@megaloman:~$ " - ], - [ - 1.524665, - "t" - ], - [ - 0.08111, - "h" - ], - [ - 0.095838, - "i" - ], - [ - 0.118019, - "s" - ], - [ - 0.086883, - " " - ], - [ - 0.089573, - "i" - ], - [ - 0.134283, - "s" - ], - [ - 0.096031, - " " - ], - [ - 0.114016, - "a" - ], - [ - 0.166151, - " " - ], - [ - 0.319094, - "l" - ], - [ - 0.195916, - "o" - ], - [ - 0.142042, - "c" + 0.020042, + "miguel@megaloman:~/git/haskell/base64$ " ], [ - 0.139961, - "a" + 0.972847, + "cat /dev/urandom | pv | ./base64 > /dev/null " ], [ - 0.07801, - "l" + 0.43902, + "\r\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[1Pecho \"Welcome to Base64 encoding\" | ./base64" ], [ - 0.081012, - " " - ], - [ - 0.094941, - "a" - ], - [ - 0.120898, - "s" - ], - [ - 0.107959, - "c" - ], - [ - 0.115993, - "i" - ], - [ - 0.137871, - "i" + 0.83889, + "\r\n" ], [ - 0.205335, - "n" + 0.001251, + "V2VsY29tZSB0byBCYXNlNjQgZW5jb2RpbmcK\r\n" ], [ - 0.108673, - "e" + 0.000356, + "miguel@megaloman:~/git/haskell/base64$ " ], [ - 0.127436, - "m" + 1.151505, + "echo \"Welcome to Base64 encoding\" | ./base64" ], [ - 0.123916, - "a" + 0.328933, + "\r\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[Ccat /dev/urandom | pv | ./base64 > /dev/null " ], [ - 0.244565, + 0.833, "\r\n" ], [ - 0.000482, - "bash: this: command not found\r\n" + 1.001665, + " 253MiB 0:00:01 [ 253MiB/s] [ <=> ]\r" ], [ - 0.000346, - "miguel@megaloman:~$ " + 0.999837, + " 500MiB 0:00:02 [ 247MiB/s] [ <=> ]\r" ], [ - 1.012884, - "this is a local asciinema" + 1.000048, + " 753MiB 0:00:03 [ 252MiB/s] [ <=> ]\r" ], [ - 0.230737, - "\r\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C" + 1.000117, + "1001MiB 0:00:04 [ 247MiB/s] [ <=> ]\r" ], [ - 0.140235, - "\u001b[1@e" + 0.999649, + "1.22GiB 0:00:05 [ 251MiB/s] [ <=> ]\r" ], [ - 0.097927, - "\u001b[1@c" + 1.000026, + "1.47GiB 0:00:06 [ 250MiB/s] [ <=> ]\r" ], [ - 0.188824, - "\u001b[1@j" + 1.000236, + "1.72GiB 0:00:07 [ 253MiB/s] [ <=> ]\r" ], [ - 0.000974, - "\u001b[1@o" + 1.000056, + "1.96GiB 0:00:08 [ 252MiB/s] [ <=> ]\r" ], [ - 0.421424, - "\b\u001b[1P" + 0.999645, + " 2.2GiB 0:00:09 [ 244MiB/s] [ <=> ]\r" ], [ - 0.117902, - "\b\u001b[1P" + 1.000274, + "2.45GiB 0:00:10 [ 253MiB/s] [ <=> ]\r" ], [ - 0.208192, - "\u001b[1@h" + 0.999751, + "2.69GiB 0:00:11 [ 244MiB/s] [ <=> ]\r" ], [ - 0.115112, - "\u001b[1@ " + 1.000191, + "2.93GiB 0:00:12 [ 252MiB/s] [ <=> ]\r" ], [ - 0.012814, - "\u001b[1@o" + 0.999772, + "3.18GiB 0:00:13 [ 248MiB/s] [ <=> ]\r" ], [ - 0.295287, - "\r\n" + 1.000312, + "3.43GiB 0:00:14 [ 257MiB/s] [ <=> ]\r" ], [ - 0.000755, - "bash: ech: command not found\r\n" + 0.999856, + "3.68GiB 0:00:15 [ 254MiB/s] [ <=> ]\r" ], [ - 0.000509, - "miguel@megaloman:~$ " + 1.000239, + "3.93GiB 0:00:16 [ 253MiB/s] [ <=> ]\r" ], [ - 0.480858, - "ech othis is a local asciinema" + 0.99986, + "4.17GiB 0:00:17 [ 248MiB/s] [ <=> ]\r" ], [ - 0.192018, - "\r\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C" + 0.999739, + " 4.4GiB 0:00:18 [ 242MiB/s] [ <=> ]\r" ], [ - 0.237975, - "\u001b[C" + 1.000023, + "4.65GiB 0:00:19 [ 252MiB/s] [ <=> ]\r" ], [ - 0.118994, - "\u001b[C" + 1.000103, + "4.89GiB 0:00:20 [ 245MiB/s] [ <=> ]\r" ], [ - 0.146091, - "\u001b[1P" + 1.000106, + "5.14GiB 0:00:21 [ 255MiB/s] [ <=> ]\r" ], [ - 0.348015, - "\u001b[1P" + 1.000102, + "5.38GiB 0:00:22 [ 246MiB/s] [ <=> ]\r" ], [ - 0.562446, - "\u001b[1@h" + 1.000042, + "5.63GiB 0:00:23 [ 252MiB/s] [ <=> ]\r" ], [ - 0.437804, - "\u001b[C" + 0.999787, + "5.87GiB 0:00:24 [ 250MiB/s] [ <=> ]\r" ], [ - 0.219332, - "\u001b[1@ " + 1.000079, + "6.11GiB 0:00:25 [ 248MiB/s] [ <=> ]\r" ], [ - 0.220637, - "\r\n" + 1.000035, + "6.36GiB 0:00:26 [ 247MiB/s] [ <=> ]\r" ], [ - 0.000486, - "this is a local asciinema\r\n" + 0.999929, + " 6.6GiB 0:00:27 [ 250MiB/s] [ <=> ]\r" ], [ - 0.000206, - "miguel@megaloman:~$ " + 0.999966, + "6.84GiB 0:00:28 [ 244MiB/s] [ <=> ]\r" ], [ - 1.218406, - "m" + 1.000047, + "7.09GiB 0:00:29 [ 252MiB/s] [ <=> ]\r" ], [ - 0.079499, - "c" + 0.999829, + "7.33GiB 0:00:30 [ 250MiB/s] [ <=> ]\r" ], [ - 0.170894, - "\r\n" + 0.99996, + "7.57GiB 0:00:31 [ 245MiB/s] [ <=> ]\r" ], [ - 0.00735, - "\u001b[?1049h\u001b[?1h\u001b=" + 1.000063, + "7.81GiB 0:00:32 [ 248MiB/s] [ <=> ]\r" ], [ - 0.000586, - "\u001b[1;9r\u001b[4l\u001b(B\u001b)0\u001b[9;1H\u001b[m\u000f\u001b[37m\u001b[40m\u001b[m\u000f\u001b[39;49m\r \r\u001b[?1l\u001b>\u001b[?1049l\u001b[?1049h\u001b[?1h\u001b=" + 0.999947, + "8.06GiB 0:00:33 [ 251MiB/s] [ <=> ]\r" ], [ - 0.021657, - "\u001b[?1001s\u001b[?1002h\u001b[?1006h\u001b[?2004h" + 1.000249, + " 8.3GiB 0:00:34 [ 246MiB/s] [ <=> ]\r" ], [ - 0.000429, - "\u001b[1;9r\u001b[4l\u001b(B\u001b)0\u001b[?1h\u001b=\u001b[m\u000f\u001b[39m\u001b[49m\u001b[1;9r\u001b[H\u001b[J\u001b[2;105H\u001b[1K \u001b[37m\u001b[40m|\u001b[2;106H" + 1.000158, + "8.55GiB 0:00:35 [ 253MiB/s] [ <=> ]\r" ], [ - 0.000193, - "\b\u001b[39m\u001b[49m\u001b[1K \u001b[37m\u001b[40m╗\u001b[2;106H" + 0.999634, + "8.79GiB 0:00:36 [ 254MiB/s] [ <=> ]\r" ], [ - 0.000114, - "\b\u001b[39m\u001b[49m\u001b[1K \u001b[37m\u001b[40m/\u001b[2;106H" + 1.000289, + "9.04GiB 0:00:37 [ 251MiB/s] [ <=> ]\r" ], [ - 0.000129, - "\b\u001b[39m\u001b[49m\u001b[1K \u001b[37m\u001b[40m╗\u001b[2;106H" + 0.99977, + "9.29GiB 0:00:38 [ 251MiB/s] [ <=> ]\r" ], [ - 0.000156, - "\u001b]0;mc [miguel@megaloman]:~\u0007\u001b>" + 1.000013, + "9.53GiB 0:00:39 [ 248MiB/s] [ <=> ]\r" ], [ - 0.000337, - "\u001b[7;1H\u001b[39m\u001b[49mHint: Want your plain shell? Press C-o, and get back to MC with C-o again.\u001b[7;106H" + 1.000045, + "9.77GiB 0:00:40 [ 247MiB/s] [ <=> ]\r" ], [ - 0.000251, - "\u001b]0;mc [miguel@megaloman]:~\u0007\u001b>" + 0.999859, + " 10GiB 0:00:41 [ 248MiB/s] [ <=> ]\r" ], [ - 0.000102, - "\u001b[1;1H\u001b[30m\u001b[47m Left File Command Options Right \u001b[2;1H\u001b[37m\u001b[40m╔«═\u001b[97m\u001b[105m ~ \u001b[37m\u001b[40m═════════════════════════════════════════⋅[^]»╗╔«═ ~ ═════════════════════════════════════════⋅[^]»\r\n║\u001b[97m↑n Name \u001b[37m│\u001b[97m Size \u001b[37m│\u001b[97mModify time \u001b[37m║║\u001b[97m↑n Name \u001b[37m│\u001b[97m Size \u001b[37m│\u001b[97mModify time \u001b[37m║\u001b[4;1H╟───────────────────────────────────────────────────╢╟───────────────────────────────────────────────────╢\u001b[5;1H║UP--DIR ║║" + 0.760304, + "^C\r\n" ], [ - 1e-05, - "UP--DIR ║\u001b[6;1H╚═════════════════════════════════ 158G/234G (67%) ═╝╚═════════════════════════════════ 158G/234G (67%) ═╝\u001b[8;1H\u001b[39m\u001b[49mmiguel@megaloman:~$\u001b[84C\u001b[31m[^]\u001b[9;1H 1\u001b[97mHelp \u001b[31m 2\u001b[97mMenu \u001b[31m 3\u001b[97mView \u001b[31m 4\u001b[97mEdit \u001b[31m 5\u001b[97mCopy \u001b[31m 6\u001b[97mRenMov \u001b[31m 7\u001b[97mMkdir \u001b[31m 8\u001b[97mDelete \u001b[31m 9\u001b[97mPullDn \u001b[31m10\u001b[97mQuit \u001b[9;105H \b\u001b[4h \u001b[4l\u001b[8;21H" - ], - [ - 1.221371, - "\u001b[1;1H\u001b[39m \u001b[2;1H \u001b[3;1H \u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[1;106H\u001b[?2" - ], - [ - 4.5e-05, - "004l\u001b[?1006l\u001b[?1002l\u001b[?1001r" - ], - [ - 0.000416, - "\u001b[?1l\u001b>\u001b[9;1H\u001b[m\u000f\u001b[39;49m\r \r\u001b[?1l\u001b>\u001b[?1049l\u001b[39;49m" - ], - [ - 0.000319, + 0.000409, "\r\n" ], [ - 0.001118, - "miguel@megaloman:~$ " - ], - [ - 0.791031, - "e" - ], - [ - 0.62602, - "\b\u001b[K" + 0.000128, + "miguel@megaloman:~/git/haskell/base64$ " ] ], - "height": 9, - "command": null, - "version": 1 + "version": 1, + "duration": 46.348438 }
\ No newline at end of file diff --git a/080_blog/00040_Haskell/00065_Base64-Encoder/index.md b/080_blog/00040_Haskell/00065_Base64-Encoder/index.md index 0ede6cf..3fd87ee 100644 --- a/080_blog/00040_Haskell/00065_Base64-Encoder/index.md +++ b/080_blog/00040_Haskell/00065_Base64-Encoder/index.md @@ -2,18 +2,22 @@ Miguel's Base64 Encoder ======================= February 19, 2018 -Coded on a winter afternoon to fully understand **base64 encoding** and play with +Initially coded on a cold winter afternoon to fully understand **base64 encoding** and play with **Haskell**, which is always an indisputable pleasure. -Coded in _big anger_, due to Nick's fairy tales about saving his encrypted binary -data in plain ASCII configuration files, featuring strange letters and -non-printable characters. :P +Coded in _big anger_, due to my friend Nick's fairy tales about saving his encrypted binary +data in plain _ASCII_ configuration files, featuring strange letters and non-printable characters. :smile: -<asciinema-player cols="106" rows="9" preload="true" theme="solarized-dark" autoplay="true" src="base64.cast"></asciinema-player> +_EDIT_: After optimizing my naive implementation, the encoder now reaches speeds +of around **240MB/s** on a single core of my _i7-4790K_. + +<asciinema-player loop="1" preload="true" theme="solarized-dark" autoplay="true" src="base64.cast"></asciinema-player> + +The source code below was auto-fetched from: +<https://gitweb.softwarefools.com/?p=miguel/haskell.git;a=blob;f=base64/base64.hs> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.haskell .numberLines} {BEGIN:EMBED} https://gitweb.softwarefools.com/?p=miguel/haskell.git;a=blob_plain;f=base64/base64.hs {END:EMBED} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The above code was auto-fetched from: <https://gitweb.softwarefools.com/?p=miguel/haskell.git;a=blob_plain;f=base64/base64.hs> diff --git a/080_blog/00040_Haskell/00200_Estatico-Page-Maker/index.md b/080_blog/00040_Haskell/00200_Estatico-Page-Maker/index.md index 63f9816..279c721 100644 --- a/080_blog/00040_Haskell/00200_Estatico-Page-Maker/index.md +++ b/080_blog/00040_Haskell/00200_Estatico-Page-Maker/index.md @@ -14,13 +14,13 @@ I use **pandoc** et al. for most of the work anyway. ## Features * **No** Database -* Input with Simple **Markdown** Files -* Generates **Static HTML** Content -* Embedding data **fetched** via **http/https** -* Embedding self-hosted **asciinema** casts -* Embedding Latex formulas via **MathJx** -* Image Scaling with **ImageMagick** -* Syntax **Highlighting** +* Generate HTML from **Markdown** with **pandoc** +* **Highlight** source-code with **pandoc** +* Embed data **fetched** from the web with **http-conduit** +* Embed **screen-casts** with **asciinema** +* Embed Latex formulas with **MathJx** +* Scale Images with **ImageMagick** +* Generate MP4 from OGG **Videos** with **ffmpeg** ## Try It You can find the most recent version following the links below. diff --git a/080_blog/00110_Fool-Operating-System/index.md b/080_blog/00110_Fool-Operating-System/index.md index 765b33d..a8fac68 100644 --- a/080_blog/00110_Fool-Operating-System/index.md +++ b/080_blog/00110_Fool-Operating-System/index.md @@ -1,7 +1,52 @@ Fool OS ======= -My little buggy toy operating system is a never ending work in progress... +Welcome to my little buggy **x86 toy operating** system. +This is a never ending work in progress, motivated solely by my +bottomless curiosity. + +Be warned that most features are unstable and in development. + +## Features v0.2 + +* Booting with Multiboot (Spec. 0.6.96) (e.g. GRUB 2) +* Rudimentary POSIX compilance +* 32-bit protected mode +* Logging to COM1 +* Parsing ACPI (incomplete) and Multiboot Data +* Symmetrical Multiprocessing with LAPIC and IOAPIC +* CMOS Clock/ PIT Timer / APIC Timer +* Seperate GDT and IVT for each CPU +* Paging / Virtual Memory +* Ext2 RAM Disk +* Pipes +* Standard streams (stdin/stdout/stderr) +* PS2 Mouse/Keyboard support +* Multi-threading & Multitasking +* Kernel and Userspace Tasks +* CPU Private Memory +* Support for ELF binaries. +* IRQ Handling Framework +* Finegrained Spinlocks +* Superfast Task Scheduler +* PCI Bus scanning +* Ethernet E1000 PCI Driver +* VESA Framebuffer with fallback to a text-only terminal +* C-library for Userspace (Newlib) +* Simple Network Stack (ARP, IPv4, ICMP, UDP) +* Compositing Window Manager + +## Userspace Ports and Programs + +* Simple Fool-Shell +* Snake Game +* Newlib C library +* ncurses +* ncurses-examples +* vim +* zlib +* libpng +* many more to come... ## Screenshots @@ -14,7 +59,7 @@ My little buggy toy operating system is a never ending work in progress... {.img-fluid}\ [click here for full-resolution version of pic above.](foolos2.png)\ My **Compositing** Window Manager in action. As you see **Fool-OS** ships -with **vim** and some little **ncurses** programms as well as a +with **vim** and some little **ncurses-examples** as well as a **Brainfuck** interpreter. ## Videos @@ -33,11 +78,28 @@ Demonstrating the Kernel's **piping** functionality, inside the shell. Your browser does not support the video tag. </video> -Some random **ncurses** programms running in the **Window Manager**. +Some random **ncurses** programs (from ncurses-examples) running inside **Terminal Emulators**. + +## Git Repository + +* [Fool OS - Git Repository](https://gitweb.softwarefools.com/?p=miguel/fool-os.git) + +## Disclaimer + + THIS IS A NEVER ENDING WORK IN PROGRESS. -## Links + This is a simple and useless "operating system", with a very basic + set of features. It is the fruit of my fundamental explorations of + the x86 architecture and operating system design. -* [reference](https://www.idziorek.net/~miguel/fool-os-ref/) -* [git](https://gitweb.softwarefools.com/?p=miguel/fool-os.git) + Copyright 2014,2015,2018 M.Idziorek <m.i@gmx.at>, unless stated + otherwise or forgotten. -The ref and readme are of course outdated ... + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. @@ -1,66 +1,7 @@ /* - hack to obtain this css file: file.md needs to have some source-code for pandoc. + hack to obtain pandoc css files: file.md needs to have some source-code for pandoc. extract css from result: stack exec pandoc -- -s file.md --highlight-style pygments */ -a.sourceLine { display: inline-block; line-height: 1.25; } -a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } -a.sourceLine:empty { height: 1.2em; } -.sourceCode { overflow: visible; } -code.sourceCode { white-space: pre; position: relative; } -div.sourceCode { margin: 1em 0; } -pre.sourceCode { margin: 0; } -@media screen { -div.sourceCode { overflow: auto; } -} -@media print { -code.sourceCode { white-space: pre-wrap; } -a.sourceLine { text-indent: -1em; padding-left: 1em; } -} -pre.numberSource a.sourceLine - { position: relative; left: -4em; } -pre.numberSource a.sourceLine::before - { content: attr(title); - position: relative; left: -1em; text-align: right; vertical-align: baseline; - border: none; pointer-events: all; display: inline-block; - -webkit-touch-callout: none; -webkit-user-select: none; - -khtml-user-select: none; -moz-user-select: none; - -ms-user-select: none; user-select: none; - padding: 0 4px; width: 4em; - color: #aaaaaa; - } -pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } -div.sourceCode - { } -@media screen { -a.sourceLine::before { text-decoration: underline; } -} -code span.al { color: #ff0000; font-weight: bold; } /* Alert */ -code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ -code span.at { color: #7d9029; } /* Attribute */ -code span.bn { color: #40a070; } /* BaseN */ -code span.bu { } /* BuiltIn */ -code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ -code span.ch { color: #4070a0; } /* Char */ -code span.cn { color: #880000; } /* Constant */ -code span.co { color: #60a0b0; font-style: italic; } /* Comment */ -code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ -code span.do { color: #ba2121; font-style: italic; } /* Documentation */ -code span.dt { color: #902000; } /* DataType */ -code span.dv { color: #40a070; } /* DecVal */ -code span.er { color: #ff0000; font-weight: bold; } /* Error */ -code span.ex { } /* Extension */ -code span.fl { color: #40a070; } /* Float */ -code span.fu { color: #06287e; } /* Function */ -code span.im { } /* Import */ -code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ -code span.kw { color: #007020; font-weight: bold; } /* Keyword */ -code span.op { color: #666666; } /* Operator */ -code span.ot { color: #007020; } /* Other */ -code span.pp { color: #bc7a00; } /* Preprocessor */ -code span.sc { color: #4070a0; } /* SpecialChar */ -code span.ss { color: #bb6688; } /* SpecialString */ -code span.st { color: #4070a0; } /* String */ -code span.va { color: #19177c; } /* Variable */ -code span.vs { color: #4070a0; } /* VerbatimString */ -code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ + +@import "pandoc_haddock.css" diff --git a/pandoc_breezedark.css b/pandoc_breezedark.css new file mode 100644 index 0000000..9582310 --- /dev/null +++ b/pandoc_breezedark.css @@ -0,0 +1,64 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + background-color: #232629; + color: #7a7c7d; + } +pre.numberSource { margin-left: 3em; border-left: 1px solid #7a7c7d; padding-left: 4px; } +div.sourceCode + { color: #cfcfc2; background-color: #232629; } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span. { color: #cfcfc2; } /* Normal */ +code span.al { color: #95da4c; } /* Alert */ +code span.an { color: #3f8058; } /* Annotation */ +code span.at { color: #2980b9; } /* Attribute */ +code span.bn { color: #f67400; } /* BaseN */ +code span.bu { color: #7f8c8d; } /* BuiltIn */ +code span.cf { color: #fdbc4b; } /* ControlFlow */ +code span.ch { color: #3daee9; } /* Char */ +code span.cn { color: #27aeae; } /* Constant */ +code span.co { color: #7a7c7d; } /* Comment */ +code span.cv { color: #7f8c8d; } /* CommentVar */ +code span.do { color: #a43340; } /* Documentation */ +code span.dt { color: #2980b9; } /* DataType */ +code span.dv { color: #f67400; } /* DecVal */ +code span.er { color: #da4453; } /* Error */ +code span.ex { color: #0099ff; } /* Extension */ +code span.fl { color: #f67400; } /* Float */ +code span.fu { color: #8e44ad; } /* Function */ +code span.im { color: #27ae60; } /* Import */ +code span.in { color: #c45b00; } /* Information */ +code span.kw { color: #cfcfc2; } /* Keyword */ +code span.op { color: #cfcfc2; } /* Operator */ +code span.ot { color: #27ae60; } /* Other */ +code span.pp { color: #27ae60; } /* Preprocessor */ +code span.re { color: #2980b9; } /* RegionMarker */ +code span.sc { color: #3daee9; } /* SpecialChar */ +code span.ss { color: #da4453; } /* SpecialString */ +code span.st { color: #f44f4f; } /* String */ +code span.va { color: #27aeae; } /* Variable */ +code span.vs { color: #da4453; } /* VerbatimString */ +code span.wa { color: #da4453; } /* Warning */ diff --git a/pandoc_espresso.css b/pandoc_espresso.css new file mode 100644 index 0000000..b85a63a --- /dev/null +++ b/pandoc_espresso.css @@ -0,0 +1,60 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + background-color: #2a211c; + color: #bdae9d; + } +pre.numberSource { margin-left: 3em; border-left: 1px solid #bdae9d; padding-left: 4px; } +div.sourceCode + { color: #bdae9d; background-color: #2a211c; } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span.al { color: #ffff00; } /* Alert */ +code span.an { color: #0066ff; font-weight: bold; font-style: italic; } /* Annotation */ +code span.at { } /* Attribute */ +code span.bn { color: #44aa43; } /* BaseN */ +code span.bu { } /* BuiltIn */ +code span.cf { color: #43a8ed; font-weight: bold; } /* ControlFlow */ +code span.ch { color: #049b0a; } /* Char */ +code span.cn { } /* Constant */ +code span.co { color: #0066ff; font-weight: bold; font-style: italic; } /* Comment */ +code span.do { color: #0066ff; font-style: italic; } /* Documentation */ +code span.dt { text-decoration: underline; } /* DataType */ +code span.dv { color: #44aa43; } /* DecVal */ +code span.er { color: #ffff00; font-weight: bold; } /* Error */ +code span.ex { } /* Extension */ +code span.fl { color: #44aa43; } /* Float */ +code span.fu { color: #ff9358; font-weight: bold; } /* Function */ +code span.im { } /* Import */ +code span.in { color: #0066ff; font-weight: bold; font-style: italic; } /* Information */ +code span.kw { color: #43a8ed; font-weight: bold; } /* Keyword */ +code span.op { } /* Operator */ +code span.pp { font-weight: bold; } /* Preprocessor */ +code span.sc { color: #049b0a; } /* SpecialChar */ +code span.ss { color: #049b0a; } /* SpecialString */ +code span.st { color: #049b0a; } /* String */ +code span.va { } /* Variable */ +code span.vs { color: #049b0a; } /* VerbatimString */ +code span.wa { color: #ffff00; font-weight: bold; } /* Warning */ diff --git a/pandoc_haddock.css b/pandoc_haddock.css new file mode 100644 index 0000000..f8d434d --- /dev/null +++ b/pandoc_haddock.css @@ -0,0 +1,56 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + color: #aaaaaa; + } +pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } +div.sourceCode + { } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span.al { color: #ff0000; } /* Alert */ +code span.an { color: #008000; } /* Annotation */ +code span.at { } /* Attribute */ +code span.bu { } /* BuiltIn */ +code span.cf { color: #0000ff; } /* ControlFlow */ +code span.ch { color: #008080; } /* Char */ +code span.cn { } /* Constant */ +code span.co { color: #008000; } /* Comment */ +code span.cv { color: #008000; } /* CommentVar */ +code span.do { color: #008000; } /* Documentation */ +code span.er { color: #ff0000; font-weight: bold; } /* Error */ +code span.ex { } /* Extension */ +code span.im { } /* Import */ +code span.in { color: #008000; } /* Information */ +code span.kw { color: #0000ff; } /* Keyword */ +code span.op { } /* Operator */ +code span.ot { color: #ff4000; } /* Other */ +code span.pp { color: #ff4000; } /* Preprocessor */ +code span.sc { color: #008080; } /* SpecialChar */ +code span.ss { color: #008080; } /* SpecialString */ +code span.st { color: #008080; } /* String */ +code span.va { } /* Variable */ +code span.vs { color: #008080; } /* VerbatimString */ +code span.wa { color: #008000; font-weight: bold; } /* Warning */ diff --git a/pandoc_kate.css b/pandoc_kate.css new file mode 100644 index 0000000..426dce9 --- /dev/null +++ b/pandoc_kate.css @@ -0,0 +1,64 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + background-color: #ffffff; + color: #a0a0a0; + } +pre.numberSource { margin-left: 3em; border-left: 1px solid #a0a0a0; padding-left: 4px; } +div.sourceCode + { color: #1f1c1b; background-color: #ffffff; } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span. { color: #1f1c1b; } /* Normal */ +code span.al { color: #bf0303; background-color: #f7e6e6; font-weight: bold; } /* Alert */ +code span.an { color: #ca60ca; } /* Annotation */ +code span.at { color: #0057ae; } /* Attribute */ +code span.bn { color: #b08000; } /* BaseN */ +code span.bu { color: #644a9b; font-weight: bold; } /* BuiltIn */ +code span.cf { color: #1f1c1b; font-weight: bold; } /* ControlFlow */ +code span.ch { color: #924c9d; } /* Char */ +code span.cn { color: #aa5500; } /* Constant */ +code span.co { color: #898887; } /* Comment */ +code span.cv { color: #0095ff; } /* CommentVar */ +code span.do { color: #607880; } /* Documentation */ +code span.dt { color: #0057ae; } /* DataType */ +code span.dv { color: #b08000; } /* DecVal */ +code span.er { color: #bf0303; text-decoration: underline; } /* Error */ +code span.ex { color: #0095ff; font-weight: bold; } /* Extension */ +code span.fl { color: #b08000; } /* Float */ +code span.fu { color: #644a9b; } /* Function */ +code span.im { color: #ff5500; } /* Import */ +code span.in { color: #b08000; } /* Information */ +code span.kw { color: #1f1c1b; font-weight: bold; } /* Keyword */ +code span.op { color: #1f1c1b; } /* Operator */ +code span.ot { color: #006e28; } /* Other */ +code span.pp { color: #006e28; } /* Preprocessor */ +code span.re { color: #0057ae; background-color: #e0e9f8; } /* RegionMarker */ +code span.sc { color: #3daee9; } /* SpecialChar */ +code span.ss { color: #ff5500; } /* SpecialString */ +code span.st { color: #bf0303; } /* String */ +code span.va { color: #0057ae; } /* Variable */ +code span.vs { color: #bf0303; } /* VerbatimString */ +code span.wa { color: #bf0303; } /* Warning */ diff --git a/pandoc_monochrome.css b/pandoc_monochrome.css new file mode 100644 index 0000000..bb56806 --- /dev/null +++ b/pandoc_monochrome.css @@ -0,0 +1,43 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + } +pre.numberSource { margin-left: 3em; padding-left: 4px; } +div.sourceCode + { } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span.al { font-weight: bold; } /* Alert */ +code span.an { font-style: italic; } /* Annotation */ +code span.cf { font-weight: bold; } /* ControlFlow */ +code span.co { font-style: italic; } /* Comment */ +code span.cv { font-style: italic; } /* CommentVar */ +code span.do { font-style: italic; } /* Documentation */ +code span.dt { text-decoration: underline; } /* DataType */ +code span.er { font-weight: bold; } /* Error */ +code span.in { font-style: italic; } /* Information */ +code span.kw { font-weight: bold; } /* Keyword */ +code span.pp { font-weight: bold; } /* Preprocessor */ +code span.wa { font-style: italic; } /* Warning */ diff --git a/pandoc_pygments.css b/pandoc_pygments.css new file mode 100644 index 0000000..cee8875 --- /dev/null +++ b/pandoc_pygments.css @@ -0,0 +1,61 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + color: #aaaaaa; + } +pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } +div.sourceCode + { } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span.al { color: #ff0000; font-weight: bold; } /* Alert */ +code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ +code span.at { color: #7d9029; } /* Attribute */ +code span.bn { color: #40a070; } /* BaseN */ +code span.bu { } /* BuiltIn */ +code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ +code span.ch { color: #4070a0; } /* Char */ +code span.cn { color: #880000; } /* Constant */ +code span.co { color: #60a0b0; font-style: italic; } /* Comment */ +code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ +code span.do { color: #ba2121; font-style: italic; } /* Documentation */ +code span.dt { color: #902000; } /* DataType */ +code span.dv { color: #40a070; } /* DecVal */ +code span.er { color: #ff0000; font-weight: bold; } /* Error */ +code span.ex { } /* Extension */ +code span.fl { color: #40a070; } /* Float */ +code span.fu { color: #06287e; } /* Function */ +code span.im { } /* Import */ +code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ +code span.kw { color: #007020; font-weight: bold; } /* Keyword */ +code span.op { color: #666666; } /* Operator */ +code span.ot { color: #007020; } /* Other */ +code span.pp { color: #bc7a00; } /* Preprocessor */ +code span.sc { color: #4070a0; } /* SpecialChar */ +code span.ss { color: #bb6688; } /* SpecialString */ +code span.st { color: #4070a0; } /* String */ +code span.va { color: #19177c; } /* Variable */ +code span.vs { color: #4070a0; } /* VerbatimString */ +code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ diff --git a/pandoc_tango.css b/pandoc_tango.css new file mode 100644 index 0000000..ec04f53 --- /dev/null +++ b/pandoc_tango.css @@ -0,0 +1,60 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + color: #aaaaaa; + } +pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } +div.sourceCode + { background-color: #f8f8f8; } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span.al { color: #ef2929; } /* Alert */ +code span.an { color: #8f5902; font-weight: bold; font-style: italic; } /* Annotation */ +code span.at { color: #c4a000; } /* Attribute */ +code span.bn { color: #0000cf; } /* BaseN */ +code span.cf { color: #204a87; font-weight: bold; } /* ControlFlow */ +code span.ch { color: #4e9a06; } /* Char */ +code span.cn { color: #000000; } /* Constant */ +code span.co { color: #8f5902; font-style: italic; } /* Comment */ +code span.cv { color: #8f5902; font-weight: bold; font-style: italic; } /* CommentVar */ +code span.do { color: #8f5902; font-weight: bold; font-style: italic; } /* Documentation */ +code span.dt { color: #204a87; } /* DataType */ +code span.dv { color: #0000cf; } /* DecVal */ +code span.er { color: #a40000; font-weight: bold; } /* Error */ +code span.ex { } /* Extension */ +code span.fl { color: #0000cf; } /* Float */ +code span.fu { color: #000000; } /* Function */ +code span.im { } /* Import */ +code span.in { color: #8f5902; font-weight: bold; font-style: italic; } /* Information */ +code span.kw { color: #204a87; font-weight: bold; } /* Keyword */ +code span.op { color: #ce5c00; font-weight: bold; } /* Operator */ +code span.ot { color: #8f5902; } /* Other */ +code span.pp { color: #8f5902; font-style: italic; } /* Preprocessor */ +code span.sc { color: #000000; } /* SpecialChar */ +code span.ss { color: #4e9a06; } /* SpecialString */ +code span.st { color: #4e9a06; } /* String */ +code span.va { color: #000000; } /* Variable */ +code span.vs { color: #4e9a06; } /* VerbatimString */ +code span.wa { color: #8f5902; font-weight: bold; font-style: italic; } /* Warning */ diff --git a/pandoc_zenburn.css b/pandoc_zenburn.css new file mode 100644 index 0000000..9632339 --- /dev/null +++ b/pandoc_zenburn.css @@ -0,0 +1,60 @@ +a.sourceLine { display: inline-block; line-height: 1.25; } +a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } +a.sourceLine:empty { height: 1.2em; } +.sourceCode { overflow: visible; } +code.sourceCode { white-space: pre; position: relative; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +code.sourceCode { white-space: pre-wrap; } +a.sourceLine { text-indent: -1em; padding-left: 1em; } +} +pre.numberSource a.sourceLine + { position: relative; left: -4em; } +pre.numberSource a.sourceLine::before + { content: attr(title); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; pointer-events: all; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + } +pre.numberSource { margin-left: 3em; padding-left: 4px; } +div.sourceCode + { color: #cccccc; background-color: #303030; } +@media screen { +a.sourceLine::before { text-decoration: underline; } +} +code span.al { color: #ffcfaf; } /* Alert */ +code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */ +code span.at { } /* Attribute */ +code span.bn { color: #dca3a3; } /* BaseN */ +code span.bu { } /* BuiltIn */ +code span.cf { color: #f0dfaf; } /* ControlFlow */ +code span.ch { color: #dca3a3; } /* Char */ +code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */ +code span.co { color: #7f9f7f; } /* Comment */ +code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */ +code span.do { color: #7f9f7f; } /* Documentation */ +code span.dt { color: #dfdfbf; } /* DataType */ +code span.dv { color: #dcdccc; } /* DecVal */ +code span.er { color: #c3bf9f; } /* Error */ +code span.ex { } /* Extension */ +code span.fl { color: #c0bed1; } /* Float */ +code span.fu { color: #efef8f; } /* Function */ +code span.im { } /* Import */ +code span.in { color: #7f9f7f; font-weight: bold; } /* Information */ +code span.kw { color: #f0dfaf; } /* Keyword */ +code span.op { color: #f0efd0; } /* Operator */ +code span.ot { color: #efef8f; } /* Other */ +code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */ +code span.sc { color: #dca3a3; } /* SpecialChar */ +code span.ss { color: #cc9393; } /* SpecialString */ +code span.st { color: #cc9393; } /* String */ +code span.va { } /* Variable */ +code span.vs { color: #cc9393; } /* VerbatimString */ +code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */ |
