From 198adca63bfc3abf73ff5c25d9f4b0c297aa3514 Mon Sep 17 00:00:00 2001 From: Marcel Fries Date: Thu, 22 Aug 2019 07:54:50 +0200 Subject: [PATCH] New org-capture template and export theme. "Tracking" allows to capture coccurences of event in tables in a special org file. The new "taopeng" theme can be used for org HTML exports. --- org-css/taopeng.css | 559 ++++++++++++++++++++++++++++++++++++++++++++ setup-emacs.org | 33 ++- 2 files changed, 591 insertions(+), 1 deletion(-) create mode 100644 org-css/taopeng.css diff --git a/org-css/taopeng.css b/org-css/taopeng.css new file mode 100644 index 0000000..ba8ced5 --- /dev/null +++ b/org-css/taopeng.css @@ -0,0 +1,559 @@ +/* Welcome to Compass. + * In this file you should write your main styles. (or centralize your imports) + * Import this file using the following HTML or equivalent: + * */ +/* use normalize.css instead of reset + http://stackoverflow.com/a/8357635/114833 */ +/* @import "compass/reset"; */ +@import "https://fonts.googleapis.com/css?family=Lora:400,400i,700,700i|Source+Code+Pro|Source+Sans+Pro:700,700i"; +/*! HTML5 Boilerplate v4.3.0 | MIT License | http://h5bp.com/ */ +/* + * What follows is the result of much research on cross-browser styling. + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, + * Kroc Camen, and the H5BP dev community and team. + */ +/* ========================================================================== + Base styles: opinionated defaults + ========================================================================== */ +html, +button, +input, +select, +textarea { + color: #484C66; +} + +html { + font-size: 90%; + line-height: 1.4; +} + +*, +*:before, +*:after { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +a { + white-space: pre; + white-space: pre-wrap; + white-space: pre-line; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + white-space: -moz-pre-wrap; + white-space: -hp-pre-wrap; + word-wrap: break-word; + text-decoration: none; +} +a:hover { + color: #EA4C89; +} + +/* + * Remove text-shadow in selection highlight: h5bp.com/i + * These selection rule sets have to be separate. + * Customize the background color to match your design. + */ +::-moz-selection { + background: #EA4C89; + color: #FFF; + text-shadow: none; +} + +::selection { + background: #EA4C89; + color: #FFF; + text-shadow: none; +} + +/* + * A better looking default horizontal rule + */ +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px dashed #CCC; + margin: 1em 0; + padding: 0; +} + +/* + * Remove the gap between images, videos, audio and canvas and the bottom of + * their containers: h5bp.com/i/440 + */ +audio, +canvas, +img, +video { + vertical-align: middle; +} + +/* + * Remove default fieldset styles. + */ +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +/* + * Allow only vertical resizing of textareas. + */ +textarea { + resize: vertical; +} + +/* ========================================================================== + Author's custom styles + ========================================================================== */ +.todo, +.done, +.tag { + font-family: "Source Pro", Monaco, "Courier New", monospace; + padding: 0 0.3em; + background-color: #EEE; + border: 1px solid #CCC; +} + +.todo { + color: #DD4433; +} + +.done { + color: #44934B; +} + +.tag { + font-size: 80%; + font-weight: normal; + margin: 0 0.3em; + display: none; +} + +.timestamp { + color: #BEBEBE; +} + +.timestamp-kwd { + color: #5F9EA0; +} + +.right { + margin-left: auto; + margin-right: 0px; + text-align: right; +} + +.left { + margin-left: 0px; + margin-right: auto; + text-align: left; +} + +.center { + margin-left: auto; + margin-right: auto; + text-align: center; +} + +.underline { + text-decoration: underline; +} + +#postamble p, +#preamble p { + font-size: 90%; + margin: .2em; +} + +pre, +code { + font-family: "Source Pro", Monaco, "Courier New", monospace; + padding-left: 0.3em; + padding-right: 0.3em; +} + +pre { + font-size: 90%; + padding: 8pt; + overflow: auto; + white-space: pre; + word-wrap: normal; +} + +pre.src { + position: relative; +} +pre.src:before { + display: none; + position: absolute; + background-color: #FFF; + top: 0.5em; + right: 0.5em; + padding: 4px; + border: 1px solid #CCC; +} + +pre.src-sh:before { + content: "Shell Script"; +} + +pre.src-bash:before { + content: "Bash Script"; +} + +pre.src-emacs-lisp:before { + content: "Emacs Lisp"; +} + +pre.src-R:before { + content: "R"; +} + +pre.src-perl:before { + content: "Perl"; +} + +pre.src-java:before { + content: "Java"; +} + +pre.src-sql:before { + content: "SQL"; +} + +pre.src-c:before { + content: "C"; +} + +pre.src-cpp:before { + content: "C++"; +} + +pre.src-html:before { + content: "HTML"; +} + +table { + border-collapse: collapse; + display: block; + overflow-x: auto; +} + +caption.t-above { + caption-side: top; +} + +caption.t-bottom { + caption-side: bottom; +} + +td, th { + vertical-align: top; + border: 1px solid #CCC; + padding: 0.5em; +} + +th.right { + text-align: center; +} + +th.left { + text-align: center; +} + +th.center { + text-align: center; +} + +td.right { + text-align: right; +} + +td.left { + text-align: left; +} + +td.center { + text-align: center; +} + +dt { + font-weight: bold; +} + +#footnotes { + border-top: 5px solid #EA4C89; + margin-bottom: 5em; +} +#footnotes h2 { + display: none; +} + +#text-footnotes { + margin-top: 1em; +} + +.footpara:nth-child(2) { + display: inline; +} + +.footpara { + display: block; +} + +.footdef sup:before { + content: "["; +} +.footdef sup:after { + content: "]"; +} +.footdef p { + display: inline; +} + +figure { + margin: 0; +} +figure img { + max-width: 100%; +} + +figcaption { + text-align: center; + font-size: 0.8rem; +} + +.inlinetask { + padding: 10px; + border: 2px solid gray; + margin: 10px; + background: #ffffcc; +} + +#org-div-home-and-up { + text-align: right; + font-size: 70%; + white-space: nowrap; +} + +textarea { + overflow-x: auto; +} + +.linenr { + font-size: smaller; +} + +.code-highlighted { + background-color: #ffff00; +} + +.org-info-js_info-navigation { + border-style: none; +} + +#org-info-js_console-label { + font-size: 10px; + font-weight: bold; + white-space: nowrap; +} + +.org-info-js_search-highlight { + background-color: #ffff00; + color: #000000; + font-weight: bold; +} + +p.verse, +blockquote { + margin: 0; + padding: 0; + padding-left: 3%; + border-left: 5px solid #EA4C89; +} + +body { + font-family: Lora, Palatino, Georgia, serif; + width: 92%; + max-width: 1024px; + margin: 0 auto; + background-color: #FFF; +} + +h2 { + line-height: 1.62em; +} + +.title { + margin: 0 0 2em 0; + line-height: 2em; + border-bottom: 5px solid #EA4C89; + text-align: center; +} + +#postamble { + font-size: 80%; + line-height: 1.4em; + text-align: right; +} + +h1, h2, h3, h4, h5, h6 { + font-family: "Source Sans Pro", sans-serif; + color: #222; +} + +.outline-2 { + margin-bottom: 4em; +} +.outline-2 h2 { + border-bottom: 1px solid #CCC; +} + +.outline-text-2 code, pre { + background-color: #EEE; +} + +#table-of-contents { + display: none; + margin-left: 0.5em; +} + +#text-table-of-contents ul { + padding-left: 1.8em; +} +#text-table-of-contents li { + list-style-type: circle; + margin: 0.4em 0; +} +#text-table-of-contents ul ul { + margin: 0; +} +#text-table-of-contents li li { + font-weight: normal; + font-size: 90%; + margin: 0; +} + +#content { + overflow: hidden; + *zoom: 1; +} + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + These examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ +@media only screen and (min-width: 35em) { + /* Style adjustments for viewports that meet the condition */ +} +@media print, (-o-min-device-pixel-ratio: 5 / 4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { + /* Style adjustments for high resolution devices */ +} +/* ========================================================================== + Print styles. + Inlined to avoid required HTTP connection: h5bp.com/r + ========================================================================== */ +@media print { + * { + background: transparent !important; + color: #000 !important; + /* Black prints faster: h5bp.com/s */ + box-shadow: none !important; + text-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + /* + * Don't show links for images, or javascript/internal links + */ + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + + pre, + blockquote { + /* border: 1px solid #999; */ + page-break-inside: avoid; + } + + thead { + display: table-header-group; + /* h5bp.com/t */ + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + #table-of-contents { + display: block; + width: initial; + border: none; + } + #table-of-contents a { + text-decoration: none; + } +} +/* large screen */ +@media screen and (min-width: 40rem) { + html { + font-size: 100%; + } + + #table-of-contents { + display: block; + padding: 1em; + width: 32%; + min-width: 18em; + float: right; + background-color: #EEE; + position: relative; + /* required by z-index */ + z-index: 5000; + border: 1px solid #CCC; + } + + .tag { + display: initial; + } +} diff --git a/setup-emacs.org b/setup-emacs.org index 5392b2d..cbdc3ac 100644 --- a/setup-emacs.org +++ b/setup-emacs.org @@ -289,6 +289,15 @@ This is my configuration for the emacs editor. (find-file "~/Notes/todo.org")) #+END_SRC +*** The Tracking file + I use this file to capture dates, at wich I do certain tasks. + Used mostly for keeping track of habits. + #+BEGIN_SRC emacs-lisp + (defun open-main-todo-file () + (interactive) + (find-file "~/Notes/tracking.org")) + #+END_SRC + ** Configure org-mode This is the main configuration for the infamous org-mode. The most important parts are configuring key bindings to quickly access the files we have defined above. @@ -458,12 +467,34 @@ This is my configuration for the emacs editor. (add-to-list 'org-structure-template-alist '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC")) #+END_SRC +*** Capture Support Functions + First we define a function to look the subheading under which we want to file captures: + #+BEGIN_SRC emacs-lisp + (defun org-get-target-headline (&optional targets prompt) + "Prompt for a location in an org file and jump to it. + + This is for promping for refile targets when doing captures. + Targets are selected from `org-refile-targets'. If TARGETS is + given it temporarily overrides `org-refile-targets'. PROMPT will + replace the default prompt message. + + If CAPTURE-LOC is is given, capture to that location instead of + prompting." + (let ((org-refile-targets (or targets org-refile-targets)) + (prompt (or prompt "Capture Location"))) + (org-refile t nil nil prompt)) + ) + #+END_SRC + *** Org Capture Here we define templates we want to use to quickly capture stuff and automatically file them away. + #+BEGIN_SRC emacs-lisp (setq org-capture-templates '(("l" "Link" entry (file "~/Notes/links.org") - "* NEW %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n%i\n"))) + "* NEW %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n%i\n") + ("t" "Track" table-line (file+function "~/Notes/tracking.org" org-get-target-headline) + "| %? | |"))) #+END_SRC * Additional Package Imports