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

87 lines
8.2 KiB
Plaintext
Raw Normal View History

2024-12-12 19:58:26 +01:00
<EFBFBD>
2024-12-29 18:47:43 +01:00
<00><>qg:<00><00>l<00>ddlmZddlZddlZddlmZddlmZmZddl m
2024-12-29 04:34:25 +01:00
Z
2024-12-29 18:12:24 +01:00
ddl m Z m Z Gd<08>d <09>Zy)
2024-12-29 04:34:25 +01:00
<EFBFBD>)<01>PathN)<01>FastAPI)<02> Environment<6E>
2024-12-29 18:12:24 +01:00
DictLoader)<01>Markup<75>)<02> ImageService<63> FileHandlerc <00><><00>eZdZddedefd<04>Zdefd<06>Zdedefd<08>Zd ed
2024-12-29 04:34:25 +01:00
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.
2024-12-29 18:12:24 +01:00
N)rr <00> image_service<63>_create_jinja_environment<6E> jinja_envr )<03>selfr rs <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
2024-12-29 04:34:25 +01:00
<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.
2024-12-29 18:12:24 +01:00
<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>
2024-12-29 04:34:25 +01:00
<EFBFBD> <0B><13>
2024-12-29 18:12:24 +01:00
r<00>srcc<00><00>d|<01>d<02>S)zRender an image with overlay.z>
2024-12-29 04:34:25 +01:00
<div class="img-left-overlay">
<img src="zv" alt="Overlay Image" loading="lazy">
<div class="overlay-text">Overlay Text</div>
</div>
2024-12-29 18:12:24 +01:00
<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/
2024-12-29 04:34:25 +01:00
<div class="box">
<strong>z</strong>
<p><3E></p>
</div>
2024-12-29 18:12:24 +01:00
r()rr)r*s rrzMarkdownRenderer.box3s%<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+
2024-12-29 04:34:25 +01:00
<div class="note">
2024-12-29 18:12:24 +01:00
<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
2024-12-29 04:34:25 +01:00
<a href="z," target="_blank" rel="noopener noreferrer">z </a>
2024-12-29 18:12:24 +01:00
r()rr)r/s rrzMarkdownRenderer.link_toDs#<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
2024-12-29 04:34:25 +01:00
<div class="warning">
2024-12-29 18:12:24 +01:00
⚠️ <p>r,r(r.s rrzMarkdownRenderer.warningJs<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>|_|<04>d|<06><00>}|dzt|<02>kr
|<04>d|dz<00><00>n|<04>d<07>} t<00>j|j<00>}
|jj|
d|d <09>
<EFBFBD>} |jj|
d |d <09>
<EFBFBD>} |j d |<08>d | <0B>d|<08>d|<06>d| <0C>d|<08>d|<08>d| <09>d<14><11><00><>|j d<15>dj|<05>S)zRender a slider component.rN<>z<div class="button-stack"><3E>_r<00>_0<5F>
thumbnailszA better description later on)<04>category<72>
image_type<EFBFBD>filename<6D>alt<6C>largez.
<button onclick="openModal('modalz,')" class="stacked-button">
z?
2024-12-29 04:34:25 +01:00
</button>
<div class="modal" id="modalzM">
<div class="modal-content">
2024-12-29 18:12:24 +01:00
<h2>Modal z</h2>
z<>
2024-12-29 04:34:25 +01:00
<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>
2024-12-29 18:12:24 +01:00
)<0F>uuid<69>uuid4<64>hex<65>upper<65>append<6E> enumerater rr<00>lenr
<00> get_categoryr <00> image_tag<61>join) rr2r3r?<00>modal_id<69> html_content<6E>i<>val<61>modal_id_current<6E> modal_id_nextr9<00> thumbnal_img<6D> modal_imgs rr zMarkdownRenderer.sliderRs<><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>"*<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>"<22>}<7D>1<>1<>$<24>.<2E>.<2E>A<>H<EFBFBD><1F>-<2D>-<2D>7<>7<>8<EFBFBD>Zf<5A>ru<72>{Z<02>7<>[<02>L<EFBFBD><1C>*<2A>*<2A>4<>4<><08>W^<5E>jm<6A>sR<02>4<>S<02>I<EFBFBD> <18> <1F> <1F>%.<2E>.><3E>-?<3F>@<11><1D><0E>)<29>)9<>(:<3A>;<1F> <20>c<EFBFBD>"<15><1E>K<EFBFBD> ;<3B><L<01>:L<>MK<01>K[<5B>J\<5C>\e<>fs<66>et<65>u <0A>!<10> <11>(<28>2 <15><1B><1B>H<EFBFBD>%<25><13>y<EFBFBD>y<EFBFBD><1C>&<26>&rc<00><><00>t|jt<00>r+t|j<00>}|jj
2024-12-29 04:34:25 +01:00
Sy)NT)<06>
2024-12-29 18:12:24 +01:00
isinstancer <00>strr<00>parent<6E>name)r<00> this_paths r<00> _get_categoryzMarkdownRenderer._get_categoryvs3<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>rr:r;r<<00>width<74>heightc<00><><00>gd<01>}||vrdt_td|<01>d|<06><00><04><00>|jj |j <00>|||||<05><05>}t |<07>S)zg
2024-12-29 04:34:25 +01:00
Generate a dynamic HTML <img> tag for an image using ImageService's image_tag method.
2024-12-29 18:12:24 +01:00
)r8r=<00>small<6C>originalrzInvalid image type: z. Must be one of )r9r:r;r<rXrY)<07>sys<79>tracebacklimit<69>
ValueErrorrrGrWr)rr:r;r<rXrY<00> valid_types<65>tags rr$zMarkdownRenderer.get_image~sx<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><16>c<EFBFBD>{<7B>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<>
2024-12-29 04:34:25 +01:00
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>
2024-12-29 18:12:24 +01:00
extensions<EFBFBD> r)r*)
<EFBFBD>markdown<77>Markdown<77>convert<72>Meta<74>itemsrHr<00> get_template<74>render<65> from_string)
rrb<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 18:12:24 +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>
2024-12-29 04:34:25 +01:00
<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>
2024-12-29 18:12:24 +01:00
__module__<EFBFBD> __qualname__rSrrrrrrrrr<00>dict<63>listr rW<00>intrr$ryr(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>H<14><1B>C<EFBFBD><1B>3<EFBFBD><1B>S<EFBFBD><1B>c<EFBFBD><1B>be<62><1B>qw<71><1B>.&<26>3<EFBFBD>&rr )<0F>pathlibrr]ri<00>fastapir<00>jinja2rr<00>
markupsaferrr r
r r(rr<00><module>r<>s&<00><01><18>
<EFBFBD><0F><1B>*<2A><1D>4<>a&<26>a&r