[HN Gopher] VSCode - Markdown Edition
       ___________________________________________________________________
        
       VSCode - Markdown Edition
        
       Author : kevinslin
       Score  : 114 points
       Date   : 2022-05-08 14:38 UTC (8 hours ago)
        
 (HTM) web link (blog.dendron.so)
 (TXT) w3m dump (blog.dendron.so)
        
       | kretaceous wrote:
       | I've tried all the tools in the market for personal knowledge
       | management/journalling/todo/whatever.
       | 
       | And I've finally found my comfort in a folder with a certain
       | directory structure containing all markdown files. I use VSCode
       | for this (as it's already my daily driver) and GitJournal in
       | Android to manage sync via git.
       | 
       | These features are a huge value addition to my workflow!
        
         | MarkSweep wrote:
         | I've settled on similar setup. One nice thing about is there
         | many tools that can work on this type of note setup, so you are
         | not locked into one tool.
         | 
         | Working Copy works decently well on iOS. Gollum [1] on desktop
         | operating systems provides a web interface to the notes. For
         | some shameless self-promotion, I've been hacking on a clone of
         | Gollum called Smeagol [2]. It is written in Rust so it is quite
         | a bit faster to install and run on some of my low powered
         | systems than installing Gollum.
         | 
         | [1]: https://github.com/gollum/gollum [2]: https://smeagol.dev/
        
           | xenodium wrote:
           | For anyone looking for an org mode equivalent (also syncing
           | via Working Copy on iOS), I built https://plainorg.com
        
         | jbverschoor wrote:
         | Give noteplan a try
        
         | bbkane wrote:
         | I do almost the same thing! I also edit with Typora or Vim as
         | the mood strikes. I wrote about this at
         | https://www.bbkane.com/blog/how-i-take-notes/#my-system
        
         | chaoxu wrote:
         | git is line based, so good for code.
         | 
         | But not for most markdown files, at least how I use it. I only
         | start new line (actually, 2 new lines) when I reach a new
         | paragraph, and I think this is normal for most people who ever
         | write something in markdown.
         | 
         | So now I get a huge 2000 character line with a few small edits,
         | and I can hardly see where the changes are.
        
           | darkr wrote:
           | I'd recommend using line wrapping at some reasonable line
           | length (e.g 80-120 chars)
        
             | Macha wrote:
             | Hard line wrapping is not a panacea in this regard, like
             | when you have a words added/removed from a line and then
             | you get a cascading series of changes for the rest of the
             | paragraph as you rewrap it.
        
           | kretaceous wrote:
           | Hmm, interesting. I've not yet come across a situation where
           | I'd need diffing or going back to a change or looking for
           | one. I just use git for syncing.
           | 
           | Nice heads-up to look out for.
        
           | robenkleene wrote:
           | `git diff --word-diff` solves this by showing changes inline.
           | Example: https://blog.ipspace.net/2020/04/git-tip-word-
           | diff.html
        
             | chaoxu wrote:
             | Oh this feature is great. Solves my problem completely.
             | 
             | I wish github would also implement word-diff option.
             | 
             | Edit: Github actually does some form of word-diff! See
             | example here: https://github.com/chaoxu/chaoxu.github.io/co
             | mmit/6d9ab6eefc...
             | 
             | I also looked up how word-diff work with Chinese language.
             | Found a useful stackoverflow link with other suggestions.
             | 
             | https://stackoverflow.com/questions/26135133/git-word-
             | diff-o...
        
           | arinlen wrote:
           | > But not for most markdown files, at least how I use it. I
           | only start new line when I reach a new paragraph, and I think
           | this is normal for most people who ever write something in
           | markdown.
           | 
           | Markdown treats lines separated with a single line break as a
           | continuous line/the same paragraph, and you need to add two
           | or more newlines for Markdown to interpret it as a new
           | paragraph.
           | 
           | Git works just fine with Markdown.
        
             | chaoxu wrote:
             | This is true.
             | 
             | But how does someone take advantage of it without changing
             | their current behavior: write an entire paragraph and do 2
             | line breaks.
             | 
             | Always end a sentence with '.\n'? Manually format lines so
             | no line have more than 80 characters?
        
               | cercatrova wrote:
               | There are some options here on SO: https://stackoverflow.
               | com/questions/43122175/automatically-h...
               | 
               | Prettier options to extensions like Rewrap, one of those
               | might fit your use case.
        
           | kevinslin wrote:
           | i think it depends on your writing style. i tend to do a lot
           | of outlining with bullet points so it works pretty well. for
           | longer paragraphs it can definitely be a pain
        
           | JasonFruit wrote:
           | > I think this is normal for most people who ever write
           | something in markdown
           | 
           | I recognize that I am not normal and this doesn't contradict
           | your assumption, but I use Emacs' fill command to hard-wrap
           | long lines at ~80 characters when I'm writing Markdown. In
           | fact, it's so habitual for me that it causes me problems when
           | writing Gemtext. I keep meaning to disable filling in gemini-
           | mode.
        
             | gnubison wrote:
             | I think this is pretty normal. Some people like to put
             | linebreaks after every sentence/clause, which makes diffs
             | much more convenient.
        
         | jshen wrote:
         | Have you tried obsidian? It's basically what you're doing, but
         | with some nice extra features.
        
           | lolive wrote:
           | Some additional third-party plugins make the Obsidian
           | experience much more enjoyable. Be sure to test them.
        
             | maleldil wrote:
             | Can you mention some of them?
        
               | Rechtsstaat wrote:
               | Not parent but here's some, downloadable from the built-
               | in plugin store:
               | 
               | - Advanced Tables: for automatic formatting and table
               | operations of markdown tables
               | 
               | - Dynamic Table of Contents: allows you to include a
               | codeblock that automatically renders a table of contents
               | from headers of some level
               | 
               | - Natural language dates: insert dates in your preferred
               | format using language like 'next Friday' or 'first Monday
               | of June'
               | 
               | - Quick latex for Obsidian: autoformat and autocomplete
               | common latex commands (e.g. 'a/b' becomes '\frac{b}{a}'
               | 
               | - Tag Wrangler: rename, merge, toggle and search tags
               | easily
               | 
               | - Sliding Panes: changes notes to panes that can be
               | stacked similar to the ui of Andy Matushchak's notes [0]
               | (check it out, it's rather neat)
               | 
               | [0] https://notes.andymatuschak.org
        
               | timrichard wrote:
               | Some others that I like in my setup...
               | 
               | - Zoom: Work on part of a bullet list structure in
               | isolation, with a breadcrumb line at the top to jump to a
               | different parent level
               | 
               | - Copy button for code blocks
               | 
               | - Auto backup with Git
               | 
               | - Outliner: Vertical indentation lines for bullet lists,
               | and hotkeys to move list items about in the structure
               | 
               | - Recent files: List of files, ordered by most recently
               | opened
               | 
               | - Vimrc support
               | 
               | Not a plugin, but I tried to make a cheatsheet of the
               | supported Prism language types that I'm likely to use.
               | They can be specified in the code fences (```) so that
               | the code and config blocks in my markdown notes look
               | prettier : https://prismjs.com/#supported-languages
        
           | kretaceous wrote:
           | Yep. I'm not joking when I say that I've almost tried
           | everything. Joplin, Logseq, Boostnote, Tiddlywiki, Notion,
           | Foam, Workflowy, you name it.
           | 
           | I found out that I end up doing a lot of editing + file
           | organisation tricks native to my VSCode setup. So +1 to
           | kevinslin's sibling comment.
        
             | sigg3 wrote:
             | OrgMode?
        
           | mattrighetti wrote:
           | For anyone interested in Obsidian[0]
           | 
           | [0]: https://obsidian.md/
        
           | kevinslin wrote:
           | For folks that already use vscode, the selling point is being
           | able to continue to use vscode for everything, code and
           | markdown. VSCode has an editor experience that is hard to
           | beat
           | 
           | (also, disclaimer: I'm the author of the article and founder
           | of Dendron)
        
             | slightwinder wrote:
             | > VSCode has an editor experience that is hard to beat
             | 
             | VS Code is a text-editor focused on coding. Obsidian is a
             | markdown-editor focused on knowledge- and self-management.
             | They are each hard to beat in their own specialty. For
             | example, the WYSIWYG-Editor of obsidian is not something
             | that VS Codes raw text-view can beat, especially if you
             | combine it with add-ons for code-blocks.
        
           | bdefore wrote:
           | One missing component (last I heard) to the Obsidian story:
           | there's no web app. With Dendron and others, you can use
           | code-server to use VS Code in a browser. It's a better
           | workflow for ChromeOS, iPad nomads, Wayland users.
        
         | seltzered_ wrote:
         | The thing I keep sitting with is what one wants for _personal_
         | knowledge management vs. _collective_ knowledge management. I
         | 've been using athens research (
         | https://www.athensresearch.org/ ) so far after doing classnotes
         | in roam thinking one there could be extensions in the future to
         | make things 'feel' like navigating directories of markdown
         | files if really needed.
         | 
         | After reading more about dendron which states on
         | https://github.com/dendronhq/dendron "It's a personal knowledge
         | management solution (PKM) built specifically for developers and
         | integrates natively with IDEs like VS Code and VSCodium." , the
         | question is how these tools could serve a wider audience if
         | they were packaged more as standalone app (using something like
         | Eclipse Theia).
        
           | EricAAJohnson wrote:
        
           | kevinslin wrote:
           | In terms of making it available to a wider audience - Dendron
           | comes with a NextJS Template:
           | https://wiki.dendron.so/notes/4ushYTDoX0TYQ1FDtGQSg
           | 
           | This makes it easy to publish your notes as a static site.
           | The plan is to add optional server side capabilities here so
           | that it becomes possible to read *and* write notes, at which
           | point it becomes a web interface for note taking. It also
           | helps with the distribution problem (Dendron is used by teams
           | to publish documentation to non-technical folks so it helps
           | that they can access it as a regular webpage)
        
       | donutshop wrote:
       | I personally use https://github.com/foambubble/foam
       | 
       | Works great and straight forward to setup.
        
       | tkuraku wrote:
       | My knowledge base is a git repository full of markdown files and
       | vscode. I can easly goto a specific file or do text search across
       | all files. Minimal effort and no lockin to s specific tools.
        
       | minimaxir wrote:
       | Using VS Code + Markdown All in One
       | (https://marketplace.visualstudio.com/items?itemName=yzhang.m...)
       | has honestly been the most productive blogging tool I've used in
       | a very long time, moreso than dedicated Markdown blogging tools
       | like iA Writer. (granted half of that is due to "Paste link on
       | selected text" which is an embarrassingly common workflow for me)
       | 
       | Adding Prettier
       | (https://marketplace.visualstudio.com/items?itemName=esbenp.p...)
       | for its underdiscussed Markdown formatting keeps READMEs and blog
       | posts clean as well.
        
         | krono wrote:
         | Still amazed by the amount of external production dependencies
         | these VSCode extensions all seem to require. I wonder how tight
         | Microsoft's grip is on extension security and how deep any of
         | their automated checks might go.
         | 
         | The extension functionality does look great though. I wrote
         | some similar functions in my nvim which I would have really a
         | hard time living without.
        
           | qbasic_forever wrote:
           | It's no different or worse than the security model of any
           | other text editor or IDE. It runs as your user (unless you're
           | doing something zany like running an admin account), and it
           | can do anything your user can do like launch programs or
           | subprocesses you have access to execute. A vs code extension
           | isn't going to get some unexpected power like root privilege
           | to start messing with your system, opening low ports, etc.
        
             | krono wrote:
             | You're right, what I'm curious about is how difficult it'd
             | be to sneak a malicious command into some VSCode extension
             | update trough these production dependencies, and how far,
             | say, an rm -rf <allthethings> could reach from the trusted
             | project root directory from which it is executed.
             | 
             | I'm not a VSCode user myself, but it's pretty much the same
             | story with nvim.
             | 
             | edit: I suppose what I'm really getting at, is that,
             | depending on what their security measures look like, the
             | VSCode extension store might be giving some false sense of
             | security.
        
               | lstamour wrote:
               | A lot of supply chain security relies on trusted actors
               | doing the right thing. It's similar to how you can trust
               | an ingredients label.
               | 
               | I suppose I could mention that on a Mac, I use Objective-
               | See's tools to watch what programs do in the background.
               | And also on a Mac, you have to grant access to apps first
               | otherwise they can't normally access files. Of course,
               | that breaks down in reality as most apps are useless if
               | they can't access files.
               | 
               | If you really want a scare, consider that if you
               | compromise an ecosystem package (e.g. npm), you can run
               | on developer machines, CI systems and possibly in
               | production, while if you compromise a VS Code extension,
               | you only get dev machines.
               | 
               | If you're looking for a bit of extra protection, you can
               | run VS Code from a virtual machine or even run it from
               | Docker. Though the usual docker approach, using remote
               | containers extension, still runs on your local computer.
               | There's GitHub Codespaces or Google Cloud Shell that can
               | run VS Code remotely in a VM, though.
        
               | krono wrote:
               | Most projects I'm involved with require measures that go
               | a bit further still. Got to be honest though, it can be
               | frustrating at times.
               | 
               | Just sprinkling bits of awareness around by bringing some
               | of these considerations up whenever I can. It's an uphill
               | battle, although, the general carelessness around
               | extension and dependency use I'm seeing - and that even
               | after all the shit that's been going on in that space -
               | makes it one worth to fight.
               | 
               | Edit: Regarding the chain of trust you mention, that one
               | has sort of come and gone, and there is not a whole lot
               | of trust involved in the processes I'm saddled up with.
        
           | johnchristopher wrote:
           | It's not like simpler editors have saner defaults https://gro
           | ups.google.com/g/vim_dev/c/sRT9BtjLWMk/m/BRtSXNU4... (yeah, I
           | got bit by a variation of that one recently) (pro-tip: don't
           | let your autoloader scan for non php file)
        
         | kretaceous wrote:
         | +1. Also, Copy Image to File. Very very handy for snipping and
         | just pasting it in the Markdown document you're editing.
        
           | cyberge99 wrote:
           | This is an incredibly difficult plugin to search for. Can you
           | post a link to it or provide the author's name?
        
       | lysecret wrote:
       | I love writing in vs code and markdown (for my blog
       | https://leloew.com/blog/20220227_5_lines_of_js_for_a_markdow...)
       | they also have an unofficial grammarly plugin which works quite
       | well.
        
       | rcarmo wrote:
       | I've been trying Obsidian, Foam, Dendron, etc., and most of these
       | Zettelkasten-like editing environments have issues with relative
       | links (i.e., they don't let you specify a base folder) and/or
       | completely ignore front matter, which makes them hard to use when
       | you've got 8000-odd posts across a big directory tree.
       | 
       | (taoofmac.com is like that, and is actually a pretty big wiki)
       | 
       | I've been resisting hacking my own, but I suspect I will
       | eventually have to :)
        
         | kevinslin wrote:
         | I gave in to the temptation - hence Dendron
         | 
         | What issues did you encounter with Dendron? Would appreciate
         | feedback so we can make it better!
        
           | rcarmo wrote:
           | Well, it blew up trying to index my site, and it apparently
           | can't parse ISO dates in front matter, as well as not picking
           | up tags...
        
           | CJefferson wrote:
           | Not the original poster, but my main problem install Dendron
           | as a vacode plugin was sometimes my Dendron directory wasn't
           | "Dendron", and sometimed Dendron seemed to load and do things
           | when in directoris of unrelated markdown.
           | 
           | I never did figure out what was going wrong, but I moved to
           | Obsidian mainly so I had a clear separate note keeping app.
        
         | bobbylarrybobby wrote:
         | Have you used LogSeq? Its "thing" is that it doesn't have
         | folders, period. Your workspace is just a graph of files that
         | reference each other. In the event that a page's name has
         | slashes in it, the components will be treated as hierarchical
         | pages, but that's more of an emergent folders thing than real
         | folders (as changing the name of a page changes its own
         | hierarchy without renaming any of its parents in the hierarchy,
         | leaving the existing hierarchy intact)
        
           | codethief wrote:
           | > Have you used LogSeq?
           | 
           | Not OP but, personally, I was very disappointed when I found
           | out that Loqseq doesn't support free-form text / Markdown as
           | it's an outliner (only).
        
       | bachmeier wrote:
       | > drag and drop files into the editor to create a markdown link
       | 
       | This is nice, but I'd really prefer being able to drag and drop
       | and then have it uploaded to, say, OneDrive. Even better, be able
       | to paste a URL and have it download the file and then upload it
       | to OneDrive or Dropbox or whatever.
       | 
       | > find all references to header|links|files|urls inside of
       | markdown
       | 
       | Sometimes this sort of thing is nice to have, but doesn't it add
       | a lot of overhead when working with markdown files?
        
       ___________________________________________________________________
       (page generated 2022-05-08 23:00 UTC)