Source code for mdutils.tools.TextUtils

# Python
#
# This module implements a text class that allows to modify and create text on Markdown files.
#
# This file is part of mdutils. https://github.com/didix21/mdutils
#
# MIT License: (C) 2020 Dídac Coll


[docs]class TextUtils: """This class helps to create bold, italics and change color text. """
[docs] @staticmethod def bold(text): """Bold text converter. :param text: a text string. :type text: str :return: a string like this example: ``'**text**'`` :rtype: str""" return '**' + text + '**'
[docs] @staticmethod def italics(text): """Italics text converter. :param text: a text string. :type text: str :return: a string like this example: ``'_text_'`` :rtype: str""" return '*' + text + '*'
[docs] @staticmethod def inline_code(text): """Inline code text converter. :param text: a text string. :type text: str :return: a string like this example: ``'``text``'`` :rtype: str""" return '``' + text + '``'
[docs] @staticmethod def center_text(text): """Place a text string to center. :param text: a text string. :type text: str :return: a string like this exampple: ``'<center>text</center>'`` """ return '<center>' + text + '</center>'
[docs] @staticmethod def text_color(text, color="black"): """Change text color. :param text: it is the text that will be changed its color. :param color: it is the text color: ``'orange'``, ``'blue'``, ``'red'``... or a **RGB** color such as ``'#ffce00'``. :return: a string like this one: ``'<font color='color'>'text'</font>'`` :type text: str :type color: str :rtype: str """ return '<font color="' + color + '">' + text + '</font>'
[docs] @staticmethod def insert_code(code, language=''): """This method allows to insert a peace of code. :param code: code string. :type code:str :param language: code language: python. c++, c#... :type language: str :return: markdown style. :rtype: str """ if language == '': return '```\n' + code + '\n```' else: return '```' + language + '\n' + code + '\n```'
[docs] @staticmethod def text_format(text, bold_italics_code='', color='black', align=''): """Text format helps to write multiple text format such as bold, italics and color. :param text: it is a string in which will be added the mew format :param bold_italics_code: using `'b'`: **bold**, `'i'`: _italics_ and `'c'`: `inline_code`. :param color: Can change text color. For example: 'red', 'green, 'orange'... :param align: Using this parameter you can align text. :return: return a string with the new text format. :type text: str :type bold_italics_code: str :type color: str :type align: str :rtype: str :Example: >>> from mdutils.tools.TextUtils import TextUtils >>> TextUtils.text_format(text='Some Text Here', bold_italics_code='bi', color='red', align='center') '***<center><font color="red">Some Text Here</font></center>***' """ new_text_format = text if bold_italics_code: if ('c' in bold_italics_code) or ('b' in bold_italics_code) or ('i' in bold_italics_code): if 'c' in bold_italics_code: new_text_format = TextUtils.inline_code(new_text_format) else: raise ValueError("unexpected bold_italics_code value, options available: 'b', 'c' or 'i'.") if color != 'black': new_text_format = TextUtils.text_color(new_text_format, color) if align == 'center': new_text_format = TextUtils.center_text(new_text_format) if bold_italics_code: if ('c' in bold_italics_code) or ('b' in bold_italics_code) or ('i' in bold_italics_code): if 'b' in bold_italics_code: new_text_format = TextUtils.bold(new_text_format) if 'i' in bold_italics_code: new_text_format = TextUtils.italics(new_text_format) else: raise ValueError("unexpected bold_italics_code value, options available: 'b', 'c' or 'i'.") return new_text_format
[docs] @staticmethod def add_tooltip(link, tip): """ :param link: :type link: str :param tip: :type tip: str return: ``link + "'" + format + "'"`` """ return link + " '{}'".format(tip)
if __name__ == "__main__": import doctest doctest.testmod()