Giter Site home page Giter Site logo

mschroen / science.md Goto Github PK

View Code? Open in Web Editor NEW
115.0 13.0 35.0 1.29 MB

An easy framework for drafting scientific documents: Write (Markdown), Compile (PDF, Word, HTML), Share.

License: GNU General Public License v3.0

Makefile 0.50% Batchfile 0.53% TeX 2.78% HTML 94.56% Python 1.64%
science paper-writing drafting-scientific-documents markdown pandoc

science.md's Introduction

Science.md

An easy framework for drafting scientific documents: Write (Markdown), Compile (PDF, Word, HTML), Share.

Science.md Howto

Concept

This framework is designed to make writing easier. It provides lots of helper scripts to do the work for you, like building the manuscript PDF, creating folders for milestones, generating diffs, and more. You can focus on writing, while formating, compiling, and collaborating will just work like a charm.

Philosophy: 100% tolerance, 0% borders

This product aims to serve everyone and does not try to convince people to use a specific platform or programming language.

  • Latex-Lovers and Word-Ethusiasts (Writers meet in the middle with Markdown, Colleagues can put comments in PDF or Word)
  • Console-geeks and Explorer-clickers (All scripts work from terminal as well as by a gentle double-click)
  • Online-addicted and offline-nostalgist (It's all local, but you can sync with a remote repo any time)
  • Security-paranoiacs and white-hearted (No dependency on someone else's server, it's all yours!)
  • Hillary and Donald

Technology

No fancy hacking. No strange dependencies. Science.md only uses standard shell commands, and well-accepted software tools (Pandoc, LaTeX, latexdiff, mutools). Even the templates are based on Pandoc's defaults with only tiny scholarly adpations. To be honest, the whole magic boils down to the Makefile and a few short scripts that let you process your manuscript as easy as pressing a button.

Advantages to other collaborative writing tools:

  • Write in Markdown: Focus on writing, not on Latex's commands or Word's formatting mess. Paper writing is now possible with simple plain text. And so is commenting by individual collaborators, creation of Gantt charts, and many more.
  • Self-hosting repositories: use any version control software hosted by you or your institution. Many institutions do not allow research to be hosted at someone else's server. You don't even have to use a remote repository, it's all yours!
  • Work offline from any location. That allows you to be independent from Wifi, and still be able to do fancy WYSIWYG writing in Markdown, e.g., using Typora.
  • Full control: It's your own folder, your own desktop, your own data. Add analysis scripts, processed data, sketches, ideas, and share anything without being bothered to upload. And by the way, it's only you who decides who has access to your repository.
  • Fast compilation: PDF and Word documents are created within seconds. By sharing both, your colleagues can choose how they want to annotate and comment your work. Want to put your paper on a website? It's just a millisecond away.
  • Fully adaptable: all the scripts and templates are open-source. Adapt it to your needs. For example, use a specific journal template, or add more features.
  • Project planning included: Markdown-based tools to make Gantt and Task lists.

Screenshots

  • Many screenshots are presented in Issue #1.
  • Please have a look at the files release/science.md.* to view some examples.
  • Here is a summary of some visualisations of Science.md output:

Science.md Screenshots of output

Requirements

OS

Science.md uses no OS-specific software and thus should work on any operating system. However, so far it has been tested only on Windows, and I would be glad if someone could test it on Mac and Linux!

config and run on amazon AMI linux

  • get docker run on AMAZON AMI

sudo yum install docker

  • get an image which is ready for pandoc and texlive ,fortunitly, there is one which we an use out-of-box.

sudo docker pull ivotron/pandoc

in your AMI linux ,use git to get Scince.md,then change to the direcotry.

  • then we can run the docker like this:

sudo docker run -d --name myscimd -v pwd:/usr/scimd ivotron/pandoc

since there is no scimd direcotry in the ivotron/pandoc image ,you should first go into a running one ,mkdir and then commmit the change.

  • go into the docker container like this:

sudo docker run exec -it containerid /bin/bash/

  • go into /usr/scimd

cd /usr/scimd

  • then use cmd :

make -s pdf or any others ,enjoy:). becuase we use docker to mount a direcoty ,you can find you output in you host linux ,they are in Scince.md/release direcotry.

Editing

You do not need anything to write your draft, but a simple text editor to edit the files content/*.md. Some text editor suggestions:

  • Simple, fast, syntax-highlighting: Notepad2,
  • Advanced, powerful, incl. Markdown preview: Atom Editor,
  • (most intuitive) What you see is what you get: Typora.

Compiling

If you want to compile your text to LaTeX, PDF, Word, or HTML, you need:

Then some very basic bash commands are needed. Most of them are actually standard on Linux and Mac, but Windows sometimes needs a slight additional kick.

  • make, cat, sed, du, rm, wc, e.g. from the cygwin distribution.
  • (Optional): A useful terminal, e.g., mintty, also from cygwin.

I recommend creating .png equivalents from every .pdf figure, such that HTML and Word output can actually display the (originally .pdf) figures. There is a handy script for this job in fig/pdf2png.bat, which requires mutools:

General Note: Please make sure that all the binary files of the installed tools are accessible from command line, i.e., registered in the system paths. E.g. on Windows, add all folders containing pandoc.exe, pdflate.exe, mutools.exe, cygwin/bin/sed.exe, ..., to the system path via Control Panel > System > Advanced > Environmental Variables.

Workflow

To start writing your paper, use this Science.md repository as a template. Just download the whole repository and copy all its content into the folder of your project, which is probably called "my_nature_paper-no3".

If you want to version-control or share your work, I'd recommend git , but also svn or anything else would do, it's all your choice. You can self-host the repository remotely on your own server if you want. There are many GUI tools for version-control, from which I think GitHub Desktop is the most easy to use for non-geeks.

  1. Get up to date with remote changes: git pull, or with GitHub Desktop press Sync.
  2. Examine what your colleagues did: git diff or git log, or with GitHub Desktop's History tab. Or use run the script release/diff.bat to create a latexdiff between the current and the latest released version.
  3. Contribute: change text in content/*.md, add figures to fig/*, etc.
  4. (Optional): compile to HTML, Word, PDF using make -s all or make.bat.
  5. (Optional): store a milestone version by using release/release.bat.
  6. Commit your work: git add . && git commit -am "Message", or with GitHub Desktop press Commit.
  7. Upload your contribution: git push, or with GitHub Desktop press Sync.

As soon as your paper is ready and went smoothly through the internal review, you can submit it to a journal. You can either submit the Word document, or the LateX document. Some journals require a certain LaTeX template, which should be easy to fill with the content from release/NAME.tex that Science.md generated for you.

Comments

  • Visible comments are framed by double equal signs, followed by your initials, space, and the text, e.g. ==XX I better like invisble comments, though.==. Use the YAML settings in content/title.md to add individual initials and the corresponding colors. Typora will highlight these comments with yellow shade if the setting is activated in the program preferences. In MS Word, individual colors are not supported due to pandoc limitations. Comments in general must not contain equal signs.
  • Invisible comments will not appear in the compiled output and can be of any length. Those comments follow the HTML style guide and look like this: <!--- this is a comment --->.

Figures

  • Figure files are located in the folder fig/
  • Always try to create .pdf files to assure high-quality figures. Only for pure photographs .jpg is acceptable. After adding or changing .pdf figures, go to fig/ and run pdf2png.bat. This will convert all .pdf figures to .png equivalents, which are easier to visualize in text editors, Word, and web browsers.
  • Add figures to the Markdown text using ![caption](../fig/name.png){#fig:label}. Use the .png extension even for .pdf figures, to make them visible for Typora, Word, HTML. The PDF compiled output will always use the corresponding .pdf file.

Literature

Add a citation using @Eistein1905 or [see also @Eistein1905]. The corresponding name must be appended to lit/references.bib. Those BibTeX entries can be found everywhere in the internet, e.g. using the google scholar search engine or the export feature of any reference manager.

Compile

The text from content/*.md can be compiled to Markdown, LaTeX, PDF, or Word.

  1. (Once): Open the file Makefile or make.bat and make sure that the .md files are arranged in the correct order. If you added new files to content/, also add them to the given list.

  2. If you have a capable terminal, run make -s all to compile to all available output formats. Use the flag -s to reduce verbose output. The following commands are available:

    • Markdown: make -s
    • LaTeX: make -s tex
    • PDF: make -s pdf
    • Word: make -s docx
    • all: make -s all
    • tidy up: make clean
  3. (Or): On Windows, you can simply double-click the file make.bat to compile to all output formats.

Release

The currently compiled files are stored in release/ and can be copied to an extra folder, release/version[Date]-[Time], to permanently save one version, which can be used later to perform diffs, for instance. This process has been automated, simply go to release/ and run release.bat.

Difference between two versions

  • The difference between two commits can be visualised with git diff, or using the GitHub Desktop GUI.
  • The difference between two released versions can be visualised using the latexdiff script that usually comes with the texlive distribution. Edit the file diff.bat by specifiying the two folders which you want to compare (the new version defaults to the current files in the release/folder). Then run diff.bat. It creates diffs from the two .tex files in the given folders and compiles a new diff.pdf where differences are nicely highlighted.

Markdown Syntax

  • citation: @Einstein2015, or [see @Einstein2015; @Newton1730, and references therein]
  • section: # Section, ## Subsection, ### Subsubsection {#sec:label}, ...
  • figure: ![caption](../fig/file.png){#fig:label}
  • math: $x=1$, $$ A=B $$ {#eq:label}, $$\begin{aligned} A &= B \\ C &= A+B \end{aligned}$$
  • reference: @Fig:label, [@Fig:label1; @fig:label1], @sec:label, @eq:label, @tbl:label, [Appendix @sec:label], [Appendices @sec:label1; Appendices @sec:label1]
  • comments: ==XX a random comment==, ==MS a personalized comment== (defined in content/title.md), <!--- invisible comment --->
  • code: `code` or paragraphs with a left-padding of 4 spaces
  • table:
    |  A  |               B | C     |
    | --: | --------------: | :---: |
    |  42 |         $y=x+1$ | True  |
    |  23 |            None | False |
    
    Table: Caption. {#tbl:label}
    

Further reading

  1. G. Wilson et al. (2016): Good Enough Practices in Scientific Computing
  2. A. Bartlett (2016): Git for Humans
  3. StackExchange TeX (2014): LaTeX vs Word; improvements of LaTeX over the years
  4. D. Krishnamurthy (2015): Writing Technical Papers with Markdown
  5. Ch. Krycho (2015): Academic Markdown and Citations
  6. D. Leijen (2016): Madoko - Write Beautiful Documents
  7. Knauff and Nejasmic (2015): An Efficiency Comparison of Document Preparation Systems Used in Academic Research and Development
  8. Marcio von Muhlen (2014): We Need a Github of Science

science.md's People

Contributors

jf-soft avatar meflyup avatar mschroen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

science.md's Issues

integration with jupyter?

Awsome job on this! I am wondering if you see this being used in jupyter md? Thanks a lot in advance!

--smart/-S has been removed. Use +smart or -smart extension instead.

$ make -s all
| cat content/*.md > release/Markdown_theme.md
>  3.8K release/Markdown_theme.md
i Less than 595 words
| sed s/==XX comment==/[XX] comment/ release/Markdown_theme.md
| pandoc release/Markdown_theme.md -o release/Markdown_theme.html
--smart/-S has been removed.  Use +smart or -smart extension instead.
For example: pandoc -f markdown+smart -t markdown-smart.
Try pandoc.exe --help for more information.
Makefile:93: recipe for target 'html' failed
make: *** [html] Error 2

from this [link[(https://github.com/rstudio/rmarkdown/issues/1120), the answer is XXX doesn't support pandoc 2.0

which version should i use?

could you upgrade this pro?

thanks bro. love your work.

*.bat scripts do not work for Mac/Linux

Due to the fact that operating systems interpret .bat scripts differently, currently the following files only work on Windows:

  • make.bat
  • release/diff.bat
  • release/release.bat
  • plan/Gantt2html.bat

The problem basically boils down to (1) special newline characters, (2) special escaping characters, and (3) special sed syntax. Those are different from system to system (e.g., character ^ on Windows).

Mac and Linux users are asked to resolve this issue. Thanks!

Screenshots

Science.md Editing with Typora
Science.md Editing with Typora

Science.md make
Science.md make

Science.md PDF export Science.md PDF export

Science.md Latexdiff
Science.md Latexdiff

Science.md DOCX export
Science.md DOCX export

Science.md HTML export
Science.md HTML export

Science.md Gantt and planning tools using simple text
Science.md Gantt

Install tutorial for macOS, Please!!!

It would be much better for macOS users, if there is an install tutorial for macOS and that would be very helpful, because macOS is not very similar to Linux.
Thank You!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.