szaghi / MaTiSSe

Markdown To Impressive Scientific Slides
47 stars 11 forks source link

Support for non ascii text (encoding) #41

Open emont01 opened 5 years ago

emont01 commented 5 years ago

Today I tried MaTiSSe to create a simple presentation and found the following error:

Traceback (most recent call last):
  File "~/.virtualenvs/virtualenv1/bin/MaTiSSe.py", line 5, in <module>
    main()
  File "~/.virtualenvs/virtualenv1/local/lib/python2.7/site-packages/matisse/matisse.py", line 161, in main
    make_presentation(config=config, source=source, output=output)
  File "~/.virtualenvs/virtualenv1/local/lib/python2.7/site-packages/matisse/matisse.py", line 114, in make_presentation
    presentation.parse(config=config, source=source)
  File "~/.virtualenvs/virtualenv1/local/lib/python2.7/site-packages/matisse/presentation.py", line 292, in parse
    self.__get_metadata(source=complete_source)
  File "~/.virtualenvs/virtualenv1/local/lib/python2.7/site-packages/matisse/presentation.py", line 115, in __get_metadata
    self.metadata[key].update_value(value=element[key])
  File "~/.virtualenvs/virtualenv1/local/lib/python2.7/site-packages/matisse/metadata.py", line 45, in update_value
    self.value = str(value)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-6: ordinal not in range(128)

Here is the actual Markdown that I used:

---
metadata:
  - title: "áéíóúüñ"
  - conference: "Prueba"
  - date: "07 Febrero 2018"
  - authors:
    - Eivar Montenegro
  - authors_short:
    - E. Montenegro
---

# Primera parte

## Historia
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent sed ipsum
tincidunt, facilisis magna vitae, rutrum nisl. Cras nec fringilla nisi. Proin
non aliquam ante. Duis ullamcorper bibendum auctor. Donec ac tristique nisl.
Donec dapibus magna quis felis sagittis, sollicitudin pretium diam tincidunt.
Curabitur faucibus nisl nisi, in viverra neque tristique quis. In hac habitasse
platea dictumst. Phasellus quis tellus arcu. Mauris purus lectus, varius
iaculis finibus id, molestie eu risus. Etiam tellus tellus, convallis vel
dignissim ut, sagittis eu tortor. Sed facilisis, augue sed tincidunt fringilla,
arcu velit tincidunt diam, sed tincidunt massa ipsum ut odio. Curabitur id ex
in quam sagittis fringilla tincidunt et orci. Donec pretium dolor at velit
faucibus, eget porttitor diam iaculis.

# Segunda parte

## algo más de contenido

 Morbi bibendum odio et turpis vestibulum, non sodales arcu laoreet. Donec
 lobortis interdum convallis. Sed non egestas est. Proin vulputate ante et nisi
 bibendum, nec viverra orci consequat. Cras dictum mauris augue, a maximus
 metus dapibus eu. In ultricies venenatis tempor. Nunc varius, lectus non
 semper sollicitudin, diam nibh posuere purus, quis euismod erat velit sed
 ipsum. Donec dictum dolor erat. Vivamus at risus non mi blandit malesuada.
 Fusce egestas pretium metus vel luctus. Maecenas eleifend, nisi sit amet
 congue efficitur, sem diam lacinia turpis, sit amet rhoncus leo lacus id
 velit.

Quisque accumsan nisl magna, vitae eleifend tortor mattis sollicitudin.
Curabitur id arcu eu nisi efficitur faucibus eu in orci. Aliquam fringilla
mattis lacus, in fermentum lorem suscipit et. Nam lobortis ullamcorper blandit.
Proin fringilla augue suscipit felis commodo, non molestie enim semper. Mauris
lobortis quis ex et pulvinar. Praesent auctor, sem ac fermentum sollicitudin,
felis velit euismod nisi, id luctus lorem quam sit amet nisi. Vivamus eleifend,
lorem nec ornare semper, metus mi fringilla augue, imperdiet malesuada odio
sapien ut leo. Suspendisse blandit enim at ipsum imperdiet porttitor. Ut
fermentum eros ac erat congue, id consectetur ex cursus. Vivamus laoreet nulla
id tempor scelerisque. Donec imperdiet, orci ac cursus placerat, dui urna
sollicitudin odio, eget varius urna nisl at sapien. Nunc sem dui, dapibus id
placerat vitae, lobortis at risus. Curabitur placerat nibh ligula, non lobortis
mi faucibus ac.

In vitae neque non velit maximus bibendum quis vel purus. Lorem ipsum dolor sit
amet, consectetur adipiscing elit. Pellentesque finibus eget sapien sed
rhoncus. Fusce nec volutpat nibh. Aenean sed purus vel mi dapibus laoreet.
Vestibulum tristique lorem erat, eget porttitor quam interdum ut. Curabitur non
finibus lorem, in malesuada urna.

Vestibulum laoreet eleifend eros vel sollicitudin. Vivamus feugiat risus
turpis, quis fringilla ex accumsan non. Fusce hendrerit aliquam dolor, eget
pretium orci hendrerit ac. Proin vel efficitur turpis. Ut lacinia nisi at
dictum pharetra. Mauris eu porta nisi. Quisque ornare nunc euismod volutpat
vehicula. Cras condimentum enim aliquet hendrerit porttitor.
emont01 commented 5 years ago

Just to discard that this is in fact related to special characters I have created the sample presentation matisse1.md using MaTiSSe.py --sample matisse1.md, then tried with MaTiSSe.py -i matisse1.md with successful results, then added a single letter to the title 'á' then this error started to show up again:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 0: ordinal not in range(128)

szaghi commented 5 years ago

Hi @emont01

thank you very much for reporting this bug, I have to find a better solution to support non ascii character (any suggestions are welcome).

Let me some time to think to it, currently I am quite busy.