Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zag/js-pod6
Pod6 is an easy-to-use markup language. It can be used for writing language documentation, for documenting programs and modules, as well as for other types of document composition
https://github.com/zag/js-pod6
markup-language pod6 podlite raku-pod rakudoc rakulang rakupod
Last synced: about 1 month ago
JSON representation
Pod6 is an easy-to-use markup language. It can be used for writing language documentation, for documenting programs and modules, as well as for other types of document composition
- Host: GitHub
- URL: https://github.com/zag/js-pod6
- Owner: zag
- License: mit
- Created: 2019-12-19T16:59:44.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-17T17:27:29.000Z (11 months ago)
- Last Synced: 2024-09-30T20:42:54.961Z (about 2 months ago)
- Topics: markup-language, pod6, podlite, raku-pod, rakudoc, rakulang, rakupod
- Language: TypeScript
- Homepage: https://pod6.in
- Size: 2.2 MB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# pod6
Pod6 is an easy-to-use markup language.
## Usage
```
yarn add pod6
```
Export to *html*:```
var toHtml = require('pod6').toHtml
toHtml().run(`=begin pod
This is an ordinary paragraph
=end pod`)
```Get parser's *tree*:
```
var parse = require('pod6').parse
var tree = parse(`=begin pod
This is an ordinary paragraphWhile this is not
This is a code block
=head1 Mumble mumble
Suprisingly, this is not a code block
(with fancy indentation too)But this is just a text. Again
=end pod`)
```Convert pod6 from cli:
```
npx -p pod6 pod6html < example.pod6 > example.html
```Test [Pod6 online at https://pod6.in](https://pod6.in)
### Pod configuration
Example of configuration information for the block:
```
=begin pod
=for DESCRIPTION :title
= :author :pubdate(2011)
=end pod
```This information is used in different ways by different types of blocks,
but is always specified using Raku-ish option pairs [2]. That is, any of:```
Value is... Specify with... Or with... Or with...
=============== ======================= ================= ===========
List :key[$e1,$e2,...] :key($e1,$e2,...)
List :key<1 2 3> :key[1,2,3] key => [1,2,3]
Hash :key{$k1=>$v1,$k2=>$v2}
Boolean (true) :key :key(True)
Boolean (false) :!key :key(False)
String :key :key('str') :key("str")
Number :key(42) :key(2.3)
```For example:
```
=begin table :k1(2.3) :k2[-2.3] :k3[+1e4] :k4(3.1e+04) :k5[-3.1E-04]
foo
=end table
```
or```
=begin table :k1{a => 1, 2 => 'b', c => True, d => 2.3, e => False}
foo
=end table
```### Tables
```
=begin table
The Shoveller Eddie Stevens King Arthur's singing shovel
Blue Raja Geoffrey Smith Master of cutlery
Mr Furious Roy Orson Ticking time bomb of fury
The Bowler Carol Pinnsler Haunted bowling ball
=end table
``````
=table
Constants 1
Variables 10
Subroutines 33
Everything else 57
``````
=for table
mouse | mice
horse | horses
elephant | elephants
``````
=table
Animal | Legs | Eats
=======================
Zebra + 4 + Cookies
Human + 2 + Pizza
Shark + 0 + Fish
``````
=table
Superhero | Secret |
| Identity | Superpower
==============|=================|================================
The Shoveller | Eddie Stevens | King Arthur's singing shovel
``````
=begin table :caption('Super table')
Secret
Superhero Identity Superpower
============= =============== ===================
The Shoveller Eddie Stevens King Arthur's
singing shovelBlue Raja Geoffrey Smith Master of cutlery
Mr Furious Roy Orson Ticking time bomb
of furyThe Bowler Carol Pinnsler Haunted bowling ball
=end table
``````
=table
X | O |
---+---+---
| X | O
---+---+---
| | X
``````
=table
X O
===========
X O
===========
X
```
## Macro aliasesThe `=alias` directive provides a way to define lexically scoped
synonyms for longer Pod sequences, (meta) object declarators from the
code, or even entire chunks of ambient source. These synonyms can then
be inserted into subsequent Pod using the `A<>`For example:
=alias PROGNAME Earl Irradiatem Evermore
=alias VENDOR 4D Kingdoms
=alias TERMS_URLS =item L
= =item L
= =item L
The use of A is subject to the terms and conditions
laid out by A, as specified at:
A## Try pod6 online
You can test pod6 at [pod6.in](https://pod6.in) site.
I'd appreciate it if you'd report any mistakes to the tracker[4]## Desktop version
Desktop version of pod6 editor - [Podlite](https://github.com/zag/podlite-desktop) is available also [5].
Its free.## Authors
js-pod6 was written by [Alexandr Zahatski](https://github.com/zag)
## Copyright
Copyright (C) 2019-2023 [Alexandr Zahatski](https://zahatski.com).
Free use of this software is granted under the terms of the MIT License.For the full text of the license, see the [LICENSE](https://github.com/zag/js-pod6/blob/master/LICENSE) file.
## Links
[1] Specification of pod6: [Synopsis 26](https://github.com/perl6/specs/blob/master/S26-documentation.pod)
[2] Synopsis 2: [Bits and Pieces](https://github.com/Raku/old-design-docs/blob/master/S02-bits.pod)
[3] Pod6 online editor: [pod6 online editor](https://pod6.in)
[4] pod6 issues tracker: [https://github.com/zag/js-pod6/issues](https://github.com/zag/js-pod6/issues)
[5] Free and open-sourced desktop pod6 editor: [Podlite](https://github.com/zag/podlite-desktop)
```
```