aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorps-george <george.punter15@imperial.ac.uk>2018-03-05 16:46:45 +0000
committerGitHub <noreply@github.com>2018-03-05 16:46:45 +0000
commita68008fc531068b8d713808a0a365e6647ba061c (patch)
treefa490c01de163ce51902a31c626ea2aaffb5dd9d /README.md
parentbf54da9758a0a6a032ce79a51d2000d4448bf36e (diff)
downloadFMark-a68008fc531068b8d713808a0a365e6647ba061c.tar.gz
FMark-a68008fc531068b8d713808a0a365e6647ba061c.zip
Update README.md
Diffstat (limited to 'README.md')
-rw-r--r--README.md131
1 files changed, 35 insertions, 96 deletions
diff --git a/README.md b/README.md
index 94944b9..174214a 100644
--- a/README.md
+++ b/README.md
@@ -5,112 +5,51 @@ FSharp markdown.
[![Build Status](https://travis-ci.org/ymherklotz/FMark.svg?branch=master)](https://travis-ci.org/ymherklotz/FMark)
-## Features
+## Modules
-- Generating html
-- Lexer for markdown
-- Parser for markdown
+```
+Overall Flowchart:
+
+ ┌─────────────────────┐ ┌───────────────┐
+Source ───> │ Lex and Preprocessor│ ───> Token list ───> │ TOCite Parse │ ──> Token list with identifiers ┐
+ └─────────────────────┘ │ └───────────────┘ │
+ │ │ │
+ │ └──────────────────────────────> Header+Footer list ────>────┤
+ │ │
+ │ ┌──────────────┐ │
+ └────────> │ Markalc Parse│────────── Table ────────────>──────────────│
+ └──────────────┘ │
+ │
+ ┌─────────┐ ┌─────────────┐ │
+ Final Document <──── │ HTMLGen │ <──── ParsedObj list <──── │ Main Parser │ <────────────────┘
+ └─────────┘ └─────────────┘
+```
-### MarkDown
+(Lexer and Preprocessor)[FMark/Lexer/README.md]
+(TOCite: Table of Contents and Citations)[FMark/TOCite/README.md]
+(Markalc: Spreadsheet functionality)[FMark/Markalc/README.md]
+(Main Parser)[FMark/Parser/README.md]
-- Headers
-- Paragraphs
-- Lists
-- Links
-- BlockQuoting
-- Picture embedding
-- Tables
-- Code box
-- Text attributes
-- Frontmatter / Metadata
+## Specification
-### Extra
+A reference specification for the simple markdown that we are going to follow can be found
+at [CommonMark](http://spec.commonmark.org/0.27/).
+
+A reference implementation of the simple markdown can be found [here](http://spec.commonmark.org/dingus/).
+
+## Markdown extensions (not included in standard Markdown)
- Math equation rendering (Mathjax)
- Citation
- Table of contents
- Spreadsheet functionality
+- Macros
-### Desirable Result
-- Extensible Code
- - Add names to features, so users can render them differently
- such as editing the type of citation used and how to output them.
-- User defined delimiters / patterns -> Preprocessor
-
-### Maybe's
+### Potential extensions
-- References
+- References ()
- Realtime rendering
-- Diagrams (Graphviz) -> Proof that it is extensible
-- autoformatting
-
-## Splitting
-
-Global Types
-
-- Person1 - Lexer `(lex : string -> Token list)`, PreProcessor `(preProcess : string -> string)`
-- Person2 - Formatting / print HTML: Header, Paragraph, Lists, Table ->
-Simple parser `(printHtml : ParsedObj list -> string)`, `(printToFile : string -> ())`
-- Person3 - Tables: Spreadsheet, DSL `(updateTable : Table -> Table)`
-- Person4 - Citations (extensible), Table of contents -> Simple Parser `(parse : Token list -> ParseObj list)`
-
-## Overview
-
-### Pre Processor
-
-Goes through the source of the markdown file and processes #define like directives.
-
-```fsharp
-type Macro = { Name : string; Body : string }
-
-val preProcess = string -> string
-
-val readMacros = string -> Macro list
-
-val replaceMacro = string -> Macro list -> string
-```
-
-### Lexer
-
-Lexes the source into tokens.
+- Diagrams (Graphviz)
+- Autoformatting
+- Syntax/Error highlighting
-```fsharp
-type Token = Word of string | TripleTick | Pipe ...
-
-val lex = string -> Token list
-```
-
-### Parser
-
-Parses the Token list
-
-```fsharp
-type InlineObj = Word | FormattedWord
-type Line = InlineObj list
-type PInside = Line
-type ParsedObj = Paragraph of PInside list | CodeBlock | MDList...
-
-type Table = Line list list
-
-val parse = Token list -> ParseObj list
-
-// outputs table with updated cells, which is determined by the DSL.
-val updateTable = Table -> Table
-```
-
-### AST
-
-Outputs html
-
-```fsharp
-val printHtml = ParsedObj list -> string
-
-val printToFile = string -> ()
-```
-
-## Specification
-
-A reference specification for the simple markdown that we are going to follow can be found
-at [CommonMark](http://spec.commonmark.org/0.27/).
-
-A reference implementation of the simple markdown can be found [here](http://spec.commonmark.org/dingus/).