Initial very WIP commit.
This commit is contained in:
commit
4ca04d8202
4 changed files with 67 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
**/__pycache__
|
35
formatitko.py
Normal file
35
formatitko.py
Normal file
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# Import local files
|
||||
from whitespace import *
|
||||
|
||||
from panflute import *
|
||||
|
||||
|
||||
ifs = ["dog"]
|
||||
|
||||
|
||||
def transform(e: Element):
|
||||
"""Transform the AST, making format-agnostic changes."""
|
||||
if isinstance(e, Whitespace) and bavlna(e):
|
||||
e.parent.content[e.index] = NBSP()
|
||||
|
||||
if hasattr(e, "attributes"):
|
||||
if "if" in e.attributes:
|
||||
if not e.attributes["if"] in ifs:
|
||||
del e.parent.content[e.index]
|
||||
|
||||
if hasattr(e, "content"):
|
||||
for c in e.content:
|
||||
transform(c)
|
||||
|
||||
|
||||
doc = load()
|
||||
|
||||
print(stringify(doc))
|
||||
transform(doc)
|
||||
print("---------------------")
|
||||
print(stringify(doc))
|
||||
print(vars(doc))
|
||||
|
||||
|
19
test.md
Normal file
19
test.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Hello world!
|
||||
|
||||
This is an *example* **yay**!
|
||||
|
||||
```python3
|
||||
def what():
|
||||
return no way
|
||||
```
|
||||
:::{if=cat}
|
||||
This should only be shown to cats
|
||||
:::
|
||||
|
||||
This should be seen by all.
|
||||
|
||||
[This too!]{if=cat}
|
||||
|
||||
[!woah]{a=b} <!-- A special command! WOW -->
|
||||
|
||||
|
12
whitespace.py
Normal file
12
whitespace.py
Normal file
|
@ -0,0 +1,12 @@
|
|||
from panflute import Space,SoftBreak
|
||||
from typing import Union
|
||||
|
||||
Whitespace = Union[Space,SoftBreak]
|
||||
|
||||
class NBSP(Space):
|
||||
pass
|
||||
|
||||
def bavlna(e: Whitespace):
|
||||
"""Determine if given piece of whitespace should be non-breakable."""
|
||||
return False
|
||||
|
Loading…
Reference in a new issue