# Copyright 2023 The HuggingFace Team. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from template import get_filename _remove_color = "rgb(103,6,12)" _addition_color = "rgb(6,103,12)" def mark_text(text, add=True): """Marks text with a highlight color for addition or removal. Args: text (`str`): Some code to be marked. add (`bool`, *optional*, defaults to True): Whether to mark the text as an addition or a removal. Returns: `str`: The marked text as an HTML `mark` element. """ if add: color = _addition_color else: color = _remove_color return f'{text}' def highlight(code:str): """Takes in code and returns the respective highlighted code sample. Args: code (`str`): Code from a file. """ lines = code.split("\n") for i,line in enumerate(lines): if line.startswith("-"): lines[i] = "- " + line[1:] lines[i] = mark_text(lines[i], False) elif line.startswith("+"): lines[i] = "+ " + line[1:] lines[i] = mark_text(lines[i], True) else: lines[i] = " " + line return "\n".join(lines).rstrip() def get_text(option): """ Reads in an option and returns the code, explanation, and documentation links """ filename = option.lower().replace(' ', '_') with open(get_filename(filename)) as f: output = f.read() code, explanation, doclink = output.split("##\n")[1:] return code, explanation, doclink