spppan.body.sh
 1	cat << HTML
 2	
 3	<style>
 4	pre br {display:none}
 5	pre p {margin:0;display:inline}
 6	</style>
 7	<header><h1>spppan</h1><p>un parseur pour passer les premiers «P» de «P(re)P(ost)P(rint)» en anti-oblique et oblique</p>
 8	<details open>
 9		<summary>spppan.sh</summary><pre>
10	HTML
11	cat -n << % | sed -E '
12		s	<	\<		g
13		s	>	\>		g
14		s	^(    ..\t)(#.*)	\1<span style="opacity:.5">\2</span>	g
15		s	^    (..)	<span style="opacity:.5">\1</span>		g
16		'
17	#!/usr/bin/env sh
18	
19	# décembre 2024
20	
21	# Une commande sed qui cherche dans un document html les occurences de
22	# prepostprint et de ppp avec ou sans majuscules (gI). Elle insère p(re) et
23	# p(ost) dans des span aux id «ppp-pre» (anti-oblique) et «ppp-post» (oblique).
24	
25	# PPPPPPPPPPPPpp             PPPPPPPPPPPPpp    PPPPPPPPPPPPPPp
26	# ppPPPPPPPPPPPPPPp          pPPPPPPPPPPPPPP    pPPPPPPPPPPPPPP
27	#    pPPp      ppPPPp        pPPP       pPPPp    PPP        pPPP
28	#     PPPp        PPPp       PPP         PPP     PPPp        PPP
29	#     pPPP        PPPP      PPPp      ppPPPp     PPP       pPPPP
30	#      pPPPPPPPPPPPPPp     pPPPPPPPPPPPPPp       PPPPPPPPPPPPPp
31	#       PPPPPPPPPPPpp     pPPPPPPPPPPPpp         PPPPPPPPPPpp
32	#        PPP              PPPp                   PPP
33	#        pPPP            PPPp                    PPP
34	#         pPPp          pPPP                     PPP
35	#         pPPPpp      ppPPPp                   pPPPPPp
36	#         PPPPPPP    PPPPPPP                   PPPPPPP
37	
38	sed -E '
39	s	(p|pre)(p|post)(p|print)\\
40		<span id="ppp-pre">\1</span><span id="ppp-post">\2</span>\3\\
41		gI
42	'
43	# <style>
44	# 	#ppp-pre,
45	# 	#ppp-post {display:inline-block;}
46	# 	#ppp-pre  {transform:skew(15deg);}  /* ╲P╲  */
47	# 	#ppp-post {transform:skew(-15deg);} /*  ╱P╱ */
48	# </style>
49	
50	# exemple : cat [FICHIER].html | ./pppspan.sh
51	
52	# <p>ppp</p> → <p>
53	#                <span id="ppp-pre">p</span>
54	#                <span id="ppp-post">p</span>
55	#                p
56	#              </p>
57	
58	# <h1>pRepOsTPriNt!!</h1> → <h1>
59	#                             <span id="ppp-pre">pRe</span>
60	#                             <span id="ppp-post">pOsT</span>
61	#                             PriNt!!
62	#                           </h1>
63	%
64	cat << HTML
65	</pre>
66	</details>
67	
68	HTML
69	

spppan

un parseur pour passer les premiers «P» de «P(re)P(ost)P(rint)» en anti-oblique et oblique

spppan.sh
 1	#!/usr/bin/env sh
 2	
 3	# décembre 2024
 4	
 5	# Une commande sed qui cherche dans un document html les occurences de
 6	# prepostprint et de ppp avec ou sans majuscules (gI). Elle insère p(re) et
 7	# p(ost) dans des span aux id «ppp-pre» (anti-oblique) et «ppp-post» (oblique).
 8	
 9	# PPPPPPPPPPPPpp             PPPPPPPPPPPPpp    PPPPPPPPPPPPPPp
10	# ppPPPPPPPPPPPPPPp          pPPPPPPPPPPPPPP    pPPPPPPPPPPPPPP
11	#    pPPp      ppPPPp        pPPP       pPPPp    PPP        pPPP
12	#     PPPp        PPPp       PPP         PPP     PPPp        PPP
13	#     pPPP        PPPP      PPPp      ppPPPp     PPP       pPPPP
14	#      pPPPPPPPPPPPPPp     pPPPPPPPPPPPPPp       PPPPPPPPPPPPPp
15	#       PPPPPPPPPPPpp     pPPPPPPPPPPPpp         PPPPPPPPPPpp
16	#        PPP              PPPp                   PPP
17	#        pPPP            PPPp                    PPP
18	#         pPPp          pPPP                     PPP
19	#         pPPPpp      ppPPPp                   pPPPPPp
20	#         PPPPPPP    PPPPPPP                   PPPPPPP
21	
22	sed -E '
23	s	(p|pre)(p|post)(p|print)\
24		<span id="ppp-pre">\1</span><span id="ppp-post">\2</span>\3\
25		gI
26	'
27	# <style>
28	# 	#ppp-pre,
29	# 	#ppp-post {display:inline-block;}
30	# 	#ppp-pre  {transform:skew(15deg);}  /* ╲P╲  */
31	# 	#ppp-post {transform:skew(-15deg);} /*  ╱P╱ */
32	# </style>
33	
34	# exemple : cat [FICHIER].html | ./pppspan.sh
35	
36	# <p>ppp</p> → <p>
37	#                <span id="ppp-pre">p</span>
38	#                <span id="ppp-post">p</span>
39	#                p
40	#              </p>
41	
42	# <h1>pRepOsTPriNt!!</h1> → <h1>
43	#                             <span id="ppp-pre">pRe</span>
44	#                             <span id="ppp-post">pOsT</span>
45	#                             PriNt!!
46	#                           </h1>