Files
LifeFaq/app/services/__pycache__/markdown_render.cpython-312.pyc

84 lines
8.0 KiB
Plaintext
Raw Normal View History

2024-12-12 19:58:26 +01:00
<EFBFBD>
2024-12-29 04:34:25 +01:00
S<>pgX<00><00>h<00>ddlmZddlZddlZddlmZddlmZmZddl m
Z
ddl m Z Gd<08>d <09>Z y)
<EFBFBD>)<01>PathN)<01>FastAPI)<02> Environment<6E>
DictLoader)<01>Markup<75>)<01> ImageServicec <00><><00>eZdZddedefd<04>Zdefd<06>Zdedefd<08>Zd ed
edefd <0B>Z d
edefd <0C>Z
d ed edefd<0E>Z d
edefd<0F>Z de dedefd<12>Zd<13>Zddedededededef d<19>Zdefd<1B>Zy)<1E>MarkdownRendererN<72> file_path<74>appc<00>~<00>||_t|j<00>|_|j<00>|_||_y)za
Initialize the MarkdownRenderer with a Jinja2 environment and custom functions.
N)r r <00> image_service<63>_create_jinja_environment<6E> jinja_envr )<03>selfr r s <20>C/home/hjess/PycharmProjects/LifeFaq/app/services/markdown_render.py<70>__init__zMarkdownRenderer.__init__
s3<00><00><17><04><08>)<29>$<24>(<28>(<28>3<><04><1A><1D>7<>7<>9<><04><0E>"<22><04><0E><00>returnc
<00><00>ttddi<01><00><03>}|jj|j|j
|j |j|j|j|jd<04><07>|S)z<>
Create and configure the Jinja2 environment with custom functions.
2024-12-12 19:58:26 +01:00
2024-12-29 04:34:25 +01:00
Returns:
Environment: A configured Jinja2 environment.
<20> base_templatez{{ content | safe }})<01>loader)<07>img_left_overlay<61>box<6F>note<74>warning<6E>link_to<74>slider<65>image) rr<00>globals<6C>updaterrrrrr<00> get_image)r<00>envs rrz*MarkdownRenderer._create_jinja_environmentsj<00><00><1A><1A>_<EFBFBD>>T<>,U<>!V<>W<><03> <0B> <0B> <0B><1A><1A> $<24> 5<> 5<><17>8<EFBFBD>8<EFBFBD><18>I<EFBFBD>I<EFBFBD><1B>|<7C>|<7C><1B>|<7C>|<7C><1A>k<EFBFBD>k<EFBFBD><19>^<5E>^<5E>
<EFBFBD> <0B><13>
r<00>srcc<00><00>d|<01>d<02>S)zRender an image with overlay.z>
<div class="img-left-overlay">
<img src="zv" alt="Overlay Image" loading="lazy">
<div class="overlay-text">Overlay Text</div>
</div>
<20>)rr%s rrz!MarkdownRenderer.img_left_overlay)s<00><00><17><1A>e<EFBFBD> <09> <0C> r<00>title<6C>contentc<00><00>d|<01>d|<02>d<03>S)zRender a box component.z/
<div class="box">
<strong>z</strong>
<p><3E></p>
</div>
r')rr(r)s rrzMarkdownRenderer.box2s%<00><00><15><1A>G<EFBFBD><10><17>y<EFBFBD> <09> <0C> rc<00><00>d|<01>d<02>S)zRender a note component.z+
<div class="note">
<p>r+r'<00>rr)s rrzMarkdownRenderer.note;s<00><00><10><17>y<EFBFBD> <09> <0C> r<00>urlc<00><00>d|<02>d|<01>d<03>S)zRender a link component.z
<a href="z," target="_blank" rel="noopener noreferrer">z </a>
r')rr(r.s rrzMarkdownRenderer.link_toCs#<00><00><12><15><15>B<>5<EFBFBD>'<27>J <09> <0C> rc<00><00>d|<01>d<02>S)zRender a warning component.u5
<div class="warning">
⚠️ <p>r+r'r-s rrzMarkdownRenderer.warningIs<00><00><17><1E>i<EFBFBD> <09> <0C> r<00>options<6E>imagesc<00><><00>ddl}|j<00>jj<00>dd}g}|j d<04>t |<02>D]<5D>\}}t |j<00>|_t|<07>|<04>d|<06><00>}|dzt|<02>kr
|<04>d|dz<00><00>n|<04>d<07>} |j d|<08>d |<07>d
|<06>d |<08>d |<06>d |<07>d
|<06>d|<08>d|<08>d| <09>d<11><15><00><>|j d<12>dj|<05>S)zRender a slider component.rN<>z<div class="button-stack"><3E>_r<00>_0z.
<button onclick="openModal('modalz6')" class="stacked-button">
<img src="z " alt="Image zb" class="thumbnail" loading="lazy">
</button>
<div class="modal" id="modalzM">
<div class="modal-content">
<h2>Modal z$</h2>
<img src="z<>" loading="lazy">
<div class="modal-buttons">
<button onclick="closeModal('modalz]')">Close</button>
<button class="next-btn" onclick="nextModal('modalz ', 'modalzc')">Next</button>
</div>
</div>
</div>
z</div><3E>
) <0C>uuid<69>uuid4<64>hex<65>upper<65>append<6E> enumerater r r<00>print<6E>len<65>join)
rr1r2r8<00>modal_id<69> html_content<6E>i<>val<61>modal_id_current<6E> modal_id_nexts
rrzMarkdownRenderer.sliderQsC<00><00><13><17>:<3A>:<3A><<3C>#<23>#<23>)<29>)<29>+<2B>A<EFBFBD>a<EFBFBD>0<><08><1A> <0C><14><1B><1B>8<>9<><1F><06>'<27>F<EFBFBD>A<EFBFBD>s<EFBFBD>!-<2D>t<EFBFBD>x<EFBFBD>x<EFBFBD>!9<>D<EFBFBD> <1E> <11>#<23>J<EFBFBD>"*<2A><1A>1<EFBFBD>Q<EFBFBD>C<EFBFBD>0<> <1C>56<35><11>U<EFBFBD>S<EFBFBD><16>[<5B>5H<35>x<EFBFBD>j<EFBFBD><01>!<21>a<EFBFBD>%<25><17>1<>QY<51>PZ<50>Z\<5C>o<EFBFBD>M<EFBFBD> <18> <1F> <1F>%.<2E>.><3E>-?<3F>@<1B><1E>%<25>}<7D>Q<EFBFBD>C<EFBFBD>0)<29>)9<>(:<3A>;<1F> <20>c<EFBFBD>"<1F>"<22>e<EFBFBD>=<3D><11><03>4;<3B><L<01>:L<>MK<01>K[<5B>J\<5C>\e<>fs<66>et<65>u <0A>!<10> <11> (<28>, <15><1B><1B>H<EFBFBD>%<25><13>y<EFBFBD>y<EFBFBD><1C>&<26>&rc<00><><00>t|jt<00>r+t|j<00>}|jj
Sy)NT)<06>
isinstancer <00>strr<00>parent<6E>name)r<00> this_paths r<00> _get_categoryzMarkdownRenderer._get_categoryrs3<00><00> <15>d<EFBFBD>n<EFBFBD>n<EFBFBD>c<EFBFBD> *<2A><1C>T<EFBFBD>^<5E>^<5E>,<2C>I<EFBFBD><1C>#<23>#<23>(<28>(<28> (<28>r<00>
image_type<EFBFBD>filename<6D>alt<6C>width<74>heightc<00><><00>gd<01>}||vrdt_td|<01>d|<06><00><04><00>|jj |j <00>|||||<05><05>}t |<07>}t|<08>|S)zg
Generate a dynamic HTML <img> tag for an image using ImageService's image_tag method.
)<04>
thumbnails<EFBFBD>large<67>small<6C>originalrzInvalid image type: z. Must be one of )<06>categoryrNrOrPrQrR)<08>sys<79>tracebacklimit<69>
ValueErrorr<00> image_tagrMrr>) rrNrOrPrQrR<00> valid_types<65>tag<61>my_tags rr#zMarkdownRenderer.get_imagezs<><00><00>C<01> <0B> <15>[<5B> (<28>!"<22>C<EFBFBD> <1E><1C> 4<>Z<EFBFBD>L<EFBFBD>@Q<>R]<5D>Q^<5E>_<>a<> a<><12> <20> <20>*<2A>*<2A><19>'<27>'<27>)<29>!<21><1D><13><17><19> +<2B>
<EFBFBD><03><18><03><1B><06> <0A>f<EFBFBD> <0A><15> r<00>markdown_contentc<00><><00>tjgd<01><01><02>}|j|<01>}|jr=|jj <00>D<00><04>cic]\}}|dj |<05><00><02>c}}ni}|j jd<04>}|j|<03><05>}|j j|<08>j<00>} | |fScc}}w)z<>
Convert Markdown to HTML and apply Jinja2 rendering for custom tags.
2024-12-12 19:58:26 +01:00
2024-12-29 04:34:25 +01:00
Args:
markdown_content (str): Raw Markdown content.
Returns:
tuple: Rendered HTML content and metadata as a dictionary.
)<03>extra<72>nl2br<62>meta)<01>
extensions<EFBFBD> r)r))
<EFBFBD>markdown<77>Markdown<77>convert<72>Meta<74>itemsr@r<00> get_template<74>render<65> from_string)
rr`<00>md<6D>intermediate_html<6D>key<65>value<75>metadata<74>template<74>
2024-12-12 19:58:26 +01:00
final_html<EFBFBD> final_outputs
2024-12-29 04:34:25 +01:00
r<00>render_markdown_with_jinjaz+MarkdownRenderer.render_markdown_with_jinja<6A>s<><00><00><16> <1E> <1E>*D<> E<><02><1E>J<EFBFBD>J<EFBFBD>'7<>8<><19>OQ<4F>w<EFBFBD>w<EFBFBD>2<EFBFBD>7<EFBFBD>7<EFBFBD>=<3D>=<3D>?<3F>K<>?<3F>Z<EFBFBD>S<EFBFBD>%<25>C<EFBFBD><13><18><18>%<25><1F>(<28>?<3F>K<>\^<5E><08><18>><3E>><3E>.<2E>.<2E><EFBFBD>?<3F><08><1D>_<EFBFBD>_<EFBFBD>-><3E>_<EFBFBD>?<3F>
<EFBFBD><1C>~<7E>~<7E>1<>1<>*<2A>=<3D>D<>D<>F<> <0C><1B>X<EFBFBD>%<25>%<25><>Ls<00>C)NN)<03>NN)<15>__name__<5F>
__module__<EFBFBD> __qualname__rIrrrrrrrrr<00>dict<63>listrrM<00>intrr#rwr'rrr r s<><00><00>#<23>#<23>#<23>7<EFBFBD>#<23><13>;<3B><13>( <0C>C<EFBFBD> <0C>C<EFBFBD> <0C> <0C><13> <0C>s<EFBFBD> <0C>s<EFBFBD> <0C> <0C>C<EFBFBD> <0C>C<EFBFBD> <0C> <0C>S<EFBFBD> <0C>s<EFBFBD> <0C>s<EFBFBD> <0C>  <0C>s<EFBFBD> <0C>s<EFBFBD> <0C>'<27>d<EFBFBD>'<27>D<EFBFBD>'<27>S<EFBFBD>'<27>B<14><16>C<EFBFBD><16>3<EFBFBD><16>S<EFBFBD><16>c<EFBFBD><16>be<62><16>qw<71><16>0&<26>3<EFBFBD>&rr )<0E>pathlibrrYrg<00>fastapir<00>jinja2rr<00>
markupsaferrr r r'rr<00><module>r<>s&<00><01><18>
<EFBFBD><0F><1B>*<2A><1D>'<27>_&<26>_&r