Still haven’t found what I’m looking for – but this might be closest

Ok. Maybe this is a good idea.

Problem: You want your students to keep track of their research in an open notebook. You don’t want to faff with jekyll and anything too complicated. You don’t know what kinds of machines your students will have, so it’s got to be cross-platform.

Perhaps a solution:

  1. Student creates a new folder on their machine called ‘open notebook’.
  2. Student downloads MDWiki (download link)
  3. Student unzips the mdwiki.html file into their ‘open notebook’ folder.
  4. Student renames mdwiki.html to index.html
  5. Student creates an ‘index.md’ file with whatever info they want displayed on the main page – see also the addendum at the end of this post.
  6. Student saves all notes as markdown text files in that folder, with the .md file extension, using a text editor. I will suggest Atom for reasons below.
  7. Student pushes that entire folder as a new repo on gh pages at github, or moves it onto a server somewhere else.
  8. Student opens the site in their browser. If there was a note in there called ‘Sept-19.md’, that can be seen by going to http://example.com/Sept-19.md, rendered in lovely html 5.

Ta da! A completely client-side website, built from the student’s notes. As the bumpf says,

MDwiki is a CMS/Wiki completely built in HTML5/Javascript and runs 100% on the client. No special software installation or server side processing is required. Just upload the mdwiki.html shipped with MDwiki into the same directory as your markdown files and you are good to go!
The advanced student can fancy up the display with very little effort; see the docs.
Now: With regard to notetaking. One thought, one note. Save as .md file. Notes become most useful when they’re crossreferenced or linked together. So:
  1. In atom, go to atom >preferences > install, and search for the nvatom package.
  2. Install the package
  3. In atom, go to atom > config and add this to the bottom of the file:

 

  nvatom:
    directory: "/path/to/student/opennotebook/"

and then save the config file.

Now, when the student has one of the note files open in Atom, she can hit alt-cmd-l to search through all the notes quickly just as one would with Notational Velocity (so the search window searches inside the file as well). The student can then click on the file name and have that file card open. To link between files, the student simply has to write the file name without the extension, between square brackets like so:

[[Plato's conception of the just]]

The student can then click on that link and hit alt-cmd-o to open that file henceforth. To make sure that the link can be understood by MDWiki, we do one last thing:

[[Plato's conception of the just]](Plato's conception of the just.md)

The link now works both within Atom and on the website.

Ta da!

Finally, to create a master list of all notes, the student can open the notebook folder at the terminal, and type

ls > all.md

Then open that list in Atom, add [[ ]] and ( ) as appropriate. Then, in the browser, once you’ve moved your changes online, you just have to go to the all.md file to see everything at once.

This is a helluva lot easier that fighting with Jekyll all day.

EDIT: Thoughts on How to Create Index Cards for Your MDWiki Site:

MDWiki doesn’t come with any sort of decent search. Static search for your site if you’re using jekyll etc depends on json and other things, which we don’t have. But we can work around this with a bash script. Let’s assume your index.md looks something like this:

# Joe's Open Notebook

## Project Keywords

[Greek History](greek-history.md)
[Roman History](roman-history.md)
[Design Studio](design-studio.md)
[Reading Notes](readings.md)

A list of [all](all.md) notecards.

Your index.md is an index to your research; use your own terms above as appropriate. In your notes, just make sure to use those keywords as appropriate.

Then use this script:

#! /bin/bash
#search for keywords in files.
echo "Please enter the search term"
read searchterm
find . -type f -exec grep -il $searchterm {} \; > tmp.txt
#take that list of file names, duplicate it, remove cruft, wrap in markdown links, write to md file
sed -E 's/([/. 0-9A-Za-z/-]+)/\1 \1/g' tmp.txt | sed -E 's/.\//\[/' | sed -E 's/\.md/\.md]/' | sed -E 's/.\//\(/' | sed -E 's/\.md$/\.md)/' | sed -E 's/[[:space:]]//g'> $searchterm.md

to search through your notes for those keywords. It’ll turn the file names into markdown links, and name the file with them whatever your search term was (in my case, things like reading-notes or archaeogaming. I also had lots of hypens and stupid characters in my names. Make life easy on yourself and don’t do that. (Incidentally, to get a list of all notecards, I used my script to search for ‘the’, and then renamed the.md to all.md.) It’s an ugly script, but it works for me. Your mileage may vary, so you’ll just need to tinker with the pattern matching. But it should work.

One flat, quick, easy-peasy open notebook.

 

2 thoughts on “Still haven’t found what I’m looking for – but this might be closest

    1. For my students who have macs, I’d just get them to use NVAlt or Notational Velocity directly (although saving notes as individual .md files, rather than in its database). For my windows students, I’d get them to try nvatom. (In the past, I’ve had them use resophnotes). The only real advantage in recommending nvatom is cross-platform compatibility.

Comments are closed.