python-frontmatter 0.2.1__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {python-frontmatter-0.2.1 → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages}/frontmatter/__init__.py +39 -17
  2. Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/frontmatter/__init__.pyc +0 -0
  3. Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/frontmatter/handlers.py +67 -0
  4. Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/frontmatter/handlers.pyc +0 -0
  5. {python-frontmatter-0.2.1 → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages}/frontmatter/util.py +2 -1
  6. Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/frontmatter/util.pyc +0 -0
  7. {python-frontmatter-0.2.1/python_frontmatter.egg-info → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/python_frontmatter-0.3.0-py2.7.egg-info}/PKG-INFO +9 -3
  8. {python-frontmatter-0.2.1/python_frontmatter.egg-info → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/python_frontmatter-0.3.0-py2.7.egg-info}/SOURCES.txt +3 -0
  9. {python-frontmatter-0.2.1/python_frontmatter.egg-info → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/python_frontmatter-0.3.0-py2.7.egg-info}/requires.txt +1 -1
  10. python-frontmatter-0.2.1/LICENSE +0 -21
  11. python-frontmatter-0.2.1/MANIFEST.in +0 -6
  12. python-frontmatter-0.2.1/PKG-INFO +0 -105
  13. python-frontmatter-0.2.1/README.md +0 -84
  14. python-frontmatter-0.2.1/setup.cfg +0 -5
  15. python-frontmatter-0.2.1/setup.py +0 -50
  16. python-frontmatter-0.2.1/tests/chinese.txt +0 -5
  17. python-frontmatter-0.2.1/tests/empty-frontmatter.txt +0 -4
  18. python-frontmatter-0.2.1/tests/extra-dash.txt +0 -6
  19. python-frontmatter-0.2.1/tests/hello-markdown.markdown +0 -18
  20. python-frontmatter-0.2.1/tests/hello-world.markdown +0 -6
  21. python-frontmatter-0.2.1/tests/network-diagrams.markdown +0 -12
  22. python-frontmatter-0.2.1/tests/no-frontmatter.txt +0 -1
  23. python-frontmatter-0.2.1/tests/unpretty.md +0 -21
  24. {python-frontmatter-0.2.1/python_frontmatter.egg-info → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/python_frontmatter-0.3.0-py2.7.egg-info}/dependency_links.txt +0 -0
  25. {python-frontmatter-0.2.1/python_frontmatter.egg-info → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/python_frontmatter-0.3.0-py2.7.egg-info}/not-zip-safe +0 -0
  26. {python-frontmatter-0.2.1/python_frontmatter.egg-info → Users/chris_amico/code/frontmatter/lib/python2.7/site-packages/python_frontmatter-0.3.0-py2.7.egg-info}/top_level.txt +0 -0
@@ -8,53 +8,68 @@ import codecs
8
8
  import re
9
9
 
10
10
  import six
11
- import yaml
12
11
 
12
+ import yaml
13
13
  try:
14
14
  from yaml import CSafeDumper as SafeDumper
15
15
  except ImportError:
16
16
  from yaml import SafeDumper
17
17
 
18
18
  from .util import u
19
+ from .handlers import YAMLHandler, JSONHandler, TOMLHandler
19
20
 
20
- __all__ = ['parse', 'load', 'loads', 'dump', 'dumps']
21
21
 
22
- # match three or more dashes
23
- # split on this
24
- FM_BOUNDARY = re.compile(r'^-{3,}$', re.MULTILINE)
22
+ __all__ = ['parse', 'load', 'loads', 'dump', 'dumps']
25
23
 
26
24
  POST_TEMPLATE = """\
27
- ---
25
+ {start_delimiter}
28
26
  {metadata}
29
- ---
27
+ {end_delimiter}
30
28
 
31
29
  {content}
32
30
  """
33
31
 
32
+ # global handlers
33
+ handlers = {
34
+ '---': YAMLHandler(),
35
+ '{': JSONHandler(),
36
+ }
37
+
38
+ # if toml is installed
39
+ if TOMLHandler is not None:
40
+ handlers['+++'] = TOMLHandler()
41
+
34
42
 
35
43
  def parse(text, **defaults):
36
44
  """
37
- Parse text with YAML frontmatter, return metadata and content.
45
+ Parse text with frontmatter, return metadata and content.
38
46
  Pass in optional metadata defaults as keyword args.
39
47
 
40
48
  If frontmatter is not found, returns an empty metadata dictionary
41
- and original text content.
49
+ (or defaults) and original text content.
42
50
  """
43
51
  # ensure unicode first
44
- text = u(text)
52
+ text = u(text).strip()
45
53
 
46
54
  # metadata starts with defaults
47
55
  metadata = defaults.copy()
48
56
 
49
- # split on the first two triple-dashes
57
+ for delim in handlers:
58
+ if text.startswith(delim):
59
+ handler = handlers[delim]
60
+ break
61
+ else:
62
+ return metadata, text
63
+
64
+ # split on the delimiters
50
65
  try:
51
- _, fm, content = FM_BOUNDARY.split(text, 2)
66
+ fm, content = handler.split(text)
52
67
  except ValueError:
53
68
  # if we can't split, bail
54
69
  return metadata, text
55
70
 
56
- # parse yaml, now that we have frontmatter
57
- fm = yaml.safe_load(fm)
71
+ # parse, now that we have frontmatter
72
+ fm = handler.load(fm)
58
73
  if isinstance(fm, dict):
59
74
  metadata.update(fm)
60
75
 
@@ -102,15 +117,22 @@ def dumps(post, **kwargs):
102
117
  """
103
118
  kwargs.setdefault('Dumper', SafeDumper)
104
119
  kwargs.setdefault('default_flow_style', False)
120
+
121
+ start_delimiter = kwargs.pop('start_delimiter', '---')
122
+ end_delimiter = kwargs.pop('end_delimiter', '---')
105
123
 
106
124
  metadata = yaml.dump(post.metadata, **kwargs).strip()
107
125
  metadata = u(metadata) # ensure unicode
108
- return POST_TEMPLATE.format(metadata=metadata, content=post.content).strip()
126
+
127
+ return POST_TEMPLATE.format(
128
+ metadata=metadata, content=post.content,
129
+ start_delimiter=start_delimiter,
130
+ end_delimiter=end_delimiter).strip()
109
131
 
110
132
 
111
133
  class Post(object):
112
134
  """
113
- A post contains content and metadata from YAML Front Matter.
135
+ A post contains content and metadata from Front Matter.
114
136
  For convenience, metadata values are available as proxied item lookups.
115
137
 
116
138
  Don't use this class directly. Use module-level functions load, dump, etc.
@@ -118,7 +140,7 @@ class Post(object):
118
140
  def __init__(self, content, **metadata):
119
141
  self.content = u(content)
120
142
  self.metadata = metadata
121
-
143
+
122
144
  def __getitem__(self, name):
123
145
  "Get metadata key"
124
146
  return self.metadata[name]
@@ -0,0 +1,67 @@
1
+ """
2
+ Handlers for various kinds of metadata, including YAML, JSON and TOML
3
+ """
4
+ from __future__ import unicode_literals
5
+
6
+ import json
7
+ import re
8
+ import yaml
9
+
10
+ try:
11
+ import toml
12
+ except ImportError:
13
+ toml = None
14
+
15
+
16
+ class BaseHandler(object):
17
+ FM_BOUNDARY = None
18
+
19
+ def __init__(self, fm_boundary=None):
20
+ self.FM_BOUNDARY = fm_boundary or self.FM_BOUNDARY
21
+
22
+ if self.FM_BOUNDARY is None:
23
+ raise NotImplementedError('No frontmatter boundary defined. '
24
+ 'Please set {}.FM_BOUNDARY to a regular expression'.format(self.__class__.__name__))
25
+
26
+ def load(self, fm):
27
+ """
28
+ Parse frontmatter and return a dict
29
+ """
30
+ raise NotImplementedError
31
+
32
+ def split(self, text):
33
+ """
34
+ Split text into frontmatter and content
35
+ """
36
+ _, fm, content = self.FM_BOUNDARY.split(text, 2)
37
+ return fm, content
38
+
39
+
40
+ class YAMLHandler(BaseHandler):
41
+ FM_BOUNDARY = re.compile(r'^-{3,}$', re.MULTILINE)
42
+
43
+ def load(self, fm):
44
+ return yaml.safe_load(fm)
45
+
46
+
47
+
48
+ class JSONHandler(BaseHandler):
49
+ FM_BOUNDARY = re.compile(r'^(?:{|})$', re.MULTILINE)
50
+
51
+ def load(self, fm):
52
+ return json.loads(fm)
53
+
54
+ def split(self, text):
55
+ _, fm, content = self.FM_BOUNDARY.split(text, 2)
56
+ return "{" + fm + "}", content
57
+
58
+
59
+ if toml:
60
+ class TOMLHandler(BaseHandler):
61
+ FM_BOUNDARY = re.compile(r'^\+{3,}$', re.MULTILINE)
62
+
63
+ def load(self, fm):
64
+ return toml.loads(fm)
65
+
66
+ else:
67
+ TOMLHandler = None
@@ -8,7 +8,8 @@ def u(text, encoding='utf-8'):
8
8
  "Return unicode text, no matter what"
9
9
 
10
10
  if isinstance(text, six.binary_type):
11
- return text.decode(encoding)
11
+ text = text.decode(encoding)
12
12
 
13
13
  # it's already unicode
14
+ text = text.replace('\r\n', '\n')
14
15
  return text
@@ -1,6 +1,6 @@
1
- Metadata-Version: 1.0
1
+ Metadata-Version: 1.1
2
2
  Name: python-frontmatter
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: Parse and manage posts with YAML frontmatter
5
5
  Home-page: https://github.com/eyeseast/python-frontmatter
6
6
  Author: Chris Amico
@@ -15,6 +15,12 @@ Description: Python Frontmatter
15
15
 
16
16
  [![Build Status](https://travis-ci.org/eyeseast/python-frontmatter.svg?branch=master)](https://travis-ci.org/eyeseast/python-frontmatter)
17
17
 
18
+ Install:
19
+ --------
20
+
21
+ pip install python-frontmatter
22
+
23
+
18
24
  Usage:
19
25
  ------
20
26
 
@@ -93,7 +99,7 @@ Description: Python Frontmatter
93
99
 
94
100
  Keywords: frontmatter
95
101
  Platform: UNKNOWN
96
- Classifier: Development Status :: 2 - Pre-Alpha
102
+ Classifier: Development Status :: 4 - Beta
97
103
  Classifier: Intended Audience :: Developers
98
104
  Classifier: License :: OSI Approved :: MIT License
99
105
  Classifier: Natural Language :: English
@@ -3,6 +3,7 @@ MANIFEST.in
3
3
  README.md
4
4
  setup.py
5
5
  frontmatter/__init__.py
6
+ frontmatter/handlers.py
6
7
  frontmatter/util.py
7
8
  python_frontmatter.egg-info/PKG-INFO
8
9
  python_frontmatter.egg-info/SOURCES.txt
@@ -13,7 +14,9 @@ python_frontmatter.egg-info/top_level.txt
13
14
  tests/chinese.txt
14
15
  tests/empty-frontmatter.txt
15
16
  tests/extra-dash.txt
17
+ tests/hello-json.markdown
16
18
  tests/hello-markdown.markdown
19
+ tests/hello-toml.markdown
17
20
  tests/hello-world.markdown
18
21
  tests/network-diagrams.markdown
19
22
  tests/no-frontmatter.txt
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2014 Chris Amico, Glass Eye Media LLC
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,6 +0,0 @@
1
- include LICENSE
2
- include README.md
3
-
4
- recursive-include tests *
5
-
6
- exclude *.py[co]
@@ -1,105 +0,0 @@
1
- Metadata-Version: 1.0
2
- Name: python-frontmatter
3
- Version: 0.2.1
4
- Summary: Parse and manage posts with YAML frontmatter
5
- Home-page: https://github.com/eyeseast/python-frontmatter
6
- Author: Chris Amico
7
- Author-email: eyeseast@gmail.com
8
- License: MIT
9
- Description: Python Frontmatter
10
- ==================
11
-
12
- [Jekyll](http://jekyllrb.com/)-style YAML front matter offers a useful way to add arbitrary, structured metadata to text documents, regardless of type.
13
-
14
- This is a small package to load and parse files (or just text) with YAML front matter.
15
-
16
- [![Build Status](https://travis-ci.org/eyeseast/python-frontmatter.svg?branch=master)](https://travis-ci.org/eyeseast/python-frontmatter)
17
-
18
- Usage:
19
- ------
20
-
21
- >>> import frontmatter
22
-
23
- Load a post from a filename:
24
-
25
- >>> post = frontmatter.load('tests/hello-world.markdown')
26
-
27
- Or a file (or file-like object):
28
-
29
- >>> with open('tests/hello-world.markdown') as f:
30
- ... post = frontmatter.load(f)
31
-
32
- Or load from text:
33
-
34
- >>> with open('tests/hello-world.markdown') as f:
35
- ... post = frontmatter.loads(f.read())
36
-
37
- Access content:
38
-
39
- >>> print(post.content)
40
- Well, hello there, world.
41
-
42
- # this works, too
43
- >>> print(post)
44
- Well, hello there, world.
45
-
46
-
47
- Use metadata (metadata gets proxied as post keys):
48
-
49
- >>> print(post['title'])
50
- Hello, world!
51
-
52
- Metadata is a dictionary, with some handy proxies:
53
-
54
- >>> sorted(post.keys())
55
- ['layout', 'title']
56
-
57
- >>> from pprint import pprint
58
- >>> post['excerpt'] = 'tl;dr'
59
- >>> pprint(post.metadata)
60
- {'excerpt': 'tl;dr', 'layout': 'post', 'title': 'Hello, world!'}
61
-
62
- If you don't need the whole post object, just parse:
63
-
64
- >>> with open('tests/hello-world.markdown') as f:
65
- ... metadata, content = frontmatter.parse(f.read())
66
- >>> print(metadata['title'])
67
- Hello, world!
68
-
69
- Write back to plain text, too:
70
-
71
- >>> print(frontmatter.dumps(post)) # doctest: +NORMALIZE_WHITESPACE
72
- ---
73
- excerpt: tl;dr
74
- layout: post
75
- title: Hello, world!
76
- ---
77
- Well, hello there, world.
78
-
79
- Or write to a file (or file-like object):
80
-
81
- >>> from io import StringIO
82
- >>> f = StringIO()
83
- >>> frontmatter.dump(post, f)
84
- >>> print(f.getvalue()) # doctest: +NORMALIZE_WHITESPACE
85
- ---
86
- excerpt: tl;dr
87
- layout: post
88
- title: Hello, world!
89
- ---
90
- Well, hello there, world.
91
-
92
-
93
-
94
- Keywords: frontmatter
95
- Platform: UNKNOWN
96
- Classifier: Development Status :: 2 - Pre-Alpha
97
- Classifier: Intended Audience :: Developers
98
- Classifier: License :: OSI Approved :: MIT License
99
- Classifier: Natural Language :: English
100
- Classifier: Programming Language :: Python :: 2
101
- Classifier: Programming Language :: Python :: 2.6
102
- Classifier: Programming Language :: Python :: 2.7
103
- Classifier: Programming Language :: Python :: 3
104
- Classifier: Programming Language :: Python :: 3.3
105
- Classifier: Programming Language :: Python :: 3.4
@@ -1,84 +0,0 @@
1
- Python Frontmatter
2
- ==================
3
-
4
- [Jekyll](http://jekyllrb.com/)-style YAML front matter offers a useful way to add arbitrary, structured metadata to text documents, regardless of type.
5
-
6
- This is a small package to load and parse files (or just text) with YAML front matter.
7
-
8
- [![Build Status](https://travis-ci.org/eyeseast/python-frontmatter.svg?branch=master)](https://travis-ci.org/eyeseast/python-frontmatter)
9
-
10
- Usage:
11
- ------
12
-
13
- >>> import frontmatter
14
-
15
- Load a post from a filename:
16
-
17
- >>> post = frontmatter.load('tests/hello-world.markdown')
18
-
19
- Or a file (or file-like object):
20
-
21
- >>> with open('tests/hello-world.markdown') as f:
22
- ... post = frontmatter.load(f)
23
-
24
- Or load from text:
25
-
26
- >>> with open('tests/hello-world.markdown') as f:
27
- ... post = frontmatter.loads(f.read())
28
-
29
- Access content:
30
-
31
- >>> print(post.content)
32
- Well, hello there, world.
33
-
34
- # this works, too
35
- >>> print(post)
36
- Well, hello there, world.
37
-
38
-
39
- Use metadata (metadata gets proxied as post keys):
40
-
41
- >>> print(post['title'])
42
- Hello, world!
43
-
44
- Metadata is a dictionary, with some handy proxies:
45
-
46
- >>> sorted(post.keys())
47
- ['layout', 'title']
48
-
49
- >>> from pprint import pprint
50
- >>> post['excerpt'] = 'tl;dr'
51
- >>> pprint(post.metadata)
52
- {'excerpt': 'tl;dr', 'layout': 'post', 'title': 'Hello, world!'}
53
-
54
- If you don't need the whole post object, just parse:
55
-
56
- >>> with open('tests/hello-world.markdown') as f:
57
- ... metadata, content = frontmatter.parse(f.read())
58
- >>> print(metadata['title'])
59
- Hello, world!
60
-
61
- Write back to plain text, too:
62
-
63
- >>> print(frontmatter.dumps(post)) # doctest: +NORMALIZE_WHITESPACE
64
- ---
65
- excerpt: tl;dr
66
- layout: post
67
- title: Hello, world!
68
- ---
69
- Well, hello there, world.
70
-
71
- Or write to a file (or file-like object):
72
-
73
- >>> from io import StringIO
74
- >>> f = StringIO()
75
- >>> frontmatter.dump(post, f)
76
- >>> print(f.getvalue()) # doctest: +NORMALIZE_WHITESPACE
77
- ---
78
- excerpt: tl;dr
79
- layout: post
80
- title: Hello, world!
81
- ---
82
- Well, hello there, world.
83
-
84
-
@@ -1,5 +0,0 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
- tag_svn_revision = 0
5
-
@@ -1,50 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- try:
5
- from setuptools import setup
6
- except ImportError:
7
- from distutils.core import setup
8
-
9
-
10
- with open('README.md') as f:
11
- readme = f.read()
12
-
13
-
14
- requirements = [
15
- 'PyYAML',
16
- 'six'
17
- ]
18
-
19
-
20
- VERSION = '0.2.1'
21
-
22
-
23
- setup(
24
- name = 'python-frontmatter',
25
- version = VERSION,
26
- description = 'Parse and manage posts with YAML frontmatter',
27
- long_description = readme,
28
- author = 'Chris Amico',
29
- author_email = 'eyeseast@gmail.com',
30
- url = 'https://github.com/eyeseast/python-frontmatter',
31
- packages = ['frontmatter'],
32
- include_package_data = True,
33
- install_requires = requirements,
34
- license = 'MIT',
35
- zip_safe = False,
36
- keywords = 'frontmatter',
37
- classifiers=[
38
- 'Development Status :: 2 - Pre-Alpha',
39
- 'Intended Audience :: Developers',
40
- 'License :: OSI Approved :: MIT License',
41
- 'Natural Language :: English',
42
- 'Programming Language :: Python :: 2',
43
- 'Programming Language :: Python :: 2.6',
44
- 'Programming Language :: Python :: 2.7',
45
- 'Programming Language :: Python :: 3',
46
- 'Programming Language :: Python :: 3.3',
47
- 'Programming Language :: Python :: 3.4',
48
- ],
49
- test_suite='test',
50
- )
@@ -1,5 +0,0 @@
1
- ---
2
- title: "Let's try unicode"
3
- ---
4
-
5
- 欢迎来到大连水产学院!
@@ -1,4 +0,0 @@
1
- ---
2
- ---
3
-
4
- I have frontmatter but no metadata.
@@ -1,6 +0,0 @@
1
- ----
2
- test: bob
3
- else: kate
4
- ----
5
-
6
- Here's some content.
@@ -1,18 +0,0 @@
1
- ---
2
- test: tester
3
- author: bob
4
- something: else
5
- ---
6
-
7
- Title
8
- =====
9
-
10
- title2
11
- ------
12
-
13
- Hello.
14
-
15
- Just need three dashes
16
- ---
17
-
18
- And this might break.
@@ -1,6 +0,0 @@
1
- ---
2
- title: Hello, world!
3
- layout: post
4
- ---
5
-
6
- Well, hello there, world.
@@ -1,12 +0,0 @@
1
- ---
2
- title: "TODO: Understand Network Diagrams"
3
- layout: post
4
- published: true
5
- tags: [todo]
6
- ---
7
-
8
- Kim Rees, sitting in for Nathan Yau at [Flowing Data](http://flowingdata.com), has been posting examples of [network diagrams](http://flowingdata.com/category/visualization/network-visualization/) lately. I have to confess I'm stumped by most of them them. Or maybe I'm just overwhelmed. Maybe I'm [not alone](http://flowingdata.com/2012/05/28/network-diagrams-simplified/):
9
-
10
- > Network diagrams are notoriously messy. Even a small number of nodes can be overwhelmed by their chaotic placement and relationships. [Cody Dunne](http://www.cs.umd.edu/~cdunne/) of [HCIL](http://www.cs.umd.edu/hcil/) showed off [his new work in simplifying these complex structures](http://www.cs.umd.edu/localphp/hcil/tech-reports-search.php?number=2012-11). In essence, he aggregates leaf nodes into a fan glyph that describes the underlying data in its size, arc, and color. Span nodes are similarly captured into crescent glyphs. The result is an easy to read, high level look at the network. You can easily compare different sections of the network, understand areas that may have been occluded by the lines in a traditional diagram, and see relationships far more quickly.
11
-
12
- This seems like the kind of thing that could be useful for news, where we're often trying to understand and illustrate complex relationships. I'll have to find a good dataset to play with.
@@ -1 +0,0 @@
1
- I have no frontmatter.
@@ -1,21 +0,0 @@
1
- ---
2
- destination:
3
- encoding:
4
- xz:
5
- enabled: true
6
- min_size: 5120
7
- options:
8
- path_filter:
9
- result:
10
- append_to_file:
11
- append_to_lafs_dir:
12
- print_to_stdout: true
13
- url: http://localhost:3456/uri
14
- filter:
15
- - 'Длинный стринг на русском'
16
- - 'Еще одна длинная строка'
17
- ---
18
-
19
- This is a test of both unicode and prettier dumping. The above metadata comes from the [pretty-yaml](https://github.com/mk-fg/pretty-yaml) readme file.
20
-
21
- Metadata should be dumped in order.