├── todolist.png ├── screenshot.png ├── UbersichtSlow.gif ├── CheatSheet.widget.zip ├── CheatSheet ├── alfredWorkflow │ └── cheatsheet.alfredworkflow ├── button.sh ├── solarized-dark.css ├── solarized-light.css └── index.coffee ├── widget.json ├── cheatsheet.json └── README.md /todolist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacksonfylle/Ubersicht/HEAD/todolist.png -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacksonfylle/Ubersicht/HEAD/screenshot.png -------------------------------------------------------------------------------- /UbersichtSlow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacksonfylle/Ubersicht/HEAD/UbersichtSlow.gif -------------------------------------------------------------------------------- /CheatSheet.widget.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacksonfylle/Ubersicht/HEAD/CheatSheet.widget.zip -------------------------------------------------------------------------------- /CheatSheet/alfredWorkflow/cheatsheet.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacksonfylle/Ubersicht/HEAD/CheatSheet/alfredWorkflow/cheatsheet.alfredworkflow -------------------------------------------------------------------------------- /widget.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Markdown Preview", 3 | "description": "Display a markdown file", 4 | "author": "jacksonfylle", 5 | "email": "jacksonfylle+github@gmail.com" 6 | } 7 | -------------------------------------------------------------------------------- /cheatsheet.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Markdown Cheatsheet", 3 | "description": "Display a markdown cheatsheet", 4 | "author": "jacksonfylle", 5 | "email": "jacksonfylle+github@gmail.com" 6 | } 7 | -------------------------------------------------------------------------------- /CheatSheet/button.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # List files of the a folder 4 | format=$(ls ~/Library/Application\ Support/Notational\ Data/ | sort | xargs -I {} echo "") 5 | echo $format 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ubersicht Widget 2 | 3 | ##Markdown Preview 4 | ###Select and preview your markdown files in Ubersicht 5 | + Click on a button to select a markdown file in your favorite folder 6 | + Or select it with Alfred Workflow 7 | ![Ubersicht/PicturesWidget.png at master · jacksonfylle/Ubersicht](https://github.com/jacksonfylle/Ubersicht/blob/master/screenshot.png) 8 | 9 | ### Todo list mode 10 | 11 | You can add "+ (A)" or "+ (B)" or "+ (C)" to add color 12 | ![todolist](https://github.com/jacksonfylle/Ubersicht/blob/master/todolist.png) 13 | 14 | ##Installation 15 | 16 | First you need to install [trentm/python-markdown2](https://github.com/trentm/python-markdown2) and the pygments Python module for the extra "fenced code block" [fenced code blocks · trentm/python-markdown2 Wiki](https://github.com/trentm/python-markdown2/wiki/fenced-code-blocks) 17 | 18 | Clone the CheatSheet folder to your Übersicht widget folder and change the location of your markdown-file.md in the index.coffee file. 19 | 20 | ![Ubersicht/UbersichtSlow.gif at master · jacksonfylle/Ubersicht](https://github.com/jacksonfylle/Ubersicht/blob/master/UbersichtSlow.gif) 21 | -------------------------------------------------------------------------------- /CheatSheet/solarized-dark.css: -------------------------------------------------------------------------------- 1 | /* Solarized Dark 2 | 3 | For use with Jekyll and Pygments 4 | 5 | http://ethanschoonover.com/solarized 6 | 7 | SOLARIZED HEX ROLE 8 | --------- -------- ------------------------------------------ 9 | base03 #002b36 background 10 | base01 #586e75 comments / secondary content 11 | base1 #93a1a1 body text / default code / primary content 12 | orange #cb4b16 constants 13 | red #dc322f regex, special keywords 14 | blue #268bd2 reserved keywords 15 | cyan #2aa198 strings, numbers 16 | green #859900 operators, other keywords 17 | */ 18 | 19 | #.codehilite { background-color: #002b36; color: #93a1a1 } 20 | .codehilite .c { color: #586e75 } /* Comment */ 21 | .codehilite .err { color: #93a1a1 } /* Error */ 22 | .codehilite .g { color: #93a1a1 } /* Generic */ 23 | .codehilite .k { color: #859900 } /* Keyword */ 24 | .codehilite .l { color: #93a1a1 } /* Literal */ 25 | .codehilite .n { color: #93a1a1 } /* Name */ 26 | .codehilite .o { color: #859900 } /* Operator */ 27 | .codehilite .x { color: #cb4b16 } /* Other */ 28 | .codehilite .p { color: #93a1a1 } /* Punctuation */ 29 | .codehilite .cm { color: #586e75 } /* Comment.Multiline */ 30 | .codehilite .cp { color: #859900 } /* Comment.Preproc */ 31 | .codehilite .c1 { color: #586e75 } /* Comment.Single */ 32 | .codehilite .cs { color: #859900 } /* Comment.Special */ 33 | .codehilite .gd { color: #2aa198 } /* Generic.Deleted */ 34 | .codehilite .ge { color: #93a1a1; font-style: italic } /* Generic.Emph */ 35 | .codehilite .gr { color: #dc322f } /* Generic.Error */ 36 | .codehilite .gh { color: #cb4b16 } /* Generic.Heading */ 37 | .codehilite .gi { color: #859900 } /* Generic.Inserted */ 38 | .codehilite .go { color: #93a1a1 } /* Generic.Output */ 39 | .codehilite .gp { color: #93a1a1 } /* Generic.Prompt */ 40 | .codehilite .gs { color: #93a1a1; font-weight: bold } /* Generic.Strong */ 41 | .codehilite .gu { color: #cb4b16 } /* Generic.Subheading */ 42 | .codehilite .gt { color: #93a1a1 } /* Generic.Traceback */ 43 | .codehilite .kc { color: #cb4b16 } /* Keyword.Constant */ 44 | .codehilite .kd { color: #268bd2 } /* Keyword.Declaration */ 45 | .codehilite .kn { color: #859900 } /* Keyword.Namespace */ 46 | .codehilite .kp { color: #859900 } /* Keyword.Pseudo */ 47 | .codehilite .kr { color: #268bd2 } /* Keyword.Reserved */ 48 | .codehilite .kt { color: #dc322f } /* Keyword.Type */ 49 | .codehilite .ld { color: #93a1a1 } /* Literal.Date */ 50 | .codehilite .m { color: #2aa198 } /* Literal.Number */ 51 | .codehilite .s { color: #2aa198 } /* Literal.String */ 52 | .codehilite .na { color: #93a1a1 } /* Name.Attribute */ 53 | .codehilite .nb { color: #B58900 } /* Name.Builtin */ 54 | .codehilite .nc { color: #268bd2 } /* Name.Class */ 55 | .codehilite .no { color: #cb4b16 } /* Name.Constant */ 56 | .codehilite .nd { color: #268bd2 } /* Name.Decorator */ 57 | .codehilite .ni { color: #cb4b16 } /* Name.Entity */ 58 | .codehilite .ne { color: #cb4b16 } /* Name.Exception */ 59 | .codehilite .nf { color: #268bd2 } /* Name.Function */ 60 | .codehilite .nl { color: #93a1a1 } /* Name.Label */ 61 | .codehilite .nn { color: #93a1a1 } /* Name.Namespace */ 62 | .codehilite .nx { color: #93a1a1 } /* Name.Other */ 63 | .codehilite .py { color: #93a1a1 } /* Name.Property */ 64 | .codehilite .nt { color: #268bd2 } /* Name.Tag */ 65 | .codehilite .nv { color: #268bd2 } /* Name.Variable */ 66 | .codehilite .ow { color: #859900 } /* Operator.Word */ 67 | .codehilite .w { color: #93a1a1 } /* Text.Whitespace */ 68 | .codehilite .mf { color: #2aa198 } /* Literal.Number.Float */ 69 | .codehilite .mh { color: #2aa198 } /* Literal.Number.Hex */ 70 | .codehilite .mi { color: #2aa198 } /* Literal.Number.Integer */ 71 | .codehilite .mo { color: #2aa198 } /* Literal.Number.Oct */ 72 | .codehilite .sb { color: #586e75 } /* Literal.String.Backtick */ 73 | .codehilite .sc { color: #2aa198 } /* Literal.String.Char */ 74 | .codehilite .sd { color: #93a1a1 } /* Literal.String.Doc */ 75 | .codehilite .s2 { color: #2aa198 } /* Literal.String.Double */ 76 | .codehilite .se { color: #cb4b16 } /* Literal.String.Escape */ 77 | .codehilite .sh { color: #93a1a1 } /* Literal.String.Heredoc */ 78 | .codehilite .si { color: #2aa198 } /* Literal.String.Interpol */ 79 | .codehilite .sx { color: #2aa198 } /* Literal.String.Other */ 80 | .codehilite .sr { color: #dc322f } /* Literal.String.Regex */ 81 | .codehilite .s1 { color: #2aa198 } /* Literal.String.Single */ 82 | .codehilite .ss { color: #2aa198 } /* Literal.String.Symbol */ 83 | .codehilite .bp { color: #268bd2 } /* Name.Builtin.Pseudo */ 84 | .codehilite .vc { color: #268bd2 } /* Name.Variable.Class */ 85 | .codehilite .vg { color: #268bd2 } /* Name.Variable.Global */ 86 | .codehilite .vi { color: #268bd2 } /* Name.Variable.Instance */ 87 | .codehilite .il { color: #2aa198 } /* Literal.Number.Integer.Long */ 88 | -------------------------------------------------------------------------------- /CheatSheet/solarized-light.css: -------------------------------------------------------------------------------- 1 | /* Solarized Light 2 | 3 | For use with Jekyll and Pygments 4 | 5 | http://ethanschoonover.com/solarized 6 | 7 | SOLARIZED HEX ROLE 8 | --------- -------- ------------------------------------------ 9 | base01 #586e75 body text / default code / primary content 10 | base1 #93a1a1 comments / secondary content 11 | base3 #fdf6e3 background 12 | orange #cb4b16 constants 13 | red #dc322f regex, special keywords 14 | blue #268bd2 reserved keywords 15 | cyan #2aa198 strings, numbers 16 | green #859900 operators, other keywords 17 | */ 18 | 19 | .codehilite { background-color: #fdf6e3; color: #586e75 } 20 | .codehilite .c { color: #93a1a1 } /* Comment */ 21 | .codehilite .err { color: #586e75 } /* Error */ 22 | .codehilite .g { color: #586e75 } /* Generic */ 23 | .codehilite .k { color: #859900 } /* Keyword */ 24 | .codehilite .l { color: #586e75 } /* Literal */ 25 | .codehilite .n { color: #586e75 } /* Name */ 26 | .codehilite .o { color: #859900 } /* Operator */ 27 | .codehilite .x { color: #cb4b16 } /* Other */ 28 | .codehilite .p { color: #586e75 } /* Punctuation */ 29 | .codehilite .cm { color: #93a1a1 } /* Comment.Multiline */ 30 | .codehilite .cp { color: #859900 } /* Comment.Preproc */ 31 | .codehilite .c1 { color: #93a1a1 } /* Comment.Single */ 32 | .codehilite .cs { color: #859900 } /* Comment.Special */ 33 | .codehilite .gd { color: #2aa198 } /* Generic.Deleted */ 34 | .codehilite .ge { color: #586e75; font-style: italic } /* Generic.Emph */ 35 | .codehilite .gr { color: #dc322f } /* Generic.Error */ 36 | .codehilite .gh { color: #cb4b16 } /* Generic.Heading */ 37 | .codehilite .gi { color: #859900 } /* Generic.Inserted */ 38 | .codehilite .go { color: #586e75 } /* Generic.Output */ 39 | .codehilite .gp { color: #586e75 } /* Generic.Prompt */ 40 | .codehilite .gs { color: #586e75; font-weight: bold } /* Generic.Strong */ 41 | .codehilite .gu { color: #cb4b16 } /* Generic.Subheading */ 42 | .codehilite .gt { color: #586e75 } /* Generic.Traceback */ 43 | .codehilite .kc { color: #cb4b16 } /* Keyword.Constant */ 44 | .codehilite .kd { color: #268bd2 } /* Keyword.Declaration */ 45 | .codehilite .kn { color: #859900 } /* Keyword.Namespace */ 46 | .codehilite .kp { color: #859900 } /* Keyword.Pseudo */ 47 | .codehilite .kr { color: #268bd2 } /* Keyword.Reserved */ 48 | .codehilite .kt { color: #dc322f } /* Keyword.Type */ 49 | .codehilite .ld { color: #586e75 } /* Literal.Date */ 50 | .codehilite .m { color: #2aa198 } /* Literal.Number */ 51 | .codehilite .s { color: #2aa198 } /* Literal.String */ 52 | .codehilite .na { color: #586e75 } /* Name.Attribute */ 53 | .codehilite .nb { color: #B58900 } /* Name.Builtin */ 54 | .codehilite .nc { color: #268bd2 } /* Name.Class */ 55 | .codehilite .no { color: #cb4b16 } /* Name.Constant */ 56 | .codehilite .nd { color: #268bd2 } /* Name.Decorator */ 57 | .codehilite .ni { color: #cb4b16 } /* Name.Entity */ 58 | .codehilite .ne { color: #cb4b16 } /* Name.Exception */ 59 | .codehilite .nf { color: #268bd2 } /* Name.Function */ 60 | .codehilite .nl { color: #586e75 } /* Name.Label */ 61 | .codehilite .nn { color: #586e75 } /* Name.Namespace */ 62 | .codehilite .nx { color: #586e75 } /* Name.Other */ 63 | .codehilite .py { color: #586e75 } /* Name.Property */ 64 | .codehilite .nt { color: #268bd2 } /* Name.Tag */ 65 | .codehilite .nv { color: #268bd2 } /* Name.Variable */ 66 | .codehilite .ow { color: #859900 } /* Operator.Word */ 67 | .codehilite .w { color: #586e75 } /* Text.Whitespace */ 68 | .codehilite .mf { color: #2aa198 } /* Literal.Number.Float */ 69 | .codehilite .mh { color: #2aa198 } /* Literal.Number.Hex */ 70 | .codehilite .mi { color: #2aa198 } /* Literal.Number.Integer */ 71 | .codehilite .mo { color: #2aa198 } /* Literal.Number.Oct */ 72 | .codehilite .sb { color: #93a1a1 } /* Literal.String.Backtick */ 73 | .codehilite .sc { color: #2aa198 } /* Literal.String.Char */ 74 | .codehilite .sd { color: #586e75 } /* Literal.String.Doc */ 75 | .codehilite .s2 { color: #2aa198 } /* Literal.String.Double */ 76 | .codehilite .se { color: #cb4b16 } /* Literal.String.Escape */ 77 | .codehilite .sh { color: #586e75 } /* Literal.String.Heredoc */ 78 | .codehilite .si { color: #2aa198 } /* Literal.String.Interpol */ 79 | .codehilite .sx { color: #2aa198 } /* Literal.String.Other */ 80 | .codehilite .sr { color: #dc322f } /* Literal.String.Regex */ 81 | .codehilite .s1 { color: #2aa198 } /* Literal.String.Single */ 82 | .codehilite .ss { color: #2aa198 } /* Literal.String.Symbol */ 83 | .codehilite .bp { color: #268bd2 } /* Name.Builtin.Pseudo */ 84 | .codehilite .vc { color: #268bd2 } /* Name.Variable.Class */ 85 | .codehilite .vg { color: #268bd2 } /* Name.Variable.Global */ 86 | .codehilite .vi { color: #268bd2 } /* Name.Variable.Instance */ 87 | .codehilite .il { color: #2aa198 } /* Literal.Number.Integer.Long */ 88 | -------------------------------------------------------------------------------- /CheatSheet/index.coffee: -------------------------------------------------------------------------------- 1 | refreshFrequency: 3000 2 | 3 | # To use this widget you you need python-markdown2 4 | # • Visit [Extras · trentm/python-markdown2 Wiki](https://github.com/trentm/python-markdown2/wiki/Extras) for more information 5 | # 6 | # The path of your Markdown file "/Users/name/cheatsheet.txt" 7 | # • A Path like "/Users/paul/Library/Application\ Support/" As to be like "/Users/paul/Library/Application\\ Support/" 8 | # 9 | # There is three mode 10 | # Normal Mode : 11 | # You only have to specify the path of your markdown file to preview. Use this command and change the path of your file 12 | # Command: "python /usr/local/lib/python2.7/site-packages/markdown2.py --extras fenced-code-blocks,tables ~/Desktop/your-file.md" 13 | # 14 | # Selector Mode 15 | # this mode select the file to preview by buttons on top of your screen 16 | # Suppose you have a folder with 5 markdown file, on the top of your screen there will be 5 button with the name of your files 17 | # When you clikc on one of them a command will write the name of the selected markdown file in a txt file (selectorFile.txt) 18 | # And the default Ubersicht Command will display the file in the selectorFile.txt 19 | # You have to set the path of your selectorFile.txt and the path of your folder who contain the markdown file (~/Library/Application\\ Support/Notational\\ Data/) for exemple 20 | # command: "python /usr/local/lib/python2.7/site-packages/markdown2.py --extras fenced-code-blocks,tables ~/Library/Application\\ Support/Notational\\ Data/\`cat /Users/paul/Desktop/Pro/Configuration/selectorFile.txt\`" 21 | # You also have to change the path of your folder in the script button.sh 22 | # 23 | # Laucher Mode 24 | # Same as selector mode but the name of the file to preview is writing with a launcher like "Alfred" 25 | # The workflow is in the repo. (you have to set the path of the selectorFile.txt) 26 | # command: "python /usr/local/lib/python2.7/site-packages/markdown2.py --extras fenced-code-blocks,tables ~/Library/Application\\ Support/Notational\\ Data/\`cat /Users/paul/Desktop/Pro/Configuration/selectorFile.txt\`" 27 | 28 | # For testing you can use this command : 29 | # command: "echo \"#hello World \n Yo \" | python /usr/local/lib/python2.7/site-packages/markdown2.py" 30 | 31 | # Normal Mode: 32 | #Command: "python /usr/local/lib/python2.7/site-packages/markdown2.py --extras fenced-code-blocks,tables ~/Desktop/your-file.md" 33 | # Selector mode and Launcher Mode: 34 | command: "python /usr/local/lib/python2.7/site-packages/markdown2.py --extras fenced-code-blocks,tables /Users/paul/Library/Application\\ Support/Notational\\ Data/\`cat /Users/paul/Desktop/Pro/Configuration/selectorFile.txt\`" 35 | # Test mode: 36 | # command: "echo \"#hello World \n Yo \" | python /usr/local/lib/python2.7/site-packages/markdown2.py" 37 | 38 | # By default the selector mode is enable. Comment specified line below to disable. 39 | 40 | style: """ 41 | top: 5px //adjust to resize 42 | right: 5px 43 | color: #fff 44 | font-family: Helvetica Neue 45 | width 835px 46 | height: 770px 47 | font-size: 10px 48 | overflow: auto 49 | 50 | .selector 51 | display: block 52 | text-shadow: 0 0 1px rgba(#000, 0.5) 53 | font-size: 10px 54 | background rgba(0,0,0,.80) 55 | border-radius 5px 56 | word-wrap: break-word 57 | 58 | h 59 | display: block 60 | text-align: center 61 | font-size: 24px 62 | font-weight: 100 63 | 64 | .cheatsheet 65 | display: block 66 | text-shadow: 0 0 1px rgba(#000, 0.5) 67 | font-size: 10px 68 | background rgba(0,0,0,.50) 69 | border-radius 5px 70 | column-count: 3 71 | word-wrap: break-word 72 | 73 | h1 74 | margin: 0px 75 | border-radius 5px 5px 0px 0px 76 | font-size: 25px 77 | font-weight: 100 78 | text-align: center 79 | column-span: all 80 | background rgba(203, 75, 22, 0.9) 81 | 82 | h2 83 | margin: 0px 84 | font-size: 15px 85 | font-weight: 100 86 | padding-left: 5px 87 | 88 | h3 89 | font-size: 10px 90 | font-weight: 90 91 | padding-left: 5px 92 | 93 | li 94 | padding-left: 5px 95 | font-size: 10px 96 | 97 | p 98 | padding-left: 5px 99 | 100 | strong 101 | color: rgb(60, 160, 189) 102 | 103 | pre 104 | margin: 5px 105 | display: block 106 | border-radius 5px 107 | border: 1px solid #cb4b16 108 | background-color: rgba(0, 43, 54, 0.5) 109 | 110 | code 111 | padding-left: 5px 112 | 113 | .completed 114 | color: #888 115 | font-weight: regular 116 | text-decoration:line-through 117 | """ 118 | 119 | #select a css for the fenced code blocks 120 | render: -> """ 121 | 122 |
123 |
124 | """ 125 | 126 | ########### 1.A Comment if you don't want to use selector ########### 127 | afterRender: (domEl) -> # 128 | @run("~/Desktop/Temp/Launcher/button.sh", (err, output) -> # 129 | $(domEl).find('.selector').html(output) # 130 | ) # 131 | ############################## 1.A ################################## 132 | 133 | update: (output, domEl) -> 134 | $(domEl).find('.cheatsheet').html(output) 135 | $( "li:contains('(A)')" ).css({"color": "rgb(255, 71, 71)"}) 136 | $( "li:contains('(B)')" ).css({"color": "rgb(255, 168, 80)"}) 137 | $( "li:contains('(C)')" ).css({"color": "rgb(88, 189, 60)"}) 138 | $( "li:contains('(D)')" ).css({"color": "rgb(60, 160, 189)"}) 139 | 140 | ########### 1.B Comment if you don't want to use selector ########################################################################### 141 | $(domEl).find('button').on 'click', => @run "echo " + event.target.id + " > ~/Desktop/Pro/Configuration/selectorFile.txt" # 142 | ############################## 1.B ################################################################################################## 143 | --------------------------------------------------------------------------------