marko 0.1.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +47 -0
- data/Gemfile.lock +3 -2
- data/README.md +16 -13
- data/Rakefile +5 -0
- data/STORY.md +44 -0
- data/_layouts/footer.md +4 -0
- data/_layouts/header.md +3 -0
- data/_layouts/layout.html +73 -0
- data/_layouts/robots.txt.erb +4 -0
- data/_layouts/sitemap.xml.erb +20 -0
- data/_layouts/styles.css +92 -0
- data/docs/changelog.html +74 -0
- data/docs/css/styles.css +92 -0
- data/docs/index.html +297 -0
- data/docs/readme.html +297 -0
- data/docs/robots.txt +4 -0
- data/docs/sitemap.xml +30 -0
- data/docs/story.html +132 -0
- data/exe/marko +4 -2
- data/lib/assets/demo/README.md +2 -2
- data/lib/assets/demo/src/ur/uc.general.flow.md +1 -1
- data/lib/assets/init/README.md +1 -1
- data/lib/assets/init/Rakefile +2 -2
- data/lib/assets/init/tt/custom.md.tt +19 -0
- data/lib/assets/init/tt/default.md.tt +4 -0
- data/lib/assets/samples/0_index.md +14 -0
- data/lib/assets/samples/1_intro.md +55 -0
- data/lib/assets/samples/2_stakh.md +21 -0
- data/lib/assets/samples/3_actors.md +10 -0
- data/lib/assets/samples/4_cases.md +53 -0
- data/lib/assets/samples/5_entities.md +18 -0
- data/lib/assets/samples/6_concerns.md +60 -0
- data/lib/assets/samples/SRS-IEEE-830-1998.md +293 -0
- data/lib/assets/samples/SRS-RUP.md +283 -0
- data/lib/assets/samples/business-case.md +116 -0
- data/lib/assets/samples/ears.md +112 -0
- data/lib/assets/samples/gen_punch_domain.rb +183 -0
- data/lib/assets/samples/requirements.md +105 -0
- data/lib/assets/samples/stakeholders.png +0 -0
- data/lib/assets/samples/vision.md +191 -0
- data/lib/marko/artifact.rb +3 -1
- data/lib/marko/assembler.rb +1 -0
- data/lib/marko/cli.rb +10 -2
- data/lib/marko/markup/compiler.rb +3 -9
- data/lib/marko/markup/decorator.rb +45 -30
- data/lib/marko/markup/storage.rb +37 -19
- data/lib/marko/tree_node.rb +3 -2
- data/lib/marko/version.rb +1 -1
- data/lib/marko.rb +8 -0
- data/sancho.yml +6 -0
- metadata +35 -4
- data/lib/assets/init/tt/artifact.md.tt +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c3511e83282f71094f00c81bd8d926df0b0b9ecd7fa90fe978111e4b2d51afb
|
4
|
+
data.tar.gz: 34810477d8a4449873eda8799ccd57f47726d35884c721d46e0c606119ca91c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f0c0838b0c0f7328d927664e56caf58f787175bd0aa9883700b6a12377c1483e979138f021f8d3588bc287131292e889d6af0cecebfd29780a83588cb2e8291
|
7
|
+
data.tar.gz: d7441f513814ad56d4c91cbd09ace4cdd56e5cbaef5598f15f15dbb66b2770eb54fab2fd1580920df1375ee0f1f6ec0427b4df52fb871f432a4fb50a591fc85e
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,52 @@
|
|
1
|
+
---
|
2
|
+
title: Marko Changelog
|
3
|
+
keywords:
|
4
|
+
- ruby
|
5
|
+
- markup-compiler
|
6
|
+
...
|
7
|
+
|
1
8
|
## [Unreleased]
|
2
9
|
|
10
|
+
- [ ] add order_index to Artifact?
|
11
|
+
|
12
|
+
## [0.3.0] - 2023-11-22
|
13
|
+
|
14
|
+
- changed `Markup::Compiler` for using collection instead of decorated object
|
15
|
+
- changed `Markup::Decorator` for providing `#text` than combines header, props, and body
|
16
|
+
- changed `default` and `custom` templates
|
17
|
+
- fixed `rake marko:toc` for using `abort` instead of `return` for empty query
|
18
|
+
- removed unused `id` from `marko.yml`
|
19
|
+
|
20
|
+
## [0.2.4] - 2023-11-21
|
21
|
+
|
22
|
+
- changed compiler for using `trim_mode: '%<>'` for ERB
|
23
|
+
- changed decorator
|
24
|
+
- removed `?\n` in `#header`, `#body`
|
25
|
+
- changed `#meta` for returning original meta without system keys
|
26
|
+
- added `#props` for creating `meta` table
|
27
|
+
- added `alias :topic :header`
|
28
|
+
- changed `tt/artifact.md.tt` for removing extra empty lines
|
29
|
+
- added `tt/custom.md.tt` as an example of handling custom meta keys
|
30
|
+
- added test for `tt/*.md.tt`
|
31
|
+
|
32
|
+
## [0.2.3] - 2023-11-06
|
33
|
+
|
34
|
+
- upgraded for Ruby 3.2
|
35
|
+
- fixed `assets/init/Rakefile` for lost file extension
|
36
|
+
- removed extra word from README
|
37
|
+
|
38
|
+
## [0.2.2] - 2023-04-14
|
39
|
+
|
40
|
+
- changed artifact filename into `bin/artifact.md`; fixed `README.md`
|
41
|
+
- removed Psych object string from `marko.yml`
|
42
|
+
- changed `TreeNode#belongs_to?`
|
43
|
+
|
44
|
+
## [0.2.0] - 2023-02-11
|
45
|
+
|
46
|
+
- added `$ marko samples` that copies samples into `.marko/samples`
|
47
|
+
- fixed "Marko v0.1.3" error gem version
|
48
|
+
- changed `$ marko demo`, now it copies demo into `.marko/demo`
|
49
|
+
|
3
50
|
## [0.1.0] - 2023-01-02
|
4
51
|
|
5
52
|
- Initial release
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
marko (0.
|
4
|
+
marko (0.3.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -10,6 +10,7 @@ GEM
|
|
10
10
|
rake (13.0.6)
|
11
11
|
|
12
12
|
PLATFORMS
|
13
|
+
x64-mingw-ucrt
|
13
14
|
x64-mingw32
|
14
15
|
x86_64-linux
|
15
16
|
|
@@ -19,4 +20,4 @@ DEPENDENCIES
|
|
19
20
|
rake (~> 13.0)
|
20
21
|
|
21
22
|
BUNDLED WITH
|
22
|
-
2.4.
|
23
|
+
2.4.5
|
data/README.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
|
1
|
+
---
|
2
|
+
title: Marko Readme
|
3
|
+
keywords:
|
4
|
+
- ruby
|
5
|
+
- markup-compiler
|
6
|
+
...
|
2
7
|
|
3
8
|
Marko is a markup compiler that builds a tree from separated sources and compiles it into a single deliverable artifact.
|
4
9
|
|
@@ -26,12 +31,12 @@ To help you with task automation, Marko provides `Marko.assemble` for assembling
|
|
26
31
|
|
27
32
|
### Structure
|
28
33
|
|
29
|
-
`marko new PROJECT` command will create a new
|
34
|
+
`marko new PROJECT` command will create a new Marko project inside the `PROJECT` directory with following structure:
|
30
35
|
|
31
36
|
- [bin/](bin/) - output folder for `build`
|
32
37
|
- [bin/assets/](bin/assets/) - assets folder
|
33
38
|
- [src/](src/) - markup sources
|
34
|
-
- [tt/](tt/) - templates
|
39
|
+
- [tt/](tt/) - compiler templates
|
35
40
|
- [marko.yml](marko.yml) - project configuration
|
36
41
|
- [Rakefile](Rakefile) - Rake automation file
|
37
42
|
- [README.md](README.md) - this file
|
@@ -110,27 +115,25 @@ The TreeNode.body can include macros. The most helpful one is `[[reference.id]]`
|
|
110
115
|
|
111
116
|
- `@@tree` substituted by the tree of references to all descendants of the current node, might be used for the table of contents;
|
112
117
|
- `@@list` substituted by the list of references to node items;
|
113
|
-
- `@@todo` will
|
118
|
+
- `@@todo` will skip text with the macro till the end of the line
|
114
119
|
- `@@skip` will skip the text after the macro
|
115
120
|
|
116
121
|
### Templates
|
117
122
|
|
118
|
-
Marko uses templates placed under the `tt` folder to compile sources into artifacts. You can use and customize the default one or design your own for particular purposes. It's just pure ERB, where Marko
|
123
|
+
Marko uses templates placed under the `tt` folder to compile sources into artifacts. You can use and customize the default one or design your own for particular purposes. It's just pure ERB, where Marko renders collection of decorated TreeNodes.
|
119
124
|
|
120
125
|
```
|
121
|
-
|
122
|
-
<%=
|
123
|
-
|
126
|
+
% @model.each do |node|
|
127
|
+
<%= node.text %>
|
128
|
+
% end
|
124
129
|
```
|
125
130
|
|
126
131
|
The `marko.yml` configuration file sets the building process's default template and other default values.
|
127
132
|
|
128
133
|
```yml
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
template: tt/artifact.md.tt
|
133
|
-
filename: tt/marko-artifact.md
|
134
|
+
title: Artifact
|
135
|
+
template: tt/default.md.tt
|
136
|
+
filename: bin/artifact.md
|
134
137
|
```
|
135
138
|
|
136
139
|
### Automation
|
data/Rakefile
CHANGED
data/STORY.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
title: Marko Story
|
3
|
+
date: 2023-01-26
|
4
|
+
...
|
5
|
+
|
6
|
+
[Marko](https://github.com/nvoynov/marko) is the result of my ten-year journey with Ruby playing the Business Analyst role.
|
7
|
+
|
8
|
+
## Childhood, 2012
|
9
|
+
|
10
|
+
Somewhere in between 2011 and 2014 I was playing Software Engineer role in some BigKnownCo where my first and foremost working tool was Microsoft Word 2007. Requirements specifications and Architecture design documents Artifacts that I was mainly working on often consisted of one and more hundreds of pages and it was such a pain to deal with in MS Word which was the corporate standard.
|
11
|
+
|
12
|
+
In simple words it just gone crazy on large documents, the program consumed all my RAM, document navigation was slow, the program simply stopped responding, which entailed restarting the process with a loss of changes; or even worse, the loss of style formatting that is invisible to the eye when you simply cannot see it that the formatting was lost somewhere on the 225th page.
|
13
|
+
|
14
|
+
> So problem was clear "__The problem of__ the lack of simple reliable tools and approaches for writing software artifacts __affects__ technical writers who develop and manage the artifacts __the impact of which is__ they tend to choose.."
|
15
|
+
|
16
|
+
And I come up with the idea to create something light, simple and reliable to eliminate the MS Word from my work experience once and for all. This time I was curious about using YAML for storing requirements just inside file system. And I regularly done some estimations and prioritization for requirements, so I decided that FPA, PERT, and Risk-Value prioritization will be valuable features here.
|
17
|
+
|
18
|
+
It was my first serious diving into Ruby for few weeks. I succeeded in reading / writing YAML and even provided estimations algorithms. I fall in love with Ruby. But from user perspective (I was the user) it was complete failure. Writing YAML manually was just unforgivable but that time I was obsessed with the format.
|
19
|
+
|
20
|
+
> YAML was chosen just because this days I dramatically reduced time for load configuration of my target service provisioning system, that stored its configuration tree in RDBMS that causes ~5 000 000 selects for reading and about the same number insert/update for writing. It just reduced to 20 000 instead of 5 000 000.
|
21
|
+
|
22
|
+
## Adolescence, 2014 - 2015
|
23
|
+
|
24
|
+
It took two years to return to the subject, I left that job in 2014 and got haft year off. This time I discovered Markdown and static site generators, and I decided on Markdown as my primary markup format, where each source is just a plain markdown file with some metadata excerpt.
|
25
|
+
|
26
|
+
Things were going well and in a few months, I got something quite usable. Estimations algorithms were thrown out; markup sources were assembled in one artifact that was translated into HTML by Kramdown. I named it "Creq" for "console requirements" and since then I assembled all software artifacts in my own tool.
|
27
|
+
|
28
|
+
## Youth, since 2015
|
29
|
+
|
30
|
+
Using my tool daily on a regular basis I discovered Pandoc and then can translate my artifact into any supported format; provided more advanced artifact templates, and provided a few templates for different purposes (draft, customer deliverable, etc.), added macros for tree node body.
|
31
|
+
|
32
|
+
This time I named my tool Clerq because it just was my regular tool - I started my day from `$ git checkout -b new_feature` and finished with merging the branch, assembling new requirements increment, and pushing into git for my development team.
|
33
|
+
|
34
|
+
In 2018 I have read The Clean Architecture I took my first clumsy attempts to apply it for Clerq.
|
35
|
+
|
36
|
+
## Marko, 2022
|
37
|
+
|
38
|
+
The last time I used Clerq for two months in July 2022. I noticed that time that I use only "create a new project" and "build the artifact" commands. And I realized that there is nothing about requirements - just about artifact assembling.
|
39
|
+
|
40
|
+
So I took two weeks and finished 2022 with a git commit on Dec 31, 2022 :)
|
41
|
+
|
42
|
+
The Marko purpose is assembling markup artifact from separated markup sources. Its interfaces are simple and clear. It could be naturally extended through Rakefile for any specific purpose related to visiting artifacts tree nodes.
|
43
|
+
|
44
|
+
This is the first time I feel for a product that there are nothing I want to take or change. Just "Right Product, Done Right, Managed Messy"
|
data/_layouts/footer.md
ADDED
data/_layouts/header.md
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="pandoc" />
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
7
|
+
$for(author-meta)$
|
8
|
+
<meta name="author" content="$author-meta$" />
|
9
|
+
$endfor$
|
10
|
+
$if(date-meta)$
|
11
|
+
<meta name="dcterms.date" content="$date-meta$" />
|
12
|
+
$endif$
|
13
|
+
$if(keywords)$
|
14
|
+
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
15
|
+
$endif$
|
16
|
+
$if(description-meta)$
|
17
|
+
<meta name="description" content="$description-meta$" />
|
18
|
+
$endif$
|
19
|
+
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
20
|
+
<style>
|
21
|
+
$styles.html()$
|
22
|
+
</style>
|
23
|
+
$for(css)$
|
24
|
+
<link rel="stylesheet" href="$css$" />
|
25
|
+
$endfor$
|
26
|
+
$for(header-includes)$
|
27
|
+
$header-includes$
|
28
|
+
$endfor$
|
29
|
+
$if(math)$
|
30
|
+
$math$
|
31
|
+
$endif$
|
32
|
+
<!--[if lt IE 9]>
|
33
|
+
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
34
|
+
<![endif]-->
|
35
|
+
</head>
|
36
|
+
<body>
|
37
|
+
$for(include-before)$
|
38
|
+
$include-before$
|
39
|
+
$endfor$
|
40
|
+
$if(title)$
|
41
|
+
<header id="title-block-header">
|
42
|
+
<h1 class="title">$title$</h1>
|
43
|
+
$if(subtitle)$
|
44
|
+
<p class="subtitle">$subtitle$</p>
|
45
|
+
$endif$
|
46
|
+
$for(author)$
|
47
|
+
<p class="author">$author$</p>
|
48
|
+
$endfor$
|
49
|
+
$if(date)$
|
50
|
+
<p class="date">$date$</p>
|
51
|
+
$endif$
|
52
|
+
$if(abstract)$
|
53
|
+
<div class="abstract">
|
54
|
+
<div class="abstract-title">$abstract-title$</div>
|
55
|
+
$abstract$
|
56
|
+
</div>
|
57
|
+
$endif$
|
58
|
+
</header>
|
59
|
+
$endif$
|
60
|
+
$if(toc)$
|
61
|
+
<nav id="$idprefix$TOC" role="doc-toc">
|
62
|
+
$if(toc-title)$
|
63
|
+
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
64
|
+
$endif$
|
65
|
+
$table-of-contents$
|
66
|
+
</nav>
|
67
|
+
$endif$
|
68
|
+
$body$
|
69
|
+
$for(include-after)$
|
70
|
+
$include-after$
|
71
|
+
$endfor$
|
72
|
+
</body>
|
73
|
+
</html>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
3
|
+
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
|
4
|
+
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
5
|
+
|
6
|
+
<url>
|
7
|
+
<loc><%= @site.domain %>/</loc>
|
8
|
+
<lastmod><%= @site.pages_by_date.first.date %></lastmod>
|
9
|
+
<changefreq>weekly</changefreq>
|
10
|
+
<priority>1.0</priority>
|
11
|
+
</url>
|
12
|
+
<% @site.pages.each do |page| %>
|
13
|
+
<url>
|
14
|
+
<loc><%= @site.domain %>/<%= page.url %></loc>
|
15
|
+
<lastmod><%= page.date %></lastmod>
|
16
|
+
<changefreq>weekly</changefreq>
|
17
|
+
<priority>0.8</priority>
|
18
|
+
</url>
|
19
|
+
<% end %>
|
20
|
+
</urlset>
|
data/_layouts/styles.css
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
body {
|
2
|
+
margin: auto;
|
3
|
+
padding-right: 1em;
|
4
|
+
padding-left: 1em;
|
5
|
+
max-width: 44em;
|
6
|
+
color: black;
|
7
|
+
font-family: Verdana, sans-serif;
|
8
|
+
font-size: 100%;
|
9
|
+
line-height: 140%;
|
10
|
+
color: #333;
|
11
|
+
}
|
12
|
+
|
13
|
+
pre {
|
14
|
+
border: 1px dotted gray;
|
15
|
+
background-color: #ececec;
|
16
|
+
color: #1111111;
|
17
|
+
padding: 0.5em;
|
18
|
+
}
|
19
|
+
|
20
|
+
code {
|
21
|
+
font-family: monospace;
|
22
|
+
font-size: 140%;
|
23
|
+
color: #b34700;
|
24
|
+
}
|
25
|
+
|
26
|
+
h1 a, h2 a, h3 a, h4 a, h5 a {
|
27
|
+
text-decoration: none;
|
28
|
+
color: #7a5ada;
|
29
|
+
}
|
30
|
+
|
31
|
+
h1, h2, h3, h4, h5 {
|
32
|
+
font-family: verdana;
|
33
|
+
font-weight: bold;
|
34
|
+
border-bottom: 1px dotted black;
|
35
|
+
color: #7a5ada;
|
36
|
+
}
|
37
|
+
|
38
|
+
h1 {
|
39
|
+
font-size: 130%;
|
40
|
+
}
|
41
|
+
|
42
|
+
h2 {
|
43
|
+
font-size: 110%;
|
44
|
+
}
|
45
|
+
|
46
|
+
h3 {
|
47
|
+
font-size: 95%;
|
48
|
+
}
|
49
|
+
|
50
|
+
h4 {
|
51
|
+
font-size: 90%;
|
52
|
+
font-style: italic;
|
53
|
+
}
|
54
|
+
|
55
|
+
h5 {
|
56
|
+
font-size: 90%;
|
57
|
+
font-style: italic;
|
58
|
+
}
|
59
|
+
|
60
|
+
h1.title {
|
61
|
+
font-size: 200%;
|
62
|
+
font-weight: bold;
|
63
|
+
padding-top: 0.2em;
|
64
|
+
padding-bottom: 0.2em;
|
65
|
+
text-align: left;
|
66
|
+
border: none;
|
67
|
+
}
|
68
|
+
|
69
|
+
dt code {
|
70
|
+
font-weight: bold;
|
71
|
+
}
|
72
|
+
|
73
|
+
dd p {
|
74
|
+
margin-top: 0;
|
75
|
+
}
|
76
|
+
|
77
|
+
#footer {
|
78
|
+
padding-top: 1em;
|
79
|
+
font-size: 70%;
|
80
|
+
color: gray;
|
81
|
+
text-align: center;
|
82
|
+
}
|
83
|
+
|
84
|
+
.navbar {
|
85
|
+
background: #fff;
|
86
|
+
border-bottom: 1px solid #000;
|
87
|
+
margin: 0 0 1em;
|
88
|
+
padding: 1em 0;
|
89
|
+
position: sticky;
|
90
|
+
top: 0;
|
91
|
+
z-index: 100;
|
92
|
+
}
|
data/docs/changelog.html
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="pandoc" />
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
7
|
+
<meta name="keywords" content="ruby, markup-compiler" />
|
8
|
+
<title>Marko Changelog</title>
|
9
|
+
<style>
|
10
|
+
code{white-space: pre-wrap;}
|
11
|
+
span.smallcaps{font-variant: small-caps;}
|
12
|
+
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
13
|
+
div.column{flex: auto; overflow-x: auto;}
|
14
|
+
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
15
|
+
ul.task-list{list-style: none;}
|
16
|
+
ul.task-list li input[type="checkbox"] {
|
17
|
+
width: 0.8em;
|
18
|
+
margin: 0 0.8em 0.2em -1.6em;
|
19
|
+
vertical-align: middle;
|
20
|
+
}
|
21
|
+
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
22
|
+
</style>
|
23
|
+
<link rel="stylesheet" href="css/styles.css" />
|
24
|
+
<!--[if lt IE 9]>
|
25
|
+
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
26
|
+
<![endif]-->
|
27
|
+
</head>
|
28
|
+
<body>
|
29
|
+
<p class="navbar">
|
30
|
+
<span class="smallcaps">= <strong>“Marko” Markup Compiler</strong> = <a
|
31
|
+
href="readme.html">Readme</a> ~ <a href="changelog.html">Changelog</a> ~
|
32
|
+
<a href="story.html">Story</a> ~ <a
|
33
|
+
href="https://github.com/nvoynov/sancho">Github</a></span>
|
34
|
+
</p>
|
35
|
+
<header id="title-block-header">
|
36
|
+
<h1 class="title">Marko Changelog</h1>
|
37
|
+
</header>
|
38
|
+
<nav id="TOC" role="doc-toc">
|
39
|
+
<ul>
|
40
|
+
<li><a href="#unreleased" id="toc-unreleased">[Unreleased]</a></li>
|
41
|
+
<li><a href="#section" id="toc-section">[0.2.0] - 2023-02-11</a></li>
|
42
|
+
<li><a href="#section-1" id="toc-section-1">[0.1.0] -
|
43
|
+
2023-01-02</a></li>
|
44
|
+
</ul>
|
45
|
+
</nav>
|
46
|
+
<h2 id="unreleased">[Unreleased]</h2>
|
47
|
+
<p>TODO</p>
|
48
|
+
<ul>
|
49
|
+
<li>custom code (Rakefile?)
|
50
|
+
<ul>
|
51
|
+
<li>FPA, PERT estimation sheets based on old gems</li>
|
52
|
+
<li>“complexity” based on node incoming/outgoing links</li>
|
53
|
+
<li>this might be helpful for estimations, some sort of adapted FPA in
|
54
|
+
story points!</li>
|
55
|
+
</ul></li>
|
56
|
+
</ul>
|
57
|
+
<h2 id="section">[0.2.0] - 2023-02-11</h2>
|
58
|
+
<ul>
|
59
|
+
<li>added <code>$ marko samples</code> that copies samples into
|
60
|
+
<code>.marko/samples</code></li>
|
61
|
+
<li>fixed “Marko v0.1.3” error gem version</li>
|
62
|
+
<li>changed <code>$ marko demo</code>, now it copies demo into
|
63
|
+
<code>.marko/demo</code></li>
|
64
|
+
</ul>
|
65
|
+
<h2 id="section-1">[0.1.0] - 2023-01-02</h2>
|
66
|
+
<ul>
|
67
|
+
<li>Initial release</li>
|
68
|
+
</ul>
|
69
|
+
<div id="footer">
|
70
|
+
<hr />
|
71
|
+
<p>© 2022-2023 <a href="http://nvoynov.github.io/">nvoynov</a></p>
|
72
|
+
</div>
|
73
|
+
</body>
|
74
|
+
</html>
|
data/docs/css/styles.css
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
body {
|
2
|
+
margin: auto;
|
3
|
+
padding-right: 1em;
|
4
|
+
padding-left: 1em;
|
5
|
+
max-width: 44em;
|
6
|
+
color: black;
|
7
|
+
font-family: Verdana, sans-serif;
|
8
|
+
font-size: 100%;
|
9
|
+
line-height: 140%;
|
10
|
+
color: #333;
|
11
|
+
}
|
12
|
+
|
13
|
+
pre {
|
14
|
+
border: 1px dotted gray;
|
15
|
+
background-color: #ececec;
|
16
|
+
color: #1111111;
|
17
|
+
padding: 0.5em;
|
18
|
+
}
|
19
|
+
|
20
|
+
code {
|
21
|
+
font-family: monospace;
|
22
|
+
font-size: 140%;
|
23
|
+
color: #b34700;
|
24
|
+
}
|
25
|
+
|
26
|
+
h1 a, h2 a, h3 a, h4 a, h5 a {
|
27
|
+
text-decoration: none;
|
28
|
+
color: #7a5ada;
|
29
|
+
}
|
30
|
+
|
31
|
+
h1, h2, h3, h4, h5 {
|
32
|
+
font-family: verdana;
|
33
|
+
font-weight: bold;
|
34
|
+
border-bottom: 1px dotted black;
|
35
|
+
color: #7a5ada;
|
36
|
+
}
|
37
|
+
|
38
|
+
h1 {
|
39
|
+
font-size: 130%;
|
40
|
+
}
|
41
|
+
|
42
|
+
h2 {
|
43
|
+
font-size: 110%;
|
44
|
+
}
|
45
|
+
|
46
|
+
h3 {
|
47
|
+
font-size: 95%;
|
48
|
+
}
|
49
|
+
|
50
|
+
h4 {
|
51
|
+
font-size: 90%;
|
52
|
+
font-style: italic;
|
53
|
+
}
|
54
|
+
|
55
|
+
h5 {
|
56
|
+
font-size: 90%;
|
57
|
+
font-style: italic;
|
58
|
+
}
|
59
|
+
|
60
|
+
h1.title {
|
61
|
+
font-size: 200%;
|
62
|
+
font-weight: bold;
|
63
|
+
padding-top: 0.2em;
|
64
|
+
padding-bottom: 0.2em;
|
65
|
+
text-align: left;
|
66
|
+
border: none;
|
67
|
+
}
|
68
|
+
|
69
|
+
dt code {
|
70
|
+
font-weight: bold;
|
71
|
+
}
|
72
|
+
|
73
|
+
dd p {
|
74
|
+
margin-top: 0;
|
75
|
+
}
|
76
|
+
|
77
|
+
#footer {
|
78
|
+
padding-top: 1em;
|
79
|
+
font-size: 70%;
|
80
|
+
color: gray;
|
81
|
+
text-align: center;
|
82
|
+
}
|
83
|
+
|
84
|
+
.navbar {
|
85
|
+
background: #fff;
|
86
|
+
border-bottom: 1px solid #000;
|
87
|
+
margin: 0 0 1em;
|
88
|
+
padding: 1em 0;
|
89
|
+
position: sticky;
|
90
|
+
top: 0;
|
91
|
+
z-index: 100;
|
92
|
+
}
|